From d83a3195d2bb941b956d114adbf8c8128572625c Mon Sep 17 00:00:00 2001 From: gitea-action Date: Sat, 15 Feb 2025 10:30:29 +0800 Subject: [PATCH] luci-app-openclash: sync upstream last commit: https://github.com/vernesong/OpenClash/commit/39a3dbb78921e4c7a41b0add38a2ee06c7a431ba --- luci-app-openclash/Makefile | 10 +- .../luasrc/controller/openclash.lua | 16 +- .../luasrc/model/cbi/openclash/client.lua | 25 +- .../model/cbi/openclash/config-overwrite.lua | 2 +- .../cbi/openclash/config-subscribe-edit.lua | 2 +- .../model/cbi/openclash/config-subscribe.lua | 4 + .../luasrc/model/cbi/openclash/config.lua | 2 +- .../model/cbi/openclash/groups-config.lua | 10 - .../cbi/openclash/proxy-provider-config.lua | 12 +- .../cbi/openclash/rule-providers-config.lua | 54 +- .../model/cbi/openclash/servers-config.lua | 61 + .../luasrc/model/cbi/openclash/settings.lua | 162 +- luci-app-openclash/luasrc/openclash.lua | 5 +- .../luasrc/view/openclash/config_editor.htm | 32 + .../luasrc/view/openclash/dlercloud.htm | 398 +- .../luasrc/view/openclash/myip.htm | 17 +- .../luasrc/view/openclash/select_git_cdn.htm | 51 +- .../luasrc/view/openclash/status.htm | 61 +- .../luasrc/view/openclash/sub_info_show.htm | 42 +- .../view/openclash/switch_dashboard.htm | 11 +- .../luasrc/view/openclash/toolbar_show.htm | 2 +- .../luasrc/view/openclash/update_config.htm | 27 + .../po/zh-cn/openclash.zh-cn.po | 100 +- luci-app-openclash/root/etc/init.d/openclash | 913 +- .../root/etc/openclash/china_ip6_route.ipset | 3972 ++-- .../root/etc/openclash/china_ip_route.ipset | 17285 ++++++++-------- .../openclash_custom_domain_dns_policy.list | 1 + .../custom/openclash_custom_sniffer.yaml | 2 +- .../root/etc/uci-defaults/luci-openclash | 83 +- .../root/usr/share/openclash/clash_version.sh | 5 +- .../root/usr/share/openclash/openclash.sh | 42 +- .../usr/share/openclash/openclash_chnroute.sh | 12 +- .../usr/share/openclash/openclash_core.sh | 22 +- .../usr/share/openclash/openclash_debug.sh | 13 +- .../openclash/openclash_download_dashboard.sh | 23 + .../openclash/openclash_download_rule_list.sh | 28 +- .../usr/share/openclash/openclash_geoip.sh | 11 +- .../usr/share/openclash/openclash_geosite.sh | 9 +- .../share/openclash/openclash_get_network.lua | 32 + .../share/openclash/openclash_history_get.sh | 7 +- .../usr/share/openclash/openclash_ipdb.sh | 9 +- .../usr/share/openclash/openclash_rule.sh | 193 +- .../openclash/openclash_streaming_unlock.lua | 2 +- .../usr/share/openclash/openclash_update.sh | 44 +- .../usr/share/openclash/openclash_version.sh | 18 +- .../usr/share/openclash/openclash_watchdog.sh | 87 +- .../usr/share/openclash/ui/zashboard/CNAME | 1 + .../ui/zashboard/apple-touch-icon.png | Bin 0 -> 1556 bytes .../NotoColorEmoji-flagsonly-CWWDk9km.ttf | Bin 0 -> 913564 bytes .../ui/zashboard/assets/index-DnsHUhFc.js | 177 + .../ui/zashboard/assets/index-DrFVUP5k.css | 1 + .../zashboard/assets/metacubex-BlQkOUXT.jpg | Bin 0 -> 14267 bytes .../share/openclash/ui/zashboard/favicon.ico | Bin 0 -> 1823 bytes .../share/openclash/ui/zashboard/favicon.svg | 1 + .../usr/share/openclash/ui/zashboard/icon.svg | 3 + .../share/openclash/ui/zashboard/index.html | 39 + .../ui/zashboard/manifest.webmanifest | 1 + .../openclash/ui/zashboard/pwa-192x192.png | Bin 0 -> 2580 bytes .../openclash/ui/zashboard/pwa-512x512.png | Bin 0 -> 7404 bytes .../ui/zashboard/pwa-maskable-192x192.png | Bin 0 -> 1451 bytes .../ui/zashboard/pwa-maskable-512x512.png | Bin 0 -> 4711 bytes .../openclash/ui/zashboard/registerSW.js | 1 + .../usr/share/openclash/ui/zashboard/sw.js | 1 + .../ui/zashboard/workbox-3e8df8c8.js | 1 + .../root/usr/share/openclash/yml_change.sh | 11 +- .../usr/share/openclash/yml_groups_get.sh | 14 - .../usr/share/openclash/yml_groups_set.sh | 10 +- .../usr/share/openclash/yml_proxys_get.sh | 140 +- .../usr/share/openclash/yml_proxys_set.sh | 80 +- .../usr/share/openclash/yml_rules_change.sh | 248 +- .../openclash/theme/material-log.css | 153 + 71 files changed, 12977 insertions(+), 11824 deletions(-) create mode 100644 luci-app-openclash/luasrc/view/openclash/update_config.htm create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/CNAME create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/apple-touch-icon.png create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/NotoColorEmoji-flagsonly-CWWDk9km.ttf create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/index-DnsHUhFc.js create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/index-DrFVUP5k.css create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/metacubex-BlQkOUXT.jpg create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/favicon.ico create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/favicon.svg create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/icon.svg create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/index.html create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/manifest.webmanifest create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-192x192.png create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-512x512.png create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-maskable-192x192.png create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/pwa-maskable-512x512.png create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/registerSW.js create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/sw.js create mode 100644 luci-app-openclash/root/usr/share/openclash/ui/zashboard/workbox-3e8df8c8.js create mode 100644 luci-app-openclash/root/www/luci-static/resources/openclash/theme/material-log.css diff --git a/luci-app-openclash/Makefile b/luci-app-openclash/Makefile index b8e42e2f7..1dc7bc39b 100644 --- a/luci-app-openclash/Makefile +++ b/luci-app-openclash/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openclash -PKG_VERSION:=0.46.064 +PKG_VERSION:=0.46.075 PKG_MAINTAINER:=vernesong PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) @@ -42,8 +42,8 @@ define Package/$(PKG_NAME) SUBMENU:=3. Applications TITLE:=LuCI support for clash PKGARCH:=all - DEPENDS:=+dnsmasq-full +coreutils +coreutils-nohup +bash +curl +ca-certificates +ip-full \ - +libcap +libcap-bin +ruby +ruby-yaml +kmod-tun +unzip + DEPENDS:=+dnsmasq-full +bash +curl +ca-bundle +ip-full \ + +ruby +ruby-yaml +kmod-tun +unzip MAINTAINER:=vernesong endef @@ -122,9 +122,9 @@ endef define Package/$(PKG_NAME)/postrm #!/bin/sh - DEFAULT_DNSMASQ_CFGID="$$(uci -q show "dhcp.@dnsmasq[0]" | awk 'NR==1 {split($0, conf, /[.=]/); print conf[2]}')" + DEFAULT_DNSMASQ_CFGID="$$(uci -q show "dhcp.@dnsmasq[0]" | awk 'NR==1 {split($0, conf, /[.=]/); print conf[2]}' 2>/dev/null)" if [ -f "/tmp/etc/dnsmasq.conf.$DEFAULT_DNSMASQ_CFGID" ]; then - DNSMASQ_CONF_DIR="$$(awk -F '=' '/^conf-dir=/ {print $2}' "/tmp/etc/dnsmasq.conf.$DEFAULT_DNSMASQ_CFGID")" + DNSMASQ_CONF_DIR="$$(awk -F '=' '/^conf-dir=/ {print $2}' "/tmp/etc/dnsmasq.conf.$DEFAULT_DNSMASQ_CFGID" 2>/dev/null)" else DNSMASQ_CONF_DIR="/tmp/dnsmasq.d" fi diff --git a/luci-app-openclash/luasrc/controller/openclash.lua b/luci-app-openclash/luasrc/controller/openclash.lua index 533ce1721..09ef1b76c 100644 --- a/luci-app-openclash/luasrc/controller/openclash.lua +++ b/luci-app-openclash/luasrc/controller/openclash.lua @@ -31,6 +31,7 @@ function index() entry({"admin", "services", "openclash", "opupdate"},call("action_opupdate")) entry({"admin", "services", "openclash", "coreupdate"},call("action_coreupdate")) entry({"admin", "services", "openclash", "flush_fakeip_cache"}, call("action_flush_fakeip_cache")) + entry({"admin", "services", "openclash", "update_config"}, call("action_update_config")) entry({"admin", "services", "openclash", "download_rule"}, call("action_download_rule")) entry({"admin", "services", "openclash", "restore"}, call("action_restore_config")) entry({"admin", "services", "openclash", "backup"}, call("action_backup")) @@ -252,7 +253,7 @@ local function opcv() if fs.access("/bin/opkg") then return luci.sys.exec("rm -f /var/lock/opkg.lock && opkg status luci-app-openclash 2>/dev/null |grep 'Version' |awk -F 'Version: ' '{print \"v\"$2}'") elseif fs.access("/usr/bin/apk") then - return "v" .. luci.sys.exec("apk list luci-app-openclash 2>/dev/null |grep 'installed' | grep -oE '\\d+(\\.\\d+)*' | head -1") + return "v" .. luci.sys.exec("apk list luci-app-openclash 2>/dev/null|grep 'installed' | grep -oE '[0-9]+(\\.[0-9]+)*' | head -1") end end end @@ -347,14 +348,19 @@ function action_flush_fakeip_cache() local dase = dase() or "" local cn_port = cn_port() if not daip or not cn_port then return end - state = luci.sys.exec(string.format('curl -sL -m 3 -H "Content-Type: application/json" -H "Authorization: Bearer %s" -XPOST http://"%s":"%s"/cache/fakeip/flush', dase, daip, cn_port)) - end - luci.http.prepare_content("application/json") + state = luci.sys.exec(string.format('curl -sL -m 3 -H "Content-Type: application/json" -H "Authorization: Bearer %s" -XPOST http://"%s":"%s"/cache/fakeip/flush', dase, daip, cn_port)) + end + luci.http.prepare_content("application/json") luci.http.write_json({ flush_status = state; }) end +function action_update_config() + local filename = luci.http.formvalue("filename") or "config" + luci.sys.exec(string.format("/usr/share/openclash/openclash.sh '%s' >/dev/null 2>&1 &", filename)) +end + function action_restore_config() uci:set("openclash", "config", "enable", "0") uci:commit("openclash") @@ -364,6 +370,8 @@ function action_restore_config() luci.sys.call("cp /usr/share/openclash/backup/openclash_force_sniffing* /etc/openclash/custom/ >/dev/null 2>&1 &") luci.sys.call("cp /usr/share/openclash/backup/openclash_sniffing* /etc/openclash/custom/ >/dev/null 2>&1 &") luci.sys.call("cp /usr/share/openclash/backup/yml_change.sh /usr/share/openclash/yml_change.sh >/dev/null 2>&1 &") + luci.sys.call("cp /usr/share/openclash/backup/china_ip_route.ipset /etc/openclash/china_ip_route.ipset >/dev/null 2>&1 &") + luci.sys.call("cp /usr/share/openclash/backup/china_ip6_route.ipset /etc/openclash/china_ip6_route.ipset >/dev/null 2>&1 &") luci.sys.call("rm -rf /etc/openclash/history/* >/dev/null 2>&1 &") end diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/client.lua b/luci-app-openclash/luasrc/model/cbi/openclash/client.lua index 76ff70a3c..a5ef8caa9 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/client.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/client.lua @@ -79,11 +79,11 @@ if a then btnis.template="openclash/other_button" btnis.render=function(o,t,a) if not e[t] then return false end - if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then - a.display="" - else - a.display="none" - end + if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then + a.display="" + else + a.display="none" + end o.inputstyle="apply" Button.render(o,t,a) end @@ -95,6 +95,20 @@ if a then SYS.call("/etc/init.d/openclash restart >/dev/null 2>&1 &") HTTP.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "client")) end + + up=tb:option(DummyValue, "name", translate("Update")) + up.template = "openclash/update_config" + up.render = function(o,t,a) + local display = "none" + uci:foreach("openclash", "config_subscribe", + function(s) + if s.name == fs.filename(e[t].name) then + display = "" + end + end) + o.display = display + DummyValue.render(o,t,a) + end end if not a then @@ -152,6 +166,7 @@ o.inputstyle = "reset" o.write = function() uci:set("openclash", "config", "enable", 0) uci:commit("openclash") + SYS.call("ps | grep openclash | grep -v grep | awk '{print $1}' | xargs -r kill -9 >/dev/null 2>&1") SYS.call("/etc/init.d/openclash stop >/dev/null 2>&1 &") end diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/config-overwrite.lua b/luci-app-openclash/luasrc/model/cbi/openclash/config-overwrite.lua index 4bbf0a71e..956ff7e89 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/config-overwrite.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/config-overwrite.lua @@ -280,7 +280,7 @@ o.description = font_red..bold_on..translate("Change The Delay Calculation Metho o.default = "0" o = s:taboption("meta", ListValue, "find_process_mode", translate("Enable Process Rule")) -o.description = translate("Whether to Enable Process Rules, If You Are Not Sure, Please Choose off Which Useful in Router Environment") +o.description = translate("Whether to Enable Process Rules, Only Works on Routerself, If You Are Not Sure, Please Choose off Which Useful in Router Environment, Depend on kmod-inet-diag") o:value("0", translate("Disable")) o:value("off", translate("OFF ")) o:value("always", translate("Always ")) diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua b/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua index 8f2488e02..449155ac9 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua @@ -180,7 +180,7 @@ o:depends("sub_convert", "1") ---- custom params o = s:option(DynamicList, "custom_params", translate("Custom Params")) -o.description = font_red..bold_on..translate("eg: \"rename=\\s+([2-9])[xX]@ (HIGH:$1)\"")..bold_off..font_off +o.description = font_red..bold_on..translate("eg: \"rename=match@replace\" , \"rename=\\s+([2-9])[xX]@ (HIGH:$1)\"")..bold_off..font_off o.rmempty = false o:depends("sub_convert", "1") diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe.lua b/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe.lua index 83ec183e1..2e65794dd 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe.lua @@ -111,6 +111,10 @@ function o.cfgvalue(...) end end +---- update +o = s:option(DummyValue, "name", translate("Update")) +o.template = "openclash/update_config" + local t = { {Commit, Apply} } diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/config.lua b/luci-app-openclash/luasrc/model/cbi/openclash/config.lua index 7bd29227a..925ce9665 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/config.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/config.lua @@ -259,7 +259,7 @@ btnrn.template="openclash/input_rename" btnrn.rawhtml = true btnrn.render=function(c,t,a) c.value = e[t].name -Button.render(c,t,a) +DummyValue.render(c,t,a) end btndl = tb:option(Button,"download",translate("Download Config")) diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua b/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua index 5c5d3073d..a44ef1b74 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua @@ -100,16 +100,6 @@ o = s:option(Value, "policy_filter", translate("Provider Filter")) o.rmempty = true o.placeholder = "bgp|sg" --- [[ interface-name ]]-- -o = s:option(Value, "interface_name", translate("interface-name")) -o.rmempty = true -o.placeholder = translate("eth0") - --- [[ routing-mark ]]-- -o = s:option(Value, "routing_mark", translate("routing-mark")) -o.rmempty = true -o.placeholder = translate("2333") - o = s:option(DynamicList, "other_group", translate("Other Group (Support Regex)")) o.description = font_red..bold_on..translate("The Added Proxy Groups Must Exist Except 'DIRECT' & 'REJECT'")..bold_off..font_off o:value("all", translate("All Groups")) diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/proxy-provider-config.lua b/luci-app-openclash/luasrc/model/cbi/openclash/proxy-provider-config.lua index 502f269f1..943aef5e0 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/proxy-provider-config.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/proxy-provider-config.lua @@ -59,6 +59,7 @@ o.rmempty = true o.description = translate("Choose The Provider Type") o:value("http") o:value("file") +o:value("inline") o = s:option(Value, "name", translate("Provider Name")) o.rmempty = false @@ -134,7 +135,16 @@ function o.cfgvalue(self, section) "# proxy-name:\n".. "# - pattern: \"IPLC-(.*?)倍\"\n".. "# target: \"iplc x $1\"\n".. - "# exclude-type: \"ss|http\"" + "# exclude-type: \"ss|http\"\n".. + "\n".. + "# inline Example:\n".. + "# payload:\n".. + "# - name: \"ss1\"\n".. + "# type: ss\n".. + "# server: server\n".. + "# port: 443\n".. + "# cipher: chacha20-ietf-poly1305\n".. + "# password: \"password\"" else return Value.cfgvalue(self, section) end diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/rule-providers-config.lua b/luci-app-openclash/luasrc/model/cbi/openclash/rule-providers-config.lua index e8ccb7026..998147fde 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/rule-providers-config.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/rule-providers-config.lua @@ -57,22 +57,25 @@ o.default = "Rule-provider - "..sid o = s:option(ListValue, "type", translate("Rule Providers Type")) o.rmempty = true o.description = translate("Choose The Rule Providers Type") -o:value("http", translate("http")) -o:value("file", translate("file")) +o:value("http") +o:value("file") +o:value("inline") + +o = s:option(ListValue, "format", translate("Rule Format")) +o.rmempty = true +o.description = translate("Choose The Rule File Format, For More Info:").." ".."https://wiki.metacubex.one/config/rule-providers/content/" +o:value("yaml") +o:value("text") +o:value("mrs") +o:depends("type", "file") +o:depends("type", "http") o = s:option(ListValue, "behavior", translate("Rule Behavior")) o.rmempty = true o.description = translate("Choose The Rule Behavior") o:value("domain") o:value("ipcidr") -o:value("classical") - -o = s:option(ListValue, "format", translate("Rule Format")..translate("(TUN&Meta Core)")) -o.rmempty = true -o.description = translate("Choose The Rule File Format, For More Info:").." ".."https://wiki.metacubex.one/config/rule-providers/content/" -o:value("yaml") -o:value("text") -o:value("mrs") +o:value("classical", translate("classical").." "..translate("(Not Support mrs Format)")) o = s:option(ListValue, "path", translate("Rule Providers Path")) o.description = translate("Update Your Rule Providers File From Config Luci Page") @@ -136,6 +139,36 @@ m.uci:foreach("openclash", "groups", o:value("DIRECT") o:value("REJECT") +-- [[ other-setting ]]-- +o = s:option(Value, "other_parameters", translate("Other Parameters")) +o.template = "cbi/tvalue" +o.rows = 20 +o.wrap = "off" +o.description = font_red..bold_on..translate("Edit Your Other Parameters Here")..bold_off..font_off +o.rmempty = true +function o.cfgvalue(self, section) + if self.map:get(section, "other_parameters") == nil then + return "# Example:\n".. + "# Only support YAML, four spaces need to be reserved at the beginning of each line to maintain formatting alignment\n".. + "# 示例:\n".. + "# 仅支持 YAML, 每行行首需要多保留四个空格以使脚本处理后能够与上方配置保持格式对齐\n".. + "# inline Example:\n".. + "# payload:\n".. + "# - '.blogger.com'\n".. + "# - '*.*.microsoft.com'\n".. + "# - 'books.itunes.apple.com'\n" + else + return Value.cfgvalue(self, section) + end +end +function o.validate(self, value) + if value then + value = value:gsub("\r\n?", "\n") + value = value:gsub("%c*$", "") + end + return value +end + local t = { {Commit, Back} } @@ -159,4 +192,5 @@ o.write = function() end m:append(Template("openclash/toolbar_show")) +m:append(Template("openclash/config_editor")) return m diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua b/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua index 1607540ef..bdc7ab4d6 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua @@ -143,6 +143,7 @@ o:value("hysteria2", translate("Hysteria2 ")..translate("(Only Meta Core)")) o:value("wireguard", translate("WireGuard")..translate("(Only Meta Core)")) o:value("tuic", translate("Tuic")..translate("(Only Meta Core)")) o:value("snell", translate("Snell")) +o:value("mieru", translate("Mieru")) o:value("socks5", translate("Socks5")) o:value("http", translate("HTTP(S)")) @@ -182,6 +183,35 @@ o:depends("type", "ss") o:depends("type", "ssr") o:depends("type", "trojan") o:depends("type", "hysteria2") +o:depends("type", "mieru") + +-- [[ Mieru ]]-- +o = s:option(Value, "port_range", translate("Port Range")) +o.datatype = "portrange" +o.rmempty = true +o.default = "20000-40000" +o.placeholder = translate("20000-40000") +o:depends("type", "mieru") + +o = s:option(Value, "username", translate("Username")) +o.rmempty = false +o.placeholder = "user" +o:depends("type", "mieru") + +o = s:option(ListValue, "transport", translate("Transport")) +o.rmempty = false +o.default = "TCP" +o:value("TCP") +o:depends("type", "mieru") + +o = s:option(ListValue, "multiplexing", translate("Multiplexing")) +o.rmempty = false +o.default = "MULTIPLEXING_LOW" +o:value("MULTIPLEXING_OFF") +o:value("MULTIPLEXING_LOW") +o:value("MULTIPLEXING_MIDDLE") +o:value("MULTIPLEXING_HIGH") +o:depends("type", "mieru") -- [[ Tuic ]]-- o = s:option(Value, "tc_ip", translate("Server IP")) @@ -706,6 +736,7 @@ o:depends("type", "hysteria2") -- [[ recv_window_conn ]]-- o = s:option(Flag, "flag_quicparam", translate("Hysterir QUIC parameters")) o:depends("type", "hysteria") +o:depends("type", "hysteria2") o.rmempty = true o.default = "0" @@ -722,6 +753,34 @@ o.placeholder = translate("QUIC connection receive window") o.datatype = "uinteger" o:depends({type = "hysteria", flag_quicparam = true}) +-- [[ initial_stream_receive_window ]]-- +o = s:option(Value, "initial_stream_receive_window", translate("initial_stream_receive_window")) +o.rmempty = true +o.placeholder = translate("QUIC init stream receive window") +o.datatype = "uinteger" +o:depends({type = "hysteria2", flag_quicparam = true}) + +-- [[ max_stream_receive_window ]]-- +o = s:option(Value, "max_stream_receive_window", translate("max_stream_receive_window")) +o.rmempty = true +o.placeholder = translate("QUIC max stream receive window") +o.datatype = "uinteger" +o:depends({type = "hysteria2", flag_quicparam = true}) + +-- [[ initial_connection_receive_window ]]-- +o = s:option(Value, "initial_connection_receive_window", translate("initial_connection_receive_window")) +o.rmempty = true +o.placeholder = translate("QUIC init connection receive window") +o.datatype = "uinteger" +o:depends({type = "hysteria2", flag_quicparam = true}) + +-- [[ max_connection_receive_window ]]-- +o = s:option(Value, "max_connection_receive_window", translate("max_connection_receive_window")) +o.rmempty = true +o.placeholder = translate("QUIC max connection receive window") +o.datatype = "uinteger" +o:depends({type = "hysteria2", flag_quicparam = true}) + -- [[ hop_interval ]]-- o = s:option(Value, "hop_interval", translate("Hop Interval (Unit:second)")) o.rmempty = true @@ -806,6 +865,7 @@ o:depends({type = "vmess", obfs_vmess = "grpc"}) o = s:option(ListValue, "client_fingerprint", translate("Client Fingerprint")..translate("(Only Meta Core)")) o.rmempty = true o:value("none") +o:value("random") o:value("chrome") o:value("firefox") o:value("safari") @@ -836,6 +896,7 @@ o.rmempty = false o:value("true") o:value("false") o.default = "false" +o:depends({type = "ss", obfs = "none"}) o = s:option(ListValue, "multiplex_protocol", translate("Protocol")) o.rmempty = true diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua b/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua index 52df2871a..1e03cf117 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua @@ -14,7 +14,7 @@ font_off = [[]] bold_on = [[]] bold_off = [[]] -local op_mode = string.sub(luci.sys.exec('uci get openclash.config.operation_mode 2>/dev/null'),0,-2) +local op_mode = uci:get("openclash", "config", "operation_mode") if not op_mode then op_mode = "redir-host" end local lan_ip = fs.lanip() m = Map("openclash", translate("Plugin Settings")) @@ -99,6 +99,10 @@ o = s:taboption("op_mode", Flag, "bypass_gateway_compatible", translate("Bypass o.description = translate("If The Network Cannot be Connected in Bypass Gateway Mode, Please Try to Enable.")..font_red..bold_on..translate("Suggestion: If The Device Does Not Have WLAN, Please Disable The Lan Interface's Bridge Option")..bold_off..font_off o.default = 0 +o = s:taboption("op_mode", Flag, "disable_quic_go_gso", translate("Disable quic-go GSO Support")) +o.description = font_red..bold_on..translate("Suggestion: If Encountering Issues With QUIC UDP on The Linux Kernel Version Above 6.6, Please Try to Enable.")..bold_off..font_off +o.default = 0 + o = s:taboption("op_mode", Flag, "small_flash_memory", translate("Small Flash Memory")) o.description = translate("Move Core And GEOIP Data File To /tmp/etc/openclash For Small Flash Memory Device") o.default = 0 @@ -120,12 +124,6 @@ o = s:taboption("dns", DummyValue, "flush_fakeip_cache", translate("Flush Fake-I o.template = "openclash/flush_fakeip_cache" end -o = s:taboption("dns", Flag, "disable_masq_cache", translate("Disable Dnsmasq's DNS Cache")) -o.description = translate("Recommended Enabled For Avoiding Some Connection Errors")..font_red..bold_on..translate("(Maybe Incompatible For Your Firmware)")..bold_off..font_off -o.default = 0 -o:depends("enable_redirect_dns", "1") -o:depends("enable_redirect_dns", "0") - o = s:taboption("dns", Flag, "enable_custom_domain_dns_server", translate("Enable Specify DNS Server")) o.default = 0 o:depends("enable_redirect_dns", "1") @@ -216,9 +214,10 @@ o.cfgvalue = function(...) end ip_ac = s2:option(Value, "src_ip", translate("Internal addresses")) -ip_ac.datatype = "ipmask" +ip_ac.datatype = "or(ipmask, string)" ip_ac.placeholder = "0.0.0.0/0" -ip_ac.rmempty = false +ip_ac.rmempty = true +ip_ac:value("localnetwork", translate("Local Network")) o = s2:option(Value, "src_port", translate("Internal ports")) o.datatype = "or(port, portrange)" @@ -240,8 +239,9 @@ o.default = "tcp" o.rmempty = false o = s2:option(ListValue, "target", translate("Target")) -o:value("return", translate("Return")) -o:value("accept", translate("Accept")) +o:value("return", translate("RETURN")) +o:value("accept", translate("ACCEPT")) +o:value("drop", translate("DROP")) o.rmempty = false luci.ip.neighbors({ family = 4 }, function(n) @@ -375,6 +375,7 @@ o = s:taboption("stream_enhance", Value, "stream_auto_select_interval", translat o.default = "30" o.datatype = "uinteger" o:depends("stream_auto_select", "1") +o.rmempty = true o = s:taboption("stream_enhance", ListValue, "stream_auto_select_logic", font_red..bold_on..translate("Auto Select Logic")..bold_off..font_off) o.default = "urltest" @@ -398,27 +399,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_netflix", translate("Group Filter")) -o.default = "Netflix|奈飞" o.placeholder = "Netflix|奈飞" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_netflix", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_netflix", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "HK|SG|TW" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_netflix", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_netflix") then - fs.unlink("/tmp/openclash_Netflix_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_netflix", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_netflix", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "Netflix", translate("Manual Test")) o.rawhtml = true @@ -432,27 +427,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_disney", translate("Group Filter")) -o.default = "Disney|迪士尼" o.placeholder = "Disney|迪士尼" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_disney", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_disney", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "HK|SG|TW" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_disney", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_disney") then - fs.unlink("/tmp/openclash_Disney Plus_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_disney", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_disney", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "Disney Plus", translate("Manual Test")) o.rawhtml = true @@ -466,27 +455,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_ytb", translate("Group Filter")) -o.default = "YouTube|油管" o.placeholder = "YouTube|油管" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_ytb", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_ytb", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "HK|US" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_ytb", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_ytb") then - fs.unlink("/tmp/openclash_YouTube Premium_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_ytb", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_ytb", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "YouTube Premium", translate("Manual Test")) o.rawhtml = true @@ -500,27 +483,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_prime_video", translate("Group Filter")) -o.default = "Amazon|Prime Video" o.placeholder = "Amazon|Prime Video" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_prime_video", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_prime_video", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "HK|US|SG" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_prime_video", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_prime_video") then - fs.unlink("/tmp/openclash_Amazon Prime Video_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_prime_video", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_prime_video", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "Amazon Prime Video", translate("Manual Test")) o.rawhtml = true @@ -534,27 +511,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_max", translate("Group Filter")) -o.default = "HBO|HBOMax|HBO Max" o.placeholder = "HBO|HBOMax|HBO Max" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_hbo_max", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_hbo_max", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "US" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_hbo_max", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_hbo_max") then - fs.unlink("/tmp/openclash_HBO Max_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_hbo_max", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_hbo_max", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "HBO Max", translate("Manual Test")) o.rawhtml = true @@ -568,27 +539,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_tvb_anywhere", translate("Group Filter")) -o.default = "TVB" o.placeholder = "TVB" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_tvb_anywhere", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_tvb_anywhere", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "HK|SG|TW" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_tvb_anywhere", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_tvb_anywhere") then - fs.unlink("/tmp/openclash_TVB Anywhere+_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_tvb_anywhere", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_tvb_anywhere", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "TVB Anywhere+", translate("Manual Test")) o.rawhtml = true @@ -602,27 +567,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_dazn", translate("Group Filter")) -o.default = "DAZN" o.placeholder = "DAZN" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_dazn", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_dazn", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "DE" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_dazn", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_dazn") then - fs.unlink("/tmp/openclash_DAZN_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_dazn", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_dazn", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "DAZN", translate("Manual Test")) o.rawhtml = true @@ -636,27 +595,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_paramount_plus", translate("Group Filter")) -o.default = "Paramount" o.placeholder = "Paramount" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_paramount_plus", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_paramount_plus", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "US" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_paramount_plus", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_paramount_plus") then - fs.unlink("/tmp/openclash_Paramount Plus_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_paramount_plus", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_paramount_plus", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "Paramount Plus", translate("Manual Test")) o.rawhtml = true @@ -670,27 +623,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_discovery_plus", translate("Group Filter")) -o.default = "Discovery" o.placeholder = "Discovery" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_discovery_plus", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_discovery_plus", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "US" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_discovery_plus", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_discovery_plus") then - fs.unlink("/tmp/openclash_Discovery Plus_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_discovery_plus", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_discovery_plus", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "Discovery Plus", translate("Manual Test")) o.rawhtml = true @@ -704,10 +651,10 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_bilibili", translate("Group Filter")) -o.default = "Bilibili" o.placeholder = "Bilibili" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_bilibili", "1") +o.rmempty = true o = s:taboption("stream_enhance", ListValue, "stream_auto_select_region_key_bilibili", translate("Unlock Region Filter")) o.default = "CN" @@ -716,17 +663,12 @@ o:value("HK/MO/TW", translate("Hongkong/Macau/Taiwan")) o:value("TW", translate("Taiwan Only")) o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_bilibili", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_bilibili") then - fs.unlink("/tmp/openclash_Bilibili_region") - end - return value -end +o.rmempty = false o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_bilibili", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_bilibili", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "Bilibili", translate("Manual Test")) o.rawhtml = true @@ -740,15 +682,15 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_google_not_cn", translate("Group Filter")) -o.default = "Google" o.placeholder = "Google" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_google_not_cn", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_google_not_cn", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_google_not_cn", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "Google", translate("Manual Test")) o.rawhtml = true @@ -762,27 +704,21 @@ o.default = 0 o:depends("stream_auto_select", "1") o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_openai", translate("Group Filter")) -o.default = "OpenAI|ChatGPT" o.placeholder = "OpenAI|ChatGPT|AI" o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_openai", "1") +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_openai", translate("Unlock Region Filter")) -o.default = "" o.placeholder = "US" o.description = translate("It Will Be Selected Region(Country Shortcode) According To The Regex") o:depends("stream_auto_select_openai", "1") -function o.validate(self, value) - if value ~= m.uci:get("openclash", "config", "stream_auto_select_region_key_openai") then - fs.unlink("/tmp/openclash_OpenAI_region") - end - return value -end +o.rmempty = true o = s:taboption("stream_enhance", Value, "stream_auto_select_node_key_openai", translate("Unlock Nodes Filter")) -o.default = "" o.description = translate("It Will Be Selected Nodes According To The Regex") o:depends("stream_auto_select_openai", "1") +o.rmempty = true o = s:taboption("stream_enhance", DummyValue, "OpenAI", translate("Manual Test")) o.rawhtml = true @@ -1068,6 +1004,10 @@ o = s:taboption("dashboard", DummyValue, "Metacubexd", translate("Update Metacub o.template="openclash/switch_dashboard" o.rawhtml = true +o = s:taboption("dashboard", DummyValue, "zashboard", translate("Update zashboard Version")) +o.template="openclash/switch_dashboard" +o.rawhtml = true + ---- ipv6 o = s:taboption("ipv6", Flag, "ipv6_enable", translate("Proxy IPv6 Traffic")) o.description = font_red..bold_on..translate("The Gateway and DNS of The Connected Device Must be The Router IP, Disable IPv6 DHCP To Avoid Abnormal Connection If You Do Not Use")..bold_off..font_off diff --git a/luci-app-openclash/luasrc/openclash.lua b/luci-app-openclash/luasrc/openclash.lua index dd8638043..27bfa0fcb 100644 --- a/luci-app-openclash/luasrc/openclash.lua +++ b/luci-app-openclash/luasrc/openclash.lua @@ -247,8 +247,11 @@ unlink = fs.unlink readlink = fs.readlink function filename(str) + if not str then + return nil + end local idx = str:match(".+()%.%w+$") - if(idx) then + if idx then return str:sub(1, idx-1) else return str diff --git a/luci-app-openclash/luasrc/view/openclash/config_editor.htm b/luci-app-openclash/luasrc/view/openclash/config_editor.htm index 89a5f0f35..da5c99714 100644 --- a/luci-app-openclash/luasrc/view/openclash/config_editor.htm +++ b/luci-app-openclash/luasrc/view/openclash/config_editor.htm @@ -28,6 +28,7 @@ + @@ -87,6 +88,33 @@ local sconf = "/etc/openclash/"..conf_name + +<% + if display == "" then +%> + +<% + end +%> +<%+cbi/valuefooter%> diff --git a/luci-app-openclash/po/zh-cn/openclash.zh-cn.po b/luci-app-openclash/po/zh-cn/openclash.zh-cn.po index 72255cc47..d84d11944 100644 --- a/luci-app-openclash/po/zh-cn/openclash.zh-cn.po +++ b/luci-app-openclash/po/zh-cn/openclash.zh-cn.po @@ -215,15 +215,6 @@ msgstr "使用 Dnsmasq 转发" msgid "Firewall Redirect" msgstr "使用防火墙转发" -msgid "Disable Dnsmasq's DNS Cache" -msgstr "禁止 Dnsmasq 缓存 DNS" - -msgid "Recommended Enabled For Avoiding Some Connection Errors" -msgstr "推荐启用,防止因缓存造成连接错误" - -msgid "(Maybe Incompatible For Your Firmware)" -msgstr "(部分固件可能不兼容)" - msgid "Custom DNS Setting" msgstr "*自定义上游 DNS 服务器" @@ -789,6 +780,18 @@ msgstr "启用传输协议设置" msgid "Hysterir QUIC parameters" msgstr "QUIC 参数" +msgid "QUIC init stream receive window" +msgstr "QUIC 初始流接收窗口大小" + +msgid "QUIC max stream receive window" +msgstr "QUIC 最大的流接收窗口大小" + +msgid "QUIC init connection receive window" +msgstr "QUIC 初始的连接接收窗口大小" + +msgid "QUIC max connection receive window" +msgstr "QUIC 最大的连接接收窗口大小" + msgid "Edit Rule Providers" msgstr "编辑规则集配置" @@ -1189,13 +1192,16 @@ msgid "Running Mode" msgstr "运行模式" msgid "Yacd Control Panel" -msgstr "Yacd 控制面板" +msgstr "Yacd 面板" msgid "Dashboard Control Panel" -msgstr "Dashboard 控制面板" +msgstr "Dashboard 面板" msgid "Metacubexd Control Panel" -msgstr "Metacubexd 控制面板" +msgstr "Metacubexd 面板" + +msgid "zashboard Control Panel" +msgstr "zashboard 面板" msgid "Control Panel Login IP" msgstr "控制面板登录 IP" @@ -1605,8 +1611,11 @@ msgstr "开始下载" msgid "Download Successful, Start Pre Update Test..." msgstr "下载成功,开始进行更新前测试..." -msgid "Pre Update Test Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually!" -msgstr "更新前测试失败,文件保存在 /tmp/openclash.ipk,请尝试手动更新!" +msgid "Pre Update Test Failed, The File is Saved in /tmp/openclash.apk, Please Try to Update Manually With" +msgstr "更新前测试失败,文件保存在 /tmp/openclash.apk,请尝试以下命令手动更新" + +msgid "Pre Update Test Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually With" +msgstr "更新前测试失败,文件保存在 /tmp/openclash.ipk,请尝试以下命令手动更新" msgid "Pre Update Test Passed, Ready to Update and Please Do not Refresh The Page and Other Operations..." msgstr "更新前测试通过,准备开始更新,更新过程请不要刷新页面和进行其他操作..." @@ -1620,11 +1629,11 @@ msgstr "正在安装新版本,更新过程请不要刷新页面和进行其他 msgid "OpenClash Update Successful, About To Restart!" msgstr "OpenClash 更新成功,即将进行重启!" -msgid "OpenClash Update Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually!" -msgstr "OpenClash 更新失败,文件保存在 /tmp/openclash.ipk,请尝试手动更新!" +msgid "OpenClash Update Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually With" +msgstr "OpenClash 更新失败,文件保存在 /tmp/openclash.ipk,请尝试以下命令手动更新" -msgid "OpenClash Update Failed, The File is Saved in /tmp/openclash.apk, Please Try to Update Manually!" -msgstr "OpenClash 更新失败,文件保存在 /tmp/openclash.apk,请尝试手动更新!" +msgid "OpenClash Update Failed, The File is Saved in /tmp/openclash.apk, Please Try to Update Manually With" +msgstr "OpenClash 更新失败,文件保存在 /tmp/openclash.apk,请尝试以下命令手动更新" msgid "Download Failed, Please Check The Network or Try Again Later!" msgstr "下载失败,请检查网络或稍后再试!" @@ -1965,12 +1974,6 @@ msgstr "提示:检测到大陆白名单列表不存在,准备开始下载... msgid "Tip: Detected that the Chnroute Cidr List Format is wrong, Ready to Reformat..." msgstr "提示:检测到大陆白名单列表格式错误,准备重新格式化..." -msgid "Error: Could Not Load The Capsh Library, Please Verify The Capsh Shell Library Work Well..." -msgstr "错误:Capsh 异常,请尝试重新安装依赖【libcap】和相应的Capsh库,终止启动..." - -msgid "Tip: You Could Download And Re-Install The libcap & libcap-bin Library From The Address Give" -msgstr "提示:你可以尝试从给出的地址中查找、下载并重新安装架构对应的 libcap 和 libcap-bin 依赖" - msgid "Error: OpenClash Can Not Start, Please Check The Error Info And Try Again!" msgstr "错误:OpenClash 启动失败,请到日志页面查看详细错误信息!" @@ -2043,18 +2046,6 @@ msgstr "重置 OpenClash 防火墙规则..." msgid "Warning: OpenClash Now Disabled, Need Start From Luci Page, Exit..." msgstr "警告:OpenClash 目前处于未启用状态,请从插件页面启动本插件,脚本退出..." -msgid "Warning: Multiple Restart Scripts Running, Exit..." -msgstr "警告:多个 OpenClash 启动脚本运行中,此脚本退出..." - -msgid "Watchdog: Multiple Clash Processes, Kill All..." -msgstr "守护程序:检测到多个 Clash 内核运行,清理中..." - -msgid "Watchdog: Clash Core Problem, Restart..." -msgstr "守护程序:检测到 Clash 内核崩溃,重启中..." - -msgid "Watchdog: Already Restart 3 Times With Clash Core Problem, Auto-Exit..." -msgstr "守护程序:已尝试自动重启三次 Clash 内核,为防止频繁重启造成严重后果,OpenClash 将停止运行..." - msgid "Watchdog: Log Size Limit, Clean Up All Log Records..." msgstr "守护程序:因日志大小限制,清理所有日志内容..." @@ -2721,8 +2712,8 @@ msgstr "未选择上传文件" msgid "Custom Params" msgstr "自定义参数" -msgid "eg: \"rename=\\s+([2-9])[xX]@ (HIGH:$1)\"" -msgstr "格式示例:\"rename=\\s+([2-9])[xX]@ (高倍率:$1)\"" +msgid "eg: \"rename=match@replace\" , \"rename=\\s+([2-9])[xX]@ (HIGH:$1)\"" +msgstr "格式示例:\"rename=match@replace\" , \"rename=\\s+([2-9])[xX]@ (高倍率:$1)\"" msgid "Use Rule Provider" msgstr "使用规则集" @@ -2958,6 +2949,9 @@ msgstr "切换(更新) Yacd 版本" msgid "Update Metacubexd Version" msgstr "更新 Metacubexd 版本" +msgid "Update zashboard Version" +msgstr "更新 zashboard 版本" + msgid "Downloading File..." msgstr "文件下载中..." @@ -3051,6 +3045,9 @@ msgstr "警告:TUN 接口启动失败,尝试重启内核..." msgid "Error: Core Start Failed, Please Check The Log Infos!" msgstr "错误:内核启动失败,请查看《内核日志》排查失败原因!" +msgid "Error: Core Status Abnormal, Please Check The Log Infos!" +msgstr "错误:内核状态异常,请查看《内核日志》排查异常原因!" + msgid "Forced Sniff Pure IP Connections" msgstr "强制探测(嗅探)所有纯 IP 的连接" @@ -3102,8 +3099,8 @@ msgstr "测速(连通性)间隔修改" msgid "Modify The URL-Test Interval In The Config" msgstr "修改配置文件中的测速(连通性)间隔" -msgid "Whether to Enable Process Rules, If You Are Not Sure, Please Choose off Which Useful in Router Environment" -msgstr "是否启用进程规则,在路由环境下保持关闭可以提升性能" +msgid "Whether to Enable Process Rules, Only Works on Routerself, If You Are Not Sure, Please Choose off Which Useful in Router Environment, Depend on kmod-inet-diag" +msgstr "是否启用进程规则,仅能匹配路由器自身进程,在路由环境下保持关闭可以提升性能,依赖 kmod-inet-diag" msgid "Enable Process Rule" msgstr "启用进程规则" @@ -3451,4 +3448,25 @@ msgid "Target" msgstr "对象" msgid "Error: Network Anomaly, Suspend Unlock Detection..." -msgstr "错误:网络异常,暂停解锁检测..." \ No newline at end of file +msgstr "错误:网络异常,暂停解锁检测..." + +msgid "(Not Support mrs Format)" +msgstr "(不支持 mrs 格式)" + +msgid "UpDate" +msgstr "更新" + +msgid "Local Network" +msgstr "内部网络地址" + +msgid "Error: LAN IP Address Get Error, Please Check The LAN Interface Setting or Choose the Correct Interface in the Setting!" +msgstr "错误:LAN IP 地址获取失败,请检查 LAN 接口设置或在插件设置中选择正确的 LAN 接口名称" + +msgid "Warning: Skiped The Custom Rule Because Group & Proxy Not Found:" +msgstr "警告:因未找到对应的策略组或代理,为避免启动失败,已跳过此条自定义规则的添加:" + +msgid "Disable quic-go GSO Support" +msgstr "禁用 quic-go GSO 支持" + +msgid "Suggestion: If Encountering Issues With QUIC UDP on The Linux Kernel Version Above 6.6, Please Try to Enable." +msgstr "建议: 如果固件 Linux 核心版本在 6.6 以上时遇到 quic-go 的 UDP 连接问题,请尝试启用。" \ No newline at end of file diff --git a/luci-app-openclash/root/etc/init.d/openclash b/luci-app-openclash/root/etc/init.d/openclash index 5fbd2f2f6..93e20858c 100644 --- a/luci-app-openclash/root/etc/init.d/openclash +++ b/luci-app-openclash/root/etc/init.d/openclash @@ -3,6 +3,7 @@ START=99 STOP=15 +USE_PROCD=1 . $IPKG_INSTROOT/usr/share/openclash/openclash_ps.sh . $IPKG_INSTROOT/usr/share/openclash/ruby.sh @@ -32,20 +33,9 @@ CACHE_PATH_OLD="/etc/openclash/.cache" CACHE_PATH="/etc/openclash/cache.db" LOG_FILE="/tmp/openclash.log" START_LOG="/tmp/openclash_start.log" -LOCK_FILE="/tmp/lock/openclash.lock" PROXY_FWMARK="0x162" PROXY_ROUTE_TABLE="0x162" -set_lock() { - exec 888>"$LOCK_FILE" 2>/dev/null - flock -x 888 2>/dev/null -} - -del_lock() { - flock -u 888 2>/dev/null - rm -rf "$LOCK_FILE" -} - add_cron() { [ "$(tail -n1 /etc/crontabs/root | wc -l)" -eq 0 ] && [ -n "$(cat /etc/crontabs/root 2>/dev/null)" ] && echo >> /etc/crontabs/root @@ -71,7 +61,7 @@ add_cron() [ "$(uci -q get openclash.config.auto_restart)" -eq 1 ] && echo "0 $(uci -q get openclash.config.auto_restart_day_time) * * $(uci -q get openclash.config.auto_restart_week_time) /etc/init.d/openclash restart 2>/dev/null" >> $CRON_FILE } crontab $CRON_FILE - nohup /usr/share/openclash/openclash_watchdog.sh & + start_watchdog } del_cron() @@ -173,7 +163,7 @@ change_dns() { if [ "$1" -eq 1 ]; then uci -q del openclash.config.dnsmasq_server config_load "dhcp" - config_list_foreach "$(uci show dhcp.@dnsmasq[0].server |awk -F '.' '{print $2}')" "server" save_dnsmasq_server + config_list_foreach "$(uci -q show dhcp.@dnsmasq[0].server |awk -F '.' '{print $2}')" "server" save_dnsmasq_server uci -q del dhcp.@dnsmasq[-1].server uci -q add_list dhcp.@dnsmasq[0].server=127.0.0.1#"$dns_port" uci -q set openclash.config.dnsmasq_noresolv="$(uci -q get dhcp.@dnsmasq[0].noresolv)" @@ -182,15 +172,11 @@ change_dns() { uci -q set dhcp.@dnsmasq[0].noresolv=1 uci -q set dhcp.@dnsmasq[0].localuse=1 uci -q set openclash.config.redirect_dns=1 - else - uci -q set openclash.config.redirect_dns=0 - fi - - if [ "$1" -eq 1 ] && [ "$2" -eq 1 ]; then uci -q set openclash.config.dnsmasq_cachesize="$(uci -q get dhcp.@dnsmasq[0].cachesize)" uci -q set dhcp.@dnsmasq[0].cachesize=0 uci -q set openclash.config.cachesize_dns=1 else + uci -q set openclash.config.redirect_dns=0 uci -q set openclash.config.cachesize_dns=0 fi @@ -296,7 +282,6 @@ start_fail() { kill_clash stop - del_lock exit 0 } @@ -341,8 +326,7 @@ if [ ! -f "$RAW_CONFIG_FILE" ]; then config_foreach sub_info_get "config_subscribe" "$RAW_CONFIG_FILE" if [ "$subscribe_enable" = "1" ]; then LOG_OUT "【$RAW_CONFIG_FILE】Config File Does Not Exist, You Have Set Subscription Information, Ready To Download..." - nohup /usr/share/openclash/openclash.sh "$RAW_CONFIG_FILE" & - del_lock + /usr/share/openclash/openclash.sh "$RAW_CONFIG_FILE" & exit 0 fi fi @@ -365,7 +349,6 @@ fi 2>/dev/null if [ ! -f "$RAW_CONFIG_FILE" ]; then LOG_OUT "Error: Config Not Found" - del_lock exit 0 fi @@ -641,16 +624,6 @@ do_run_file() ln -s "$HISTORY_PATH" "$CACHE_PATH" 2>/dev/null fi - if ! capsh --is-uid=0 >/dev/null || ! capsh --has-ambient >/dev/null; then - LOG_OUT "Error: Could Not Load The Capsh Library, Please Verify The Capsh Shell Library Work Well..." - LOG_OUT "Tip: You Could Download And Re-Install The libcap & libcap-bin Library From The Address Give" - echo "" >> $LOG_FILE - echo "---------- https://mirrors.cloud.tencent.com/lede/snapshots/packages/ ----------" >> $LOG_FILE - echo "" >> $LOG_FILE - start_fail - fi - - #创建原始备份 if [ ! -f "$2" ]; then cp "$1" "$2" @@ -664,7 +637,7 @@ do_run_file() start_run_core() { - ulimit -SHn 65535 2>/dev/null + ulimit -SHn 1000000 2>/dev/null ulimit -v unlimited 2>/dev/null ulimit -u unlimited 2>/dev/null modprobe tun >/dev/null 2>&1 @@ -674,9 +647,16 @@ start_run_core() fi chown root:root /etc/openclash/core/* 2>/dev/null kill_clash - #使用nobody启动内核方便代理路由自身流量 - capabilties="cap_sys_resource,cap_dac_override,cap_net_raw,cap_net_bind_service,cap_net_admin,cap_sys_ptrace,cap_sys_admin" - capsh --caps="${capabilties}+eip" -- -c "capsh --user=nobody --addamb='${capabilties}' -- -c 'nohup $CLASH -d $CLASH_CONFIG -f \"$CONFIG_FILE\" >> $LOG_FILE 2>&1 &'" >> $LOG_FILE 2>&1 + procd_open_instance "openclash" + procd_set_param command /bin/sh -c "$CLASH -d $CLASH_CONFIG -f \"$CONFIG_FILE\" >> $LOG_FILE 2>&1" + procd_set_param user "root" + procd_set_param group "nogroup" + procd_set_param limits nproc="unlimited" as="unlimited" memlock="unlimited" nofile="1000000 1000000" + procd_set_param respawn 3600 3 10 + procd_set_param capabilities "/etc/capabilities/openclash.json" + procd_set_param stderr 1 + procd_set_param no_new_privs 1 + procd_close_instance } #防火墙设置部分 @@ -756,6 +736,11 @@ check_core_status() TUN_WAIT=0 TUN_RESTART=1 CORE_HTTP_CODE=0 + + if [ -z "$(pidof clash)" ]; then + sleep 5 + fi + if [ -n "$en_mode_tun" ] || [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then if [ -n "$en_mode_tun" ]; then ip_="ip" @@ -786,40 +771,47 @@ check_core_status() fi fi - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - ip -6 rule del oif utun table 2022 >/dev/null 2>&1 - ip -6 route del default dev utun table 2022 >/dev/null 2>&1 - ip -6 route add default dev utun table "$PROXY_ROUTE_TABLE" - ip -6 rule add fwmark "$PROXY_FWMARK" ipproto icmp table main pref 8000 - ip -6 rule add fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" pref 8001 - fi + if [ -n "$(pidof clash)" ]; then + if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then + ip -6 rule del oif utun table 2022 >/dev/null 2>&1 + ip -6 route del default dev utun table 2022 >/dev/null 2>&1 + ip -6 route add default dev utun table "$PROXY_ROUTE_TABLE" + ip -6 rule add fwmark "$PROXY_FWMARK" ipproto icmp table main pref 1888 + ip -6 rule add fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" pref 1889 + fi - ip route add default dev utun table "$PROXY_ROUTE_TABLE" - ip rule add fwmark "$PROXY_FWMARK" ipproto icmp table main pref 8000 - ip rule add fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" pref 8001 + ip route add default dev utun table "$PROXY_ROUTE_TABLE" + ip rule add fwmark "$PROXY_FWMARK" ipproto icmp table main pref 1888 + ip rule add fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" pref 1889 + fi else reg4='^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$' - while ( [ -n "$(pidof clash)" ] && [ "$CORE_HTTP_CODE" != "200" ] && [ "$TUN_RESTART" -le 120 ] && [[ "$lan_ip" =~ $reg4 ]] ) + while ( [ -n "$(pidof clash)" ] && [ "$CORE_HTTP_CODE" != "200" ] && [ "$TUN_WAIT" -le 120 ] && [[ "$lan_ip" =~ $reg4 ]] ) do CORE_HTTP_CODE=$(curl -m 5 -o /dev/null -s -w '%{http_code}' -H 'Content-Type: application/json' -H "Authorization: Bearer ${da_password}" -XGET http://${lan_ip}:${cn_port}/group) let TUN_WAIT++ sleep 1 done >/dev/null 2>&1 if ! [[ "$lan_ip" =~ $reg4 ]]; then + LOG_OUT "Error: LAN IP Address Get Error, Please Check The LAN Interface Setting or Choose the Correct Interface in the Setting!" sleep 10 fi - if [ -z "$(pidof clash)" ]; then - LOG_OUT "Error: Core Start Failed, Please Check The Log Infos!" + if [ "$CORE_HTTP_CODE" != "200" ]; then + LOG_OUT "Error: Core Status Abnormal, Please Check The Log Infos!" start_fail fi fi + if [ -z "$(pidof clash)" ]; then + LOG_OUT "Error: Core Start Failed, Please Check The Log Infos!" + start_fail + fi } firewall_lan_ac_traffic() { local src_port src_ip proto target enabled family comment config_get "src_port" "$section" "src_port" "" - config_get "src_ip" "$section" "src_ip" "" + config_get "src_ip" "$section" "src_ip" "localnetwork" config_get "proto" "$section" "proto" "both" config_get "target" "$section" "target" "return" config_get "enabled" "$section" "enabled" "0" @@ -837,80 +829,112 @@ firewall_lan_ac_traffic() if [ $proto == "both" ]; then e_tcp=true; e_udp=true; fi if [ -n "$FW4" ]; then + if [ "$src_ip" == "localnetwork" ]; then + src_ip="@localnetwork" + src_ip_v6="@localnetwork6" + else + src_ip="{ $src_ip }" + src_ip_v6="{ $src_ip }" + fi + if [ "$family" == "both" ] || [ "$family" == "ipv4" ]; then if [ -z "$en_mode_tun" ] || [ "$en_mode_tun" -eq 2 ]; then if $e_tcp ; then - nft insert rule inet fw4 openclash_output position 0 meta nfproto {ipv4} ip daddr != { "$fakeip_range" } ip saddr { "$src_ip" } tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 - nft insert rule inet fw4 openclash position 0 ip daddr != { "$fakeip_range" } ip saddr { "$src_ip" } tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_output position 0 meta nfproto {ipv4} ip daddr != { "$fakeip_range" } ip saddr "$src_ip" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash position 0 ip daddr != { "$fakeip_range" } ip saddr "$src_ip" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 fi if $e_udp ; then - nft insert rule inet fw4 openclash_mangle_output position 0 meta nfproto {ipv4} ip daddr != { "$fakeip_range" } ip saddr { "$src_ip" } udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 - nft insert rule inet fw4 openclash_mangle position 0 ip daddr != { "$fakeip_range" } ip saddr { "$src_ip" } udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle_output position 0 meta nfproto {ipv4} ip daddr != { "$fakeip_range" } ip saddr "$src_ip" udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle position 0 ip daddr != { "$fakeip_range" } ip saddr "$src_ip" udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 fi elif [ "$en_mode_tun" -eq 1 ]; then if $e_tcp ; then - nft insert rule inet fw4 openclash_mangle_output position 0 meta nfproto {ipv4} ip daddr != { "$fakeip_range" } ip saddr { "$src_ip" } tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 - nft insert rule inet fw4 openclash_mangle position 0 ip daddr != { "$fakeip_range" } ip saddr { "$src_ip" } tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle_output position 0 meta nfproto {ipv4} ip daddr != { "$fakeip_range" } ip saddr "$src_ip" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle position 0 ip daddr != { "$fakeip_range" } ip saddr "$src_ip" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 fi if $e_udp ; then - nft insert rule inet fw4 openclash_mangle_output position 0 meta nfproto {ipv4} ip daddr != { "$fakeip_range" } ip saddr { "$src_ip" } udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 - nft insert rule inet fw4 openclash_mangle position 0 ip daddr != { "$fakeip_range" } ip saddr { "$src_ip" } udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle_output position 0 meta nfproto {ipv4} ip daddr != { "$fakeip_range" } ip saddr "$src_ip" udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle position 0 ip daddr != { "$fakeip_range" } ip saddr "$src_ip" udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 fi fi + if $e_tcp ; then + nft insert rule inet fw4 openclash_post position 0 ip daddr != { "$fakeip_range" } ip saddr "$src_ip" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + fi + if $e_udp ; then + nft insert rule inet fw4 openclash_post position 0 ip daddr != { "$fakeip_range" } ip saddr "$src_ip" udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + fi fi if [ "$ipv6_enable" -eq 1 ]; then if [ "$family" == "both" ] || [ "$family" == "ipv6" ]; then if $e_tcp ; then - nft insert rule inet fw4 openclash_v6 position 0 ip6 saddr { "$src_ip" } tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 - nft insert rule inet fw4 openclash_output_v6 position 0 ip6 saddr { "$src_ip" } tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 - nft insert rule inet fw4 openclash_mangle_v6 position 0 ip6 saddr { "$src_ip" } tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 - nft insert rule inet fw4 openclash_mangle_output_v6 position 0 meta nfproto {ipv6} ip6 saddr { "$src_ip" } tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_v6 position 0 ip6 saddr "$src_ip_v6" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_output_v6 position 0 ip6 saddr "$src_ip_v6" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle_v6 position 0 ip6 saddr "$src_ip_v6" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle_output_v6 position 0 meta nfproto {ipv6} ip6 saddr "$src_ip_v6" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_post_v6 position 0 ip6 saddr "$src_ip_v6" tcp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 fi if $e_udp ; then - nft insert rule inet fw4 openclash_mangle_v6 position 0 ip6 saddr { "$src_ip" } udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 - nft insert rule inet fw4 openclash_mangle_output_v6 position 0 meta nfproto {ipv6} ip6 saddr { "$src_ip" } udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle_v6 position 0 ip6 saddr "$src_ip_v6" udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_mangle_output_v6 position 0 meta nfproto {ipv6} ip6 saddr "$src_ip_v6" udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 + nft insert rule inet fw4 openclash_post_v6 position 0 ip6 saddr "$src_ip_v6" udp sport "$src_port" counter $target comment "\"$comment\"" >/dev/null 2>&1 fi fi fi else + if [ "$src_ip" == "localnetwork" ]; then + src_ip="-m set --match-set localnetwork src" + src_ip_v6="-m set --match-set localnetwork6 src" + else + src_ip="-s ${src_ip}" + src_ip_v6="-s ${src_ip}" + fi src_port=$(echo $src_port |sed "s/-/:/g" 2>/dev/null) if [ $target == "accept" ]; then target="ACCEPT"; fi if [ $target == "return" ]; then target="RETURN"; fi + if [ $target == "drop" ]; then target="DROP"; fi if [ "$family" == "both" ] || [ "$family" == "ipv4" ]; then if [ -z "$en_mode_tun" ] || [ "$en_mode_tun" -eq 2 ]; then if $e_tcp ; then - iptables -t nat -I openclash_output -p tcp ! -d "$fakeip_range" -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 - iptables -t nat -I openclash -p tcp ! -d "$fakeip_range" -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + iptables -t nat -I openclash_output -p tcp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + iptables -t nat -I openclash -p tcp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 fi if $e_udp ; then - iptables -t mangle -I openclash_output -p udp ! -d "$fakeip_range" -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 - iptables -t mangle -I openclash -p udp ! -d "$fakeip_range" -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + iptables -t mangle -I openclash_output -p udp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + iptables -t mangle -I openclash -p udp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 fi elif [ "$en_mode_tun" -eq 1 ]; then if $e_tcp ; then - iptables -t mangle -I openclash_output -p tcp ! -d "$fakeip_range" -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 - iptables -t mangle -I openclash -p tcp ! -d "$fakeip_range" -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + iptables -t mangle -I openclash_output -p tcp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + iptables -t mangle -I openclash -p tcp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 fi if $e_udp ; then - iptables -t mangle -I openclash_output -p udp ! -d "$fakeip_range" -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 - iptables -t mangle -I openclash -p udp ! -d "$fakeip_range" -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + iptables -t mangle -I openclash_output -p udp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + iptables -t mangle -I openclash -p udp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 fi fi + if $e_tcp ; then + iptables -t nat -I openclash_post -p tcp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + fi + if $e_udp ; then + iptables -t nat -I openclash_post -p udp ! -d "$fakeip_range" "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + fi fi if [ "$ipv6_enable" -eq 1 ]; then if [ "$family" == "both" ] || [ "$family" == "ipv6" ]; then if $e_tcp ; then - ip6tables -t nat -I openclash -s "$src_ip" -p tcp --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 - ip6tables -t nat -A openclash_output -s "$src_ip" -p tcp --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 - ip6tables -t mangle -I openclash -s "$src_ip" -p tcp --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 - ip6tables -t mangle -I openclash_output -p tcp -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + ip6tables -t nat -I openclash "$src_ip_v6" -p tcp --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + ip6tables -t nat -A openclash_output "$src_ip_v6" -p tcp --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + ip6tables -t mangle -I openclash "$src_ip_v6" -p tcp --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + ip6tables -t mangle -I openclash_output -p tcp "$src_ip_v6" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + ip6tables -t nat -I openclash_post -p tcp "$src_ip_v6" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 fi if $e_udp ; then - ip6tables -t mangle -I openclash -p udp -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 - ip6tables -t mangle -I openclash_output -p udp -s "$src_ip" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + ip6tables -t mangle -I openclash -p udp "$src_ip_v6" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + ip6tables -t mangle -I openclash_output -p udp "$src_ip_v6" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 + ip6tables -t nat -I openclash_post -p udp "$src_ip_v6" --sport "$src_port" -j $target -m comment --comment "$comment" >/dev/null 2>&1 fi fi fi @@ -1405,9 +1429,11 @@ if [ -n "$FW4" ]; then #nft 'delete chain inet fw4 openclash_post' nft 'add chain inet fw4 openclash_post' nft 'flush chain inet fw4 openclash_post' - nft add rule inet fw4 openclash_post meta mark "$PROXY_FWMARK" counter accept + nft 'add rule inet fw4 openclash_post skgid == 65534 counter return' + nft add rule inet fw4 openclash_post mark "$PROXY_FWMARK" counter accept nft 'add rule inet fw4 openclash_post ip daddr @localnetwork counter return' - nft 'add rule inet fw4 openclash_post meta nfproto {ipv4} fib saddr type != { local } meta skuid != 65534 counter masquerade' + nft 'add rule inet fw4 openclash_post ct direction reply counter return' + nft 'add rule inet fw4 openclash_post fib saddr type != { local } counter masquerade' nft add rule inet fw4 srcnat meta nfproto {ipv4} counter jump openclash_post comment \"OpenClash Bypass Gateway Compatible\" fi @@ -1426,8 +1452,7 @@ if [ -n "$FW4" ]; then #nft delete rule inet fw4 input $(nft -a list chain inet fw4 input |grep "@localnetwork" |awk -F '# ' '{print$2}') nft insert rule inet fw4 input position 0 iifname "$wan_int" ip saddr != @localnetwork counter jump openclash_wan_input done - nft add rule inet fw4 openclash_wan_input udp dport {$proxy_port,$tproxy_port,$cn_port,$http_port,$socks_port,$mixed_port,$dns_port} counter reject - nft add rule inet fw4 openclash_wan_input tcp dport {$proxy_port,$tproxy_port,$cn_port,$http_port,$socks_port,$mixed_port,$dns_port} counter reject + nft add rule inet fw4 openclash_wan_input th dport {$proxy_port,$tproxy_port,$cn_port,$http_port,$socks_port,$mixed_port,$dns_port} counter reject else LOG_OUT "Warning: Can't Settting Only Intranet Allowed Function, Get IPv4 WAN Interfaces error, Please Verify The Firewall's WAN Zone Name is wan, Ignore This IF The Device Does not Have a WAN Interfaces..." fi @@ -1450,27 +1475,15 @@ if [ -n "$FW4" ]; then ACBLACKDNSFILTER="$ACBLACKDNSFILTER ether saddr != @lan_ac_black_macs" fi fi - if [ -z "$en_mode_tun" ]; then - nft insert rule inet fw4 dstnat position 0 tcp dport 53 ${ACBLACKDNSFILTER} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - else - nft insert rule inet fw4 dstnat position 0 tcp dport 53 ${ACBLACKDNSFILTER} counter accept comment \"OpenClash DNS Hijack\" - fi - nft insert rule inet fw4 dstnat position 0 udp dport 53 ${ACBLACKDNSFILTER} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 dstnat position 0 meta l4proto {tcp,udp} th dport 53 ${ACBLACKDNSFILTER} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" else - nft insert rule inet fw4 dstnat position 0 tcp dport 53 ip saddr @lan_ac_white_ips counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - nft insert rule inet fw4 dstnat position 0 udp dport 53 ip saddr @lan_ac_white_ips counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - nft insert rule inet fw4 dstnat position 0 tcp dport 53 ether saddr @lan_ac_white_macs counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - nft insert rule inet fw4 dstnat position 0 udp dport 53 ether saddr @lan_ac_white_macs counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 dstnat position 0 meta l4proto {tcp,udp} th dport 53 ip saddr @lan_ac_white_ips counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 dstnat position 0 meta l4proto {tcp,udp} th dport 53 ether saddr @lan_ac_white_macs counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" fi fi if [ "$router_self_proxy" = 1 ]; then nft 'add chain inet fw4 nat_output { type nat hook output priority -1; }' - if [ -n "$en_mode_tun" ]; then - nft insert rule inet fw4 nat_output position 0 skuid != 65534 meta nfproto {ipv4} tcp dport 53 ip daddr {127.0.0.1} counter accept comment \"OpenClash DNS Hijack\" - else - nft insert rule inet fw4 nat_output position 0 skuid != 65534 meta nfproto {ipv4} tcp dport 53 ip daddr {127.0.0.1} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - fi - nft insert rule inet fw4 nat_output position 0 skuid != 65534 meta nfproto {ipv4} udp dport 53 ip daddr {127.0.0.1} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 nat_output position 0 skgid != 65534 meta l4proto {tcp,udp} th dport 53 ip daddr {127.0.0.1} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" fi elif [ "$enable_redirect_dns" -eq 2 ]; then nft 'add chain inet fw4 openclash_dns_redirect' @@ -1484,28 +1497,15 @@ if [ -n "$FW4" ]; then ACBLACKDNSFILTER="$ACBLACKDNSFILTER ether saddr != @lan_ac_black_macs" fi fi - if [ -z "$en_mode_tun" ]; then - nft add rule inet fw4 openclash_dns_redirect tcp dport 53 ${ACBLACKDNSFILTER} counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - else - nft add rule inet fw4 openclash_dns_redirect tcp dport 53 ${ACBLACKDNSFILTER} counter accept comment \"OpenClash DNS Hijack\" - fi - nft add rule inet fw4 openclash_dns_redirect udp dport 53 ${ACBLACKDNSFILTER} counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" + nft add rule inet fw4 openclash_dns_redirect meta l4proto {tcp,udp} th dport 53 ${ACBLACKDNSFILTER} counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" else - nft add rule inet fw4 openclash_dns_redirect tcp dport 53 ip saddr @lan_ac_white_ips counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - nft add rule inet fw4 openclash_dns_redirect udp dport 53 ip saddr @lan_ac_white_ips counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - nft add rule inet fw4 openclash_dns_redirect tcp dport 53 ether saddr @lan_ac_white_macs counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - nft add rule inet fw4 openclash_dns_redirect udp dport 53 ether saddr @lan_ac_white_macs counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" + nft add rule inet fw4 openclash_dns_redirect meta l4proto {tcp,udp} th dport 53 ip saddr @lan_ac_white_ips counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" + nft add rule inet fw4 openclash_dns_redirect meta l4proto {tcp,udp} th dport 53 ether saddr @lan_ac_white_macs counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" fi - nft 'insert rule inet fw4 dstnat position 0 tcp dport 53 counter jump openclash_dns_redirect' - nft 'insert rule inet fw4 dstnat position 0 udp dport 53 counter jump openclash_dns_redirect' + nft 'insert rule inet fw4 dstnat position 0 meta l4proto {tcp,udp} th dport 53 counter jump openclash_dns_redirect' if [ "$router_self_proxy" = 1 ]; then nft 'add chain inet fw4 nat_output { type nat hook output priority -1; }' - if [ -n "$en_mode_tun" ]; then - nft insert rule inet fw4 nat_output position 0 skuid != 65534 meta nfproto {ipv4} tcp dport 53 ip daddr {127.0.0.1} counter accept comment \"OpenClash DNS Hijack\" - else - nft insert rule inet fw4 nat_output position 0 tcp dport 53 ip daddr {127.0.0.1} meta skuid != 65534 counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - fi - nft insert rule inet fw4 nat_output position 0 udp dport 53 ip daddr {127.0.0.1} meta skuid != 65534 counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 nat_output position 0 meta l4proto {tcp,udp} th dport 53 ip daddr {127.0.0.1} meta skgid != 65534 counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" fi fi @@ -1513,7 +1513,8 @@ if [ -n "$FW4" ]; then #tcp nft 'add chain inet fw4 openclash' nft 'flush chain inet fw4 openclash' - nft add rule inet fw4 openclash ip daddr @localnetwork counter return + nft 'add rule inet fw4 openclash ip daddr @localnetwork counter return' + nft 'add rule inet fw4 openclash ct direction reply counter return' if [ -z "$en_mode_tun" ] && [ "$en_mode" = "fake-ip" ]; then nft add rule inet fw4 openclash ip protocol tcp ip daddr { "$fakeip_range" } counter redirect to "$proxy_port" fi @@ -1528,7 +1529,7 @@ if [ -n "$FW4" ]; then fi if [ "$en_mode" = "redir-host" ]; then - nft 'add rule inet fw4 openclash tcp dport != @common_ports counter return' + nft 'add rule inet fw4 openclash th dport != @common_ports counter return' fi if [ "$china_ip_route" != "0" ]; then if [ "$china_ip_route" = "1" ]; then @@ -1553,9 +1554,8 @@ if [ -n "$FW4" ]; then nft 'add chain inet fw4 openclash_upnp' nft 'flush chain inet fw4 openclash_upnp' upnp_exclude - nft 'add rule inet fw4 openclash_mangle meta l4proto { udp } iifname lo counter return' - nft add rule inet fw4 openclash_mangle ip daddr @localnetwork counter return - nft 'add rule inet fw4 openclash_mangle udp dport 53 counter return' + nft 'add rule inet fw4 openclash_mangle ip daddr @localnetwork counter return' + nft 'add rule inet fw4 openclash_mangle ct direction reply counter return' if [ "$en_mode" = "fake-ip" ]; then nft add rule inet fw4 openclash_mangle meta l4proto { udp } ip daddr { "$fakeip_range" } mark set "$PROXY_FWMARK" tproxy ip to 127.0.0.1:"$tproxy_port" counter accept fi @@ -1570,7 +1570,7 @@ if [ -n "$FW4" ]; then fi if [ "$en_mode" = "redir-host" ]; then - nft 'add rule inet fw4 openclash_mangle udp dport != @common_ports counter return' + nft 'add rule inet fw4 openclash_mangle th dport != @common_ports counter return' fi if [ "$china_ip_route" != "0" ]; then if [ "$china_ip_route" = "1" ]; then @@ -1583,26 +1583,46 @@ if [ -n "$FW4" ]; then fi nft 'add rule inet fw4 openclash_mangle ip protocol udp counter jump openclash_upnp' - nft add rule inet fw4 openclash_mangle meta l4proto { udp } mark set "$PROXY_FWMARK" tproxy ip to 127.0.0.1:"$tproxy_port" counter accept nft 'add rule inet fw4 mangle_prerouting meta nfproto {ipv4} ip protocol udp counter jump openclash_mangle' - - elif [ "$en_mode" = "fake-ip" ]; then + fi + if [ "$enable_udp_proxy" -ne 1 ] && [ "$en_mode" = "fake-ip" ]; then modprobe nft_tproxy >/dev/null 2>&1 ip rule add fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" ip route add local 0.0.0.0/0 dev lo table "$PROXY_ROUTE_TABLE" nft 'add chain inet fw4 openclash_mangle' nft 'flush chain inet fw4 openclash_mangle' - nft 'add rule inet fw4 openclash_mangle meta l4proto { udp } iifname lo counter return' nft add rule inet fw4 openclash_mangle meta l4proto { udp } ip daddr { "$fakeip_range" } mark set "$PROXY_FWMARK" tproxy ip to 127.0.0.1:"$tproxy_port" counter accept 2>/dev/null nft 'add rule inet fw4 mangle_prerouting meta nfproto {ipv4} ip protocol udp counter jump openclash_mangle' + fi - if [ "$router_self_proxy" = "1" ] || ([ "$enable_redirect_dns" != "2" ] && [ "$en_mode" = "fake-ip" ]); then - nft 'add chain inet fw4 openclash_mangle_output' - nft 'flush chain inet fw4 openclash_mangle_output' - nft add rule inet fw4 openclash_mangle_output meta l4proto { udp } ip daddr { "$fakeip_range" } mark set "$PROXY_FWMARK" counter - nft 'add rule inet fw4 mangle_output meta nfproto {ipv4} ip protocol udp counter jump openclash_mangle_output' + #router self proxy udp + if ([ "$router_self_proxy" = "1" ] && [ "$enable_udp_proxy" -eq 1 ]) || ([ "$enable_redirect_dns" != "2" ] && [ "$en_mode" = "fake-ip" ]); then + nft 'add chain inet fw4 openclash_mangle_output' + nft 'flush chain inet fw4 openclash_mangle_output' + nft 'add rule inet fw4 openclash_mangle_output skgid == 65534 counter return' + nft 'add rule inet fw4 openclash_mangle_output ip daddr @localnetwork counter return' + nft 'add rule inet fw4 openclash_mangle_output ct direction reply counter return' + nft 'add rule inet fw4 openclash_mangle_output ip daddr @wan_ac_black_ips counter return' + if [ "$en_mode" = "redir-host" ]; then + nft add rule inet fw4 openclash_mangle_output th dport != @common_ports counter return fi + if [ "$en_mode" = "fake-ip" ]; then + nft add rule inet fw4 openclash_mangle_output meta l4proto { udp } ip daddr { "$fakeip_range" } mark set "$PROXY_FWMARK" counter accept + fi + if [ "$china_ip_route" != "0" ]; then + if [ "$china_ip_route" = "1" ]; then + rule="ip daddr @china_ip_route" + elif [ "$china_ip_route" = "2" ]; then + rule="ip daddr != @china_ip_route" + fi + [ "$enable_redirect_dns" != "2" ] && rule="$rule ip daddr != @china_ip_route_pass" + nft "add rule inet fw4 openclash_mangle_output $rule counter return" + fi + if [ "$router_self_proxy" = "1" ] && [ "$enable_udp_proxy" -eq 1 ]; then + nft add rule inet fw4 openclash_mangle_output mark set "$PROXY_FWMARK" counter accept + fi + nft 'add rule inet fw4 mangle_output meta nfproto {ipv4} ip protocol udp counter jump openclash_mangle_output' fi #quic @@ -1615,18 +1635,20 @@ if [ -n "$FW4" ]; then fi fi + #router self proxy tcp if [ "$router_self_proxy" = "1" ] || ([ "$enable_redirect_dns" != "2" ] && [ "$en_mode" = "fake-ip" ]); then nft 'add chain inet fw4 openclash_output' nft 'flush chain inet fw4 openclash_output' + nft 'add rule inet fw4 openclash_output skgid == 65534 counter return' nft 'add rule inet fw4 openclash_output ip daddr @localnetwork counter return' - + nft 'add rule inet fw4 openclash_output ct direction reply counter return' if [ "$en_mode" = "fake-ip" ] && [ "$en_mode_tun" != "1" ]; then - nft add rule inet fw4 openclash_output ip protocol tcp ip daddr { "$fakeip_range" } skuid != 65534 counter redirect to "$proxy_port" + nft add rule inet fw4 openclash_output ip protocol tcp ip daddr { "$fakeip_range" } counter redirect to "$proxy_port" fi if [ "$router_self_proxy" = "1" ]; then - nft 'add rule inet fw4 openclash_output skuid != 65534 ip daddr @wan_ac_black_ips counter return' + nft 'add rule inet fw4 openclash_output ip daddr @wan_ac_black_ips counter return' if [ "$en_mode" = "redir-host" ]; then - nft add rule inet fw4 openclash_output tcp dport != @common_ports skuid != 65534 counter return + nft add rule inet fw4 openclash_output th dport != @common_ports counter return fi if [ "$china_ip_route" != "0" ]; then if [ "$china_ip_route" = "1" ]; then @@ -1635,9 +1657,9 @@ if [ -n "$FW4" ]; then rule="ip daddr != @china_ip_route" fi [ "$enable_redirect_dns" != "2" ] && rule="$rule ip daddr != @china_ip_route_pass" - nft "add rule inet fw4 openclash_output skuid != 65534 $rule counter return" + nft "add rule inet fw4 openclash_output $rule counter return" fi - nft add rule inet fw4 openclash_output ip protocol tcp skuid != 65534 counter redirect to "$proxy_port" + nft add rule inet fw4 openclash_output ip protocol tcp counter redirect to "$proxy_port" fi nft 'add chain inet fw4 nat_output { type nat hook output priority -1; }' nft 'add rule inet fw4 nat_output meta nfproto {ipv4} ip protocol tcp counter jump openclash_output' @@ -1647,35 +1669,19 @@ if [ -n "$FW4" ]; then if [ -n "$en_mode_tun" ]; then #TUN模式 #设置防火墙 + #router self proxy if [ "$router_self_proxy" = "1" ] || ([ "$enable_redirect_dns" != "2" ] && [ "$en_mode" = "fake-ip" ]); then nft 'add chain inet fw4 openclash_mangle_output' nft 'flush chain inet fw4 openclash_mangle_output' - if [ "$enable_redirect_dns" != "0" ]; then - nft add rule inet fw4 openclash_mangle_output tcp dport 53 skuid != 65534 meta mark set "$PROXY_FWMARK" counter - fi + nft 'add rule inet fw4 openclash_mangle_output skgid == 65534 counter return' nft 'add rule inet fw4 openclash_mangle_output ip daddr @localnetwork counter return' - if [ "$en_mode" = "fake-ip" ]; then - if [ "$en_mode_tun" -eq 1 ]; then - nft add rule inet fw4 openclash_mangle_output meta l4proto {tcp,udp} th dport { 0-65535 } ip daddr { "$fakeip_range" } mark set "$PROXY_FWMARK" counter - if [ "$router_self_proxy" = "1" ]; then - nft 'add rule inet fw4 openclash_mangle_output skuid != 65534 ip daddr @wan_ac_black_ips counter return' - if [ "$china_ip_route" != "0" ]; then - if [ "$china_ip_route" = "1" ]; then - rule="ip daddr @china_ip_route" - elif [ "$china_ip_route" = "2" ]; then - rule="ip daddr != @china_ip_route" - fi - [ "$enable_redirect_dns" != "2" ] && rule="$rule ip daddr != @china_ip_route_pass" - nft "add rule inet fw4 openclash_mangle_output skuid != 65534 $rule counter return" - fi - nft add rule inet fw4 openclash_mangle_output tcp dport { 0-65535 } skuid != 65534 meta mark set "$PROXY_FWMARK" counter - fi - else - nft add rule inet fw4 openclash_mangle_output skuid != 65534 udp dport { 0-65535 } ip daddr { "$fakeip_range" } meta mark set "$PROXY_FWMARK" counter - fi - elif [ "$en_mode" = "redir-host" ] && [ "$en_mode_tun" -eq 1 ]; then - nft 'add rule inet fw4 openclash_mangle_output skuid != 65534 ip daddr @wan_ac_black_ips counter return' - nft 'add rule inet fw4 openclash_mangle_output meta l4proto {tcp,udp} th dport != @common_ports skuid != 65534 counter return' + nft 'add rule inet fw4 openclash_mangle_output ct direction reply counter return' + nft add rule inet fw4 openclash_mangle_output meta l4proto {tcp,udp} ip daddr { "$fakeip_range" } mark set "$PROXY_FWMARK" counter + if [ "$en_mode" = "redir-host" ]; then + nft 'add rule inet fw4 openclash_mangle_output th dport != @common_ports counter return' + fi + if [ "$router_self_proxy" = "1" ]; then + nft 'add rule inet fw4 openclash_mangle_output ip daddr @wan_ac_black_ips counter return' if [ "$china_ip_route" != "0" ]; then if [ "$china_ip_route" = "1" ]; then rule="ip daddr @china_ip_route" @@ -1683,24 +1689,27 @@ if [ -n "$FW4" ]; then rule="ip daddr != @china_ip_route" fi [ "$enable_redirect_dns" != "2" ] && rule="$rule ip daddr != @china_ip_route_pass" - nft "add rule inet fw4 openclash_mangle_output skuid != 65534 $rule counter return" + nft "add rule inet fw4 openclash_mangle_output $rule counter return" + fi + if [ "$en_mode_tun" -eq 1 ]; then + nft add rule inet fw4 openclash_mangle_output meta l4proto {tcp,udp} meta mark set "$PROXY_FWMARK" counter + else + nft add rule inet fw4 openclash_mangle_output meta l4proto { udp } meta mark set "$PROXY_FWMARK" counter fi - nft add rule inet fw4 openclash_mangle_output tcp dport { 0-65535 } skuid != 65534 meta mark set "$PROXY_FWMARK" counter fi nft 'add rule inet fw4 mangle_output meta nfproto {ipv4} meta l4proto {tcp,udp} counter jump openclash_mangle_output' fi nft 'add chain inet fw4 openclash_mangle' nft 'flush chain inet fw4 openclash_mangle' - nft 'add chain inet fw4 openclash_dns_hijack' - nft 'flush chain inet fw4 openclash_dns_hijack' nft 'add chain inet fw4 openclash_upnp' nft 'flush chain inet fw4 openclash_upnp' upnp_exclude #其他流量 nft 'add rule inet fw4 openclash_mangle meta l4proto {tcp,udp} iifname utun counter return' - nft add rule inet fw4 openclash_mangle ip daddr @localnetwork counter return + nft 'add rule inet fw4 openclash_mangle ip daddr @localnetwork counter return' + nft 'add rule inet fw4 openclash_mangle ct direction reply counter return' nft 'add rule inet fw4 openclash_mangle ip daddr @wan_ac_black_ips counter return' nft 'add rule inet fw4 openclash_mangle ip saddr @lan_ac_black_ips counter return' nft 'add rule inet fw4 openclash_mangle ether saddr @lan_ac_black_macs counter return' @@ -1712,7 +1721,7 @@ if [ -n "$FW4" ]; then fi if [ "$en_mode" = "redir-host" ]; then - nft 'add rule inet fw4 openclash_mangle meta l4proto {tcp,udp} th dport != @common_ports counter return' + nft 'add rule inet fw4 openclash_mangle th dport != @common_ports counter return' fi if [ "$china_ip_route" != "0" ]; then if [ "$china_ip_route" = "1" ]; then @@ -1724,23 +1733,11 @@ if [ -n "$FW4" ]; then nft "add rule inet fw4 openclash_mangle $rule counter return" fi nft 'add rule inet fw4 openclash_mangle ip protocol udp counter jump openclash_upnp' - nft add rule inet fw4 openclash_mangle meta l4proto {tcp,udp} th dport { 0-65535 } mark set "$PROXY_FWMARK" counter + nft add rule inet fw4 openclash_mangle mark set "$PROXY_FWMARK" counter if [ "$en_mode_tun" -eq 1 ]; then nft 'add rule inet fw4 mangle_prerouting meta nfproto {ipv4} meta l4proto {tcp,udp} counter jump openclash_mangle' else - if [ "$enable_redirect_dns" -eq 1 ]; then - nft 'add rule inet fw4 mangle_prerouting meta nfproto {ipv4} tcp dport 53 counter jump openclash_dns_hijack' - nft 'add rule inet fw4 openclash_dns_hijack ip saddr @lan_ac_black_ips counter return' - nft 'add rule inet fw4 openclash_dns_hijack ether saddr @lan_ac_black_macs counter return' - if [ "$lan_ac_mode" = "1" ] && [ -n "$(uci -q get openclash.config.lan_ac_white_ips)" ] && [ -n "$(uci -q get openclash.config.lan_ac_white_macs)" ]; then - nft 'add rule inet fw4 openclash_dns_hijack ether saddr != @lan_ac_white_macs ip saddr != @lan_ac_white_ips counter return' - else - nft 'add rule inet fw4 openclash_dns_hijack ether saddr != @lan_ac_white_macs counter return' - nft 'add rule inet fw4 openclash_dns_hijack ip saddr != @lan_ac_white_ips counter return' - fi - nft add rule inet fw4 openclash_dns_hijack meta nfproto {ipv4} tcp dport 53 mark set "$PROXY_FWMARK" comment \"OpenClash TCP DNS Hijack\" counter - fi nft 'add rule inet fw4 mangle_prerouting meta nfproto {ipv4} ip protocol udp counter jump openclash_mangle' fi @@ -1799,26 +1796,14 @@ if [ -n "$FW4" ]; then ACBLACKDNSFILTER="$ACBLACKDNSFILTER ether saddr != @lan_ac_black_macs" fi fi - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} tcp dport 53 ${ACBLACKDNSFILTER} counter accept comment \"OpenClash DNS Hijack\" - else - nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} tcp dport 53 ${ACBLACKDNSFILTER} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - fi - nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} udp dport 53 ${ACBLACKDNSFILTER} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 ${ACBLACKDNSFILTER} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" else - nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} tcp dport 53 ip6 saddr @lan_ac_white_ipv6s counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} udp dport 53 ip6 saddr @lan_ac_white_ipv6s counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} tcp dport 53 ether saddr @lan_ac_white_macs counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} udp dport 53 ether saddr @lan_ac_white_macs counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 ip6 saddr @lan_ac_white_ipv6s counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 ether saddr @lan_ac_white_macs counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" fi if [ "$router_self_proxy" = 1 ]; then nft 'add chain inet fw4 nat_output { type nat hook output priority -1; }' - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - nft insert rule inet fw4 nat_output position 0 skuid != 65534 meta nfproto {ipv6} tcp dport 53 ip6 daddr {::/0} counter accept comment \"OpenClash DNS Hijack\" - else - nft insert rule inet fw4 nat_output position 0 skuid != 65534 meta nfproto {ipv6} tcp dport 53 ip6 daddr {::/0} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" - fi - nft insert rule inet fw4 nat_output position 0 skuid != 65534 meta nfproto {ipv6} udp dport 53 ip6 daddr {::/0} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 nat_output position 0 skgid != 65534 meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 ip6 daddr {::/0} counter redirect to "$DNSPORT" comment \"OpenClash DNS Hijack\" fi elif [ "$enable_redirect_dns" -eq 2 ]; then if [ "$lan_ac_mode" != "1" ]; then @@ -1831,28 +1816,15 @@ if [ -n "$FW4" ]; then ACBLACKDNSFILTER="$ACBLACKDNSFILTER ether saddr != @lan_ac_black_macs" fi fi - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} tcp dport 53 ${ACBLACKDNSFILTER} counter accept comment \"OpenClash DNS Hijack\" - else - nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} tcp dport 53 ${ACBLACKDNSFILTER} counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - fi - nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} udp dport 53 ${ACBLACKDNSFILTER} counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" + nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 ${ACBLACKDNSFILTER} counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" else - nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} tcp dport 53 ip6 saddr @lan_ac_white_ipv6s counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} udp dport 53 ip6 saddr @lan_ac_white_ipv6s counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} tcp dport 53 ether saddr @lan_ac_white_macs counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} udp dport 53 ether saddr @lan_ac_white_macs counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" + nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 ip6 saddr @lan_ac_white_ipv6s counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" + nft add rule inet fw4 openclash_dns_redirect meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 ether saddr @lan_ac_white_macs counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" fi - nft 'insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} tcp dport 53 counter jump openclash_dns_redirect' - nft 'insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} udp dport 53 counter jump openclash_dns_redirect' + nft 'insert rule inet fw4 dstnat position 0 meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 counter jump openclash_dns_redirect' if [ "$router_self_proxy" = 1 ]; then nft 'add chain inet fw4 nat_output { type nat hook output priority -1; }' - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - nft insert rule inet fw4 nat_output position 0 skuid != 65534 meta nfproto {ipv6} tcp dport 53 ip6 daddr {::/0} counter accept comment \"OpenClash DNS Hijack\" - else - nft insert rule inet fw4 nat_output position 0 meta nfproto {ipv6} tcp dport 53 ip6 daddr {::/0} meta skuid != 65534 counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" - fi - nft insert rule inet fw4 nat_output position 0 meta nfproto {ipv6} udp dport 53 ip6 daddr {::/0} meta skuid != 65534 counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" + nft insert rule inet fw4 nat_output position 0 meta nfproto {ipv6} ip6 nexthdr {tcp,udp} th dport 53 ip6 daddr {::/0} meta skgid != 65534 counter redirect to "$dns_port" comment \"OpenClash DNS Hijack\" fi fi fi @@ -1879,7 +1851,8 @@ if [ -n "$FW4" ]; then #tcp nft 'add chain inet fw4 openclash_v6' nft 'flush chain inet fw4 openclash_v6' - nft add rule inet fw4 openclash_v6 ip6 daddr @localnetwork6 counter return + nft 'add rule inet fw4 openclash_v6 ip6 daddr @localnetwork6 counter return' + nft 'add rule inet fw4 openclash_v6 ct direction reply counter return' nft 'add rule inet fw4 openclash_v6 ip6 daddr @wan_ac_black_ipv6s counter return' nft 'add rule inet fw4 openclash_v6 ip6 saddr @lan_ac_black_ipv6s counter return' nft 'add rule inet fw4 openclash_v6 ether saddr @lan_ac_black_macs counter return' @@ -1891,7 +1864,7 @@ if [ -n "$FW4" ]; then fi if [ "$en_mode" = "redir-host" ]; then - nft 'add rule inet fw4 openclash_v6 meta nfproto {ipv6} th dport != @common_ports counter return' + nft 'add rule inet fw4 openclash_v6 th dport != @common_ports counter return' fi if [ "$china_ip6_route" != "0" ]; then @@ -1903,48 +1876,20 @@ if [ -n "$FW4" ]; then [ "$enable_redirect_dns" != "2" ] && rule="$rule ip6 daddr != @china_ip6_route_pass" nft "add rule inet fw4 openclash_v6 $rule counter return" fi - nft add rule inet fw4 openclash_v6 meta nfproto {ipv6} tcp dport { 0-65535 } counter redirect to "$proxy_port" - nft 'add rule inet fw4 dstnat meta nfproto {ipv6} tcp dport { 0-65535 } counter jump openclash_v6' - fi - - #tproxy not support output chain - if [ "$ipv6_mode" -ne 2 ]; then - if [ "$router_self_proxy" = "1" ]; then - nft 'add chain inet fw4 openclash_output_v6' - nft 'flush chain inet fw4 openclash_output_v6' - nft 'add rule inet fw4 openclash_output_v6 ip6 daddr @localnetwork6 counter return' - nft 'add rule inet fw4 openclash_output_v6 skuid != 65534 ip6 daddr @wan_ac_black_ipv6s counter return' - if [ "$en_mode" = "redir-host" ]; then - nft 'add rule inet fw4 openclash_output_v6 meta nfproto {ipv6} th dport != @common_ports skuid != 65534 counter return' - fi - - if [ "$china_ip6_route" != "0" ]; then - if [ "$china_ip6_route" = "1" ]; then - rule="ip6 daddr @china_ip6_route" - elif [ "$china_ip6_route" = "2" ]; then - rule="ip6 daddr != @china_ip6_route" - fi - [ "$enable_redirect_dns" != "2" ] && rule="$rule ip6 daddr != @china_ip6_route_pass" - nft "add rule inet fw4 openclash_output_v6 skuid != 65534 $rule counter return" - fi - - nft add rule inet fw4 openclash_output_v6 meta nfproto {ipv6} skuid != 65534 tcp dport { 0-65535 } counter redirect to "$proxy_port" - nft 'add chain inet fw4 nat_output { type nat hook output priority -1; }' - nft 'add rule inet fw4 nat_output meta nfproto {ipv6} counter jump openclash_output_v6' - fi + nft add rule inet fw4 openclash_v6 ip6 nexthdr {tcp} counter redirect to "$proxy_port" + nft 'add rule inet fw4 dstnat ip6 nexthdr {tcp} counter jump openclash_v6' fi #TProxy & TUN & Redirect udp if [ "$enable_v6_udp_proxy" -eq 1 ] || [ "$ipv6_mode" -ne 1 ]; then nft 'add chain inet fw4 openclash_mangle_v6' nft 'flush chain inet fw4 openclash_mangle_v6' - nft 'add rule inet fw4 openclash_mangle_v6 meta nfproto {ipv6} udp iifname lo counter return' - nft add rule inet fw4 openclash_mangle_v6 ip6 daddr @localnetwork6 counter return - nft 'add rule inet fw4 openclash_mangle_v6 meta nfproto {ipv6} udp dport 53 counter return' + nft 'add rule inet fw4 openclash_mangle_v6 ip6 daddr @localnetwork6 counter return' + nft 'add rule inet fw4 openclash_mangle_v6 ct direction reply counter return' nft 'add rule inet fw4 openclash_mangle_v6 ip6 daddr @wan_ac_black_ipv6s counter return' if [ "$en_mode" == "redir-host" ]; then - nft 'add rule inet fw4 openclash_mangle_v6 meta nfproto {ipv6} th dport != @common_ports counter return' + nft 'add rule inet fw4 openclash_mangle_v6 th dport != @common_ports counter return' fi nft 'add rule inet fw4 openclash_mangle_v6 ip6 saddr @lan_ac_black_ipv6s counter return' @@ -1970,48 +1915,85 @@ if [ -n "$FW4" ]; then #tcp Tproxy && TUN if [ "$ipv6_mode" -ne 1 ] && [ "$ipv6_mode" -ne 3 ]; then if [ "$ipv6_mode" -eq 0 ]; then - nft add rule inet fw4 openclash_mangle_v6 meta nfproto {ipv6} tcp dport { 0-65535 } mark set "$PROXY_FWMARK" tproxy ip6 to :"$tproxy_port" counter accept comment \"OpenClash TCP Tproxy\" + nft add rule inet fw4 openclash_mangle_v6 ip6 nexthdr {tcp} mark set "$PROXY_FWMARK" tproxy ip6 to :"$tproxy_port" counter accept comment \"OpenClash TCP Tproxy\" else - nft add rule inet fw4 openclash_mangle_v6 meta nfproto {ipv6} tcp dport { 0-65535 } mark set "$PROXY_FWMARK" counter - fi - - if [ "$router_self_proxy" = "1" ]; then - if [ "$ipv6_mode" -eq 2 ]; then - nft 'add chain inet fw4 openclash_mangle_output_v6' - nft 'flush chain inet fw4 openclash_mangle_output_v6' - nft add rule inet fw4 openclash_mangle_output_v6 meta nfproto {ipv6} skuid != 65534 tcp dport 53 mark set "$PROXY_FWMARK" counter - nft 'add rule inet fw4 openclash_mangle_output_v6 ip6 daddr @localnetwork6 counter return' - nft 'add rule inet fw4 openclash_mangle_output_v6 skuid != 65534 ip6 daddr @wan_ac_black_ipv6s counter return' - if [ "$en_mode" = "redir-host" ]; then - nft 'add rule inet fw4 openclash_mangle_output_v6 meta nfproto {ipv6} th dport != @common_ports skuid != 65534 counter return' - fi - - if [ "$china_ip6_route" != "0" ]; then - if [ "$china_ip6_route" = "1" ]; then - rule="ip6 daddr @china_ip6_route" - elif [ "$china_ip6_route" = "2" ]; then - rule="ip6 daddr != @china_ip6_route" - fi - [ "$enable_redirect_dns" != "2" ] && rule="$rule ip6 daddr != @china_ip6_route_pass" - nft 'add rule inet fw4 openclash_mangle_output_v6 skuid != 65534 $rule counter return' - fi - nft add rule inet fw4 openclash_mangle_output_v6 meta nfproto {ipv6} skuid != 65534 tcp dport { 0-65535 } mark set "$PROXY_FWMARK" counter - nft 'add rule inet fw4 mangle_output meta nfproto {ipv6} counter jump openclash_mangle_output_v6' - fi + nft add rule inet fw4 openclash_mangle_v6 ip6 nexthdr {tcp} mark set "$PROXY_FWMARK" counter fi fi #udp if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - nft add rule inet fw4 openclash_mangle_v6 meta nfproto {ipv6} udp dport { 0-65535 } mark set "$PROXY_FWMARK" counter + nft add rule inet fw4 openclash_mangle_v6 ip6 nexthdr {udp} mark set "$PROXY_FWMARK" counter else if [ "$enable_v6_udp_proxy" -eq 1 ]; then - nft add rule inet fw4 openclash_mangle_v6 meta nfproto {ipv6} udp dport { 0-65535 } mark set "$PROXY_FWMARK" tproxy ip6 to :"$tproxy_port" counter accept comment \"OpenClash UDP Tproxy\" + nft add rule inet fw4 openclash_mangle_v6 ip6 nexthdr {udp} mark set "$PROXY_FWMARK" tproxy ip6 to :"$tproxy_port" counter accept comment \"OpenClash UDP Tproxy\" fi fi nft 'add rule inet fw4 mangle_prerouting meta nfproto {ipv6} counter jump openclash_mangle_v6' + #router self proxy + if [ "$router_self_proxy" = "1" ]; then + if [ "$ipv6_mode" -eq 1 ] || [ "$ipv6_mode" -eq 3 ]; then + #tcp Redirect Mode + nft 'add chain inet fw4 openclash_output_v6' + nft 'flush chain inet fw4 openclash_output_v6' + nft 'add rule inet fw4 openclash_output_v6 skgid == 65534 counter return' + nft 'add rule inet fw4 openclash_output_v6 ip6 daddr @localnetwork6 counter return' + nft 'add rule inet fw4 openclash_output_v6 ct direction reply counter return' + nft 'add rule inet fw4 openclash_output_v6 ip6 daddr @wan_ac_black_ipv6s counter return' + if [ "$en_mode" = "redir-host" ]; then + nft 'add rule inet fw4 openclash_output_v6 th dport != @common_ports counter return' + fi + + if [ "$china_ip6_route" != "0" ]; then + if [ "$china_ip6_route" = "1" ]; then + rule="ip6 daddr @china_ip6_route" + elif [ "$china_ip6_route" = "2" ]; then + rule="ip6 daddr != @china_ip6_route" + fi + [ "$enable_redirect_dns" != "2" ] && rule="$rule ip6 daddr != @china_ip6_route_pass" + nft "add rule inet fw4 openclash_output_v6 $rule counter return" + fi + + nft add rule inet fw4 openclash_output_v6 ip6 nexthdr {tcp} counter redirect to "$proxy_port" + nft 'add chain inet fw4 nat_output { type nat hook output priority -1; }' + nft 'add rule inet fw4 nat_output meta nfproto {ipv6} counter jump openclash_output_v6' + fi + + #other mode and Redirect Mode udp + nft 'add chain inet fw4 openclash_mangle_output_v6' + nft 'flush chain inet fw4 openclash_mangle_output_v6' + nft 'add rule inet fw4 openclash_mangle_output_v6 skgid == 65534 counter return' + nft 'add rule inet fw4 openclash_mangle_output_v6 ip6 daddr @localnetwork6 counter return' + nft 'add rule inet fw4 openclash_mangle_output_v6 ct direction reply counter return' + nft 'add rule inet fw4 openclash_mangle_output_v6 ip6 daddr @wan_ac_black_ipv6s counter return' + if [ "$en_mode" = "redir-host" ]; then + nft 'add rule inet fw4 openclash_mangle_output_v6 th dport != @common_ports counter return' + fi + + if [ "$china_ip6_route" != "0" ]; then + if [ "$china_ip6_route" = "1" ]; then + rule="ip6 daddr @china_ip6_route" + elif [ "$china_ip6_route" = "2" ]; then + rule="ip6 daddr != @china_ip6_route" + fi + [ "$enable_redirect_dns" != "2" ] && rule="$rule ip6 daddr != @china_ip6_route_pass" + nft 'add rule inet fw4 openclash_mangle_output_v6 $rule counter return' + fi + + if ([ "$ipv6_mode" -eq 1 ] && [ "$enable_v6_udp_proxy" -eq 1 ]) || [ "$ipv6_mode" -eq 3 ]; then + nft add rule inet fw4 openclash_mangle_output_v6 ip6 nexthdr {udp} mark set "$PROXY_FWMARK" counter + fi + if ([ "$ipv6_mode" -eq 0 ] && [ "$enable_v6_udp_proxy" -eq 1 ]) || [ "$ipv6_mode" -eq 2 ]; then + nft add rule inet fw4 openclash_mangle_output_v6 ip6 nexthdr {tcp,udp} mark set "$PROXY_FWMARK" counter + fi + if [ "$ipv6_mode" -eq 0 ] && [ "$enable_v6_udp_proxy" -ne 1 ]; then + nft add rule inet fw4 openclash_mangle_output_v6 ip6 nexthdr {tcp} mark set "$PROXY_FWMARK" counter + fi + nft 'add rule inet fw4 mangle_output meta nfproto {ipv6} counter jump openclash_mangle_output_v6' + fi + #route if [ "$ipv6_mode" -ne 2 ] && [ "$ipv6_mode" -ne 3 ]; then if [ "$enable_v6_udp_proxy" -eq 1 ] || [ "$ipv6_mode" -eq 0 ]; then @@ -2049,9 +2031,11 @@ if [ -n "$FW4" ]; then #nft 'delete chain inet fw4 openclash_post_v6' nft 'add chain inet fw4 openclash_post_v6' nft 'flush chain inet fw4 openclash_post_v6' - nft add rule inet fw4 openclash_post_v6 meta nfproto {ipv6} meta mark "$PROXY_FWMARK" counter accept + nft 'add rule inet fw4 openclash_post_v6 skgid == 65534 counter return' + nft add rule inet fw4 openclash_post_v6 mark "$PROXY_FWMARK" counter accept nft 'add rule inet fw4 openclash_post_v6 ip6 daddr @localnetwork6 counter return' - nft 'add rule inet fw4 openclash_post_v6 meta nfproto {ipv6} fib saddr type != { local } meta skuid != 65534 counter masquerade' + nft 'add rule inet fw4 openclash_post_v6 ct direction reply counter return' + nft 'add rule inet fw4 openclash_post_v6 fib saddr type != { local } counter masquerade' nft add rule inet fw4 srcnat meta nfproto {ipv6} counter jump openclash_post_v6 comment \"OpenClash Bypass Gateway Compatible\" fi @@ -2070,8 +2054,7 @@ if [ -n "$FW4" ]; then #nft delete rule inet fw4 input $(nft -a list chain inet fw4 input |grep "@localnetwork6" |awk -F '# ' '{print$2}') nft insert rule inet fw4 input position 0 iifname "$wan6_int" ip6 saddr != @localnetwork6 counter jump openclash_wan6_input done - nft add rule inet fw4 openclash_wan6_input udp dport {$proxy_port,$tproxy_port,$cn_port,$http_port,$socks_port,$mixed_port,$dns_port} counter reject - nft add rule inet fw4 openclash_wan6_input tcp dport {$proxy_port,$tproxy_port,$cn_port,$http_port,$socks_port,$mixed_port,$dns_port} counter reject + nft add rule inet fw4 openclash_wan6_input ip6 nexthdr {tcp,udp} th dport {$proxy_port,$tproxy_port,$cn_port,$http_port,$socks_port,$mixed_port,$dns_port} counter reject else LOG_OUT "Warning: Can't Settting Only Intranet Allowed Function, Get IPv6 WAN Interfaces error, Please Verify The Firewall's WAN Zone Name is wan, Ignore This IF The Device Does not Have a WAN Interfaces..." fi @@ -2083,10 +2066,12 @@ fi 2>/dev/null if [ -z "$FW4" ]; then #iptables owner module if [ "$iptables_compat" -eq 0 ]; then - owner="-m mark ! --mark 0x1a0a" + owner="-m mark --mark 0x1a0a" + noowner="-m mark ! --mark 0x1a0a" addr_local="! -i lo" else - owner="-m owner ! --uid-owner 65534" + owner="-m owner --gid-owner 65534" + noowner="-m owner ! --gid-owner 65534" addr_local="-m addrtype ! --src-type LOCAL" fi @@ -2176,9 +2161,11 @@ if [ -z "$FW4" ]; then if [ "$bypass_gateway_compatible" -eq 1 ]; then iptables -t nat -N openclash_post iptables -t nat -F openclash_post + iptables -t nat -A openclash_post $owner -j RETURN iptables -t nat -A openclash_post -m mark --mark "$PROXY_FWMARK" -j ACCEPT iptables -t nat -A openclash_post -m set --match-set localnetwork dst -j RETURN - iptables -t nat -A openclash_post $addr_local $owner -j MASQUERADE + iptables -t nat -A openclash_post -m conntrack --ctdir REPLY -j RETURN + iptables -t nat -A openclash_post $addr_local -j MASQUERADE iptables -t nat -A POSTROUTING -m comment --comment "OpenClash Bypass Gateway Compatible" -j openclash_post fi @@ -2221,11 +2208,7 @@ if [ -z "$FW4" ]; then fi fi iptables -t nat -I PREROUTING -p udp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" - if [ -z "$en_mode_tun" ]; then - iptables -t nat -I PREROUTING -p tcp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" - else - iptables -t nat -I PREROUTING -p tcp --dport 53 ${ACBLACKDNSFILTER} -j ACCEPT -m comment --comment "OpenClash DNS Hijack" - fi + iptables -t nat -I PREROUTING -p tcp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" else iptables -t nat -I PREROUTING -p udp --dport 53 -m set --match-set lan_ac_white_ips src -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" iptables -t nat -I PREROUTING -p tcp --dport 53 -m set --match-set lan_ac_white_ips src -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" @@ -2234,12 +2217,8 @@ if [ -z "$FW4" ]; then fi fi if [ "$router_self_proxy" = 1 ]; then - if [ -n "$en_mode_tun" ]; then - iptables -t nat -I OUTPUT $owner -m comment --comment "OpenClash DNS Hijack" -p tcp --dport 53 -d 127.0.0.1 -j ACCEPT - else - iptables -t nat -I OUTPUT $owner -m comment --comment "OpenClash DNS Hijack" -p tcp --dport 53 -d 127.0.0.1 -j REDIRECT --to-ports "$DNSPORT" - fi - iptables -t nat -I OUTPUT $owner -m comment --comment "OpenClash DNS Hijack" -p udp --dport 53 -d 127.0.0.1 -j REDIRECT --to-ports "$DNSPORT" + iptables -t nat -I OUTPUT $noowner -m comment --comment "OpenClash DNS Hijack" -p tcp --dport 53 -d 127.0.0.1 -j REDIRECT --to-ports "$DNSPORT" + iptables -t nat -I OUTPUT $noowner -m comment --comment "OpenClash DNS Hijack" -p udp --dport 53 -d 127.0.0.1 -j REDIRECT --to-ports "$DNSPORT" fi elif [ "$enable_redirect_dns" -eq 2 ]; then iptables -t nat -N openclash_dns_redirect @@ -2255,11 +2234,7 @@ if [ -z "$FW4" ]; then fi fi iptables -t nat -A openclash_dns_redirect -p udp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" - if [ -z "$en_mode_tun" ]; then - iptables -t nat -A openclash_dns_redirect -p tcp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" - else - iptables -t nat -A openclash_dns_redirect -p tcp --dport 53 ${ACBLACKDNSFILTER} -j ACCEPT -m comment --comment "OpenClash DNS Hijack" - fi + iptables -t nat -A openclash_dns_redirect -p tcp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" else iptables -t nat -A openclash_dns_redirect -p udp --dport 53 -m set --match-set lan_ac_white_ips src -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" iptables -t nat -A openclash_dns_redirect -p tcp --dport 53 -m set --match-set lan_ac_white_ips src -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" @@ -2269,12 +2244,8 @@ if [ -z "$FW4" ]; then iptables -t nat -I PREROUTING -p udp --dport 53 -j openclash_dns_redirect iptables -t nat -I PREROUTING -p tcp --dport 53 -j openclash_dns_redirect if [ "$router_self_proxy" = 1 ]; then - iptables -t nat -I OUTPUT -p udp --dport 53 -d 127.0.0.1 $owner -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" - if [ -n "$en_mode_tun" ]; then - iptables -t nat -I OUTPUT $owner -m comment --comment "OpenClash DNS Hijack" -p tcp --dport 53 -d 127.0.0.1 -j ACCEPT - else - iptables -t nat -I OUTPUT -p tcp --dport 53 -d 127.0.0.1 $owner -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" - fi + iptables -t nat -I OUTPUT -p udp --dport 53 -d 127.0.0.1 $noowner -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" + iptables -t nat -I OUTPUT -p tcp --dport 53 -d 127.0.0.1 $noowner -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" fi fi @@ -2283,6 +2254,7 @@ if [ -z "$FW4" ]; then iptables -t nat -N openclash iptables -t nat -F openclash iptables -t nat -A openclash -m set --match-set localnetwork dst -j RETURN + iptables -t nat -A openclash -m conntrack --ctdir REPLY -j RETURN if [ -z "$en_mode_tun" ] && [ "$en_mode" = "fake-ip" ]; then iptables -t nat -A openclash -p tcp -d "$fakeip_range" -j REDIRECT --to-ports "$proxy_port" fi @@ -2321,10 +2293,8 @@ if [ -z "$FW4" ]; then iptables -t mangle -N openclash_upnp iptables -t mangle -F openclash_upnp upnp_exclude - #prevent tproxy loop - iptables -t mangle -A openclash -i lo -j RETURN iptables -t mangle -A openclash -m set --match-set localnetwork dst -j RETURN - iptables -t mangle -A openclash -p udp --dport 53 -j RETURN >/dev/null 2>&1 + iptables -t mangle -A openclash -m conntrack --ctdir REPLY -j RETURN if [ "$en_mode" = "fake-ip" ]; then iptables -t mangle -A openclash -p udp -d "$fakeip_range" -j TPROXY --on-port "$tproxy_port" --tproxy-mark "$PROXY_FWMARK" fi @@ -2352,23 +2322,44 @@ if [ -z "$FW4" ]; then iptables -t mangle -A openclash -p udp -j openclash_upnp >/dev/null 2>&1 iptables -t mangle -A openclash -p udp -j TPROXY --on-port "$tproxy_port" --tproxy-mark "$PROXY_FWMARK" iptables -t mangle -A PREROUTING -p udp -j openclash + fi - elif [ "$en_mode" = "fake-ip" ]; then + if [ "$enable_udp_proxy" -ne 1 ] && [ "$en_mode" = "fake-ip" ]; then modprobe xt_TPROXY >/dev/null 2>&1 ip rule add fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" ip route add local 0.0.0.0/0 dev lo table "$PROXY_ROUTE_TABLE" iptables -t mangle -N openclash iptables -t mangle -F openclash - #prevent tproxy loop - iptables -t mangle -A openclash -i lo -j RETURN iptables -t mangle -A openclash -p udp -d "$fakeip_range" -j TPROXY --on-port "$tproxy_port" --tproxy-mark "$PROXY_FWMARK" iptables -t mangle -A PREROUTING -p udp -j openclash fi - if [ "$router_self_proxy" = "1" ] || ([ "$enable_redirect_dns" != "2" ] && [ "$en_mode" = "fake-ip" ]); then + #router self proxy udp + if ([ "$router_self_proxy" = "1" ] && [ "$enable_udp_proxy" -eq 1 ]) || ([ "$enable_redirect_dns" != "2" ] && [ "$en_mode" = "fake-ip" ]); then iptables -t mangle -N openclash_output iptables -t mangle -F openclash_output - iptables -t mangle -A openclash_output $owner -p udp -d "$fakeip_range" -j MARK --set-mark "$PROXY_FWMARK" + iptables -t mangle -A openclash_output $owner -j RETURN + iptables -t mangle -A openclash_output -m set --match-set localnetwork dst -j RETURN + iptables -t mangle -A openclash_output -m conntrack --ctdir REPLY -j RETURN + iptables -t mangle -A openclash_output -m set --match-set wan_ac_black_ips dst -j RETURN >/dev/null 2>&1 + if [ "$en_mode" = "fake-ip" ]; then + iptables -t mangle -A openclash_output -p udp -d "$fakeip_range" -j MARK --set-mark "$PROXY_FWMARK" + fi + if [ "$en_mode" = "redir-host" ]; then + iptables -t mangle -A openclash_output -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + fi + if [ "$china_ip_route" != "0" ]; then + if [ "$china_ip_route" = "1" ]; then + rule="-m set --match-set china_ip_route dst" + elif [ "$china_ip_route" = "2" ]; then + rule="-m set ! --match-set china_ip_route dst" + fi + [ "$enable_redirect_dns" != "2" ] && rule="$rule -m set ! --match-set china_ip_route_pass dst" + iptables -t mangle -A openclash_output $rule -j RETURN >/dev/null 2>&1 + fi + if [ "$router_self_proxy" = "1" ] && [ "$enable_udp_proxy" -eq 1 ]; then + iptables -t mangle -A openclash_output -p udp -j MARK --set-mark "$PROXY_FWMARK" + fi iptables -t mangle -A OUTPUT -p udp -j openclash_output fi @@ -2382,17 +2373,20 @@ if [ -z "$FW4" ]; then fi fi + #router self proxy tcp if [ "$router_self_proxy" = "1" ] || ([ "$enable_redirect_dns" != "2" ] && [ "$en_mode" = "fake-ip" ]); then iptables -t nat -N openclash_output iptables -t nat -F openclash_output + iptables -t nat -A openclash_output $owner -j RETURN if [ "$en_mode" = "fake-ip" ] && [ "$en_mode_tun" != "1" ]; then - iptables -t nat -A openclash_output $owner -p tcp -d "$fakeip_range" -j REDIRECT --to-ports "$proxy_port" + iptables -t nat -A openclash_output -p tcp -d "$fakeip_range" -j REDIRECT --to-ports "$proxy_port" fi if [ "$router_self_proxy" = "1" ]; then iptables -t nat -A openclash_output -m set --match-set localnetwork dst -j RETURN - iptables -t nat -A openclash_output $owner -m set --match-set wan_ac_black_ips dst -j RETURN >/dev/null 2>&1 + iptables -t nat -A openclash_output -m conntrack --ctdir REPLY -j RETURN + iptables -t nat -A openclash_output -m set --match-set wan_ac_black_ips dst -j RETURN >/dev/null 2>&1 if [ "$en_mode" = "redir-host" ]; then - iptables -t nat -A openclash_output $owner -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + iptables -t nat -A openclash_output -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 fi if [ "$china_ip_route" != "0" ]; then if [ "$china_ip_route" = "1" ]; then @@ -2401,9 +2395,9 @@ if [ -z "$FW4" ]; then rule="-m set ! --match-set china_ip_route dst" fi [ "$enable_redirect_dns" != "2" ] && rule="$rule -m set ! --match-set china_ip_route_pass dst" - iptables -t nat -A openclash_output $owner $rule -j RETURN >/dev/null 2>&1 + iptables -t nat -A openclash_output $rule -j RETURN >/dev/null 2>&1 fi - iptables -t nat -A openclash_output $owner -p tcp -j REDIRECT --to-ports "$proxy_port" + iptables -t nat -A openclash_output -p tcp -j REDIRECT --to-ports "$proxy_port" fi iptables -t nat -A OUTPUT -j openclash_output >/dev/null 2>&1 fi @@ -2412,39 +2406,19 @@ if [ -z "$FW4" ]; then if [ -n "$en_mode_tun" ]; then #TUN模式 #设置防火墙 + #router self proxy if [ "$router_self_proxy" = "1" ] || ([ "$enable_redirect_dns" != "2" ] && [ "$en_mode" = "fake-ip" ]); then - if [ "$en_mode" = "fake-ip" ]; then - iptables -t mangle -N openclash_output - iptables -t mangle -F openclash_output - if [ "$enable_redirect_dns" != "0" ]; then - iptables -t mangle -I openclash_output $owner -p tcp --dport 53 -j MARK --set-mark "$PROXY_FWMARK" - fi - iptables -t mangle -A openclash_output -m set --match-set localnetwork dst -j RETURN - if [ "$en_mode_tun" -eq 1 ]; then - iptables -t mangle -A openclash_output $owner -d "$fakeip_range" -j MARK --set-mark "$PROXY_FWMARK" - if [ "$router_self_proxy" = "1" ]; then - iptables -t mangle -A openclash_output $owner -m set --match-set wan_ac_black_ips dst -j RETURN >/dev/null 2>&1 - if [ "$china_ip_route" != "0" ]; then - if [ "$china_ip_route" = "1" ]; then - rule="-m set --match-set china_ip_route dst" - elif [ "$china_ip_route" = "2" ]; then - rule="-m set ! --match-set china_ip_route dst" - fi - [ "$enable_redirect_dns" != "2" ] && rule="$rule -m set ! --match-set china_ip_route_pass dst" - iptables -t mangle -A openclash_output $owner $rule -j RETURN >/dev/null 2>&1 - fi - iptables -t mangle -A openclash_output $owner -p tcp -j MARK --set-mark "$PROXY_FWMARK" - fi - else - iptables -t mangle -A openclash_output $owner -p udp -d "$fakeip_range" -j MARK --set-mark "$PROXY_FWMARK" - fi - iptables -t mangle -A OUTPUT -j openclash_output - elif [ "$en_mode" = "redir-host" ] && [ "$en_mode_tun" -eq 1 ]; then - iptables -t mangle -N openclash_output - iptables -t mangle -F openclash_output - iptables -t mangle -A openclash_output -m set --match-set localnetwork dst -j RETURN - iptables -t mangle -A openclash_output $owner -m set --match-set wan_ac_black_ips dst -j RETURN >/dev/null 2>&1 - iptables -t mangle -A openclash_output $owner -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + iptables -t mangle -N openclash_output + iptables -t mangle -F openclash_output + iptables -t mangle -A openclash_output $owner -j RETURN + iptables -t mangle -A openclash_output -m set --match-set localnetwork dst -j RETURN + iptables -t mangle -A openclash_output -m conntrack --ctdir REPLY -j RETURN + iptables -t mangle -A openclash_output -d "$fakeip_range" -j MARK --set-mark "$PROXY_FWMARK" + if [ "$en_mode" = "redir-host" ]; then + iptables -t mangle -A openclash_output -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + fi + if [ "$router_self_proxy" = "1" ]; then + iptables -t mangle -A openclash_output -m set --match-set wan_ac_black_ips dst -j RETURN >/dev/null 2>&1 if [ "$china_ip_route" != "0" ]; then if [ "$china_ip_route" = "1" ]; then rule="-m set --match-set china_ip_route dst" @@ -2452,23 +2426,26 @@ if [ -z "$FW4" ]; then rule="-m set ! --match-set china_ip_route dst" fi [ "$enable_redirect_dns" != "2" ] && rule="$rule -m set ! --match-set china_ip_route_pass dst" - iptables -t mangle -A openclash_output $owner $rule -j RETURN >/dev/null 2>&1 + iptables -t mangle -A openclash_output $rule -j RETURN >/dev/null 2>&1 + fi + if [ "$en_mode_tun" -eq 1 ]; then + iptables -t mangle -A openclash_output -j MARK --set-mark "$PROXY_FWMARK" + else + iptables -t mangle -A openclash_output -p udp -j MARK --set-mark "$PROXY_FWMARK" fi - iptables -t mangle -A openclash_output $owner -p tcp -j MARK --set-mark "$PROXY_FWMARK" - iptables -t mangle -A OUTPUT -j openclash_output fi + iptables -t mangle -A OUTPUT -j openclash_output fi iptables -t mangle -N openclash iptables -t mangle -F openclash - iptables -t mangle -N openclash_dns_hijack - iptables -t mangle -F openclash_dns_hijack iptables -t mangle -N openclash_upnp iptables -t mangle -F openclash_upnp upnp_exclude #其他流量 iptables -t mangle -A openclash -i utun -j RETURN iptables -t mangle -A openclash -m set --match-set localnetwork dst -j RETURN + iptables -t mangle -A openclash -m conntrack --ctdir REPLY -j RETURN iptables -t mangle -A openclash -m set --match-set wan_ac_black_ips dst -j RETURN >/dev/null 2>&1 iptables -t mangle -A openclash -m set --match-set lan_ac_black_ips src -j RETURN >/dev/null 2>&1 iptables -t mangle -A openclash -m set --match-set lan_ac_black_macs src -j RETURN >/dev/null 2>&1 @@ -2499,18 +2476,6 @@ if [ -z "$FW4" ]; then if [ "$en_mode_tun" -eq 1 ]; then iptables -t mangle -A PREROUTING -j openclash else - if [ "$enable_redirect_dns" -eq 1 ]; then - iptables -t mangle -A PREROUTING -p tcp --dport 53 -j openclash_dns_hijack - iptables -t mangle -A openclash_dns_hijack -m set --match-set lan_ac_black_ips src -j RETURN >/dev/null 2>&1 - iptables -t mangle -A openclash_dns_hijack -m set --match-set lan_ac_black_macs src -j RETURN >/dev/null 2>&1 - if [ "$lan_ac_mode" = "1" ] && [ -n "$(uci -q get openclash.config.lan_ac_white_ips)" ] && [ -n "$(uci -q get openclash.config.lan_ac_white_macs)" ]; then - iptables -t mangle -A openclash_dns_hijack -m set ! --match-set lan_ac_white_ips src -m set ! --match-set lan_ac_white_macs src -j RETURN >/dev/null 2>&1 - else - iptables -t mangle -A openclash_dns_hijack -m set ! --match-set lan_ac_white_ips src -j RETURN >/dev/null 2>&1 - iptables -t mangle -A openclash_dns_hijack -m set ! --match-set lan_ac_white_macs src -j RETURN >/dev/null 2>&1 - fi - iptables -t mangle -A openclash_dns_hijack -m comment --comment "OpenClash TCP DNS Hijack" -p tcp --dport 53 -j MARK --set-mark "$PROXY_FWMARK" - fi iptables -t mangle -A PREROUTING -p udp -j openclash fi @@ -2558,11 +2523,7 @@ if [ -z "$FW4" ]; then fi fi ip6tables -t nat -I PREROUTING -p udp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - ip6tables -t nat -I PREROUTING -p tcp --dport 53 ${ACBLACKDNSFILTER} -j ACCEPT -m comment --comment "OpenClash DNS Hijack" - else - ip6tables -t nat -I PREROUTING -p tcp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" - fi + ip6tables -t nat -I PREROUTING -p tcp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" else ip6tables -t nat -I PREROUTING -p udp --dport 53 -m set --match-set lan_ac_white_ipv6s src -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" ip6tables -t nat -I PREROUTING -p tcp --dport 53 -m set --match-set lan_ac_white_ipv6s src -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" @@ -2570,12 +2531,8 @@ if [ -z "$FW4" ]; then ip6tables -t nat -I PREROUTING -p tcp --dport 53 -m set --match-set lan_ac_white_macs src -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" fi if [ "$router_self_proxy" = 1 ]; then - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - ip6tables -t nat -I OUTPUT -p tcp --dport 53 -d ::/0 $owner -j ACCEPT -m comment --comment "OpenClash DNS Hijack" - else - ip6tables -t nat -I OUTPUT -p tcp --dport 53 -d ::/0 $owner -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" - fi - ip6tables -t nat -I OUTPUT -p udp --dport 53 -d ::/0 $owner -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" + ip6tables -t nat -I OUTPUT -p tcp --dport 53 -d ::/0 $noowner -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" + ip6tables -t nat -I OUTPUT -p udp --dport 53 -d ::/0 $noowner -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "OpenClash DNS Hijack" fi elif [ "$enable_redirect_dns" -eq 2 ]; then ip6tables -t nat -N openclash_dns_redirect @@ -2591,11 +2548,7 @@ if [ -z "$FW4" ]; then fi fi ip6tables -t nat -A openclash_dns_redirect -p udp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - ip6tables -t nat -A openclash_dns_redirect -p tcp --dport 53 ${ACBLACKDNSFILTER} -j ACCEPT -m comment --comment "OpenClash DNS Hijack" - else - ip6tables -t nat -A openclash_dns_redirect -p tcp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" - fi + ip6tables -t nat -A openclash_dns_redirect -p tcp --dport 53 ${ACBLACKDNSFILTER} -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" else ip6tables -t nat -A openclash_dns_redirect -p udp --dport 53 -m set --match-set lan_ac_white_ipv6s src -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" ip6tables -t nat -A openclash_dns_redirect -p tcp --dport 53 -m set --match-set lan_ac_white_ipv6s src -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" @@ -2605,12 +2558,8 @@ if [ -z "$FW4" ]; then ip6tables -t nat -I PREROUTING -p udp --dport 53 -j openclash_dns_redirect ip6tables -t nat -I PREROUTING -p tcp --dport 53 -j openclash_dns_redirect if [ "$router_self_proxy" = 1 ]; then - ip6tables -t nat -I OUTPUT -p udp --dport 53 -d ::/0 $owner -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" - if [ "$ipv6_mode" -eq 2 ] || [ "$ipv6_mode" -eq 3 ]; then - ip6tables -t nat -I OUTPUT -p tcp --dport 53 -d ::/0 $owner -j ACCEPT -m comment --comment "OpenClash DNS Hijack" - else - ip6tables -t nat -I OUTPUT -p tcp --dport 53 -d ::/0 $owner -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" - fi + ip6tables -t nat -I OUTPUT -p udp --dport 53 -d ::/0 $noowner -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" + ip6tables -t nat -I OUTPUT -p tcp --dport 53 -d ::/0 $noowner -j REDIRECT --to-ports "$dns_port" -m comment --comment "OpenClash DNS Hijack" fi fi fi @@ -2649,6 +2598,7 @@ if [ -z "$FW4" ]; then ip6tables -t nat -N openclash ip6tables -t nat -F openclash ip6tables -t nat -A openclash -m set --match-set localnetwork6 dst -j RETURN + ip6tables -t nat -A openclash -m conntrack --ctdir REPLY -j RETURN ip6tables -t nat -A openclash -m set --match-set wan_ac_black_ipv6s dst -j RETURN >/dev/null 2>&1 ip6tables -t nat -A openclash -m set --match-set lan_ac_black_ipv6s src -j RETURN >/dev/null 2>&1 ip6tables -t nat -A openclash -m set --match-set lan_ac_black_macs src -j RETURN >/dev/null 2>&1 @@ -2674,38 +2624,12 @@ if [ -z "$FW4" ]; then ip6tables -t nat -A PREROUTING -p tcp -j openclash fi - #tproxy not support output chain - if [ "$ipv6_mode" -ne 2 ]; then - if [ "$router_self_proxy" = "1" ]; then - ip6tables -t nat -N openclash_output - ip6tables -t nat -F openclash_output - ip6tables -t nat -A openclash_output -m set --match-set localnetwork6 dst -j RETURN - ip6tables -t nat -A openclash_output $owner -m set --match-set wan_ac_black_ipv6s dst -j RETURN >/dev/null 2>&1 - if [ "$en_mode" = "redir-host" ]; then - ip6tables -t nat -A openclash_output $owner -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 - fi - if [ "$china_ip6_route" != "0" ]; then - if [ "$china_ip6_route" = "1" ]; then - rule="-m set --match-set china_ip6_route dst" - elif [ "$china_ip6_route" = "2" ]; then - rule="-m set ! --match-set china_ip6_route dst" - fi - [ "$enable_redirect_dns" != "2" ] && rule="$rule -m set ! --match-set china_ip6_route_pass dst" - ip6tables -t nat -A openclash_output $owner $rule -j RETURN >/dev/null 2>&1 - fi - ip6tables -t nat -A openclash_output $owner -p tcp -j REDIRECT --to-ports "$proxy_port" - ip6tables -t nat -A OUTPUT -j openclash_output >/dev/null 2>&1 - fi - fi - - #TProxy & TUN + #TProxy & TUN & Redirect udp if [ "$enable_v6_udp_proxy" -eq 1 ] || [ "$ipv6_mode" -ne 1 ]; then ip6tables -t mangle -N openclash ip6tables -t mangle -F openclash - #prevent tproxy loop - ip6tables -t mangle -A openclash -i lo -j RETURN ip6tables -t mangle -A openclash -m set --match-set localnetwork6 dst -j RETURN - ip6tables -t mangle -A openclash -p udp --dport 53 -j RETURN + ip6tables -t mangle -A openclash -m conntrack --ctdir REPLY -j RETURN ip6tables -t mangle -A openclash -m set --match-set wan_ac_black_ipv6s dst -j RETURN >/dev/null 2>&1 ip6tables -t mangle -A openclash -m set --match-set lan_ac_black_macs src -j RETURN >/dev/null 2>&1 ip6tables -t mangle -A openclash -m set --match-set lan_ac_black_ipv6s src -j RETURN >/dev/null 2>&1 @@ -2731,39 +2655,13 @@ if [ -z "$FW4" ]; then fi fi - #TProxy & TUN + #tcp Tproxy && TUN if [ "$ipv6_mode" -ne 1 ] && [ "$ipv6_mode" -ne 3 ]; then if [ "$ipv6_mode" -eq 0 ]; then ip6tables -t mangle -A openclash -p tcp -m comment --comment "OpenClash TCP Tproxy" -j TPROXY --on-port "$tproxy_port" --tproxy-mark "$PROXY_FWMARK" else ip6tables -t mangle -A openclash -p tcp -j MARK --set-mark "$PROXY_FWMARK" fi - - if [ "$router_self_proxy" = "1" ]; then - if [ "$ipv6_mode" -eq 2 ]; then - ip6tables -t mangle -N openclash_output - ip6tables -t mangle -F openclash_output - if [ "$enable_redirect_dns" != "0" ]; then - ip6tables -t mangle -A openclash_output $owner -p tcp --dport 53 -j MARK --set-mark "$PROXY_FWMARK" - fi - ip6tables -t mangle -A openclash_output -m set --match-set localnetwork6 dst -j RETURN - ip6tables -t mangle -A openclash_output $owner -m set --match-set wan_ac_black_ipv6s dst -j RETURN >/dev/null 2>&1 - if [ "$en_mode" = "redir-host" ]; then - ip6tables -t mangle -A openclash_output $owner -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 - fi - if [ "$china_ip6_route" != "0" ]; then - if [ "$china_ip6_route" = "1" ]; then - rule="-m set --match-set china_ip6_route dst" - elif [ "$china_ip6_route" = "2" ]; then - rule="-m set ! --match-set china_ip6_route dst" - fi - [ "$enable_redirect_dns" != "2" ] && rule="$rule -m set ! --match-set china_ip6_route_pass dst" - ip6tables -t mangle -A openclash_output $owner $rule -j RETURN >/dev/null 2>&1 - fi - ip6tables -t mangle -A openclash_output -p tcp $owner -j MARK --set-xmark "$PROXY_FWMARK" - ip6tables -t mangle -A OUTPUT -j openclash_output - fi - fi fi #udp @@ -2777,6 +2675,64 @@ if [ -z "$FW4" ]; then ip6tables -t mangle -A PREROUTING -j openclash + #router self proxy + if [ "$router_self_proxy" = "1" ]; then + if [ "$ipv6_mode" -eq 1 ] || [ "$ipv6_mode" -eq 3 ]; then + #tcp Redirect Mode + ip6tables -t nat -N openclash_output + ip6tables -t nat -F openclash_output + ip6tables -t nat -A openclash_output $owner -j RETURN + ip6tables -t nat -A openclash_output -m set --match-set localnetwork6 dst -j RETURN + ip6tables -t nat -A openclash_output -m conntrack --ctdir REPLY -j RETURN + ip6tables -t nat -A openclash_output -m set --match-set wan_ac_black_ipv6s dst -j RETURN >/dev/null 2>&1 + if [ "$en_mode" = "redir-host" ]; then + ip6tables -t nat -A openclash_output -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + fi + if [ "$china_ip6_route" != "0" ]; then + if [ "$china_ip6_route" = "1" ]; then + rule="-m set --match-set china_ip6_route dst" + elif [ "$china_ip6_route" = "2" ]; then + rule="-m set ! --match-set china_ip6_route dst" + fi + [ "$enable_redirect_dns" != "2" ] && rule="$rule -m set ! --match-set china_ip6_route_pass dst" + ip6tables -t nat -A openclash_output $rule -j RETURN >/dev/null 2>&1 + fi + ip6tables -t nat -A openclash_output -p tcp -j REDIRECT --to-ports "$proxy_port" + ip6tables -t nat -A OUTPUT -j openclash_output >/dev/null 2>&1 + fi + + #other mode and Redirect Mode udp + ip6tables -t mangle -N openclash_output + ip6tables -t mangle -F openclash_output + ip6tables -t mangle -A openclash_output $owner -j RETURN + ip6tables -t mangle -A openclash_output -m set --match-set localnetwork6 dst -j RETURN + ip6tables -t mangle -A openclash_output -m conntrack --ctdir REPLY -j RETURN + ip6tables -t mangle -A openclash_output -m set --match-set wan_ac_black_ipv6s dst -j RETURN >/dev/null 2>&1 + if [ "$en_mode" = "redir-host" ]; then + ip6tables -t mangle -A openclash_output -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + fi + if [ "$china_ip6_route" != "0" ]; then + if [ "$china_ip6_route" = "1" ]; then + rule="-m set --match-set china_ip6_route dst" + elif [ "$china_ip6_route" = "2" ]; then + rule="-m set ! --match-set china_ip6_route dst" + fi + [ "$enable_redirect_dns" != "2" ] && rule="$rule -m set ! --match-set china_ip6_route_pass dst" + ip6tables -t mangle -A openclash_output $rule -j RETURN >/dev/null 2>&1 + fi + + if ([ "$ipv6_mode" -eq 1 ] && [ "$enable_v6_udp_proxy" -eq 1 ]) || [ "$ipv6_mode" -eq 3 ]; then + ip6tables -t mangle -A openclash_output -p udp -j MARK --set-xmark "$PROXY_FWMARK" + fi + if ([ "$ipv6_mode" -eq 0 ] && [ "$enable_v6_udp_proxy" -eq 1 ]) || [ "$ipv6_mode" -eq 2 ]; then + ip6tables -t mangle -A openclash_output -j MARK --set-xmark "$PROXY_FWMARK" + fi + if [ "$ipv6_mode" -eq 0 ] && [ "$enable_v6_udp_proxy" -ne 1 ]; then + ip6tables -t mangle -A openclash_output -p tcp -j MARK --set-xmark "$PROXY_FWMARK" + fi + ip6tables -t mangle -A OUTPUT -j openclash_output + fi + #route if [ "$ipv6_mode" -ne 2 ] && [ "$ipv6_mode" -ne 3 ]; then if [ "$enable_v6_udp_proxy" -eq 1 ] || [ "$ipv6_mode" -eq 0 ]; then @@ -2813,9 +2769,11 @@ if [ -z "$FW4" ]; then if [ "$bypass_gateway_compatible" -eq 1 ]; then ip6tables -t nat -N openclash_post ip6tables -t nat -F openclash_post + ip6tables -t nat -A openclash_post $owner -j RETURN ip6tables -t nat -A openclash_post -m mark --mark "$PROXY_FWMARK" -j ACCEPT ip6tables -t nat -A openclash_post -m set --match-set localnetwork6 dst -j RETURN - ip6tables -t nat -A openclash_post $addr_local $owner -j MASQUERADE + ip6tables -t nat -A openclash_post -m conntrack --ctdir REPLY -j RETURN + ip6tables -t nat -A openclash_post $addr_local -j MASQUERADE ip6tables -t nat -A POSTROUTING -m comment --comment "OpenClash Bypass Gateway Compatible" -j openclash_post fi @@ -2904,7 +2862,7 @@ revert_firewall() done done >/dev/null 2>&1 - for chain in "openclash" "openclash_output" "openclash_post" "openclash_dns_hijack" "openclash_wan_input" "openclash_dns_redirect" "openclash_upnp"; do + for chain in "openclash" "openclash_output" "openclash_post" "openclash_wan_input" "openclash_dns_redirect" "openclash_upnp"; do iptables -t nat -F $chain iptables -t nat -X $chain iptables -t mangle -F $chain @@ -2925,7 +2883,6 @@ revert_firewall() ipset destroy lan_ac_white_ipv6s >/dev/null 2>&1 ipset destroy lan_ac_black_ipv6s >/dev/null 2>&1 ipset destroy wan_ac_black_ipv6s >/dev/null 2>&1 - ipset destroy localnetwork >/dev/null 2>&1 ipset destroy china_ip_route >/dev/null 2>&1 ipset destroy china_ip_route_pass >/dev/null 2>&1 @@ -2935,7 +2892,6 @@ revert_firewall() ipset destroy lan_ac_black_macs >/dev/null 2>&1 ipset destroy wan_ac_black_ips >/dev/null 2>&1 ipset destroy common_ports >/dev/null 2>&1 - ipset destroy openclash_google_dns_ips >/dev/null 2>&1 fi } @@ -2972,7 +2928,6 @@ get_config() wan_ip4s=$(/usr/share/openclash/openclash_get_network.lua "wanip" 2>/dev/null) wan_ip6s=$(ifconfig | grep 'inet6 addr' | awk '{print $3}' 2>/dev/null) - disable_masq_cache=$(uci -q get openclash.config.disable_masq_cache) log_level=$(uci -q get openclash.config.log_level) intranet_allowed=$(uci -q get openclash.config.intranet_allowed) enable_udp_proxy=$(uci -q get openclash.config.enable_udp_proxy || echo 1) @@ -3007,17 +2962,18 @@ get_config() enable_respect_rules=$(uci -q get openclash.config.enable_respect_rules || echo 0) intranet_allowed_wan_name=$(uci -q get openclash.config.intranet_allowed_wan_name || echo 0) custom_fakeip_filter_mode=$(uci -q get openclash.config.custom_fakeip_filter_mode || echo "blacklist") - iptables_compat=$(iptables -m owner -h 2>/dev/null | grep "owner match options" || echo 0) + iptables_compat=$(iptables -m owner -h 2>/dev/null | grep "owner match options" || command -v fw4 || echo 0) + disable_quic_go_gso=$(uci -q get openclash.config.disable_quic_go_gso || echo 0) [ -z "$dns_port" ] && dns_port=7874 && uci -q set openclash.config.dns_port=7874 uci -q commit openclash } -start() +start_service() { enable=$(uci -q get openclash.config.enable) - [ "$enable" != "1" ] && LOG_OUT "Warning: OpenClash Now Disabled, Need Start From Luci Page, Exit..." && SLOG_CLEAN && del_lock && exit 0 - service openclash enable + [ "$enable" != "1" ] && LOG_OUT "Warning: OpenClash Now Disabled, Need Start From Luci Page, Exit..." && SLOG_CLEAN && exit 0 + LOG_OUT "OpenClash Start Running..." config_choose @@ -3033,7 +2989,7 @@ start() if ! $quick_start; then LOG_OUT "Step 3: Modify The Config File..." config_check - /usr/share/openclash/yml_change.sh 2>/dev/null "$en_mode" "$da_password" "$cn_port" "$proxy_port" "$TMP_CONFIG_FILE" "$ipv6_enable" "$http_port" "$socks_port" "$log_level" "$proxy_mode" "$en_mode_tun" "$stack_type" "$dns_port" "$mixed_port" "$tproxy_port" "$ipv6_dns" "$store_fakeip" "$enable_meta_sniffer" "$enable_geoip_dat" "$geodata_loader" "$enable_meta_sniffer_custom" "$interface_name" "$enable_tcp_concurrent" "$core_type" "$append_default_dns" "$enable_meta_sniffer_pure_ip" "$find_process_mode" "$fakeip_range" "$global_client_fingerprint" "$ipv6_mode" "$stack_type_v6" "$enable_unified_delay" "$enable_respect_rules" "$custom_fakeip_filter_mode" "$iptables_compat" + /usr/share/openclash/yml_change.sh 2>/dev/null "$en_mode" "$da_password" "$cn_port" "$proxy_port" "$TMP_CONFIG_FILE" "$ipv6_enable" "$http_port" "$socks_port" "$log_level" "$proxy_mode" "$en_mode_tun" "$stack_type" "$dns_port" "$mixed_port" "$tproxy_port" "$ipv6_dns" "$store_fakeip" "$enable_meta_sniffer" "$enable_geoip_dat" "$geodata_loader" "$enable_meta_sniffer_custom" "$interface_name" "$enable_tcp_concurrent" "$core_type" "$append_default_dns" "$enable_meta_sniffer_pure_ip" "$find_process_mode" "$fakeip_range" "$global_client_fingerprint" "$ipv6_mode" "$stack_type_v6" "$enable_unified_delay" "$enable_respect_rules" "$custom_fakeip_filter_mode" "$iptables_compat" "$disable_quic_go_gso" /usr/share/openclash/yml_rules_change.sh 2>/dev/null "$rule_source" "$enable_custom_clash_rules" "$TMP_CONFIG_FILE" "$enable_rule_proxy" "$CONFIG_NAME" "$router_self_proxy" "$lan_ip" "$enable_redirect_dns" "$en_mode" #Custom overwrite if [ -f "/etc/openclash/custom/openclash_custom_overwrite.sh" ]; then @@ -3048,7 +3004,7 @@ start() start_run_core LOG_OUT "Step 5: Set Dnsmasq..." - change_dns "$enable_redirect_dns" "$disable_masq_cache" + change_dns "$enable_redirect_dns" LOG_OUT "Step 6: Set Firewall Rules..." set_firewall @@ -3069,7 +3025,7 @@ start() rm -rf /tmp/yaml_* } -stop() +stop_service() { enable=$(uci -q get openclash.config.enable) @@ -3092,16 +3048,6 @@ stop() kill -9 "$streaming_unlock_pid" >/dev/null 2>&1 done >/dev/null 2>&1 - openclash_stop_pids=$(unify_ps_pids "/etc/init.d/openclash stop") - openclash_pids=$(unify_ps_pids "/etc/init.d/openclash") - if [ -n "$openclash_stop_pids" ]; then - for openclash_pid in $openclash_pids; do - if [ "$openclash_pid" != "$$" ] && ! "$start_fail_pid"; then - kill -9 "$openclash_pid" >/dev/null 2>&1 - fi - done >/dev/null 2>&1 - fi - LOG_OUT "Step 4: Close The Clash Core Process..." if [ "$enable" != "1" ]; then kill_clash @@ -3112,7 +3058,7 @@ stop() LOG_OUT "Step 6: Delete OpenClash Residue File..." if [ "$enable" != "1" ]; then - service openclash disable + rm -rf /tmp/clash_last_version >/dev/null 2>&1 rm -rf /tmp/Proxy_Group >/dev/null 2>&1 rm -rf /tmp/rules_name >/dev/null 2>&1 @@ -3125,7 +3071,6 @@ stop() rm -rf ${DNSMASQ_CONF_DIR}/dnsmasq_openclash_chnroute_pass.conf >/dev/null 2>&1 rm -rf ${DNSMASQ_CONF_DIR}/dnsmasq_openclash_chnroute6_pass.conf >/dev/null 2>&1 rm -rf ${DNSMASQ_CONF_DIR}/dnsmasq_openclash_custom_domain.conf >/dev/null 2>&1 - del_lock LOG_OUT "OpenClash Already Stop!" else LOG_OUT "OpenClash Already Stop!" @@ -3155,25 +3100,25 @@ revert_dnsmasq() restart() { - [ -f "$LOCK_FILE" ] && LOG_OUT "Warning: Multiple Restart Scripts Running, Exit..." && SLOG_CLEAN && exit 0 - mkdir -p /tmp/lock - touch $LOCK_FILE - set_lock echo "OpenClash Restart..." LOG_OUT "OpenClash Restart..." #快速启动判断 check_run_quick stop start - del_lock } -reload() +start_watchdog() +{ + procd_open_instance "openclash-watchdog" + procd_set_param command "/usr/share/openclash/openclash_watchdog.sh" + procd_close_instance +} + +reload_service() { - [ -f "$LOCK_FILE" ] && exit 0 enable=$(uci -q get openclash.config.enable) if pidof clash >/dev/null && [ "$enable" == "1" ] && [ "$1" == "firewall" ]; then - set_lock LOG_OUT "Reload OpenClash Firewall Rules..." revert_firewall 2>/dev/null do_run_mode 2>/dev/null @@ -3181,27 +3126,21 @@ reload() set_firewall 2>/dev/null check_core_status & 2>/dev/null SLOG_CLEAN - del_lock fi if pidof clash >/dev/null && [ "$enable" == "1" ] && [ "$1" == "revert" ]; then - set_lock revert_firewall 2>/dev/null revert_dnsmasq 2>/dev/null SLOG_CLEAN - del_lock fi if pidof clash >/dev/null && [ "$enable" == "1" ] && [ "$1" == "restore" ]; then - set_lock do_run_mode 2>/dev/null get_config 2>/dev/null - change_dns "$enable_redirect_dns" "$disable_masq_cache" + change_dns "$enable_redirect_dns" set_firewall 2>/dev/null check_core_status & 2>/dev/null SLOG_CLEAN - del_lock fi if [ "$enable" == "1" ] && [ "$1" == "core" ]; then - set_lock check_run_quick 2>/dev/null do_run_mode 2>/dev/null get_config 2>/dev/null @@ -3209,7 +3148,6 @@ reload() check_core_status 2>/dev/null write_run_quick 2>/dev/null SLOG_CLEAN - del_lock fi } @@ -3223,3 +3161,4 @@ boot() fi restart } + diff --git a/luci-app-openclash/root/etc/openclash/china_ip6_route.ipset b/luci-app-openclash/root/etc/openclash/china_ip6_route.ipset index faf94fd10..936f8a9dd 100644 --- a/luci-app-openclash/root/etc/openclash/china_ip6_route.ipset +++ b/luci-app-openclash/root/etc/openclash/china_ip6_route.ipset @@ -1,1943 +1,2029 @@ -create china_ip6_route hash:net family inet6 hashsize 1024 maxelem 1000000 -add china_ip6_route 2001:250::/35 -add china_ip6_route 2001:250:2000::/35 -add china_ip6_route 2001:250:4000::/34 -add china_ip6_route 2001:250:8000::/33 -add china_ip6_route 2001:251::/32 -add china_ip6_route 2001:252::/32 -add china_ip6_route 2001:253::/32 -add china_ip6_route 2001:254::/32 -add china_ip6_route 2001:255::/32 -add china_ip6_route 2001:256::/32 -add china_ip6_route 2001:7fa:5::/48 -add china_ip6_route 2001:7fa:10::/48 -add china_ip6_route 2001:c68::/32 -add china_ip6_route 2001:cc0::/32 -add china_ip6_route 2001:da8::/32 -add china_ip6_route 2001:da9::/32 -add china_ip6_route 2001:daa::/32 -add china_ip6_route 2001:dc7::/32 -add china_ip6_route 2001:dd8:1::/48 -add china_ip6_route 2001:dd8:5::/48 -add china_ip6_route 2001:dd8:1a::/48 -add china_ip6_route 2001:dd9::/48 -add china_ip6_route 2001:df0:27e::/48 -add china_ip6_route 2001:df0:423::/48 -add china_ip6_route 2001:df0:9c0::/48 -add china_ip6_route 2001:df0:1bc0::/48 -add china_ip6_route 2001:df0:2180::/48 -add china_ip6_route 2001:df0:25c0::/48 -add china_ip6_route 2001:df0:26c0::/48 -add china_ip6_route 2001:df0:2d80::/48 -add china_ip6_route 2001:df0:2e00::/48 -add china_ip6_route 2001:df0:2e80::/48 -add china_ip6_route 2001:df0:4500::/48 -add china_ip6_route 2001:df0:59c0::/48 -add china_ip6_route 2001:df0:85c0::/48 -add china_ip6_route 2001:df0:8d40::/48 -add china_ip6_route 2001:df0:b180::/48 -add china_ip6_route 2001:df0:bf80::/48 -add china_ip6_route 2001:df0:d880::/48 -add china_ip6_route 2001:df1:c80::/48 -add china_ip6_route 2001:df1:4580::/48 -add china_ip6_route 2001:df1:5280::/48 -add china_ip6_route 2001:df1:5b80::/48 -add china_ip6_route 2001:df1:6180::/48 -add china_ip6_route 2001:df1:6b80::/48 -add china_ip6_route 2001:df1:8b00::/48 -add china_ip6_route 2001:df1:a100::/48 -add china_ip6_route 2001:df1:bd80::/48 -add china_ip6_route 2001:df1:c900::/48 -add china_ip6_route 2001:df1:d100::/48 -add china_ip6_route 2001:df1:d180::/48 -add china_ip6_route 2001:df1:da00::/48 -add china_ip6_route 2001:df1:f480::/48 -add china_ip6_route 2001:df1:f580::/48 -add china_ip6_route 2001:df1:fd80::/48 -add china_ip6_route 2001:df2:80::/48 -add china_ip6_route 2001:df2:180::/48 -add china_ip6_route 2001:df2:5780::/48 -add china_ip6_route 2001:df2:5a80::/48 -add china_ip6_route 2001:df2:a580::/48 -add china_ip6_route 2001:df3:1480::/48 -add china_ip6_route 2001:df3:2a80::/48 -add china_ip6_route 2001:df3:3a80::/48 -add china_ip6_route 2001:df3:a680::/48 -add china_ip6_route 2001:df3:b100::/48 -add china_ip6_route 2001:df3:b380::/48 -add china_ip6_route 2001:df3:c380::/48 -add china_ip6_route 2001:df3:c680::/48 -add china_ip6_route 2001:df3:d880::/48 -add china_ip6_route 2001:df3:ed80::/48 -add china_ip6_route 2001:df3:ef80::/48 -add china_ip6_route 2001:df4:880::/48 -add china_ip6_route 2001:df4:d80::/48 -add china_ip6_route 2001:df4:1280::/48 -add china_ip6_route 2001:df4:1500::/48 -add china_ip6_route 2001:df4:1880::/48 -add china_ip6_route 2001:df4:2780::/48 -add china_ip6_route 2001:df4:2e80::/48 -add china_ip6_route 2001:df4:2f00::/48 -add china_ip6_route 2001:df4:3c80::/48 -add china_ip6_route 2001:df4:3d80::/48 -add china_ip6_route 2001:df4:4b80::/48 -add china_ip6_route 2001:df4:4d80::/48 -add china_ip6_route 2001:df4:a680::/48 -add china_ip6_route 2001:df4:a980::/48 -add china_ip6_route 2001:df4:c180::/48 -add china_ip6_route 2001:df4:c580::/48 -add china_ip6_route 2001:df4:c780::/48 -add china_ip6_route 2001:df4:cf00::/48 -add china_ip6_route 2001:df4:de80::/48 -add china_ip6_route 2001:df5:2080::/48 -add china_ip6_route 2001:df5:5f80::/48 -add china_ip6_route 2001:df5:7800::/48 -add china_ip6_route 2001:df6:100::/48 -add china_ip6_route 2001:df6:3d00::/48 -add china_ip6_route 2001:df6:5d00::/48 -add china_ip6_route 2001:df6:6800::/48 -add china_ip6_route 2001:df6:9e80::/48 -add china_ip6_route 2001:df6:9f80::/48 -add china_ip6_route 2001:df6:df00::/48 -add china_ip6_route 2001:df6:f400::/48 -add china_ip6_route 2001:df7:1480::/48 -add china_ip6_route 2001:df7:2b80::/48 -add china_ip6_route 2001:df7:6600::/48 -add china_ip6_route 2001:df7:ab00::/48 -add china_ip6_route 2001:df7:e580::/48 -add china_ip6_route 2001:df7:f080::/48 -add china_ip6_route 2001:e08::/32 -add china_ip6_route 2001:e18::/32 -add china_ip6_route 2001:e80::/32 -add china_ip6_route 2001:e88::/32 -add china_ip6_route 2001:f38::/32 -add china_ip6_route 2001:f88::/32 -add china_ip6_route 2001:4438::/32 -add china_ip6_route 2001:4510::/29 -add china_ip6_route 2400:1040::/32 -add china_ip6_route 2400:1160::/32 -add china_ip6_route 2400:12c0::/32 -add china_ip6_route 2400:1340::/32 -add china_ip6_route 2400:1380::/32 -add china_ip6_route 2400:15c0::/32 -add china_ip6_route 2400:1640::/32 -add china_ip6_route 2400:16c0::/32 -add china_ip6_route 2400:1740::/32 -add china_ip6_route 2400:17c0::/32 -add china_ip6_route 2400:1840::/32 -add china_ip6_route 2400:18c0::/32 -add china_ip6_route 2400:1940::/32 -add china_ip6_route 2400:19a0::/32 -add china_ip6_route 2400:19c0::/32 -add china_ip6_route 2400:1a40::/32 -add china_ip6_route 2400:1ac0::/32 -add china_ip6_route 2400:1b40::/32 -add china_ip6_route 2400:1cc0::/32 -add china_ip6_route 2400:1d40::/32 -add china_ip6_route 2400:1dc0::/32 -add china_ip6_route 2400:1e40::/32 -add china_ip6_route 2400:1ec0::/32 -add china_ip6_route 2400:1f40::/32 -add china_ip6_route 2400:1fc0::/32 -add china_ip6_route 2400:3040::/32 -add china_ip6_route 2400:3140::/32 -add china_ip6_route 2400:3160::/32 -add china_ip6_route 2400:31c0::/32 -add china_ip6_route 2400:3200::/32 -add china_ip6_route 2400:3280::/32 -add china_ip6_route 2400:32c0::/32 -add china_ip6_route 2400:3340::/32 -add china_ip6_route 2400:33c0::/32 -add china_ip6_route 2400:3440::/32 -add china_ip6_route 2400:34c0::/32 -add china_ip6_route 2400:3540::/32 -add china_ip6_route 2400:35c0::/32 -add china_ip6_route 2400:3600::/32 -add china_ip6_route 2400:3640::/32 -add china_ip6_route 2400:3660::/32 -add china_ip6_route 2400:36c0::/32 -add china_ip6_route 2400:38c0::/32 -add china_ip6_route 2400:39c0::/32 -add china_ip6_route 2400:3a00::/32 -add china_ip6_route 2400:3a40::/32 -add china_ip6_route 2400:3b40::/32 -add china_ip6_route 2400:3bc0::/32 -add china_ip6_route 2400:3c40::/32 -add china_ip6_route 2400:3cc0::/32 -add china_ip6_route 2400:3e00::/32 -add china_ip6_route 2400:3f40::/32 -add china_ip6_route 2400:3f60::/32 -add china_ip6_route 2400:3fc0::/32 -add china_ip6_route 2400:4440::/32 -add china_ip6_route 2400:44c0::/32 -add china_ip6_route 2400:44e0::/32 -add china_ip6_route 2400:4540::/32 -add china_ip6_route 2400:4600::/32 -add china_ip6_route 2400:4640::/32 -add china_ip6_route 2400:46c0::/32 -add china_ip6_route 2400:4740::/32 -add china_ip6_route 2400:4920::/32 -add china_ip6_route 2400:4bc0::/32 -add china_ip6_route 2400:4e00::/32 -add china_ip6_route 2400:4e40::/32 -add china_ip6_route 2400:5080::/32 -add china_ip6_route 2400:5280::/32 -add china_ip6_route 2400:5400::/32 -add china_ip6_route 2400:5580::/32 -add china_ip6_route 2400:55c0::/32 -add china_ip6_route 2400:55e0::/32 -add china_ip6_route 2400:5600::/32 -add china_ip6_route 2400:5640::/32 -add china_ip6_route 2400:56c0::/32 -add china_ip6_route 2400:57c0::/32 -add china_ip6_route 2400:5840::/32 -add china_ip6_route 2400:5a00::/32 -add china_ip6_route 2400:5a40::/32 -add china_ip6_route 2400:5a60::/32 -add china_ip6_route 2400:5ac0::/32 -add china_ip6_route 2400:5b40::/32 -add china_ip6_route 2400:5bc0::/32 -add china_ip6_route 2400:5c40::/32 -add china_ip6_route 2400:5c80::/32 -add china_ip6_route 2400:5cc0::/32 -add china_ip6_route 2400:5e20::/32 -add china_ip6_route 2400:5e80::/32 -add china_ip6_route 2400:5ee0::/32 -add china_ip6_route 2400:5f60::/32 -add china_ip6_route 2400:5fc0::/32 -add china_ip6_route 2400:6000::/32 -add china_ip6_route 2400:6040::/32 -add china_ip6_route 2400:60c0::/32 -add china_ip6_route 2400:61c0::/32 -add china_ip6_route 2400:6200::/32 -add china_ip6_route 2400:6600::/32 -add china_ip6_route 2400:6640::/32 -add china_ip6_route 2400:66a0::/32 -add china_ip6_route 2400:66c0::/32 -add china_ip6_route 2400:66e0::/32 -add china_ip6_route 2400:6740::/32 -add china_ip6_route 2400:67c0::/32 -add china_ip6_route 2400:6840::/32 -add china_ip6_route 2400:68c0::/32 -add china_ip6_route 2400:6940::/32 -add china_ip6_route 2400:69c0::/32 -add china_ip6_route 2400:6a00::/32 -add china_ip6_route 2400:6a40::/32 -add china_ip6_route 2400:6ac0::/32 -add china_ip6_route 2400:6b40::/32 -add china_ip6_route 2400:6bc0::/32 -add china_ip6_route 2400:6c40::/32 -add china_ip6_route 2400:6cc0::/32 -add china_ip6_route 2400:6d40::/32 -add china_ip6_route 2400:6dc0::/32 -add china_ip6_route 2400:6e00::/32 -add china_ip6_route 2400:6e40::/32 -add china_ip6_route 2400:6ec0::/32 -add china_ip6_route 2400:6f40::/32 -add china_ip6_route 2400:6f80::/32 -add china_ip6_route 2400:6fc0::/32 -add china_ip6_route 2400:7040::/32 -add china_ip6_route 2400:7100::/32 -add china_ip6_route 2400:7140::/32 -add china_ip6_route 2400:71c0::/32 -add china_ip6_route 2400:7200::/32 -add china_ip6_route 2400:7240::/32 -add china_ip6_route 2400:72c0::/32 -add china_ip6_route 2400:7340::/32 -add china_ip6_route 2400:73c0::/32 -add china_ip6_route 2400:7440::/32 -add china_ip6_route 2400:74c0::/32 -add china_ip6_route 2400:7540::/32 -add china_ip6_route 2400:75c0::/32 -add china_ip6_route 2400:7640::/32 -add china_ip6_route 2400:7680::/32 -add china_ip6_route 2400:76c0::/32 -add china_ip6_route 2400:7740::/32 -add china_ip6_route 2400:77c0::/32 -add china_ip6_route 2400:79c0::/32 -add china_ip6_route 2400:7ac0::/32 -add china_ip6_route 2400:7bc0::/32 -add china_ip6_route 2400:7f80::/32 -add china_ip6_route 2400:7fc0::/32 -add china_ip6_route 2400:8080::/32 -add china_ip6_route 2400:8200::/32 -add china_ip6_route 2400:82c0::/32 -add china_ip6_route 2400:8580::/32 -add china_ip6_route 2400:8600::/32 -add china_ip6_route 2400:8780::/32 -add china_ip6_route 2400:87c0::/32 -add china_ip6_route 2400:8840::/32 -add china_ip6_route 2400:8980::/32 -add china_ip6_route 2400:89c0::/32 -add china_ip6_route 2400:8e00::/32 -add china_ip6_route 2400:8f00::/32 -add china_ip6_route 2400:8fc0::/32 -add china_ip6_route 2400:9040::/32 -add china_ip6_route 2400:9340::/32 -add china_ip6_route 2400:9580::/32 -add china_ip6_route 2400:95c0::/32 -add china_ip6_route 2400:9600::/32 -add china_ip6_route 2400:98c0::/32 -add china_ip6_route 2400:9a00::/32 -add china_ip6_route 2400:9e00::/32 -add china_ip6_route 2400:a040::/32 -add china_ip6_route 2400:a380::/32 -add china_ip6_route 2400:a480::/32 -add china_ip6_route 2400:a780::/32 -add china_ip6_route 2400:a8c0::/32 -add china_ip6_route 2400:a900::/32 -add china_ip6_route 2400:a980::/32 -add china_ip6_route 2400:a981::/32 -add china_ip6_route 2400:a982::/31 -add china_ip6_route 2400:a984::/30 -add china_ip6_route 2400:abc0::/32 -add china_ip6_route 2400:ae00::/32 -add china_ip6_route 2400:b200::/32 -add china_ip6_route 2400:b2c0::/32 -add china_ip6_route 2400:b500::/32 -add china_ip6_route 2400:b600::/32 -add china_ip6_route 2400:b6c0::/32 -add china_ip6_route 2400:b700::/32 -add china_ip6_route 2400:b8c0::/32 -add china_ip6_route 2400:b9c0::/32 -add china_ip6_route 2400:ba00::/32 -add china_ip6_route 2400:ba40::/32 -add china_ip6_route 2400:ba41::/32 -add china_ip6_route 2400:bac0::/32 -add china_ip6_route 2400:be00::/32 -add china_ip6_route 2400:bf00::/32 -add china_ip6_route 2400:c200::/32 -add china_ip6_route 2400:c380::/32 -add china_ip6_route 2400:c840::/32 -add china_ip6_route 2400:c8c0::/32 -add china_ip6_route 2400:c940::/32 -add china_ip6_route 2400:c9c0::/32 -add china_ip6_route 2400:ca40::/32 -add china_ip6_route 2400:cac0::/32 -add china_ip6_route 2400:cb40::/32 -add china_ip6_route 2400:cb80::/32 -add china_ip6_route 2400:cbc0::/32 -add china_ip6_route 2400:cc40::/32 -add china_ip6_route 2400:cc80::/32 -add china_ip6_route 2400:ccc0::/32 -add china_ip6_route 2400:cd40::/32 -add china_ip6_route 2400:cdc0::/32 -add china_ip6_route 2400:ce00::/32 -add china_ip6_route 2400:ce40::/32 -add china_ip6_route 2400:cf40::/32 -add china_ip6_route 2400:cf80::/32 -add china_ip6_route 2400:cfc0::/32 -add china_ip6_route 2400:d0c0::/32 -add china_ip6_route 2400:d100::/32 -add china_ip6_route 2400:d1c0::/32 -add china_ip6_route 2400:d200::/32 -add china_ip6_route 2400:d300::/32 -add china_ip6_route 2400:d440::/32 -add china_ip6_route 2400:d600::/32 -add china_ip6_route 2400:d6c0::/32 -add china_ip6_route 2400:d780::/32 -add china_ip6_route 2400:da00::/32 -add china_ip6_route 2400:dd00::/28 -add china_ip6_route 2400:dd40::/32 -add china_ip6_route 2400:de00::/32 -add china_ip6_route 2400:de80::/32 -add china_ip6_route 2400:e0c0::/32 -add china_ip6_route 2400:e5c0::/32 -add china_ip6_route 2400:e680::/32 -add china_ip6_route 2400:e880::/32 -add china_ip6_route 2400:ebc0::/32 -add china_ip6_route 2400:edc0::/32 -add china_ip6_route 2400:ee00::/32 -add china_ip6_route 2400:eec0::/32 -add china_ip6_route 2400:ef40::/32 -add china_ip6_route 2400:f480::/32 -add china_ip6_route 2400:f5c0::/32 -add china_ip6_route 2400:f7c0::/32 -add china_ip6_route 2400:f840::/32 -add china_ip6_route 2400:f980::/32 -add china_ip6_route 2400:fac0::/32 -add china_ip6_route 2400:fb40::/32 -add china_ip6_route 2400:fbc0::/32 -add china_ip6_route 2400:fc40::/32 -add china_ip6_route 2400:fcc0::/32 -add china_ip6_route 2400:fe00::/32 -add china_ip6_route 2401:80::/32 -add china_ip6_route 2401:140::/32 -add china_ip6_route 2401:1c0::/32 -add china_ip6_route 2401:540::/32 -add china_ip6_route 2401:7c0::/32 -add china_ip6_route 2401:800::/32 -add china_ip6_route 2401:9c0::/32 -add china_ip6_route 2401:a00::/32 -add china_ip6_route 2401:a40::/32 -add china_ip6_route 2401:ac0::/32 -add china_ip6_route 2401:b40::/32 -add china_ip6_route 2401:bc0::/32 -add china_ip6_route 2401:c40::/32 -add china_ip6_route 2401:cc0::/32 -add china_ip6_route 2401:d40::/32 -add china_ip6_route 2401:e00::/32 -add china_ip6_route 2401:1000::/32 -add china_ip6_route 2401:11c0::/32 -add china_ip6_route 2401:1200::/32 -add china_ip6_route 2401:12c0::/32 -add china_ip6_route 2401:15c0::/32 -add china_ip6_route 2401:1740::/32 -add china_ip6_route 2401:18c0::/32 -add china_ip6_route 2401:1940::/32 -add china_ip6_route 2401:19c0::/32 -add china_ip6_route 2401:1a40::/32 -add china_ip6_route 2401:1ac0::/32 -add china_ip6_route 2401:1d40::/32 -add china_ip6_route 2401:1dc0::/32 -add china_ip6_route 2401:1e00::/32 -add china_ip6_route 2401:1ec0::/32 -add china_ip6_route 2401:1f40::/32 -add china_ip6_route 2401:2040::/32 -add china_ip6_route 2401:2080::/32 -add china_ip6_route 2401:23c0::/32 -add china_ip6_route 2401:2600::/32 -add china_ip6_route 2401:2780::/32 -add china_ip6_route 2401:2980::/32 -add china_ip6_route 2401:2a00::/32 -add china_ip6_route 2401:2b40::/32 -add china_ip6_route 2401:2e00::/32 -add china_ip6_route 2401:3100::/32 -add china_ip6_route 2401:3380::/32 -add china_ip6_route 2401:33c0::/32 -add china_ip6_route 2401:3440::/32 -add china_ip6_route 2401:3480::/32 -add china_ip6_route 2401:34c0::/32 -add china_ip6_route 2401:3640::/32 -add china_ip6_route 2401:3780::/32 -add china_ip6_route 2401:3800::/32 -add china_ip6_route 2401:3880::/32 -add china_ip6_route 2401:3980::/32 -add china_ip6_route 2401:3a00::/32 -add china_ip6_route 2401:3a80::/32 -add china_ip6_route 2401:3b80::/32 -add china_ip6_route 2401:3c80::/32 -add china_ip6_route 2401:3d80::/32 -add china_ip6_route 2401:3e80::/32 -add china_ip6_route 2401:3f80::/32 -add china_ip6_route 2401:4080::/32 -add china_ip6_route 2401:4180::/32 -add china_ip6_route 2401:4280::/32 -add china_ip6_route 2401:4380::/32 -add china_ip6_route 2401:4480::/32 -add china_ip6_route 2401:4580::/32 -add china_ip6_route 2401:4680::/32 -add china_ip6_route 2401:4780::/32 -add china_ip6_route 2401:4880::/32 -add china_ip6_route 2401:4a80::/32 -add china_ip6_route 2401:4b00::/32 -add china_ip6_route 2401:4f80::/32 -add china_ip6_route 2401:5180::/32 -add china_ip6_route 2401:5680::/32 -add china_ip6_route 2401:56c0::/32 -add china_ip6_route 2401:59c0::/32 -add china_ip6_route 2401:5b40::/32 -add china_ip6_route 2401:5c80::/32 -add china_ip6_route 2401:7180::/32 -add china_ip6_route 2401:71c0::/32 -add china_ip6_route 2401:7240::/32 -add china_ip6_route 2401:7340::/32 -add china_ip6_route 2401:7580::/32 -add china_ip6_route 2401:7680::/32 -add china_ip6_route 2401:7700::/32 -add china_ip6_route 2401:7780::/32 -add china_ip6_route 2401:7880::/32 -add china_ip6_route 2401:7980::/32 -add china_ip6_route 2401:7a00::/32 -add china_ip6_route 2401:7a80::/32 -add china_ip6_route 2401:7b80::/32 -add china_ip6_route 2401:7bc0::/32 -add china_ip6_route 2401:7c80::/32 -add china_ip6_route 2401:7cc0::/32 -add china_ip6_route 2401:7d40::/32 -add china_ip6_route 2401:7d80::/32 -add china_ip6_route 2401:7e00::/32 -add china_ip6_route 2401:7f80::/32 -add china_ip6_route 2401:8200::/32 -add china_ip6_route 2401:82c0::/32 -add china_ip6_route 2401:8380::/32 -add china_ip6_route 2401:8540::/32 -add china_ip6_route 2401:8600::/32 -add china_ip6_route 2401:8680::/32 -add china_ip6_route 2401:8840::/32 -add china_ip6_route 2401:8d00::/32 -add china_ip6_route 2401:8f40::/32 -add china_ip6_route 2401:8fc0::/32 -add china_ip6_route 2401:9340::/32 -add china_ip6_route 2401:9600::/32 -add china_ip6_route 2401:96c0::/32 -add china_ip6_route 2401:9740::/32 -add china_ip6_route 2401:98c0::/32 -add china_ip6_route 2401:9a00::/32 -add china_ip6_route 2401:9ac0::/32 -add china_ip6_route 2401:9b40::/32 -add china_ip6_route 2401:9bc0::/32 -add china_ip6_route 2401:9dc0::/32 -add china_ip6_route 2401:9e40::/32 -add china_ip6_route 2401:9f80::/32 -add china_ip6_route 2401:a140::/32 -add china_ip6_route 2401:a180::/32 -add china_ip6_route 2401:a340::/32 -add china_ip6_route 2401:a3c0::/32 -add china_ip6_route 2401:a4c0::/32 -add china_ip6_route 2401:a540::/32 -add china_ip6_route 2401:a5c0::/32 -add china_ip6_route 2401:a640::/32 -add china_ip6_route 2401:a940::/32 -add china_ip6_route 2401:a980::/32 -add china_ip6_route 2401:aa00::/32 -add china_ip6_route 2401:aa40::/32 -add china_ip6_route 2401:acc0::/32 -add china_ip6_route 2401:ad40::/32 -add china_ip6_route 2401:adc0::/32 -add china_ip6_route 2401:b040::/32 -add china_ip6_route 2401:b180::/32 -add china_ip6_route 2401:b340::/32 -add china_ip6_route 2401:b400::/32 -add china_ip6_route 2401:b480::/32 -add china_ip6_route 2401:b4c0::/32 -add china_ip6_route 2401:b540::/32 -add china_ip6_route 2401:b580::/32 -add china_ip6_route 2401:b600::/32 -add china_ip6_route 2401:b680::/32 -add china_ip6_route 2401:b6c0::/32 -add china_ip6_route 2401:b7c0::/32 -add china_ip6_route 2401:b940::/32 -add china_ip6_route 2401:ba00::/32 -add china_ip6_route 2401:ba40::/32 -add china_ip6_route 2401:bb80::/32 -add china_ip6_route 2401:be00::/32 -add china_ip6_route 2401:c200::/32 -add china_ip6_route 2401:c540::/32 -add china_ip6_route 2401:c600::/32 -add china_ip6_route 2401:c640::/32 -add china_ip6_route 2401:c6c0::/32 -add china_ip6_route 2401:c840::/32 -add china_ip6_route 2401:c8c0::/32 -add china_ip6_route 2401:ca00::/32 -add china_ip6_route 2401:cb80::/32 -add china_ip6_route 2401:cc00::/32 -add china_ip6_route 2401:ce00::/32 -add china_ip6_route 2401:cf40::/32 -add china_ip6_route 2401:cfc0::/32 -add china_ip6_route 2401:d0c0::/32 -add china_ip6_route 2401:d140::/32 -add china_ip6_route 2401:d180::/32 -add china_ip6_route 2401:d2c0::/32 -add china_ip6_route 2401:d340::/32 -add china_ip6_route 2401:d780::/32 -add china_ip6_route 2401:da00::/32 -add china_ip6_route 2401:de00::/32 -add china_ip6_route 2401:e080::/32 -add china_ip6_route 2401:e0c0::/32 -add china_ip6_route 2401:e140::/32 -add china_ip6_route 2401:e240::/32 -add china_ip6_route 2401:e2c0::/32 -add china_ip6_route 2401:e340::/32 -add china_ip6_route 2401:e6c0::/32 -add china_ip6_route 2401:e840::/32 -add china_ip6_route 2401:e8c0::/32 -add china_ip6_route 2401:e940::/32 -add china_ip6_route 2401:e9c0::/32 -add china_ip6_route 2401:ec00::/32 -add china_ip6_route 2401:ec40::/32 -add china_ip6_route 2401:f300::/32 -add china_ip6_route 2401:f7c0::/32 -add china_ip6_route 2401:fa80::/32 -add china_ip6_route 2401:fb80::/32 -add china_ip6_route 2401:fc80::/32 -add china_ip6_route 2401:fe80::/32 -add china_ip6_route 2401:ffc0::/32 -add china_ip6_route 2402:440::/32 -add china_ip6_route 2402:5c0::/32 -add china_ip6_route 2402:840::/32 -add china_ip6_route 2402:ac0::/32 -add china_ip6_route 2402:e00::/32 -add china_ip6_route 2402:fc0::/32 -add china_ip6_route 2402:1000::/32 -add china_ip6_route 2402:1440::/32 -add china_ip6_route 2402:14c0::/32 -add china_ip6_route 2402:1540::/32 -add china_ip6_route 2402:1600::/32 -add china_ip6_route 2402:1740::/32 -add china_ip6_route 2402:19c0::/32 -add china_ip6_route 2402:1ec0::/32 -add china_ip6_route 2402:1f40::/32 -add china_ip6_route 2402:1f80::/32 -add china_ip6_route 2402:2000::/32 -add china_ip6_route 2402:2280::/32 -add china_ip6_route 2402:22c0::/32 -add china_ip6_route 2402:2440::/32 -add china_ip6_route 2402:24c0::/32 -add china_ip6_route 2402:2540::/32 -add china_ip6_route 2402:2640::/32 -add china_ip6_route 2402:27c0::/32 -add china_ip6_route 2402:2a00::/32 -add china_ip6_route 2402:2b80::/32 -add china_ip6_route 2402:2bc0::/32 -add china_ip6_route 2402:2d00::/32 -add china_ip6_route 2402:2d80::/32 -add china_ip6_route 2402:2e80::/32 -add china_ip6_route 2402:2f40::/32 -add china_ip6_route 2402:3040::/32 -add china_ip6_route 2402:3080::/32 -add china_ip6_route 2402:3140::/32 -add china_ip6_route 2402:3180::/32 -add china_ip6_route 2402:31c0::/32 -add china_ip6_route 2402:3240::/32 -add china_ip6_route 2402:33c0::/32 -add china_ip6_route 2402:39c0::/32 -add china_ip6_route 2402:3a40::/32 -add china_ip6_route 2402:3ac0::/32 -add china_ip6_route 2402:3c00::/32 -add china_ip6_route 2402:3e00::/32 -add china_ip6_route 2402:3ec0::/32 -add china_ip6_route 2402:3f80::/32 -add china_ip6_route 2402:4140::/32 -add china_ip6_route 2402:42c0::/32 -add china_ip6_route 2402:4340::/32 -add china_ip6_route 2402:43c0::/32 -add china_ip6_route 2402:4440::/32 -add china_ip6_route 2402:4500::/32 -add china_ip6_route 2402:4540::/32 -add china_ip6_route 2402:4a00::/32 -add china_ip6_route 2402:4a40::/32 -add china_ip6_route 2402:4a80::/32 -add china_ip6_route 2402:4ac0::/32 -add china_ip6_route 2402:4b80::/32 -add china_ip6_route 2402:4bc0::/32 -add china_ip6_route 2402:4c40::/32 -add china_ip6_route 2402:4d80::/32 -add china_ip6_route 2402:4e00::/32 -add china_ip6_route 2402:4ec0::/32 -add china_ip6_route 2402:4f80::/32 -add china_ip6_route 2402:50c0::/32 -add china_ip6_route 2402:5140::/32 -add china_ip6_route 2402:5180::/32 -add china_ip6_route 2402:51c0::/32 -add china_ip6_route 2402:5240::/32 -add china_ip6_route 2402:52c0::/32 -add china_ip6_route 2402:5340::/32 -add china_ip6_route 2402:5880::/32 -add china_ip6_route 2402:5940::/32 -add china_ip6_route 2402:59c0::/32 -add china_ip6_route 2402:5a40::/32 -add china_ip6_route 2402:5b40::/32 -add china_ip6_route 2402:5bc0::/32 -add china_ip6_route 2402:5d00::/32 -add china_ip6_route 2402:5e00::/32 -add china_ip6_route 2402:5e40::/32 -add china_ip6_route 2402:5ec0::/32 -add china_ip6_route 2402:5f40::/32 -add china_ip6_route 2402:6280::/32 -add china_ip6_route 2402:62c0::/32 -add china_ip6_route 2402:64c0::/32 -add china_ip6_route 2402:66c0::/32 -add china_ip6_route 2402:6740::/32 -add china_ip6_route 2402:67c0::/32 -add china_ip6_route 2402:6a00::/32 -add china_ip6_route 2402:6b40::/32 -add china_ip6_route 2402:6bc0::/32 -add china_ip6_route 2402:6e00::/32 -add china_ip6_route 2402:6e80::/32 -add china_ip6_route 2402:6ec0::/32 -add china_ip6_route 2402:6f40::/32 -add china_ip6_route 2402:6fc0::/32 -add china_ip6_route 2402:7040::/32 -add china_ip6_route 2402:7080::/32 -add china_ip6_route 2402:70c0::/32 -add china_ip6_route 2402:7140::/32 -add china_ip6_route 2402:71c0::/32 -add china_ip6_route 2402:7240::/32 -add china_ip6_route 2402:72c0::/32 -add china_ip6_route 2402:7540::/32 -add china_ip6_route 2402:75c0::/32 -add china_ip6_route 2402:7740::/32 -add china_ip6_route 2402:7d00::/32 -add china_ip6_route 2402:7d80::/32 -add china_ip6_route 2402:8180::/32 -add china_ip6_route 2402:8300::/32 -add china_ip6_route 2402:8380::/32 -add china_ip6_route 2402:85c0::/32 -add china_ip6_route 2402:8800::/32 -add china_ip6_route 2402:8840::/32 -add china_ip6_route 2402:8900::/32 -add china_ip6_route 2402:8940::/32 -add china_ip6_route 2402:89c0::/32 -add china_ip6_route 2402:8b40::/32 -add china_ip6_route 2402:8bc0::/32 -add china_ip6_route 2402:8cc0::/32 -add china_ip6_route 2402:8d40::/32 -add china_ip6_route 2402:8f40::/32 -add china_ip6_route 2402:8f80::/32 -add china_ip6_route 2402:9240::/32 -add china_ip6_route 2402:92c0::/32 -add china_ip6_route 2402:93c0::/32 -add china_ip6_route 2402:9440::/32 -add china_ip6_route 2402:9480::/32 -add china_ip6_route 2402:94c0::/32 -add china_ip6_route 2402:9580::/32 -add china_ip6_route 2402:95c0::/32 -add china_ip6_route 2402:9680::/32 -add china_ip6_route 2402:96c0::/32 -add china_ip6_route 2402:9840::/32 -add china_ip6_route 2402:98c0::/32 -add china_ip6_route 2402:9940::/32 -add china_ip6_route 2402:9a80::/32 -add china_ip6_route 2402:9b80::/32 -add china_ip6_route 2402:9f80::/32 -add china_ip6_route 2402:9fc0::/32 -add china_ip6_route 2402:a080::/32 -add china_ip6_route 2402:a180::/32 -add china_ip6_route 2402:a200::/32 -add china_ip6_route 2402:a240::/32 -add china_ip6_route 2402:a280::/32 -add china_ip6_route 2402:a380::/32 -add china_ip6_route 2402:a3c0::/32 -add china_ip6_route 2402:a640::/32 -add china_ip6_route 2402:a680::/32 -add china_ip6_route 2402:a6c0::/32 -add china_ip6_route 2402:a840::/32 -add china_ip6_route 2402:a880::/32 -add china_ip6_route 2402:a9c0::/32 -add china_ip6_route 2402:aa80::/32 -add china_ip6_route 2402:ab80::/32 -add china_ip6_route 2402:ae00::/32 -add china_ip6_route 2402:ae40::/32 -add china_ip6_route 2402:aec0::/32 -add china_ip6_route 2402:af80::/32 -add china_ip6_route 2402:afc0::/32 -add china_ip6_route 2402:b080::/32 -add china_ip6_route 2402:b200::/32 -add china_ip6_route 2402:b380::/32 -add china_ip6_route 2402:b3c0::/32 -add china_ip6_route 2402:b440::/32 -add china_ip6_route 2402:b6c0::/32 -add china_ip6_route 2402:b880::/32 -add china_ip6_route 2402:b8c0::/32 -add china_ip6_route 2402:b940::/32 -add china_ip6_route 2402:b980::/32 -add china_ip6_route 2402:ba80::/32 -add china_ip6_route 2402:bac0::/32 -add china_ip6_route 2402:bbc0::/32 -add china_ip6_route 2402:bf80::/32 -add china_ip6_route 2402:c280::/32 -add china_ip6_route 2402:c3c0::/32 -add china_ip6_route 2402:c5c0::/32 -add china_ip6_route 2402:c9c0::/32 -add china_ip6_route 2402:cbc0::/32 -add china_ip6_route 2402:cc40::/32 -add china_ip6_route 2402:cc80::/32 -add china_ip6_route 2402:cf00::/32 -add china_ip6_route 2402:cf40::/32 -add china_ip6_route 2402:d040::/32 -add china_ip6_route 2402:d140::/32 -add china_ip6_route 2402:d2c0::/32 -add china_ip6_route 2402:d300::/32 -add china_ip6_route 2402:d340::/32 -add china_ip6_route 2402:d380::/32 -add china_ip6_route 2402:d5c0::/32 -add china_ip6_route 2402:d6c0::/32 -add china_ip6_route 2402:d740::/32 -add china_ip6_route 2402:d780::/32 -add china_ip6_route 2402:d880::/32 -add china_ip6_route 2402:d980::/32 -add china_ip6_route 2402:da40::/32 -add china_ip6_route 2402:db40::/32 -add china_ip6_route 2402:dcc0::/32 -add china_ip6_route 2402:de40::/32 -add china_ip6_route 2402:dec0::/32 -add china_ip6_route 2402:df40::/32 -add china_ip6_route 2402:dfc0::/32 -add china_ip6_route 2402:e040::/32 -add china_ip6_route 2402:e0c0::/32 -add china_ip6_route 2402:e140::/32 -add china_ip6_route 2402:e2c0::/32 -add china_ip6_route 2402:e3c0::/32 -add china_ip6_route 2402:e480::/32 -add china_ip6_route 2402:e540::/32 -add china_ip6_route 2402:e680::/32 -add china_ip6_route 2402:e740::/32 -add china_ip6_route 2402:e780::/32 -add china_ip6_route 2402:e7c0::/32 -add china_ip6_route 2402:e880::/32 -add china_ip6_route 2402:e980::/32 -add china_ip6_route 2402:eb80::/32 -add china_ip6_route 2402:ec80::/32 -add china_ip6_route 2402:ed80::/32 -add china_ip6_route 2402:ef40::/32 -add china_ip6_route 2402:ef80::/32 -add china_ip6_route 2402:f000::/32 -add china_ip6_route 2402:f140::/32 -add china_ip6_route 2402:f340::/32 -add china_ip6_route 2402:f3c0::/32 -add china_ip6_route 2402:f480::/32 -add china_ip6_route 2402:f540::/32 -add china_ip6_route 2402:f580::/32 -add china_ip6_route 2402:f740::/32 -add china_ip6_route 2402:f780::/32 -add china_ip6_route 2402:f8c0::/32 -add china_ip6_route 2402:f980::/32 -add china_ip6_route 2402:f9c0::/32 -add china_ip6_route 2402:fac0::/32 -add china_ip6_route 2402:fcc0::/32 -add china_ip6_route 2402:ff40::/32 -add china_ip6_route 2402:ffc0::/32 -add china_ip6_route 2403:600::/32 -add china_ip6_route 2403:700::/32 -add china_ip6_route 2403:7c0::/32 -add china_ip6_route 2403:800::/31 -add china_ip6_route 2403:980::/32 -add china_ip6_route 2403:a80::/32 -add china_ip6_route 2403:b80::/32 -add china_ip6_route 2403:c80::/32 -add china_ip6_route 2403:d40::/32 -add china_ip6_route 2403:d80::/32 -add china_ip6_route 2403:e80::/32 -add china_ip6_route 2403:f00::/32 -add china_ip6_route 2403:f40::/32 -add china_ip6_route 2403:f80::/32 -add china_ip6_route 2403:fc0::/32 -add china_ip6_route 2403:1180::/32 -add china_ip6_route 2403:1340::/32 -add china_ip6_route 2403:1440::/32 -add china_ip6_route 2403:1580::/32 -add china_ip6_route 2403:16c0::/32 -add china_ip6_route 2403:17c0::/32 -add china_ip6_route 2403:1980::/32 -add china_ip6_route 2403:1a40::/32 -add china_ip6_route 2403:1b80::/32 -add china_ip6_route 2403:1c80::/32 -add china_ip6_route 2403:1d80::/32 -add china_ip6_route 2403:1dc0::/32 -add china_ip6_route 2403:1e80::/32 -add china_ip6_route 2403:1ec0::/32 -add china_ip6_route 2403:1f80::/32 -add china_ip6_route 2403:2040::/32 -add china_ip6_route 2403:2080::/32 -add china_ip6_route 2403:2180::/32 -add china_ip6_route 2403:2240::/32 -add china_ip6_route 2403:2280::/32 -add china_ip6_route 2403:2380::/32 -add china_ip6_route 2403:2440::/32 -add china_ip6_route 2403:24c0::/32 -add china_ip6_route 2403:2580::/32 -add china_ip6_route 2403:25c0::/32 -add china_ip6_route 2403:2680::/32 -add china_ip6_route 2403:26c0::/32 -add china_ip6_route 2403:2740::/32 -add china_ip6_route 2403:2780::/32 -add china_ip6_route 2403:28c0::/32 -add china_ip6_route 2403:2940::/32 -add china_ip6_route 2403:2a00::/32 -add china_ip6_route 2403:2a40::/32 -add china_ip6_route 2403:2ac0::/32 -add china_ip6_route 2403:2b40::/32 -add china_ip6_route 2403:2bc0::/32 -add china_ip6_route 2403:2cc0::/32 -add china_ip6_route 2403:2f40::/32 -add china_ip6_route 2403:2fc0::/32 -add china_ip6_route 2403:3040::/32 -add china_ip6_route 2403:30c0::/32 -add china_ip6_route 2403:3140::/32 -add china_ip6_route 2403:3280::/32 -add china_ip6_route 2403:32c0::/32 -add china_ip6_route 2403:3380::/32 -add china_ip6_route 2403:3480::/32 -add china_ip6_route 2403:3580::/32 -add china_ip6_route 2403:3640::/32 -add china_ip6_route 2403:3680::/32 -add china_ip6_route 2403:36c0::/32 -add china_ip6_route 2403:3740::/32 -add china_ip6_route 2403:3780::/32 -add china_ip6_route 2403:37c0::/32 -add china_ip6_route 2403:3840::/32 -add china_ip6_route 2403:3880::/32 -add china_ip6_route 2403:38c0::/32 -add china_ip6_route 2403:3940::/32 -add china_ip6_route 2403:3980::/32 -add china_ip6_route 2403:39c0::/32 -add china_ip6_route 2403:3a40::/32 -add china_ip6_route 2403:3b40::/32 -add china_ip6_route 2403:3b80::/32 -add china_ip6_route 2403:3bc0::/32 -add china_ip6_route 2403:3c40::/32 -add china_ip6_route 2403:3c80::/32 -add china_ip6_route 2403:3cc0::/32 -add china_ip6_route 2403:3d40::/32 -add china_ip6_route 2403:3d80::/32 -add china_ip6_route 2403:3dc0::/32 -add china_ip6_route 2403:3e80::/32 -add china_ip6_route 2403:3ec0::/32 -add china_ip6_route 2403:3f40::/32 -add china_ip6_route 2403:3f80::/32 -add china_ip6_route 2403:4080::/32 -add china_ip6_route 2403:4180::/32 -add china_ip6_route 2403:4240::/32 -add china_ip6_route 2403:4280::/32 -add china_ip6_route 2403:4300::/32 -add china_ip6_route 2403:4380::/32 -add china_ip6_route 2403:4580::/32 -add china_ip6_route 2403:4680::/32 -add china_ip6_route 2403:4780::/32 -add china_ip6_route 2403:4840::/32 -add china_ip6_route 2403:4880::/32 -add china_ip6_route 2403:4980::/32 -add china_ip6_route 2403:4a40::/32 -add china_ip6_route 2403:4a80::/32 -add china_ip6_route 2403:4b40::/32 -add china_ip6_route 2403:4b80::/32 -add china_ip6_route 2403:4c80::/32 -add china_ip6_route 2403:4cc0::/32 -add china_ip6_route 2403:4d40::/32 -add china_ip6_route 2403:4d80::/32 -add china_ip6_route 2403:4ec0::/32 -add china_ip6_route 2403:5040::/32 -add china_ip6_route 2403:5080::/32 -add china_ip6_route 2403:50c0::/32 -add china_ip6_route 2403:5280::/32 -add china_ip6_route 2403:5380::/32 -add china_ip6_route 2403:54c0::/32 -add china_ip6_route 2403:5540::/32 -add china_ip6_route 2403:5580::/32 -add china_ip6_route 2403:5640::/32 -add china_ip6_route 2403:5780::/32 -add china_ip6_route 2403:58c0::/32 -add china_ip6_route 2403:5980::/32 -add china_ip6_route 2403:5a80::/32 -add china_ip6_route 2403:5b40::/32 -add china_ip6_route 2403:5b80::/32 -add china_ip6_route 2403:5c80::/32 -add china_ip6_route 2403:5d80::/32 -add china_ip6_route 2403:5e40::/32 -add china_ip6_route 2403:5e80::/32 -add china_ip6_route 2403:5ec0::/32 -add china_ip6_route 2403:5f80::/32 -add china_ip6_route 2403:5fc0::/32 -add china_ip6_route 2403:6080::/32 -add china_ip6_route 2403:6180::/32 -add china_ip6_route 2403:6280::/32 -add china_ip6_route 2403:62c0::/32 -add china_ip6_route 2403:6380::/32 -add china_ip6_route 2403:6580::/32 -add china_ip6_route 2403:6680::/32 -add china_ip6_route 2403:6740::/32 -add china_ip6_route 2403:6780::/32 -add china_ip6_route 2403:6880::/32 -add china_ip6_route 2403:6980::/32 -add china_ip6_route 2403:6a00::/32 -add china_ip6_route 2403:6c80::/32 -add china_ip6_route 2403:6d40::/32 -add china_ip6_route 2403:6d80::/32 -add china_ip6_route 2403:6e80::/32 -add china_ip6_route 2403:6f40::/32 -add china_ip6_route 2403:6fc0::/32 -add china_ip6_route 2403:7040::/32 -add china_ip6_route 2403:7080::/32 -add china_ip6_route 2403:7180::/32 -add china_ip6_route 2403:7280::/32 -add china_ip6_route 2403:7380::/32 -add china_ip6_route 2403:7480::/32 -add china_ip6_route 2403:7540::/32 -add china_ip6_route 2403:7580::/32 -add china_ip6_route 2403:76c0::/32 -add china_ip6_route 2403:7700::/32 -add china_ip6_route 2403:7840::/32 -add china_ip6_route 2403:78c0::/32 -add china_ip6_route 2403:7a80::/32 -add china_ip6_route 2403:7b00::/32 -add china_ip6_route 2403:7d80::/32 -add china_ip6_route 2403:7e80::/32 -add china_ip6_route 2403:7f80::/32 -add china_ip6_route 2403:8080::/32 -add china_ip6_route 2403:8180::/32 -add china_ip6_route 2403:8280::/32 -add china_ip6_route 2403:8380::/32 -add china_ip6_route 2403:83c0::/32 -add china_ip6_route 2403:8480::/32 -add china_ip6_route 2403:8580::/32 -add china_ip6_route 2403:8880::/32 -add china_ip6_route 2403:8900::/32 -add china_ip6_route 2403:8980::/32 -add china_ip6_route 2403:8a40::/32 -add china_ip6_route 2403:8a80::/32 -add china_ip6_route 2403:8b00::/32 -add china_ip6_route 2403:8b80::/32 -add china_ip6_route 2403:8c00::/32 -add china_ip6_route 2403:8c80::/32 -add china_ip6_route 2403:8d00::/32 -add china_ip6_route 2403:8d80::/32 -add china_ip6_route 2403:9080::/32 -add china_ip6_route 2403:9180::/32 -add china_ip6_route 2403:9280::/32 -add china_ip6_route 2403:9380::/32 -add china_ip6_route 2403:9480::/32 -add china_ip6_route 2403:9580::/32 -add china_ip6_route 2403:9680::/32 -add china_ip6_route 2403:9780::/32 -add china_ip6_route 2403:9880::/32 -add china_ip6_route 2403:9a80::/32 -add china_ip6_route 2403:9ac0::/32 -add china_ip6_route 2403:9b00::/32 -add china_ip6_route 2403:9b40::/32 -add china_ip6_route 2403:9b80::/32 -add china_ip6_route 2403:9c80::/32 -add china_ip6_route 2403:9d00::/32 -add china_ip6_route 2403:9d80::/32 -add china_ip6_route 2403:9e40::/32 -add china_ip6_route 2403:9e80::/32 -add china_ip6_route 2403:9ec0::/32 -add china_ip6_route 2403:9f80::/32 -add china_ip6_route 2403:a100::/32 -add china_ip6_route 2403:a140::/32 -add china_ip6_route 2403:a200::/32 -add china_ip6_route 2403:a300::/32 -add china_ip6_route 2403:a480::/32 -add china_ip6_route 2403:a580::/32 -add china_ip6_route 2403:a680::/32 -add china_ip6_route 2403:a6c0::/32 -add china_ip6_route 2403:a780::/32 -add china_ip6_route 2403:a880::/32 -add china_ip6_route 2403:a940::/32 -add china_ip6_route 2403:a980::/32 -add china_ip6_route 2403:a9c0::/32 -add china_ip6_route 2403:aa40::/32 -add china_ip6_route 2403:aa80::/32 -add china_ip6_route 2403:ab80::/32 -add china_ip6_route 2403:ac00::/32 -add china_ip6_route 2403:af80::/32 -add china_ip6_route 2403:b080::/32 -add china_ip6_route 2403:b180::/32 -add china_ip6_route 2403:b280::/32 -add china_ip6_route 2403:b380::/32 -add china_ip6_route 2403:b400::/32 -add china_ip6_route 2403:b480::/32 -add china_ip6_route 2403:b580::/32 -add china_ip6_route 2403:b680::/32 -add china_ip6_route 2403:b780::/32 -add china_ip6_route 2403:b880::/32 -add china_ip6_route 2403:b980::/32 -add china_ip6_route 2403:ba40::/32 -add china_ip6_route 2403:c040::/32 -add china_ip6_route 2403:c080::/32 -add china_ip6_route 2403:c100::/32 -add china_ip6_route 2403:c140::/32 -add china_ip6_route 2403:c180::/32 -add china_ip6_route 2403:c3c0::/32 -add china_ip6_route 2403:c440::/32 -add china_ip6_route 2403:c480::/32 -add china_ip6_route 2403:c4c0::/32 -add china_ip6_route 2403:c980::/32 -add china_ip6_route 2403:cdc0::/32 -add china_ip6_route 2403:cec0::/32 -add china_ip6_route 2403:cf80::/32 -add china_ip6_route 2403:d080::/32 -add china_ip6_route 2403:d180::/32 -add china_ip6_route 2403:d280::/32 -add china_ip6_route 2403:d2c0::/32 -add china_ip6_route 2403:d380::/32 -add china_ip6_route 2403:d400::/32 -add china_ip6_route 2403:d440::/32 -add china_ip6_route 2403:d480::/32 -add china_ip6_route 2403:d580::/32 -add china_ip6_route 2403:d680::/32 -add china_ip6_route 2403:d780::/32 -add china_ip6_route 2403:d7c0::/32 -add china_ip6_route 2403:d880::/32 -add china_ip6_route 2403:d980::/32 -add china_ip6_route 2403:d9c0::/32 -add china_ip6_route 2403:da80::/32 -add china_ip6_route 2403:dac0::/32 -add china_ip6_route 2403:db00::/32 -add china_ip6_route 2403:db80::/32 -add china_ip6_route 2403:dc80::/32 -add china_ip6_route 2403:dd80::/32 -add china_ip6_route 2403:de80::/32 -add china_ip6_route 2403:df80::/32 -add china_ip6_route 2403:e080::/32 -add china_ip6_route 2403:e180::/32 -add china_ip6_route 2403:e280::/32 -add china_ip6_route 2403:e300::/32 -add china_ip6_route 2403:e480::/32 -add china_ip6_route 2403:e500::/32 -add china_ip6_route 2403:e580::/32 -add china_ip6_route 2403:e640::/32 -add china_ip6_route 2403:e680::/32 -add china_ip6_route 2403:e700::/32 -add china_ip6_route 2403:e780::/32 -add china_ip6_route 2403:e7c0::/32 -add china_ip6_route 2403:e880::/32 -add china_ip6_route 2403:e980::/32 -add china_ip6_route 2403:ea80::/32 -add china_ip6_route 2403:eac0::/32 -add china_ip6_route 2403:eb80::/32 -add china_ip6_route 2403:ec80::/32 -add china_ip6_route 2403:ed00::/32 -add china_ip6_route 2403:ed40::/32 -add china_ip6_route 2403:ed80::/32 -add china_ip6_route 2403:ee80::/32 -add china_ip6_route 2403:ef80::/32 -add china_ip6_route 2403:f080::/32 -add china_ip6_route 2403:f100::/32 -add china_ip6_route 2403:f180::/32 -add china_ip6_route 2403:f240::/32 -add china_ip6_route 2403:f280::/32 -add china_ip6_route 2403:f300::/32 -add china_ip6_route 2403:f380::/32 -add china_ip6_route 2403:f4c0::/32 -add china_ip6_route 2403:f580::/32 -add china_ip6_route 2403:f740::/32 -add china_ip6_route 2403:f8c0::/32 -add china_ip6_route 2403:f980::/32 -add china_ip6_route 2403:fb00::/32 -add china_ip6_route 2403:fb80::/32 -add china_ip6_route 2403:fc40::/32 -add china_ip6_route 2403:fe40::/32 -add china_ip6_route 2403:fe80::/32 -add china_ip6_route 2403:fec0::/32 -add china_ip6_route 2403:ff80::/32 -add china_ip6_route 2403:ffc0::/32 -add china_ip6_route 2404:100::/32 -add china_ip6_route 2404:158::/32 -add china_ip6_route 2404:240::/32 -add china_ip6_route 2404:280::/32 -add china_ip6_route 2404:440::/32 -add china_ip6_route 2404:480::/32 -add china_ip6_route 2404:680::/32 -add china_ip6_route 2404:a80::/32 -add china_ip6_route 2404:b80::/32 -add china_ip6_route 2404:bc0::/32 -add china_ip6_route 2404:c40::/32 -add china_ip6_route 2404:d80::/32 -add china_ip6_route 2404:f00::/32 -add china_ip6_route 2404:f80::/32 -add china_ip6_route 2404:1080::/32 -add china_ip6_route 2404:10c0::/32 -add china_ip6_route 2404:1180::/32 -add china_ip6_route 2404:14c0::/32 -add china_ip6_route 2404:1880::/32 -add china_ip6_route 2404:1c80::/32 -add china_ip6_route 2404:1cc0::/32 -add china_ip6_route 2404:1d80::/32 -add china_ip6_route 2404:1e80::/32 -add china_ip6_route 2404:1f40::/32 -add china_ip6_route 2404:21c0::/32 -add china_ip6_route 2404:30c0::/32 -add china_ip6_route 2404:3140::/32 -add china_ip6_route 2404:31c0::/32 -add china_ip6_route 2404:3240::/32 -add china_ip6_route 2404:32c0::/32 -add china_ip6_route 2404:3300::/32 -add china_ip6_route 2404:3340::/32 -add china_ip6_route 2404:3480::/32 -add china_ip6_route 2404:35c0::/32 -add china_ip6_route 2404:3640::/32 -add china_ip6_route 2404:36c0::/32 -add china_ip6_route 2404:3700::/32 -add china_ip6_route 2404:3740::/32 -add china_ip6_route 2404:37c0::/32 -add china_ip6_route 2404:3840::/32 -add china_ip6_route 2404:3940::/32 -add china_ip6_route 2404:3b00::/32 -add china_ip6_route 2404:3bc0::/32 -add china_ip6_route 2404:3c40::/32 -add china_ip6_route 2404:3f40::/32 -add china_ip6_route 2404:4080::/32 -add china_ip6_route 2404:41c0::/32 -add china_ip6_route 2404:4540::/32 -add china_ip6_route 2404:4740::/32 -add china_ip6_route 2404:4bc0::/32 -add china_ip6_route 2404:4d00::/32 -add china_ip6_route 2404:4dc0::/32 -add china_ip6_route 2404:51c0::/32 -add china_ip6_route 2404:5640::/32 -add china_ip6_route 2404:5a80::/32 -add china_ip6_route 2404:5b00::/32 -add china_ip6_route 2404:5d00::/32 -add china_ip6_route 2404:5e80::/32 -add china_ip6_route 2404:6000::/32 -add china_ip6_route 2404:6100::/32 -add china_ip6_route 2404:6380::/32 -add china_ip6_route 2404:6500::/32 -add china_ip6_route 2404:65c0::/32 -add china_ip6_route 2404:6a40::/32 -add china_ip6_route 2404:6f80::/32 -add china_ip6_route 2404:7100::/32 -add china_ip6_route 2404:7180::/32 -add china_ip6_route 2404:71c0::/32 -add china_ip6_route 2404:7240::/32 -add china_ip6_route 2404:74c0::/32 -add china_ip6_route 2404:7600::/32 -add china_ip6_route 2404:7740::/32 -add china_ip6_route 2404:7940::/32 -add china_ip6_route 2404:7d00::/32 -add china_ip6_route 2404:8040::/32 -add china_ip6_route 2404:80c0::/32 -add china_ip6_route 2404:8140::/32 -add china_ip6_route 2404:81c0::/32 -add china_ip6_route 2404:8480::/32 -add china_ip6_route 2404:8580::/32 -add china_ip6_route 2404:8700::/32 -add china_ip6_route 2404:8880::/32 -add china_ip6_route 2404:8a80::/32 -add china_ip6_route 2404:8b00::/32 -add china_ip6_route 2404:8dc0::/32 -add china_ip6_route 2404:9340::/32 -add china_ip6_route 2404:9b80::/32 -add china_ip6_route 2404:9c80::/32 -add china_ip6_route 2404:a000::/32 -add china_ip6_route 2404:a080::/32 -add china_ip6_route 2404:a0c0::/32 -add china_ip6_route 2404:a180::/32 -add china_ip6_route 2404:a240::/32 -add china_ip6_route 2404:a740::/32 -add china_ip6_route 2404:b100::/32 -add china_ip6_route 2404:b340::/32 -add china_ip6_route 2404:b3c0::/32 -add china_ip6_route 2404:b440::/32 -add china_ip6_route 2404:b4c0::/32 -add china_ip6_route 2404:b900::/32 -add china_ip6_route 2404:bbc0::/32 -add china_ip6_route 2404:bc40::/32 -add china_ip6_route 2404:c1c0::/32 -add china_ip6_route 2404:c240::/32 -add china_ip6_route 2404:c2c0::/32 -add china_ip6_route 2404:c300::/32 -add china_ip6_route 2404:c3c0::/32 -add china_ip6_route 2404:c440::/32 -add china_ip6_route 2404:c4c0::/32 -add china_ip6_route 2404:c540::/32 -add china_ip6_route 2404:c5c0::/32 -add china_ip6_route 2404:c640::/32 -add china_ip6_route 2404:c940::/32 -add china_ip6_route 2404:c9c0::/32 -add china_ip6_route 2404:cd00::/32 -add china_ip6_route 2404:d040::/32 -add china_ip6_route 2404:d080::/32 -add china_ip6_route 2404:d140::/32 -add china_ip6_route 2404:d280::/32 -add china_ip6_route 2404:d3c0::/32 -add china_ip6_route 2404:d480::/32 -add china_ip6_route 2404:d640::/32 -add china_ip6_route 2404:d6c0::/32 -add china_ip6_route 2404:d7c0::/32 -add china_ip6_route 2404:d840::/32 -add china_ip6_route 2404:dd80::/32 -add china_ip6_route 2404:df00::/32 -add china_ip6_route 2404:e280::/32 -add china_ip6_route 2404:e540::/32 -add china_ip6_route 2404:e5c0::/32 -add china_ip6_route 2404:e780::/32 -add china_ip6_route 2404:e880::/32 -add china_ip6_route 2404:e8c0::/32 -add china_ip6_route 2404:eb80::/32 -add china_ip6_route 2404:ec40::/32 -add china_ip6_route 2404:ecc0::/32 -add china_ip6_route 2404:edc0::/32 -add china_ip6_route 2404:f040::/32 -add china_ip6_route 2404:f4c0::/32 -add china_ip6_route 2404:f7c0::/32 -add china_ip6_route 2405:80::/32 -add china_ip6_route 2405:480::/32 -add china_ip6_route 2405:580::/32 -add china_ip6_route 2405:680::/32 -add china_ip6_route 2405:6c0::/32 -add china_ip6_route 2405:780::/32 -add china_ip6_route 2405:880::/32 -add china_ip6_route 2405:940::/32 -add china_ip6_route 2405:980::/32 -add china_ip6_route 2405:9c0::/32 -add china_ip6_route 2405:a80::/32 -add china_ip6_route 2405:b80::/32 -add china_ip6_route 2405:c80::/32 -add china_ip6_route 2405:d80::/32 -add china_ip6_route 2405:e80::/32 -add china_ip6_route 2405:f80::/32 -add china_ip6_route 2405:1080::/32 -add china_ip6_route 2405:1180::/32 -add china_ip6_route 2405:1280::/32 -add china_ip6_route 2405:1380::/32 -add china_ip6_route 2405:1480::/32 -add china_ip6_route 2405:1580::/32 -add china_ip6_route 2405:1680::/32 -add china_ip6_route 2405:18c0::/32 -add china_ip6_route 2405:1c80::/32 -add china_ip6_route 2405:1d80::/32 -add china_ip6_route 2405:1e80::/32 -add china_ip6_route 2405:1f80::/32 -add china_ip6_route 2405:1fc0::/32 -add china_ip6_route 2405:2080::/32 -add china_ip6_route 2405:2180::/32 -add china_ip6_route 2405:2280::/32 -add china_ip6_route 2405:2340::/32 -add china_ip6_route 2405:2380::/32 -add china_ip6_route 2405:2480::/32 -add china_ip6_route 2405:24c0::/32 -add china_ip6_route 2405:2580::/32 -add china_ip6_route 2405:2680::/32 -add china_ip6_route 2405:2780::/32 -add china_ip6_route 2405:2880::/32 -add china_ip6_route 2405:2980::/32 -add china_ip6_route 2405:2a80::/32 -add china_ip6_route 2405:2b80::/32 -add china_ip6_route 2405:2bc0::/32 -add china_ip6_route 2405:2c80::/32 -add china_ip6_route 2405:2d80::/32 -add china_ip6_route 2405:2e80::/32 -add china_ip6_route 2405:2ec0::/32 -add china_ip6_route 2405:2f40::/32 -add china_ip6_route 2405:2f80::/32 -add china_ip6_route 2405:3140::/32 -add china_ip6_route 2405:31c0::/32 -add china_ip6_route 2405:37c0::/32 -add china_ip6_route 2405:3880::/32 -add china_ip6_route 2405:3980::/32 -add china_ip6_route 2405:39c0::/32 -add china_ip6_route 2405:3a80::/32 -add china_ip6_route 2405:3ac0::/32 -add china_ip6_route 2405:3b00::/32 -add china_ip6_route 2405:3b80::/32 -add china_ip6_route 2405:3bc0::/32 -add china_ip6_route 2405:3c40::/32 -add china_ip6_route 2405:3c80::/32 -add china_ip6_route 2405:3d80::/32 -add china_ip6_route 2405:3e80::/32 -add china_ip6_route 2405:3f40::/32 -add china_ip6_route 2405:3f80::/32 -add china_ip6_route 2405:4080::/32 -add china_ip6_route 2405:4140::/32 -add china_ip6_route 2405:4180::/32 -add china_ip6_route 2405:41c0::/32 -add china_ip6_route 2405:4280::/32 -add china_ip6_route 2405:4380::/32 -add china_ip6_route 2405:4480::/32 -add china_ip6_route 2405:44c0::/32 -add china_ip6_route 2405:4540::/32 -add china_ip6_route 2405:4580::/32 -add china_ip6_route 2405:4680::/32 -add china_ip6_route 2405:4780::/32 -add china_ip6_route 2405:4880::/32 -add china_ip6_route 2405:4980::/32 -add china_ip6_route 2405:4a80::/32 -add china_ip6_route 2405:4b80::/32 -add china_ip6_route 2405:4d40::/32 -add china_ip6_route 2405:4e80::/32 -add china_ip6_route 2405:4f80::/32 -add china_ip6_route 2405:5080::/32 -add china_ip6_route 2405:5180::/32 -add china_ip6_route 2405:5240::/32 -add china_ip6_route 2405:5280::/32 -add china_ip6_route 2405:52c0::/32 -add china_ip6_route 2405:5380::/32 -add china_ip6_route 2405:5480::/32 -add china_ip6_route 2405:5580::/32 -add china_ip6_route 2405:5680::/32 -add china_ip6_route 2405:5780::/32 -add china_ip6_route 2405:57c0::/32 -add china_ip6_route 2405:5880::/32 -add china_ip6_route 2405:5980::/32 -add china_ip6_route 2405:5a80::/32 -add china_ip6_route 2405:5b80::/32 -add china_ip6_route 2405:5c80::/32 -add china_ip6_route 2405:5cc0::/32 -add china_ip6_route 2405:5d40::/32 -add china_ip6_route 2405:5d80::/32 -add china_ip6_route 2405:5dc0::/32 -add china_ip6_route 2405:5e80::/32 -add china_ip6_route 2405:5f80::/32 -add china_ip6_route 2405:6080::/32 -add china_ip6_route 2405:6180::/32 -add china_ip6_route 2405:6200::/32 -add china_ip6_route 2405:66c0::/32 -add china_ip6_route 2405:6880::/32 -add china_ip6_route 2405:68c0::/32 -add china_ip6_route 2405:6940::/32 -add china_ip6_route 2405:69c0::/32 -add china_ip6_route 2405:6a80::/32 -add china_ip6_route 2405:6b80::/32 -add china_ip6_route 2405:6c80::/32 -add china_ip6_route 2405:6d80::/32 -add china_ip6_route 2405:6e80::/32 -add china_ip6_route 2405:6f00::/32 -add china_ip6_route 2405:6f80::/32 -add china_ip6_route 2405:7040::/32 -add china_ip6_route 2405:7080::/32 -add china_ip6_route 2405:7180::/32 -add china_ip6_route 2405:7240::/32 -add china_ip6_route 2405:7280::/32 -add china_ip6_route 2405:7380::/32 -add china_ip6_route 2405:7480::/32 -add china_ip6_route 2405:7580::/32 -add china_ip6_route 2405:7680::/32 -add china_ip6_route 2405:7780::/32 -add china_ip6_route 2405:7880::/32 -add china_ip6_route 2405:78c0::/32 -add china_ip6_route 2405:7980::/32 -add china_ip6_route 2405:79c0::/32 -add china_ip6_route 2405:7a80::/32 -add china_ip6_route 2405:7b80::/32 -add china_ip6_route 2405:7c80::/32 -add china_ip6_route 2405:7d40::/32 -add china_ip6_route 2405:7f40::/32 -add china_ip6_route 2405:7fc0::/32 -add china_ip6_route 2405:8280::/32 -add china_ip6_route 2405:8480::/32 -add china_ip6_route 2405:84c0::/32 -add china_ip6_route 2405:8580::/32 -add china_ip6_route 2405:8680::/32 -add china_ip6_route 2405:8780::/32 -add china_ip6_route 2405:8880::/32 -add china_ip6_route 2405:8980::/32 -add china_ip6_route 2405:8a40::/32 -add china_ip6_route 2405:8a80::/32 -add china_ip6_route 2405:8ac0::/32 -add china_ip6_route 2405:8b80::/32 -add china_ip6_route 2405:8c80::/32 -add china_ip6_route 2405:8d80::/32 -add china_ip6_route 2405:8e80::/32 -add china_ip6_route 2405:8f40::/32 -add china_ip6_route 2405:8f80::/32 -add china_ip6_route 2405:9080::/32 -add china_ip6_route 2405:9180::/32 -add china_ip6_route 2405:9280::/32 -add china_ip6_route 2405:9300::/32 -add china_ip6_route 2405:9340::/32 -add china_ip6_route 2405:9380::/32 -add china_ip6_route 2405:93c0::/32 -add china_ip6_route 2405:9480::/32 -add china_ip6_route 2405:94c0::/32 -add china_ip6_route 2405:9580::/32 -add china_ip6_route 2405:9680::/32 -add china_ip6_route 2405:9700::/32 -add china_ip6_route 2405:9780::/32 -add china_ip6_route 2405:97c0::/32 -add china_ip6_route 2405:9880::/32 -add china_ip6_route 2405:9900::/32 -add china_ip6_route 2405:9980::/32 -add china_ip6_route 2405:99c0::/32 -add china_ip6_route 2405:9a80::/32 -add china_ip6_route 2405:9b00::/32 -add china_ip6_route 2405:9b80::/32 -add china_ip6_route 2405:9bc0::/32 -add china_ip6_route 2405:9e00::/32 -add china_ip6_route 2405:a240::/32 -add china_ip6_route 2405:a3c0::/32 -add china_ip6_route 2405:a500::/32 -add china_ip6_route 2405:a680::/32 -add china_ip6_route 2405:a900::/32 -add china_ip6_route 2405:a980::/32 -add china_ip6_route 2405:aa80::/32 -add china_ip6_route 2405:ab00::/32 -add china_ip6_route 2405:ad00::/32 -add china_ip6_route 2405:af00::/32 -add china_ip6_route 2405:b100::/32 -add china_ip6_route 2405:b300::/32 -add china_ip6_route 2405:b7c0::/32 -add china_ip6_route 2405:b880::/32 -add china_ip6_route 2405:b980::/32 -add china_ip6_route 2405:bb00::/32 -add china_ip6_route 2405:bd00::/32 -add china_ip6_route 2405:bd80::/32 -add china_ip6_route 2405:bdc0::/32 -add china_ip6_route 2405:be80::/32 -add china_ip6_route 2405:bf00::/32 -add china_ip6_route 2405:c040::/32 -add china_ip6_route 2405:c280::/32 -add china_ip6_route 2405:c380::/32 -add china_ip6_route 2405:c480::/32 -add china_ip6_route 2405:c500::/32 -add china_ip6_route 2405:c580::/32 -add china_ip6_route 2405:c680::/32 -add china_ip6_route 2405:c780::/32 -add china_ip6_route 2405:c880::/32 -add china_ip6_route 2405:c980::/32 -add china_ip6_route 2405:ca80::/32 -add china_ip6_route 2405:cb80::/32 -add china_ip6_route 2405:cc80::/32 -add china_ip6_route 2405:cd80::/32 -add china_ip6_route 2405:ce80::/32 -add china_ip6_route 2405:d280::/32 -add china_ip6_route 2405:d4c0::/32 -add china_ip6_route 2405:d700::/32 -add china_ip6_route 2405:d740::/32 -add china_ip6_route 2405:d900::/32 -add china_ip6_route 2405:df40::/32 -add china_ip6_route 2405:e000::/32 -add china_ip6_route 2405:e040::/32 -add china_ip6_route 2405:e1c0::/32 -add china_ip6_route 2405:e600::/32 -add china_ip6_route 2405:ed40::/32 -add china_ip6_route 2405:ee80::/32 -add china_ip6_route 2405:ef40::/30 -add china_ip6_route 2405:f340::/32 -add china_ip6_route 2405:f380::/32 -add china_ip6_route 2405:f3c0::/32 -add china_ip6_route 2405:f580::/32 -add china_ip6_route 2405:f6c0::/32 -add china_ip6_route 2405:f940::/32 -add china_ip6_route 2405:fdc0::/32 -add china_ip6_route 2405:fe80::/32 -add china_ip6_route 2405:fec0::/32 -add china_ip6_route 2405:ff80::/32 -add china_ip6_route 2406:40::/32 -add china_ip6_route 2406:80::/32 -add china_ip6_route 2406:c0::/32 -add china_ip6_route 2406:140::/32 -add china_ip6_route 2406:280::/32 -add china_ip6_route 2406:440::/32 -add china_ip6_route 2406:4c0::/32 -add china_ip6_route 2406:7c0::/32 -add china_ip6_route 2406:840::/32 -add china_ip6_route 2406:880::/32 -add china_ip6_route 2406:8c0::/32 -add china_ip6_route 2406:9c0::/32 -add china_ip6_route 2406:d80::/32 -add china_ip6_route 2406:e80::/32 -add china_ip6_route 2406:f80::/32 -add china_ip6_route 2406:1080::/32 -add china_ip6_route 2406:1100::/32 -add china_ip6_route 2406:1180::/32 -add china_ip6_route 2406:1280::/32 -add china_ip6_route 2406:1380::/32 -add china_ip6_route 2406:1480::/32 -add china_ip6_route 2406:1580::/32 -add china_ip6_route 2406:15c0::/32 -add china_ip6_route 2406:1680::/32 -add china_ip6_route 2406:1780::/32 -add china_ip6_route 2406:1880::/32 -add china_ip6_route 2406:1980::/32 -add china_ip6_route 2406:1a80::/32 -add china_ip6_route 2406:1b80::/32 -add china_ip6_route 2406:1c80::/32 -add china_ip6_route 2406:1d80::/32 -add china_ip6_route 2406:1e40::/32 -add china_ip6_route 2406:1e80::/32 -add china_ip6_route 2406:1f80::/32 -add china_ip6_route 2406:2080::/32 -add china_ip6_route 2406:2640::/32 -add china_ip6_route 2406:2700::/32 -add china_ip6_route 2406:2780::/32 -add china_ip6_route 2406:2880::/32 -add china_ip6_route 2406:2980::/32 -add china_ip6_route 2406:2a80::/32 -add china_ip6_route 2406:2b80::/32 -add china_ip6_route 2406:2c40::/32 -add china_ip6_route 2406:2c80::/32 -add china_ip6_route 2406:2d80::/32 -add china_ip6_route 2406:2e80::/32 -add china_ip6_route 2406:2f80::/32 -add china_ip6_route 2406:3080::/32 -add china_ip6_route 2406:3180::/32 -add china_ip6_route 2406:31c0::/32 -add china_ip6_route 2406:3280::/32 -add china_ip6_route 2406:3300::/32 -add china_ip6_route 2406:3340::/32 -add china_ip6_route 2406:3380::/32 -add china_ip6_route 2406:3440::/32 -add china_ip6_route 2406:3480::/32 -add china_ip6_route 2406:34c0::/32 -add china_ip6_route 2406:3580::/32 -add china_ip6_route 2406:3640::/32 -add china_ip6_route 2406:3680::/32 -add china_ip6_route 2406:3700::/32 -add china_ip6_route 2406:3780::/32 -add china_ip6_route 2406:3880::/32 -add china_ip6_route 2406:3980::/32 -add china_ip6_route 2406:39c0::/32 -add china_ip6_route 2406:3ac0::/32 -add china_ip6_route 2406:3d80::/32 -add china_ip6_route 2406:3e80::/32 -add china_ip6_route 2406:3f80::/32 -add china_ip6_route 2406:4080::/32 -add china_ip6_route 2406:40c0::/32 -add china_ip6_route 2406:4180::/32 -add china_ip6_route 2406:4280::/32 -add china_ip6_route 2406:42c0::/32 -add china_ip6_route 2406:4340::/32 -add china_ip6_route 2406:4380::/32 -add china_ip6_route 2406:43c0::/32 -add china_ip6_route 2406:4480::/32 -add china_ip6_route 2406:4500::/32 -add china_ip6_route 2406:4680::/32 -add china_ip6_route 2406:4b80::/32 -add china_ip6_route 2406:4c80::/32 -add china_ip6_route 2406:4d00::/32 -add china_ip6_route 2406:4d80::/32 -add china_ip6_route 2406:4e80::/32 -add china_ip6_route 2406:4f00::/32 -add china_ip6_route 2406:4f80::/32 -add china_ip6_route 2406:5080::/32 -add china_ip6_route 2406:50c0::/32 -add china_ip6_route 2406:5180::/32 -add china_ip6_route 2406:5280::/32 -add china_ip6_route 2406:52c0::/32 -add china_ip6_route 2406:5340::/32 -add china_ip6_route 2406:5380::/32 -add china_ip6_route 2406:5480::/32 -add china_ip6_route 2406:5580::/32 -add china_ip6_route 2406:5680::/32 -add china_ip6_route 2406:5780::/32 -add china_ip6_route 2406:5840::/32 -add china_ip6_route 2406:5880::/32 -add china_ip6_route 2406:5940::/32 -add china_ip6_route 2406:5980::/32 -add china_ip6_route 2406:5a40::/32 -add china_ip6_route 2406:5ac0::/32 -add china_ip6_route 2406:5b40::/32 -add china_ip6_route 2406:5d80::/32 -add china_ip6_route 2406:5e80::/32 -add china_ip6_route 2406:5f80::/32 -add china_ip6_route 2406:6080::/32 -add china_ip6_route 2406:6100::/32 -add china_ip6_route 2406:6180::/32 -add china_ip6_route 2406:61c0::/30 -add china_ip6_route 2406:61c4::/30 -add china_ip6_route 2406:6280::/32 -add china_ip6_route 2406:6300::/32 -add china_ip6_route 2406:6340::/32 -add china_ip6_route 2406:6380::/32 -add china_ip6_route 2406:6480::/32 -add china_ip6_route 2406:6500::/32 -add china_ip6_route 2406:6580::/32 -add china_ip6_route 2406:65c0::/32 -add china_ip6_route 2406:6640::/32 -add china_ip6_route 2406:6680::/32 -add china_ip6_route 2406:6780::/32 -add china_ip6_route 2406:6880::/32 -add china_ip6_route 2406:6980::/32 -add china_ip6_route 2406:6a80::/32 -add china_ip6_route 2406:6b80::/32 -add china_ip6_route 2406:6bc0::/32 -add china_ip6_route 2406:6c80::/32 -add china_ip6_route 2406:6d80::/32 -add china_ip6_route 2406:6e80::/32 -add china_ip6_route 2406:6f80::/32 -add china_ip6_route 2406:7080::/32 -add china_ip6_route 2406:7280::/32 -add china_ip6_route 2406:7380::/32 -add china_ip6_route 2406:7480::/32 -add china_ip6_route 2406:7580::/32 -add china_ip6_route 2406:7680::/32 -add china_ip6_route 2406:7780::/32 -add china_ip6_route 2406:7880::/32 -add china_ip6_route 2406:7980::/32 -add china_ip6_route 2406:7a80::/32 -add china_ip6_route 2406:7b80::/32 -add china_ip6_route 2406:7c80::/32 -add china_ip6_route 2406:7cc0::/32 -add china_ip6_route 2406:7d00::/32 -add china_ip6_route 2406:7d80::/32 -add china_ip6_route 2406:7e80::/32 -add china_ip6_route 2406:7f80::/32 -add china_ip6_route 2406:7fc0::/32 -add china_ip6_route 2406:8080::/32 -add china_ip6_route 2406:8180::/32 -add china_ip6_route 2406:8280::/32 -add china_ip6_route 2406:8380::/32 -add china_ip6_route 2406:8480::/32 -add china_ip6_route 2406:8500::/32 -add china_ip6_route 2406:8580::/32 -add china_ip6_route 2406:8780::/32 -add china_ip6_route 2406:8880::/32 -add china_ip6_route 2406:8980::/32 -add china_ip6_route 2406:8a80::/32 -add china_ip6_route 2406:8b80::/32 -add china_ip6_route 2406:8c80::/32 -add china_ip6_route 2406:8d80::/32 -add china_ip6_route 2406:8e80::/32 -add china_ip6_route 2406:8f40::/32 -add china_ip6_route 2406:8f80::/32 -add china_ip6_route 2406:9180::/32 -add china_ip6_route 2406:9200::/32 -add china_ip6_route 2406:9280::/32 -add china_ip6_route 2406:9380::/32 -add china_ip6_route 2406:9480::/32 -add china_ip6_route 2406:94c0::/32 -add china_ip6_route 2406:9780::/32 -add china_ip6_route 2406:9d80::/32 -add china_ip6_route 2406:9e40::/32 -add china_ip6_route 2406:9e80::/32 -add china_ip6_route 2406:9f80::/32 -add china_ip6_route 2406:a080::/32 -add china_ip6_route 2406:a180::/32 -add china_ip6_route 2406:a280::/32 -add china_ip6_route 2406:a380::/32 -add china_ip6_route 2406:a480::/32 -add china_ip6_route 2406:a580::/32 -add china_ip6_route 2406:a680::/32 -add china_ip6_route 2406:a780::/32 -add china_ip6_route 2406:a7c0::/32 -add china_ip6_route 2406:a880::/32 -add china_ip6_route 2406:a8c0::/32 -add china_ip6_route 2406:a980::/32 -add china_ip6_route 2406:aa80::/32 -add china_ip6_route 2406:aac0::/32 -add china_ip6_route 2406:ab80::/32 -add china_ip6_route 2406:ac80::/32 -add china_ip6_route 2406:acc0::/32 -add china_ip6_route 2406:ad40::/32 -add china_ip6_route 2406:ad80::/32 -add china_ip6_route 2406:ae80::/32 -add china_ip6_route 2406:af80::/32 -add china_ip6_route 2406:b080::/32 -add china_ip6_route 2406:b640::/32 -add china_ip6_route 2406:b880::/32 -add china_ip6_route 2406:b980::/32 -add china_ip6_route 2406:ba80::/32 -add china_ip6_route 2406:bb80::/32 -add china_ip6_route 2406:bc80::/32 -add china_ip6_route 2406:bd40::/32 -add china_ip6_route 2406:bd80::/32 -add china_ip6_route 2406:bdc0::/32 -add china_ip6_route 2406:be80::/32 -add china_ip6_route 2406:bf80::/32 -add china_ip6_route 2406:c080::/32 -add china_ip6_route 2406:c180::/32 -add china_ip6_route 2406:c280::/32 -add china_ip6_route 2406:c340::/32 -add china_ip6_route 2406:c480::/32 -add china_ip6_route 2406:c580::/32 -add china_ip6_route 2406:c680::/32 -add china_ip6_route 2406:c780::/32 -add china_ip6_route 2406:c880::/32 -add china_ip6_route 2406:c900::/32 -add china_ip6_route 2406:c980::/32 -add china_ip6_route 2406:ca80::/32 -add china_ip6_route 2406:cac0::/32 -add china_ip6_route 2406:cb80::/32 -add china_ip6_route 2406:cc80::/32 -add china_ip6_route 2406:cd80::/32 -add china_ip6_route 2406:ce80::/32 -add china_ip6_route 2406:cf00::/32 -add china_ip6_route 2406:cf01::/32 -add china_ip6_route 2406:cf02::/31 -add china_ip6_route 2406:cf80::/32 -add china_ip6_route 2406:d080::/32 -add china_ip6_route 2406:d140::/32 -add china_ip6_route 2406:d180::/32 -add china_ip6_route 2406:d280::/32 -add china_ip6_route 2406:d2c0::/32 -add china_ip6_route 2406:d380::/32 -add china_ip6_route 2406:d440::/32 -add china_ip6_route 2406:d480::/32 -add china_ip6_route 2406:d580::/32 -add china_ip6_route 2406:d680::/32 -add china_ip6_route 2406:d780::/32 -add china_ip6_route 2406:d880::/32 -add china_ip6_route 2406:d980::/32 -add china_ip6_route 2406:db80::/32 -add china_ip6_route 2406:dc80::/32 -add china_ip6_route 2406:dd00::/32 -add china_ip6_route 2406:dd80::/32 -add china_ip6_route 2406:de80::/32 -add china_ip6_route 2406:df80::/32 -add china_ip6_route 2406:e080::/32 -add china_ip6_route 2406:e180::/32 -add china_ip6_route 2406:e2c0::/32 -add china_ip6_route 2406:e380::/32 -add china_ip6_route 2406:e3c0::/32 -add china_ip6_route 2406:e500::/32 -add china_ip6_route 2406:e580::/32 -add china_ip6_route 2406:e680::/32 -add china_ip6_route 2406:e780::/32 -add china_ip6_route 2406:e8c0::/32 -add china_ip6_route 2406:ea40::/28 -add china_ip6_route 2406:f280::/32 -add china_ip6_route 2406:f300::/32 -add china_ip6_route 2406:f4c0::/32 -add china_ip6_route 2406:f7c0::/32 -add china_ip6_route 2406:f980::/32 -add china_ip6_route 2406:fc80::/32 -add china_ip6_route 2406:fd80::/32 -add china_ip6_route 2406:fe80::/32 -add china_ip6_route 2406:ff00::/32 -add china_ip6_route 2407:480::/32 -add china_ip6_route 2407:580::/32 -add china_ip6_route 2407:cc0::/32 -add china_ip6_route 2407:f40::/32 -add china_ip6_route 2407:1180::/32 -add china_ip6_route 2407:17c0::/32 -add china_ip6_route 2407:1900::/32 -add china_ip6_route 2407:1d00::/32 -add china_ip6_route 2407:1e80::/32 -add china_ip6_route 2407:2280::/32 -add china_ip6_route 2407:2380::/32 -add china_ip6_route 2407:23c0::/32 -add china_ip6_route 2407:2440::/32 -add china_ip6_route 2407:2780::/32 -add china_ip6_route 2407:2840::/32 -add china_ip6_route 2407:2ac0::/32 -add china_ip6_route 2407:31c0::/32 -add china_ip6_route 2407:3340::/32 -add china_ip6_route 2407:3540::/32 -add china_ip6_route 2407:3700::/32 -add china_ip6_route 2407:3740::/32 -add china_ip6_route 2407:37c0::/32 -add china_ip6_route 2407:3900::/32 -add china_ip6_route 2407:3f40::/32 -add china_ip6_route 2407:43c0::/32 -add china_ip6_route 2407:4440::/32 -add china_ip6_route 2407:4580::/32 -add china_ip6_route 2407:4680::/32 -add china_ip6_route 2407:4740::/32 -add china_ip6_route 2407:4880::/32 -add china_ip6_route 2407:4980::/32 -add china_ip6_route 2407:4a80::/32 -add china_ip6_route 2407:4c80::/32 -add china_ip6_route 2407:4d80::/32 -add china_ip6_route 2407:4e80::/32 -add china_ip6_route 2407:4f00::/32 -add china_ip6_route 2407:5380::/32 -add china_ip6_route 2407:53c0::/32 -add china_ip6_route 2407:5500::/32 -add china_ip6_route 2407:5780::/32 -add china_ip6_route 2407:5840::/32 -add china_ip6_route 2407:6040::/32 -add china_ip6_route 2407:6580::/32 -add china_ip6_route 2407:6c40::/32 -add china_ip6_route 2407:7680::/32 -add china_ip6_route 2407:7780::/32 -add china_ip6_route 2407:7880::/32 -add china_ip6_route 2407:7980::/32 -add china_ip6_route 2407:7c80::/32 -add china_ip6_route 2407:7d00::/32 -add china_ip6_route 2407:7d80::/32 -add china_ip6_route 2407:7e80::/32 -add china_ip6_route 2407:8880::/32 -add china_ip6_route 2407:8b80::/32 -add china_ip6_route 2407:8f40::/32 -add china_ip6_route 2407:9080::/32 -add china_ip6_route 2407:9180::/32 -add china_ip6_route 2407:94c0::/32 -add china_ip6_route 2407:9680::/32 -add china_ip6_route 2407:9980::/32 -add china_ip6_route 2407:9b40::/32 -add china_ip6_route 2407:9bc0::/32 -add china_ip6_route 2407:9f00::/32 -add china_ip6_route 2407:9f80::/32 -add china_ip6_route 2407:a040::/32 -add china_ip6_route 2407:a640::/32 -add china_ip6_route 2407:a7c0::/32 -add china_ip6_route 2407:a880::/32 -add china_ip6_route 2407:a940::/32 -add china_ip6_route 2407:ad80::/32 -add china_ip6_route 2407:ae80::/32 -add china_ip6_route 2407:af80::/32 -add china_ip6_route 2407:b080::/32 -add china_ip6_route 2407:b180::/32 -add china_ip6_route 2407:b280::/32 -add china_ip6_route 2407:b380::/32 -add china_ip6_route 2407:b580::/32 -add china_ip6_route 2407:b680::/32 -add china_ip6_route 2407:b780::/32 -add china_ip6_route 2407:b880::/32 -add china_ip6_route 2407:b980::/32 -add china_ip6_route 2407:ba00::/32 -add china_ip6_route 2407:ba80::/32 -add china_ip6_route 2407:bb80::/32 -add china_ip6_route 2407:bc00::/32 -add china_ip6_route 2407:bc80::/32 -add china_ip6_route 2407:bd80::/32 -add china_ip6_route 2407:bdc0::/32 -add china_ip6_route 2407:be80::/32 -add china_ip6_route 2407:bf80::/32 -add china_ip6_route 2407:c080::/32 -add china_ip6_route 2407:c380::/32 -add china_ip6_route 2407:c400::/32 -add china_ip6_route 2407:c480::/32 -add china_ip6_route 2407:c580::/32 -add china_ip6_route 2407:c680::/32 -add china_ip6_route 2407:c780::/32 -add china_ip6_route 2407:c880::/32 -add china_ip6_route 2407:c900::/32 -add china_ip6_route 2407:c980::/32 -add china_ip6_route 2407:cb80::/32 -add china_ip6_route 2407:cc80::/32 -add china_ip6_route 2407:cd80::/32 -add china_ip6_route 2407:ce80::/32 -add china_ip6_route 2407:cf00::/32 -add china_ip6_route 2407:cf80::/32 -add china_ip6_route 2407:d480::/32 -add china_ip6_route 2407:d580::/32 -add china_ip6_route 2407:d680::/32 -add china_ip6_route 2407:d780::/32 -add china_ip6_route 2407:d7c0::/32 -add china_ip6_route 2407:d880::/32 -add china_ip6_route 2407:d8c0::/32 -add china_ip6_route 2407:d980::/32 -add china_ip6_route 2407:d9c0::/32 -add china_ip6_route 2407:da80::/32 -add china_ip6_route 2407:db80::/32 -add china_ip6_route 2407:dc80::/32 -add china_ip6_route 2407:dd80::/32 -add china_ip6_route 2407:de80::/32 -add china_ip6_route 2407:df80::/32 -add china_ip6_route 2407:dfc0::/32 -add china_ip6_route 2407:e080::/32 -add china_ip6_route 2407:e180::/32 -add china_ip6_route 2407:e280::/32 -add china_ip6_route 2407:e380::/32 -add china_ip6_route 2407:e480::/32 -add china_ip6_route 2407:e580::/32 -add china_ip6_route 2407:e680::/32 -add china_ip6_route 2407:e780::/32 -add china_ip6_route 2407:e800::/32 -add china_ip6_route 2407:ea80::/32 -add china_ip6_route 2407:eb80::/32 -add china_ip6_route 2407:ec40::/32 -add china_ip6_route 2407:ec80::/32 -add china_ip6_route 2407:ecc0::/32 -add china_ip6_route 2407:ed80::/32 -add china_ip6_route 2407:ee80::/32 -add china_ip6_route 2407:ef80::/32 -add china_ip6_route 2407:f080::/32 -add china_ip6_route 2407:f180::/32 -add china_ip6_route 2407:f280::/32 -add china_ip6_route 2407:f380::/32 -add china_ip6_route 2407:f480::/32 -add china_ip6_route 2407:f580::/32 -add china_ip6_route 2407:f680::/32 -add china_ip6_route 2407:f780::/32 -add china_ip6_route 2407:f880::/32 -add china_ip6_route 2407:f980::/32 -add china_ip6_route 2407:fa80::/32 -add china_ip6_route 2407:fb80::/32 -add china_ip6_route 2407:fc80::/32 -add china_ip6_route 2407:fd80::/32 -add china_ip6_route 2408:4000::/22 -add china_ip6_route 2408:6000::/24 -add china_ip6_route 2408:8000::/22 -add china_ip6_route 2408:8400::/22 -add china_ip6_route 2408:8800::/21 -add china_ip6_route 2409:2000::/21 -add china_ip6_route 2409:6000::/20 -add china_ip6_route 2409:8000::/20 -add china_ip6_route 240a:2000::/24 -add china_ip6_route 240a:4000::/21 -add china_ip6_route 240a:6000::/24 -add china_ip6_route 240a:8000::/21 -add china_ip6_route 240a:a000::/20 -add china_ip6_route 240a:c000::/20 -add china_ip6_route 240b:2000::/22 -add china_ip6_route 240b:8000::/21 -add china_ip6_route 240c::/28 -add china_ip6_route 240c:4000::/22 -add china_ip6_route 240c:8000::/21 -add china_ip6_route 240c:c000::/20 -add china_ip6_route 240d:4000::/21 -add china_ip6_route 240d:8000::/24 -add china_ip6_route 240e::/24 -add china_ip6_route 240e:100::/24 -add china_ip6_route 240e:200::/23 -add china_ip6_route 240e:400::/22 -add china_ip6_route 240e:800::/21 -add china_ip6_route 240e:1000::/20 -add china_ip6_route 240e:2000::/19 -add china_ip6_route 240f:4000::/24 -add china_ip6_route 240f:8000::/24 -add china_ip6_route 240f:c000::/24 +2001:250::/35 +2001:250:2000::/35 +2001:250:4000::/34 +2001:250:8000::/33 +2001:251::/32 +2001:252::/32 +2001:253::/32 +2001:254::/32 +2001:255::/32 +2001:256::/32 +2001:7fa:5::/48 +2001:7fa:10::/48 +2001:c68::/32 +2001:cc0::/32 +2001:da8::/32 +2001:da9::/32 +2001:daa::/32 +2001:dc7::/32 +2001:dd8:1::/48 +2001:dd8:5::/48 +2001:dd8:1a::/48 +2001:dd9::/48 +2001:df0:423::/48 +2001:df0:9c0::/48 +2001:df0:1bc0::/48 +2001:df0:25c0::/48 +2001:df0:26c0::/48 +2001:df0:2e00::/48 +2001:df0:2e80::/48 +2001:df0:59c0::/48 +2001:df0:85c0::/48 +2001:df0:9d40::/48 +2001:df0:ac40::/48 +2001:df0:bf80::/48 +2001:df0:d880::/48 +2001:df0:f8c0::/48 +2001:df1:c80::/48 +2001:df1:2b40::/48 +2001:df1:4580::/48 +2001:df1:5280::/48 +2001:df1:5b80::/48 +2001:df1:5fc0::/48 +2001:df1:6180::/48 +2001:df1:61c0::/48 +2001:df1:a100::/48 +2001:df1:c900::/48 +2001:df1:d180::/48 +2001:df1:da00::/48 +2001:df1:f480::/48 +2001:df1:fd80::/48 +2001:df2:80::/48 +2001:df2:5780::/48 +2001:df2:8bc0::/48 +2001:df2:a580::/48 +2001:df2:c240::/48 +2001:df2:d4c0::/48 +2001:df3:1480::/48 +2001:df3:15c0::/48 +2001:df3:2a80::/48 +2001:df3:3a80::/48 +2001:df3:7440::/48 +2001:df3:77c0::/48 +2001:df3:9a40::/48 +2001:df3:a680::/48 +2001:df3:b380::/48 +2001:df3:c380::/48 +2001:df3:c680::/48 +2001:df3:d0c0::/48 +2001:df3:d880::/48 +2001:df3:ed80::/48 +2001:df3:ef80::/48 +2001:df4:880::/48 +2001:df4:d80::/48 +2001:df4:1880::/48 +2001:df4:2780::/48 +2001:df4:2e80::/48 +2001:df4:3d80::/48 +2001:df4:4b80::/48 +2001:df4:4d80::/48 +2001:df4:a1c0::/48 +2001:df4:a680::/48 +2001:df4:a980::/48 +2001:df4:c180::/48 +2001:df4:c580::/48 +2001:df4:c780::/48 +2001:df4:e140::/48 +2001:df5:2080::/48 +2001:df5:5f80::/48 +2001:df5:7800::/48 +2001:df6:100::/48 +2001:df6:3d00::/48 +2001:df6:5d00::/48 +2001:df6:6800::/48 +2001:df6:f400::/48 +2001:df7:1480::/48 +2001:df7:2b80::/48 +2001:df7:6600::/48 +2001:df7:e580::/48 +2001:e08::/32 +2001:e18::/32 +2001:e80::/32 +2001:e88::/32 +2001:f38::/32 +2001:f88::/32 +2001:4438::/32 +2001:4510::/29 +2400:1040::/32 +2400:1160::/32 +2400:12c0::/32 +2400:1340::/32 +2400:1380::/32 +2400:15c0::/32 +2400:1640::/32 +2400:16c0::/32 +2400:1740::/32 +2400:17c0::/32 +2400:1840::/32 +2400:18c0::/32 +2400:1940::/32 +2400:19a0::/32 +2400:19c0::/32 +2400:1a40::/32 +2400:1ac0::/32 +2400:1b40::/32 +2400:1cc0::/32 +2400:1d40::/32 +2400:1dc0::/32 +2400:1e40::/32 +2400:1ec0::/32 +2400:1f40::/32 +2400:1fc0::/32 +2400:3040::/32 +2400:3140::/32 +2400:3160::/32 +2400:31c0::/32 +2400:3200::/32 +2400:3280::/32 +2400:32c0::/32 +2400:3340::/32 +2400:33c0::/32 +2400:3440::/32 +2400:34c0::/32 +2400:3540::/32 +2400:35c0::/32 +2400:3600::/32 +2400:3640::/32 +2400:3660::/32 +2400:36c0::/32 +2400:38c0::/32 +2400:39c0::/32 +2400:3a00::/32 +2400:3a40::/32 +2400:3b40::/32 +2400:3c40::/32 +2400:3cc0::/32 +2400:3e00::/32 +2400:3f40::/32 +2400:3f60::/32 +2400:3fc0::/32 +2400:4440::/32 +2400:44c0::/32 +2400:4540::/32 +2400:4600::/32 +2400:4640::/32 +2400:46c0::/32 +2400:4920::/32 +2400:4bc0::/32 +2400:4e00::/32 +2400:4e40::/32 +2400:5080::/32 +2400:5280::/32 +2400:5400::/32 +2400:5580::/32 +2400:55c0::/32 +2400:55e0::/32 +2400:5600::/32 +2400:5640::/32 +2400:56c0::/32 +2400:57c0::/32 +2400:5840::/32 +2400:5a00::/32 +2400:5a40::/32 +2400:5a60::/32 +2400:5ac0::/32 +2400:5b40::/32 +2400:5bc0::/32 +2400:5c40::/32 +2400:5c80::/32 +2400:5cc0::/32 +2400:5e20::/32 +2400:5e80::/32 +2400:5ee0::/32 +2400:5f60::/32 +2400:5fc0::/32 +2400:6000::/32 +2400:6040::/32 +2400:60c0::/32 +2400:61c0::/32 +2400:6200::/32 +2400:6600::/32 +2400:6640::/32 +2400:66a0::/32 +2400:66c0::/32 +2400:66e0::/32 +2400:6740::/32 +2400:67a0::/32 +2400:67c0::/32 +2400:6840::/32 +2400:68c0::/32 +2400:6940::/32 +2400:69c0::/32 +2400:6a00::/32 +2400:6a40::/32 +2400:6ac0::/32 +2400:6b40::/32 +2400:6bc0::/32 +2400:6c40::/32 +2400:6cc0::/32 +2400:6d40::/32 +2400:6da0::/32 +2400:6dc0::/32 +2400:6e00::/32 +2400:6e40::/32 +2400:6e60::/32 +2400:6ec0::/32 +2400:6f40::/32 +2400:6f80::/32 +2400:6fc0::/32 +2400:7040::/32 +2400:70a0::/32 +2400:7100::/32 +2400:7140::/32 +2400:71c0::/32 +2400:7200::/32 +2400:7240::/32 +2400:72c0::/32 +2400:72e0::/32 +2400:7340::/32 +2400:73c0::/32 +2400:73e0::/32 +2400:7440::/32 +2400:74c0::/32 +2400:7540::/32 +2400:75a0::/28 +2400:75c0::/32 +2400:7640::/32 +2400:7680::/32 +2400:76c0::/32 +2400:7740::/32 +2400:77c0::/32 +2400:79c0::/32 +2400:7ac0::/32 +2400:7ae0::/32 +2400:7bc0::/32 +2400:7f80::/32 +2400:7fc0::/32 +2400:8080::/32 +2400:8200::/32 +2400:82c0::/32 +2400:8580::/32 +2400:8600::/32 +2400:86a0::/32 +2400:86e0::/32 +2400:8780::/32 +2400:87c0::/32 +2400:8840::/32 +2400:8920::/32 +2400:8980::/32 +2400:89c0::/32 +2400:8be0::/32 +2400:8ce0::/32 +2400:8e00::/32 +2400:8e60::/32 +2400:8f00::/32 +2400:8f60::/32 +2400:8fc0::/32 +2400:9020::/32 +2400:9040::/32 +2400:9340::/32 +2400:93e0::/32 +2400:9520::/32 +2400:9580::/32 +2400:95c0::/32 +2400:95e0::/32 +2400:9600::/32 +2400:9620::/32 +2400:98c0::/32 +2400:9960::/32 +2400:99e0::/32 +2400:9a00::/32 +2400:9ca0::/32 +2400:9e00::/32 +2400:a040::/32 +2400:a320::/32 +2400:a380::/32 +2400:a420::/32 +2400:a480::/32 +2400:a5a0::/32 +2400:a6a0::/32 +2400:a780::/32 +2400:a860::/32 +2400:a8a0::/32 +2400:a8c0::/32 +2400:a900::/32 +2400:a980::/32 +2400:a981::/32 +2400:a982::/31 +2400:a984::/30 +2400:a9a0::/32 +2400:abc0::/32 +2400:ae00::/32 +2400:b200::/32 +2400:b2c0::/32 +2400:b500::/32 +2400:b600::/32 +2400:b620::/32 +2400:b6c0::/32 +2400:b700::/32 +2400:b9a0::/32 +2400:b9c0::/32 +2400:ba00::/32 +2400:ba40::/32 +2400:ba41::/32 +2400:bac0::/32 +2400:be00::/32 +2400:bf00::/32 +2400:c200::/32 +2400:c380::/32 +2400:c840::/32 +2400:c8c0::/32 +2400:c940::/32 +2400:c9c0::/32 +2400:ca40::/32 +2400:cac0::/32 +2400:cb40::/32 +2400:cb80::/32 +2400:cbc0::/32 +2400:cc40::/32 +2400:cc80::/32 +2400:ccc0::/32 +2400:cd40::/32 +2400:cda0::/32 +2400:cdc0::/32 +2400:ce00::/32 +2400:ce40::/32 +2400:cf40::/32 +2400:cfc0::/32 +2400:d0a0::/32 +2400:d0c0::/32 +2400:d100::/32 +2400:d160::/32 +2400:d1c0::/32 +2400:d200::/32 +2400:d300::/32 +2400:d440::/32 +2400:d600::/32 +2400:d6a0::/32 +2400:d6c0::/32 +2400:d720::/32 +2400:d780::/32 +2400:d7a0::/32 +2400:da00::/32 +2400:da60::/32 +2400:dd00::/28 +2400:dd40::/32 +2400:dda0::/32 +2400:de00::/32 +2400:de80::/32 +2400:dee0::/32 +2400:e0c0::/32 +2400:e680::/32 +2400:e7e0::/32 +2400:e880::/32 +2400:ebc0::/32 +2400:ed60::/32 +2400:eda0::/32 +2400:edc0::/32 +2400:ee00::/32 +2400:eec0::/32 +2400:ef40::/32 +2400:f480::/32 +2400:f5c0::/32 +2400:f6e0::/32 +2400:f720::/32 +2400:f7c0::/32 +2400:f840::/32 +2400:f860::/32 +2400:f980::/32 +2400:fac0::/32 +2400:fb40::/32 +2400:fb60::/32 +2400:fbc0::/32 +2400:fc40::/32 +2400:fcc0::/32 +2400:fe00::/32 +2401:20::/32 +2401:60::/32 +2401:80::/32 +2401:140::/32 +2401:1c0::/32 +2401:540::/32 +2401:620::/32 +2401:7c0::/32 +2401:800::/32 +2401:9c0::/32 +2401:a00::/32 +2401:a40::/32 +2401:ac0::/32 +2401:b40::/32 +2401:ba0::/32 +2401:bc0::/32 +2401:c40::/32 +2401:cc0::/32 +2401:d40::/32 +2401:e00::/32 +2401:1000::/32 +2401:1160::/32 +2401:11a0::/32 +2401:11c0::/32 +2401:1200::/32 +2401:12c0::/32 +2401:1320::/32 +2401:15c0::/32 +2401:18c0::/32 +2401:18e0::/28 +2401:1940::/32 +2401:19c0::/32 +2401:1a40::/32 +2401:1ac0::/32 +2401:1c60::/32 +2401:1ce0::/32 +2401:1d40::/32 +2401:1da0::/32 +2401:1dc0::/32 +2401:1de0::/32 +2401:1e00::/32 +2401:1ec0::/32 +2401:1f40::/32 +2401:2040::/32 +2401:2080::/32 +2401:23c0::/32 +2401:2600::/32 +2401:2780::/32 +2401:2980::/32 +2401:2a00::/32 +2401:2b40::/32 +2401:2e00::/32 +2401:2e20::/32 +2401:3100::/32 +2401:3380::/32 +2401:33c0::/32 +2401:3440::/32 +2401:3480::/32 +2401:34a0::/32 +2401:34a1::/32 +2401:34c0::/32 +2401:3640::/32 +2401:3780::/32 +2401:3800::/32 +2401:3880::/32 +2401:3980::/32 +2401:3a00::/32 +2401:3a80::/32 +2401:3b80::/32 +2401:3c20::/32 +2401:3c80::/32 +2401:3d80::/32 +2401:3e80::/32 +2401:3f80::/32 +2401:4080::/32 +2401:4180::/32 +2401:4280::/32 +2401:4380::/32 +2401:4480::/32 +2401:4580::/32 +2401:4680::/32 +2401:4780::/32 +2401:4880::/32 +2401:4a80::/32 +2401:4b00::/32 +2401:4f80::/32 +2401:5180::/32 +2401:5680::/32 +2401:58a0::/32 +2401:5960::/32 +2401:59c0::/32 +2401:5b40::/32 +2401:5c20::/32 +2401:5c60::/32 +2401:5c80::/32 +2401:5fa0::/32 +2401:70e0::/32 +2401:7180::/32 +2401:71c0::/32 +2401:7240::/32 +2401:7320::/32 +2401:7340::/32 +2401:7360::/32 +2401:73a0::/32 +2401:7580::/32 +2401:7660::/32 +2401:7680::/32 +2401:7700::/32 +2401:7780::/32 +2401:77e0::/32 +2401:7820::/32 +2401:7880::/32 +2401:78e0::/32 +2401:7980::/32 +2401:7a00::/32 +2401:7a80::/32 +2401:7b80::/32 +2401:7bc0::/32 +2401:7c80::/32 +2401:7cc0::/32 +2401:7ce0::/32 +2401:7d40::/32 +2401:7d80::/32 +2401:7e00::/32 +2401:7f80::/32 +2401:8200::/32 +2401:82c0::/32 +2401:8380::/32 +2401:8540::/32 +2401:8600::/32 +2401:8680::/32 +2401:8720::/32 +2401:87e0::/32 +2401:8820::/31 +2401:8840::/32 +2401:8be0::/32 +2401:8d00::/32 +2401:8da0::/32 +2401:8f40::/32 +2401:8fc0::/32 +2401:90a0::/32 +2401:9260::/32 +2401:92a0::/32 +2401:92e0::/32 +2401:9340::/32 +2401:95e0::/32 +2401:9600::/32 +2401:96c0::/32 +2401:96e0::/32 +2401:9720::/32 +2401:9740::/32 +2401:97a0::/32 +2401:98c0::/32 +2401:9a00::/32 +2401:9ac0::/32 +2401:9b20::/31 +2401:9b40::/32 +2401:9b60::/32 +2401:9bc0::/32 +2401:9ca0::/32 +2401:9d20::/32 +2401:9dc0::/32 +2401:9e20::/32 +2401:9e40::/32 +2401:9f80::/32 +2401:9fa0::/32 +2401:a140::/32 +2401:a180::/32 +2401:a2e0::/32 +2401:a340::/32 +2401:a3a0::/32 +2401:a3c0::/32 +2401:a4c0::/32 +2401:a4e0::/32 +2401:a540::/32 +2401:a5c0::/32 +2401:a620::/32 +2401:a640::/32 +2401:a6e0::/32 +2401:a720::/32 +2401:a940::/32 +2401:a980::/32 +2401:a9a0::/32 +2401:aa00::/32 +2401:aa20::/32 +2401:aa40::/32 +2401:ab60::/32 +2401:aba0::/32 +2401:acc0::/32 +2401:ad40::/32 +2401:adc0::/32 +2401:afa0::/32 +2401:b040::/32 +2401:b180::/32 +2401:b220::/32 +2401:b340::/32 +2401:b360::/32 +2401:b400::/32 +2401:b480::/32 +2401:b4c0::/32 +2401:b4e0::/32 +2401:b540::/32 +2401:b580::/32 +2401:b5a0::/32 +2401:b600::/32 +2401:b680::/32 +2401:b6c0::/32 +2401:b6e0::/32 +2401:b7c0::/32 +2401:b940::/32 +2401:ba00::/32 +2401:ba40::/32 +2401:bb20::/32 +2401:bb80::/32 +2401:bc60::/31 +2401:bd60::/32 +2401:bda0::/32 +2401:be00::/32 +2401:bf20::/32 +2401:c020::/32 +2401:c200::/32 +2401:c540::/32 +2401:c600::/32 +2401:c640::/32 +2401:c6c0::/32 +2401:c840::/32 +2401:c8c0::/32 +2401:ca00::/32 +2401:ca20::/32 +2401:cb80::/32 +2401:cbe0::/32 +2401:cc00::/32 +2401:cc60::/32 +2401:ce00::/32 +2401:cf40::/32 +2401:cfc0::/32 +2401:cfe0::/32 +2401:d060::/32 +2401:d0c0::/32 +2401:d0e0::/32 +2401:d140::/32 +2401:d180::/32 +2401:d2c0::/32 +2401:d340::/32 +2401:d420::/32 +2401:d780::/32 +2401:d7e0::/32 +2401:d8e0::/32 +2401:d920::/28 +2401:da00::/32 +2401:dbe0::/32 +2401:dd20::/32 +2401:dd60::/32 +2401:dde0::/32 +2401:de00::/32 +2401:dfe0::/32 +2401:e020::/32 +2401:e080::/32 +2401:e0c0::/32 +2401:e140::/32 +2401:e240::/32 +2401:e2c0::/32 +2401:e340::/32 +2401:e360::/32 +2401:e620::/32 +2401:e840::/32 +2401:e8c0::/32 +2401:e940::/32 +2401:e9c0::/32 +2401:ec00::/32 +2401:ec40::/32 +2401:f300::/32 +2401:f7c0::/32 +2401:fa80::/32 +2401:fb80::/32 +2401:fc80::/32 +2401:ffc0::/32 +2402:440::/32 +2402:5c0::/32 +2402:840::/32 +2402:e00::/32 +2402:fc0::/32 +2402:1000::/32 +2402:1440::/32 +2402:14c0::/32 +2402:1600::/32 +2402:1740::/32 +2402:19c0::/32 +2402:1ec0::/32 +2402:1f80::/32 +2402:2000::/32 +2402:2280::/32 +2402:2440::/32 +2402:24c0::/32 +2402:2540::/32 +2402:2640::/32 +2402:2a00::/32 +2402:2b80::/32 +2402:2bc0::/32 +2402:2d00::/32 +2402:2d80::/32 +2402:2e80::/32 +2402:2f40::/32 +2402:3040::/32 +2402:3140::/32 +2402:3180::/32 +2402:31c0::/32 +2402:3240::/32 +2402:33c0::/32 +2402:39c0::/32 +2402:3a40::/32 +2402:3ac0::/32 +2402:3c00::/32 +2402:3e00::/32 +2402:3ec0::/32 +2402:3f80::/32 +2402:4140::/32 +2402:42c0::/32 +2402:4340::/32 +2402:43c0::/32 +2402:4440::/32 +2402:4500::/32 +2402:4540::/32 +2402:4a00::/32 +2402:4a40::/32 +2402:4a80::/32 +2402:4ac0::/32 +2402:4b80::/32 +2402:4bc0::/32 +2402:4c40::/32 +2402:4d80::/32 +2402:4e00::/32 +2402:4ec0::/32 +2402:4f80::/32 +2402:5180::/32 +2402:52c0::/32 +2402:5340::/32 +2402:5880::/32 +2402:5940::/32 +2402:59c0::/32 +2402:5a40::/32 +2402:5b40::/32 +2402:5bc0::/32 +2402:5d00::/32 +2402:5e00::/32 +2402:5e40::/32 +2402:5ec0::/32 +2402:5f40::/32 +2402:6280::/32 +2402:62c0::/32 +2402:64c0::/32 +2402:66c0::/32 +2402:6740::/32 +2402:67c0::/32 +2402:6a00::/32 +2402:6b40::/32 +2402:6bc0::/32 +2402:6e00::/32 +2402:6e80::/32 +2402:6f40::/32 +2402:6fc0::/32 +2402:7040::/32 +2402:7080::/32 +2402:70c0::/32 +2402:7140::/32 +2402:71c0::/32 +2402:7240::/32 +2402:72c0::/32 +2402:7540::/32 +2402:75c0::/32 +2402:7740::/32 +2402:7d00::/32 +2402:7d80::/32 +2402:8180::/32 +2402:8300::/32 +2402:8380::/32 +2402:85c0::/32 +2402:8800::/32 +2402:8840::/32 +2402:8900::/32 +2402:8940::/32 +2402:89c0::/32 +2402:8b40::/32 +2402:8bc0::/32 +2402:8cc0::/32 +2402:8d40::/32 +2402:8f40::/32 +2402:8f80::/32 +2402:9240::/32 +2402:92c0::/32 +2402:93c0::/32 +2402:9440::/32 +2402:9480::/32 +2402:94c0::/32 +2402:9580::/32 +2402:95c0::/32 +2402:9680::/32 +2402:96c0::/32 +2402:9840::/32 +2402:98c0::/32 +2402:9940::/32 +2402:9a80::/32 +2402:9b80::/32 +2402:9f80::/32 +2402:9fc0::/32 +2402:a080::/32 +2402:a180::/32 +2402:a200::/32 +2402:a240::/32 +2402:a280::/32 +2402:a380::/32 +2402:a3c0::/32 +2402:a640::/32 +2402:a680::/32 +2402:a6c0::/32 +2402:a840::/32 +2402:a880::/32 +2402:aa80::/32 +2402:ab80::/32 +2402:ae00::/32 +2402:ae40::/32 +2402:aec0::/32 +2402:af80::/32 +2402:afc0::/32 +2402:b080::/32 +2402:b200::/32 +2402:b440::/32 +2402:b6c0::/32 +2402:b880::/32 +2402:b8c0::/32 +2402:b940::/32 +2402:b980::/32 +2402:ba80::/32 +2402:bac0::/32 +2402:bbc0::/32 +2402:bf80::/32 +2402:c280::/32 +2402:c3c0::/32 +2402:c5c0::/32 +2402:c9c0::/32 +2402:cc40::/32 +2402:cf00::/32 +2402:cf40::/32 +2402:d040::/32 +2402:d140::/32 +2402:d2c0::/32 +2402:d300::/32 +2402:d340::/32 +2402:d380::/32 +2402:d5c0::/32 +2402:d6c0::/32 +2402:d740::/32 +2402:d780::/32 +2402:d880::/32 +2402:d980::/32 +2402:da40::/32 +2402:db40::/32 +2402:dcc0::/32 +2402:de40::/32 +2402:dec0::/32 +2402:df40::/32 +2402:dfc0::/32 +2402:e040::/32 +2402:e0c0::/32 +2402:e140::/32 +2402:e2c0::/32 +2402:e3c0::/32 +2402:e480::/32 +2402:e540::/32 +2402:e680::/32 +2402:e740::/32 +2402:e780::/32 +2402:e7c0::/32 +2402:e880::/32 +2402:e980::/32 +2402:eb80::/32 +2402:ec80::/32 +2402:ed80::/32 +2402:ef40::/32 +2402:ef80::/32 +2402:f000::/32 +2402:f140::/32 +2402:f480::/32 +2402:f540::/32 +2402:f580::/32 +2402:f740::/32 +2402:f780::/32 +2402:f8c0::/32 +2402:f980::/32 +2402:f9c0::/32 +2402:fac0::/32 +2402:fcc0::/32 +2402:ff40::/32 +2402:ffc0::/32 +2403:600::/32 +2403:700::/32 +2403:7c0::/32 +2403:800::/31 +2403:980::/32 +2403:a80::/32 +2403:b80::/32 +2403:c80::/32 +2403:d40::/32 +2403:d80::/32 +2403:e80::/32 +2403:f00::/32 +2403:f40::/32 +2403:f80::/32 +2403:fc0::/32 +2403:1180::/32 +2403:1340::/32 +2403:1440::/32 +2403:1580::/32 +2403:16c0::/32 +2403:17c0::/32 +2403:1980::/32 +2403:1a40::/32 +2403:1b80::/32 +2403:1c80::/32 +2403:1d80::/32 +2403:1dc0::/32 +2403:1e80::/32 +2403:1ec0::/32 +2403:1f80::/32 +2403:2040::/32 +2403:2080::/32 +2403:2180::/32 +2403:2240::/32 +2403:2280::/32 +2403:2380::/32 +2403:2440::/32 +2403:24c0::/32 +2403:2580::/32 +2403:25c0::/32 +2403:2680::/32 +2403:2740::/32 +2403:2780::/32 +2403:28c0::/32 +2403:2940::/32 +2403:2a00::/32 +2403:2a40::/32 +2403:2ac0::/32 +2403:2b40::/32 +2403:2bc0::/32 +2403:2cc0::/32 +2403:2f40::/32 +2403:2fc0::/32 +2403:3040::/32 +2403:30c0::/32 +2403:3140::/32 +2403:3280::/32 +2403:32c0::/32 +2403:3380::/32 +2403:3480::/32 +2403:3580::/32 +2403:3640::/32 +2403:3680::/32 +2403:36c0::/32 +2403:3740::/32 +2403:3780::/32 +2403:37c0::/32 +2403:3840::/32 +2403:3880::/32 +2403:38c0::/32 +2403:3940::/32 +2403:3980::/32 +2403:39c0::/32 +2403:3a40::/32 +2403:3b40::/32 +2403:3b80::/32 +2403:3bc0::/32 +2403:3c40::/32 +2403:3c80::/32 +2403:3cc0::/32 +2403:3d40::/32 +2403:3d80::/32 +2403:3dc0::/32 +2403:3e80::/32 +2403:3ec0::/32 +2403:3f80::/32 +2403:4080::/32 +2403:4180::/32 +2403:4240::/32 +2403:4280::/32 +2403:4300::/32 +2403:4380::/32 +2403:4580::/32 +2403:4680::/32 +2403:4780::/32 +2403:4840::/32 +2403:4880::/32 +2403:4980::/32 +2403:4a40::/32 +2403:4a80::/32 +2403:4b40::/32 +2403:4b80::/32 +2403:4c80::/32 +2403:4cc0::/32 +2403:4d80::/32 +2403:4ec0::/32 +2403:5040::/32 +2403:5080::/32 +2403:5280::/32 +2403:5380::/32 +2403:54c0::/32 +2403:5540::/32 +2403:5580::/32 +2403:5640::/32 +2403:5780::/32 +2403:58c0::/32 +2403:5980::/32 +2403:5a80::/32 +2403:5b40::/32 +2403:5b80::/32 +2403:5c80::/32 +2403:5d80::/32 +2403:5e40::/32 +2403:5e80::/32 +2403:5ec0::/32 +2403:5f80::/32 +2403:5fc0::/32 +2403:6080::/32 +2403:6180::/32 +2403:6280::/32 +2403:62c0::/32 +2403:6380::/32 +2403:6580::/32 +2403:6680::/32 +2403:6740::/32 +2403:6780::/32 +2403:6880::/32 +2403:6980::/32 +2403:6a00::/32 +2403:6c80::/32 +2403:6d40::/32 +2403:6d80::/32 +2403:6e80::/32 +2403:6f40::/32 +2403:6fc0::/32 +2403:7040::/32 +2403:7080::/32 +2403:7180::/32 +2403:7280::/32 +2403:7380::/32 +2403:7480::/32 +2403:7540::/32 +2403:7580::/32 +2403:76c0::/32 +2403:7700::/32 +2403:7840::/32 +2403:78c0::/32 +2403:7a80::/32 +2403:7b00::/32 +2403:7d80::/32 +2403:7e80::/32 +2403:7f80::/32 +2403:8080::/32 +2403:8180::/32 +2403:8280::/32 +2403:8380::/32 +2403:83c0::/32 +2403:8480::/32 +2403:8580::/32 +2403:8880::/32 +2403:8900::/32 +2403:8980::/32 +2403:8a40::/32 +2403:8a80::/32 +2403:8b00::/32 +2403:8b80::/32 +2403:8c00::/32 +2403:8c80::/32 +2403:8d00::/32 +2403:8d80::/32 +2403:9080::/32 +2403:9180::/32 +2403:9280::/32 +2403:9380::/32 +2403:9480::/32 +2403:9580::/32 +2403:9680::/32 +2403:9780::/32 +2403:9880::/32 +2403:9a80::/32 +2403:9ac0::/32 +2403:9b00::/32 +2403:9b40::/32 +2403:9b80::/32 +2403:9c80::/32 +2403:9d00::/32 +2403:9d80::/32 +2403:9e40::/32 +2403:9e80::/32 +2403:9ec0::/32 +2403:9f80::/32 +2403:a100::/32 +2403:a140::/32 +2403:a200::/32 +2403:a300::/32 +2403:a480::/32 +2403:a580::/32 +2403:a680::/32 +2403:a6c0::/32 +2403:a780::/32 +2403:a880::/32 +2403:a940::/32 +2403:a980::/32 +2403:a9c0::/32 +2403:aa40::/32 +2403:aa80::/32 +2403:ab80::/32 +2403:ac00::/32 +2403:af80::/32 +2403:b080::/32 +2403:b180::/32 +2403:b280::/32 +2403:b380::/32 +2403:b400::/32 +2403:b480::/32 +2403:b580::/32 +2403:b680::/32 +2403:b780::/32 +2403:b880::/32 +2403:b980::/32 +2403:ba40::/32 +2403:c040::/32 +2403:c080::/32 +2403:c100::/32 +2403:c140::/32 +2403:c180::/32 +2403:c3c0::/32 +2403:c440::/32 +2403:c480::/32 +2403:c4c0::/32 +2403:c980::/32 +2403:cdc0::/32 +2403:cec0::/32 +2403:cf80::/32 +2403:d080::/32 +2403:d180::/32 +2403:d280::/32 +2403:d2c0::/32 +2403:d380::/32 +2403:d400::/32 +2403:d440::/32 +2403:d480::/32 +2403:d580::/32 +2403:d680::/32 +2403:d780::/32 +2403:d7c0::/32 +2403:d880::/32 +2403:d980::/32 +2403:d9c0::/32 +2403:da80::/32 +2403:dac0::/32 +2403:db00::/32 +2403:db80::/32 +2403:dc80::/32 +2403:dd80::/32 +2403:de80::/32 +2403:df80::/32 +2403:e080::/32 +2403:e180::/32 +2403:e280::/32 +2403:e300::/32 +2403:e480::/32 +2403:e500::/32 +2403:e580::/32 +2403:e640::/32 +2403:e680::/32 +2403:e700::/32 +2403:e780::/32 +2403:e7c0::/32 +2403:e880::/32 +2403:e980::/32 +2403:ea80::/32 +2403:eac0::/32 +2403:eb80::/32 +2403:ec80::/32 +2403:ed00::/32 +2403:ed40::/32 +2403:ed80::/32 +2403:ee80::/32 +2403:ef80::/32 +2403:f080::/32 +2403:f100::/32 +2403:f180::/32 +2403:f240::/32 +2403:f280::/32 +2403:f300::/32 +2403:f380::/32 +2403:f4c0::/32 +2403:f580::/32 +2403:f740::/32 +2403:f8c0::/32 +2403:f980::/32 +2403:fb00::/32 +2403:fb80::/32 +2403:fc40::/32 +2403:fe40::/32 +2403:fe80::/32 +2403:fec0::/32 +2403:ff80::/32 +2403:ffc0::/32 +2403:ffc1::/32 +2404:100::/32 +2404:158::/32 +2404:240::/32 +2404:280::/32 +2404:440::/32 +2404:480::/32 +2404:680::/32 +2404:a80::/32 +2404:b80::/32 +2404:bc0::/32 +2404:c40::/32 +2404:d80::/32 +2404:f00::/32 +2404:f80::/32 +2404:1080::/32 +2404:10c0::/32 +2404:1180::/32 +2404:14c0::/32 +2404:1880::/32 +2404:1c80::/32 +2404:1cc0::/32 +2404:1d80::/32 +2404:1e80::/32 +2404:1f40::/32 +2404:21c0::/32 +2404:30c0::/32 +2404:3140::/32 +2404:31c0::/32 +2404:3240::/32 +2404:32c0::/32 +2404:3300::/32 +2404:3340::/32 +2404:3480::/32 +2404:35c0::/32 +2404:3640::/32 +2404:36c0::/32 +2404:3700::/32 +2404:3740::/32 +2404:37c0::/32 +2404:3840::/32 +2404:3940::/32 +2404:3bc0::/32 +2404:3c40::/32 +2404:3f40::/32 +2404:4080::/32 +2404:41c0::/32 +2404:4540::/32 +2404:4740::/32 +2404:4bc0::/32 +2404:4d00::/32 +2404:4dc0::/32 +2404:51c0::/32 +2404:5640::/32 +2404:5a80::/32 +2404:5b00::/32 +2404:5d00::/32 +2404:6000::/32 +2404:6100::/32 +2404:6380::/32 +2404:6500::/32 +2404:65c0::/32 +2404:6a40::/32 +2404:6f80::/32 +2404:7100::/32 +2404:7180::/32 +2404:71c0::/32 +2404:7240::/32 +2404:74c0::/32 +2404:7600::/32 +2404:7740::/32 +2404:7940::/32 +2404:7d00::/32 +2404:8040::/32 +2404:80c0::/32 +2404:8140::/32 +2404:81c0::/32 +2404:8480::/32 +2404:8580::/32 +2404:8700::/32 +2404:8880::/32 +2404:8a80::/32 +2404:8b00::/32 +2404:8dc0::/32 +2404:9340::/32 +2404:9b80::/32 +2404:9c80::/32 +2404:a000::/32 +2404:a080::/32 +2404:a0c0::/32 +2404:a180::/32 +2404:a240::/32 +2404:a740::/32 +2404:b100::/32 +2404:b340::/32 +2404:b3c0::/32 +2404:b440::/32 +2404:b4c0::/32 +2404:b900::/32 +2404:bbc0::/32 +2404:bc40::/32 +2404:c1c0::/32 +2404:c240::/32 +2404:c2c0::/32 +2404:c300::/32 +2404:c3c0::/32 +2404:c440::/32 +2404:c4c0::/32 +2404:c540::/32 +2404:c5c0::/32 +2404:c640::/32 +2404:c940::/32 +2404:c9c0::/32 +2404:cd00::/32 +2404:d040::/32 +2404:d080::/32 +2404:d140::/32 +2404:d280::/32 +2404:d3c0::/32 +2404:d640::/32 +2404:d6c0::/32 +2404:d7c0::/32 +2404:d840::/32 +2404:dd80::/32 +2404:df00::/32 +2404:e280::/32 +2404:e540::/32 +2404:e5c0::/32 +2404:e780::/32 +2404:e880::/32 +2404:e8c0::/32 +2404:eb80::/32 +2404:ec40::/32 +2404:ecc0::/32 +2404:edc0::/32 +2404:f040::/32 +2404:f4c0::/32 +2404:f7c0::/32 +2405:80::/32 +2405:480::/32 +2405:580::/32 +2405:680::/32 +2405:6c0::/32 +2405:780::/32 +2405:880::/32 +2405:940::/32 +2405:980::/32 +2405:9c0::/32 +2405:a80::/32 +2405:b80::/32 +2405:c80::/32 +2405:d80::/32 +2405:e80::/32 +2405:f80::/32 +2405:1080::/32 +2405:1180::/32 +2405:1280::/32 +2405:1380::/32 +2405:1480::/32 +2405:1580::/32 +2405:1680::/32 +2405:18c0::/32 +2405:1c80::/32 +2405:1d80::/32 +2405:1e80::/32 +2405:1f80::/32 +2405:1fc0::/32 +2405:2080::/32 +2405:2180::/32 +2405:2280::/32 +2405:2340::/32 +2405:2380::/32 +2405:2480::/32 +2405:24c0::/32 +2405:2580::/32 +2405:2680::/32 +2405:2780::/32 +2405:2880::/32 +2405:2980::/32 +2405:2a80::/32 +2405:2b80::/32 +2405:2bc0::/32 +2405:2c80::/32 +2405:2d80::/32 +2405:2e80::/32 +2405:2ec0::/32 +2405:2f40::/32 +2405:2f80::/32 +2405:3140::/32 +2405:31c0::/32 +2405:37c0::/32 +2405:3880::/32 +2405:3980::/32 +2405:39c0::/32 +2405:3a80::/32 +2405:3ac0::/32 +2405:3b00::/32 +2405:3b80::/32 +2405:3bc0::/32 +2405:3c40::/32 +2405:3c80::/32 +2405:3d80::/32 +2405:3e80::/32 +2405:3f40::/32 +2405:3f80::/32 +2405:4080::/32 +2405:4140::/32 +2405:4180::/32 +2405:41c0::/32 +2405:4280::/32 +2405:4380::/32 +2405:4480::/32 +2405:44c0::/32 +2405:4540::/32 +2405:4580::/32 +2405:4680::/32 +2405:4780::/32 +2405:4880::/32 +2405:4980::/32 +2405:4a80::/32 +2405:4b80::/32 +2405:4d40::/32 +2405:4e80::/32 +2405:4f80::/32 +2405:5080::/32 +2405:5180::/32 +2405:5240::/32 +2405:5280::/32 +2405:52c0::/32 +2405:5380::/32 +2405:5480::/32 +2405:5580::/32 +2405:5680::/32 +2405:5780::/32 +2405:57c0::/32 +2405:5880::/32 +2405:5980::/32 +2405:5a80::/32 +2405:5b80::/32 +2405:5c80::/32 +2405:5cc0::/32 +2405:5d40::/32 +2405:5d80::/32 +2405:5dc0::/32 +2405:5e80::/32 +2405:5f80::/32 +2405:6080::/32 +2405:6180::/32 +2405:6200::/32 +2405:66c0::/32 +2405:6880::/32 +2405:68c0::/32 +2405:6940::/32 +2405:69c0::/32 +2405:6a80::/32 +2405:6b80::/32 +2405:6c80::/32 +2405:6d80::/32 +2405:6e80::/32 +2405:6f00::/32 +2405:6f80::/32 +2405:7040::/32 +2405:7080::/32 +2405:7180::/32 +2405:7240::/32 +2405:7280::/32 +2405:7380::/32 +2405:7480::/32 +2405:7580::/32 +2405:7680::/32 +2405:7780::/32 +2405:7880::/32 +2405:78c0::/32 +2405:7980::/32 +2405:79c0::/32 +2405:7a80::/32 +2405:7b80::/32 +2405:7c80::/32 +2405:7d40::/32 +2405:7f40::/32 +2405:7fc0::/32 +2405:8280::/32 +2405:8480::/32 +2405:84c0::/32 +2405:8580::/32 +2405:8680::/32 +2405:8780::/32 +2405:8880::/32 +2405:8980::/32 +2405:8a40::/32 +2405:8a80::/32 +2405:8ac0::/32 +2405:8b80::/32 +2405:8c80::/32 +2405:8d80::/32 +2405:8e80::/32 +2405:8f80::/32 +2405:9080::/32 +2405:9180::/32 +2405:9280::/32 +2405:9300::/32 +2405:9340::/32 +2405:9380::/32 +2405:93c0::/32 +2405:9480::/32 +2405:94c0::/32 +2405:9580::/32 +2405:9680::/32 +2405:9700::/32 +2405:9780::/32 +2405:97c0::/32 +2405:9880::/32 +2405:9900::/32 +2405:9980::/32 +2405:99c0::/32 +2405:9a80::/32 +2405:9b00::/32 +2405:9b80::/32 +2405:9bc0::/32 +2405:9e00::/32 +2405:a240::/32 +2405:a3c0::/32 +2405:a500::/32 +2405:a680::/32 +2405:a900::/32 +2405:a980::/32 +2405:aa80::/32 +2405:ab00::/32 +2405:ad00::/32 +2405:af00::/32 +2405:b100::/32 +2405:b300::/32 +2405:b7c0::/32 +2405:b880::/32 +2405:b980::/32 +2405:bb00::/32 +2405:bd00::/32 +2405:bd80::/32 +2405:bdc0::/32 +2405:be80::/32 +2405:bf00::/32 +2405:c040::/32 +2405:c280::/32 +2405:c380::/32 +2405:c480::/32 +2405:c500::/32 +2405:c580::/32 +2405:c680::/32 +2405:c780::/32 +2405:c880::/32 +2405:c980::/32 +2405:ca80::/32 +2405:cb80::/32 +2405:cc80::/32 +2405:cd80::/32 +2405:ce80::/32 +2405:d280::/32 +2405:d4c0::/32 +2405:d700::/32 +2405:d740::/32 +2405:d900::/32 +2405:df40::/32 +2405:e000::/32 +2405:e040::/32 +2405:e1c0::/32 +2405:e600::/32 +2405:ed40::/32 +2405:ef40::/30 +2405:f340::/32 +2405:f3c0::/32 +2405:f580::/32 +2405:f6c0::/32 +2405:f940::/32 +2405:fdc0::/32 +2405:fe80::/32 +2405:ff80::/32 +2406:40::/32 +2406:80::/32 +2406:c0::/32 +2406:140::/32 +2406:280::/32 +2406:440::/32 +2406:4c0::/32 +2406:7c0::/32 +2406:840::/32 +2406:880::/32 +2406:8c0::/32 +2406:d80::/32 +2406:e80::/32 +2406:f80::/32 +2406:1080::/32 +2406:1100::/32 +2406:1180::/32 +2406:1280::/32 +2406:1380::/32 +2406:1480::/32 +2406:1580::/32 +2406:15c0::/32 +2406:1680::/32 +2406:1780::/32 +2406:1880::/32 +2406:1980::/32 +2406:1a80::/32 +2406:1b80::/32 +2406:1c80::/32 +2406:1d80::/32 +2406:1e40::/32 +2406:1e80::/32 +2406:1f80::/32 +2406:2080::/32 +2406:2640::/32 +2406:2700::/32 +2406:2780::/32 +2406:2880::/32 +2406:2980::/32 +2406:2a80::/32 +2406:2b80::/32 +2406:2c40::/32 +2406:2c80::/32 +2406:2d80::/32 +2406:2e80::/32 +2406:2f80::/32 +2406:3080::/32 +2406:3180::/32 +2406:31c0::/32 +2406:3280::/32 +2406:3300::/32 +2406:3340::/32 +2406:3380::/32 +2406:3440::/32 +2406:3480::/32 +2406:34c0::/32 +2406:3580::/32 +2406:3640::/32 +2406:3680::/32 +2406:3700::/32 +2406:3780::/32 +2406:3880::/32 +2406:3980::/32 +2406:39c0::/32 +2406:3ac0::/32 +2406:3d80::/32 +2406:3e80::/32 +2406:3f80::/32 +2406:4080::/32 +2406:40c0::/32 +2406:4180::/32 +2406:4280::/32 +2406:42c0::/32 +2406:4340::/32 +2406:4380::/32 +2406:43c0::/32 +2406:4480::/32 +2406:4500::/32 +2406:4680::/32 +2406:4b80::/32 +2406:4c80::/32 +2406:4d00::/32 +2406:4d80::/32 +2406:4e80::/32 +2406:4f00::/32 +2406:4f80::/32 +2406:5080::/32 +2406:50c0::/32 +2406:5180::/32 +2406:5280::/32 +2406:52c0::/32 +2406:5340::/32 +2406:5380::/32 +2406:5480::/32 +2406:5580::/32 +2406:5680::/32 +2406:5780::/32 +2406:5840::/32 +2406:5880::/32 +2406:5940::/32 +2406:5980::/32 +2406:5a40::/32 +2406:5ac0::/32 +2406:5b40::/32 +2406:5d80::/32 +2406:5e80::/32 +2406:5f80::/32 +2406:6080::/32 +2406:6100::/32 +2406:6180::/32 +2406:61c0::/30 +2406:61c4::/30 +2406:6280::/32 +2406:6300::/32 +2406:6340::/32 +2406:6380::/32 +2406:6480::/32 +2406:6500::/32 +2406:6580::/32 +2406:65c0::/32 +2406:6640::/32 +2406:6680::/32 +2406:6780::/32 +2406:6880::/32 +2406:6980::/32 +2406:6a80::/32 +2406:6b80::/32 +2406:6bc0::/32 +2406:6c80::/32 +2406:6d80::/32 +2406:6e80::/32 +2406:6f80::/32 +2406:7080::/32 +2406:7280::/32 +2406:7380::/32 +2406:7480::/32 +2406:7580::/32 +2406:7680::/32 +2406:7780::/32 +2406:7880::/32 +2406:7980::/32 +2406:7a80::/32 +2406:7b80::/32 +2406:7c80::/32 +2406:7d00::/32 +2406:7d80::/32 +2406:7e80::/32 +2406:7f80::/32 +2406:7fc0::/32 +2406:8080::/32 +2406:8180::/32 +2406:8280::/32 +2406:8380::/32 +2406:8480::/32 +2406:8500::/32 +2406:8580::/32 +2406:8780::/32 +2406:8880::/32 +2406:8980::/32 +2406:8a80::/32 +2406:8b80::/32 +2406:8c80::/32 +2406:8d80::/32 +2406:8e80::/32 +2406:8f40::/32 +2406:8f80::/32 +2406:9180::/32 +2406:9200::/32 +2406:9380::/32 +2406:9480::/32 +2406:94c0::/32 +2406:9780::/32 +2406:9d80::/32 +2406:9e40::/32 +2406:9e80::/32 +2406:9f80::/32 +2406:a080::/32 +2406:a180::/32 +2406:a280::/32 +2406:a380::/32 +2406:a480::/32 +2406:a580::/32 +2406:a680::/32 +2406:a780::/32 +2406:a7c0::/32 +2406:a880::/32 +2406:a8c0::/32 +2406:a980::/32 +2406:aa80::/32 +2406:aac0::/32 +2406:ab80::/32 +2406:ac80::/32 +2406:acc0::/32 +2406:ad40::/32 +2406:ad80::/32 +2406:ae80::/32 +2406:af80::/32 +2406:b080::/32 +2406:b640::/32 +2406:b880::/32 +2406:b980::/32 +2406:ba80::/32 +2406:bb80::/32 +2406:bc80::/32 +2406:bd40::/32 +2406:bd80::/32 +2406:bdc0::/32 +2406:be80::/32 +2406:bf80::/32 +2406:c080::/32 +2406:c180::/32 +2406:c280::/32 +2406:c340::/32 +2406:c480::/32 +2406:c580::/32 +2406:c680::/32 +2406:c780::/32 +2406:c880::/32 +2406:c900::/32 +2406:c980::/32 +2406:ca80::/32 +2406:cac0::/32 +2406:cb80::/32 +2406:cc80::/32 +2406:cd80::/32 +2406:ce80::/32 +2406:cf00::/32 +2406:cf01::/32 +2406:cf02::/31 +2406:cf80::/32 +2406:d080::/32 +2406:d140::/32 +2406:d180::/32 +2406:d280::/32 +2406:d2c0::/32 +2406:d380::/32 +2406:d440::/32 +2406:d480::/32 +2406:d580::/32 +2406:d680::/32 +2406:d780::/32 +2406:d880::/32 +2406:d980::/32 +2406:db80::/32 +2406:dc80::/32 +2406:dd00::/32 +2406:dd80::/32 +2406:de80::/32 +2406:df80::/32 +2406:e080::/32 +2406:e180::/32 +2406:e2c0::/32 +2406:e380::/32 +2406:e3c0::/32 +2406:e500::/32 +2406:e580::/32 +2406:e680::/32 +2406:e780::/32 +2406:e8c0::/32 +2406:ea40::/28 +2406:f280::/32 +2406:f300::/32 +2406:f4c0::/32 +2406:f7c0::/32 +2406:f980::/32 +2406:fc80::/32 +2406:fd80::/32 +2406:fe80::/32 +2406:ff00::/32 +2407:480::/32 +2407:580::/32 +2407:cc0::/32 +2407:f40::/32 +2407:17c0::/32 +2407:1900::/32 +2407:1d00::/32 +2407:2280::/32 +2407:2380::/32 +2407:23c0::/32 +2407:2780::/32 +2407:2840::/32 +2407:2ac0::/32 +2407:31c0::/32 +2407:3340::/32 +2407:3540::/32 +2407:3700::/32 +2407:3740::/32 +2407:37c0::/32 +2407:3900::/32 +2407:3f40::/32 +2407:43c0::/32 +2407:4440::/32 +2407:4580::/32 +2407:4680::/32 +2407:4740::/32 +2407:4880::/32 +2407:4980::/32 +2407:4a80::/32 +2407:4c80::/32 +2407:4d80::/32 +2407:4e80::/32 +2407:4f00::/32 +2407:5380::/32 +2407:53c0::/32 +2407:5500::/32 +2407:5780::/32 +2407:5840::/32 +2407:6040::/32 +2407:6580::/32 +2407:6c40::/32 +2407:7680::/32 +2407:7780::/32 +2407:7880::/32 +2407:7980::/32 +2407:7c80::/32 +2407:7d00::/32 +2407:7d80::/32 +2407:7e80::/32 +2407:8880::/32 +2407:8b80::/32 +2407:8f40::/32 +2407:9080::/32 +2407:9180::/32 +2407:94c0::/32 +2407:9680::/32 +2407:9980::/32 +2407:9b40::/32 +2407:9bc0::/32 +2407:9f00::/32 +2407:9f80::/32 +2407:a040::/32 +2407:a640::/32 +2407:a7c0::/32 +2407:a880::/32 +2407:a940::/32 +2407:ad80::/32 +2407:ae80::/32 +2407:af80::/32 +2407:b080::/32 +2407:b180::/32 +2407:b280::/32 +2407:b380::/32 +2407:b580::/32 +2407:b680::/32 +2407:b780::/32 +2407:b880::/32 +2407:b980::/32 +2407:ba00::/32 +2407:ba80::/32 +2407:bb80::/32 +2407:bc00::/32 +2407:bc80::/32 +2407:bd80::/32 +2407:bdc0::/32 +2407:be80::/32 +2407:bf80::/32 +2407:c080::/32 +2407:c380::/32 +2407:c400::/32 +2407:c480::/32 +2407:c580::/32 +2407:c680::/32 +2407:c780::/32 +2407:c880::/32 +2407:c900::/32 +2407:c980::/32 +2407:cb80::/32 +2407:cc80::/32 +2407:cd80::/32 +2407:ce80::/32 +2407:cf00::/32 +2407:cf80::/32 +2407:d480::/32 +2407:d580::/32 +2407:d680::/32 +2407:d780::/32 +2407:d7c0::/32 +2407:d880::/32 +2407:d8c0::/32 +2407:d980::/32 +2407:d9c0::/32 +2407:da80::/32 +2407:db80::/32 +2407:dc80::/32 +2407:dd80::/32 +2407:de80::/32 +2407:df80::/32 +2407:dfc0::/32 +2407:e080::/32 +2407:e180::/32 +2407:e280::/32 +2407:e380::/32 +2407:e480::/32 +2407:e580::/32 +2407:e680::/32 +2407:e780::/32 +2407:e800::/32 +2407:ea80::/32 +2407:eb80::/32 +2407:ec40::/32 +2407:ec80::/32 +2407:ecc0::/32 +2407:ed80::/32 +2407:ee80::/32 +2407:ef80::/32 +2407:f080::/32 +2407:f180::/32 +2407:f280::/32 +2407:f380::/32 +2407:f480::/32 +2407:f580::/32 +2407:f680::/32 +2407:f780::/32 +2407:f880::/32 +2407:f980::/32 +2407:fa80::/32 +2407:fb80::/32 +2407:fc80::/32 +2407:fd80::/32 +2408:4000::/22 +2408:6000::/24 +2408:8000::/22 +2408:8400::/22 +2408:8800::/21 +2409:2000::/21 +2409:6000::/20 +2409:8000::/20 +240a:2000::/24 +240a:4000::/21 +240a:6000::/24 +240a:8000::/21 +240a:a000::/20 +240a:c000::/20 +240b:2000::/22 +240b:6000::/20 +240b:8000::/21 +240b:a000::/25 +240b:e000::/26 +240c::/28 +240c:4000::/22 +240c:8000::/21 +240c:c000::/20 +240d:4000::/21 +240d:8000::/24 +240e::/24 +240e:100::/24 +240e:200::/23 +240e:400::/22 +240e:800::/21 +240e:1000::/20 +240e:2000::/19 +240f:4000::/24 +240f:8000::/24 +240f:c000::/24 \ No newline at end of file diff --git a/luci-app-openclash/root/etc/openclash/china_ip_route.ipset b/luci-app-openclash/root/etc/openclash/china_ip_route.ipset index 03a44202d..a1b135d11 100644 --- a/luci-app-openclash/root/etc/openclash/china_ip_route.ipset +++ b/luci-app-openclash/root/etc/openclash/china_ip_route.ipset @@ -1,8617 +1,8668 @@ -create china_ip_route hash:net family inet hashsize 1024 maxelem 1000000 -add china_ip_route 1.0.1.0/24 -add china_ip_route 1.0.2.0/23 -add china_ip_route 1.0.8.0/21 -add china_ip_route 1.0.32.0/19 -add china_ip_route 1.1.0.0/24 -add china_ip_route 1.1.2.0/23 -add china_ip_route 1.1.4.0/22 -add china_ip_route 1.1.8.0/24 -add china_ip_route 1.1.9.0/24 -add china_ip_route 1.1.10.0/23 -add china_ip_route 1.1.12.0/22 -add china_ip_route 1.1.16.0/20 -add china_ip_route 1.1.32.0/19 -add china_ip_route 1.2.0.0/23 -add china_ip_route 1.2.2.0/24 -add china_ip_route 1.2.4.0/24 -add china_ip_route 1.2.5.0/24 -add china_ip_route 1.2.6.0/23 -add china_ip_route 1.2.8.0/24 -add china_ip_route 1.2.9.0/24 -add china_ip_route 1.2.10.0/23 -add china_ip_route 1.2.12.0/22 -add china_ip_route 1.2.16.0/20 -add china_ip_route 1.2.32.0/19 -add china_ip_route 1.2.64.0/18 -add china_ip_route 1.3.0.0/16 -add china_ip_route 1.4.1.0/24 -add china_ip_route 1.4.2.0/23 -add china_ip_route 1.4.4.0/24 -add china_ip_route 1.4.5.0/24 -add china_ip_route 1.4.6.0/23 -add china_ip_route 1.4.8.0/21 -add china_ip_route 1.4.16.0/20 -add china_ip_route 1.4.32.0/19 -add china_ip_route 1.4.64.0/18 -add china_ip_route 1.8.0.0/16 -add china_ip_route 1.10.0.0/21 -add china_ip_route 1.10.8.0/23 -add china_ip_route 1.10.11.0/24 -add china_ip_route 1.10.12.0/22 -add china_ip_route 1.10.16.0/20 -add china_ip_route 1.10.32.0/19 -add china_ip_route 1.10.64.0/18 -add china_ip_route 1.12.0.0/14 -add china_ip_route 1.24.0.0/13 -add china_ip_route 1.45.0.0/16 -add china_ip_route 1.48.0.0/15 -add china_ip_route 1.50.0.0/16 -add china_ip_route 1.51.0.0/16 -add china_ip_route 1.56.0.0/13 -add china_ip_route 1.68.0.0/14 -add china_ip_route 1.80.0.0/13 -add china_ip_route 1.88.0.0/14 -add china_ip_route 1.92.0.0/15 -add china_ip_route 1.94.0.0/15 -add china_ip_route 1.116.0.0/15 -add china_ip_route 1.118.0.0/16 -add china_ip_route 1.119.0.0/17 -add china_ip_route 1.119.128.0/17 -add china_ip_route 1.180.0.0/14 -add china_ip_route 1.184.0.0/15 -add china_ip_route 1.188.0.0/14 -add china_ip_route 1.192.0.0/13 -add china_ip_route 1.202.0.0/15 -add china_ip_route 1.204.0.0/14 -add china_ip_route 14.0.0.0/21 -add china_ip_route 14.0.12.0/22 -add china_ip_route 14.1.0.0/22 -add china_ip_route 14.1.24.0/22 -add china_ip_route 14.1.96.0/22 -add china_ip_route 14.1.108.0/22 -add china_ip_route 14.16.0.0/12 -add china_ip_route 14.102.128.0/22 -add china_ip_route 14.102.156.0/22 -add china_ip_route 14.102.180.0/22 -add china_ip_route 14.103.0.0/16 -add china_ip_route 14.104.0.0/13 -add china_ip_route 14.112.0.0/12 -add china_ip_route 14.130.0.0/15 -add china_ip_route 14.134.0.0/15 -add china_ip_route 14.144.0.0/12 -add china_ip_route 14.192.60.0/22 -add china_ip_route 14.192.76.0/22 -add china_ip_route 14.196.0.0/15 -add china_ip_route 14.204.0.0/15 -add china_ip_route 14.208.0.0/12 -add china_ip_route 27.0.128.0/22 -add china_ip_route 27.0.132.0/22 -add china_ip_route 27.0.160.0/22 -add china_ip_route 27.0.164.0/22 -add china_ip_route 27.0.188.0/22 -add china_ip_route 27.0.204.0/22 -add china_ip_route 27.0.208.0/22 -add china_ip_route 27.0.212.0/22 -add china_ip_route 27.8.0.0/13 -add china_ip_route 27.16.0.0/12 -add china_ip_route 27.34.232.0/21 -add china_ip_route 27.36.0.0/14 -add china_ip_route 27.40.0.0/13 -add china_ip_route 27.50.40.0/21 -add china_ip_route 27.50.128.0/17 -add china_ip_route 27.54.72.0/21 -add china_ip_route 27.54.152.0/21 -add china_ip_route 27.54.192.0/18 -add china_ip_route 27.98.208.0/20 -add china_ip_route 27.98.224.0/19 -add china_ip_route 27.99.128.0/17 -add china_ip_route 27.103.0.0/16 -add china_ip_route 27.106.128.0/18 -add china_ip_route 27.106.204.0/22 -add china_ip_route 27.109.32.0/19 -add china_ip_route 27.109.124.0/22 -add china_ip_route 27.112.0.0/18 -add china_ip_route 27.112.80.0/20 -add china_ip_route 27.112.112.0/22 -add china_ip_route 27.112.116.0/22 -add china_ip_route 27.113.128.0/18 -add china_ip_route 27.115.0.0/17 -add china_ip_route 27.116.44.0/22 -add china_ip_route 27.121.72.0/21 -add china_ip_route 27.121.120.0/21 -add china_ip_route 27.128.0.0/15 -add china_ip_route 27.131.220.0/22 -add china_ip_route 27.144.0.0/16 -add china_ip_route 27.148.0.0/14 -add china_ip_route 27.152.0.0/13 -add china_ip_route 27.184.0.0/13 -add china_ip_route 27.192.0.0/11 -add china_ip_route 27.224.0.0/14 -add china_ip_route 36.0.0.0/22 -add china_ip_route 36.0.8.0/21 -add china_ip_route 36.0.16.0/20 -add china_ip_route 36.0.32.0/19 -add china_ip_route 36.0.64.0/18 -add china_ip_route 36.0.128.0/17 -add china_ip_route 36.1.0.0/16 -add china_ip_route 36.4.0.0/14 -add china_ip_route 36.16.0.0/12 -add china_ip_route 36.32.0.0/14 -add china_ip_route 36.36.0.0/16 -add china_ip_route 36.37.0.0/19 -add china_ip_route 36.37.36.0/23 -add china_ip_route 36.37.39.0/24 -add china_ip_route 36.37.40.0/21 -add china_ip_route 36.37.48.0/20 -add china_ip_route 36.40.0.0/13 -add china_ip_route 36.48.0.0/15 -add china_ip_route 36.51.0.0/16 -add china_ip_route 36.56.0.0/13 -add china_ip_route 36.96.0.0/11 -add china_ip_route 36.128.0.0/10 -add china_ip_route 36.192.0.0/11 -add china_ip_route 36.248.0.0/14 -add china_ip_route 36.254.0.0/16 -add china_ip_route 36.255.116.0/22 -add china_ip_route 36.255.128.0/22 -add china_ip_route 36.255.164.0/22 -add china_ip_route 36.255.172.0/22 -add china_ip_route 36.255.176.0/22 -add china_ip_route 39.0.0.0/24 -add china_ip_route 39.0.2.0/23 -add china_ip_route 39.0.4.0/22 -add china_ip_route 39.0.8.0/21 -add china_ip_route 39.0.16.0/20 -add china_ip_route 39.0.32.0/19 -add china_ip_route 39.0.64.0/18 -add china_ip_route 39.0.128.0/17 -add china_ip_route 39.64.0.0/11 -add china_ip_route 39.96.0.0/13 -add china_ip_route 39.104.0.0/14 -add china_ip_route 39.108.0.0/16 -add china_ip_route 39.128.0.0/10 -add china_ip_route 40.72.0.0/15 -add china_ip_route 40.125.128.0/17 -add china_ip_route 40.126.64.0/18 -add china_ip_route 42.0.0.0/22 -add china_ip_route 42.0.8.0/21 -add china_ip_route 42.0.16.0/21 -add china_ip_route 42.0.24.0/22 -add china_ip_route 42.0.32.0/19 -add china_ip_route 42.0.128.0/17 -add china_ip_route 42.1.0.0/19 -add china_ip_route 42.1.32.0/20 -add china_ip_route 42.1.48.0/21 -add china_ip_route 42.1.56.0/22 -add china_ip_route 42.1.128.0/17 -add china_ip_route 42.4.0.0/14 -add china_ip_route 42.48.0.0/15 -add china_ip_route 42.50.0.0/16 -add china_ip_route 42.51.0.0/16 -add china_ip_route 42.52.0.0/14 -add china_ip_route 42.56.0.0/14 -add china_ip_route 42.62.0.0/17 -add china_ip_route 42.62.128.0/19 -add china_ip_route 42.62.160.0/20 -add china_ip_route 42.62.180.0/22 -add china_ip_route 42.62.184.0/21 -add china_ip_route 42.63.0.0/16 -add china_ip_route 42.80.0.0/15 -add china_ip_route 42.83.64.0/20 -add china_ip_route 42.83.80.0/22 -add china_ip_route 42.83.88.0/21 -add china_ip_route 42.83.96.0/19 -add china_ip_route 42.83.128.0/17 -add china_ip_route 42.84.0.0/14 -add china_ip_route 42.88.0.0/13 -add china_ip_route 42.96.64.0/19 -add china_ip_route 42.96.96.0/21 -add china_ip_route 42.96.108.0/22 -add china_ip_route 42.96.112.0/20 -add china_ip_route 42.96.128.0/17 -add china_ip_route 42.97.0.0/16 -add china_ip_route 42.99.0.0/18 -add china_ip_route 42.99.64.0/19 -add china_ip_route 42.99.96.0/20 -add china_ip_route 42.99.112.0/22 -add china_ip_route 42.99.120.0/21 -add china_ip_route 42.100.0.0/14 -add china_ip_route 42.120.0.0/15 -add china_ip_route 42.122.0.0/16 -add china_ip_route 42.123.0.0/19 -add china_ip_route 42.123.36.0/22 -add china_ip_route 42.123.40.0/21 -add china_ip_route 42.123.48.0/20 -add china_ip_route 42.123.64.0/18 -add china_ip_route 42.123.128.0/17 -add china_ip_route 42.128.0.0/12 -add china_ip_route 42.156.0.0/19 -add china_ip_route 42.156.36.0/22 -add china_ip_route 42.156.40.0/21 -add china_ip_route 42.156.48.0/20 -add china_ip_route 42.156.64.0/18 -add china_ip_route 42.156.128.0/17 -add china_ip_route 42.157.0.0/16 -add china_ip_route 42.158.0.0/16 -add china_ip_route 42.159.0.0/16 -add china_ip_route 42.160.0.0/12 -add china_ip_route 42.176.0.0/13 -add china_ip_route 42.184.0.0/15 -add china_ip_route 42.186.0.0/16 -add china_ip_route 42.187.0.0/18 -add china_ip_route 42.187.64.0/19 -add china_ip_route 42.187.96.0/20 -add china_ip_route 42.187.112.0/21 -add china_ip_route 42.187.120.0/22 -add china_ip_route 42.187.128.0/17 -add china_ip_route 42.192.0.0/15 -add china_ip_route 42.194.0.0/21 -add china_ip_route 42.194.8.0/22 -add china_ip_route 42.194.12.0/22 -add china_ip_route 42.194.16.0/20 -add china_ip_route 42.194.32.0/19 -add china_ip_route 42.194.64.0/18 -add china_ip_route 42.194.128.0/17 -add china_ip_route 42.195.0.0/16 -add china_ip_route 42.196.0.0/14 -add china_ip_route 42.201.0.0/17 -add china_ip_route 42.202.0.0/15 -add china_ip_route 42.204.0.0/14 -add china_ip_route 42.208.0.0/12 -add china_ip_route 42.224.0.0/12 -add china_ip_route 42.240.0.0/17 -add china_ip_route 42.240.128.0/17 -add china_ip_route 42.242.0.0/15 -add china_ip_route 42.244.0.0/14 -add china_ip_route 42.248.0.0/13 -add china_ip_route 43.136.0.0/13 -add china_ip_route 43.144.0.0/13 -add china_ip_route 43.160.0.0/11 -add china_ip_route 43.224.12.0/22 -add china_ip_route 43.224.24.0/22 -add china_ip_route 43.224.44.0/22 -add china_ip_route 43.224.52.0/22 -add china_ip_route 43.224.56.0/22 -add china_ip_route 43.224.64.0/22 -add china_ip_route 43.224.68.0/22 -add china_ip_route 43.224.72.0/22 -add china_ip_route 43.224.80.0/22 -add china_ip_route 43.224.100.0/22 -add china_ip_route 43.224.144.0/22 -add china_ip_route 43.224.160.0/22 -add china_ip_route 43.224.176.0/22 -add china_ip_route 43.224.184.0/22 -add china_ip_route 43.224.200.0/22 -add china_ip_route 43.224.204.0/22 -add china_ip_route 43.224.208.0/22 -add china_ip_route 43.224.212.0/22 -add china_ip_route 43.224.216.0/22 -add china_ip_route 43.224.240.0/22 -add china_ip_route 43.225.76.0/22 -add china_ip_route 43.225.84.0/22 -add china_ip_route 43.225.120.0/22 -add china_ip_route 43.225.124.0/22 -add china_ip_route 43.225.172.0/22 -add china_ip_route 43.225.180.0/22 -add china_ip_route 43.225.208.0/22 -add china_ip_route 43.225.216.0/22 -add china_ip_route 43.225.220.0/22 -add china_ip_route 43.225.224.0/22 -add china_ip_route 43.225.228.0/22 -add china_ip_route 43.225.232.0/22 -add china_ip_route 43.225.236.0/22 -add china_ip_route 43.225.240.0/22 -add china_ip_route 43.225.244.0/22 -add china_ip_route 43.225.252.0/22 -add china_ip_route 43.226.32.0/22 -add china_ip_route 43.226.36.0/22 -add china_ip_route 43.226.40.0/22 -add china_ip_route 43.226.44.0/22 -add china_ip_route 43.226.48.0/22 -add china_ip_route 43.226.52.0/22 -add china_ip_route 43.226.56.0/22 -add china_ip_route 43.226.60.0/22 -add china_ip_route 43.226.64.0/22 -add china_ip_route 43.226.68.0/22 -add china_ip_route 43.226.72.0/22 -add china_ip_route 43.226.76.0/22 -add china_ip_route 43.226.80.0/22 -add china_ip_route 43.226.84.0/22 -add china_ip_route 43.226.88.0/22 -add china_ip_route 43.226.92.0/22 -add china_ip_route 43.226.96.0/22 -add china_ip_route 43.226.100.0/22 -add china_ip_route 43.226.104.0/22 -add china_ip_route 43.226.108.0/22 -add china_ip_route 43.226.112.0/22 -add china_ip_route 43.226.116.0/22 -add china_ip_route 43.226.120.0/22 -add china_ip_route 43.226.128.0/22 -add china_ip_route 43.226.132.0/22 -add china_ip_route 43.226.136.0/22 -add china_ip_route 43.226.140.0/22 -add china_ip_route 43.226.144.0/22 -add china_ip_route 43.226.148.0/22 -add china_ip_route 43.226.152.0/22 -add china_ip_route 43.226.156.0/22 -add china_ip_route 43.226.160.0/22 -add china_ip_route 43.226.164.0/22 -add china_ip_route 43.226.168.0/22 -add china_ip_route 43.226.172.0/22 -add china_ip_route 43.226.176.0/22 -add china_ip_route 43.226.180.0/22 -add china_ip_route 43.226.184.0/22 -add china_ip_route 43.226.188.0/22 -add china_ip_route 43.226.192.0/22 -add china_ip_route 43.226.196.0/22 -add china_ip_route 43.226.200.0/22 -add china_ip_route 43.226.204.0/22 -add china_ip_route 43.226.208.0/22 -add china_ip_route 43.226.212.0/22 -add china_ip_route 43.226.236.0/22 -add china_ip_route 43.226.240.0/22 -add china_ip_route 43.226.244.0/22 -add china_ip_route 43.226.248.0/22 -add china_ip_route 43.226.252.0/22 -add china_ip_route 43.227.0.0/22 -add china_ip_route 43.227.4.0/22 -add china_ip_route 43.227.8.0/22 -add china_ip_route 43.227.32.0/22 -add china_ip_route 43.227.36.0/22 -add china_ip_route 43.227.40.0/22 -add china_ip_route 43.227.44.0/22 -add china_ip_route 43.227.48.0/22 -add china_ip_route 43.227.52.0/22 -add china_ip_route 43.227.56.0/22 -add china_ip_route 43.227.60.0/22 -add china_ip_route 43.227.64.0/22 -add china_ip_route 43.227.68.0/22 -add china_ip_route 43.227.72.0/22 -add china_ip_route 43.227.76.0/22 -add china_ip_route 43.227.80.0/22 -add china_ip_route 43.227.84.0/22 -add china_ip_route 43.227.88.0/22 -add china_ip_route 43.227.92.0/22 -add china_ip_route 43.227.96.0/22 -add china_ip_route 43.227.100.0/22 -add china_ip_route 43.227.104.0/22 -add china_ip_route 43.227.136.0/22 -add china_ip_route 43.227.140.0/22 -add china_ip_route 43.227.144.0/22 -add china_ip_route 43.227.152.0/22 -add china_ip_route 43.227.156.0/22 -add china_ip_route 43.227.160.0/22 -add china_ip_route 43.227.164.0/22 -add china_ip_route 43.227.168.0/22 -add china_ip_route 43.227.172.0/22 -add china_ip_route 43.227.176.0/22 -add china_ip_route 43.227.180.0/22 -add china_ip_route 43.227.188.0/22 -add china_ip_route 43.227.192.0/22 -add china_ip_route 43.227.196.0/22 -add china_ip_route 43.227.200.0/22 -add china_ip_route 43.227.204.0/22 -add china_ip_route 43.227.208.0/22 -add china_ip_route 43.227.212.0/22 -add china_ip_route 43.227.216.0/22 -add china_ip_route 43.227.220.0/22 -add china_ip_route 43.227.232.0/22 -add china_ip_route 43.227.248.0/22 -add china_ip_route 43.227.252.0/22 -add china_ip_route 43.228.0.0/22 -add china_ip_route 43.228.4.0/22 -add china_ip_route 43.228.8.0/22 -add china_ip_route 43.228.12.0/22 -add china_ip_route 43.228.16.0/22 -add china_ip_route 43.228.20.0/22 -add china_ip_route 43.228.24.0/22 -add china_ip_route 43.228.28.0/22 -add china_ip_route 43.228.32.0/22 -add china_ip_route 43.228.36.0/22 -add china_ip_route 43.228.40.0/22 -add china_ip_route 43.228.44.0/22 -add china_ip_route 43.228.48.0/22 -add china_ip_route 43.228.52.0/22 -add china_ip_route 43.228.56.0/22 -add china_ip_route 43.228.60.0/22 -add china_ip_route 43.228.64.0/22 -add china_ip_route 43.228.68.0/22 -add china_ip_route 43.228.76.0/22 -add china_ip_route 43.228.100.0/22 -add china_ip_route 43.228.116.0/22 -add china_ip_route 43.228.120.0/22 -add china_ip_route 43.228.132.0/22 -add china_ip_route 43.228.136.0/22 -add china_ip_route 43.228.148.0/22 -add china_ip_route 43.228.152.0/22 -add china_ip_route 43.228.188.0/22 -add china_ip_route 43.228.204.0/22 -add china_ip_route 43.228.240.0/22 -add china_ip_route 43.229.40.0/22 -add china_ip_route 43.229.48.0/22 -add china_ip_route 43.229.56.0/22 -add china_ip_route 43.229.96.0/22 -add china_ip_route 43.229.120.0/22 -add china_ip_route 43.229.136.0/22 -add china_ip_route 43.229.140.0/22 -add china_ip_route 43.229.144.0/22 -add china_ip_route 43.229.168.0/22 -add china_ip_route 43.229.172.0/22 -add china_ip_route 43.229.176.0/22 -add china_ip_route 43.229.180.0/22 -add china_ip_route 43.229.184.0/22 -add china_ip_route 43.229.188.0/22 -add china_ip_route 43.229.192.0/22 -add china_ip_route 43.229.196.0/22 -add china_ip_route 43.229.216.0/22 -add china_ip_route 43.229.220.0/22 -add china_ip_route 43.229.232.0/22 -add china_ip_route 43.229.236.0/22 -add china_ip_route 43.230.20.0/22 -add china_ip_route 43.230.32.0/22 -add china_ip_route 43.230.68.0/22 -add china_ip_route 43.230.72.0/22 -add china_ip_route 43.230.84.0/22 -add china_ip_route 43.230.124.0/22 -add china_ip_route 43.230.136.0/22 -add china_ip_route 43.230.220.0/22 -add china_ip_route 43.230.224.0/22 -add china_ip_route 43.230.228.0/22 -add china_ip_route 43.230.232.0/22 -add china_ip_route 43.230.236.0/22 -add china_ip_route 43.230.240.0/22 -add china_ip_route 43.230.244.0/22 -add china_ip_route 43.230.248.0/22 -add china_ip_route 43.230.252.0/22 -add china_ip_route 43.231.32.0/22 -add china_ip_route 43.231.36.0/22 -add china_ip_route 43.231.40.0/22 -add china_ip_route 43.231.44.0/22 -add china_ip_route 43.231.80.0/22 -add china_ip_route 43.231.84.0/22 -add china_ip_route 43.231.88.0/22 -add china_ip_route 43.231.92.0/22 -add china_ip_route 43.231.96.0/22 -add china_ip_route 43.231.100.0/22 -add china_ip_route 43.231.104.0/22 -add china_ip_route 43.231.108.0/22 -add china_ip_route 43.231.136.0/22 -add china_ip_route 43.231.140.0/22 -add china_ip_route 43.231.144.0/22 -add china_ip_route 43.231.148.0/22 -add china_ip_route 43.231.152.0/22 -add china_ip_route 43.231.156.0/22 -add china_ip_route 43.231.160.0/22 -add china_ip_route 43.231.164.0/22 -add china_ip_route 43.231.168.0/22 -add china_ip_route 43.231.172.0/22 -add china_ip_route 43.231.176.0/22 -add china_ip_route 43.231.180.0/22 -add china_ip_route 43.236.0.0/22 -add china_ip_route 43.236.4.0/22 -add china_ip_route 43.236.8.0/22 -add china_ip_route 43.236.12.0/22 -add china_ip_route 43.236.16.0/22 -add china_ip_route 43.236.20.0/22 -add china_ip_route 43.236.24.0/22 -add china_ip_route 43.236.28.0/22 -add china_ip_route 43.236.32.0/22 -add china_ip_route 43.236.36.0/22 -add china_ip_route 43.236.40.0/22 -add china_ip_route 43.236.44.0/22 -add china_ip_route 43.236.48.0/22 -add china_ip_route 43.236.52.0/22 -add china_ip_route 43.236.56.0/22 -add china_ip_route 43.236.60.0/22 -add china_ip_route 43.236.64.0/22 -add china_ip_route 43.236.68.0/22 -add china_ip_route 43.236.72.0/22 -add china_ip_route 43.236.76.0/22 -add china_ip_route 43.236.80.0/22 -add china_ip_route 43.236.84.0/22 -add china_ip_route 43.236.88.0/22 -add china_ip_route 43.236.92.0/22 -add china_ip_route 43.236.96.0/22 -add china_ip_route 43.236.100.0/22 -add china_ip_route 43.236.104.0/22 -add china_ip_route 43.236.108.0/22 -add china_ip_route 43.236.112.0/22 -add china_ip_route 43.236.116.0/22 -add china_ip_route 43.236.120.0/22 -add china_ip_route 43.236.124.0/22 -add china_ip_route 43.236.128.0/22 -add china_ip_route 43.236.132.0/22 -add china_ip_route 43.236.136.0/22 -add china_ip_route 43.236.140.0/22 -add china_ip_route 43.236.144.0/22 -add china_ip_route 43.236.148.0/22 -add china_ip_route 43.236.152.0/22 -add china_ip_route 43.236.156.0/22 -add china_ip_route 43.236.160.0/22 -add china_ip_route 43.236.164.0/22 -add china_ip_route 43.236.168.0/22 -add china_ip_route 43.236.172.0/22 -add china_ip_route 43.236.176.0/22 -add china_ip_route 43.236.180.0/22 -add china_ip_route 43.236.184.0/22 -add china_ip_route 43.236.188.0/22 -add china_ip_route 43.236.192.0/22 -add china_ip_route 43.236.196.0/22 -add china_ip_route 43.236.200.0/22 -add china_ip_route 43.236.204.0/22 -add china_ip_route 43.236.208.0/22 -add china_ip_route 43.236.212.0/22 -add china_ip_route 43.236.216.0/22 -add china_ip_route 43.236.220.0/22 -add china_ip_route 43.236.224.0/22 -add china_ip_route 43.236.228.0/22 -add china_ip_route 43.236.232.0/22 -add china_ip_route 43.236.236.0/22 -add china_ip_route 43.236.240.0/22 -add china_ip_route 43.236.244.0/22 -add china_ip_route 43.236.248.0/22 -add china_ip_route 43.236.252.0/22 -add china_ip_route 43.237.0.0/22 -add china_ip_route 43.237.4.0/22 -add china_ip_route 43.237.8.0/22 -add china_ip_route 43.237.12.0/22 -add china_ip_route 43.237.16.0/22 -add china_ip_route 43.237.20.0/22 -add china_ip_route 43.237.24.0/22 -add china_ip_route 43.237.28.0/22 -add china_ip_route 43.237.32.0/22 -add china_ip_route 43.237.36.0/22 -add china_ip_route 43.237.40.0/22 -add china_ip_route 43.237.44.0/22 -add china_ip_route 43.237.48.0/22 -add china_ip_route 43.237.52.0/22 -add china_ip_route 43.237.56.0/22 -add china_ip_route 43.237.60.0/22 -add china_ip_route 43.237.64.0/22 -add china_ip_route 43.237.68.0/22 -add china_ip_route 43.237.72.0/22 -add china_ip_route 43.237.76.0/22 -add china_ip_route 43.237.80.0/22 -add china_ip_route 43.237.84.0/22 -add china_ip_route 43.237.88.0/22 -add china_ip_route 43.237.92.0/22 -add china_ip_route 43.237.96.0/22 -add china_ip_route 43.237.100.0/22 -add china_ip_route 43.237.104.0/22 -add china_ip_route 43.237.108.0/22 -add china_ip_route 43.237.112.0/22 -add china_ip_route 43.237.116.0/22 -add china_ip_route 43.237.120.0/22 -add china_ip_route 43.237.124.0/22 -add china_ip_route 43.237.128.0/22 -add china_ip_route 43.237.132.0/22 -add china_ip_route 43.237.136.0/22 -add china_ip_route 43.237.140.0/22 -add china_ip_route 43.237.144.0/22 -add china_ip_route 43.237.148.0/22 -add china_ip_route 43.237.152.0/22 -add china_ip_route 43.237.156.0/22 -add china_ip_route 43.237.160.0/22 -add china_ip_route 43.237.164.0/22 -add china_ip_route 43.237.168.0/22 -add china_ip_route 43.237.172.0/22 -add china_ip_route 43.237.176.0/22 -add china_ip_route 43.237.180.0/22 -add china_ip_route 43.237.184.0/22 -add china_ip_route 43.237.188.0/22 -add china_ip_route 43.237.192.0/22 -add china_ip_route 43.237.200.0/22 -add china_ip_route 43.237.204.0/22 -add china_ip_route 43.237.208.0/22 -add china_ip_route 43.237.212.0/22 -add china_ip_route 43.237.216.0/22 -add china_ip_route 43.237.220.0/22 -add china_ip_route 43.237.224.0/22 -add china_ip_route 43.237.228.0/22 -add china_ip_route 43.237.232.0/22 -add china_ip_route 43.237.236.0/22 -add china_ip_route 43.237.240.0/22 -add china_ip_route 43.237.244.0/22 -add china_ip_route 43.237.248.0/22 -add china_ip_route 43.237.252.0/22 -add china_ip_route 43.238.0.0/22 -add china_ip_route 43.238.4.0/22 -add china_ip_route 43.238.8.0/22 -add china_ip_route 43.238.12.0/22 -add china_ip_route 43.238.16.0/22 -add china_ip_route 43.238.20.0/22 -add china_ip_route 43.238.24.0/22 -add china_ip_route 43.238.28.0/22 -add china_ip_route 43.238.32.0/22 -add china_ip_route 43.238.36.0/22 -add china_ip_route 43.238.40.0/22 -add china_ip_route 43.238.44.0/22 -add china_ip_route 43.238.48.0/22 -add china_ip_route 43.238.52.0/22 -add china_ip_route 43.238.56.0/22 -add china_ip_route 43.238.60.0/22 -add china_ip_route 43.238.64.0/22 -add china_ip_route 43.238.68.0/22 -add china_ip_route 43.238.72.0/22 -add china_ip_route 43.238.76.0/22 -add china_ip_route 43.238.80.0/22 -add china_ip_route 43.238.84.0/22 -add china_ip_route 43.238.88.0/22 -add china_ip_route 43.238.92.0/22 -add china_ip_route 43.238.96.0/22 -add china_ip_route 43.238.100.0/22 -add china_ip_route 43.238.104.0/22 -add china_ip_route 43.238.108.0/22 -add china_ip_route 43.238.112.0/22 -add china_ip_route 43.238.116.0/22 -add china_ip_route 43.238.120.0/22 -add china_ip_route 43.238.124.0/22 -add china_ip_route 43.238.128.0/22 -add china_ip_route 43.238.132.0/22 -add china_ip_route 43.238.136.0/22 -add china_ip_route 43.238.140.0/22 -add china_ip_route 43.238.144.0/22 -add china_ip_route 43.238.148.0/22 -add china_ip_route 43.238.152.0/22 -add china_ip_route 43.238.156.0/22 -add china_ip_route 43.238.160.0/22 -add china_ip_route 43.238.164.0/22 -add china_ip_route 43.238.168.0/22 -add china_ip_route 43.238.172.0/22 -add china_ip_route 43.238.176.0/22 -add china_ip_route 43.238.180.0/22 -add china_ip_route 43.238.184.0/22 -add china_ip_route 43.238.188.0/22 -add china_ip_route 43.238.192.0/22 -add china_ip_route 43.238.196.0/22 -add china_ip_route 43.238.200.0/22 -add china_ip_route 43.238.204.0/22 -add china_ip_route 43.238.208.0/22 -add china_ip_route 43.238.212.0/22 -add china_ip_route 43.238.216.0/22 -add china_ip_route 43.238.220.0/22 -add china_ip_route 43.238.224.0/22 -add china_ip_route 43.238.228.0/22 -add china_ip_route 43.238.232.0/22 -add china_ip_route 43.238.236.0/22 -add china_ip_route 43.238.240.0/22 -add china_ip_route 43.238.244.0/22 -add china_ip_route 43.238.248.0/22 -add china_ip_route 43.238.252.0/22 -add china_ip_route 43.239.0.0/22 -add china_ip_route 43.239.4.0/22 -add china_ip_route 43.239.8.0/21 -add china_ip_route 43.239.16.0/22 -add china_ip_route 43.239.20.0/22 -add china_ip_route 43.239.24.0/22 -add china_ip_route 43.239.28.0/22 -add china_ip_route 43.239.32.0/22 -add china_ip_route 43.239.36.0/22 -add china_ip_route 43.239.40.0/22 -add china_ip_route 43.239.44.0/22 -add china_ip_route 43.239.48.0/22 -add china_ip_route 43.239.116.0/22 -add china_ip_route 43.239.120.0/22 -add china_ip_route 43.239.172.0/22 -add china_ip_route 43.239.176.0/22 -add china_ip_route 43.240.0.0/22 -add china_ip_route 43.240.56.0/22 -add china_ip_route 43.240.60.0/22 -add china_ip_route 43.240.68.0/22 -add china_ip_route 43.240.72.0/22 -add china_ip_route 43.240.76.0/22 -add china_ip_route 43.240.84.0/22 -add china_ip_route 43.240.124.0/22 -add china_ip_route 43.240.128.0/22 -add china_ip_route 43.240.132.0/22 -add china_ip_route 43.240.136.0/22 -add china_ip_route 43.240.144.0/22 -add china_ip_route 43.240.156.0/22 -add china_ip_route 43.240.160.0/22 -add china_ip_route 43.240.164.0/22 -add china_ip_route 43.240.168.0/22 -add china_ip_route 43.240.172.0/22 -add china_ip_route 43.240.176.0/22 -add china_ip_route 43.240.180.0/22 -add china_ip_route 43.240.184.0/22 -add china_ip_route 43.240.188.0/22 -add china_ip_route 43.240.192.0/22 -add china_ip_route 43.240.196.0/22 -add china_ip_route 43.240.200.0/22 -add china_ip_route 43.240.204.0/22 -add china_ip_route 43.240.208.0/22 -add china_ip_route 43.240.212.0/22 -add china_ip_route 43.240.216.0/22 -add china_ip_route 43.240.220.0/22 -add china_ip_route 43.240.240.0/22 -add china_ip_route 43.240.244.0/22 -add china_ip_route 43.240.248.0/22 -add china_ip_route 43.240.252.0/22 -add china_ip_route 43.241.0.0/22 -add china_ip_route 43.241.4.0/22 -add china_ip_route 43.241.8.0/22 -add china_ip_route 43.241.12.0/22 -add china_ip_route 43.241.16.0/22 -add china_ip_route 43.241.20.0/22 -add china_ip_route 43.241.48.0/22 -add china_ip_route 43.241.76.0/22 -add china_ip_route 43.241.80.0/22 -add china_ip_route 43.241.84.0/22 -add china_ip_route 43.241.88.0/22 -add china_ip_route 43.241.92.0/22 -add china_ip_route 43.241.112.0/22 -add china_ip_route 43.241.168.0/22 -add china_ip_route 43.241.172.0/22 -add china_ip_route 43.241.176.0/22 -add china_ip_route 43.241.180.0/22 -add china_ip_route 43.241.184.0/22 -add china_ip_route 43.241.208.0/22 -add china_ip_route 43.241.212.0/22 -add china_ip_route 43.241.216.0/22 -add china_ip_route 43.241.220.0/22 -add china_ip_route 43.241.224.0/22 -add china_ip_route 43.241.228.0/22 -add china_ip_route 43.241.232.0/22 -add china_ip_route 43.241.236.0/22 -add china_ip_route 43.241.240.0/22 -add china_ip_route 43.241.248.0/22 -add china_ip_route 43.241.252.0/22 -add china_ip_route 43.242.8.0/22 -add china_ip_route 43.242.12.0/22 -add china_ip_route 43.242.16.0/22 -add china_ip_route 43.242.20.0/22 -add china_ip_route 43.242.24.0/22 -add china_ip_route 43.242.28.0/22 -add china_ip_route 43.242.44.0/22 -add china_ip_route 43.242.48.0/22 -add china_ip_route 43.242.52.0/22 -add china_ip_route 43.242.56.0/22 -add china_ip_route 43.242.60.0/22 -add china_ip_route 43.242.64.0/22 -add china_ip_route 43.242.72.0/22 -add china_ip_route 43.242.76.0/22 -add china_ip_route 43.242.80.0/22 -add china_ip_route 43.242.84.0/22 -add china_ip_route 43.242.88.0/22 -add china_ip_route 43.242.92.0/22 -add china_ip_route 43.242.96.0/22 -add china_ip_route 43.242.144.0/22 -add china_ip_route 43.242.148.0/22 -add china_ip_route 43.242.152.0/22 -add china_ip_route 43.242.156.0/22 -add china_ip_route 43.242.160.0/22 -add china_ip_route 43.242.164.0/22 -add china_ip_route 43.242.168.0/22 -add china_ip_route 43.242.180.0/22 -add china_ip_route 43.242.188.0/22 -add china_ip_route 43.242.192.0/22 -add china_ip_route 43.242.196.0/22 -add china_ip_route 43.242.204.0/22 -add china_ip_route 43.242.216.0/22 -add china_ip_route 43.242.220.0/22 -add china_ip_route 43.242.252.0/22 -add china_ip_route 43.243.4.0/22 -add china_ip_route 43.243.8.0/22 -add china_ip_route 43.243.12.0/22 -add china_ip_route 43.243.16.0/22 -add china_ip_route 43.243.24.0/22 -add china_ip_route 43.243.88.0/22 -add china_ip_route 43.243.128.0/22 -add china_ip_route 43.243.136.0/22 -add china_ip_route 43.243.144.0/22 -add china_ip_route 43.243.148.0/22 -add china_ip_route 43.243.156.0/22 -add china_ip_route 43.243.180.0/22 -add china_ip_route 43.243.228.0/22 -add china_ip_route 43.243.232.0/22 -add china_ip_route 43.243.244.0/22 -add china_ip_route 43.246.0.0/22 -add china_ip_route 43.246.4.0/22 -add china_ip_route 43.246.8.0/22 -add china_ip_route 43.246.12.0/22 -add china_ip_route 43.246.16.0/22 -add china_ip_route 43.246.20.0/22 -add china_ip_route 43.246.24.0/22 -add china_ip_route 43.246.28.0/22 -add china_ip_route 43.246.32.0/22 -add china_ip_route 43.246.36.0/22 -add china_ip_route 43.246.40.0/22 -add china_ip_route 43.246.44.0/22 -add china_ip_route 43.246.48.0/22 -add china_ip_route 43.246.52.0/22 -add china_ip_route 43.246.56.0/22 -add china_ip_route 43.246.60.0/22 -add china_ip_route 43.246.64.0/22 -add china_ip_route 43.246.68.0/22 -add china_ip_route 43.246.72.0/22 -add china_ip_route 43.246.76.0/22 -add china_ip_route 43.246.80.0/22 -add china_ip_route 43.246.84.0/22 -add china_ip_route 43.246.88.0/22 -add china_ip_route 43.246.92.0/22 -add china_ip_route 43.246.96.0/22 -add china_ip_route 43.246.112.0/22 -add china_ip_route 43.246.212.0/22 -add china_ip_route 43.246.228.0/22 -add china_ip_route 43.247.4.0/22 -add china_ip_route 43.247.8.0/22 -add china_ip_route 43.247.44.0/22 -add china_ip_route 43.247.48.0/22 -add china_ip_route 43.247.68.0/22 -add china_ip_route 43.247.76.0/22 -add china_ip_route 43.247.84.0/22 -add china_ip_route 43.247.88.0/22 -add china_ip_route 43.247.92.0/22 -add china_ip_route 43.247.96.0/22 -add china_ip_route 43.247.100.0/22 -add china_ip_route 43.247.108.0/22 -add china_ip_route 43.247.112.0/22 -add china_ip_route 43.247.148.0/22 -add china_ip_route 43.247.152.0/22 -add china_ip_route 43.247.176.0/22 -add china_ip_route 43.247.180.0/22 -add china_ip_route 43.247.184.0/22 -add china_ip_route 43.247.188.0/22 -add china_ip_route 43.247.196.0/22 -add china_ip_route 43.247.200.0/22 -add china_ip_route 43.247.204.0/22 -add china_ip_route 43.247.208.0/22 -add china_ip_route 43.247.212.0/22 -add china_ip_route 43.247.216.0/22 -add china_ip_route 43.247.220.0/22 -add china_ip_route 43.247.224.0/22 -add china_ip_route 43.247.228.0/22 -add china_ip_route 43.247.232.0/22 -add china_ip_route 43.247.236.0/22 -add china_ip_route 43.247.240.0/22 -add china_ip_route 43.247.244.0/22 -add china_ip_route 43.247.248.0/22 -add china_ip_route 43.247.252.0/22 -add china_ip_route 43.248.0.0/22 -add china_ip_route 43.248.4.0/22 -add china_ip_route 43.248.20.0/22 -add china_ip_route 43.248.28.0/22 -add china_ip_route 43.248.48.0/22 -add china_ip_route 43.248.76.0/22 -add china_ip_route 43.248.80.0/22 -add china_ip_route 43.248.84.0/22 -add china_ip_route 43.248.88.0/22 -add china_ip_route 43.248.92.0/22 -add china_ip_route 43.248.96.0/22 -add china_ip_route 43.248.100.0/22 -add china_ip_route 43.248.104.0/22 -add china_ip_route 43.248.108.0/22 -add china_ip_route 43.248.112.0/22 -add china_ip_route 43.248.116.0/22 -add china_ip_route 43.248.120.0/22 -add china_ip_route 43.248.124.0/22 -add china_ip_route 43.248.128.0/22 -add china_ip_route 43.248.132.0/22 -add china_ip_route 43.248.136.0/22 -add china_ip_route 43.248.140.0/22 -add china_ip_route 43.248.144.0/22 -add china_ip_route 43.248.148.0/22 -add china_ip_route 43.248.176.0/22 -add china_ip_route 43.248.180.0/22 -add china_ip_route 43.248.184.0/22 -add china_ip_route 43.248.188.0/22 -add china_ip_route 43.248.192.0/22 -add china_ip_route 43.248.196.0/22 -add china_ip_route 43.248.200.0/22 -add china_ip_route 43.248.204.0/22 -add china_ip_route 43.248.208.0/22 -add china_ip_route 43.248.228.0/22 -add china_ip_route 43.248.232.0/22 -add china_ip_route 43.248.244.0/22 -add china_ip_route 43.249.4.0/22 -add china_ip_route 43.249.8.0/22 -add china_ip_route 43.249.120.0/22 -add china_ip_route 43.249.132.0/22 -add china_ip_route 43.249.136.0/22 -add china_ip_route 43.249.144.0/22 -add china_ip_route 43.249.148.0/22 -add china_ip_route 43.249.152.0/22 -add china_ip_route 43.249.156.0/22 -add china_ip_route 43.249.160.0/22 -add china_ip_route 43.249.164.0/22 -add china_ip_route 43.249.168.0/22 -add china_ip_route 43.249.192.0/22 -add china_ip_route 43.249.236.0/22 -add china_ip_route 43.250.4.0/22 -add china_ip_route 43.250.12.0/22 -add china_ip_route 43.250.16.0/22 -add china_ip_route 43.250.20.0/22 -add china_ip_route 43.250.28.0/22 -add china_ip_route 43.250.32.0/22 -add china_ip_route 43.250.36.0/22 -add china_ip_route 43.250.72.0/22 -add china_ip_route 43.250.96.0/22 -add china_ip_route 43.250.100.0/22 -add china_ip_route 43.250.104.0/22 -add china_ip_route 43.250.108.0/22 -add china_ip_route 43.250.112.0/22 -add china_ip_route 43.250.116.0/22 -add china_ip_route 43.250.128.0/22 -add china_ip_route 43.250.144.0/22 -add china_ip_route 43.250.148.0/22 -add china_ip_route 43.250.160.0/22 -add china_ip_route 43.250.168.0/22 -add china_ip_route 43.250.172.0/22 -add china_ip_route 43.250.176.0/22 -add china_ip_route 43.250.200.0/22 -add china_ip_route 43.250.212.0/22 -add china_ip_route 43.250.216.0/22 -add china_ip_route 43.250.220.0/22 -add china_ip_route 43.250.236.0/22 -add china_ip_route 43.250.244.0/22 -add china_ip_route 43.251.4.0/22 -add china_ip_route 43.251.8.0/22 -add china_ip_route 43.251.36.0/22 -add china_ip_route 43.251.100.0/22 -add china_ip_route 43.251.116.0/22 -add china_ip_route 43.251.192.0/22 -add china_ip_route 43.251.232.0/22 -add china_ip_route 43.251.236.0/22 -add china_ip_route 43.251.244.0/22 -add china_ip_route 43.252.48.0/22 -add china_ip_route 43.252.56.0/22 -add china_ip_route 43.252.224.0/22 -add china_ip_route 43.254.0.0/22 -add china_ip_route 43.254.4.0/22 -add china_ip_route 43.254.8.0/22 -add china_ip_route 43.254.24.0/22 -add china_ip_route 43.254.36.0/22 -add china_ip_route 43.254.44.0/22 -add china_ip_route 43.254.52.0/22 -add china_ip_route 43.254.64.0/22 -add china_ip_route 43.254.72.0/22 -add china_ip_route 43.254.84.0/22 -add china_ip_route 43.254.88.0/22 -add china_ip_route 43.254.92.0/22 -add china_ip_route 43.254.100.0/22 -add china_ip_route 43.254.104.0/22 -add china_ip_route 43.254.112.0/22 -add china_ip_route 43.254.116.0/22 -add china_ip_route 43.254.128.0/22 -add china_ip_route 43.254.136.0/22 -add china_ip_route 43.254.140.0/22 -add china_ip_route 43.254.144.0/22 -add china_ip_route 43.254.148.0/22 -add china_ip_route 43.254.152.0/22 -add china_ip_route 43.254.156.0/22 -add china_ip_route 43.254.168.0/22 -add china_ip_route 43.254.172.0/22 -add china_ip_route 43.254.180.0/22 -add china_ip_route 43.254.184.0/22 -add china_ip_route 43.254.188.0/22 -add china_ip_route 43.254.192.0/22 -add china_ip_route 43.254.196.0/22 -add china_ip_route 43.254.200.0/22 -add china_ip_route 43.254.208.0/22 -add china_ip_route 43.254.220.0/22 -add china_ip_route 43.254.224.0/22 -add china_ip_route 43.254.228.0/22 -add china_ip_route 43.254.232.0/22 -add china_ip_route 43.254.236.0/22 -add china_ip_route 43.254.240.0/22 -add china_ip_route 43.254.248.0/22 -add china_ip_route 43.254.252.0/22 -add china_ip_route 43.255.0.0/22 -add china_ip_route 43.255.4.0/22 -add china_ip_route 43.255.8.0/22 -add china_ip_route 43.255.16.0/22 -add china_ip_route 43.255.48.0/22 -add china_ip_route 43.255.64.0/22 -add china_ip_route 43.255.68.0/22 -add china_ip_route 43.255.72.0/22 -add china_ip_route 43.255.76.0/22 -add china_ip_route 43.255.84.0/22 -add china_ip_route 43.255.96.0/22 -add china_ip_route 43.255.108.0/22 -add china_ip_route 43.255.144.0/22 -add china_ip_route 43.255.168.0/22 -add china_ip_route 43.255.176.0/22 -add china_ip_route 43.255.184.0/22 -add china_ip_route 43.255.192.0/22 -add china_ip_route 43.255.200.0/22 -add china_ip_route 43.255.204.0/22 -add china_ip_route 43.255.208.0/22 -add china_ip_route 43.255.212.0/22 -add china_ip_route 43.255.224.0/22 -add china_ip_route 43.255.228.0/22 -add china_ip_route 43.255.232.0/22 -add china_ip_route 43.255.244.0/22 -add china_ip_route 45.40.192.0/18 -add china_ip_route 45.65.16.0/22 -add china_ip_route 45.65.20.0/22 -add china_ip_route 45.65.24.0/22 -add china_ip_route 45.65.28.0/22 -add china_ip_route 45.112.132.0/22 -add china_ip_route 45.112.188.0/22 -add china_ip_route 45.112.208.0/22 -add china_ip_route 45.112.212.0/22 -add china_ip_route 45.112.216.0/22 -add china_ip_route 45.112.220.0/22 -add china_ip_route 45.112.228.0/22 -add china_ip_route 45.112.232.0/22 -add china_ip_route 45.112.236.0/22 -add china_ip_route 45.113.12.0/22 -add china_ip_route 45.113.16.0/22 -add china_ip_route 45.113.20.0/22 -add china_ip_route 45.113.24.0/22 -add china_ip_route 45.113.28.0/22 -add china_ip_route 45.113.40.0/22 -add china_ip_route 45.113.52.0/22 -add china_ip_route 45.113.56.0/22 -add china_ip_route 45.113.72.0/22 -add china_ip_route 45.113.144.0/22 -add china_ip_route 45.113.148.0/22 -add china_ip_route 45.113.168.0/22 -add china_ip_route 45.113.176.0/22 -add china_ip_route 45.113.184.0/22 -add china_ip_route 45.113.200.0/22 -add china_ip_route 45.113.204.0/22 -add china_ip_route 45.113.208.0/22 -add china_ip_route 45.113.212.0/22 -add china_ip_route 45.113.216.0/22 -add china_ip_route 45.113.220.0/22 -add china_ip_route 45.113.240.0/22 -add china_ip_route 45.113.252.0/22 -add china_ip_route 45.114.0.0/22 -add china_ip_route 45.114.12.0/22 -add china_ip_route 45.114.32.0/22 -add china_ip_route 45.114.40.0/22 -add china_ip_route 45.114.52.0/22 -add china_ip_route 45.114.96.0/22 -add china_ip_route 45.114.124.0/22 -add china_ip_route 45.114.136.0/22 -add china_ip_route 45.114.196.0/22 -add china_ip_route 45.114.200.0/22 -add china_ip_route 45.114.228.0/22 -add china_ip_route 45.114.252.0/22 -add china_ip_route 45.115.44.0/22 -add china_ip_route 45.115.100.0/22 -add china_ip_route 45.115.120.0/22 -add china_ip_route 45.115.132.0/22 -add china_ip_route 45.115.144.0/22 -add china_ip_route 45.115.156.0/22 -add china_ip_route 45.115.164.0/22 -add china_ip_route 45.115.200.0/22 -add china_ip_route 45.115.212.0/22 -add china_ip_route 45.115.228.0/22 -add china_ip_route 45.115.236.0/22 -add china_ip_route 45.115.244.0/22 -add china_ip_route 45.115.248.0/22 -add china_ip_route 45.116.16.0/22 -add china_ip_route 45.116.24.0/22 -add china_ip_route 45.116.32.0/22 -add china_ip_route 45.116.36.0/22 -add china_ip_route 45.116.52.0/22 -add china_ip_route 45.116.96.0/22 -add china_ip_route 45.116.100.0/22 -add china_ip_route 45.116.140.0/22 -add china_ip_route 45.116.152.0/22 -add china_ip_route 45.116.208.0/22 -add china_ip_route 45.117.8.0/22 -add china_ip_route 45.117.20.0/22 -add china_ip_route 45.117.68.0/22 -add china_ip_route 45.117.124.0/22 -add china_ip_route 45.117.252.0/22 -add china_ip_route 45.119.52.0/22 -add china_ip_route 45.119.60.0/22 -add china_ip_route 45.119.64.0/22 -add china_ip_route 45.119.68.0/22 -add china_ip_route 45.119.72.0/22 -add china_ip_route 45.119.104.0/22 -add china_ip_route 45.119.116.0/22 -add china_ip_route 45.119.232.0/22 -add china_ip_route 45.120.100.0/22 -add china_ip_route 45.120.140.0/22 -add china_ip_route 45.120.164.0/22 -add china_ip_route 45.120.240.0/22 -add china_ip_route 45.121.52.0/22 -add china_ip_route 45.121.64.0/22 -add china_ip_route 45.121.68.0/22 -add china_ip_route 45.121.72.0/22 -add china_ip_route 45.121.92.0/22 -add china_ip_route 45.121.96.0/22 -add china_ip_route 45.121.172.0/22 -add china_ip_route 45.121.176.0/22 -add china_ip_route 45.121.212.0/22 -add china_ip_route 45.121.240.0/22 -add china_ip_route 45.121.244.0/22 -add china_ip_route 45.121.248.0/22 -add china_ip_route 45.121.252.0/22 -add china_ip_route 45.122.0.0/22 -add china_ip_route 45.122.4.0/22 -add china_ip_route 45.122.8.0/22 -add china_ip_route 45.122.12.0/22 -add china_ip_route 45.122.16.0/22 -add china_ip_route 45.122.20.0/22 -add china_ip_route 45.122.24.0/22 -add china_ip_route 45.122.28.0/22 -add china_ip_route 45.122.32.0/22 -add china_ip_route 45.122.36.0/22 -add china_ip_route 45.122.40.0/22 -add china_ip_route 45.122.60.0/22 -add china_ip_route 45.122.64.0/22 -add china_ip_route 45.122.68.0/22 -add china_ip_route 45.122.72.0/22 -add china_ip_route 45.122.76.0/22 -add china_ip_route 45.122.80.0/22 -add china_ip_route 45.122.84.0/22 -add china_ip_route 45.122.88.0/22 -add china_ip_route 45.122.92.0/22 -add china_ip_route 45.122.96.0/21 -add china_ip_route 45.122.104.0/22 -add china_ip_route 45.122.108.0/22 -add china_ip_route 45.122.112.0/22 -add china_ip_route 45.122.116.0/22 -add china_ip_route 45.122.160.0/22 -add china_ip_route 45.122.164.0/22 -add china_ip_route 45.122.168.0/22 -add china_ip_route 45.122.172.0/22 -add china_ip_route 45.122.176.0/22 -add china_ip_route 45.122.180.0/22 -add china_ip_route 45.122.184.0/22 -add china_ip_route 45.122.188.0/22 -add china_ip_route 45.122.192.0/22 -add china_ip_route 45.122.196.0/22 -add china_ip_route 45.122.200.0/22 -add china_ip_route 45.122.204.0/22 -add china_ip_route 45.122.208.0/22 -add china_ip_route 45.122.212.0/22 -add china_ip_route 45.122.216.0/22 -add china_ip_route 45.123.28.0/22 -add china_ip_route 45.123.32.0/22 -add china_ip_route 45.123.36.0/22 -add china_ip_route 45.123.44.0/22 -add china_ip_route 45.123.48.0/22 -add china_ip_route 45.123.52.0/22 -add china_ip_route 45.123.56.0/22 -add china_ip_route 45.123.60.0/22 -add china_ip_route 45.123.64.0/22 -add china_ip_route 45.123.68.0/22 -add china_ip_route 45.123.72.0/22 -add china_ip_route 45.123.76.0/22 -add china_ip_route 45.123.80.0/22 -add china_ip_route 45.123.84.0/22 -add china_ip_route 45.123.88.0/22 -add china_ip_route 45.123.120.0/22 -add china_ip_route 45.123.128.0/22 -add china_ip_route 45.123.132.0/22 -add china_ip_route 45.123.136.0/22 -add china_ip_route 45.123.148.0/22 -add china_ip_route 45.123.152.0/22 -add china_ip_route 45.123.156.0/22 -add china_ip_route 45.123.164.0/22 -add china_ip_route 45.123.168.0/22 -add china_ip_route 45.123.172.0/22 -add china_ip_route 45.123.176.0/22 -add china_ip_route 45.123.180.0/22 -add china_ip_route 45.123.184.0/22 -add china_ip_route 45.123.204.0/22 -add china_ip_route 45.123.212.0/22 -add china_ip_route 45.123.224.0/22 -add china_ip_route 45.123.228.0/22 -add china_ip_route 45.123.232.0/22 -add china_ip_route 45.123.236.0/22 -add china_ip_route 45.123.240.0/22 -add china_ip_route 45.123.244.0/22 -add china_ip_route 45.123.248.0/22 -add china_ip_route 45.123.252.0/22 -add china_ip_route 45.124.0.0/22 -add china_ip_route 45.124.20.0/22 -add china_ip_route 45.124.28.0/22 -add china_ip_route 45.124.32.0/22 -add china_ip_route 45.124.36.0/22 -add china_ip_route 45.124.44.0/22 -add china_ip_route 45.124.68.0/22 -add china_ip_route 45.124.76.0/22 -add china_ip_route 45.124.80.0/22 -add china_ip_route 45.124.100.0/22 -add china_ip_route 45.124.124.0/22 -add china_ip_route 45.124.172.0/22 -add china_ip_route 45.124.176.0/22 -add china_ip_route 45.124.208.0/22 -add china_ip_route 45.124.248.0/22 -add china_ip_route 45.125.12.0/22 -add china_ip_route 45.125.16.0/22 -add china_ip_route 45.125.24.0/22 -add china_ip_route 45.125.44.0/22 -add china_ip_route 45.125.52.0/22 -add china_ip_route 45.125.56.0/22 -add china_ip_route 45.125.76.0/22 -add china_ip_route 45.125.80.0/22 -add china_ip_route 45.125.84.0/22 -add china_ip_route 45.125.88.0/22 -add china_ip_route 45.125.92.0/22 -add china_ip_route 45.125.96.0/22 -add china_ip_route 45.125.100.0/22 -add china_ip_route 45.125.104.0/22 -add china_ip_route 45.125.136.0/22 -add china_ip_route 45.126.48.0/22 -add china_ip_route 45.126.52.0/22 -add china_ip_route 45.126.100.0/22 -add china_ip_route 45.126.108.0/22 -add china_ip_route 45.126.112.0/22 -add china_ip_route 45.126.116.0/22 -add china_ip_route 45.126.120.0/22 -add china_ip_route 45.126.212.0/22 -add china_ip_route 45.126.220.0/22 -add china_ip_route 45.127.8.0/22 -add china_ip_route 45.127.12.0/22 -add china_ip_route 45.127.96.0/22 -add china_ip_route 45.127.128.0/22 -add china_ip_route 45.127.144.0/22 -add china_ip_route 45.127.148.0/22 -add china_ip_route 45.127.156.0/22 -add china_ip_route 45.127.216.0/22 -add china_ip_route 45.248.8.0/22 -add china_ip_route 45.248.80.0/22 -add china_ip_route 45.248.84.0/22 -add china_ip_route 45.248.88.0/22 -add china_ip_route 45.248.96.0/22 -add china_ip_route 45.248.100.0/22 -add china_ip_route 45.248.104.0/22 -add china_ip_route 45.248.108.0/22 -add china_ip_route 45.248.128.0/22 -add china_ip_route 45.248.132.0/22 -add china_ip_route 45.248.204.0/22 -add china_ip_route 45.248.208.0/22 -add china_ip_route 45.248.212.0/22 -add china_ip_route 45.248.216.0/22 -add china_ip_route 45.248.220.0/22 -add china_ip_route 45.248.224.0/22 -add china_ip_route 45.248.228.0/22 -add china_ip_route 45.248.232.0/22 -add china_ip_route 45.248.236.0/22 -add china_ip_route 45.248.240.0/22 -add china_ip_route 45.248.244.0/22 -add china_ip_route 45.248.248.0/22 -add china_ip_route 45.248.252.0/22 -add china_ip_route 45.249.0.0/22 -add china_ip_route 45.249.4.0/22 -add china_ip_route 45.249.12.0/22 -add china_ip_route 45.249.16.0/22 -add china_ip_route 45.249.20.0/22 -add china_ip_route 45.249.24.0/22 -add china_ip_route 45.249.28.0/22 -add china_ip_route 45.249.32.0/22 -add china_ip_route 45.249.36.0/22 -add china_ip_route 45.249.112.0/22 -add china_ip_route 45.249.188.0/22 -add china_ip_route 45.249.192.0/22 -add china_ip_route 45.249.196.0/22 -add china_ip_route 45.249.200.0/22 -add china_ip_route 45.249.204.0/22 -add china_ip_route 45.249.208.0/22 -add china_ip_route 45.249.212.0/22 -add china_ip_route 45.250.12.0/22 -add china_ip_route 45.250.16.0/22 -add china_ip_route 45.250.28.0/22 -add china_ip_route 45.250.32.0/22 -add china_ip_route 45.250.36.0/22 -add china_ip_route 45.250.40.0/22 -add china_ip_route 45.250.76.0/22 -add china_ip_route 45.250.80.0/22 -add china_ip_route 45.250.84.0/22 -add china_ip_route 45.250.88.0/22 -add china_ip_route 45.250.92.0/22 -add china_ip_route 45.250.96.0/22 -add china_ip_route 45.250.104.0/22 -add china_ip_route 45.250.108.0/22 -add china_ip_route 45.250.112.0/22 -add china_ip_route 45.250.116.0/22 -add china_ip_route 45.250.120.0/22 -add china_ip_route 45.250.124.0/22 -add china_ip_route 45.250.128.0/22 -add china_ip_route 45.250.132.0/22 -add china_ip_route 45.250.136.0/22 -add china_ip_route 45.250.140.0/22 -add china_ip_route 45.250.144.0/22 -add china_ip_route 45.250.148.0/22 -add china_ip_route 45.250.152.0/22 -add china_ip_route 45.250.164.0/22 -add china_ip_route 45.250.180.0/22 -add china_ip_route 45.250.184.0/22 -add china_ip_route 45.250.188.0/22 -add china_ip_route 45.250.192.0/22 -add china_ip_route 45.251.0.0/22 -add china_ip_route 45.251.8.0/22 -add china_ip_route 45.251.16.0/22 -add china_ip_route 45.251.20.0/22 -add china_ip_route 45.251.52.0/22 -add china_ip_route 45.251.84.0/22 -add china_ip_route 45.251.88.0/22 -add china_ip_route 45.251.92.0/22 -add china_ip_route 45.251.96.0/22 -add china_ip_route 45.251.100.0/22 -add china_ip_route 45.251.120.0/22 -add china_ip_route 45.251.124.0/22 -add china_ip_route 45.251.136.0/22 -add china_ip_route 45.251.140.0/22 -add china_ip_route 45.251.144.0/22 -add china_ip_route 45.251.148.0/22 -add china_ip_route 45.251.152.0/22 -add china_ip_route 45.251.156.0/22 -add china_ip_route 45.251.160.0/22 -add china_ip_route 45.251.164.0/22 -add china_ip_route 45.251.168.0/22 -add china_ip_route 45.251.172.0/22 -add china_ip_route 45.251.176.0/22 -add china_ip_route 45.251.180.0/22 -add china_ip_route 45.251.184.0/22 -add china_ip_route 45.251.188.0/22 -add china_ip_route 45.251.192.0/22 -add china_ip_route 45.251.196.0/22 -add china_ip_route 45.251.200.0/22 -add china_ip_route 45.251.204.0/22 -add china_ip_route 45.251.208.0/22 -add china_ip_route 45.251.212.0/22 -add china_ip_route 45.251.216.0/22 -add china_ip_route 45.251.220.0/22 -add china_ip_route 45.251.224.0/22 -add china_ip_route 45.251.240.0/22 -add china_ip_route 45.252.0.0/22 -add china_ip_route 45.252.4.0/22 -add china_ip_route 45.252.8.0/22 -add china_ip_route 45.252.12.0/22 -add china_ip_route 45.252.16.0/22 -add china_ip_route 45.252.20.0/22 -add china_ip_route 45.252.24.0/22 -add china_ip_route 45.252.28.0/22 -add china_ip_route 45.252.32.0/22 -add china_ip_route 45.252.36.0/22 -add china_ip_route 45.252.40.0/22 -add china_ip_route 45.252.44.0/22 -add china_ip_route 45.252.48.0/22 -add china_ip_route 45.252.60.0/22 -add china_ip_route 45.252.84.0/22 -add china_ip_route 45.252.88.0/22 -add china_ip_route 45.252.92.0/22 -add china_ip_route 45.252.96.0/22 -add china_ip_route 45.252.100.0/22 -add china_ip_route 45.252.104.0/22 -add china_ip_route 45.252.108.0/22 -add china_ip_route 45.252.112.0/22 -add china_ip_route 45.252.116.0/22 -add china_ip_route 45.252.120.0/22 -add china_ip_route 45.252.124.0/22 -add china_ip_route 45.252.128.0/22 -add china_ip_route 45.252.132.0/22 -add china_ip_route 45.252.136.0/22 -add china_ip_route 45.252.140.0/22 -add china_ip_route 45.252.144.0/22 -add china_ip_route 45.252.148.0/22 -add china_ip_route 45.252.152.0/22 -add china_ip_route 45.252.156.0/22 -add china_ip_route 45.252.160.0/22 -add china_ip_route 45.252.164.0/22 -add china_ip_route 45.252.168.0/22 -add china_ip_route 45.252.172.0/22 -add china_ip_route 45.252.176.0/22 -add china_ip_route 45.252.192.0/22 -add china_ip_route 45.252.196.0/22 -add china_ip_route 45.252.200.0/22 -add china_ip_route 45.252.204.0/22 -add china_ip_route 45.252.208.0/22 -add china_ip_route 45.252.212.0/22 -add china_ip_route 45.252.216.0/22 -add china_ip_route 45.252.220.0/22 -add china_ip_route 45.252.224.0/22 -add china_ip_route 45.252.228.0/22 -add china_ip_route 45.252.232.0/22 -add china_ip_route 45.253.0.0/22 -add china_ip_route 45.253.4.0/22 -add china_ip_route 45.253.8.0/22 -add china_ip_route 45.253.12.0/22 -add china_ip_route 45.253.16.0/22 -add china_ip_route 45.253.20.0/22 -add china_ip_route 45.253.24.0/22 -add china_ip_route 45.253.28.0/22 -add china_ip_route 45.253.32.0/22 -add china_ip_route 45.253.36.0/22 -add china_ip_route 45.253.40.0/22 -add china_ip_route 45.253.44.0/22 -add china_ip_route 45.253.48.0/22 -add china_ip_route 45.253.52.0/22 -add china_ip_route 45.253.56.0/22 -add china_ip_route 45.253.60.0/22 -add china_ip_route 45.253.64.0/22 -add china_ip_route 45.253.68.0/22 -add china_ip_route 45.253.72.0/22 -add china_ip_route 45.253.76.0/22 -add china_ip_route 45.253.80.0/22 -add china_ip_route 45.253.84.0/22 -add china_ip_route 45.253.92.0/22 -add china_ip_route 45.253.96.0/22 -add china_ip_route 45.253.100.0/22 -add china_ip_route 45.253.104.0/22 -add china_ip_route 45.253.108.0/22 -add china_ip_route 45.253.112.0/22 -add china_ip_route 45.253.116.0/22 -add china_ip_route 45.253.120.0/22 -add china_ip_route 45.253.132.0/22 -add china_ip_route 45.253.136.0/22 -add china_ip_route 45.253.140.0/22 -add china_ip_route 45.253.144.0/22 -add china_ip_route 45.253.148.0/22 -add china_ip_route 45.253.152.0/22 -add china_ip_route 45.253.156.0/22 -add china_ip_route 45.253.160.0/22 -add china_ip_route 45.253.164.0/22 -add china_ip_route 45.253.168.0/22 -add china_ip_route 45.253.172.0/22 -add china_ip_route 45.253.176.0/22 -add china_ip_route 45.253.180.0/22 -add china_ip_route 45.253.184.0/22 -add china_ip_route 45.253.188.0/22 -add china_ip_route 45.253.192.0/22 -add china_ip_route 45.253.196.0/22 -add china_ip_route 45.253.200.0/22 -add china_ip_route 45.253.204.0/22 -add china_ip_route 45.253.208.0/22 -add china_ip_route 45.253.212.0/22 -add china_ip_route 45.253.216.0/22 -add china_ip_route 45.253.220.0/22 -add china_ip_route 45.253.224.0/22 -add china_ip_route 45.253.228.0/22 -add china_ip_route 45.253.232.0/22 -add china_ip_route 45.253.236.0/22 -add china_ip_route 45.253.240.0/22 -add china_ip_route 45.253.244.0/22 -add china_ip_route 45.254.0.0/22 -add china_ip_route 45.254.4.0/22 -add china_ip_route 45.254.8.0/22 -add china_ip_route 45.254.12.0/22 -add china_ip_route 45.254.16.0/22 -add china_ip_route 45.254.20.0/22 -add china_ip_route 45.254.24.0/22 -add china_ip_route 45.254.28.0/22 -add china_ip_route 45.254.40.0/22 -add china_ip_route 45.254.48.0/22 -add china_ip_route 45.254.52.0/22 -add china_ip_route 45.254.56.0/22 -add china_ip_route 45.254.60.0/22 -add china_ip_route 45.254.64.0/22 -add china_ip_route 45.254.68.0/22 -add china_ip_route 45.254.72.0/22 -add china_ip_route 45.254.76.0/22 -add china_ip_route 45.254.80.0/22 -add china_ip_route 45.254.84.0/22 -add china_ip_route 45.254.88.0/22 -add china_ip_route 45.254.92.0/22 -add china_ip_route 45.254.96.0/22 -add china_ip_route 45.254.100.0/22 -add china_ip_route 45.254.104.0/22 -add china_ip_route 45.254.108.0/22 -add china_ip_route 45.254.112.0/22 -add china_ip_route 45.254.116.0/22 -add china_ip_route 45.254.120.0/22 -add china_ip_route 45.254.124.0/22 -add china_ip_route 45.254.128.0/22 -add china_ip_route 45.254.132.0/22 -add china_ip_route 45.254.136.0/22 -add china_ip_route 45.254.140.0/22 -add china_ip_route 45.254.144.0/22 -add china_ip_route 45.254.148.0/22 -add china_ip_route 45.254.152.0/22 -add china_ip_route 45.254.156.0/22 -add china_ip_route 45.254.160.0/22 -add china_ip_route 45.254.164.0/22 -add china_ip_route 45.254.168.0/22 -add china_ip_route 45.254.172.0/22 -add china_ip_route 45.254.176.0/22 -add china_ip_route 45.254.180.0/22 -add china_ip_route 45.254.184.0/22 -add china_ip_route 45.254.188.0/22 -add china_ip_route 45.254.192.0/22 -add china_ip_route 45.254.196.0/22 -add china_ip_route 45.254.200.0/22 -add china_ip_route 45.254.204.0/22 -add china_ip_route 45.254.208.0/22 -add china_ip_route 45.254.212.0/22 -add china_ip_route 45.254.216.0/22 -add china_ip_route 45.254.220.0/22 -add china_ip_route 45.254.224.0/22 -add china_ip_route 45.254.228.0/22 -add china_ip_route 45.254.236.0/22 -add china_ip_route 45.254.240.0/22 -add china_ip_route 45.254.248.0/22 -add china_ip_route 45.255.0.0/22 -add china_ip_route 45.255.4.0/22 -add china_ip_route 45.255.8.0/22 -add china_ip_route 45.255.12.0/22 -add china_ip_route 45.255.16.0/22 -add china_ip_route 45.255.20.0/22 -add china_ip_route 45.255.24.0/22 -add china_ip_route 45.255.28.0/22 -add china_ip_route 45.255.32.0/22 -add china_ip_route 45.255.36.0/22 -add china_ip_route 45.255.40.0/22 -add china_ip_route 45.255.44.0/22 -add china_ip_route 45.255.48.0/22 -add china_ip_route 45.255.52.0/22 -add china_ip_route 45.255.56.0/22 -add china_ip_route 45.255.60.0/22 -add china_ip_route 45.255.64.0/22 -add china_ip_route 45.255.68.0/22 -add china_ip_route 45.255.72.0/22 -add china_ip_route 45.255.76.0/22 -add china_ip_route 45.255.80.0/22 -add china_ip_route 45.255.84.0/22 -add china_ip_route 45.255.88.0/22 -add china_ip_route 45.255.92.0/22 -add china_ip_route 45.255.96.0/22 -add china_ip_route 45.255.100.0/22 -add china_ip_route 45.255.104.0/22 -add china_ip_route 45.255.108.0/22 -add china_ip_route 45.255.112.0/22 -add china_ip_route 45.255.116.0/22 -add china_ip_route 45.255.120.0/22 -add china_ip_route 45.255.124.0/22 -add china_ip_route 45.255.132.0/22 -add china_ip_route 45.255.136.0/22 -add china_ip_route 45.255.140.0/22 -add china_ip_route 45.255.144.0/22 -add china_ip_route 45.255.148.0/22 -add china_ip_route 45.255.152.0/22 -add china_ip_route 45.255.156.0/22 -add china_ip_route 45.255.160.0/22 -add china_ip_route 45.255.164.0/22 -add china_ip_route 45.255.168.0/22 -add china_ip_route 45.255.172.0/22 -add china_ip_route 45.255.176.0/22 -add china_ip_route 45.255.180.0/22 -add china_ip_route 45.255.184.0/22 -add china_ip_route 45.255.188.0/22 -add china_ip_route 45.255.192.0/22 -add china_ip_route 45.255.196.0/22 -add china_ip_route 45.255.200.0/22 -add china_ip_route 45.255.204.0/22 -add china_ip_route 45.255.208.0/22 -add china_ip_route 45.255.212.0/22 -add china_ip_route 45.255.216.0/22 -add china_ip_route 45.255.220.0/22 -add china_ip_route 45.255.224.0/22 -add china_ip_route 45.255.228.0/22 -add china_ip_route 45.255.232.0/22 -add china_ip_route 45.255.236.0/22 -add china_ip_route 45.255.240.0/22 -add china_ip_route 45.255.244.0/22 -add china_ip_route 45.255.248.0/22 -add china_ip_route 47.92.0.0/14 -add china_ip_route 47.96.0.0/11 -add china_ip_route 49.4.0.0/14 -add china_ip_route 49.51.0.0/16 -add china_ip_route 49.52.0.0/14 -add china_ip_route 49.64.0.0/11 -add china_ip_route 49.112.0.0/13 -add china_ip_route 49.120.0.0/14 -add china_ip_route 49.128.0.0/24 -add china_ip_route 49.128.2.0/23 -add china_ip_route 49.128.4.0/22 -add china_ip_route 49.140.0.0/15 -add china_ip_route 49.152.0.0/14 -add china_ip_route 49.208.0.0/15 -add china_ip_route 49.210.0.0/15 -add china_ip_route 49.220.0.0/14 -add china_ip_route 49.232.0.0/14 -add china_ip_route 49.239.0.0/18 -add china_ip_route 49.239.192.0/18 -add china_ip_route 49.246.224.0/19 -add china_ip_route 52.80.0.0/15 -add china_ip_route 52.82.0.0/15 -add china_ip_route 52.130.0.0/15 -add china_ip_route 54.222.0.0/15 -add china_ip_route 58.14.0.0/15 -add china_ip_route 58.16.0.0/16 -add china_ip_route 58.17.0.0/17 -add china_ip_route 58.17.128.0/17 -add china_ip_route 58.18.0.0/16 -add china_ip_route 58.19.0.0/16 -add china_ip_route 58.20.0.0/16 -add china_ip_route 58.21.0.0/16 -add china_ip_route 58.22.0.0/15 -add china_ip_route 58.24.0.0/15 -add china_ip_route 58.30.0.0/15 -add china_ip_route 58.32.0.0/13 -add china_ip_route 58.40.0.0/15 -add china_ip_route 58.42.0.0/16 -add china_ip_route 58.43.0.0/16 -add china_ip_route 58.44.0.0/14 -add china_ip_route 58.48.0.0/13 -add china_ip_route 58.56.0.0/15 -add china_ip_route 58.58.0.0/16 -add china_ip_route 58.59.0.0/17 -add china_ip_route 58.59.128.0/17 -add china_ip_route 58.60.0.0/14 -add china_ip_route 58.65.232.0/21 -add china_ip_route 58.66.0.0/15 -add china_ip_route 58.68.128.0/17 -add china_ip_route 58.82.0.0/17 -add china_ip_route 58.83.0.0/17 -add china_ip_route 58.83.128.0/17 -add china_ip_route 58.87.64.0/18 -add china_ip_route 58.99.128.0/17 -add china_ip_route 58.100.0.0/15 -add china_ip_route 58.116.0.0/14 -add china_ip_route 58.128.0.0/13 -add china_ip_route 58.144.0.0/16 -add china_ip_route 58.154.0.0/15 -add china_ip_route 58.192.0.0/15 -add china_ip_route 58.194.0.0/15 -add china_ip_route 58.196.0.0/15 -add china_ip_route 58.198.0.0/15 -add china_ip_route 58.200.0.0/13 -add china_ip_route 58.208.0.0/12 -add china_ip_route 58.240.0.0/15 -add china_ip_route 58.242.0.0/15 -add china_ip_route 58.244.0.0/15 -add china_ip_route 58.246.0.0/15 -add china_ip_route 58.248.0.0/13 -add china_ip_route 59.32.0.0/13 -add china_ip_route 59.40.0.0/15 -add china_ip_route 59.42.0.0/16 -add china_ip_route 59.43.0.0/16 -add china_ip_route 59.44.0.0/14 -add china_ip_route 59.48.0.0/16 -add china_ip_route 59.49.0.0/17 -add china_ip_route 59.49.128.0/17 -add china_ip_route 59.50.0.0/16 -add china_ip_route 59.51.0.0/17 -add china_ip_route 59.51.128.0/17 -add china_ip_route 59.52.0.0/14 -add china_ip_route 59.56.0.0/14 -add china_ip_route 59.60.0.0/15 -add china_ip_route 59.62.0.0/15 -add china_ip_route 59.64.0.0/14 -add china_ip_route 59.68.0.0/14 -add china_ip_route 59.72.0.0/15 -add china_ip_route 59.74.0.0/15 -add china_ip_route 59.76.0.0/16 -add china_ip_route 59.77.0.0/16 -add china_ip_route 59.78.0.0/15 -add china_ip_route 59.80.0.0/15 -add china_ip_route 59.82.0.0/15 -add china_ip_route 59.107.0.0/17 -add china_ip_route 59.107.128.0/17 -add china_ip_route 59.108.0.0/15 -add china_ip_route 59.110.0.0/15 -add china_ip_route 59.151.0.0/17 -add china_ip_route 59.152.16.0/22 -add china_ip_route 59.152.20.0/22 -add china_ip_route 59.152.24.0/22 -add china_ip_route 59.152.28.0/22 -add china_ip_route 59.152.32.0/22 -add china_ip_route 59.152.36.0/22 -add china_ip_route 59.152.64.0/22 -add china_ip_route 59.152.68.0/22 -add china_ip_route 59.152.72.0/22 -add china_ip_route 59.152.76.0/22 -add china_ip_route 59.152.112.0/22 -add china_ip_route 59.152.116.0/22 -add china_ip_route 59.153.4.0/22 -add china_ip_route 59.153.32.0/22 -add china_ip_route 59.153.60.0/22 -add china_ip_route 59.153.64.0/22 -add china_ip_route 59.153.68.0/22 -add china_ip_route 59.153.72.0/22 -add china_ip_route 59.153.92.0/22 -add china_ip_route 59.153.116.0/22 -add china_ip_route 59.153.136.0/22 -add china_ip_route 59.153.152.0/22 -add china_ip_route 59.153.164.0/22 -add china_ip_route 59.153.168.0/22 -add china_ip_route 59.153.172.0/22 -add china_ip_route 59.153.176.0/22 -add china_ip_route 59.153.180.0/22 -add china_ip_route 59.153.184.0/22 -add china_ip_route 59.153.188.0/22 -add china_ip_route 59.153.192.0/22 -add china_ip_route 59.155.0.0/16 -add china_ip_route 59.172.0.0/15 -add china_ip_route 59.174.0.0/15 -add china_ip_route 59.191.0.0/17 -add china_ip_route 59.192.0.0/10 -add china_ip_route 60.0.0.0/13 -add china_ip_route 60.8.0.0/15 -add china_ip_route 60.10.0.0/16 -add china_ip_route 60.11.0.0/16 -add china_ip_route 60.12.0.0/16 -add china_ip_route 60.13.0.0/18 -add china_ip_route 60.13.64.0/18 -add china_ip_route 60.13.128.0/17 -add china_ip_route 60.14.0.0/15 -add china_ip_route 60.16.0.0/13 -add china_ip_route 60.24.0.0/14 -add china_ip_route 60.28.0.0/15 -add china_ip_route 60.30.0.0/16 -add china_ip_route 60.31.0.0/16 -add china_ip_route 60.55.0.0/16 -add china_ip_route 60.63.0.0/16 -add china_ip_route 60.160.0.0/15 -add china_ip_route 60.162.0.0/15 -add china_ip_route 60.164.0.0/15 -add china_ip_route 60.166.0.0/15 -add china_ip_route 60.168.0.0/13 -add china_ip_route 60.176.0.0/12 -add china_ip_route 60.194.0.0/15 -add china_ip_route 60.200.0.0/14 -add china_ip_route 60.204.0.0/16 -add china_ip_route 60.205.0.0/16 -add china_ip_route 60.206.0.0/15 -add china_ip_route 60.208.0.0/13 -add china_ip_route 60.216.0.0/15 -add china_ip_route 60.218.0.0/15 -add china_ip_route 60.220.0.0/14 -add china_ip_route 60.232.0.0/15 -add china_ip_route 60.235.0.0/16 -add china_ip_route 60.245.128.0/17 -add china_ip_route 60.247.0.0/16 -add china_ip_route 60.252.0.0/16 -add china_ip_route 60.253.128.0/17 -add china_ip_route 60.255.0.0/16 -add china_ip_route 61.4.80.0/22 -add china_ip_route 61.4.84.0/22 -add china_ip_route 61.4.88.0/21 -add china_ip_route 61.4.176.0/20 -add china_ip_route 61.8.160.0/20 -add china_ip_route 61.14.212.0/22 -add china_ip_route 61.14.216.0/22 -add china_ip_route 61.14.220.0/22 -add china_ip_route 61.14.240.0/22 -add china_ip_route 61.14.244.0/22 -add china_ip_route 61.28.0.0/20 -add china_ip_route 61.28.16.0/20 -add china_ip_route 61.28.32.0/19 -add china_ip_route 61.28.64.0/18 -add china_ip_route 61.29.128.0/18 -add china_ip_route 61.29.192.0/19 -add china_ip_route 61.29.224.0/20 -add china_ip_route 61.29.240.0/21 -add china_ip_route 61.29.248.0/22 -add china_ip_route 61.29.254.0/23 -add china_ip_route 61.45.128.0/18 -add china_ip_route 61.45.224.0/20 -add china_ip_route 61.47.128.0/18 -add china_ip_route 61.48.0.0/14 -add china_ip_route 61.52.0.0/15 -add china_ip_route 61.54.0.0/16 -add china_ip_route 61.55.0.0/16 -add china_ip_route 61.87.192.0/18 -add china_ip_route 61.128.0.0/15 -add china_ip_route 61.130.0.0/15 -add china_ip_route 61.132.0.0/16 -add china_ip_route 61.133.0.0/17 -add china_ip_route 61.133.128.0/17 -add china_ip_route 61.134.0.0/18 -add china_ip_route 61.134.64.0/19 -add china_ip_route 61.134.96.0/19 -add china_ip_route 61.134.128.0/18 -add china_ip_route 61.134.192.0/18 -add china_ip_route 61.135.0.0/16 -add china_ip_route 61.136.0.0/18 -add china_ip_route 61.136.64.0/18 -add china_ip_route 61.136.128.0/17 -add china_ip_route 61.137.0.0/17 -add china_ip_route 61.137.128.0/17 -add china_ip_route 61.138.0.0/18 -add china_ip_route 61.138.64.0/18 -add china_ip_route 61.138.128.0/18 -add china_ip_route 61.138.192.0/18 -add china_ip_route 61.139.0.0/17 -add china_ip_route 61.139.128.0/18 -add china_ip_route 61.139.192.0/18 -add china_ip_route 61.140.0.0/14 -add china_ip_route 61.144.0.0/14 -add china_ip_route 61.148.0.0/15 -add china_ip_route 61.150.0.0/15 -add china_ip_route 61.152.0.0/16 -add china_ip_route 61.153.0.0/16 -add china_ip_route 61.154.0.0/15 -add china_ip_route 61.156.0.0/16 -add china_ip_route 61.157.0.0/16 -add china_ip_route 61.158.0.0/17 -add china_ip_route 61.158.128.0/17 -add china_ip_route 61.159.0.0/18 -add china_ip_route 61.159.64.0/18 -add china_ip_route 61.159.128.0/17 -add china_ip_route 61.160.0.0/16 -add china_ip_route 61.161.0.0/18 -add china_ip_route 61.161.64.0/18 -add china_ip_route 61.161.128.0/17 -add china_ip_route 61.162.0.0/16 -add china_ip_route 61.163.0.0/16 -add china_ip_route 61.164.0.0/16 -add china_ip_route 61.165.0.0/16 -add china_ip_route 61.166.0.0/16 -add china_ip_route 61.167.0.0/16 -add china_ip_route 61.168.0.0/16 -add china_ip_route 61.169.0.0/16 -add china_ip_route 61.170.0.0/15 -add china_ip_route 61.172.0.0/14 -add china_ip_route 61.176.0.0/16 -add china_ip_route 61.177.0.0/16 -add china_ip_route 61.178.0.0/16 -add china_ip_route 61.179.0.0/16 -add china_ip_route 61.180.0.0/17 -add china_ip_route 61.180.128.0/17 -add china_ip_route 61.181.0.0/16 -add china_ip_route 61.182.0.0/16 -add china_ip_route 61.183.0.0/16 -add china_ip_route 61.184.0.0/14 -add china_ip_route 61.188.0.0/16 -add china_ip_route 61.189.0.0/17 -add china_ip_route 61.189.128.0/17 -add china_ip_route 61.190.0.0/15 -add china_ip_route 61.232.0.0/14 -add china_ip_route 61.236.0.0/15 -add china_ip_route 61.240.0.0/14 -add china_ip_route 62.234.0.0/16 -add china_ip_route 68.79.0.0/18 -add china_ip_route 69.230.192.0/18 -add china_ip_route 69.231.128.0/18 -add china_ip_route 69.234.192.0/18 -add china_ip_route 69.235.128.0/18 -add china_ip_route 71.131.192.0/18 -add china_ip_route 71.132.0.0/18 -add china_ip_route 71.136.64.0/18 -add china_ip_route 71.137.0.0/18 -add china_ip_route 81.68.0.0/14 -add china_ip_route 82.156.0.0/15 -add china_ip_route 94.191.0.0/17 -add china_ip_route 101.0.0.0/22 -add china_ip_route 101.1.0.0/22 -add china_ip_route 101.2.172.0/22 -add china_ip_route 101.4.0.0/14 -add china_ip_route 101.16.0.0/12 -add china_ip_route 101.33.128.0/17 -add china_ip_route 101.34.0.0/15 -add china_ip_route 101.36.0.0/18 -add china_ip_route 101.36.64.0/19 -add china_ip_route 101.36.128.0/17 -add china_ip_route 101.37.0.0/16 -add china_ip_route 101.38.0.0/15 -add china_ip_route 101.40.0.0/15 -add china_ip_route 101.42.0.0/15 -add china_ip_route 101.45.0.0/16 -add china_ip_route 101.46.0.0/15 -add china_ip_route 101.48.0.0/15 -add china_ip_route 101.50.8.0/22 -add china_ip_route 101.50.12.0/22 -add china_ip_route 101.50.56.0/22 -add china_ip_route 101.52.0.0/16 -add china_ip_route 101.53.100.0/22 -add china_ip_route 101.54.0.0/16 -add china_ip_route 101.55.224.0/21 -add china_ip_route 101.64.0.0/13 -add china_ip_route 101.72.0.0/14 -add china_ip_route 101.76.0.0/15 -add china_ip_route 101.78.0.0/22 -add china_ip_route 101.78.32.0/19 -add china_ip_route 101.80.0.0/12 -add china_ip_route 101.96.0.0/21 -add china_ip_route 101.96.8.0/22 -add china_ip_route 101.96.16.0/20 -add china_ip_route 101.96.128.0/17 -add china_ip_route 101.99.96.0/19 -add china_ip_route 101.101.64.0/19 -add china_ip_route 101.101.100.0/24 -add china_ip_route 101.101.102.0/23 -add china_ip_route 101.101.104.0/21 -add china_ip_route 101.101.112.0/20 -add china_ip_route 101.102.64.0/19 -add china_ip_route 101.102.100.0/23 -add china_ip_route 101.102.102.0/24 -add china_ip_route 101.102.104.0/21 -add china_ip_route 101.102.112.0/20 -add china_ip_route 101.104.0.0/14 -add china_ip_route 101.110.64.0/19 -add china_ip_route 101.110.96.0/20 -add china_ip_route 101.110.116.0/22 -add china_ip_route 101.110.120.0/21 -add china_ip_route 101.120.0.0/14 -add china_ip_route 101.124.0.0/15 -add china_ip_route 101.126.0.0/16 -add china_ip_route 101.128.0.0/22 -add china_ip_route 101.128.8.0/21 -add china_ip_route 101.128.16.0/20 -add china_ip_route 101.128.32.0/19 -add china_ip_route 101.129.0.0/16 -add china_ip_route 101.130.0.0/15 -add china_ip_route 101.132.0.0/14 -add china_ip_route 101.144.0.0/12 -add china_ip_route 101.192.0.0/14 -add china_ip_route 101.196.0.0/16 -add china_ip_route 101.197.0.0/16 -add china_ip_route 101.198.0.0/15 -add china_ip_route 101.200.0.0/15 -add china_ip_route 101.203.128.0/19 -add china_ip_route 101.203.160.0/21 -add china_ip_route 101.203.172.0/22 -add china_ip_route 101.203.176.0/20 -add china_ip_route 101.204.0.0/14 -add china_ip_route 101.224.0.0/13 -add china_ip_route 101.232.0.0/15 -add china_ip_route 101.234.64.0/21 -add china_ip_route 101.234.76.0/22 -add china_ip_route 101.234.80.0/20 -add china_ip_route 101.234.96.0/19 -add china_ip_route 101.236.0.0/14 -add china_ip_route 101.240.0.0/14 -add china_ip_route 101.244.0.0/16 -add china_ip_route 101.245.0.0/16 -add china_ip_route 101.246.0.0/15 -add china_ip_route 101.248.0.0/15 -add china_ip_route 101.251.0.0/22 -add china_ip_route 101.251.8.0/21 -add china_ip_route 101.251.16.0/20 -add china_ip_route 101.251.32.0/19 -add china_ip_route 101.251.64.0/18 -add china_ip_route 101.251.128.0/17 -add china_ip_route 101.252.0.0/15 -add china_ip_route 101.254.0.0/16 -add china_ip_route 103.1.8.0/22 -add china_ip_route 103.1.20.0/22 -add china_ip_route 103.1.24.0/22 -add china_ip_route 103.1.72.0/22 -add china_ip_route 103.1.88.0/22 -add china_ip_route 103.1.168.0/22 -add china_ip_route 103.2.108.0/22 -add china_ip_route 103.2.156.0/22 -add china_ip_route 103.2.164.0/22 -add china_ip_route 103.2.200.0/22 -add china_ip_route 103.2.204.0/22 -add china_ip_route 103.2.208.0/22 -add china_ip_route 103.2.212.0/22 -add china_ip_route 103.3.84.0/22 -add china_ip_route 103.3.88.0/22 -add china_ip_route 103.3.92.0/22 -add china_ip_route 103.3.96.0/22 -add china_ip_route 103.3.100.0/22 -add china_ip_route 103.3.104.0/22 -add china_ip_route 103.3.108.0/22 -add china_ip_route 103.3.112.0/22 -add china_ip_route 103.3.116.0/22 -add china_ip_route 103.3.120.0/22 -add china_ip_route 103.3.124.0/22 -add china_ip_route 103.3.128.0/22 -add china_ip_route 103.3.132.0/22 -add china_ip_route 103.3.136.0/22 -add china_ip_route 103.3.140.0/22 -add china_ip_route 103.3.148.0/22 -add china_ip_route 103.3.152.0/22 -add china_ip_route 103.3.156.0/22 -add china_ip_route 103.4.56.0/22 -add china_ip_route 103.4.168.0/22 -add china_ip_route 103.4.184.0/22 -add china_ip_route 103.4.224.0/22 -add china_ip_route 103.5.36.0/22 -add china_ip_route 103.5.52.0/22 -add china_ip_route 103.5.56.0/22 -add china_ip_route 103.5.152.0/22 -add china_ip_route 103.5.168.0/22 -add china_ip_route 103.5.192.0/22 -add china_ip_route 103.5.252.0/22 -add china_ip_route 103.6.76.0/22 -add china_ip_route 103.6.108.0/22 -add china_ip_route 103.6.220.0/22 -add china_ip_route 103.6.228.0/22 -add china_ip_route 103.7.28.0/22 -add china_ip_route 103.7.140.0/22 -add china_ip_route 103.7.212.0/22 -add china_ip_route 103.7.216.0/22 -add china_ip_route 103.7.220.0/22 -add china_ip_route 103.8.0.0/22 -add china_ip_route 103.8.4.0/22 -add china_ip_route 103.8.8.0/22 -add china_ip_route 103.8.32.0/22 -add china_ip_route 103.8.52.0/22 -add china_ip_route 103.8.68.0/22 -add china_ip_route 103.8.108.0/22 -add china_ip_route 103.8.156.0/22 -add china_ip_route 103.8.200.0/22 -add china_ip_route 103.8.204.0/22 -add china_ip_route 103.8.220.0/22 -add china_ip_route 103.9.8.0/22 -add china_ip_route 103.9.24.0/22 -add china_ip_route 103.9.108.0/22 -add china_ip_route 103.9.152.0/22 -add china_ip_route 103.9.192.0/22 -add china_ip_route 103.9.248.0/22 -add china_ip_route 103.9.252.0/22 -add china_ip_route 103.10.0.0/22 -add china_ip_route 103.10.16.0/22 -add china_ip_route 103.10.84.0/22 -add china_ip_route 103.10.140.0/22 -add china_ip_route 103.11.16.0/22 -add china_ip_route 103.11.168.0/22 -add china_ip_route 103.11.180.0/22 -add china_ip_route 103.12.32.0/22 -add china_ip_route 103.12.68.0/22 -add china_ip_route 103.12.92.0/22 -add china_ip_route 103.12.136.0/22 -add china_ip_route 103.12.184.0/22 -add china_ip_route 103.12.232.0/22 -add china_ip_route 103.13.12.0/22 -add china_ip_route 103.13.124.0/22 -add china_ip_route 103.13.144.0/22 -add china_ip_route 103.13.196.0/22 -add china_ip_route 103.13.220.0/22 -add china_ip_route 103.13.244.0/22 -add china_ip_route 103.14.84.0/22 -add china_ip_route 103.14.100.0/22 -add china_ip_route 103.14.132.0/22 -add china_ip_route 103.14.136.0/22 -add china_ip_route 103.14.156.0/22 -add china_ip_route 103.14.240.0/22 -add china_ip_route 103.15.4.0/22 -add china_ip_route 103.15.8.0/22 -add china_ip_route 103.15.16.0/22 -add china_ip_route 103.15.96.0/22 -add china_ip_route 103.15.200.0/22 -add china_ip_route 103.16.52.0/22 -add china_ip_route 103.16.80.0/22 -add china_ip_route 103.16.84.0/22 -add china_ip_route 103.16.88.0/22 -add china_ip_route 103.16.108.0/22 -add china_ip_route 103.16.124.0/22 -add china_ip_route 103.17.40.0/22 -add china_ip_route 103.17.64.0/22 -add china_ip_route 103.17.120.0/22 -add china_ip_route 103.17.136.0/22 -add china_ip_route 103.17.160.0/22 -add china_ip_route 103.17.204.0/22 -add china_ip_route 103.17.228.0/22 -add china_ip_route 103.18.192.0/22 -add china_ip_route 103.18.208.0/22 -add china_ip_route 103.18.212.0/22 -add china_ip_route 103.18.224.0/22 -add china_ip_route 103.19.12.0/22 -add china_ip_route 103.19.40.0/22 -add china_ip_route 103.19.44.0/22 -add china_ip_route 103.19.64.0/22 -add china_ip_route 103.19.68.0/22 -add china_ip_route 103.19.72.0/22 -add china_ip_route 103.19.232.0/22 -add china_ip_route 103.20.12.0/22 -add china_ip_route 103.20.32.0/22 -add china_ip_route 103.20.44.0/22 -add china_ip_route 103.20.68.0/22 -add china_ip_route 103.20.112.0/22 -add china_ip_route 103.20.128.0/22 -add china_ip_route 103.20.160.0/22 -add china_ip_route 103.20.248.0/22 -add china_ip_route 103.21.112.0/22 -add china_ip_route 103.21.116.0/22 -add china_ip_route 103.21.136.0/22 -add china_ip_route 103.21.140.0/22 -add china_ip_route 103.21.176.0/22 -add china_ip_route 103.21.208.0/22 -add china_ip_route 103.21.240.0/22 -add china_ip_route 103.22.0.0/22 -add china_ip_route 103.22.4.0/22 -add china_ip_route 103.22.8.0/22 -add china_ip_route 103.22.12.0/22 -add china_ip_route 103.22.16.0/22 -add china_ip_route 103.22.20.0/22 -add china_ip_route 103.22.24.0/22 -add china_ip_route 103.22.28.0/22 -add china_ip_route 103.22.32.0/22 -add china_ip_route 103.22.36.0/22 -add china_ip_route 103.22.40.0/22 -add china_ip_route 103.22.44.0/22 -add china_ip_route 103.22.48.0/22 -add china_ip_route 103.22.52.0/22 -add china_ip_route 103.22.56.0/22 -add china_ip_route 103.22.60.0/22 -add china_ip_route 103.22.64.0/22 -add china_ip_route 103.22.68.0/22 -add china_ip_route 103.22.72.0/22 -add china_ip_route 103.22.76.0/22 -add china_ip_route 103.22.80.0/22 -add china_ip_route 103.22.84.0/22 -add china_ip_route 103.22.88.0/22 -add china_ip_route 103.22.92.0/22 -add china_ip_route 103.22.100.0/22 -add china_ip_route 103.22.104.0/22 -add china_ip_route 103.22.108.0/22 -add china_ip_route 103.22.112.0/22 -add china_ip_route 103.22.116.0/22 -add china_ip_route 103.22.120.0/22 -add china_ip_route 103.22.124.0/22 -add china_ip_route 103.22.188.0/22 -add china_ip_route 103.22.228.0/22 -add china_ip_route 103.22.252.0/22 -add china_ip_route 103.23.8.0/22 -add china_ip_route 103.23.56.0/22 -add china_ip_route 103.23.160.0/22 -add china_ip_route 103.23.164.0/22 -add china_ip_route 103.23.176.0/22 -add china_ip_route 103.23.228.0/22 -add china_ip_route 103.24.24.0/22 -add china_ip_route 103.24.116.0/22 -add china_ip_route 103.24.128.0/22 -add china_ip_route 103.24.144.0/22 -add china_ip_route 103.24.176.0/22 -add china_ip_route 103.24.184.0/22 -add china_ip_route 103.24.220.0/22 -add china_ip_route 103.24.228.0/22 -add china_ip_route 103.24.248.0/22 -add china_ip_route 103.24.252.0/22 -add china_ip_route 103.25.8.0/23 -add china_ip_route 103.25.20.0/22 -add china_ip_route 103.25.24.0/22 -add china_ip_route 103.25.28.0/22 -add china_ip_route 103.25.32.0/22 -add china_ip_route 103.25.36.0/22 -add china_ip_route 103.25.40.0/22 -add china_ip_route 103.25.48.0/22 -add china_ip_route 103.25.64.0/22 -add china_ip_route 103.25.68.0/22 -add china_ip_route 103.25.148.0/22 -add china_ip_route 103.25.156.0/22 -add china_ip_route 103.25.216.0/22 -add china_ip_route 103.26.0.0/22 -add china_ip_route 103.26.64.0/22 -add china_ip_route 103.26.76.0/22 -add china_ip_route 103.26.132.0/22 -add china_ip_route 103.26.156.0/22 -add china_ip_route 103.26.160.0/22 -add china_ip_route 103.26.228.0/22 -add china_ip_route 103.26.240.0/22 -add china_ip_route 103.27.4.0/22 -add china_ip_route 103.27.12.0/22 -add china_ip_route 103.27.24.0/22 -add china_ip_route 103.27.56.0/22 -add china_ip_route 103.27.96.0/22 -add china_ip_route 103.27.184.0/22 -add china_ip_route 103.27.208.0/22 -add china_ip_route 103.27.212.0/22 -add china_ip_route 103.27.240.0/22 -add china_ip_route 103.28.4.0/22 -add china_ip_route 103.28.8.0/22 -add china_ip_route 103.28.184.0/22 -add china_ip_route 103.28.204.0/22 -add china_ip_route 103.28.212.0/22 -add china_ip_route 103.29.16.0/22 -add china_ip_route 103.29.128.0/22 -add china_ip_route 103.29.132.0/22 -add china_ip_route 103.29.136.0/22 -add china_ip_route 103.30.20.0/22 -add china_ip_route 103.30.96.0/22 -add china_ip_route 103.30.148.0/22 -add china_ip_route 103.30.200.0/22 -add china_ip_route 103.30.228.0/22 -add china_ip_route 103.30.236.0/22 -add china_ip_route 103.31.0.0/22 -add china_ip_route 103.31.48.0/22 -add china_ip_route 103.31.52.0/22 -add china_ip_route 103.31.56.0/22 -add china_ip_route 103.31.60.0/22 -add china_ip_route 103.31.64.0/22 -add china_ip_route 103.31.68.0/22 -add china_ip_route 103.31.148.0/22 -add china_ip_route 103.31.160.0/22 -add china_ip_route 103.31.168.0/22 -add china_ip_route 103.31.200.0/22 -add china_ip_route 103.31.236.0/22 -add china_ip_route 103.32.0.0/22 -add china_ip_route 103.32.4.0/22 -add china_ip_route 103.32.8.0/22 -add china_ip_route 103.32.12.0/22 -add china_ip_route 103.32.16.0/22 -add china_ip_route 103.32.20.0/22 -add china_ip_route 103.32.24.0/22 -add china_ip_route 103.32.28.0/22 -add china_ip_route 103.32.32.0/22 -add china_ip_route 103.32.36.0/22 -add china_ip_route 103.32.40.0/22 -add china_ip_route 103.32.44.0/22 -add china_ip_route 103.32.48.0/22 -add china_ip_route 103.32.52.0/22 -add china_ip_route 103.32.56.0/22 -add china_ip_route 103.32.60.0/22 -add china_ip_route 103.32.64.0/22 -add china_ip_route 103.32.68.0/22 -add china_ip_route 103.32.72.0/22 -add china_ip_route 103.32.76.0/22 -add china_ip_route 103.32.80.0/22 -add china_ip_route 103.32.84.0/22 -add china_ip_route 103.32.88.0/22 -add china_ip_route 103.32.92.0/22 -add china_ip_route 103.32.96.0/22 -add china_ip_route 103.32.100.0/22 -add china_ip_route 103.32.104.0/22 -add china_ip_route 103.32.108.0/22 -add china_ip_route 103.32.112.0/22 -add china_ip_route 103.32.116.0/22 -add china_ip_route 103.32.120.0/22 -add china_ip_route 103.32.124.0/22 -add china_ip_route 103.32.128.0/22 -add china_ip_route 103.32.132.0/22 -add china_ip_route 103.32.136.0/22 -add china_ip_route 103.32.140.0/22 -add china_ip_route 103.32.144.0/22 -add china_ip_route 103.32.148.0/22 -add china_ip_route 103.32.152.0/22 -add china_ip_route 103.32.156.0/22 -add china_ip_route 103.32.160.0/22 -add china_ip_route 103.32.164.0/22 -add china_ip_route 103.32.168.0/22 -add china_ip_route 103.32.172.0/22 -add china_ip_route 103.32.176.0/22 -add china_ip_route 103.32.180.0/22 -add china_ip_route 103.32.184.0/22 -add china_ip_route 103.32.188.0/22 -add china_ip_route 103.32.192.0/22 -add china_ip_route 103.32.196.0/22 -add china_ip_route 103.32.200.0/22 -add china_ip_route 103.32.204.0/22 -add china_ip_route 103.32.208.0/22 -add china_ip_route 103.32.212.0/22 -add china_ip_route 103.32.216.0/22 -add china_ip_route 103.32.220.0/22 -add china_ip_route 103.32.224.0/22 -add china_ip_route 103.32.228.0/22 -add china_ip_route 103.32.232.0/22 -add china_ip_route 103.32.236.0/22 -add china_ip_route 103.32.240.0/22 -add china_ip_route 103.32.244.0/22 -add china_ip_route 103.32.248.0/22 -add china_ip_route 103.32.252.0/22 -add china_ip_route 103.33.0.0/22 -add china_ip_route 103.33.4.0/22 -add china_ip_route 103.33.8.0/22 -add china_ip_route 103.33.12.0/22 -add china_ip_route 103.33.16.0/22 -add china_ip_route 103.33.20.0/22 -add china_ip_route 103.33.24.0/22 -add china_ip_route 103.33.28.0/22 -add china_ip_route 103.33.32.0/22 -add china_ip_route 103.33.36.0/22 -add china_ip_route 103.33.40.0/22 -add china_ip_route 103.33.44.0/22 -add china_ip_route 103.33.48.0/22 -add china_ip_route 103.33.52.0/22 -add china_ip_route 103.33.56.0/22 -add china_ip_route 103.33.60.0/22 -add china_ip_route 103.33.64.0/22 -add china_ip_route 103.33.68.0/22 -add china_ip_route 103.33.72.0/22 -add china_ip_route 103.33.76.0/22 -add china_ip_route 103.33.80.0/22 -add china_ip_route 103.33.84.0/22 -add china_ip_route 103.33.88.0/22 -add china_ip_route 103.33.92.0/22 -add china_ip_route 103.33.96.0/22 -add china_ip_route 103.33.100.0/22 -add china_ip_route 103.33.104.0/22 -add china_ip_route 103.33.108.0/22 -add china_ip_route 103.33.112.0/22 -add china_ip_route 103.33.116.0/22 -add china_ip_route 103.33.120.0/22 -add china_ip_route 103.33.124.0/22 -add china_ip_route 103.33.128.0/22 -add china_ip_route 103.33.132.0/22 -add china_ip_route 103.33.136.0/22 -add china_ip_route 103.33.140.0/22 -add china_ip_route 103.33.144.0/22 -add china_ip_route 103.33.148.0/22 -add china_ip_route 103.33.152.0/22 -add china_ip_route 103.33.156.0/22 -add china_ip_route 103.33.160.0/22 -add china_ip_route 103.33.164.0/22 -add china_ip_route 103.33.168.0/22 -add china_ip_route 103.33.172.0/22 -add china_ip_route 103.33.176.0/22 -add china_ip_route 103.33.180.0/22 -add china_ip_route 103.33.184.0/22 -add china_ip_route 103.33.188.0/22 -add china_ip_route 103.33.192.0/22 -add china_ip_route 103.33.196.0/22 -add china_ip_route 103.33.200.0/22 -add china_ip_route 103.33.204.0/22 -add china_ip_route 103.33.208.0/22 -add china_ip_route 103.33.212.0/22 -add china_ip_route 103.33.216.0/22 -add china_ip_route 103.33.220.0/22 -add china_ip_route 103.33.224.0/22 -add china_ip_route 103.33.228.0/22 -add china_ip_route 103.33.232.0/22 -add china_ip_route 103.33.236.0/22 -add china_ip_route 103.33.240.0/22 -add china_ip_route 103.33.244.0/22 -add china_ip_route 103.33.248.0/22 -add china_ip_route 103.33.252.0/22 -add china_ip_route 103.34.0.0/22 -add china_ip_route 103.34.4.0/22 -add china_ip_route 103.34.8.0/22 -add china_ip_route 103.34.12.0/22 -add china_ip_route 103.34.16.0/22 -add china_ip_route 103.34.20.0/22 -add china_ip_route 103.34.24.0/22 -add china_ip_route 103.34.28.0/22 -add china_ip_route 103.34.32.0/22 -add china_ip_route 103.34.36.0/22 -add china_ip_route 103.34.40.0/22 -add china_ip_route 103.34.44.0/22 -add china_ip_route 103.34.48.0/22 -add china_ip_route 103.34.52.0/22 -add china_ip_route 103.34.56.0/22 -add china_ip_route 103.34.60.0/22 -add china_ip_route 103.34.64.0/22 -add china_ip_route 103.34.68.0/22 -add china_ip_route 103.34.72.0/22 -add china_ip_route 103.34.76.0/22 -add china_ip_route 103.34.80.0/22 -add china_ip_route 103.34.84.0/22 -add china_ip_route 103.34.88.0/22 -add china_ip_route 103.34.92.0/22 -add china_ip_route 103.34.96.0/22 -add china_ip_route 103.34.100.0/22 -add china_ip_route 103.34.104.0/22 -add china_ip_route 103.34.108.0/22 -add china_ip_route 103.34.112.0/22 -add china_ip_route 103.34.116.0/22 -add china_ip_route 103.34.120.0/22 -add china_ip_route 103.34.124.0/22 -add china_ip_route 103.34.128.0/22 -add china_ip_route 103.34.132.0/22 -add china_ip_route 103.34.136.0/22 -add china_ip_route 103.34.140.0/22 -add china_ip_route 103.34.144.0/22 -add china_ip_route 103.34.148.0/22 -add china_ip_route 103.34.152.0/22 -add china_ip_route 103.34.156.0/22 -add china_ip_route 103.34.160.0/22 -add china_ip_route 103.34.164.0/22 -add china_ip_route 103.34.168.0/22 -add china_ip_route 103.34.172.0/22 -add china_ip_route 103.34.176.0/22 -add china_ip_route 103.34.180.0/22 -add china_ip_route 103.34.184.0/22 -add china_ip_route 103.34.188.0/22 -add china_ip_route 103.34.192.0/22 -add china_ip_route 103.34.196.0/22 -add china_ip_route 103.34.200.0/22 -add china_ip_route 103.34.204.0/22 -add china_ip_route 103.34.208.0/22 -add china_ip_route 103.34.212.0/22 -add china_ip_route 103.34.216.0/22 -add china_ip_route 103.34.220.0/22 -add china_ip_route 103.34.224.0/22 -add china_ip_route 103.34.228.0/22 -add china_ip_route 103.34.232.0/22 -add china_ip_route 103.34.236.0/22 -add china_ip_route 103.34.240.0/22 -add china_ip_route 103.34.244.0/22 -add china_ip_route 103.34.248.0/22 -add china_ip_route 103.34.252.0/22 -add china_ip_route 103.35.0.0/22 -add china_ip_route 103.35.4.0/22 -add china_ip_route 103.35.8.0/22 -add china_ip_route 103.35.12.0/22 -add china_ip_route 103.35.16.0/22 -add china_ip_route 103.35.20.0/22 -add china_ip_route 103.35.24.0/22 -add china_ip_route 103.35.28.0/22 -add china_ip_route 103.35.32.0/22 -add china_ip_route 103.35.36.0/22 -add china_ip_route 103.35.40.0/22 -add china_ip_route 103.35.44.0/22 -add china_ip_route 103.35.48.0/22 -add china_ip_route 103.35.104.0/22 -add china_ip_route 103.35.116.0/22 -add china_ip_route 103.35.180.0/22 -add china_ip_route 103.35.200.0/22 -add china_ip_route 103.35.220.0/22 -add china_ip_route 103.36.28.0/22 -add china_ip_route 103.36.36.0/22 -add china_ip_route 103.36.56.0/22 -add china_ip_route 103.36.60.0/22 -add china_ip_route 103.36.64.0/22 -add china_ip_route 103.36.72.0/22 -add china_ip_route 103.36.96.0/22 -add china_ip_route 103.36.132.0/22 -add china_ip_route 103.36.136.0/22 -add china_ip_route 103.36.160.0/22 -add china_ip_route 103.36.164.0/22 -add china_ip_route 103.36.168.0/22 -add china_ip_route 103.36.172.0/22 -add china_ip_route 103.36.176.0/22 -add china_ip_route 103.36.180.0/22 -add china_ip_route 103.36.184.0/22 -add china_ip_route 103.36.188.0/22 -add china_ip_route 103.36.192.0/22 -add china_ip_route 103.36.196.0/22 -add china_ip_route 103.36.200.0/22 -add china_ip_route 103.36.204.0/22 -add china_ip_route 103.36.208.0/22 -add china_ip_route 103.36.212.0/22 -add china_ip_route 103.36.216.0/22 -add china_ip_route 103.36.220.0/22 -add china_ip_route 103.36.224.0/22 -add china_ip_route 103.36.228.0/22 -add china_ip_route 103.36.232.0/22 -add china_ip_route 103.36.236.0/22 -add china_ip_route 103.36.240.0/22 -add china_ip_route 103.36.244.0/22 -add china_ip_route 103.37.12.0/22 -add china_ip_route 103.37.16.0/22 -add china_ip_route 103.37.24.0/22 -add china_ip_route 103.37.44.0/22 -add china_ip_route 103.37.52.0/22 -add china_ip_route 103.37.56.0/22 -add china_ip_route 103.37.72.0/22 -add china_ip_route 103.37.100.0/22 -add china_ip_route 103.37.104.0/22 -add china_ip_route 103.37.136.0/22 -add china_ip_route 103.37.140.0/22 -add china_ip_route 103.37.144.0/22 -add china_ip_route 103.37.148.0/22 -add china_ip_route 103.37.152.0/22 -add china_ip_route 103.37.156.0/22 -add china_ip_route 103.37.160.0/22 -add china_ip_route 103.37.164.0/22 -add china_ip_route 103.37.172.0/22 -add china_ip_route 103.37.176.0/22 -add china_ip_route 103.37.188.0/22 -add china_ip_route 103.37.208.0/22 -add china_ip_route 103.37.212.0/22 -add china_ip_route 103.37.216.0/22 -add china_ip_route 103.37.220.0/22 -add china_ip_route 103.37.248.0/22 -add china_ip_route 103.37.252.0/22 -add china_ip_route 103.38.0.0/22 -add china_ip_route 103.38.32.0/22 -add china_ip_route 103.38.40.0/22 -add china_ip_route 103.38.44.0/22 -add china_ip_route 103.38.56.0/22 -add china_ip_route 103.38.76.0/22 -add china_ip_route 103.38.84.0/22 -add china_ip_route 103.38.92.0/22 -add china_ip_route 103.38.96.0/22 -add china_ip_route 103.38.116.0/22 -add china_ip_route 103.38.132.0/22 -add china_ip_route 103.38.140.0/22 -add china_ip_route 103.38.224.0/22 -add china_ip_route 103.38.228.0/22 -add china_ip_route 103.38.232.0/22 -add china_ip_route 103.39.64.0/22 -add china_ip_route 103.39.88.0/22 -add china_ip_route 103.39.100.0/22 -add china_ip_route 103.39.104.0/22 -add china_ip_route 103.39.108.0/22 -add china_ip_route 103.39.160.0/22 -add china_ip_route 103.39.164.0/22 -add china_ip_route 103.39.168.0/22 -add china_ip_route 103.39.172.0/22 -add china_ip_route 103.39.176.0/22 -add china_ip_route 103.39.180.0/22 -add china_ip_route 103.39.184.0/22 -add china_ip_route 103.39.188.0/22 -add china_ip_route 103.39.200.0/22 -add china_ip_route 103.39.204.0/22 -add china_ip_route 103.39.208.0/22 -add china_ip_route 103.39.212.0/22 -add china_ip_route 103.39.216.0/22 -add china_ip_route 103.39.220.0/22 -add china_ip_route 103.39.224.0/22 -add china_ip_route 103.39.228.0/22 -add china_ip_route 103.39.232.0/22 -add china_ip_route 103.40.12.0/22 -add china_ip_route 103.40.16.0/22 -add china_ip_route 103.40.20.0/22 -add china_ip_route 103.40.24.0/22 -add china_ip_route 103.40.28.0/22 -add china_ip_route 103.40.32.0/22 -add china_ip_route 103.40.36.0/22 -add china_ip_route 103.40.40.0/22 -add china_ip_route 103.40.44.0/22 -add china_ip_route 103.40.88.0/22 -add china_ip_route 103.40.100.0/22 -add china_ip_route 103.40.192.0/22 -add china_ip_route 103.40.212.0/22 -add china_ip_route 103.40.220.0/22 -add china_ip_route 103.40.228.0/22 -add china_ip_route 103.40.232.0/22 -add china_ip_route 103.40.236.0/22 -add china_ip_route 103.40.240.0/22 -add china_ip_route 103.40.244.0/22 -add china_ip_route 103.40.248.0/22 -add china_ip_route 103.40.252.0/22 -add china_ip_route 103.41.0.0/22 -add china_ip_route 103.41.16.0/22 -add china_ip_route 103.41.52.0/22 -add china_ip_route 103.41.116.0/22 -add china_ip_route 103.41.140.0/22 -add china_ip_route 103.41.148.0/22 -add china_ip_route 103.41.152.0/22 -add china_ip_route 103.41.160.0/22 -add china_ip_route 103.41.164.0/22 -add china_ip_route 103.41.220.0/22 -add china_ip_route 103.41.224.0/22 -add china_ip_route 103.41.228.0/22 -add china_ip_route 103.41.232.0/22 -add china_ip_route 103.42.8.0/22 -add china_ip_route 103.42.24.0/22 -add china_ip_route 103.42.28.0/22 -add china_ip_route 103.42.32.0/22 -add china_ip_route 103.42.64.0/22 -add china_ip_route 103.42.68.0/22 -add china_ip_route 103.42.76.0/22 -add china_ip_route 103.42.104.0/22 -add china_ip_route 103.42.180.0/22 -add china_ip_route 103.42.232.0/22 -add china_ip_route 103.43.16.0/22 -add china_ip_route 103.43.84.0/22 -add china_ip_route 103.43.96.0/22 -add china_ip_route 103.43.100.0/22 -add china_ip_route 103.43.104.0/22 -add china_ip_route 103.43.124.0/22 -add china_ip_route 103.43.184.0/22 -add china_ip_route 103.43.192.0/22 -add china_ip_route 103.43.196.0/22 -add china_ip_route 103.43.208.0/22 -add china_ip_route 103.43.220.0/22 -add china_ip_route 103.43.224.0/22 -add china_ip_route 103.43.240.0/22 -add china_ip_route 103.44.56.0/22 -add china_ip_route 103.44.80.0/22 -add china_ip_route 103.44.88.0/22 -add china_ip_route 103.44.120.0/22 -add china_ip_route 103.44.124.0/22 -add china_ip_route 103.44.132.0/22 -add china_ip_route 103.44.144.0/22 -add china_ip_route 103.44.168.0/22 -add china_ip_route 103.44.176.0/22 -add china_ip_route 103.44.180.0/22 -add china_ip_route 103.44.184.0/22 -add china_ip_route 103.44.188.0/22 -add china_ip_route 103.44.192.0/22 -add china_ip_route 103.44.196.0/22 -add china_ip_route 103.44.200.0/22 -add china_ip_route 103.44.204.0/22 -add china_ip_route 103.44.224.0/22 -add china_ip_route 103.44.236.0/22 -add china_ip_route 103.44.240.0/22 -add china_ip_route 103.44.244.0/22 -add china_ip_route 103.44.248.0/22 -add china_ip_route 103.44.252.0/22 -add china_ip_route 103.45.0.0/22 -add china_ip_route 103.45.4.0/22 -add china_ip_route 103.45.8.0/22 -add china_ip_route 103.45.12.0/22 -add china_ip_route 103.45.16.0/22 -add china_ip_route 103.45.20.0/22 -add china_ip_route 103.45.24.0/22 -add china_ip_route 103.45.28.0/22 -add china_ip_route 103.45.32.0/22 -add china_ip_route 103.45.36.0/22 -add china_ip_route 103.45.40.0/22 -add china_ip_route 103.45.44.0/22 -add china_ip_route 103.45.48.0/22 -add china_ip_route 103.45.52.0/22 -add china_ip_route 103.45.56.0/22 -add china_ip_route 103.45.60.0/22 -add china_ip_route 103.45.72.0/22 -add china_ip_route 103.45.76.0/22 -add china_ip_route 103.45.80.0/22 -add china_ip_route 103.45.84.0/22 -add china_ip_route 103.45.88.0/22 -add china_ip_route 103.45.92.0/22 -add china_ip_route 103.45.96.0/22 -add china_ip_route 103.45.100.0/22 -add china_ip_route 103.45.104.0/22 -add china_ip_route 103.45.108.0/22 -add china_ip_route 103.45.112.0/22 -add china_ip_route 103.45.116.0/22 -add china_ip_route 103.45.120.0/22 -add china_ip_route 103.45.124.0/22 -add china_ip_route 103.45.128.0/22 -add china_ip_route 103.45.132.0/22 -add china_ip_route 103.45.136.0/22 -add china_ip_route 103.45.140.0/22 -add china_ip_route 103.45.144.0/22 -add china_ip_route 103.45.148.0/22 -add china_ip_route 103.45.152.0/22 -add china_ip_route 103.45.156.0/22 -add china_ip_route 103.45.160.0/22 -add china_ip_route 103.45.164.0/22 -add china_ip_route 103.45.168.0/22 -add china_ip_route 103.45.172.0/22 -add china_ip_route 103.45.176.0/22 -add china_ip_route 103.45.180.0/22 -add china_ip_route 103.45.184.0/22 -add china_ip_route 103.45.188.0/22 -add china_ip_route 103.45.192.0/22 -add china_ip_route 103.45.196.0/22 -add china_ip_route 103.45.200.0/22 -add china_ip_route 103.45.204.0/22 -add china_ip_route 103.45.208.0/22 -add china_ip_route 103.45.212.0/22 -add china_ip_route 103.45.216.0/22 -add china_ip_route 103.45.220.0/22 -add china_ip_route 103.45.224.0/22 -add china_ip_route 103.45.248.0/22 -add china_ip_route 103.46.0.0/22 -add china_ip_route 103.46.12.0/22 -add china_ip_route 103.46.16.0/22 -add china_ip_route 103.46.20.0/22 -add china_ip_route 103.46.24.0/22 -add china_ip_route 103.46.28.0/22 -add china_ip_route 103.46.32.0/22 -add china_ip_route 103.46.36.0/22 -add china_ip_route 103.46.40.0/22 -add china_ip_route 103.46.44.0/22 -add china_ip_route 103.46.48.0/22 -add china_ip_route 103.46.52.0/22 -add china_ip_route 103.46.56.0/22 -add china_ip_route 103.46.60.0/22 -add china_ip_route 103.46.64.0/22 -add china_ip_route 103.46.68.0/22 -add china_ip_route 103.46.72.0/22 -add china_ip_route 103.46.76.0/22 -add china_ip_route 103.46.80.0/22 -add china_ip_route 103.46.84.0/22 -add china_ip_route 103.46.88.0/22 -add china_ip_route 103.46.92.0/22 -add china_ip_route 103.46.96.0/22 -add china_ip_route 103.46.100.0/22 -add china_ip_route 103.46.104.0/22 -add china_ip_route 103.46.108.0/22 -add china_ip_route 103.46.112.0/22 -add china_ip_route 103.46.116.0/22 -add china_ip_route 103.46.120.0/22 -add china_ip_route 103.46.124.0/22 -add china_ip_route 103.46.128.0/22 -add china_ip_route 103.46.132.0/22 -add china_ip_route 103.46.136.0/22 -add china_ip_route 103.46.152.0/22 -add china_ip_route 103.46.156.0/22 -add china_ip_route 103.46.160.0/22 -add china_ip_route 103.46.164.0/22 -add china_ip_route 103.46.168.0/22 -add china_ip_route 103.46.172.0/22 -add china_ip_route 103.46.176.0/22 -add china_ip_route 103.46.180.0/22 -add china_ip_route 103.46.244.0/22 -add china_ip_route 103.46.248.0/22 -add china_ip_route 103.47.4.0/22 -add china_ip_route 103.47.20.0/22 -add china_ip_route 103.47.36.0/22 -add china_ip_route 103.47.40.0/22 -add china_ip_route 103.47.48.0/22 -add china_ip_route 103.47.80.0/22 -add china_ip_route 103.47.96.0/22 -add china_ip_route 103.47.108.0/22 -add china_ip_route 103.47.116.0/22 -add china_ip_route 103.47.120.0/22 -add china_ip_route 103.47.136.0/22 -add china_ip_route 103.47.140.0/22 -add china_ip_route 103.47.212.0/22 -add china_ip_route 103.48.52.0/22 -add china_ip_route 103.48.92.0/22 -add china_ip_route 103.48.144.0/22 -add china_ip_route 103.48.148.0/22 -add china_ip_route 103.48.152.0/22 -add china_ip_route 103.48.156.0/22 -add china_ip_route 103.48.202.0/23 -add china_ip_route 103.48.216.0/22 -add china_ip_route 103.48.220.0/22 -add china_ip_route 103.48.224.0/22 -add china_ip_route 103.48.228.0/22 -add china_ip_route 103.48.232.0/22 -add china_ip_route 103.48.236.0/22 -add china_ip_route 103.48.240.0/22 -add china_ip_route 103.48.244.0/22 -add china_ip_route 103.49.12.0/22 -add china_ip_route 103.49.20.0/22 -add china_ip_route 103.49.72.0/22 -add china_ip_route 103.49.76.0/22 -add china_ip_route 103.49.92.0/22 -add china_ip_route 103.49.96.0/22 -add china_ip_route 103.49.108.0/22 -add china_ip_route 103.49.128.0/22 -add china_ip_route 103.49.176.0/22 -add china_ip_route 103.49.180.0/22 -add china_ip_route 103.49.196.0/22 -add china_ip_route 103.50.36.0/22 -add china_ip_route 103.50.44.0/22 -add china_ip_route 103.50.48.0/22 -add china_ip_route 103.50.52.0/22 -add china_ip_route 103.50.56.0/22 -add china_ip_route 103.50.60.0/22 -add china_ip_route 103.50.64.0/22 -add china_ip_route 103.50.68.0/22 -add china_ip_route 103.50.72.0/22 -add china_ip_route 103.50.108.0/22 -add china_ip_route 103.50.112.0/22 -add china_ip_route 103.50.116.0/22 -add china_ip_route 103.50.120.0/22 -add china_ip_route 103.50.124.0/22 -add china_ip_route 103.50.132.0/22 -add china_ip_route 103.50.136.0/22 -add china_ip_route 103.50.140.0/22 -add china_ip_route 103.50.172.0/22 -add china_ip_route 103.50.176.0/22 -add china_ip_route 103.50.180.0/22 -add china_ip_route 103.50.184.0/22 -add china_ip_route 103.50.188.0/22 -add china_ip_route 103.50.192.0/22 -add china_ip_route 103.50.196.0/22 -add china_ip_route 103.50.200.0/22 -add china_ip_route 103.50.220.0/22 -add china_ip_route 103.50.224.0/22 -add china_ip_route 103.50.228.0/22 -add china_ip_route 103.50.232.0/22 -add china_ip_route 103.50.236.0/22 -add china_ip_route 103.50.240.0/22 -add china_ip_route 103.50.244.0/22 -add china_ip_route 103.50.248.0/22 -add china_ip_route 103.52.40.0/22 -add china_ip_route 103.52.72.0/22 -add china_ip_route 103.52.76.0/22 -add china_ip_route 103.52.80.0/22 -add china_ip_route 103.52.84.0/22 -add china_ip_route 103.52.96.0/22 -add china_ip_route 103.52.100.0/22 -add china_ip_route 103.52.104.0/22 -add china_ip_route 103.52.160.0/22 -add china_ip_route 103.52.164.0/22 -add china_ip_route 103.52.172.0/22 -add china_ip_route 103.52.176.0/22 -add china_ip_route 103.52.184.0/22 -add china_ip_route 103.52.196.0/22 -add china_ip_route 103.53.64.0/22 -add china_ip_route 103.53.68.0/22 -add china_ip_route 103.53.92.0/22 -add china_ip_route 103.53.100.0/22 -add china_ip_route 103.53.124.0/22 -add china_ip_route 103.53.128.0/22 -add china_ip_route 103.53.132.0/22 -add china_ip_route 103.53.136.0/22 -add china_ip_route 103.53.140.0/22 -add china_ip_route 103.53.144.0/22 -add china_ip_route 103.53.180.0/22 -add china_ip_route 103.53.204.0/22 -add china_ip_route 103.53.208.0/22 -add china_ip_route 103.53.212.0/22 -add china_ip_route 103.53.216.0/22 -add china_ip_route 103.53.236.0/22 -add china_ip_route 103.53.248.0/22 -add china_ip_route 103.54.8.0/22 -add china_ip_route 103.54.48.0/22 -add china_ip_route 103.54.160.0/22 -add china_ip_route 103.54.164.0/22 -add china_ip_route 103.54.212.0/22 -add china_ip_route 103.54.240.0/22 -add china_ip_route 103.55.24.0/22 -add china_ip_route 103.55.80.0/22 -add china_ip_route 103.55.120.0/22 -add china_ip_route 103.55.152.0/22 -add china_ip_route 103.55.172.0/22 -add china_ip_route 103.55.204.0/22 -add china_ip_route 103.55.208.0/22 -add china_ip_route 103.55.228.0/22 -add china_ip_route 103.55.236.0/22 -add china_ip_route 103.56.8.0/22 -add china_ip_route 103.56.16.0/22 -add china_ip_route 103.56.20.0/22 -add china_ip_route 103.56.32.0/22 -add china_ip_route 103.56.56.0/22 -add china_ip_route 103.56.60.0/22 -add china_ip_route 103.56.72.0/22 -add china_ip_route 103.56.76.0/22 -add china_ip_route 103.56.100.0/22 -add china_ip_route 103.56.104.0/22 -add china_ip_route 103.56.140.0/22 -add china_ip_route 103.56.152.0/22 -add china_ip_route 103.56.184.0/22 -add china_ip_route 103.56.200.0/22 -add china_ip_route 103.57.12.0/22 -add china_ip_route 103.57.52.0/22 -add china_ip_route 103.57.56.0/22 -add china_ip_route 103.57.76.0/22 -add china_ip_route 103.57.136.0/22 -add china_ip_route 103.57.196.0/22 -add china_ip_route 103.58.24.0/22 -add china_ip_route 103.59.76.0/22 -add china_ip_route 103.59.100.0/22 -add china_ip_route 103.59.112.0/22 -add china_ip_route 103.59.116.0/22 -add china_ip_route 103.59.120.0/22 -add china_ip_route 103.59.124.0/22 -add china_ip_route 103.59.128.0/22 -add china_ip_route 103.59.148.0/22 -add china_ip_route 103.59.164.0/22 -add china_ip_route 103.60.32.0/22 -add china_ip_route 103.60.44.0/22 -add china_ip_route 103.60.164.0/22 -add china_ip_route 103.60.228.0/22 -add china_ip_route 103.60.236.0/22 -add china_ip_route 103.61.60.0/22 -add china_ip_route 103.61.104.0/22 -add china_ip_route 103.61.140.0/22 -add china_ip_route 103.61.152.0/22 -add china_ip_route 103.61.156.0/22 -add china_ip_route 103.61.160.0/22 -add china_ip_route 103.61.172.0/22 -add china_ip_route 103.61.176.0/22 -add china_ip_route 103.61.188.0/22 -add china_ip_route 103.62.24.0/22 -add china_ip_route 103.62.52.0/22 -add china_ip_route 103.62.72.0/22 -add china_ip_route 103.62.76.0/22 -add china_ip_route 103.62.80.0/22 -add china_ip_route 103.62.84.0/22 -add china_ip_route 103.62.88.0/22 -add china_ip_route 103.62.96.0/22 -add china_ip_route 103.62.100.0/22 -add china_ip_route 103.62.104.0/22 -add china_ip_route 103.62.108.0/22 -add china_ip_route 103.62.112.0/22 -add china_ip_route 103.62.116.0/22 -add china_ip_route 103.62.120.0/22 -add china_ip_route 103.62.124.0/22 -add china_ip_route 103.62.128.0/22 -add china_ip_route 103.62.132.0/22 -add china_ip_route 103.62.156.0/22 -add china_ip_route 103.62.160.0/22 -add china_ip_route 103.62.164.0/22 -add china_ip_route 103.62.168.0/22 -add china_ip_route 103.62.172.0/22 -add china_ip_route 103.62.176.0/22 -add china_ip_route 103.62.180.0/22 -add china_ip_route 103.62.184.0/22 -add china_ip_route 103.62.188.0/22 -add china_ip_route 103.62.192.0/22 -add china_ip_route 103.62.204.0/22 -add china_ip_route 103.62.208.0/22 -add china_ip_route 103.62.212.0/22 -add china_ip_route 103.62.216.0/22 -add china_ip_route 103.62.220.0/22 -add china_ip_route 103.62.224.0/22 -add china_ip_route 103.63.32.0/22 -add china_ip_route 103.63.36.0/22 -add china_ip_route 103.63.40.0/22 -add china_ip_route 103.63.44.0/22 -add china_ip_route 103.63.48.0/22 -add china_ip_route 103.63.52.0/22 -add china_ip_route 103.63.56.0/22 -add china_ip_route 103.63.60.0/22 -add china_ip_route 103.63.64.0/22 -add china_ip_route 103.63.68.0/22 -add china_ip_route 103.63.72.0/22 -add china_ip_route 103.63.76.0/22 -add china_ip_route 103.63.80.0/22 -add china_ip_route 103.63.84.0/22 -add china_ip_route 103.63.88.0/22 -add china_ip_route 103.63.140.0/22 -add china_ip_route 103.63.144.0/22 -add china_ip_route 103.63.152.0/22 -add china_ip_route 103.63.160.0/22 -add china_ip_route 103.63.164.0/22 -add china_ip_route 103.63.168.0/22 -add china_ip_route 103.63.172.0/22 -add china_ip_route 103.63.176.0/22 -add china_ip_route 103.63.180.0/22 -add china_ip_route 103.63.184.0/22 -add china_ip_route 103.63.192.0/22 -add china_ip_route 103.63.196.0/22 -add china_ip_route 103.63.200.0/22 -add china_ip_route 103.63.204.0/22 -add china_ip_route 103.63.208.0/22 -add china_ip_route 103.63.240.0/22 -add china_ip_route 103.63.244.0/22 -add china_ip_route 103.63.248.0/22 -add china_ip_route 103.63.252.0/22 -add china_ip_route 103.64.0.0/22 -add china_ip_route 103.64.4.0/22 -add china_ip_route 103.64.24.0/22 -add china_ip_route 103.64.28.0/22 -add china_ip_route 103.64.32.0/22 -add china_ip_route 103.64.36.0/22 -add china_ip_route 103.64.40.0/22 -add china_ip_route 103.64.44.0/22 -add china_ip_route 103.64.48.0/22 -add china_ip_route 103.64.52.0/22 -add china_ip_route 103.64.56.0/22 -add china_ip_route 103.64.60.0/22 -add china_ip_route 103.64.64.0/22 -add china_ip_route 103.64.68.0/22 -add china_ip_route 103.64.72.0/22 -add china_ip_route 103.64.76.0/22 -add china_ip_route 103.64.80.0/22 -add china_ip_route 103.64.84.0/22 -add china_ip_route 103.64.88.0/22 -add china_ip_route 103.64.92.0/22 -add china_ip_route 103.64.96.0/22 -add china_ip_route 103.64.100.0/22 -add china_ip_route 103.64.104.0/22 -add china_ip_route 103.64.108.0/22 -add china_ip_route 103.64.112.0/22 -add china_ip_route 103.64.116.0/22 -add china_ip_route 103.64.120.0/22 -add china_ip_route 103.64.124.0/22 -add china_ip_route 103.64.140.0/22 -add china_ip_route 103.64.144.0/22 -add china_ip_route 103.64.152.0/22 -add china_ip_route 103.64.156.0/22 -add china_ip_route 103.64.160.0/22 -add china_ip_route 103.64.164.0/22 -add china_ip_route 103.64.168.0/22 -add china_ip_route 103.64.172.0/22 -add china_ip_route 103.64.176.0/22 -add china_ip_route 103.64.180.0/22 -add china_ip_route 103.64.184.0/22 -add china_ip_route 103.64.188.0/22 -add china_ip_route 103.64.192.0/22 -add china_ip_route 103.64.196.0/22 -add china_ip_route 103.64.200.0/22 -add china_ip_route 103.64.204.0/22 -add china_ip_route 103.64.208.0/22 -add china_ip_route 103.64.212.0/22 -add china_ip_route 103.64.216.0/22 -add china_ip_route 103.64.220.0/22 -add china_ip_route 103.64.224.0/22 -add china_ip_route 103.64.228.0/22 -add china_ip_route 103.64.232.0/22 -add china_ip_route 103.64.236.0/22 -add china_ip_route 103.64.240.0/22 -add china_ip_route 103.64.244.0/22 -add china_ip_route 103.64.248.0/22 -add china_ip_route 103.64.252.0/22 -add china_ip_route 103.65.0.0/22 -add china_ip_route 103.65.4.0/22 -add china_ip_route 103.65.8.0/22 -add china_ip_route 103.65.12.0/22 -add china_ip_route 103.65.16.0/22 -add china_ip_route 103.65.36.0/22 -add china_ip_route 103.65.40.0/22 -add china_ip_route 103.65.48.0/22 -add china_ip_route 103.65.52.0/22 -add china_ip_route 103.65.56.0/22 -add china_ip_route 103.65.60.0/22 -add china_ip_route 103.65.64.0/22 -add china_ip_route 103.65.68.0/22 -add china_ip_route 103.65.72.0/22 -add china_ip_route 103.65.76.0/22 -add china_ip_route 103.65.80.0/22 -add china_ip_route 103.65.84.0/22 -add china_ip_route 103.65.88.0/22 -add china_ip_route 103.65.92.0/22 -add china_ip_route 103.65.100.0/22 -add china_ip_route 103.65.104.0/22 -add china_ip_route 103.65.108.0/22 -add china_ip_route 103.65.112.0/22 -add china_ip_route 103.65.144.0/22 -add china_ip_route 103.65.148.0/22 -add china_ip_route 103.65.152.0/22 -add china_ip_route 103.65.156.0/22 -add china_ip_route 103.65.160.0/22 -add china_ip_route 103.65.164.0/22 -add china_ip_route 103.65.168.0/22 -add china_ip_route 103.65.172.0/22 -add china_ip_route 103.66.32.0/22 -add china_ip_route 103.66.40.0/22 -add china_ip_route 103.66.92.0/22 -add china_ip_route 103.66.108.0/22 -add china_ip_route 103.66.200.0/22 -add china_ip_route 103.66.216.0/22 -add china_ip_route 103.66.240.0/22 -add china_ip_route 103.66.244.0/22 -add china_ip_route 103.66.248.0/22 -add china_ip_route 103.66.252.0/22 -add china_ip_route 103.67.0.0/22 -add china_ip_route 103.67.4.0/22 -add china_ip_route 103.67.8.0/22 -add china_ip_route 103.67.100.0/22 -add china_ip_route 103.67.104.0/22 -add china_ip_route 103.67.108.0/22 -add china_ip_route 103.67.112.0/22 -add china_ip_route 103.67.116.0/22 -add china_ip_route 103.67.120.0/22 -add china_ip_route 103.67.124.0/22 -add china_ip_route 103.67.128.0/22 -add china_ip_route 103.67.132.0/22 -add china_ip_route 103.67.136.0/22 -add china_ip_route 103.67.140.0/22 -add china_ip_route 103.67.144.0/22 -add china_ip_route 103.67.148.0/22 -add china_ip_route 103.67.172.0/22 -add china_ip_route 103.67.192.0/22 -add china_ip_route 103.67.212.0/22 -add china_ip_route 103.67.252.0/22 -add china_ip_route 103.68.64.0/22 -add china_ip_route 103.68.88.0/22 -add china_ip_route 103.68.100.0/22 -add china_ip_route 103.68.128.0/22 -add china_ip_route 103.68.192.0/22 -add china_ip_route 103.69.16.0/22 -add china_ip_route 103.69.116.0/22 -add china_ip_route 103.69.132.0/22 -add china_ip_route 103.69.152.0/22 -add china_ip_route 103.70.8.0/22 -add china_ip_route 103.70.148.0/22 -add china_ip_route 103.70.220.0/22 -add china_ip_route 103.70.224.0/22 -add china_ip_route 103.70.236.0/22 -add china_ip_route 103.70.252.0/22 -add china_ip_route 103.71.0.0/22 -add china_ip_route 103.71.32.0/22 -add china_ip_route 103.71.48.0/22 -add china_ip_route 103.71.68.0/22 -add china_ip_route 103.71.72.0/22 -add china_ip_route 103.71.80.0/22 -add china_ip_route 103.71.84.0/22 -add china_ip_route 103.71.88.0/22 -add china_ip_route 103.71.120.0/22 -add china_ip_route 103.71.124.0/22 -add china_ip_route 103.71.128.0/22 -add china_ip_route 103.71.144.0/22 -add china_ip_route 103.71.196.0/22 -add china_ip_route 103.71.200.0/22 -add china_ip_route 103.71.232.0/22 -add china_ip_route 103.72.12.0/22 -add china_ip_route 103.72.16.0/22 -add china_ip_route 103.72.20.0/22 -add china_ip_route 103.72.24.0/22 -add china_ip_route 103.72.28.0/22 -add china_ip_route 103.72.32.0/22 -add china_ip_route 103.72.36.0/22 -add china_ip_route 103.72.40.0/22 -add china_ip_route 103.72.44.0/22 -add china_ip_route 103.72.48.0/22 -add china_ip_route 103.72.52.0/22 -add china_ip_route 103.72.112.0/22 -add china_ip_route 103.72.116.0/22 -add china_ip_route 103.72.120.0/22 -add china_ip_route 103.72.124.0/22 -add china_ip_route 103.72.128.0/22 -add china_ip_route 103.72.132.0/22 -add china_ip_route 103.72.148.0/22 -add china_ip_route 103.72.172.0/22 -add china_ip_route 103.72.180.0/22 -add china_ip_route 103.72.224.0/22 -add china_ip_route 103.72.228.0/22 -add china_ip_route 103.72.232.0/22 -add china_ip_route 103.72.236.0/22 -add china_ip_route 103.72.240.0/22 -add china_ip_route 103.72.244.0/22 -add china_ip_route 103.72.248.0/22 -add china_ip_route 103.72.252.0/22 -add china_ip_route 103.73.0.0/22 -add china_ip_route 103.73.4.0/22 -add china_ip_route 103.73.8.0/22 -add china_ip_route 103.73.12.0/22 -add china_ip_route 103.73.16.0/22 -add china_ip_route 103.73.20.0/22 -add china_ip_route 103.73.24.0/22 -add china_ip_route 103.73.28.0/22 -add china_ip_route 103.73.48.0/22 -add china_ip_route 103.73.96.0/22 -add china_ip_route 103.73.116.0/22 -add china_ip_route 103.73.120.0/22 -add china_ip_route 103.73.128.0/22 -add china_ip_route 103.73.132.0/22 -add china_ip_route 103.73.136.0/22 -add china_ip_route 103.73.140.0/22 -add china_ip_route 103.73.144.0/22 -add china_ip_route 103.73.168.0/22 -add china_ip_route 103.73.176.0/22 -add china_ip_route 103.73.204.0/22 -add china_ip_route 103.73.208.0/22 -add china_ip_route 103.73.240.0/22 -add china_ip_route 103.73.244.0/22 -add china_ip_route 103.73.248.0/22 -add china_ip_route 103.74.24.0/22 -add china_ip_route 103.74.28.0/22 -add china_ip_route 103.74.32.0/22 -add china_ip_route 103.74.36.0/22 -add china_ip_route 103.74.40.0/22 -add china_ip_route 103.74.44.0/22 -add china_ip_route 103.74.48.0/22 -add china_ip_route 103.74.56.0/22 -add china_ip_route 103.74.60.0/22 -add china_ip_route 103.74.80.0/22 -add china_ip_route 103.74.124.0/22 -add china_ip_route 103.74.148.0/22 -add china_ip_route 103.74.152.0/22 -add china_ip_route 103.74.156.0/22 -add china_ip_route 103.74.204.0/22 -add china_ip_route 103.74.232.0/22 -add china_ip_route 103.75.16.0/22 -add china_ip_route 103.75.88.0/22 -add china_ip_route 103.75.92.0/22 -add china_ip_route 103.75.104.0/22 -add china_ip_route 103.75.108.0/22 -add china_ip_route 103.75.112.0/22 -add china_ip_route 103.75.120.0/22 -add china_ip_route 103.75.128.0/22 -add china_ip_route 103.75.144.0/22 -add china_ip_route 103.75.152.0/22 -add china_ip_route 103.75.236.0/24 -add china_ip_route 103.76.60.0/22 -add china_ip_route 103.76.64.0/22 -add china_ip_route 103.76.68.0/22 -add china_ip_route 103.76.72.0/22 -add china_ip_route 103.76.84.0/22 -add china_ip_route 103.76.92.0/22 -add china_ip_route 103.76.216.0/22 -add china_ip_route 103.76.220.0/22 -add china_ip_route 103.76.224.0/22 -add china_ip_route 103.77.28.0/22 -add china_ip_route 103.77.52.0/22 -add china_ip_route 103.77.56.0/22 -add china_ip_route 103.77.72.0/22 -add china_ip_route 103.77.88.0/22 -add china_ip_route 103.77.92.0/22 -add china_ip_route 103.77.132.0/22 -add china_ip_route 103.77.148.0/22 -add china_ip_route 103.77.220.0/22 -add china_ip_route 103.78.56.0/22 -add china_ip_route 103.78.60.0/22 -add china_ip_route 103.78.64.0/22 -add china_ip_route 103.78.68.0/22 -add china_ip_route 103.78.124.0/22 -add china_ip_route 103.78.172.0/22 -add china_ip_route 103.78.176.0/22 -add china_ip_route 103.78.196.0/22 -add china_ip_route 103.78.228.0/22 -add china_ip_route 103.79.24.0/22 -add china_ip_route 103.79.28.0/22 -add china_ip_route 103.79.36.0/22 -add china_ip_route 103.79.40.0/22 -add china_ip_route 103.79.44.0/22 -add china_ip_route 103.79.52.0/22 -add china_ip_route 103.79.56.0/22 -add china_ip_route 103.79.60.0/22 -add china_ip_route 103.79.64.0/22 -add china_ip_route 103.79.68.0/22 -add china_ip_route 103.79.80.0/22 -add china_ip_route 103.79.84.0/22 -add china_ip_route 103.79.120.0/22 -add china_ip_route 103.79.136.0/22 -add china_ip_route 103.79.188.0/22 -add china_ip_route 103.79.192.0/22 -add china_ip_route 103.79.196.0/22 -add china_ip_route 103.79.200.0/22 -add china_ip_route 103.79.204.0/22 -add china_ip_route 103.79.208.0/22 -add china_ip_route 103.79.212.0/22 -add china_ip_route 103.79.240.0/22 -add china_ip_route 103.80.24.0/22 -add china_ip_route 103.80.28.0/22 -add china_ip_route 103.80.44.0/22 -add china_ip_route 103.80.72.0/22 -add china_ip_route 103.80.176.0/22 -add china_ip_route 103.80.180.0/22 -add china_ip_route 103.80.184.0/22 -add china_ip_route 103.80.192.0/22 -add china_ip_route 103.80.200.0/22 -add china_ip_route 103.80.232.0/22 -add china_ip_route 103.81.4.0/22 -add china_ip_route 103.81.8.0/22 -add china_ip_route 103.81.16.0/22 -add china_ip_route 103.81.20.0/22 -add china_ip_route 103.81.44.0/22 -add china_ip_route 103.81.48.0/22 -add china_ip_route 103.81.96.0/22 -add china_ip_route 103.81.120.0/22 -add china_ip_route 103.81.148.0/22 -add china_ip_route 103.81.164.0/22 -add china_ip_route 103.81.168.0/22 -add china_ip_route 103.81.183.0/24 -add china_ip_route 103.81.184.0/22 -add china_ip_route 103.81.200.0/22 -add china_ip_route 103.81.232.0/22 -add china_ip_route 103.82.52.0/22 -add china_ip_route 103.82.60.0/22 -add china_ip_route 103.82.68.0/22 -add china_ip_route 103.82.84.0/22 -add china_ip_route 103.82.104.0/22 -add china_ip_route 103.82.224.0/22 -add china_ip_route 103.82.236.0/22 -add china_ip_route 103.83.44.0/22 -add china_ip_route 103.83.52.0/22 -add china_ip_route 103.83.60.0/22 -add china_ip_route 103.83.64.0/22 -add china_ip_route 103.83.72.0/22 -add china_ip_route 103.83.112.0/22 -add china_ip_route 103.83.120.0/22 -add china_ip_route 103.83.180.0/22 -add china_ip_route 103.84.0.0/22 -add china_ip_route 103.84.12.0/22 -add china_ip_route 103.84.16.0/22 -add china_ip_route 103.84.20.0/22 -add china_ip_route 103.84.24.0/22 -add china_ip_route 103.84.28.0/22 -add china_ip_route 103.84.48.0/22 -add china_ip_route 103.84.64.0/22 -add china_ip_route 103.84.72.0/22 -add china_ip_route 103.84.92.0/22 -add china_ip_route 103.84.108.0/22 -add china_ip_route 103.84.136.0/22 -add china_ip_route 103.85.20.0/22 -add china_ip_route 103.85.24.0/22 -add china_ip_route 103.85.44.0/22 -add china_ip_route 103.85.48.0/22 -add china_ip_route 103.85.84.0/22 -add china_ip_route 103.85.136.0/22 -add china_ip_route 103.85.144.0/22 -add china_ip_route 103.85.164.0/22 -add china_ip_route 103.85.168.0/22 -add china_ip_route 103.85.172.0/22 -add china_ip_route 103.85.176.0/22 -add china_ip_route 103.85.224.0/22 -add china_ip_route 103.86.28.0/22 -add china_ip_route 103.86.32.0/22 -add china_ip_route 103.86.44.0/22 -add china_ip_route 103.86.60.0/22 -add china_ip_route 103.86.80.0/22 -add china_ip_route 103.86.84.0/22 -add china_ip_route 103.86.204.0/22 -add china_ip_route 103.86.208.0/22 -add china_ip_route 103.86.212.0/22 -add china_ip_route 103.86.216.0/22 -add china_ip_route 103.86.220.0/22 -add china_ip_route 103.86.224.0/22 -add china_ip_route 103.86.228.0/22 -add china_ip_route 103.86.232.0/22 -add china_ip_route 103.86.236.0/22 -add china_ip_route 103.86.240.0/22 -add china_ip_route 103.86.244.0/22 -add china_ip_route 103.86.248.0/22 -add china_ip_route 103.86.252.0/22 -add china_ip_route 103.87.0.0/22 -add china_ip_route 103.87.4.0/22 -add china_ip_route 103.87.20.0/22 -add china_ip_route 103.87.32.0/22 -add china_ip_route 103.87.72.0/22 -add china_ip_route 103.87.96.0/22 -add china_ip_route 103.87.132.0/22 -add china_ip_route 103.87.180.0/22 -add china_ip_route 103.87.224.0/22 -add china_ip_route 103.88.4.0/22 -add china_ip_route 103.88.8.0/22 -add china_ip_route 103.88.12.0/22 -add china_ip_route 103.88.16.0/22 -add china_ip_route 103.88.20.0/22 -add china_ip_route 103.88.32.0/22 -add china_ip_route 103.88.36.0/22 -add china_ip_route 103.88.60.0/22 -add china_ip_route 103.88.64.0/22 -add china_ip_route 103.88.72.0/22 -add china_ip_route 103.88.96.0/22 -add china_ip_route 103.88.164.0/22 -add china_ip_route 103.88.176.0/22 -add china_ip_route 103.88.184.0/22 -add china_ip_route 103.88.188.0/22 -add china_ip_route 103.88.212.0/22 -add china_ip_route 103.89.28.0/22 -add china_ip_route 103.89.96.0/22 -add china_ip_route 103.89.100.0/22 -add china_ip_route 103.89.104.0/22 -add china_ip_route 103.89.108.0/22 -add china_ip_route 103.89.112.0/22 -add china_ip_route 103.89.116.0/22 -add china_ip_route 103.89.148.0/22 -add china_ip_route 103.89.172.0/22 -add china_ip_route 103.89.184.0/22 -add china_ip_route 103.89.188.0/22 -add china_ip_route 103.89.192.0/22 -add china_ip_route 103.89.196.0/22 -add china_ip_route 103.89.200.0/22 -add china_ip_route 103.89.204.0/22 -add china_ip_route 103.89.208.0/22 -add china_ip_route 103.89.212.0/22 -add china_ip_route 103.89.216.0/22 -add china_ip_route 103.89.220.0/22 -add china_ip_route 103.89.224.0/22 -add china_ip_route 103.89.228.0/22 -add china_ip_route 103.90.52.0/22 -add china_ip_route 103.90.92.0/22 -add china_ip_route 103.90.100.0/22 -add china_ip_route 103.90.104.0/22 -add china_ip_route 103.90.108.0/22 -add china_ip_route 103.90.112.0/22 -add china_ip_route 103.90.116.0/22 -add china_ip_route 103.90.120.0/22 -add china_ip_route 103.90.124.0/22 -add china_ip_route 103.90.128.0/22 -add china_ip_route 103.90.132.0/22 -add china_ip_route 103.90.152.0/22 -add china_ip_route 103.90.168.0/22 -add china_ip_route 103.90.173.0/24 -add china_ip_route 103.90.176.0/22 -add china_ip_route 103.90.188.0/22 -add china_ip_route 103.90.192.0/22 -add china_ip_route 103.91.36.0/22 -add china_ip_route 103.91.40.0/22 -add china_ip_route 103.91.108.0/22 -add china_ip_route 103.91.152.0/22 -add china_ip_route 103.91.176.0/22 -add china_ip_route 103.91.200.0/22 -add china_ip_route 103.91.208.0/22 -add china_ip_route 103.91.212.0/22 -add china_ip_route 103.91.219.0/24 -add china_ip_route 103.91.236.0/22 -add china_ip_route 103.91.252.0/22 -add china_ip_route 103.92.0.0/22 -add china_ip_route 103.92.4.0/22 -add china_ip_route 103.92.8.0/22 -add china_ip_route 103.92.12.0/22 -add china_ip_route 103.92.48.0/22 -add china_ip_route 103.92.52.0/22 -add china_ip_route 103.92.56.0/22 -add china_ip_route 103.92.60.0/22 -add china_ip_route 103.92.64.0/22 -add china_ip_route 103.92.68.0/22 -add china_ip_route 103.92.72.0/22 -add china_ip_route 103.92.76.0/22 -add china_ip_route 103.92.80.0/22 -add china_ip_route 103.92.86.0/24 -add china_ip_route 103.92.88.0/22 -add china_ip_route 103.92.108.0/22 -add china_ip_route 103.92.124.0/22 -add china_ip_route 103.92.128.0/24 -add china_ip_route 103.92.132.0/22 -add china_ip_route 103.92.156.0/22 -add china_ip_route 103.92.164.0/22 -add china_ip_route 103.92.168.0/22 -add china_ip_route 103.92.172.0/22 -add china_ip_route 103.92.176.0/22 -add china_ip_route 103.92.180.0/22 -add china_ip_route 103.92.184.0/22 -add china_ip_route 103.92.188.0/22 -add china_ip_route 103.92.192.0/22 -add china_ip_route 103.92.236.0/22 -add china_ip_route 103.92.240.0/22 -add china_ip_route 103.92.244.0/22 -add china_ip_route 103.92.248.0/22 -add china_ip_route 103.92.252.0/22 -add china_ip_route 103.93.0.0/22 -add china_ip_route 103.93.4.0/22 -add china_ip_route 103.93.28.0/22 -add china_ip_route 103.93.76.0/22 -add china_ip_route 103.93.84.0/22 -add china_ip_route 103.93.152.0/22 -add china_ip_route 103.93.180.0/22 -add china_ip_route 103.93.204.0/22 -add china_ip_route 103.94.12.0/22 -add china_ip_route 103.94.20.0/22 -add china_ip_route 103.94.28.0/22 -add china_ip_route 103.94.32.0/22 -add china_ip_route 103.94.36.0/22 -add china_ip_route 103.94.40.0/22 -add china_ip_route 103.94.44.0/22 -add china_ip_route 103.94.72.0/22 -add china_ip_route 103.94.88.0/22 -add china_ip_route 103.94.116.0/22 -add china_ip_route 103.94.160.0/22 -add china_ip_route 103.94.180.0/22 -add china_ip_route 103.94.200.0/22 -add china_ip_route 103.95.28.0/22 -add china_ip_route 103.95.52.0/22 -add china_ip_route 103.95.64.0/22 -add china_ip_route 103.95.68.0/22 -add china_ip_route 103.95.88.0/22 -add china_ip_route 103.95.92.0/22 -add china_ip_route 103.95.116.0/22 -add china_ip_route 103.95.128.0/22 -add china_ip_route 103.95.136.0/22 -add china_ip_route 103.95.140.0/22 -add china_ip_route 103.95.144.0/22 -add china_ip_route 103.95.152.0/22 -add china_ip_route 103.95.207.0/24 -add china_ip_route 103.95.216.0/22 -add china_ip_route 103.95.220.0/22 -add china_ip_route 103.95.224.0/22 -add china_ip_route 103.95.236.0/22 -add china_ip_route 103.95.240.0/22 -add china_ip_route 103.95.244.0/22 -add china_ip_route 103.95.248.0/22 -add china_ip_route 103.95.252.0/22 -add china_ip_route 103.96.0.0/22 -add china_ip_route 103.96.8.0/22 -add china_ip_route 103.96.80.0/22 -add china_ip_route 103.96.124.0/22 -add china_ip_route 103.96.136.0/22 -add china_ip_route 103.96.140.0/24 -add china_ip_route 103.96.148.0/22 -add china_ip_route 103.96.152.0/22 -add china_ip_route 103.96.156.0/22 -add china_ip_route 103.96.160.0/22 -add china_ip_route 103.96.164.0/22 -add china_ip_route 103.96.168.0/22 -add china_ip_route 103.96.172.0/22 -add china_ip_route 103.96.176.0/22 -add china_ip_route 103.96.180.0/22 -add china_ip_route 103.96.184.0/22 -add china_ip_route 103.96.188.0/22 -add china_ip_route 103.96.192.0/22 -add china_ip_route 103.96.196.0/22 -add china_ip_route 103.96.200.0/22 -add china_ip_route 103.96.204.0/22 -add china_ip_route 103.96.208.0/22 -add china_ip_route 103.96.212.0/22 -add china_ip_route 103.96.216.0/22 -add china_ip_route 103.97.8.0/22 -add china_ip_route 103.97.12.0/22 -add china_ip_route 103.97.16.0/22 -add china_ip_route 103.97.20.0/22 -add china_ip_route 103.97.24.0/22 -add china_ip_route 103.97.28.0/22 -add china_ip_route 103.97.32.0/22 -add china_ip_route 103.97.36.0/22 -add china_ip_route 103.97.40.0/22 -add china_ip_route 103.97.56.0/22 -add china_ip_route 103.97.60.0/22 -add china_ip_route 103.97.64.0/22 -add china_ip_route 103.97.68.0/22 -add china_ip_route 103.97.72.0/22 -add china_ip_route 103.97.80.0/22 -add china_ip_route 103.97.112.0/22 -add china_ip_route 103.97.116.0/22 -add china_ip_route 103.97.128.0/22 -add china_ip_route 103.97.144.0/22 -add china_ip_route 103.97.148.0/22 -add china_ip_route 103.97.188.0/22 -add china_ip_route 103.97.192.0/22 -add china_ip_route 103.97.228.0/23 -add china_ip_route 103.98.28.0/23 -add china_ip_route 103.98.40.0/22 -add china_ip_route 103.98.44.0/22 -add china_ip_route 103.98.48.0/22 -add china_ip_route 103.98.56.0/22 -add china_ip_route 103.98.80.0/22 -add china_ip_route 103.98.88.0/22 -add china_ip_route 103.98.92.0/22 -add china_ip_route 103.98.96.0/22 -add china_ip_route 103.98.100.0/22 -add china_ip_route 103.98.124.0/22 -add china_ip_route 103.98.136.0/22 -add china_ip_route 103.98.140.0/22 -add china_ip_route 103.98.144.0/22 -add china_ip_route 103.98.164.0/22 -add china_ip_route 103.98.168.0/22 -add china_ip_route 103.98.180.0/22 -add china_ip_route 103.98.196.0/22 -add china_ip_route 103.98.216.0/22 -add china_ip_route 103.98.220.0/22 -add china_ip_route 103.98.224.0/22 -add china_ip_route 103.98.228.0/22 -add china_ip_route 103.98.232.0/22 -add china_ip_route 103.98.240.0/22 -add china_ip_route 103.98.244.0/22 -add china_ip_route 103.98.248.0/22 -add china_ip_route 103.98.252.0/22 -add china_ip_route 103.99.40.0/23 -add china_ip_route 103.99.52.0/22 -add china_ip_route 103.99.56.0/22 -add china_ip_route 103.99.60.0/22 -add china_ip_route 103.99.76.0/22 -add china_ip_route 103.99.104.0/22 -add china_ip_route 103.99.116.0/22 -add china_ip_route 103.99.120.0/22 -add china_ip_route 103.99.152.0/22 -add china_ip_route 103.99.220.0/22 -add china_ip_route 103.99.232.0/22 -add china_ip_route 103.99.236.0/22 -add china_ip_route 103.100.0.0/22 -add china_ip_route 103.100.32.0/22 -add china_ip_route 103.100.40.0/22 -add china_ip_route 103.100.48.0/22 -add china_ip_route 103.100.52.0/22 -add china_ip_route 103.100.56.0/22 -add china_ip_route 103.100.60.0/22 -add china_ip_route 103.100.64.0/22 -add china_ip_route 103.100.68.0/22 -add china_ip_route 103.100.88.0/22 -add china_ip_route 103.100.116.0/22 -add china_ip_route 103.100.140.0/22 -add china_ip_route 103.100.144.0/22 -add china_ip_route 103.100.236.0/22 -add china_ip_route 103.100.240.0/22 -add china_ip_route 103.100.248.0/22 -add china_ip_route 103.100.252.0/22 -add china_ip_route 103.101.4.0/22 -add china_ip_route 103.101.8.0/22 -add china_ip_route 103.101.12.0/22 -add china_ip_route 103.101.28.0/22 -add china_ip_route 103.101.60.0/22 -add china_ip_route 103.101.120.0/22 -add china_ip_route 103.101.124.0/22 -add china_ip_route 103.101.144.0/22 -add china_ip_route 103.101.148.0/22 -add china_ip_route 103.101.153.0/24 -add china_ip_route 103.101.180.0/22 -add china_ip_route 103.101.184.0/22 -add china_ip_route 103.102.76.0/22 -add china_ip_route 103.102.80.0/22 -add china_ip_route 103.102.168.0/22 -add china_ip_route 103.102.172.0/22 -add china_ip_route 103.102.180.0/22 -add china_ip_route 103.102.184.0/22 -add china_ip_route 103.102.188.0/22 -add china_ip_route 103.102.192.0/22 -add china_ip_route 103.102.196.0/22 -add china_ip_route 103.102.200.0/22 -add china_ip_route 103.102.208.0/22 -add china_ip_route 103.102.212.0/22 -add china_ip_route 103.103.12.0/22 -add china_ip_route 103.103.16.0/22 -add china_ip_route 103.103.36.0/22 -add china_ip_route 103.103.68.0/22 -add china_ip_route 103.103.72.0/22 -add china_ip_route 103.103.176.0/22 -add china_ip_route 103.103.188.0/22 -add china_ip_route 103.103.200.0/22 -add china_ip_route 103.103.204.0/22 -add china_ip_route 103.103.220.0/22 -add china_ip_route 103.103.224.0/22 -add china_ip_route 103.103.228.0/22 -add china_ip_route 103.103.232.0/22 -add china_ip_route 103.103.248.0/22 -add china_ip_route 103.103.252.0/22 -add china_ip_route 103.104.0.0/22 -add china_ip_route 103.104.4.0/22 -add china_ip_route 103.104.36.0/22 -add china_ip_route 103.104.40.0/22 -add china_ip_route 103.104.64.0/22 -add china_ip_route 103.104.104.0/22 -add china_ip_route 103.104.152.0/22 -add china_ip_route 103.104.168.0/22 -add china_ip_route 103.104.172.0/22 -add china_ip_route 103.104.188.0/22 -add china_ip_route 103.104.198.0/23 -add china_ip_route 103.104.252.0/22 -add china_ip_route 103.105.0.0/22 -add china_ip_route 103.105.4.0/22 -add china_ip_route 103.105.12.0/22 -add china_ip_route 103.105.16.0/22 -add china_ip_route 103.105.23.0/24 -add china_ip_route 103.105.60.0/22 -add china_ip_route 103.105.116.0/22 -add china_ip_route 103.105.132.0/22 -add china_ip_route 103.105.180.0/22 -add china_ip_route 103.105.184.0/22 -add china_ip_route 103.105.200.0/22 -add china_ip_route 103.105.204.0/22 -add china_ip_route 103.105.220.0/22 -add china_ip_route 103.106.36.0/22 -add china_ip_route 103.106.40.0/22 -add china_ip_route 103.106.44.0/22 -add china_ip_route 103.106.60.0/22 -add china_ip_route 103.106.68.0/22 -add china_ip_route 103.106.96.0/22 -add china_ip_route 103.106.120.0/22 -add china_ip_route 103.106.128.0/22 -add china_ip_route 103.106.132.0/22 -add china_ip_route 103.106.160.0/22 -add china_ip_route 103.106.188.0/22 -add china_ip_route 103.106.196.0/22 -add china_ip_route 103.106.202.0/23 -add china_ip_route 103.106.212.0/22 -add china_ip_route 103.106.244.0/22 -add china_ip_route 103.106.252.0/22 -add china_ip_route 103.107.0.0/22 -add china_ip_route 103.107.8.0/24 -add china_ip_route 103.107.28.0/22 -add china_ip_route 103.107.32.0/22 -add china_ip_route 103.107.44.0/22 -add china_ip_route 103.107.72.0/22 -add china_ip_route 103.107.108.0/22 -add china_ip_route 103.107.164.0/22 -add china_ip_route 103.107.168.0/22 -add china_ip_route 103.107.188.0/22 -add china_ip_route 103.107.192.0/22 -add china_ip_route 103.107.208.0/22 -add china_ip_route 103.107.212.0/22 -add china_ip_route 103.107.216.0/22 -add china_ip_route 103.107.220.0/22 -add china_ip_route 103.108.52.0/22 -add china_ip_route 103.108.160.0/22 -add china_ip_route 103.108.164.0/22 -add china_ip_route 103.108.184.0/23 -add china_ip_route 103.108.188.0/23 -add china_ip_route 103.108.192.0/22 -add china_ip_route 103.108.196.0/22 -add china_ip_route 103.108.208.0/22 -add china_ip_route 103.108.212.0/22 -add china_ip_route 103.108.224.0/22 -add china_ip_route 103.108.244.0/22 -add china_ip_route 103.108.251.0/24 -add china_ip_route 103.109.20.0/22 -add china_ip_route 103.109.48.0/22 -add china_ip_route 103.109.88.0/22 -add china_ip_route 103.109.106.0/23 -add china_ip_route 103.109.248.0/22 -add china_ip_route 103.110.80.0/23 -add china_ip_route 103.110.92.0/22 -add china_ip_route 103.110.116.0/22 -add china_ip_route 103.110.127.0/24 -add china_ip_route 103.110.128.0/23 -add china_ip_route 103.110.132.0/22 -add china_ip_route 103.110.136.0/22 -add china_ip_route 103.110.152.0/22 -add china_ip_route 103.110.156.0/22 -add china_ip_route 103.110.188.0/22 -add china_ip_route 103.110.204.0/22 -add china_ip_route 103.111.64.0/22 -add china_ip_route 103.111.172.0/22 -add china_ip_route 103.111.252.0/22 -add china_ip_route 103.112.28.0/22 -add china_ip_route 103.112.68.0/22 -add china_ip_route 103.112.72.0/22 -add china_ip_route 103.112.88.0/22 -add china_ip_route 103.112.92.0/22 -add china_ip_route 103.112.96.0/22 -add china_ip_route 103.112.108.0/22 -add china_ip_route 103.112.112.0/22 -add china_ip_route 103.112.116.0/22 -add china_ip_route 103.112.140.0/22 -add china_ip_route 103.112.172.0/22 -add china_ip_route 103.112.184.0/22 -add china_ip_route 103.112.208.0/22 -add china_ip_route 103.113.4.0/22 -add china_ip_route 103.113.92.0/22 -add china_ip_route 103.113.144.0/22 -add china_ip_route 103.113.220.0/22 -add china_ip_route 103.113.232.0/22 -add china_ip_route 103.113.236.0/22 -add china_ip_route 103.114.4.0/22 -add china_ip_route 103.114.28.0/22 -add china_ip_route 103.114.68.0/22 -add china_ip_route 103.114.72.0/22 -add china_ip_route 103.114.100.0/22 -add china_ip_route 103.114.132.0/22 -add china_ip_route 103.114.148.0/22 -add china_ip_route 103.114.156.0/22 -add china_ip_route 103.114.176.0/22 -add china_ip_route 103.114.212.0/22 -add china_ip_route 103.114.236.0/22 -add china_ip_route 103.114.240.0/22 -add china_ip_route 103.115.16.0/22 -add china_ip_route 103.115.40.0/22 -add china_ip_route 103.115.44.0/22 -add china_ip_route 103.115.48.0/22 -add china_ip_route 103.115.52.0/22 -add china_ip_route 103.115.56.0/22 -add china_ip_route 103.115.60.0/22 -add china_ip_route 103.115.64.0/22 -add china_ip_route 103.115.68.0/22 -add china_ip_route 103.115.92.0/22 -add china_ip_route 103.115.120.0/22 -add china_ip_route 103.115.148.0/22 -add china_ip_route 103.115.204.0/23 -add china_ip_route 103.115.248.0/22 -add china_ip_route 103.116.20.0/22 -add china_ip_route 103.116.40.0/22 -add china_ip_route 103.116.64.0/22 -add china_ip_route 103.116.72.0/22 -add china_ip_route 103.116.76.0/22 -add china_ip_route 103.116.92.0/22 -add china_ip_route 103.116.120.0/22 -add china_ip_route 103.116.128.0/22 -add china_ip_route 103.116.132.0/23 -add china_ip_route 103.116.148.0/22 -add china_ip_route 103.116.184.0/22 -add china_ip_route 103.116.206.0/23 -add china_ip_route 103.116.220.0/22 -add china_ip_route 103.116.224.0/22 -add china_ip_route 103.116.228.0/22 -add china_ip_route 103.117.16.0/22 -add china_ip_route 103.117.72.0/22 -add china_ip_route 103.117.88.0/22 -add china_ip_route 103.117.132.0/22 -add china_ip_route 103.117.136.0/22 -add china_ip_route 103.117.188.0/22 -add china_ip_route 103.117.220.0/22 -add china_ip_route 103.118.36.0/22 -add china_ip_route 103.118.52.0/22 -add china_ip_route 103.118.56.0/22 -add china_ip_route 103.118.60.0/22 -add china_ip_route 103.118.64.0/22 -add china_ip_route 103.118.68.0/22 -add china_ip_route 103.118.72.0/22 -add china_ip_route 103.118.88.0/22 -add china_ip_route 103.118.173.0/24 -add china_ip_route 103.118.192.0/22 -add china_ip_route 103.118.196.0/22 -add china_ip_route 103.118.200.0/22 -add china_ip_route 103.118.204.0/22 -add china_ip_route 103.118.208.0/22 -add china_ip_route 103.118.212.0/22 -add china_ip_route 103.118.216.0/22 -add china_ip_route 103.118.220.0/22 -add china_ip_route 103.118.240.0/22 -add china_ip_route 103.118.244.0/22 -add china_ip_route 103.118.248.0/22 -add china_ip_route 103.118.252.0/22 -add china_ip_route 103.119.0.0/22 -add china_ip_route 103.119.12.0/22 -add china_ip_route 103.119.16.0/22 -add china_ip_route 103.119.28.0/22 -add china_ip_route 103.119.44.0/22 -add china_ip_route 103.119.104.0/22 -add china_ip_route 103.119.115.0/24 -add china_ip_route 103.119.156.0/22 -add china_ip_route 103.119.180.0/22 -add china_ip_route 103.119.200.0/22 -add china_ip_route 103.119.224.0/22 -add china_ip_route 103.120.52.0/22 -add china_ip_route 103.120.72.0/22 -add china_ip_route 103.120.88.0/22 -add china_ip_route 103.120.96.0/22 -add china_ip_route 103.120.100.0/22 -add china_ip_route 103.120.140.0/22 -add china_ip_route 103.120.196.0/22 -add china_ip_route 103.120.224.0/22 -add china_ip_route 103.121.52.0/22 -add china_ip_route 103.121.92.0/22 -add china_ip_route 103.121.160.0/22 -add china_ip_route 103.121.164.0/22 -add china_ip_route 103.121.250.0/24 -add china_ip_route 103.121.252.0/22 -add china_ip_route 103.122.48.0/22 -add china_ip_route 103.122.176.0/22 -add china_ip_route 103.122.192.0/22 -add china_ip_route 103.122.240.0/22 -add china_ip_route 103.123.4.0/22 -add china_ip_route 103.123.56.0/22 -add china_ip_route 103.123.88.0/22 -add china_ip_route 103.123.92.0/22 -add china_ip_route 103.123.116.0/22 -add china_ip_route 103.123.160.0/22 -add china_ip_route 103.123.176.0/22 -add china_ip_route 103.123.200.0/22 -add china_ip_route 103.123.204.0/22 -add china_ip_route 103.123.208.0/22 -add china_ip_route 103.123.212.0/22 -add china_ip_route 103.124.24.0/22 -add china_ip_route 103.124.48.0/22 -add china_ip_route 103.124.64.0/22 -add china_ip_route 103.124.212.0/22 -add china_ip_route 103.124.216.0/22 -add china_ip_route 103.125.20.0/22 -add china_ip_route 103.125.44.0/22 -add china_ip_route 103.125.132.0/22 -add china_ip_route 103.125.164.0/22 -add china_ip_route 103.125.196.0/22 -add china_ip_route 103.125.236.0/22 -add china_ip_route 103.125.248.0/22 -add china_ip_route 103.126.0.0/22 -add china_ip_route 103.126.16.0/22 -add china_ip_route 103.126.44.0/22 -add china_ip_route 103.126.100.0/22 -add china_ip_route 103.126.124.0/22 -add china_ip_route 103.126.128.0/22 -add china_ip_route 103.126.132.0/22 -add china_ip_route 103.126.208.0/22 -add china_ip_route 103.129.52.0/22 -add china_ip_route 103.130.132.0/22 -add china_ip_route 103.130.152.0/24 -add china_ip_route 103.130.160.0/22 -add china_ip_route 103.130.228.0/22 -add china_ip_route 103.131.20.0/22 -add china_ip_route 103.131.36.0/22 -add china_ip_route 103.131.152.0/22 -add china_ip_route 103.131.168.0/22 -add china_ip_route 103.131.176.0/22 -add china_ip_route 103.131.224.0/22 -add china_ip_route 103.131.228.0/22 -add china_ip_route 103.131.240.0/22 -add china_ip_route 103.132.60.0/22 -add china_ip_route 103.132.64.0/22 -add china_ip_route 103.132.68.0/22 -add china_ip_route 103.132.72.0/22 -add china_ip_route 103.132.76.0/22 -add china_ip_route 103.132.80.0/22 -add china_ip_route 103.132.104.0/22 -add china_ip_route 103.132.108.0/22 -add china_ip_route 103.132.112.0/22 -add china_ip_route 103.132.116.0/22 -add china_ip_route 103.132.120.0/22 -add china_ip_route 103.132.160.0/22 -add china_ip_route 103.132.164.0/22 -add china_ip_route 103.132.188.0/22 -add china_ip_route 103.132.208.0/22 -add china_ip_route 103.132.212.0/22 -add china_ip_route 103.132.234.0/23 -add china_ip_route 103.133.12.0/22 -add china_ip_route 103.133.40.0/22 -add china_ip_route 103.133.128.0/22 -add china_ip_route 103.133.136.0/22 -add china_ip_route 103.133.176.0/22 -add china_ip_route 103.133.232.0/22 -add china_ip_route 103.134.12.0/24 -add china_ip_route 103.134.196.0/22 -add china_ip_route 103.135.80.0/22 -add china_ip_route 103.135.124.0/22 -add china_ip_route 103.135.148.0/22 -add china_ip_route 103.135.156.0/22 -add china_ip_route 103.135.160.0/22 -add china_ip_route 103.135.164.0/22 -add china_ip_route 103.135.176.0/22 -add china_ip_route 103.135.184.0/22 -add china_ip_route 103.135.192.0/22 -add china_ip_route 103.135.196.0/22 -add china_ip_route 103.135.236.0/22 -add china_ip_route 103.136.128.0/22 -add china_ip_route 103.136.232.0/22 -add china_ip_route 103.137.58.0/23 -add china_ip_route 103.137.60.0/24 -add china_ip_route 103.137.76.0/22 -add china_ip_route 103.137.136.0/23 -add china_ip_route 103.137.149.0/24 -add china_ip_route 103.137.180.0/22 -add china_ip_route 103.137.236.0/22 -add china_ip_route 103.138.2.0/23 -add china_ip_route 103.138.12.0/23 -add china_ip_route 103.138.80.0/22 -add china_ip_route 103.138.134.0/23 -add china_ip_route 103.138.156.0/23 -add china_ip_route 103.138.208.0/23 -add china_ip_route 103.138.220.0/23 -add china_ip_route 103.138.246.0/23 -add china_ip_route 103.138.248.0/23 -add china_ip_route 103.139.0.0/23 -add china_ip_route 103.139.2.0/23 -add china_ip_route 103.139.22.0/23 -add china_ip_route 103.139.113.0/24 -add china_ip_route 103.139.134.0/23 -add china_ip_route 103.139.136.0/23 -add china_ip_route 103.139.172.0/23 -add china_ip_route 103.139.204.0/23 -add china_ip_route 103.139.212.0/23 -add china_ip_route 103.140.8.0/23 -add china_ip_route 103.140.14.0/23 -add china_ip_route 103.140.70.0/23 -add china_ip_route 103.140.126.0/23 -add china_ip_route 103.140.140.0/23 -add china_ip_route 103.140.144.0/23 -add china_ip_route 103.140.152.0/23 -add china_ip_route 103.140.192.0/23 -add china_ip_route 103.140.228.0/23 -add china_ip_route 103.141.10.0/23 -add china_ip_route 103.141.58.0/23 -add china_ip_route 103.141.128.0/23 -add china_ip_route 103.141.186.0/23 -add china_ip_route 103.141.242.0/23 -add china_ip_route 103.142.28.0/23 -add china_ip_route 103.142.58.0/23 -add china_ip_route 103.142.82.0/23 -add china_ip_route 103.142.96.0/23 -add china_ip_route 103.142.102.0/23 -add china_ip_route 103.142.122.0/23 -add china_ip_route 103.142.128.0/23 -add china_ip_route 103.142.140.0/23 -add china_ip_route 103.142.154.0/23 -add china_ip_route 103.142.156.0/23 -add china_ip_route 103.142.172.0/23 -add china_ip_route 103.142.180.0/23 -add china_ip_route 103.142.186.0/23 -add china_ip_route 103.142.190.0/23 -add china_ip_route 103.142.220.0/23 -add china_ip_route 103.142.230.0/24 -add china_ip_route 103.142.234.0/23 -add china_ip_route 103.142.238.0/23 -add china_ip_route 103.142.248.0/23 -add china_ip_route 103.143.16.0/23 -add china_ip_route 103.143.18.0/23 -add china_ip_route 103.143.31.0/24 -add china_ip_route 103.143.74.0/23 -add china_ip_route 103.143.120.0/23 -add china_ip_route 103.143.124.0/23 -add china_ip_route 103.143.132.0/23 -add china_ip_route 103.143.134.0/23 -add china_ip_route 103.143.174.0/23 -add china_ip_route 103.143.228.0/23 -add china_ip_route 103.144.40.0/23 -add china_ip_route 103.144.52.0/23 -add china_ip_route 103.144.66.0/23 -add china_ip_route 103.144.70.0/23 -add china_ip_route 103.144.72.0/23 -add china_ip_route 103.144.108.0/23 -add china_ip_route 103.144.136.0/23 -add china_ip_route 103.144.148.0/23 -add china_ip_route 103.144.158.0/23 -add china_ip_route 103.144.240.0/23 -add china_ip_route 103.145.38.0/23 -add china_ip_route 103.145.40.0/23 -add china_ip_route 103.145.42.0/23 -add china_ip_route 103.145.60.0/23 -add china_ip_route 103.145.72.0/23 -add china_ip_route 103.145.80.0/23 -add china_ip_route 103.145.86.0/23 -add china_ip_route 103.145.92.0/23 -add china_ip_route 103.145.94.0/23 -add china_ip_route 103.145.98.0/23 -add china_ip_route 103.145.106.0/23 -add china_ip_route 103.145.122.0/23 -add china_ip_route 103.145.188.0/23 -add china_ip_route 103.145.190.0/23 -add china_ip_route 103.146.6.0/23 -add china_ip_route 103.146.72.0/23 -add china_ip_route 103.146.88.0/23 -add china_ip_route 103.146.90.0/23 -add china_ip_route 103.146.124.0/23 -add china_ip_route 103.146.126.0/23 -add china_ip_route 103.146.138.0/23 -add china_ip_route 103.146.230.0/23 -add china_ip_route 103.146.236.0/23 -add china_ip_route 103.146.252.0/23 -add china_ip_route 103.147.12.0/23 -add china_ip_route 103.147.124.0/23 -add china_ip_route 103.147.198.0/23 -add china_ip_route 103.147.206.0/23 -add china_ip_route 103.148.174.0/23 -add china_ip_route 103.149.6.0/23 -add china_ip_route 103.149.17.0/24 -add china_ip_route 103.149.44.0/23 -add china_ip_route 103.149.110.0/23 -add china_ip_route 103.149.132.0/23 -add china_ip_route 103.149.144.0/23 -add china_ip_route 103.149.156.0/23 -add china_ip_route 103.149.181.0/24 -add china_ip_route 103.149.210.0/23 -add china_ip_route 103.149.214.0/23 -add china_ip_route 103.149.220.0/23 -add china_ip_route 103.149.242.0/23 -add china_ip_route 103.149.244.0/23 -add china_ip_route 103.149.246.0/23 -add china_ip_route 103.149.248.0/23 -add china_ip_route 103.150.24.0/23 -add china_ip_route 103.150.66.0/23 -add china_ip_route 103.150.72.0/23 -add china_ip_route 103.150.122.0/23 -add china_ip_route 103.150.126.0/23 -add china_ip_route 103.150.128.0/23 -add china_ip_route 103.150.130.0/23 -add china_ip_route 103.150.146.0/23 -add china_ip_route 103.150.164.0/23 -add china_ip_route 103.150.172.0/23 -add china_ip_route 103.150.180.0/23 -add china_ip_route 103.150.200.0/23 -add china_ip_route 103.150.210.0/23 -add china_ip_route 103.150.214.0/23 -add china_ip_route 103.150.216.0/23 -add china_ip_route 103.150.244.0/23 -add china_ip_route 103.151.4.0/23 -add china_ip_route 103.151.44.0/23 -add china_ip_route 103.151.138.0/23 -add china_ip_route 103.151.142.0/23 -add china_ip_route 103.151.148.0/23 -add china_ip_route 103.151.150.0/23 -add china_ip_route 103.151.158.0/23 -add china_ip_route 103.151.178.0/23 -add china_ip_route 103.151.206.0/23 -add china_ip_route 103.151.216.0/23 -add china_ip_route 103.151.228.0/23 -add china_ip_route 103.152.14.0/23 -add china_ip_route 103.152.24.0/23 -add china_ip_route 103.152.28.0/23 -add china_ip_route 103.152.30.0/23 -add china_ip_route 103.152.56.0/23 -add china_ip_route 103.152.76.0/23 -add china_ip_route 103.152.98.0/23 -add china_ip_route 103.152.112.0/23 -add china_ip_route 103.152.120.0/23 -add china_ip_route 103.152.122.0/23 -add china_ip_route 103.152.132.0/23 -add china_ip_route 103.152.152.0/23 -add china_ip_route 103.152.168.0/23 -add china_ip_route 103.152.170.0/23 -add china_ip_route 103.152.186.0/23 -add china_ip_route 103.152.190.0/23 -add china_ip_route 103.152.192.0/23 -add china_ip_route 103.152.200.0/23 -add china_ip_route 103.152.208.0/23 -add china_ip_route 103.152.224.0/23 -add china_ip_route 103.152.226.0/23 -add china_ip_route 103.152.246.0/23 -add china_ip_route 103.152.250.0/23 -add china_ip_route 103.153.4.0/23 -add china_ip_route 103.153.36.0/23 -add china_ip_route 103.153.98.0/23 -add china_ip_route 103.153.100.0/23 -add china_ip_route 103.153.114.0/23 -add china_ip_route 103.153.122.0/23 -add china_ip_route 103.153.128.0/23 -add china_ip_route 103.153.132.0/23 -add china_ip_route 103.153.138.0/23 -add china_ip_route 103.153.146.0/23 -add china_ip_route 103.153.160.0/23 -add china_ip_route 103.154.18.0/23 -add china_ip_route 103.154.30.0/23 -add china_ip_route 103.154.32.0/23 -add china_ip_route 103.154.40.0/23 -add china_ip_route 103.154.66.0/23 -add china_ip_route 103.154.162.0/23 -add china_ip_route 103.154.164.0/23 -add china_ip_route 103.154.168.0/23 -add china_ip_route 103.154.242.0/23 -add china_ip_route 103.155.14.0/23 -add china_ip_route 103.155.16.0/23 -add china_ip_route 103.155.34.0/23 -add china_ip_route 103.155.48.0/23 -add china_ip_route 103.155.76.0/23 -add china_ip_route 103.155.100.0/23 -add china_ip_route 103.155.110.0/23 -add china_ip_route 103.155.120.0/23 -add china_ip_route 103.155.214.0/23 -add china_ip_route 103.155.248.0/23 -add china_ip_route 103.156.24.0/23 -add china_ip_route 103.156.28.0/23 -add china_ip_route 103.156.68.0/23 -add china_ip_route 103.156.78.0/23 -add china_ip_route 103.156.104.0/23 -add china_ip_route 103.156.158.0/23 -add china_ip_route 103.156.174.0/23 -add china_ip_route 103.156.186.0/23 -add china_ip_route 103.156.228.0/23 -add china_ip_route 103.157.30.0/23 -add china_ip_route 103.157.138.0/23 -add china_ip_route 103.157.174.0/23 -add china_ip_route 103.157.212.0/23 -add china_ip_route 103.157.234.0/23 -add china_ip_route 103.157.254.0/23 -add china_ip_route 103.158.0.0/23 -add china_ip_route 103.158.8.0/23 -add china_ip_route 103.158.13.0/24 -add china_ip_route 103.158.16.0/23 -add china_ip_route 103.158.190.0/23 -add china_ip_route 103.158.200.0/23 -add china_ip_route 103.158.224.0/23 -add china_ip_route 103.159.80.0/23 -add china_ip_route 103.159.122.0/23 -add china_ip_route 103.159.124.0/23 -add china_ip_route 103.159.134.0/23 -add china_ip_route 103.159.142.0/23 -add china_ip_route 103.160.32.0/23 -add china_ip_route 103.160.34.0/23 -add china_ip_route 103.160.112.0/23 -add china_ip_route 103.160.114.0/23 -add china_ip_route 103.160.244.0/23 -add china_ip_route 103.160.254.0/23 -add china_ip_route 103.161.14.0/23 -add china_ip_route 103.161.102.0/23 -add china_ip_route 103.161.138.0/23 -add china_ip_route 103.161.208.0/23 -add china_ip_route 103.161.220.0/23 -add china_ip_route 103.161.254.0/23 -add china_ip_route 103.162.10.0/23 -add china_ip_route 103.162.32.0/23 -add china_ip_route 103.162.38.0/23 -add china_ip_route 103.162.116.0/23 -add china_ip_route 103.163.28.0/23 -add china_ip_route 103.163.32.0/23 -add china_ip_route 103.163.46.0/23 -add china_ip_route 103.163.74.0/23 -add china_ip_route 103.163.180.0/23 -add china_ip_route 103.164.4.0/23 -add china_ip_route 103.164.32.0/23 -add china_ip_route 103.164.40.0/23 -add china_ip_route 103.164.42.0/23 -add china_ip_route 103.164.64.0/23 -add china_ip_route 103.164.76.0/23 -add china_ip_route 103.164.178.0/23 -add china_ip_route 103.164.226.0/23 -add china_ip_route 103.165.44.0/23 -add china_ip_route 103.165.52.0/23 -add china_ip_route 103.165.82.0/23 -add china_ip_route 103.165.110.0/23 -add china_ip_route 103.166.20.0/23 -add china_ip_route 103.166.50.0/23 -add china_ip_route 103.166.52.0/23 -add china_ip_route 103.166.54.0/23 -add china_ip_route 103.166.84.0/23 -add china_ip_route 103.166.138.0/23 -add china_ip_route 103.166.242.0/23 -add china_ip_route 103.166.246.0/23 -add china_ip_route 103.167.0.0/23 -add china_ip_route 103.167.36.0/23 -add china_ip_route 103.168.98.0/23 -add china_ip_route 103.168.170.0/23 -add china_ip_route 103.169.50.0/23 -add china_ip_route 103.169.62.0/23 -add china_ip_route 103.169.108.0/23 -add china_ip_route 103.169.162.0/23 -add china_ip_route 103.169.202.0/23 -add china_ip_route 103.169.216.0/23 -add china_ip_route 103.170.4.0/23 -add china_ip_route 103.170.72.0/23 -add china_ip_route 103.170.134.0/23 -add china_ip_route 103.170.210.0/23 -add china_ip_route 103.170.212.0/23 -add china_ip_route 103.171.32.0/23 -add china_ip_route 103.171.166.0/23 -add china_ip_route 103.171.214.0/23 -add china_ip_route 103.172.32.0/23 -add china_ip_route 103.172.160.0/23 -add china_ip_route 103.172.191.0/24 -add china_ip_route 103.173.102.0/23 -add china_ip_route 103.173.182.0/23 -add china_ip_route 103.173.184.0/23 -add china_ip_route 103.174.94.0/23 -add china_ip_route 103.175.14.0/23 -add china_ip_route 103.175.98.0/23 -add china_ip_route 103.175.114.0/23 -add china_ip_route 103.175.118.0/23 -add china_ip_route 103.176.52.0/23 -add china_ip_route 103.176.222.0/23 -add china_ip_route 103.176.244.0/23 -add china_ip_route 103.177.28.0/23 -add china_ip_route 103.177.44.0/23 -add china_ip_route 103.177.70.0/23 -add china_ip_route 103.177.136.0/23 -add china_ip_route 103.177.162.0/23 -add china_ip_route 103.178.56.0/23 -add china_ip_route 103.192.0.0/22 -add china_ip_route 103.192.4.0/22 -add china_ip_route 103.192.8.0/22 -add china_ip_route 103.192.12.0/22 -add china_ip_route 103.192.16.0/22 -add china_ip_route 103.192.20.0/22 -add china_ip_route 103.192.24.0/22 -add china_ip_route 103.192.28.0/22 -add china_ip_route 103.192.48.0/22 -add china_ip_route 103.192.52.0/22 -add china_ip_route 103.192.56.0/22 -add china_ip_route 103.192.84.0/22 -add china_ip_route 103.192.88.0/22 -add china_ip_route 103.192.92.0/22 -add china_ip_route 103.192.96.0/22 -add china_ip_route 103.192.100.0/22 -add china_ip_route 103.192.104.0/22 -add china_ip_route 103.192.108.0/22 -add china_ip_route 103.192.112.0/22 -add china_ip_route 103.192.128.0/22 -add china_ip_route 103.192.132.0/22 -add china_ip_route 103.192.136.0/22 -add china_ip_route 103.192.140.0/22 -add china_ip_route 103.192.144.0/22 -add china_ip_route 103.192.164.0/22 -add china_ip_route 103.192.188.0/22 -add china_ip_route 103.192.208.0/22 -add china_ip_route 103.192.212.0/22 -add china_ip_route 103.192.216.0/22 -add china_ip_route 103.192.252.0/22 -add china_ip_route 103.193.40.0/22 -add china_ip_route 103.193.44.0/22 -add china_ip_route 103.193.120.0/22 -add china_ip_route 103.193.140.0/22 -add china_ip_route 103.193.160.0/22 -add china_ip_route 103.193.188.0/22 -add china_ip_route 103.193.192.0/22 -add china_ip_route 103.193.212.0/22 -add china_ip_route 103.193.216.0/22 -add china_ip_route 103.193.220.0/22 -add china_ip_route 103.193.224.0/22 -add china_ip_route 103.193.228.0/22 -add china_ip_route 103.193.232.0/22 -add china_ip_route 103.193.236.0/22 -add china_ip_route 103.193.240.0/22 -add china_ip_route 103.194.16.0/22 -add china_ip_route 103.195.104.0/22 -add china_ip_route 103.195.112.0/22 -add china_ip_route 103.195.148.0/22 -add china_ip_route 103.195.152.0/22 -add china_ip_route 103.195.160.0/22 -add china_ip_route 103.196.64.0/22 -add china_ip_route 103.196.72.0/22 -add china_ip_route 103.196.88.0/22 -add china_ip_route 103.196.92.0/22 -add china_ip_route 103.196.96.0/22 -add china_ip_route 103.196.168.0/22 -add china_ip_route 103.196.204.0/22 -add china_ip_route 103.197.180.0/22 -add china_ip_route 103.197.228.0/22 -add china_ip_route 103.198.20.0/22 -add china_ip_route 103.198.60.0/22 -add china_ip_route 103.198.64.0/22 -add china_ip_route 103.198.72.0/22 -add china_ip_route 103.198.124.0/22 -add china_ip_route 103.198.156.0/22 -add china_ip_route 103.198.180.0/22 -add china_ip_route 103.198.196.0/22 -add china_ip_route 103.198.216.0/22 -add china_ip_route 103.198.220.0/22 -add china_ip_route 103.198.224.0/22 -add china_ip_route 103.198.228.0/22 -add china_ip_route 103.198.232.0/22 -add china_ip_route 103.198.236.0/22 -add china_ip_route 103.198.240.0/22 -add china_ip_route 103.198.244.0/22 -add china_ip_route 103.199.164.0/22 -add china_ip_route 103.199.196.0/22 -add china_ip_route 103.199.228.0/22 -add china_ip_route 103.199.248.0/22 -add china_ip_route 103.199.252.0/22 -add china_ip_route 103.200.28.0/22 -add china_ip_route 103.200.52.0/22 -add china_ip_route 103.200.64.0/22 -add china_ip_route 103.200.68.0/22 -add china_ip_route 103.200.136.0/22 -add china_ip_route 103.200.140.0/22 -add china_ip_route 103.200.144.0/22 -add china_ip_route 103.200.148.0/22 -add china_ip_route 103.200.152.0/22 -add china_ip_route 103.200.156.0/22 -add china_ip_route 103.200.160.0/22 -add china_ip_route 103.200.164.0/22 -add china_ip_route 103.200.168.0/22 -add china_ip_route 103.200.172.0/22 -add china_ip_route 103.200.176.0/22 -add china_ip_route 103.200.180.0/22 -add china_ip_route 103.200.184.0/22 -add china_ip_route 103.200.188.0/22 -add china_ip_route 103.200.192.0/22 -add china_ip_route 103.200.220.0/22 -add china_ip_route 103.200.224.0/22 -add china_ip_route 103.200.228.0/22 -add china_ip_route 103.200.232.0/22 -add china_ip_route 103.200.236.0/22 -add china_ip_route 103.200.240.0/22 -add china_ip_route 103.200.244.0/22 -add china_ip_route 103.200.248.0/22 -add china_ip_route 103.200.252.0/22 -add china_ip_route 103.201.0.0/22 -add china_ip_route 103.201.4.0/22 -add china_ip_route 103.201.8.0/22 -add china_ip_route 103.201.12.0/22 -add china_ip_route 103.201.16.0/22 -add china_ip_route 103.201.20.0/22 -add china_ip_route 103.201.28.0/22 -add china_ip_route 103.201.32.0/22 -add china_ip_route 103.201.36.0/22 -add china_ip_route 103.201.40.0/22 -add china_ip_route 103.201.44.0/22 -add china_ip_route 103.201.48.0/22 -add china_ip_route 103.201.52.0/22 -add china_ip_route 103.201.56.0/22 -add china_ip_route 103.201.60.0/22 -add china_ip_route 103.201.64.0/22 -add china_ip_route 103.201.76.0/22 -add china_ip_route 103.201.80.0/22 -add china_ip_route 103.201.84.0/22 -add china_ip_route 103.201.88.0/22 -add china_ip_route 103.201.92.0/22 -add china_ip_route 103.201.96.0/22 -add china_ip_route 103.201.100.0/22 -add china_ip_route 103.201.104.0/22 -add china_ip_route 103.201.108.0/22 -add china_ip_route 103.201.112.0/22 -add china_ip_route 103.201.116.0/22 -add china_ip_route 103.201.120.0/22 -add china_ip_route 103.201.152.0/22 -add china_ip_route 103.201.156.0/22 -add china_ip_route 103.201.160.0/22 -add china_ip_route 103.201.164.0/22 -add china_ip_route 103.201.168.0/22 -add china_ip_route 103.201.172.0/22 -add china_ip_route 103.201.176.0/22 -add china_ip_route 103.201.180.0/22 -add china_ip_route 103.201.184.0/22 -add china_ip_route 103.201.188.0/22 -add china_ip_route 103.201.192.0/22 -add china_ip_route 103.201.196.0/22 -add china_ip_route 103.201.200.0/22 -add china_ip_route 103.201.204.0/22 -add china_ip_route 103.201.208.0/22 -add china_ip_route 103.201.212.0/22 -add china_ip_route 103.201.216.0/22 -add china_ip_route 103.201.220.0/22 -add china_ip_route 103.201.224.0/22 -add china_ip_route 103.201.228.0/22 -add china_ip_route 103.201.232.0/22 -add china_ip_route 103.201.236.0/22 -add china_ip_route 103.201.240.0/22 -add china_ip_route 103.201.244.0/22 -add china_ip_route 103.201.248.0/22 -add china_ip_route 103.201.252.0/22 -add china_ip_route 103.202.0.0/22 -add china_ip_route 103.202.4.0/22 -add china_ip_route 103.202.8.0/22 -add china_ip_route 103.202.12.0/22 -add china_ip_route 103.202.16.0/22 -add china_ip_route 103.202.20.0/22 -add china_ip_route 103.202.24.0/22 -add china_ip_route 103.202.28.0/22 -add china_ip_route 103.202.32.0/22 -add china_ip_route 103.202.36.0/22 -add china_ip_route 103.202.40.0/22 -add china_ip_route 103.202.44.0/22 -add china_ip_route 103.202.56.0/22 -add china_ip_route 103.202.60.0/22 -add china_ip_route 103.202.64.0/22 -add china_ip_route 103.202.68.0/22 -add china_ip_route 103.202.72.0/22 -add china_ip_route 103.202.76.0/22 -add china_ip_route 103.202.80.0/22 -add china_ip_route 103.202.84.0/22 -add china_ip_route 103.202.88.0/22 -add china_ip_route 103.202.92.0/22 -add china_ip_route 103.202.96.0/22 -add china_ip_route 103.202.100.0/22 -add china_ip_route 103.202.104.0/22 -add china_ip_route 103.202.108.0/22 -add china_ip_route 103.202.112.0/22 -add china_ip_route 103.202.116.0/22 -add china_ip_route 103.202.120.0/22 -add china_ip_route 103.202.124.0/22 -add china_ip_route 103.202.128.0/22 -add china_ip_route 103.202.132.0/22 -add china_ip_route 103.202.136.0/22 -add china_ip_route 103.202.140.0/22 -add china_ip_route 103.202.144.0/22 -add china_ip_route 103.202.152.0/22 -add china_ip_route 103.202.156.0/22 -add china_ip_route 103.202.160.0/22 -add china_ip_route 103.202.164.0/22 -add china_ip_route 103.202.168.0/22 -add china_ip_route 103.202.172.0/22 -add china_ip_route 103.202.176.0/22 -add china_ip_route 103.202.180.0/22 -add china_ip_route 103.202.184.0/22 -add china_ip_route 103.202.188.0/22 -add china_ip_route 103.202.192.0/22 -add china_ip_route 103.202.196.0/22 -add china_ip_route 103.202.200.0/21 -add china_ip_route 103.202.212.0/22 -add china_ip_route 103.202.228.0/22 -add china_ip_route 103.202.236.0/22 -add china_ip_route 103.202.240.0/22 -add china_ip_route 103.202.244.0/22 -add china_ip_route 103.202.248.0/22 -add china_ip_route 103.202.252.0/22 -add china_ip_route 103.203.0.0/22 -add china_ip_route 103.203.4.0/22 -add china_ip_route 103.203.8.0/22 -add china_ip_route 103.203.12.0/22 -add china_ip_route 103.203.16.0/22 -add china_ip_route 103.203.20.0/22 -add china_ip_route 103.203.24.0/22 -add china_ip_route 103.203.28.0/22 -add china_ip_route 103.203.32.0/22 -add china_ip_route 103.203.56.0/22 -add china_ip_route 103.203.96.0/22 -add china_ip_route 103.203.100.0/22 -add china_ip_route 103.203.104.0/22 -add china_ip_route 103.203.108.0/22 -add china_ip_route 103.203.112.0/22 -add china_ip_route 103.203.116.0/22 -add china_ip_route 103.203.120.0/22 -add china_ip_route 103.203.124.0/22 -add china_ip_route 103.203.128.0/22 -add china_ip_route 103.203.140.0/22 -add china_ip_route 103.203.164.0/22 -add china_ip_route 103.203.168.0/22 -add china_ip_route 103.203.192.0/22 -add china_ip_route 103.203.200.0/22 -add china_ip_route 103.203.212.0/22 -add china_ip_route 103.203.216.0/22 -add china_ip_route 103.204.24.0/22 -add china_ip_route 103.204.72.0/22 -add china_ip_route 103.204.88.0/22 -add china_ip_route 103.204.112.0/22 -add china_ip_route 103.204.136.0/22 -add china_ip_route 103.204.140.0/22 -add china_ip_route 103.204.144.0/22 -add china_ip_route 103.204.148.0/22 -add china_ip_route 103.204.152.0/22 -add china_ip_route 103.204.196.0/22 -add china_ip_route 103.204.232.0/22 -add china_ip_route 103.204.236.0/22 -add china_ip_route 103.205.4.0/22 -add china_ip_route 103.205.8.0/22 -add china_ip_route 103.205.40.0/22 -add china_ip_route 103.205.44.0/22 -add china_ip_route 103.205.52.0/22 -add china_ip_route 103.205.108.0/22 -add china_ip_route 103.205.116.0/22 -add china_ip_route 103.205.120.0/22 -add china_ip_route 103.205.136.0/22 -add china_ip_route 103.205.162.0/24 -add china_ip_route 103.205.188.0/22 -add china_ip_route 103.205.192.0/22 -add china_ip_route 103.205.196.0/22 -add china_ip_route 103.205.200.0/22 -add china_ip_route 103.205.236.0/22 -add china_ip_route 103.205.248.0/22 -add china_ip_route 103.205.252.0/22 -add china_ip_route 103.206.0.0/22 -add china_ip_route 103.206.44.0/22 -add china_ip_route 103.206.148.0/22 -add china_ip_route 103.207.48.0/22 -add china_ip_route 103.207.104.0/22 -add china_ip_route 103.207.164.0/22 -add china_ip_route 103.207.184.0/22 -add china_ip_route 103.207.188.0/22 -add china_ip_route 103.207.192.0/22 -add china_ip_route 103.207.196.0/22 -add china_ip_route 103.207.200.0/22 -add china_ip_route 103.207.204.0/22 -add china_ip_route 103.207.208.0/22 -add china_ip_route 103.207.212.0/22 -add china_ip_route 103.207.220.0/22 -add china_ip_route 103.207.228.0/22 -add china_ip_route 103.207.232.0/22 -add china_ip_route 103.208.12.0/22 -add china_ip_route 103.208.16.0/22 -add china_ip_route 103.208.28.0/22 -add china_ip_route 103.208.40.0/22 -add china_ip_route 103.208.44.0/22 -add china_ip_route 103.208.48.0/22 -add china_ip_route 103.209.112.0/22 -add china_ip_route 103.209.136.0/22 -add china_ip_route 103.209.200.0/22 -add china_ip_route 103.209.208.0/22 -add china_ip_route 103.209.216.0/22 -add china_ip_route 103.210.0.0/22 -add china_ip_route 103.210.96.0/22 -add china_ip_route 103.210.156.0/22 -add china_ip_route 103.210.160.0/22 -add china_ip_route 103.210.164.0/22 -add china_ip_route 103.210.168.0/22 -add china_ip_route 103.210.172.0/22 -add china_ip_route 103.210.176.0/22 -add china_ip_route 103.210.180.0/22 -add china_ip_route 103.210.184.0/22 -add china_ip_route 103.210.188.0/22 -add china_ip_route 103.210.216.0/22 -add china_ip_route 103.211.44.0/22 -add china_ip_route 103.211.96.0/22 -add china_ip_route 103.211.100.0/22 -add china_ip_route 103.211.156.0/22 -add china_ip_route 103.211.164.0/22 -add china_ip_route 103.211.192.0/22 -add china_ip_route 103.211.220.0/22 -add china_ip_route 103.211.224.0/22 -add china_ip_route 103.211.248.0/22 -add china_ip_route 103.212.0.0/22 -add china_ip_route 103.212.4.0/22 -add china_ip_route 103.212.8.0/22 -add china_ip_route 103.212.12.0/22 -add china_ip_route 103.212.32.0/22 -add china_ip_route 103.212.44.0/22 -add china_ip_route 103.212.48.0/22 -add china_ip_route 103.212.84.0/22 -add china_ip_route 103.212.100.0/22 -add china_ip_route 103.212.104.0/22 -add china_ip_route 103.212.108.0/22 -add china_ip_route 103.212.148.0/22 -add china_ip_route 103.212.164.0/22 -add china_ip_route 103.212.196.0/22 -add china_ip_route 103.212.200.0/22 -add china_ip_route 103.212.228.0/22 -add china_ip_route 103.212.252.0/22 -add china_ip_route 103.213.40.0/22 -add china_ip_route 103.213.44.0/22 -add china_ip_route 103.213.48.0/22 -add china_ip_route 103.213.52.0/22 -add china_ip_route 103.213.56.0/22 -add china_ip_route 103.213.60.0/22 -add china_ip_route 103.213.64.0/22 -add china_ip_route 103.213.68.0/22 -add china_ip_route 103.213.72.0/22 -add china_ip_route 103.213.76.0/22 -add china_ip_route 103.213.80.0/22 -add china_ip_route 103.213.84.0/22 -add china_ip_route 103.213.88.0/22 -add china_ip_route 103.213.92.0/22 -add china_ip_route 103.213.96.0/22 -add china_ip_route 103.213.132.0/22 -add china_ip_route 103.213.136.0/22 -add china_ip_route 103.213.140.0/22 -add china_ip_route 103.213.144.0/22 -add china_ip_route 103.213.148.0/22 -add china_ip_route 103.213.152.0/22 -add china_ip_route 103.213.156.0/22 -add china_ip_route 103.213.160.0/22 -add china_ip_route 103.213.164.0/22 -add china_ip_route 103.213.168.0/22 -add china_ip_route 103.213.172.0/22 -add china_ip_route 103.213.176.0/22 -add china_ip_route 103.213.180.0/22 -add china_ip_route 103.213.184.0/22 -add china_ip_route 103.213.188.0/22 -add china_ip_route 103.213.248.0/22 -add china_ip_route 103.214.48.0/22 -add china_ip_route 103.214.84.0/22 -add china_ip_route 103.214.168.0/22 -add china_ip_route 103.214.212.0/22 -add china_ip_route 103.214.240.0/22 -add china_ip_route 103.214.244.0/22 -add china_ip_route 103.215.28.0/22 -add china_ip_route 103.215.32.0/22 -add china_ip_route 103.215.36.0/22 -add china_ip_route 103.215.44.0/22 -add china_ip_route 103.215.48.0/22 -add china_ip_route 103.215.100.0/22 -add china_ip_route 103.215.104.0/22 -add china_ip_route 103.215.108.0/22 -add china_ip_route 103.215.116.0/22 -add china_ip_route 103.215.120.0/22 -add china_ip_route 103.215.140.0/22 -add china_ip_route 103.216.4.0/22 -add china_ip_route 103.216.8.0/22 -add china_ip_route 103.216.12.0/22 -add china_ip_route 103.216.16.0/22 -add china_ip_route 103.216.20.0/22 -add china_ip_route 103.216.24.0/22 -add china_ip_route 103.216.28.0/22 -add china_ip_route 103.216.32.0/22 -add china_ip_route 103.216.36.0/22 -add china_ip_route 103.216.40.0/22 -add china_ip_route 103.216.44.0/22 -add china_ip_route 103.216.64.0/22 -add china_ip_route 103.216.108.0/22 -add china_ip_route 103.216.136.0/22 -add china_ip_route 103.216.152.0/22 -add china_ip_route 103.216.224.0/22 -add china_ip_route 103.216.228.0/22 -add china_ip_route 103.216.240.0/22 -add china_ip_route 103.216.244.0/22 -add china_ip_route 103.216.248.0/22 -add china_ip_route 103.216.252.0/22 -add china_ip_route 103.217.0.0/22 -add china_ip_route 103.217.4.0/22 -add china_ip_route 103.217.8.0/22 -add china_ip_route 103.217.12.0/22 -add china_ip_route 103.217.16.0/22 -add china_ip_route 103.217.20.0/22 -add china_ip_route 103.217.24.0/22 -add china_ip_route 103.217.28.0/22 -add china_ip_route 103.217.32.0/22 -add china_ip_route 103.217.36.0/22 -add china_ip_route 103.217.40.0/22 -add china_ip_route 103.217.44.0/22 -add china_ip_route 103.217.48.0/22 -add china_ip_route 103.217.52.0/22 -add china_ip_route 103.217.56.0/22 -add china_ip_route 103.217.60.0/22 -add china_ip_route 103.217.168.0/22 -add china_ip_route 103.217.180.0/22 -add china_ip_route 103.217.184.0/22 -add china_ip_route 103.217.188.0/22 -add china_ip_route 103.217.192.0/22 -add china_ip_route 103.217.196.0/22 -add china_ip_route 103.217.200.0/22 -add china_ip_route 103.217.204.0/22 -add china_ip_route 103.218.8.0/22 -add china_ip_route 103.218.12.0/22 -add china_ip_route 103.218.16.0/22 -add china_ip_route 103.218.20.0/22 -add china_ip_route 103.218.28.0/22 -add china_ip_route 103.218.32.0/22 -add china_ip_route 103.218.36.0/22 -add china_ip_route 103.218.40.0/22 -add china_ip_route 103.218.44.0/22 -add china_ip_route 103.218.48.0/22 -add china_ip_route 103.218.52.0/22 -add china_ip_route 103.218.56.0/22 -add china_ip_route 103.218.60.0/22 -add china_ip_route 103.218.64.0/22 -add china_ip_route 103.218.68.0/22 -add china_ip_route 103.218.72.0/22 -add china_ip_route 103.218.76.0/22 -add china_ip_route 103.218.80.0/22 -add china_ip_route 103.218.84.0/22 -add china_ip_route 103.218.88.0/22 -add china_ip_route 103.218.92.0/22 -add china_ip_route 103.218.192.0/22 -add china_ip_route 103.218.196.0/22 -add china_ip_route 103.218.200.0/22 -add china_ip_route 103.218.204.0/22 -add china_ip_route 103.218.208.0/22 -add china_ip_route 103.218.212.0/22 -add china_ip_route 103.218.216.0/22 -add china_ip_route 103.219.24.0/22 -add china_ip_route 103.219.28.0/22 -add china_ip_route 103.219.32.0/22 -add china_ip_route 103.219.36.0/22 -add china_ip_route 103.219.64.0/22 -add china_ip_route 103.219.84.0/22 -add china_ip_route 103.219.88.0/22 -add china_ip_route 103.219.92.0/22 -add china_ip_route 103.219.96.0/22 -add china_ip_route 103.219.100.0/22 -add china_ip_route 103.219.176.0/22 -add china_ip_route 103.219.184.0/22 -add china_ip_route 103.220.48.0/22 -add china_ip_route 103.220.52.0/22 -add china_ip_route 103.220.56.0/22 -add china_ip_route 103.220.60.0/22 -add china_ip_route 103.220.64.0/22 -add china_ip_route 103.220.92.0/22 -add china_ip_route 103.220.96.0/22 -add china_ip_route 103.220.100.0/22 -add china_ip_route 103.220.104.0/22 -add china_ip_route 103.220.108.0/22 -add china_ip_route 103.220.116.0/22 -add china_ip_route 103.220.120.0/22 -add china_ip_route 103.220.124.0/22 -add china_ip_route 103.220.128.0/22 -add china_ip_route 103.220.132.0/22 -add china_ip_route 103.220.136.0/22 -add china_ip_route 103.220.140.0/22 -add china_ip_route 103.220.144.0/22 -add china_ip_route 103.220.148.0/22 -add china_ip_route 103.220.152.0/22 -add china_ip_route 103.220.160.0/22 -add china_ip_route 103.220.164.0/22 -add china_ip_route 103.220.168.0/22 -add china_ip_route 103.220.172.0/22 -add china_ip_route 103.220.176.0/22 -add china_ip_route 103.220.180.0/22 -add china_ip_route 103.220.184.0/22 -add china_ip_route 103.220.188.0/22 -add china_ip_route 103.220.192.0/22 -add china_ip_route 103.220.196.0/22 -add china_ip_route 103.220.200.0/22 -add china_ip_route 103.220.240.0/22 -add china_ip_route 103.220.244.0/22 -add china_ip_route 103.220.248.0/22 -add china_ip_route 103.220.252.0/22 -add china_ip_route 103.221.0.0/22 -add china_ip_route 103.221.4.0/22 -add china_ip_route 103.221.8.0/22 -add china_ip_route 103.221.12.0/22 -add china_ip_route 103.221.16.0/22 -add china_ip_route 103.221.20.0/22 -add china_ip_route 103.221.24.0/22 -add china_ip_route 103.221.28.0/22 -add china_ip_route 103.221.32.0/22 -add china_ip_route 103.221.36.0/22 -add china_ip_route 103.221.40.0/22 -add china_ip_route 103.221.44.0/22 -add china_ip_route 103.221.48.0/22 -add china_ip_route 103.221.88.0/22 -add china_ip_route 103.221.92.0/22 -add china_ip_route 103.221.96.0/22 -add china_ip_route 103.221.100.0/22 -add china_ip_route 103.221.104.0/22 -add china_ip_route 103.221.108.0/22 -add china_ip_route 103.221.112.0/22 -add china_ip_route 103.221.116.0/22 -add china_ip_route 103.221.120.0/22 -add china_ip_route 103.221.124.0/22 -add china_ip_route 103.221.128.0/22 -add china_ip_route 103.221.132.0/22 -add china_ip_route 103.221.136.0/22 -add china_ip_route 103.221.140.0/22 -add china_ip_route 103.221.144.0/22 -add china_ip_route 103.221.148.0/22 -add china_ip_route 103.221.152.0/22 -add china_ip_route 103.221.156.0/22 -add china_ip_route 103.221.160.0/22 -add china_ip_route 103.221.164.0/22 -add china_ip_route 103.221.168.0/22 -add china_ip_route 103.221.172.0/22 -add china_ip_route 103.221.176.0/22 -add china_ip_route 103.221.180.0/22 -add china_ip_route 103.221.184.0/22 -add china_ip_route 103.221.188.0/22 -add china_ip_route 103.221.192.0/22 -add china_ip_route 103.221.196.0/22 -add china_ip_route 103.221.200.0/22 -add china_ip_route 103.221.204.0/22 -add china_ip_route 103.222.0.0/22 -add china_ip_route 103.222.4.0/22 -add china_ip_route 103.222.8.0/22 -add china_ip_route 103.222.12.0/22 -add china_ip_route 103.222.16.0/22 -add china_ip_route 103.222.24.0/22 -add china_ip_route 103.222.28.0/22 -add china_ip_route 103.222.32.0/22 -add china_ip_route 103.222.36.0/22 -add china_ip_route 103.222.40.0/22 -add china_ip_route 103.222.44.0/22 -add china_ip_route 103.222.48.0/22 -add china_ip_route 103.222.52.0/22 -add china_ip_route 103.222.56.0/22 -add china_ip_route 103.222.60.0/22 -add china_ip_route 103.222.64.0/22 -add china_ip_route 103.222.68.0/22 -add china_ip_route 103.222.72.0/22 -add china_ip_route 103.222.76.0/22 -add china_ip_route 103.222.80.0/22 -add china_ip_route 103.222.84.0/22 -add china_ip_route 103.222.88.0/22 -add china_ip_route 103.222.92.0/22 -add china_ip_route 103.222.96.0/22 -add china_ip_route 103.222.100.0/22 -add china_ip_route 103.222.104.0/22 -add china_ip_route 103.222.108.0/22 -add china_ip_route 103.222.112.0/22 -add china_ip_route 103.222.116.0/22 -add china_ip_route 103.222.120.0/22 -add china_ip_route 103.222.124.0/22 -add china_ip_route 103.222.128.0/22 -add china_ip_route 103.222.132.0/22 -add china_ip_route 103.222.136.0/22 -add china_ip_route 103.222.140.0/22 -add china_ip_route 103.222.144.0/22 -add china_ip_route 103.222.148.0/22 -add china_ip_route 103.222.152.0/22 -add china_ip_route 103.222.156.0/22 -add china_ip_route 103.222.160.0/22 -add china_ip_route 103.222.164.0/22 -add china_ip_route 103.222.168.0/22 -add china_ip_route 103.222.172.0/22 -add china_ip_route 103.222.176.0/22 -add china_ip_route 103.222.180.0/22 -add china_ip_route 103.222.184.0/22 -add china_ip_route 103.222.188.0/22 -add china_ip_route 103.222.192.0/22 -add china_ip_route 103.222.196.0/22 -add china_ip_route 103.222.200.0/22 -add china_ip_route 103.222.204.0/22 -add china_ip_route 103.222.208.0/22 -add china_ip_route 103.222.212.0/22 -add china_ip_route 103.222.216.0/22 -add china_ip_route 103.222.220.0/22 -add china_ip_route 103.222.224.0/22 -add china_ip_route 103.222.228.0/22 -add china_ip_route 103.222.232.0/22 -add china_ip_route 103.222.240.0/22 -add china_ip_route 103.222.244.0/22 -add china_ip_route 103.223.16.0/22 -add china_ip_route 103.223.20.0/22 -add china_ip_route 103.223.24.0/22 -add china_ip_route 103.223.28.0/22 -add china_ip_route 103.223.32.0/22 -add china_ip_route 103.223.36.0/22 -add china_ip_route 103.223.40.0/22 -add china_ip_route 103.223.44.0/22 -add china_ip_route 103.223.48.0/22 -add china_ip_route 103.223.52.0/22 -add china_ip_route 103.223.56.0/22 -add china_ip_route 103.223.60.0/22 -add china_ip_route 103.223.64.0/22 -add china_ip_route 103.223.68.0/22 -add china_ip_route 103.223.72.0/22 -add china_ip_route 103.223.76.0/22 -add china_ip_route 103.223.80.0/22 -add china_ip_route 103.223.84.0/22 -add china_ip_route 103.223.88.0/22 -add china_ip_route 103.223.92.0/22 -add china_ip_route 103.223.96.0/22 -add china_ip_route 103.223.100.0/22 -add china_ip_route 103.223.104.0/22 -add china_ip_route 103.223.108.0/22 -add china_ip_route 103.223.112.0/22 -add china_ip_route 103.223.116.0/22 -add china_ip_route 103.223.120.0/22 -add china_ip_route 103.223.124.0/22 -add china_ip_route 103.223.128.0/22 -add china_ip_route 103.223.132.0/22 -add china_ip_route 103.223.140.0/22 -add china_ip_route 103.223.144.0/22 -add china_ip_route 103.223.148.0/22 -add china_ip_route 103.223.152.0/22 -add china_ip_route 103.223.156.0/22 -add china_ip_route 103.223.160.0/22 -add china_ip_route 103.223.164.0/22 -add china_ip_route 103.223.168.0/22 -add china_ip_route 103.223.172.0/22 -add china_ip_route 103.223.176.0/22 -add china_ip_route 103.223.180.0/22 -add china_ip_route 103.223.188.0/22 -add china_ip_route 103.223.192.0/22 -add china_ip_route 103.223.196.0/22 -add china_ip_route 103.223.200.0/22 -add china_ip_route 103.223.204.0/22 -add china_ip_route 103.223.208.0/22 -add china_ip_route 103.223.212.0/22 -add china_ip_route 103.223.216.0/22 -add china_ip_route 103.223.220.0/22 -add china_ip_route 103.223.224.0/22 -add china_ip_route 103.223.228.0/22 -add china_ip_route 103.223.232.0/22 -add china_ip_route 103.223.236.0/22 -add china_ip_route 103.223.240.0/22 -add china_ip_route 103.223.244.0/22 -add china_ip_route 103.223.248.0/22 -add china_ip_route 103.223.252.0/22 -add china_ip_route 103.224.0.0/22 -add china_ip_route 103.224.40.0/22 -add china_ip_route 103.224.44.0/22 -add china_ip_route 103.224.60.0/22 -add china_ip_route 103.224.80.0/22 -add china_ip_route 103.224.220.0/22 -add china_ip_route 103.224.224.0/22 -add china_ip_route 103.224.228.0/22 -add china_ip_route 103.224.232.0/22 -add china_ip_route 103.225.84.0/22 -add china_ip_route 103.226.16.0/22 -add china_ip_route 103.226.40.0/22 -add china_ip_route 103.226.56.0/22 -add china_ip_route 103.226.60.0/22 -add china_ip_route 103.226.80.0/22 -add china_ip_route 103.226.132.0/22 -add china_ip_route 103.226.156.0/22 -add china_ip_route 103.226.180.0/22 -add china_ip_route 103.226.196.0/22 -add china_ip_route 103.227.48.0/22 -add china_ip_route 103.227.72.0/22 -add china_ip_route 103.227.76.0/22 -add china_ip_route 103.227.80.0/22 -add china_ip_route 103.227.100.0/22 -add china_ip_route 103.227.120.0/22 -add china_ip_route 103.227.132.0/22 -add china_ip_route 103.227.136.0/22 -add china_ip_route 103.227.196.0/22 -add china_ip_route 103.227.204.0/22 -add china_ip_route 103.227.212.0/22 -add china_ip_route 103.227.228.0/22 -add china_ip_route 103.228.12.0/22 -add china_ip_route 103.228.88.0/22 -add china_ip_route 103.228.136.0/22 -add china_ip_route 103.228.160.0/22 -add china_ip_route 103.228.176.0/22 -add china_ip_route 103.228.204.0/22 -add china_ip_route 103.228.208.0/22 -add china_ip_route 103.228.228.0/22 -add china_ip_route 103.228.232.0/22 -add china_ip_route 103.229.20.0/22 -add china_ip_route 103.229.60.0/22 -add china_ip_route 103.229.136.0/22 -add china_ip_route 103.229.148.0/22 -add china_ip_route 103.229.172.0/22 -add china_ip_route 103.229.212.0/22 -add china_ip_route 103.229.216.0/22 -add china_ip_route 103.229.220.0/22 -add china_ip_route 103.229.228.0/22 -add china_ip_route 103.229.236.0/22 -add china_ip_route 103.229.240.0/22 -add china_ip_route 103.230.0.0/22 -add china_ip_route 103.230.28.0/22 -add china_ip_route 103.230.44.0/22 -add china_ip_route 103.230.96.0/22 -add china_ip_route 103.230.196.0/22 -add china_ip_route 103.230.200.0/22 -add china_ip_route 103.230.204.0/22 -add china_ip_route 103.230.212.0/22 -add china_ip_route 103.230.236.0/22 -add china_ip_route 103.231.16.0/22 -add china_ip_route 103.231.20.0/22 -add china_ip_route 103.231.64.0/22 -add china_ip_route 103.231.68.0/22 -add china_ip_route 103.231.180.0/22 -add china_ip_route 103.231.184.0/22 -add china_ip_route 103.231.244.0/22 -add china_ip_route 103.232.4.0/22 -add china_ip_route 103.232.144.0/22 -add china_ip_route 103.232.188.0/22 -add china_ip_route 103.232.212.0/22 -add china_ip_route 103.233.4.0/22 -add china_ip_route 103.233.44.0/22 -add china_ip_route 103.233.52.0/22 -add china_ip_route 103.233.104.0/22 -add china_ip_route 103.233.128.0/22 -add china_ip_route 103.233.136.0/22 -add china_ip_route 103.233.228.0/22 -add china_ip_route 103.234.0.0/22 -add china_ip_route 103.234.20.0/22 -add china_ip_route 103.234.56.0/22 -add china_ip_route 103.234.128.0/22 -add china_ip_route 103.234.172.0/22 -add china_ip_route 103.234.180.0/22 -add china_ip_route 103.234.244.0/22 -add china_ip_route 103.235.16.0/22 -add china_ip_route 103.235.48.0/22 -add china_ip_route 103.235.56.0/22 -add china_ip_route 103.235.60.0/22 -add china_ip_route 103.235.80.0/22 -add china_ip_route 103.235.84.0/22 -add china_ip_route 103.235.128.0/22 -add china_ip_route 103.235.132.0/22 -add china_ip_route 103.235.136.0/22 -add china_ip_route 103.235.140.0/22 -add china_ip_route 103.235.144.0/22 -add china_ip_route 103.235.148.0/22 -add china_ip_route 103.235.184.0/22 -add china_ip_route 103.235.192.0/22 -add china_ip_route 103.235.200.0/22 -add china_ip_route 103.235.220.0/22 -add china_ip_route 103.235.224.0/22 -add china_ip_route 103.235.228.0/22 -add china_ip_route 103.235.232.0/22 -add china_ip_route 103.235.236.0/22 -add china_ip_route 103.235.240.0/22 -add china_ip_route 103.235.244.0/22 -add china_ip_route 103.235.248.0/22 -add china_ip_route 103.235.252.0/22 -add china_ip_route 103.236.0.0/22 -add china_ip_route 103.236.4.0/22 -add china_ip_route 103.236.8.0/22 -add china_ip_route 103.236.12.0/22 -add china_ip_route 103.236.16.0/22 -add china_ip_route 103.236.20.0/22 -add china_ip_route 103.236.24.0/22 -add china_ip_route 103.236.28.0/22 -add china_ip_route 103.236.32.0/22 -add china_ip_route 103.236.36.0/22 -add china_ip_route 103.236.40.0/22 -add china_ip_route 103.236.44.0/22 -add china_ip_route 103.236.48.0/22 -add china_ip_route 103.236.52.0/22 -add china_ip_route 103.236.56.0/22 -add china_ip_route 103.236.60.0/22 -add china_ip_route 103.236.64.0/22 -add china_ip_route 103.236.68.0/22 -add china_ip_route 103.236.72.0/22 -add china_ip_route 103.236.76.0/22 -add china_ip_route 103.236.80.0/22 -add china_ip_route 103.236.84.0/22 -add china_ip_route 103.236.88.0/22 -add china_ip_route 103.236.92.0/22 -add china_ip_route 103.236.96.0/22 -add china_ip_route 103.236.120.0/22 -add china_ip_route 103.236.184.0/22 -add china_ip_route 103.236.220.0/22 -add china_ip_route 103.236.232.0/22 -add china_ip_route 103.236.240.0/22 -add china_ip_route 103.236.244.0/22 -add china_ip_route 103.236.248.0/22 -add china_ip_route 103.236.252.0/22 -add china_ip_route 103.237.0.0/22 -add china_ip_route 103.237.4.0/22 -add china_ip_route 103.237.8.0/22 -add china_ip_route 103.237.12.0/22 -add china_ip_route 103.237.24.0/22 -add china_ip_route 103.237.28.0/22 -add china_ip_route 103.237.68.0/22 -add china_ip_route 103.237.88.0/22 -add china_ip_route 103.237.152.0/22 -add china_ip_route 103.237.176.0/22 -add china_ip_route 103.237.180.0/22 -add china_ip_route 103.237.184.0/22 -add china_ip_route 103.237.188.0/22 -add china_ip_route 103.237.192.0/22 -add china_ip_route 103.237.196.0/22 -add china_ip_route 103.237.200.0/22 -add china_ip_route 103.237.204.0/22 -add china_ip_route 103.237.208.0/22 -add china_ip_route 103.237.212.0/22 -add china_ip_route 103.237.216.0/22 -add china_ip_route 103.237.220.0/22 -add china_ip_route 103.237.224.0/22 -add china_ip_route 103.237.228.0/22 -add china_ip_route 103.237.232.0/22 -add china_ip_route 103.237.236.0/22 -add china_ip_route 103.237.240.0/22 -add china_ip_route 103.237.244.0/22 -add china_ip_route 103.237.248.0/22 -add china_ip_route 103.237.252.0/22 -add china_ip_route 103.238.0.0/22 -add china_ip_route 103.238.4.0/22 -add china_ip_route 103.238.16.0/22 -add china_ip_route 103.238.20.0/22 -add china_ip_route 103.238.24.0/22 -add china_ip_route 103.238.28.0/22 -add china_ip_route 103.238.32.0/22 -add china_ip_route 103.238.36.0/22 -add china_ip_route 103.238.40.0/22 -add china_ip_route 103.238.44.0/22 -add china_ip_route 103.238.48.0/22 -add china_ip_route 103.238.52.0/22 -add china_ip_route 103.238.56.0/22 -add china_ip_route 103.238.88.0/22 -add china_ip_route 103.238.92.0/22 -add china_ip_route 103.238.96.0/22 -add china_ip_route 103.238.132.0/22 -add china_ip_route 103.238.140.0/22 -add china_ip_route 103.238.144.0/22 -add china_ip_route 103.238.160.0/22 -add china_ip_route 103.238.164.0/22 -add china_ip_route 103.238.168.0/22 -add china_ip_route 103.238.172.0/22 -add china_ip_route 103.238.176.0/22 -add china_ip_route 103.238.180.0/22 -add china_ip_route 103.238.184.0/22 -add china_ip_route 103.238.188.0/22 -add china_ip_route 103.238.196.0/22 -add china_ip_route 103.238.204.0/22 -add china_ip_route 103.238.252.0/22 -add china_ip_route 103.239.0.0/22 -add china_ip_route 103.239.44.0/22 -add china_ip_route 103.239.68.0/22 -add china_ip_route 103.239.96.0/22 -add china_ip_route 103.239.152.0/22 -add china_ip_route 103.239.156.0/22 -add china_ip_route 103.239.176.0/22 -add china_ip_route 103.239.180.0/22 -add china_ip_route 103.239.184.0/22 -add china_ip_route 103.239.192.0/22 -add china_ip_route 103.239.196.0/22 -add china_ip_route 103.239.204.0/22 -add china_ip_route 103.239.208.0/22 -add china_ip_route 103.239.224.0/22 -add china_ip_route 103.239.244.0/22 -add china_ip_route 103.240.16.0/22 -add china_ip_route 103.240.36.0/22 -add china_ip_route 103.240.72.0/22 -add china_ip_route 103.240.84.0/22 -add china_ip_route 103.240.124.0/22 -add china_ip_route 103.240.172.0/22 -add china_ip_route 103.240.188.0/22 -add china_ip_route 103.240.244.0/22 -add china_ip_route 103.241.12.0/22 -add china_ip_route 103.241.72.0/22 -add china_ip_route 103.241.92.0/22 -add china_ip_route 103.241.96.0/22 -add china_ip_route 103.241.160.0/22 -add china_ip_route 103.241.184.0/22 -add china_ip_route 103.241.188.0/22 -add china_ip_route 103.241.220.0/22 -add china_ip_route 103.242.64.0/22 -add china_ip_route 103.242.128.0/22 -add china_ip_route 103.242.132.0/22 -add china_ip_route 103.242.160.0/22 -add china_ip_route 103.242.168.0/22 -add china_ip_route 103.242.172.0/22 -add china_ip_route 103.242.176.0/22 -add china_ip_route 103.242.200.0/22 -add china_ip_route 103.242.212.0/22 -add china_ip_route 103.242.220.0/22 -add china_ip_route 103.242.240.0/22 -add china_ip_route 103.243.136.0/22 -add china_ip_route 103.243.252.0/22 -add china_ip_route 103.244.16.0/22 -add china_ip_route 103.244.58.0/23 -add china_ip_route 103.244.60.0/22 -add china_ip_route 103.244.64.0/22 -add china_ip_route 103.244.68.0/22 -add china_ip_route 103.244.72.0/22 -add china_ip_route 103.244.76.0/22 -add china_ip_route 103.244.80.0/22 -add china_ip_route 103.244.84.0/22 -add china_ip_route 103.244.116.0/22 -add china_ip_route 103.244.164.0/22 -add china_ip_route 103.244.232.0/22 -add china_ip_route 103.244.252.0/22 -add china_ip_route 103.245.23.0/24 -add china_ip_route 103.245.52.0/22 -add china_ip_route 103.245.60.0/22 -add china_ip_route 103.245.80.0/22 -add china_ip_route 103.245.124.0/22 -add china_ip_route 103.245.128.0/22 -add china_ip_route 103.246.8.0/22 -add china_ip_route 103.246.12.0/22 -add china_ip_route 103.246.120.0/22 -add china_ip_route 103.246.124.0/22 -add china_ip_route 103.246.132.0/22 -add china_ip_route 103.246.152.0/22 -add china_ip_route 103.246.156.0/22 -add china_ip_route 103.247.168.0/22 -add china_ip_route 103.247.172.0/22 -add china_ip_route 103.247.176.0/22 -add china_ip_route 103.247.200.0/22 -add china_ip_route 103.247.212.0/22 -add china_ip_route 103.248.0.0/23 -add china_ip_route 103.248.64.0/22 -add china_ip_route 103.248.100.0/22 -add china_ip_route 103.248.124.0/22 -add china_ip_route 103.248.152.0/22 -add china_ip_route 103.248.168.0/22 -add china_ip_route 103.248.192.0/22 -add china_ip_route 103.248.212.0/22 -add china_ip_route 103.248.224.0/22 -add china_ip_route 103.249.8.0/22 -add china_ip_route 103.249.12.0/22 -add china_ip_route 103.249.52.0/22 -add china_ip_route 103.249.104.0/22 -add china_ip_route 103.249.128.0/22 -add china_ip_route 103.249.136.0/22 -add china_ip_route 103.249.144.0/22 -add china_ip_route 103.249.164.0/22 -add china_ip_route 103.249.168.0/22 -add china_ip_route 103.249.172.0/22 -add china_ip_route 103.249.176.0/22 -add china_ip_route 103.249.188.0/22 -add china_ip_route 103.249.192.0/22 -add china_ip_route 103.249.244.0/22 -add china_ip_route 103.249.252.0/22 -add china_ip_route 103.250.32.0/22 -add china_ip_route 103.250.104.0/22 -add china_ip_route 103.250.124.0/22 -add china_ip_route 103.250.180.0/22 -add china_ip_route 103.250.192.0/22 -add china_ip_route 103.250.216.0/22 -add china_ip_route 103.250.224.0/22 -add china_ip_route 103.250.236.0/22 -add china_ip_route 103.250.248.0/22 -add china_ip_route 103.250.252.0/22 -add china_ip_route 103.251.32.0/22 -add china_ip_route 103.251.84.0/22 -add china_ip_route 103.251.96.0/22 -add china_ip_route 103.251.124.0/22 -add china_ip_route 103.251.128.0/22 -add china_ip_route 103.251.160.0/22 -add china_ip_route 103.251.192.0/22 -add china_ip_route 103.251.204.0/22 -add china_ip_route 103.251.240.0/22 -add china_ip_route 103.252.28.0/22 -add china_ip_route 103.252.36.0/22 -add china_ip_route 103.252.64.0/22 -add china_ip_route 103.252.96.0/22 -add china_ip_route 103.252.104.0/22 -add china_ip_route 103.252.172.0/22 -add china_ip_route 103.252.204.0/22 -add china_ip_route 103.252.208.0/22 -add china_ip_route 103.252.232.0/22 -add china_ip_route 103.252.248.0/22 -add china_ip_route 103.253.4.0/22 -add china_ip_route 103.253.60.0/22 -add china_ip_route 103.253.204.0/22 -add china_ip_route 103.253.220.0/22 -add china_ip_route 103.253.224.0/22 -add china_ip_route 103.253.232.0/22 -add china_ip_route 103.254.8.0/22 -add china_ip_route 103.254.20.0/22 -add china_ip_route 103.254.64.0/22 -add china_ip_route 103.254.68.0/22 -add china_ip_route 103.254.72.0/22 -add china_ip_route 103.254.76.0/22 -add china_ip_route 103.254.112.0/22 -add china_ip_route 103.254.176.0/22 -add china_ip_route 103.254.188.0/22 -add china_ip_route 103.254.196.0/24 -add china_ip_route 103.254.220.0/22 -add china_ip_route 103.255.56.0/22 -add china_ip_route 103.255.68.0/22 -add china_ip_route 103.255.88.0/22 -add china_ip_route 103.255.92.0/22 -add china_ip_route 103.255.136.0/22 -add china_ip_route 103.255.140.0/22 -add china_ip_route 103.255.184.0/22 -add china_ip_route 103.255.200.0/22 -add china_ip_route 103.255.212.0/22 -add china_ip_route 103.255.228.0/22 -add china_ip_route 106.0.0.0/24 -add china_ip_route 106.0.2.0/23 -add china_ip_route 106.0.4.0/22 -add china_ip_route 106.0.8.0/21 -add china_ip_route 106.0.16.0/20 -add china_ip_route 106.0.44.0/22 -add china_ip_route 106.0.64.0/18 -add china_ip_route 106.2.0.0/15 -add china_ip_route 106.4.0.0/14 -add china_ip_route 106.8.0.0/15 -add china_ip_route 106.11.0.0/16 -add china_ip_route 106.12.0.0/14 -add china_ip_route 106.16.0.0/12 -add china_ip_route 106.32.0.0/12 -add china_ip_route 106.48.0.0/15 -add china_ip_route 106.50.0.0/16 -add china_ip_route 106.52.0.0/14 -add china_ip_route 106.56.0.0/13 -add china_ip_route 106.74.0.0/16 -add china_ip_route 106.75.0.0/16 -add china_ip_route 106.80.0.0/12 -add china_ip_route 106.108.0.0/14 -add china_ip_route 106.112.0.0/13 -add china_ip_route 106.120.0.0/13 -add china_ip_route 106.224.0.0/12 -add china_ip_route 109.244.0.0/16 -add china_ip_route 110.6.0.0/15 -add china_ip_route 110.16.0.0/14 -add china_ip_route 110.34.40.0/22 -add china_ip_route 110.34.44.0/22 -add china_ip_route 110.40.0.0/14 -add china_ip_route 110.44.12.0/22 -add china_ip_route 110.44.144.0/20 -add china_ip_route 110.48.0.0/16 -add china_ip_route 110.51.0.0/16 -add china_ip_route 110.52.0.0/15 -add china_ip_route 110.56.0.0/13 -add china_ip_route 110.64.0.0/15 -add china_ip_route 110.72.0.0/15 -add china_ip_route 110.75.0.0/17 -add china_ip_route 110.75.128.0/19 -add china_ip_route 110.75.160.0/19 -add china_ip_route 110.75.192.0/18 -add china_ip_route 110.76.0.0/19 -add china_ip_route 110.76.32.0/19 -add china_ip_route 110.76.132.0/22 -add china_ip_route 110.76.156.0/22 -add china_ip_route 110.76.184.0/22 -add china_ip_route 110.76.192.0/18 -add china_ip_route 110.77.0.0/17 -add china_ip_route 110.80.0.0/13 -add china_ip_route 110.88.0.0/14 -add china_ip_route 110.92.68.0/22 -add china_ip_route 110.93.32.0/19 -add china_ip_route 110.94.0.0/15 -add china_ip_route 110.96.0.0/11 -add china_ip_route 110.152.0.0/14 -add china_ip_route 110.156.0.0/15 -add china_ip_route 110.165.32.0/19 -add china_ip_route 110.166.0.0/15 -add china_ip_route 110.172.192.0/18 -add china_ip_route 110.173.0.0/19 -add china_ip_route 110.173.32.0/20 -add china_ip_route 110.173.64.0/19 -add china_ip_route 110.173.96.0/19 -add china_ip_route 110.173.192.0/19 -add china_ip_route 110.176.0.0/13 -add china_ip_route 110.184.0.0/13 -add china_ip_route 110.192.0.0/11 -add china_ip_route 110.228.0.0/14 -add china_ip_route 110.232.32.0/19 -add china_ip_route 110.236.0.0/15 -add china_ip_route 110.240.0.0/12 -add china_ip_route 111.0.0.0/10 -add china_ip_route 111.66.0.0/16 -add china_ip_route 111.67.192.0/20 -add china_ip_route 111.68.64.0/19 -add china_ip_route 111.72.0.0/13 -add china_ip_route 111.85.0.0/16 -add china_ip_route 111.91.192.0/19 -add china_ip_route 111.92.248.0/22 -add china_ip_route 111.92.252.0/22 -add china_ip_route 111.112.0.0/15 -add china_ip_route 111.114.0.0/15 -add china_ip_route 111.116.0.0/15 -add china_ip_route 111.118.200.0/21 -add china_ip_route 111.119.64.0/18 -add china_ip_route 111.119.128.0/19 -add china_ip_route 111.120.0.0/14 -add china_ip_route 111.124.0.0/16 -add china_ip_route 111.126.0.0/15 -add china_ip_route 111.128.0.0/11 -add china_ip_route 111.160.0.0/13 -add china_ip_route 111.170.0.0/16 -add china_ip_route 111.172.0.0/14 -add china_ip_route 111.176.0.0/13 -add china_ip_route 111.186.0.0/15 -add china_ip_route 111.192.0.0/12 -add china_ip_route 111.208.0.0/14 -add china_ip_route 111.212.0.0/14 -add china_ip_route 111.221.28.0/24 -add china_ip_route 111.221.128.0/17 -add china_ip_route 111.222.0.0/16 -add china_ip_route 111.223.4.0/22 -add china_ip_route 111.223.8.0/22 -add china_ip_route 111.223.12.0/22 -add china_ip_route 111.223.16.0/22 -add china_ip_route 111.223.240.0/22 -add china_ip_route 111.223.248.0/22 -add china_ip_route 111.224.0.0/14 -add china_ip_route 111.228.0.0/14 -add china_ip_route 111.235.96.0/19 -add china_ip_route 111.235.156.0/22 -add china_ip_route 111.235.160.0/19 -add china_ip_route 112.0.0.0/10 -add china_ip_route 112.64.0.0/15 -add china_ip_route 112.66.0.0/15 -add china_ip_route 112.73.0.0/16 -add china_ip_route 112.74.0.0/15 -add china_ip_route 112.80.0.0/13 -add china_ip_route 112.88.0.0/13 -add china_ip_route 112.96.0.0/15 -add china_ip_route 112.98.0.0/15 -add china_ip_route 112.100.0.0/14 -add china_ip_route 112.109.128.0/17 -add china_ip_route 112.111.0.0/16 -add china_ip_route 112.112.0.0/14 -add china_ip_route 112.116.0.0/15 -add china_ip_route 112.122.0.0/15 -add china_ip_route 112.124.0.0/14 -add china_ip_route 112.128.0.0/14 -add china_ip_route 112.132.0.0/16 -add china_ip_route 112.137.48.0/21 -add china_ip_route 112.192.0.0/14 -add china_ip_route 112.224.0.0/11 -add china_ip_route 113.0.0.0/13 -add china_ip_route 113.8.0.0/15 -add china_ip_route 113.11.192.0/19 -add china_ip_route 113.12.0.0/14 -add china_ip_route 113.16.0.0/15 -add china_ip_route 113.18.0.0/16 -add china_ip_route 113.21.232.0/22 -add china_ip_route 113.21.236.0/22 -add china_ip_route 113.24.0.0/14 -add china_ip_route 113.31.0.0/16 -add china_ip_route 113.44.0.0/14 -add china_ip_route 113.48.0.0/14 -add china_ip_route 113.52.160.0/19 -add china_ip_route 113.52.228.0/22 -add china_ip_route 113.54.0.0/15 -add china_ip_route 113.56.0.0/15 -add china_ip_route 113.58.0.0/16 -add china_ip_route 113.59.0.0/17 -add china_ip_route 113.59.224.0/22 -add china_ip_route 113.62.0.0/15 -add china_ip_route 113.64.0.0/11 -add china_ip_route 113.96.0.0/12 -add china_ip_route 113.112.0.0/13 -add china_ip_route 113.120.0.0/13 -add china_ip_route 113.128.0.0/15 -add china_ip_route 113.130.96.0/20 -add china_ip_route 113.130.112.0/21 -add china_ip_route 113.132.0.0/14 -add china_ip_route 113.136.0.0/13 -add china_ip_route 113.194.0.0/15 -add china_ip_route 113.197.100.0/22 -add china_ip_route 113.200.0.0/15 -add china_ip_route 113.202.0.0/16 -add china_ip_route 113.204.0.0/14 -add china_ip_route 113.208.96.0/19 -add china_ip_route 113.208.128.0/17 -add china_ip_route 113.209.0.0/16 -add china_ip_route 113.212.0.0/18 -add china_ip_route 113.212.88.0/22 -add china_ip_route 113.212.100.0/22 -add china_ip_route 113.212.184.0/21 -add china_ip_route 113.213.0.0/17 -add china_ip_route 113.214.0.0/15 -add china_ip_route 113.218.0.0/15 -add china_ip_route 113.220.0.0/14 -add china_ip_route 113.224.0.0/12 -add china_ip_route 113.240.0.0/13 -add china_ip_route 113.248.0.0/14 -add china_ip_route 114.28.0.0/16 -add china_ip_route 114.31.64.0/22 -add china_ip_route 114.31.68.0/22 -add china_ip_route 114.54.0.0/15 -add china_ip_route 114.60.0.0/14 -add china_ip_route 114.64.0.0/14 -add china_ip_route 114.68.0.0/16 -add china_ip_route 114.79.64.0/18 -add china_ip_route 114.80.0.0/12 -add china_ip_route 114.96.0.0/13 -add china_ip_route 114.104.0.0/14 -add china_ip_route 114.110.0.0/20 -add china_ip_route 114.110.64.0/18 -add china_ip_route 114.111.0.0/19 -add china_ip_route 114.111.160.0/19 -add china_ip_route 114.112.0.0/14 -add china_ip_route 114.116.0.0/16 -add china_ip_route 114.117.0.0/17 -add china_ip_route 114.117.128.0/17 -add china_ip_route 114.118.0.0/16 -add china_ip_route 114.119.0.0/17 -add china_ip_route 114.119.192.0/21 -add china_ip_route 114.119.200.0/22 -add china_ip_route 114.119.204.0/22 -add china_ip_route 114.119.208.0/20 -add china_ip_route 114.119.224.0/19 -add china_ip_route 114.132.0.0/16 -add china_ip_route 114.135.0.0/16 -add china_ip_route 114.138.0.0/15 -add china_ip_route 114.141.64.0/21 -add china_ip_route 114.141.80.0/22 -add china_ip_route 114.141.84.0/22 -add china_ip_route 114.141.128.0/18 -add china_ip_route 114.196.0.0/15 -add china_ip_route 114.198.248.0/21 -add china_ip_route 114.208.0.0/14 -add china_ip_route 114.212.0.0/15 -add china_ip_route 114.214.0.0/16 -add china_ip_route 114.215.0.0/16 -add china_ip_route 114.216.0.0/13 -add china_ip_route 114.224.0.0/12 -add china_ip_route 114.240.0.0/12 -add china_ip_route 115.24.0.0/14 -add china_ip_route 115.28.0.0/15 -add china_ip_route 115.31.64.0/22 -add china_ip_route 115.31.68.0/22 -add china_ip_route 115.31.72.0/22 -add china_ip_route 115.31.76.0/22 -add china_ip_route 115.32.0.0/14 -add china_ip_route 115.42.56.0/22 -add china_ip_route 115.44.0.0/15 -add china_ip_route 115.46.0.0/16 -add china_ip_route 115.47.0.0/16 -add china_ip_route 115.48.0.0/12 -add china_ip_route 115.69.64.0/20 -add china_ip_route 115.84.0.0/18 -add china_ip_route 115.84.192.0/19 -add china_ip_route 115.85.192.0/18 -add china_ip_route 115.100.0.0/14 -add china_ip_route 115.104.0.0/14 -add china_ip_route 115.120.0.0/14 -add china_ip_route 115.124.16.0/20 -add china_ip_route 115.148.0.0/14 -add china_ip_route 115.152.0.0/15 -add china_ip_route 115.154.0.0/15 -add china_ip_route 115.156.0.0/15 -add china_ip_route 115.158.0.0/16 -add china_ip_route 115.159.0.0/16 -add china_ip_route 115.166.64.0/19 -add china_ip_route 115.168.0.0/14 -add china_ip_route 115.172.0.0/14 -add china_ip_route 115.180.0.0/15 -add china_ip_route 115.182.0.0/16 -add china_ip_route 115.183.0.0/16 -add china_ip_route 115.187.0.0/22 -add china_ip_route 115.187.4.0/22 -add china_ip_route 115.187.8.0/22 -add china_ip_route 115.187.12.0/22 -add china_ip_route 115.190.0.0/15 -add china_ip_route 115.192.0.0/11 -add china_ip_route 115.224.0.0/12 -add china_ip_route 116.0.8.0/21 -add china_ip_route 116.0.24.0/21 -add china_ip_route 116.1.0.0/16 -add china_ip_route 116.2.0.0/15 -add china_ip_route 116.4.0.0/14 -add china_ip_route 116.8.0.0/14 -add china_ip_route 116.13.0.0/16 -add china_ip_route 116.16.0.0/12 -add china_ip_route 116.50.0.0/20 -add china_ip_route 116.52.0.0/14 -add china_ip_route 116.56.0.0/15 -add china_ip_route 116.58.128.0/20 -add china_ip_route 116.58.208.0/20 -add china_ip_route 116.60.0.0/14 -add china_ip_route 116.66.0.0/17 -add china_ip_route 116.66.176.0/22 -add china_ip_route 116.68.136.0/22 -add china_ip_route 116.68.140.0/22 -add china_ip_route 116.68.176.0/22 -add china_ip_route 116.68.180.0/22 -add china_ip_route 116.69.0.0/16 -add china_ip_route 116.70.0.0/17 -add china_ip_route 116.76.0.0/15 -add china_ip_route 116.78.0.0/15 -add china_ip_route 116.85.0.0/16 -add china_ip_route 116.89.144.0/20 -add china_ip_route 116.89.240.0/22 -add china_ip_route 116.90.80.0/20 -add china_ip_route 116.90.184.0/21 -add china_ip_route 116.95.0.0/16 -add china_ip_route 116.112.0.0/14 -add china_ip_route 116.116.0.0/15 -add china_ip_route 116.128.0.0/10 -add china_ip_route 116.192.0.0/16 -add china_ip_route 116.193.16.0/20 -add china_ip_route 116.193.32.0/19 -add china_ip_route 116.193.152.0/22 -add china_ip_route 116.193.164.0/22 -add china_ip_route 116.193.176.0/21 -add china_ip_route 116.194.0.0/15 -add china_ip_route 116.196.0.0/17 -add china_ip_route 116.196.128.0/18 -add china_ip_route 116.196.192.0/18 -add china_ip_route 116.197.160.0/22 -add china_ip_route 116.197.164.0/22 -add china_ip_route 116.198.0.0/16 -add china_ip_route 116.199.0.0/17 -add china_ip_route 116.199.128.0/19 -add china_ip_route 116.204.0.0/17 -add china_ip_route 116.204.132.0/22 -add china_ip_route 116.204.168.0/22 -add china_ip_route 116.204.216.0/22 -add china_ip_route 116.204.232.0/22 -add china_ip_route 116.205.0.0/16 -add china_ip_route 116.206.92.0/22 -add china_ip_route 116.206.176.0/22 -add china_ip_route 116.207.0.0/16 -add china_ip_route 116.208.0.0/14 -add china_ip_route 116.212.160.0/20 -add china_ip_route 116.213.44.0/22 -add china_ip_route 116.213.64.0/18 -add china_ip_route 116.213.128.0/17 -add china_ip_route 116.214.32.0/19 -add china_ip_route 116.214.64.0/20 -add china_ip_route 116.214.128.0/17 -add china_ip_route 116.215.0.0/16 -add china_ip_route 116.216.0.0/14 -add china_ip_route 116.224.0.0/12 -add china_ip_route 116.242.0.0/15 -add china_ip_route 116.244.0.0/15 -add china_ip_route 116.246.0.0/15 -add china_ip_route 116.248.0.0/15 -add china_ip_route 116.251.64.0/18 -add china_ip_route 116.252.0.0/15 -add china_ip_route 116.254.104.0/22 -add china_ip_route 116.254.108.0/22 -add china_ip_route 116.254.128.0/17 -add china_ip_route 116.255.128.0/17 -add china_ip_route 117.8.0.0/13 -add china_ip_route 117.21.0.0/16 -add china_ip_route 117.22.0.0/15 -add china_ip_route 117.24.0.0/13 -add china_ip_route 117.32.0.0/13 -add china_ip_route 117.40.0.0/14 -add china_ip_route 117.44.0.0/15 -add china_ip_route 117.48.0.0/14 -add china_ip_route 117.53.48.0/20 -add china_ip_route 117.53.176.0/20 -add china_ip_route 117.57.0.0/16 -add china_ip_route 117.58.0.0/17 -add china_ip_route 117.59.0.0/16 -add china_ip_route 117.60.0.0/14 -add china_ip_route 117.64.0.0/13 -add china_ip_route 117.72.0.0/15 -add china_ip_route 117.74.64.0/20 -add china_ip_route 117.74.80.0/20 -add china_ip_route 117.74.128.0/17 -add china_ip_route 117.75.0.0/16 -add china_ip_route 117.76.0.0/14 -add china_ip_route 117.80.0.0/12 -add china_ip_route 117.100.0.0/15 -add china_ip_route 117.103.16.0/20 -add china_ip_route 117.103.40.0/21 -add china_ip_route 117.103.72.0/21 -add china_ip_route 117.103.128.0/20 -add china_ip_route 117.104.168.0/21 -add china_ip_route 117.106.0.0/15 -add china_ip_route 117.112.0.0/13 -add china_ip_route 117.120.64.0/18 -add china_ip_route 117.120.128.0/17 -add china_ip_route 117.121.0.0/17 -add china_ip_route 117.121.128.0/18 -add china_ip_route 117.121.192.0/21 -add china_ip_route 117.122.128.0/17 -add china_ip_route 117.124.0.0/14 -add china_ip_route 117.128.0.0/10 -add china_ip_route 118.24.0.0/15 -add china_ip_route 118.26.0.0/19 -add china_ip_route 118.26.32.0/22 -add china_ip_route 118.26.40.0/21 -add china_ip_route 118.26.48.0/21 -add china_ip_route 118.26.56.0/21 -add china_ip_route 118.26.64.0/19 -add china_ip_route 118.26.96.0/21 -add china_ip_route 118.26.112.0/21 -add china_ip_route 118.26.120.0/21 -add china_ip_route 118.26.128.0/20 -add china_ip_route 118.26.160.0/20 -add china_ip_route 118.26.188.0/22 -add china_ip_route 118.26.192.0/18 -add china_ip_route 118.28.0.0/15 -add china_ip_route 118.30.0.0/16 -add china_ip_route 118.31.0.0/16 -add china_ip_route 118.64.0.0/15 -add china_ip_route 118.66.0.0/16 -add china_ip_route 118.67.112.0/20 -add china_ip_route 118.72.0.0/13 -add china_ip_route 118.80.0.0/15 -add china_ip_route 118.84.0.0/15 -add china_ip_route 118.88.32.0/19 -add china_ip_route 118.88.64.0/18 -add china_ip_route 118.88.128.0/17 -add china_ip_route 118.89.0.0/16 -add china_ip_route 118.91.240.0/20 -add china_ip_route 118.102.16.0/20 -add china_ip_route 118.102.32.0/21 -add china_ip_route 118.103.164.0/22 -add china_ip_route 118.103.168.0/22 -add china_ip_route 118.103.172.0/22 -add china_ip_route 118.103.176.0/22 -add china_ip_route 118.107.180.0/22 -add china_ip_route 118.112.0.0/13 -add china_ip_route 118.120.0.0/14 -add china_ip_route 118.124.0.0/15 -add china_ip_route 118.126.0.0/16 -add china_ip_route 118.127.128.0/19 -add china_ip_route 118.132.0.0/14 -add china_ip_route 118.144.0.0/14 -add china_ip_route 118.178.0.0/16 -add china_ip_route 118.180.0.0/14 -add china_ip_route 118.184.0.0/17 -add china_ip_route 118.184.128.0/17 -add china_ip_route 118.186.0.0/15 -add china_ip_route 118.188.0.0/16 -add china_ip_route 118.190.0.0/16 -add china_ip_route 118.191.0.0/21 -add china_ip_route 118.191.8.0/22 -add china_ip_route 118.191.12.0/24 -add china_ip_route 118.191.16.0/21 -add china_ip_route 118.191.64.0/20 -add china_ip_route 118.191.80.0/22 -add china_ip_route 118.191.128.0/19 -add china_ip_route 118.191.176.0/20 -add china_ip_route 118.191.192.0/20 -add china_ip_route 118.191.208.0/24 -add china_ip_route 118.191.216.0/22 -add china_ip_route 118.191.223.0/24 -add china_ip_route 118.191.224.0/24 -add china_ip_route 118.191.240.0/20 -add china_ip_route 118.192.0.0/16 -add china_ip_route 118.193.0.0/21 -add china_ip_route 118.193.8.0/21 -add china_ip_route 118.193.48.0/21 -add china_ip_route 118.193.96.0/19 -add china_ip_route 118.193.128.0/17 -add china_ip_route 118.194.0.0/17 -add china_ip_route 118.194.128.0/18 -add china_ip_route 118.194.192.0/19 -add china_ip_route 118.194.224.0/22 -add china_ip_route 118.194.240.0/21 -add china_ip_route 118.195.0.0/17 -add china_ip_route 118.195.128.0/17 -add china_ip_route 118.196.0.0/14 -add china_ip_route 118.202.0.0/15 -add china_ip_route 118.204.0.0/14 -add china_ip_route 118.212.0.0/16 -add china_ip_route 118.213.0.0/16 -add china_ip_route 118.215.192.0/18 -add china_ip_route 118.224.0.0/14 -add china_ip_route 118.228.0.0/15 -add china_ip_route 118.230.0.0/16 -add china_ip_route 118.239.0.0/16 -add china_ip_route 118.242.0.0/16 -add china_ip_route 118.244.0.0/14 -add china_ip_route 118.248.0.0/13 -add china_ip_route 119.0.0.0/15 -add china_ip_route 119.2.0.0/19 -add china_ip_route 119.2.128.0/17 -add china_ip_route 119.3.0.0/16 -add china_ip_route 119.4.0.0/14 -add china_ip_route 119.10.0.0/17 -add china_ip_route 119.15.136.0/21 -add china_ip_route 119.16.0.0/16 -add china_ip_route 119.18.192.0/20 -add china_ip_route 119.18.208.0/21 -add china_ip_route 119.18.224.0/20 -add china_ip_route 119.18.240.0/20 -add china_ip_route 119.19.0.0/16 -add china_ip_route 119.20.0.0/14 -add china_ip_route 119.27.64.0/18 -add china_ip_route 119.27.128.0/19 -add china_ip_route 119.27.160.0/19 -add china_ip_route 119.27.192.0/18 -add china_ip_route 119.28.0.0/15 -add china_ip_route 119.30.48.0/20 -add china_ip_route 119.31.192.0/19 -add china_ip_route 119.32.0.0/14 -add china_ip_route 119.36.0.0/16 -add china_ip_route 119.37.0.0/17 -add china_ip_route 119.37.128.0/18 -add china_ip_route 119.37.192.0/18 -add china_ip_route 119.38.0.0/17 -add china_ip_route 119.38.128.0/18 -add china_ip_route 119.38.192.0/20 -add china_ip_route 119.38.208.0/20 -add china_ip_route 119.38.224.0/19 -add china_ip_route 119.39.0.0/16 -add china_ip_route 119.40.0.0/18 -add china_ip_route 119.40.64.0/20 -add china_ip_route 119.40.128.0/17 -add china_ip_route 119.41.0.0/16 -add china_ip_route 119.42.0.0/19 -add china_ip_route 119.42.128.0/21 -add china_ip_route 119.42.136.0/21 -add china_ip_route 119.42.224.0/19 -add china_ip_route 119.44.0.0/15 -add china_ip_route 119.48.0.0/13 -add china_ip_route 119.57.0.0/16 -add china_ip_route 119.58.0.0/16 -add china_ip_route 119.59.128.0/17 -add china_ip_route 119.60.0.0/16 -add china_ip_route 119.61.0.0/16 -add china_ip_route 119.62.0.0/16 -add china_ip_route 119.63.32.0/19 -add china_ip_route 119.75.208.0/20 -add china_ip_route 119.78.0.0/15 -add china_ip_route 119.80.0.0/16 -add china_ip_route 119.82.208.0/20 -add china_ip_route 119.84.0.0/14 -add china_ip_route 119.88.0.0/14 -add china_ip_route 119.96.0.0/13 -add china_ip_route 119.108.0.0/15 -add china_ip_route 119.112.0.0/13 -add china_ip_route 119.120.0.0/13 -add china_ip_route 119.128.0.0/12 -add china_ip_route 119.144.0.0/14 -add china_ip_route 119.148.160.0/20 -add china_ip_route 119.148.176.0/20 -add china_ip_route 119.151.192.0/18 -add china_ip_route 119.160.200.0/21 -add china_ip_route 119.161.120.0/22 -add china_ip_route 119.161.124.0/22 -add china_ip_route 119.161.128.0/17 -add china_ip_route 119.162.0.0/15 -add china_ip_route 119.164.0.0/14 -add china_ip_route 119.176.0.0/12 -add china_ip_route 119.232.0.0/15 -add china_ip_route 119.235.128.0/18 -add china_ip_route 119.248.0.0/14 -add china_ip_route 119.252.96.0/21 -add china_ip_route 119.252.240.0/20 -add china_ip_route 119.253.0.0/16 -add china_ip_route 119.254.0.0/15 -add china_ip_route 120.0.0.0/12 -add china_ip_route 120.24.0.0/14 -add china_ip_route 120.30.0.0/16 -add china_ip_route 120.31.0.0/16 -add china_ip_route 120.32.0.0/13 -add china_ip_route 120.40.0.0/14 -add china_ip_route 120.44.0.0/15 -add china_ip_route 120.46.0.0/16 -add china_ip_route 120.47.0.0/16 -add china_ip_route 120.48.0.0/15 -add china_ip_route 120.52.0.0/16 -add china_ip_route 120.53.0.0/16 -add china_ip_route 120.54.0.0/15 -add china_ip_route 120.64.0.0/14 -add china_ip_route 120.68.0.0/14 -add china_ip_route 120.72.32.0/19 -add china_ip_route 120.72.128.0/17 -add china_ip_route 120.76.0.0/14 -add china_ip_route 120.80.0.0/13 -add china_ip_route 120.88.8.0/21 -add china_ip_route 120.90.0.0/15 -add china_ip_route 120.92.0.0/16 -add china_ip_route 120.94.0.0/16 -add china_ip_route 120.95.0.0/16 -add china_ip_route 120.128.0.0/14 -add china_ip_route 120.132.0.0/17 -add china_ip_route 120.132.128.0/17 -add china_ip_route 120.133.0.0/16 -add china_ip_route 120.134.0.0/15 -add china_ip_route 120.136.16.0/22 -add china_ip_route 120.136.20.0/22 -add china_ip_route 120.136.128.0/18 -add china_ip_route 120.137.0.0/17 -add china_ip_route 120.143.128.0/19 -add china_ip_route 120.192.0.0/10 -add china_ip_route 121.0.8.0/21 -add china_ip_route 121.0.16.0/20 -add china_ip_route 121.4.0.0/15 -add china_ip_route 121.8.0.0/13 -add china_ip_route 121.16.0.0/13 -add china_ip_route 121.24.0.0/14 -add china_ip_route 121.28.0.0/15 -add china_ip_route 121.30.0.0/16 -add china_ip_route 121.31.0.0/16 -add china_ip_route 121.32.0.0/14 -add china_ip_route 121.36.0.0/16 -add china_ip_route 121.37.0.0/16 -add china_ip_route 121.38.0.0/15 -add china_ip_route 121.40.0.0/14 -add china_ip_route 121.46.0.0/18 -add china_ip_route 121.46.76.0/22 -add china_ip_route 121.46.128.0/17 -add china_ip_route 121.47.0.0/16 -add china_ip_route 121.48.0.0/15 -add china_ip_route 121.50.8.0/21 -add china_ip_route 121.51.0.0/16 -add china_ip_route 121.52.160.0/19 -add china_ip_route 121.52.208.0/20 -add china_ip_route 121.52.224.0/19 -add china_ip_route 121.54.176.0/21 -add china_ip_route 121.54.188.0/22 -add china_ip_route 121.55.0.0/18 -add china_ip_route 121.56.0.0/15 -add china_ip_route 121.58.0.0/17 -add china_ip_route 121.58.136.0/21 -add china_ip_route 121.58.144.0/20 -add china_ip_route 121.58.160.0/21 -add china_ip_route 121.59.0.0/16 -add china_ip_route 121.60.0.0/14 -add china_ip_route 121.68.0.0/14 -add china_ip_route 121.76.0.0/15 -add china_ip_route 121.79.128.0/18 -add china_ip_route 121.89.0.0/16 -add china_ip_route 121.91.104.0/21 -add china_ip_route 121.100.128.0/17 -add china_ip_route 121.101.0.0/18 -add china_ip_route 121.101.208.0/20 -add china_ip_route 121.192.0.0/16 -add china_ip_route 121.193.0.0/16 -add china_ip_route 121.194.0.0/15 -add china_ip_route 121.196.0.0/14 -add china_ip_route 121.200.192.0/21 -add china_ip_route 121.201.0.0/16 -add china_ip_route 121.204.0.0/14 -add china_ip_route 121.224.0.0/12 -add china_ip_route 121.248.0.0/14 -add china_ip_route 121.255.0.0/16 -add china_ip_route 122.0.64.0/18 -add china_ip_route 122.0.128.0/17 -add china_ip_route 122.4.0.0/14 -add china_ip_route 122.8.0.0/17 -add china_ip_route 122.8.192.0/18 -add china_ip_route 122.9.0.0/16 -add china_ip_route 122.10.128.0/22 -add china_ip_route 122.10.132.0/23 -add china_ip_route 122.10.136.0/23 -add china_ip_route 122.10.164.0/22 -add china_ip_route 122.10.168.0/21 -add china_ip_route 122.10.176.0/20 -add china_ip_route 122.10.192.0/22 -add china_ip_route 122.10.200.0/21 -add china_ip_route 122.10.208.0/21 -add china_ip_route 122.10.216.0/22 -add china_ip_route 122.10.228.0/22 -add china_ip_route 122.10.232.0/21 -add china_ip_route 122.10.240.0/22 -add china_ip_route 122.11.0.0/17 -add china_ip_route 122.12.0.0/16 -add china_ip_route 122.13.0.0/16 -add china_ip_route 122.14.0.0/17 -add china_ip_route 122.14.128.0/18 -add china_ip_route 122.14.192.0/18 -add china_ip_route 122.48.0.0/16 -add china_ip_route 122.49.0.0/18 -add china_ip_route 122.51.0.0/16 -add china_ip_route 122.64.0.0/11 -add china_ip_route 122.96.0.0/15 -add china_ip_route 122.102.0.0/20 -add china_ip_route 122.102.64.0/20 -add china_ip_route 122.102.80.0/20 -add china_ip_route 122.112.0.0/18 -add china_ip_route 122.112.64.0/18 -add china_ip_route 122.112.128.0/17 -add china_ip_route 122.113.0.0/16 -add china_ip_route 122.114.0.0/16 -add china_ip_route 122.115.0.0/17 -add china_ip_route 122.115.128.0/19 -add china_ip_route 122.115.160.0/19 -add china_ip_route 122.115.192.0/19 -add china_ip_route 122.115.224.0/19 -add china_ip_route 122.119.0.0/16 -add china_ip_route 122.128.100.0/22 -add china_ip_route 122.128.120.0/21 -add china_ip_route 122.136.0.0/13 -add china_ip_route 122.144.128.0/17 -add china_ip_route 122.152.192.0/18 -add china_ip_route 122.156.0.0/14 -add china_ip_route 122.188.0.0/14 -add china_ip_route 122.192.0.0/14 -add china_ip_route 122.198.0.0/16 -add china_ip_route 122.200.40.0/22 -add china_ip_route 122.200.44.0/22 -add china_ip_route 122.200.64.0/18 -add china_ip_route 122.201.48.0/20 -add china_ip_route 122.204.0.0/14 -add china_ip_route 122.224.0.0/12 -add china_ip_route 122.240.0.0/13 -add china_ip_route 122.248.24.0/21 -add china_ip_route 122.248.48.0/20 -add china_ip_route 122.255.64.0/21 -add china_ip_route 123.0.128.0/18 -add china_ip_route 123.4.0.0/14 -add china_ip_route 123.8.0.0/13 -add china_ip_route 123.49.128.0/17 -add china_ip_route 123.50.160.0/19 -add china_ip_route 123.52.0.0/14 -add china_ip_route 123.56.0.0/15 -add china_ip_route 123.58.0.0/20 -add china_ip_route 123.58.16.0/20 -add china_ip_route 123.58.32.0/19 -add china_ip_route 123.58.64.0/19 -add china_ip_route 123.58.96.0/19 -add china_ip_route 123.58.128.0/18 -add china_ip_route 123.58.224.0/20 -add china_ip_route 123.58.240.0/20 -add china_ip_route 123.59.0.0/16 -add china_ip_route 123.60.0.0/16 -add china_ip_route 123.61.0.0/16 -add china_ip_route 123.62.0.0/16 -add china_ip_route 123.64.0.0/11 -add china_ip_route 123.96.0.0/15 -add china_ip_route 123.98.0.0/17 -add china_ip_route 123.99.128.0/17 -add china_ip_route 123.100.0.0/19 -add china_ip_route 123.101.0.0/16 -add china_ip_route 123.103.0.0/17 -add china_ip_route 123.108.128.0/20 -add china_ip_route 123.108.208.0/20 -add china_ip_route 123.112.0.0/12 -add china_ip_route 123.128.0.0/13 -add china_ip_route 123.136.80.0/20 -add china_ip_route 123.137.0.0/16 -add china_ip_route 123.138.0.0/15 -add china_ip_route 123.144.0.0/14 -add china_ip_route 123.148.0.0/16 -add china_ip_route 123.149.0.0/16 -add china_ip_route 123.150.0.0/15 -add china_ip_route 123.152.0.0/13 -add china_ip_route 123.160.0.0/14 -add china_ip_route 123.164.0.0/14 -add china_ip_route 123.168.0.0/14 -add china_ip_route 123.172.0.0/15 -add china_ip_route 123.174.0.0/15 -add china_ip_route 123.176.60.0/22 -add china_ip_route 123.176.80.0/20 -add china_ip_route 123.177.0.0/16 -add china_ip_route 123.178.0.0/15 -add china_ip_route 123.180.0.0/14 -add china_ip_route 123.184.0.0/14 -add china_ip_route 123.188.0.0/14 -add china_ip_route 123.196.0.0/15 -add china_ip_route 123.199.128.0/17 -add china_ip_route 123.206.0.0/15 -add china_ip_route 123.232.0.0/14 -add china_ip_route 123.242.0.0/17 -add china_ip_route 123.242.192.0/22 -add china_ip_route 123.242.196.0/22 -add china_ip_route 123.244.0.0/14 -add china_ip_route 123.249.0.0/16 -add china_ip_route 123.253.108.0/22 -add china_ip_route 123.253.240.0/22 -add china_ip_route 123.254.96.0/22 -add china_ip_route 123.254.100.0/22 -add china_ip_route 124.6.64.0/18 -add china_ip_route 124.14.0.0/15 -add china_ip_route 124.16.0.0/15 -add china_ip_route 124.20.0.0/16 -add china_ip_route 124.21.0.0/20 -add china_ip_route 124.21.16.0/20 -add china_ip_route 124.21.32.0/19 -add china_ip_route 124.21.64.0/18 -add china_ip_route 124.21.128.0/17 -add china_ip_route 124.22.0.0/15 -add china_ip_route 124.28.192.0/18 -add china_ip_route 124.29.0.0/17 -add china_ip_route 124.31.0.0/16 -add china_ip_route 124.40.112.0/20 -add china_ip_route 124.40.128.0/18 -add china_ip_route 124.40.192.0/19 -add china_ip_route 124.40.240.0/22 -add china_ip_route 124.42.0.0/17 -add china_ip_route 124.42.128.0/17 -add china_ip_route 124.47.0.0/18 -add china_ip_route 124.64.0.0/15 -add china_ip_route 124.66.0.0/17 -add china_ip_route 124.67.0.0/16 -add china_ip_route 124.68.0.0/15 -add china_ip_route 124.70.0.0/15 -add china_ip_route 124.72.0.0/16 -add china_ip_route 124.73.0.0/16 -add china_ip_route 124.74.0.0/15 -add china_ip_route 124.76.0.0/14 -add china_ip_route 124.88.0.0/16 -add china_ip_route 124.89.0.0/17 -add china_ip_route 124.89.128.0/17 -add china_ip_route 124.90.0.0/15 -add china_ip_route 124.92.0.0/14 -add china_ip_route 124.108.8.0/21 -add china_ip_route 124.108.40.0/21 -add china_ip_route 124.109.96.0/21 -add china_ip_route 124.112.0.0/15 -add china_ip_route 124.114.0.0/15 -add china_ip_route 124.116.0.0/16 -add china_ip_route 124.117.0.0/16 -add china_ip_route 124.118.0.0/15 -add china_ip_route 124.126.0.0/15 -add china_ip_route 124.128.0.0/13 -add china_ip_route 124.147.128.0/17 -add china_ip_route 124.150.137.0/24 -add china_ip_route 124.151.0.0/16 -add china_ip_route 124.152.0.0/16 -add china_ip_route 124.160.0.0/16 -add china_ip_route 124.161.0.0/16 -add china_ip_route 124.162.0.0/16 -add china_ip_route 124.163.0.0/16 -add china_ip_route 124.164.0.0/14 -add china_ip_route 124.172.0.0/15 -add china_ip_route 124.174.0.0/15 -add china_ip_route 124.192.0.0/15 -add china_ip_route 124.196.0.0/16 -add china_ip_route 124.200.0.0/13 -add china_ip_route 124.220.0.0/14 -add china_ip_route 124.224.0.0/16 -add china_ip_route 124.225.0.0/16 -add china_ip_route 124.226.0.0/15 -add china_ip_route 124.228.0.0/14 -add china_ip_route 124.232.0.0/15 -add china_ip_route 124.234.0.0/15 -add china_ip_route 124.236.0.0/14 -add china_ip_route 124.240.0.0/17 -add china_ip_route 124.240.128.0/18 -add china_ip_route 124.242.0.0/16 -add china_ip_route 124.243.192.0/18 -add china_ip_route 124.248.0.0/17 -add china_ip_route 124.249.0.0/16 -add china_ip_route 124.250.0.0/15 -add china_ip_route 124.254.0.0/18 -add china_ip_route 125.31.192.0/18 -add china_ip_route 125.32.0.0/16 -add china_ip_route 125.33.0.0/16 -add china_ip_route 125.34.0.0/16 -add china_ip_route 125.35.0.0/17 -add china_ip_route 125.35.128.0/17 -add china_ip_route 125.36.0.0/14 -add china_ip_route 125.40.0.0/13 -add china_ip_route 125.58.128.0/17 -add china_ip_route 125.61.128.0/17 -add china_ip_route 125.62.0.0/18 -add china_ip_route 125.64.0.0/13 -add china_ip_route 125.72.0.0/16 -add china_ip_route 125.73.0.0/16 -add china_ip_route 125.74.0.0/15 -add china_ip_route 125.76.0.0/17 -add china_ip_route 125.76.128.0/17 -add china_ip_route 125.77.0.0/16 -add china_ip_route 125.78.0.0/15 -add china_ip_route 125.80.0.0/13 -add china_ip_route 125.88.0.0/13 -add china_ip_route 125.96.0.0/15 -add china_ip_route 125.98.0.0/16 -add china_ip_route 125.104.0.0/13 -add china_ip_route 125.112.0.0/12 -add china_ip_route 125.169.0.0/16 -add china_ip_route 125.171.0.0/16 -add china_ip_route 125.208.0.0/18 -add china_ip_route 125.210.0.0/16 -add china_ip_route 125.211.0.0/16 -add china_ip_route 125.213.0.0/17 -add china_ip_route 125.214.96.0/19 -add china_ip_route 125.215.0.0/18 -add china_ip_route 125.216.0.0/15 -add china_ip_route 125.218.0.0/16 -add china_ip_route 125.219.0.0/16 -add china_ip_route 125.220.0.0/15 -add china_ip_route 125.222.0.0/15 -add china_ip_route 125.254.128.0/18 -add china_ip_route 125.254.192.0/18 -add china_ip_route 128.108.0.0/16 -add china_ip_route 129.28.0.0/16 -add china_ip_route 129.204.0.0/16 -add china_ip_route 129.211.0.0/16 -add china_ip_route 132.232.0.0/16 -add china_ip_route 134.175.0.0/16 -add china_ip_route 137.59.59.0/24 -add china_ip_route 137.59.88.0/22 -add china_ip_route 139.5.56.0/22 -add china_ip_route 139.5.60.0/22 -add china_ip_route 139.5.80.0/22 -add china_ip_route 139.5.92.0/22 -add china_ip_route 139.5.108.0/22 -add china_ip_route 139.5.128.0/22 -add china_ip_route 139.5.160.0/22 -add china_ip_route 139.5.192.0/22 -add china_ip_route 139.5.204.0/22 -add china_ip_route 139.5.208.0/22 -add china_ip_route 139.5.212.0/22 -add china_ip_route 139.5.244.0/22 -add china_ip_route 139.9.0.0/16 -add china_ip_route 139.129.0.0/16 -add china_ip_route 139.148.0.0/16 -add china_ip_route 139.155.0.0/16 -add china_ip_route 139.159.0.0/16 -add china_ip_route 139.170.0.0/16 -add china_ip_route 139.176.0.0/16 -add china_ip_route 139.183.0.0/16 -add china_ip_route 139.186.0.0/16 -add china_ip_route 139.189.0.0/16 -add china_ip_route 139.196.0.0/14 -add china_ip_route 139.200.0.0/13 -add china_ip_route 139.208.0.0/13 -add china_ip_route 139.217.0.0/16 -add china_ip_route 139.219.0.0/16 -add china_ip_route 139.220.0.0/15 -add china_ip_route 139.224.0.0/16 -add china_ip_route 139.226.0.0/15 -add china_ip_route 140.75.0.0/16 -add china_ip_route 140.143.0.0/16 -add china_ip_route 140.179.0.0/16 -add china_ip_route 140.205.0.0/16 -add china_ip_route 140.206.0.0/15 -add china_ip_route 140.210.0.0/17 -add china_ip_route 140.210.128.0/17 -add china_ip_route 140.224.0.0/16 -add china_ip_route 140.237.0.0/16 -add china_ip_route 140.240.0.0/16 -add china_ip_route 140.243.0.0/16 -add china_ip_route 140.246.0.0/16 -add china_ip_route 140.249.0.0/16 -add china_ip_route 140.250.0.0/16 -add china_ip_route 140.255.0.0/16 -add china_ip_route 142.70.0.0/16 -add china_ip_route 142.86.0.0/16 -add china_ip_route 144.0.0.0/16 -add china_ip_route 144.7.0.0/16 -add china_ip_route 144.12.0.0/16 -add china_ip_route 144.48.8.0/22 -add china_ip_route 144.48.64.0/22 -add china_ip_route 144.48.88.0/22 -add china_ip_route 144.48.156.0/22 -add china_ip_route 144.48.180.0/22 -add china_ip_route 144.48.184.0/22 -add china_ip_route 144.48.204.0/22 -add china_ip_route 144.48.208.0/22 -add china_ip_route 144.48.212.0/22 -add china_ip_route 144.48.220.0/22 -add china_ip_route 144.48.252.0/22 -add china_ip_route 144.52.0.0/16 -add china_ip_route 144.123.0.0/16 -add china_ip_route 144.255.0.0/16 -add china_ip_route 146.56.192.0/18 -add china_ip_route 146.196.56.0/22 -add china_ip_route 146.196.68.0/22 -add china_ip_route 146.196.72.0/22 -add china_ip_route 146.196.92.0/22 -add china_ip_route 146.196.112.0/22 -add china_ip_route 146.196.116.0/22 -add china_ip_route 146.196.124.0/22 -add china_ip_route 148.70.0.0/16 -add china_ip_route 149.41.0.0/16 -add china_ip_route 150.0.0.0/16 -add china_ip_route 150.115.0.0/16 -add china_ip_route 150.121.0.0/16 -add china_ip_route 150.122.0.0/16 -add china_ip_route 150.129.136.0/22 -add china_ip_route 150.129.192.0/22 -add china_ip_route 150.129.216.0/22 -add china_ip_route 150.129.252.0/22 -add china_ip_route 150.138.0.0/15 -add china_ip_route 150.158.0.0/16 -add china_ip_route 150.223.0.0/16 -add china_ip_route 150.242.0.0/22 -add china_ip_route 150.242.4.0/22 -add china_ip_route 150.242.8.0/22 -add china_ip_route 150.242.28.0/22 -add china_ip_route 150.242.44.0/22 -add china_ip_route 150.242.48.0/22 -add china_ip_route 150.242.52.0/22 -add china_ip_route 150.242.56.0/22 -add china_ip_route 150.242.76.0/22 -add china_ip_route 150.242.80.0/22 -add china_ip_route 150.242.92.0/22 -add china_ip_route 150.242.96.0/22 -add china_ip_route 150.242.112.0/22 -add china_ip_route 150.242.116.0/22 -add china_ip_route 150.242.120.0/22 -add china_ip_route 150.242.152.0/22 -add china_ip_route 150.242.156.0/22 -add china_ip_route 150.242.160.0/22 -add china_ip_route 150.242.164.0/22 -add china_ip_route 150.242.168.0/22 -add china_ip_route 150.242.184.0/22 -add china_ip_route 150.242.188.0/22 -add china_ip_route 150.242.192.0/22 -add china_ip_route 150.242.212.0/22 -add china_ip_route 150.242.224.0/22 -add china_ip_route 150.242.232.0/22 -add china_ip_route 150.242.236.0/22 -add china_ip_route 150.242.240.0/22 -add china_ip_route 150.242.244.0/22 -add china_ip_route 150.242.248.0/22 -add china_ip_route 150.248.0.0/16 -add china_ip_route 150.255.0.0/16 -add china_ip_route 152.104.128.0/17 -add china_ip_route 152.136.0.0/16 -add china_ip_route 153.0.0.0/16 -add china_ip_route 153.3.0.0/16 -add china_ip_route 153.34.0.0/15 -add china_ip_route 153.36.0.0/15 -add china_ip_route 153.99.0.0/16 -add china_ip_route 153.101.0.0/16 -add china_ip_route 153.118.0.0/15 -add china_ip_route 154.8.128.0/17 -add china_ip_route 157.0.0.0/16 -add china_ip_route 157.18.0.0/16 -add china_ip_route 157.61.0.0/16 -add china_ip_route 157.119.0.0/22 -add china_ip_route 157.119.8.0/22 -add china_ip_route 157.119.12.0/22 -add china_ip_route 157.119.16.0/22 -add china_ip_route 157.119.28.0/22 -add china_ip_route 157.119.132.0/22 -add china_ip_route 157.119.136.0/22 -add china_ip_route 157.119.140.0/22 -add china_ip_route 157.119.144.0/22 -add china_ip_route 157.119.148.0/22 -add china_ip_route 157.119.152.0/22 -add china_ip_route 157.119.156.0/22 -add china_ip_route 157.119.160.0/22 -add china_ip_route 157.119.164.0/22 -add china_ip_route 157.119.172.0/22 -add china_ip_route 157.119.192.0/22 -add china_ip_route 157.119.196.0/22 -add china_ip_route 157.119.240.0/22 -add china_ip_route 157.119.252.0/22 -add china_ip_route 157.122.0.0/16 -add china_ip_route 157.148.0.0/16 -add china_ip_route 157.156.0.0/16 -add china_ip_route 157.255.0.0/16 -add china_ip_route 158.60.0.0/16 -add china_ip_route 158.79.0.0/16 -add china_ip_route 159.27.0.0/16 -add china_ip_route 159.75.0.0/16 -add china_ip_route 159.226.0.0/16 -add china_ip_route 160.19.208.0/22 -add china_ip_route 160.19.212.0/22 -add china_ip_route 160.19.216.0/22 -add china_ip_route 160.20.48.0/22 -add china_ip_route 160.202.60.0/22 -add china_ip_route 160.202.148.0/22 -add china_ip_route 160.202.152.0/22 -add china_ip_route 160.202.168.0/22 -add china_ip_route 160.202.212.0/22 -add china_ip_route 160.202.216.0/22 -add china_ip_route 160.202.220.0/22 -add china_ip_route 160.202.224.0/22 -add china_ip_route 160.202.228.0/22 -add china_ip_route 160.202.232.0/22 -add china_ip_route 160.202.236.0/22 -add china_ip_route 160.202.240.0/22 -add china_ip_route 160.202.244.0/22 -add china_ip_route 160.202.248.0/22 -add china_ip_route 160.202.252.0/22 -add china_ip_route 160.238.64.0/22 -add china_ip_route 161.120.0.0/16 -add china_ip_route 161.189.0.0/16 -add china_ip_route 161.207.0.0/16 -add china_ip_route 162.14.0.0/16 -add china_ip_route 162.105.0.0/16 -add china_ip_route 163.0.0.0/16 -add china_ip_route 163.47.4.0/22 -add china_ip_route 163.53.0.0/22 -add china_ip_route 163.53.4.0/22 -add china_ip_route 163.53.8.0/22 -add china_ip_route 163.53.12.0/22 -add china_ip_route 163.53.36.0/22 -add china_ip_route 163.53.40.0/22 -add china_ip_route 163.53.44.0/22 -add china_ip_route 163.53.48.0/22 -add china_ip_route 163.53.52.0/22 -add china_ip_route 163.53.56.0/22 -add china_ip_route 163.53.60.0/22 -add china_ip_route 163.53.64.0/22 -add china_ip_route 163.53.88.0/22 -add china_ip_route 163.53.92.0/22 -add china_ip_route 163.53.96.0/22 -add china_ip_route 163.53.100.0/22 -add china_ip_route 163.53.104.0/22 -add china_ip_route 163.53.108.0/22 -add china_ip_route 163.53.112.0/22 -add china_ip_route 163.53.116.0/22 -add china_ip_route 163.53.120.0/22 -add china_ip_route 163.53.124.0/22 -add china_ip_route 163.53.128.0/22 -add china_ip_route 163.53.132.0/22 -add china_ip_route 163.53.136.0/22 -add china_ip_route 163.53.160.0/22 -add china_ip_route 163.53.164.0/22 -add china_ip_route 163.53.168.0/22 -add china_ip_route 163.53.172.0/22 -add china_ip_route 163.53.188.0/22 -add china_ip_route 163.53.220.0/22 -add china_ip_route 163.53.240.0/22 -add china_ip_route 163.125.0.0/16 -add china_ip_route 163.142.0.0/16 -add china_ip_route 163.177.0.0/16 -add china_ip_route 163.179.0.0/16 -add china_ip_route 163.204.0.0/16 -add china_ip_route 163.228.0.0/16 -add china_ip_route 164.52.0.0/17 -add china_ip_route 166.111.0.0/16 -add china_ip_route 167.139.0.0/16 -add china_ip_route 167.189.0.0/16 -add china_ip_route 167.220.244.0/22 -add china_ip_route 168.160.0.0/16 -add china_ip_route 170.179.0.0/16 -add china_ip_route 171.8.0.0/13 -add china_ip_route 171.34.0.0/15 -add china_ip_route 171.36.0.0/14 -add china_ip_route 171.40.0.0/13 -add china_ip_route 171.80.0.0/14 -add china_ip_route 171.84.0.0/14 -add china_ip_route 171.88.0.0/13 -add china_ip_route 171.104.0.0/13 -add china_ip_route 171.112.0.0/14 -add china_ip_route 171.116.0.0/14 -add china_ip_route 171.120.0.0/13 -add china_ip_route 171.208.0.0/12 -add china_ip_route 172.81.192.0/18 -add china_ip_route 175.0.0.0/12 -add china_ip_route 175.16.0.0/13 -add china_ip_route 175.24.0.0/16 -add china_ip_route 175.25.0.0/16 -add china_ip_route 175.26.0.0/16 -add china_ip_route 175.27.0.0/16 -add china_ip_route 175.30.0.0/15 -add china_ip_route 175.42.0.0/15 -add china_ip_route 175.44.0.0/16 -add china_ip_route 175.46.0.0/15 -add china_ip_route 175.48.0.0/12 -add china_ip_route 175.64.0.0/11 -add china_ip_route 175.102.0.0/16 -add china_ip_route 175.106.128.0/17 -add china_ip_route 175.111.144.0/22 -add china_ip_route 175.111.148.0/22 -add china_ip_route 175.111.152.0/22 -add china_ip_route 175.111.156.0/22 -add china_ip_route 175.111.160.0/22 -add china_ip_route 175.111.164.0/22 -add china_ip_route 175.111.168.0/22 -add china_ip_route 175.111.172.0/22 -add china_ip_route 175.111.184.0/22 -add china_ip_route 175.146.0.0/15 -add china_ip_route 175.148.0.0/14 -add china_ip_route 175.152.0.0/14 -add china_ip_route 175.158.96.0/22 -add china_ip_route 175.160.0.0/12 -add china_ip_route 175.176.156.0/22 -add china_ip_route 175.176.176.0/22 -add china_ip_route 175.176.188.0/22 -add china_ip_route 175.176.192.0/22 -add china_ip_route 175.178.0.0/16 -add china_ip_route 175.184.128.0/18 -add china_ip_route 175.185.0.0/16 -add china_ip_route 175.186.0.0/15 -add china_ip_route 175.188.0.0/14 -add china_ip_route 180.76.0.0/16 -add china_ip_route 180.77.0.0/16 -add china_ip_route 180.78.0.0/15 -add china_ip_route 180.84.0.0/15 -add china_ip_route 180.86.0.0/16 -add china_ip_route 180.88.0.0/14 -add china_ip_route 180.94.56.0/21 -add china_ip_route 180.94.96.0/20 -add china_ip_route 180.94.120.0/22 -add china_ip_route 180.94.124.0/22 -add china_ip_route 180.95.128.0/17 -add china_ip_route 180.96.0.0/11 -add china_ip_route 180.129.128.0/17 -add china_ip_route 180.130.0.0/16 -add china_ip_route 180.136.0.0/13 -add china_ip_route 180.148.16.0/21 -add china_ip_route 180.148.152.0/21 -add china_ip_route 180.148.216.0/21 -add china_ip_route 180.148.224.0/19 -add china_ip_route 180.149.128.0/19 -add china_ip_route 180.149.236.0/22 -add china_ip_route 180.150.160.0/19 -add china_ip_route 180.152.0.0/13 -add china_ip_route 180.160.0.0/12 -add china_ip_route 180.178.112.0/22 -add china_ip_route 180.178.116.0/22 -add china_ip_route 180.178.192.0/18 -add china_ip_route 180.184.0.0/15 -add china_ip_route 180.186.0.0/16 -add china_ip_route 180.187.0.0/16 -add china_ip_route 180.188.0.0/17 -add china_ip_route 180.189.148.0/22 -add china_ip_route 180.200.252.0/22 -add china_ip_route 180.201.0.0/16 -add china_ip_route 180.202.0.0/15 -add china_ip_route 180.208.0.0/15 -add china_ip_route 180.210.212.0/22 -add china_ip_route 180.210.224.0/19 -add china_ip_route 180.212.0.0/15 -add china_ip_route 180.222.224.0/19 -add china_ip_route 180.223.0.0/16 -add china_ip_route 180.233.0.0/18 -add china_ip_route 180.233.64.0/19 -add china_ip_route 180.233.144.0/22 -add china_ip_route 180.235.64.0/19 -add china_ip_route 180.235.112.0/22 -add china_ip_route 182.16.144.0/22 -add china_ip_route 182.16.148.0/22 -add china_ip_route 182.16.192.0/19 -add china_ip_route 182.18.0.0/17 -add china_ip_route 182.23.184.0/21 -add china_ip_route 182.23.200.0/21 -add china_ip_route 182.32.0.0/12 -add china_ip_route 182.48.96.0/19 -add china_ip_route 182.49.0.0/16 -add china_ip_route 182.50.0.0/20 -add china_ip_route 182.50.112.0/20 -add china_ip_route 182.51.0.0/16 -add china_ip_route 182.54.0.0/17 -add china_ip_route 182.54.244.0/22 -add china_ip_route 182.61.0.0/16 -add china_ip_route 182.80.0.0/14 -add china_ip_route 182.84.0.0/14 -add china_ip_route 182.88.0.0/14 -add china_ip_route 182.92.0.0/16 -add china_ip_route 182.96.0.0/12 -add china_ip_route 182.112.0.0/12 -add china_ip_route 182.128.0.0/12 -add china_ip_route 182.144.0.0/13 -add china_ip_route 182.157.0.0/16 -add china_ip_route 182.160.64.0/19 -add china_ip_route 182.174.0.0/15 -add china_ip_route 182.200.0.0/13 -add china_ip_route 182.236.128.0/17 -add china_ip_route 182.237.24.0/22 -add china_ip_route 182.237.28.0/22 -add china_ip_route 182.238.0.0/16 -add china_ip_route 182.239.0.0/19 -add china_ip_route 182.240.0.0/13 -add china_ip_route 182.254.0.0/16 -add china_ip_route 182.255.32.0/22 -add china_ip_route 182.255.60.0/22 -add china_ip_route 183.0.0.0/10 -add china_ip_route 183.64.0.0/13 -add china_ip_route 183.78.160.0/22 -add china_ip_route 183.78.164.0/22 -add china_ip_route 183.78.180.0/22 -add china_ip_route 183.81.172.0/22 -add china_ip_route 183.81.180.0/22 -add china_ip_route 183.84.0.0/15 -add china_ip_route 183.91.128.0/22 -add china_ip_route 183.91.136.0/21 -add china_ip_route 183.91.144.0/20 -add china_ip_route 183.92.0.0/14 -add china_ip_route 183.128.0.0/11 -add china_ip_route 183.160.0.0/13 -add china_ip_route 183.168.0.0/15 -add china_ip_route 183.170.0.0/16 -add china_ip_route 183.172.0.0/14 -add china_ip_route 183.182.0.0/19 -add china_ip_route 183.184.0.0/13 -add china_ip_route 183.192.0.0/10 -add china_ip_route 185.203.36.0/22 -add china_ip_route 188.131.128.0/17 -add china_ip_route 192.51.188.0/24 -add china_ip_route 192.55.46.0/24 -add china_ip_route 192.55.68.0/22 -add china_ip_route 192.102.204.0/23 -add china_ip_route 192.124.154.0/24 -add china_ip_route 192.140.128.0/22 -add china_ip_route 192.140.132.0/22 -add china_ip_route 192.140.136.0/22 -add china_ip_route 192.140.156.0/22 -add china_ip_route 192.140.160.0/22 -add china_ip_route 192.140.164.0/22 -add china_ip_route 192.140.168.0/22 -add china_ip_route 192.140.172.0/22 -add china_ip_route 192.140.176.0/22 -add china_ip_route 192.140.180.0/22 -add china_ip_route 192.140.184.0/22 -add china_ip_route 192.140.188.0/22 -add china_ip_route 192.140.192.0/22 -add china_ip_route 192.140.196.0/22 -add china_ip_route 192.140.200.0/22 -add china_ip_route 192.140.204.0/22 -add china_ip_route 192.140.208.0/22 -add china_ip_route 192.140.212.0/22 -add china_ip_route 192.144.128.0/17 -add china_ip_route 192.197.113.0/24 -add china_ip_route 193.112.0.0/16 -add china_ip_route 198.175.100.0/22 -add china_ip_route 199.212.57.0/24 -add china_ip_route 202.0.100.0/23 -add china_ip_route 202.0.122.0/23 -add china_ip_route 202.0.176.0/22 -add china_ip_route 202.3.128.0/23 -add china_ip_route 202.3.134.0/24 -add china_ip_route 202.4.128.0/19 -add china_ip_route 202.4.252.0/22 -add china_ip_route 202.5.208.0/22 -add china_ip_route 202.5.212.0/22 -add china_ip_route 202.5.216.0/22 -add china_ip_route 202.6.6.0/23 -add china_ip_route 202.6.66.0/23 -add china_ip_route 202.6.72.0/23 -add china_ip_route 202.6.87.0/24 -add china_ip_route 202.6.88.0/23 -add china_ip_route 202.6.92.0/23 -add china_ip_route 202.6.103.0/24 -add china_ip_route 202.6.108.0/24 -add china_ip_route 202.6.110.0/23 -add china_ip_route 202.6.114.0/24 -add china_ip_route 202.6.176.0/20 -add china_ip_route 202.8.0.0/24 -add china_ip_route 202.8.2.0/23 -add china_ip_route 202.8.4.0/23 -add china_ip_route 202.8.12.0/24 -add china_ip_route 202.8.24.0/24 -add china_ip_route 202.8.77.0/24 -add china_ip_route 202.8.120.0/22 -add china_ip_route 202.8.128.0/19 -add china_ip_route 202.8.192.0/20 -add china_ip_route 202.9.32.0/24 -add china_ip_route 202.9.34.0/23 -add china_ip_route 202.9.48.0/23 -add china_ip_route 202.9.51.0/24 -add china_ip_route 202.9.52.0/23 -add china_ip_route 202.9.54.0/24 -add china_ip_route 202.9.57.0/24 -add china_ip_route 202.9.58.0/23 -add china_ip_route 202.10.64.0/20 -add china_ip_route 202.10.112.0/22 -add china_ip_route 202.10.116.0/22 -add china_ip_route 202.10.120.0/22 -add china_ip_route 202.10.124.0/22 -add china_ip_route 202.12.1.0/24 -add china_ip_route 202.12.2.0/24 -add china_ip_route 202.12.17.0/24 -add china_ip_route 202.12.18.0/24 -add china_ip_route 202.12.19.0/24 -add china_ip_route 202.12.72.0/24 -add china_ip_route 202.12.84.0/23 -add china_ip_route 202.12.96.0/24 -add china_ip_route 202.12.98.0/23 -add china_ip_route 202.12.106.0/24 -add china_ip_route 202.12.111.0/24 -add china_ip_route 202.12.116.0/24 -add china_ip_route 202.14.64.0/23 -add china_ip_route 202.14.69.0/24 -add china_ip_route 202.14.73.0/24 -add china_ip_route 202.14.74.0/23 -add china_ip_route 202.14.76.0/24 -add china_ip_route 202.14.78.0/23 -add china_ip_route 202.14.88.0/24 -add china_ip_route 202.14.97.0/24 -add china_ip_route 202.14.104.0/23 -add china_ip_route 202.14.108.0/23 -add china_ip_route 202.14.111.0/24 -add china_ip_route 202.14.114.0/23 -add china_ip_route 202.14.118.0/23 -add china_ip_route 202.14.124.0/23 -add china_ip_route 202.14.127.0/24 -add china_ip_route 202.14.129.0/24 -add china_ip_route 202.14.135.0/24 -add china_ip_route 202.14.136.0/24 -add china_ip_route 202.14.149.0/24 -add china_ip_route 202.14.151.0/24 -add china_ip_route 202.14.157.0/24 -add china_ip_route 202.14.158.0/23 -add china_ip_route 202.14.169.0/24 -add china_ip_route 202.14.170.0/23 -add china_ip_route 202.14.172.0/22 -add china_ip_route 202.14.176.0/24 -add china_ip_route 202.14.184.0/23 -add china_ip_route 202.14.208.0/23 -add china_ip_route 202.14.213.0/24 -add china_ip_route 202.14.219.0/24 -add china_ip_route 202.14.220.0/24 -add china_ip_route 202.14.222.0/23 -add china_ip_route 202.14.225.0/24 -add china_ip_route 202.14.226.0/23 -add china_ip_route 202.14.231.0/24 -add china_ip_route 202.14.235.0/24 -add china_ip_route 202.14.236.0/23 -add china_ip_route 202.14.238.0/24 -add china_ip_route 202.14.239.0/24 -add china_ip_route 202.14.246.0/24 -add china_ip_route 202.14.251.0/24 -add china_ip_route 202.20.66.0/24 -add china_ip_route 202.20.79.0/24 -add china_ip_route 202.20.87.0/24 -add china_ip_route 202.20.88.0/23 -add china_ip_route 202.20.90.0/24 -add china_ip_route 202.20.94.0/23 -add china_ip_route 202.20.114.0/24 -add china_ip_route 202.20.117.0/24 -add china_ip_route 202.20.120.0/24 -add china_ip_route 202.20.125.0/24 -add china_ip_route 202.20.126.0/24 -add china_ip_route 202.20.127.0/24 -add china_ip_route 202.21.48.0/22 -add china_ip_route 202.21.52.0/22 -add china_ip_route 202.21.56.0/22 -add china_ip_route 202.21.60.0/22 -add china_ip_route 202.21.131.0/24 -add china_ip_route 202.21.132.0/24 -add china_ip_route 202.21.141.0/24 -add china_ip_route 202.21.142.0/24 -add china_ip_route 202.21.147.0/24 -add china_ip_route 202.21.148.0/24 -add china_ip_route 202.21.150.0/23 -add china_ip_route 202.21.152.0/23 -add china_ip_route 202.21.154.0/24 -add china_ip_route 202.21.156.0/24 -add china_ip_route 202.22.248.0/22 -add china_ip_route 202.22.252.0/22 -add china_ip_route 202.27.12.0/24 -add china_ip_route 202.27.14.0/24 -add china_ip_route 202.27.136.0/23 -add china_ip_route 202.36.226.0/24 -add china_ip_route 202.38.0.0/23 -add china_ip_route 202.38.2.0/23 -add china_ip_route 202.38.8.0/21 -add china_ip_route 202.38.48.0/20 -add china_ip_route 202.38.64.0/19 -add china_ip_route 202.38.96.0/19 -add china_ip_route 202.38.128.0/23 -add china_ip_route 202.38.130.0/23 -add china_ip_route 202.38.132.0/23 -add china_ip_route 202.38.134.0/24 -add china_ip_route 202.38.135.0/24 -add china_ip_route 202.38.136.0/23 -add china_ip_route 202.38.138.0/24 -add china_ip_route 202.38.140.0/23 -add china_ip_route 202.38.142.0/23 -add china_ip_route 202.38.146.0/23 -add china_ip_route 202.38.149.0/24 -add china_ip_route 202.38.150.0/23 -add china_ip_route 202.38.152.0/23 -add china_ip_route 202.38.154.0/23 -add china_ip_route 202.38.156.0/24 -add china_ip_route 202.38.158.0/23 -add china_ip_route 202.38.160.0/23 -add china_ip_route 202.38.164.0/22 -add china_ip_route 202.38.168.0/23 -add china_ip_route 202.38.170.0/24 -add china_ip_route 202.38.171.0/24 -add china_ip_route 202.38.176.0/23 -add china_ip_route 202.38.184.0/21 -add china_ip_route 202.38.192.0/18 -add china_ip_route 202.40.4.0/23 -add china_ip_route 202.40.7.0/24 -add china_ip_route 202.40.15.0/24 -add china_ip_route 202.40.135.0/24 -add china_ip_route 202.40.136.0/24 -add china_ip_route 202.40.140.0/24 -add china_ip_route 202.40.143.0/24 -add china_ip_route 202.40.144.0/23 -add china_ip_route 202.40.150.0/24 -add china_ip_route 202.40.155.0/24 -add china_ip_route 202.40.156.0/24 -add china_ip_route 202.40.158.0/23 -add china_ip_route 202.40.162.0/24 -add china_ip_route 202.41.8.0/23 -add china_ip_route 202.41.11.0/24 -add china_ip_route 202.41.12.0/23 -add china_ip_route 202.41.128.0/24 -add china_ip_route 202.41.130.0/23 -add china_ip_route 202.41.152.0/21 -add china_ip_route 202.41.192.0/24 -add china_ip_route 202.41.196.0/22 -add china_ip_route 202.41.200.0/22 -add china_ip_route 202.41.240.0/20 -add china_ip_route 202.43.76.0/22 -add china_ip_route 202.43.144.0/20 -add china_ip_route 202.44.16.0/20 -add china_ip_route 202.44.48.0/22 -add china_ip_route 202.44.67.0/24 -add china_ip_route 202.44.74.0/24 -add china_ip_route 202.44.97.0/24 -add china_ip_route 202.44.129.0/24 -add china_ip_route 202.44.132.0/23 -add china_ip_route 202.44.146.0/23 -add china_ip_route 202.45.0.0/23 -add china_ip_route 202.45.2.0/24 -add china_ip_route 202.45.15.0/24 -add china_ip_route 202.45.16.0/20 -add china_ip_route 202.46.16.0/23 -add china_ip_route 202.46.18.0/24 -add china_ip_route 202.46.20.0/23 -add china_ip_route 202.46.32.0/19 -add china_ip_route 202.46.128.0/24 -add china_ip_route 202.46.224.0/20 -add china_ip_route 202.47.82.0/23 -add china_ip_route 202.47.96.0/22 -add china_ip_route 202.47.100.0/22 -add china_ip_route 202.47.104.0/22 -add china_ip_route 202.47.108.0/22 -add china_ip_route 202.47.126.0/24 -add china_ip_route 202.47.128.0/24 -add china_ip_route 202.47.130.0/23 -add china_ip_route 202.52.33.0/24 -add china_ip_route 202.52.34.0/24 -add china_ip_route 202.52.47.0/24 -add china_ip_route 202.52.143.0/24 -add china_ip_route 202.52.144.0/24 -add china_ip_route 202.53.140.0/24 -add china_ip_route 202.53.143.0/24 -add china_ip_route 202.57.192.0/22 -add china_ip_route 202.57.196.0/22 -add china_ip_route 202.57.200.0/22 -add china_ip_route 202.57.204.0/22 -add china_ip_route 202.57.212.0/22 -add china_ip_route 202.57.216.0/22 -add china_ip_route 202.57.240.0/20 -add china_ip_route 202.58.0.0/24 -add china_ip_route 202.58.101.0/24 -add china_ip_route 202.58.104.0/22 -add china_ip_route 202.58.112.0/22 -add china_ip_route 202.59.0.0/24 -add china_ip_route 202.59.1.0/24 -add china_ip_route 202.59.212.0/22 -add china_ip_route 202.59.236.0/24 -add china_ip_route 202.59.240.0/24 -add china_ip_route 202.60.48.0/21 -add china_ip_route 202.60.96.0/21 -add china_ip_route 202.60.112.0/20 -add china_ip_route 202.60.132.0/22 -add china_ip_route 202.60.136.0/21 -add china_ip_route 202.60.144.0/20 -add china_ip_route 202.61.68.0/22 -add china_ip_route 202.61.76.0/22 -add china_ip_route 202.61.88.0/22 -add china_ip_route 202.61.123.0/24 -add china_ip_route 202.61.127.0/24 -add china_ip_route 202.62.112.0/22 -add china_ip_route 202.62.248.0/22 -add china_ip_route 202.62.252.0/24 -add china_ip_route 202.62.255.0/24 -add china_ip_route 202.63.80.0/24 -add china_ip_route 202.63.81.0/24 -add china_ip_route 202.63.82.0/23 -add china_ip_route 202.63.84.0/22 -add china_ip_route 202.63.88.0/21 -add china_ip_route 202.63.160.0/19 -add china_ip_route 202.63.248.0/22 -add china_ip_route 202.63.253.0/24 -add china_ip_route 202.65.0.0/21 -add china_ip_route 202.65.8.0/23 -add china_ip_route 202.65.96.0/22 -add china_ip_route 202.65.100.0/22 -add china_ip_route 202.65.104.0/22 -add china_ip_route 202.65.108.0/22 -add china_ip_route 202.66.168.0/22 -add china_ip_route 202.67.0.0/22 -add china_ip_route 202.69.4.0/22 -add china_ip_route 202.69.16.0/20 -add china_ip_route 202.70.0.0/19 -add china_ip_route 202.70.96.0/20 -add china_ip_route 202.70.192.0/20 -add china_ip_route 202.71.32.0/22 -add china_ip_route 202.71.36.0/22 -add china_ip_route 202.71.40.0/22 -add china_ip_route 202.71.44.0/22 -add china_ip_route 202.72.40.0/21 -add china_ip_route 202.72.80.0/20 -add china_ip_route 202.72.112.0/22 -add china_ip_route 202.72.116.0/22 -add china_ip_route 202.72.120.0/22 -add china_ip_route 202.72.124.0/22 -add china_ip_route 202.73.128.0/22 -add china_ip_route 202.73.240.0/22 -add china_ip_route 202.73.244.0/22 -add china_ip_route 202.73.248.0/22 -add china_ip_route 202.73.252.0/22 -add china_ip_route 202.74.8.0/21 -add china_ip_route 202.74.36.0/24 -add china_ip_route 202.74.42.0/24 -add china_ip_route 202.74.52.0/24 -add china_ip_route 202.74.80.0/20 -add china_ip_route 202.74.254.0/23 -add china_ip_route 202.75.208.0/20 -add china_ip_route 202.75.252.0/22 -add china_ip_route 202.76.252.0/22 -add china_ip_route 202.77.80.0/21 -add china_ip_route 202.77.92.0/22 -add china_ip_route 202.78.8.0/21 -add china_ip_route 202.79.224.0/21 -add china_ip_route 202.79.248.0/22 -add china_ip_route 202.80.192.0/21 -add china_ip_route 202.80.200.0/21 -add china_ip_route 202.81.0.0/22 -add china_ip_route 202.81.176.0/22 -add china_ip_route 202.81.180.0/22 -add china_ip_route 202.81.184.0/22 -add china_ip_route 202.81.188.0/22 -add china_ip_route 202.83.252.0/22 -add china_ip_route 202.84.0.0/22 -add china_ip_route 202.84.4.0/22 -add china_ip_route 202.84.8.0/21 -add china_ip_route 202.84.16.0/23 -add china_ip_route 202.84.22.0/24 -add china_ip_route 202.84.24.0/21 -add china_ip_route 202.85.208.0/20 -add china_ip_route 202.86.249.0/24 -add china_ip_route 202.86.252.0/22 -add china_ip_route 202.87.80.0/20 -add china_ip_route 202.88.32.0/22 -add china_ip_route 202.89.8.0/21 -add china_ip_route 202.89.96.0/22 -add china_ip_route 202.89.108.0/22 -add china_ip_route 202.89.119.0/24 -add china_ip_route 202.89.232.0/21 -add china_ip_route 202.90.0.0/22 -add china_ip_route 202.90.16.0/22 -add china_ip_route 202.90.20.0/22 -add china_ip_route 202.90.24.0/22 -add china_ip_route 202.90.28.0/22 -add china_ip_route 202.90.37.0/24 -add china_ip_route 202.90.96.0/22 -add china_ip_route 202.90.100.0/22 -add china_ip_route 202.90.104.0/22 -add china_ip_route 202.90.108.0/22 -add china_ip_route 202.90.112.0/20 -add china_ip_route 202.90.193.0/24 -add china_ip_route 202.90.196.0/24 -add china_ip_route 202.90.205.0/24 -add china_ip_route 202.90.224.0/20 -add china_ip_route 202.91.0.0/22 -add china_ip_route 202.91.36.0/22 -add china_ip_route 202.91.96.0/20 -add china_ip_route 202.91.128.0/22 -add china_ip_route 202.91.176.0/20 -add china_ip_route 202.91.224.0/19 -add china_ip_route 202.92.0.0/22 -add china_ip_route 202.92.8.0/21 -add china_ip_route 202.92.48.0/20 -add china_ip_route 202.92.252.0/22 -add china_ip_route 202.93.0.0/22 -add china_ip_route 202.93.252.0/22 -add china_ip_route 202.94.68.0/24 -add china_ip_route 202.94.74.0/24 -add china_ip_route 202.94.81.0/24 -add china_ip_route 202.94.92.0/22 -add china_ip_route 202.95.240.0/21 -add china_ip_route 202.95.252.0/22 -add china_ip_route 202.96.0.0/18 -add china_ip_route 202.96.64.0/21 -add china_ip_route 202.96.72.0/21 -add china_ip_route 202.96.80.0/20 -add china_ip_route 202.96.96.0/21 -add china_ip_route 202.96.104.0/21 -add china_ip_route 202.96.112.0/20 -add china_ip_route 202.96.128.0/21 -add china_ip_route 202.96.136.0/21 -add china_ip_route 202.96.144.0/20 -add china_ip_route 202.96.160.0/21 -add china_ip_route 202.96.168.0/21 -add china_ip_route 202.96.176.0/20 -add china_ip_route 202.96.192.0/21 -add china_ip_route 202.96.200.0/21 -add china_ip_route 202.96.208.0/20 -add china_ip_route 202.96.224.0/21 -add china_ip_route 202.96.232.0/21 -add china_ip_route 202.96.240.0/20 -add china_ip_route 202.97.0.0/21 -add china_ip_route 202.97.8.0/21 -add china_ip_route 202.97.16.0/20 -add china_ip_route 202.97.32.0/19 -add china_ip_route 202.97.64.0/19 -add china_ip_route 202.97.96.0/20 -add china_ip_route 202.97.112.0/20 -add china_ip_route 202.97.128.0/18 -add china_ip_route 202.97.192.0/19 -add china_ip_route 202.97.224.0/21 -add china_ip_route 202.97.232.0/21 -add china_ip_route 202.97.240.0/20 -add china_ip_route 202.98.0.0/21 -add china_ip_route 202.98.8.0/21 -add china_ip_route 202.98.16.0/20 -add china_ip_route 202.98.32.0/21 -add china_ip_route 202.98.40.0/21 -add china_ip_route 202.98.48.0/20 -add china_ip_route 202.98.64.0/19 -add china_ip_route 202.98.96.0/21 -add china_ip_route 202.98.104.0/21 -add china_ip_route 202.98.112.0/20 -add china_ip_route 202.98.128.0/19 -add china_ip_route 202.98.160.0/21 -add china_ip_route 202.98.168.0/21 -add china_ip_route 202.98.176.0/20 -add china_ip_route 202.98.192.0/21 -add china_ip_route 202.98.200.0/21 -add china_ip_route 202.98.208.0/20 -add china_ip_route 202.98.224.0/21 -add china_ip_route 202.98.232.0/21 -add china_ip_route 202.98.240.0/20 -add china_ip_route 202.99.0.0/18 -add china_ip_route 202.99.64.0/19 -add china_ip_route 202.99.96.0/21 -add china_ip_route 202.99.104.0/21 -add china_ip_route 202.99.112.0/20 -add china_ip_route 202.99.128.0/19 -add china_ip_route 202.99.160.0/21 -add china_ip_route 202.99.168.0/21 -add china_ip_route 202.99.176.0/20 -add china_ip_route 202.99.192.0/21 -add china_ip_route 202.99.200.0/21 -add china_ip_route 202.99.208.0/20 -add china_ip_route 202.99.224.0/21 -add china_ip_route 202.99.232.0/21 -add china_ip_route 202.99.240.0/20 -add china_ip_route 202.100.0.0/21 -add china_ip_route 202.100.8.0/21 -add china_ip_route 202.100.16.0/20 -add china_ip_route 202.100.32.0/19 -add china_ip_route 202.100.64.0/21 -add china_ip_route 202.100.72.0/21 -add china_ip_route 202.100.80.0/20 -add china_ip_route 202.100.96.0/21 -add china_ip_route 202.100.104.0/21 -add china_ip_route 202.100.112.0/20 -add china_ip_route 202.100.128.0/21 -add china_ip_route 202.100.136.0/21 -add china_ip_route 202.100.144.0/20 -add china_ip_route 202.100.160.0/21 -add china_ip_route 202.100.168.0/21 -add china_ip_route 202.100.176.0/20 -add china_ip_route 202.100.192.0/21 -add china_ip_route 202.100.200.0/21 -add china_ip_route 202.100.208.0/20 -add china_ip_route 202.100.224.0/19 -add china_ip_route 202.101.0.0/18 -add china_ip_route 202.101.64.0/19 -add china_ip_route 202.101.96.0/19 -add china_ip_route 202.101.128.0/18 -add china_ip_route 202.101.192.0/19 -add china_ip_route 202.101.224.0/21 -add china_ip_route 202.101.232.0/21 -add china_ip_route 202.101.240.0/20 -add china_ip_route 202.102.0.0/19 -add china_ip_route 202.102.32.0/19 -add china_ip_route 202.102.64.0/18 -add china_ip_route 202.102.128.0/21 -add china_ip_route 202.102.136.0/21 -add china_ip_route 202.102.144.0/20 -add china_ip_route 202.102.160.0/19 -add china_ip_route 202.102.192.0/21 -add china_ip_route 202.102.200.0/21 -add china_ip_route 202.102.208.0/20 -add china_ip_route 202.102.224.0/21 -add china_ip_route 202.102.232.0/21 -add china_ip_route 202.102.240.0/20 -add china_ip_route 202.103.0.0/21 -add china_ip_route 202.103.8.0/21 -add china_ip_route 202.103.16.0/20 -add china_ip_route 202.103.32.0/19 -add china_ip_route 202.103.64.0/19 -add china_ip_route 202.103.96.0/21 -add china_ip_route 202.103.104.0/21 -add china_ip_route 202.103.112.0/20 -add china_ip_route 202.103.128.0/18 -add china_ip_route 202.103.192.0/19 -add china_ip_route 202.103.224.0/21 -add china_ip_route 202.103.232.0/21 -add china_ip_route 202.103.240.0/20 -add china_ip_route 202.104.0.0/15 -add china_ip_route 202.106.0.0/16 -add china_ip_route 202.107.0.0/17 -add china_ip_route 202.107.128.0/17 -add china_ip_route 202.108.0.0/16 -add china_ip_route 202.109.0.0/16 -add china_ip_route 202.110.0.0/18 -add china_ip_route 202.110.64.0/18 -add china_ip_route 202.110.128.0/18 -add china_ip_route 202.110.192.0/18 -add china_ip_route 202.111.0.0/17 -add china_ip_route 202.111.128.0/19 -add china_ip_route 202.111.160.0/19 -add china_ip_route 202.111.192.0/18 -add china_ip_route 202.112.0.0/16 -add china_ip_route 202.113.0.0/20 -add china_ip_route 202.113.16.0/20 -add china_ip_route 202.113.32.0/19 -add china_ip_route 202.113.64.0/18 -add china_ip_route 202.113.128.0/18 -add china_ip_route 202.113.192.0/19 -add china_ip_route 202.113.224.0/20 -add china_ip_route 202.113.240.0/20 -add china_ip_route 202.114.0.0/19 -add china_ip_route 202.114.32.0/19 -add china_ip_route 202.114.64.0/18 -add china_ip_route 202.114.128.0/17 -add china_ip_route 202.115.0.0/19 -add china_ip_route 202.115.32.0/19 -add china_ip_route 202.115.64.0/18 -add china_ip_route 202.115.128.0/17 -add china_ip_route 202.116.0.0/19 -add china_ip_route 202.116.32.0/20 -add china_ip_route 202.116.48.0/20 -add china_ip_route 202.116.64.0/19 -add china_ip_route 202.116.96.0/19 -add china_ip_route 202.116.128.0/17 -add china_ip_route 202.117.0.0/18 -add china_ip_route 202.117.64.0/18 -add china_ip_route 202.117.128.0/17 -add china_ip_route 202.118.0.0/19 -add china_ip_route 202.118.32.0/19 -add china_ip_route 202.118.64.0/18 -add china_ip_route 202.118.128.0/17 -add china_ip_route 202.119.0.0/19 -add china_ip_route 202.119.32.0/19 -add china_ip_route 202.119.64.0/20 -add china_ip_route 202.119.80.0/20 -add china_ip_route 202.119.96.0/19 -add china_ip_route 202.119.128.0/17 -add china_ip_route 202.120.0.0/18 -add china_ip_route 202.120.64.0/18 -add china_ip_route 202.120.128.0/17 -add china_ip_route 202.121.0.0/16 -add china_ip_route 202.122.0.0/21 -add china_ip_route 202.122.32.0/21 -add china_ip_route 202.122.64.0/19 -add china_ip_route 202.122.112.0/21 -add china_ip_route 202.122.120.0/21 -add china_ip_route 202.122.128.0/24 -add china_ip_route 202.122.132.0/24 -add china_ip_route 202.123.96.0/20 -add china_ip_route 202.123.116.0/22 -add china_ip_route 202.123.120.0/22 -add china_ip_route 202.124.16.0/21 -add china_ip_route 202.124.24.0/22 -add china_ip_route 202.125.107.0/24 -add china_ip_route 202.125.109.0/24 -add china_ip_route 202.125.112.0/20 -add china_ip_route 202.125.176.0/20 -add china_ip_route 202.127.0.0/23 -add china_ip_route 202.127.2.0/24 -add china_ip_route 202.127.3.0/24 -add china_ip_route 202.127.4.0/24 -add china_ip_route 202.127.5.0/24 -add china_ip_route 202.127.6.0/23 -add china_ip_route 202.127.12.0/22 -add china_ip_route 202.127.16.0/20 -add china_ip_route 202.127.40.0/21 -add china_ip_route 202.127.48.0/20 -add china_ip_route 202.127.112.0/20 -add china_ip_route 202.127.128.0/20 -add china_ip_route 202.127.144.0/20 -add china_ip_route 202.127.160.0/21 -add china_ip_route 202.127.192.0/23 -add china_ip_route 202.127.194.0/23 -add china_ip_route 202.127.196.0/22 -add china_ip_route 202.127.200.0/21 -add china_ip_route 202.127.208.0/24 -add china_ip_route 202.127.209.0/24 -add china_ip_route 202.127.212.0/22 -add china_ip_route 202.127.216.0/21 -add china_ip_route 202.127.224.0/19 -add china_ip_route 202.129.208.0/24 -add china_ip_route 202.130.0.0/19 -add china_ip_route 202.130.39.0/24 -add china_ip_route 202.130.224.0/19 -add china_ip_route 202.131.16.0/21 -add china_ip_route 202.131.48.0/20 -add china_ip_route 202.131.208.0/20 -add china_ip_route 202.133.32.0/20 -add china_ip_route 202.134.58.0/24 -add china_ip_route 202.134.128.0/20 -add china_ip_route 202.134.208.0/22 -add china_ip_route 202.134.212.0/22 -add china_ip_route 202.134.216.0/22 -add china_ip_route 202.134.220.0/22 -add china_ip_route 202.136.48.0/20 -add china_ip_route 202.136.208.0/20 -add china_ip_route 202.136.224.0/20 -add china_ip_route 202.136.248.0/22 -add china_ip_route 202.137.231.0/24 -add china_ip_route 202.140.140.0/22 -add china_ip_route 202.140.144.0/22 -add china_ip_route 202.140.148.0/22 -add china_ip_route 202.140.152.0/22 -add china_ip_route 202.140.156.0/22 -add china_ip_route 202.141.160.0/19 -add china_ip_route 202.142.16.0/20 -add china_ip_route 202.143.4.0/22 -add china_ip_route 202.143.16.0/20 -add china_ip_route 202.143.32.0/20 -add china_ip_route 202.143.56.0/21 -add china_ip_route 202.143.100.0/22 -add china_ip_route 202.143.104.0/22 -add china_ip_route 202.144.196.0/22 -add china_ip_route 202.146.160.0/20 -add china_ip_route 202.146.186.0/24 -add china_ip_route 202.146.188.0/22 -add china_ip_route 202.146.196.0/22 -add china_ip_route 202.146.200.0/21 -add china_ip_route 202.147.144.0/20 -add china_ip_route 202.148.32.0/20 -add china_ip_route 202.148.64.0/19 -add china_ip_route 202.148.96.0/19 -add china_ip_route 202.149.32.0/19 -add china_ip_route 202.149.160.0/19 -add china_ip_route 202.149.224.0/19 -add china_ip_route 202.150.16.0/20 -add china_ip_route 202.150.32.0/20 -add china_ip_route 202.150.56.0/22 -add china_ip_route 202.150.192.0/20 -add china_ip_route 202.150.224.0/19 -add china_ip_route 202.151.0.0/22 -add china_ip_route 202.151.33.0/24 -add china_ip_route 202.151.128.0/19 -add china_ip_route 202.152.176.0/20 -add china_ip_route 202.153.0.0/22 -add china_ip_route 202.153.7.0/24 -add china_ip_route 202.153.48.0/20 -add china_ip_route 202.157.192.0/19 -add china_ip_route 202.158.160.0/19 -add china_ip_route 202.158.242.0/24 -add china_ip_route 202.160.140.0/22 -add china_ip_route 202.160.156.0/22 -add china_ip_route 202.160.176.0/20 -add china_ip_route 202.162.67.0/24 -add china_ip_route 202.162.75.0/24 -add china_ip_route 202.164.0.0/20 -add china_ip_route 202.164.96.0/19 -add china_ip_route 202.165.176.0/20 -add china_ip_route 202.165.208.0/20 -add china_ip_route 202.165.239.0/24 -add china_ip_route 202.165.240.0/23 -add china_ip_route 202.165.243.0/24 -add china_ip_route 202.165.245.0/24 -add china_ip_route 202.165.251.0/24 -add china_ip_route 202.165.252.0/22 -add china_ip_route 202.166.224.0/19 -add china_ip_route 202.168.80.0/22 -add china_ip_route 202.168.128.0/22 -add china_ip_route 202.168.132.0/22 -add china_ip_route 202.168.136.0/22 -add china_ip_route 202.168.140.0/22 -add china_ip_route 202.168.160.0/20 -add china_ip_route 202.168.176.0/20 -add china_ip_route 202.170.128.0/19 -add china_ip_route 202.170.216.0/21 -add china_ip_route 202.170.224.0/19 -add china_ip_route 202.171.216.0/21 -add china_ip_route 202.171.232.0/24 -add china_ip_route 202.171.235.0/24 -add china_ip_route 202.172.0.0/22 -add china_ip_route 202.172.7.0/24 -add china_ip_route 202.173.0.0/22 -add china_ip_route 202.173.6.0/24 -add china_ip_route 202.173.8.0/21 -add china_ip_route 202.173.112.0/22 -add china_ip_route 202.173.224.0/19 -add china_ip_route 202.174.64.0/20 -add china_ip_route 202.174.124.0/22 -add china_ip_route 202.176.224.0/19 -add china_ip_route 202.179.160.0/22 -add china_ip_route 202.179.164.0/22 -add china_ip_route 202.179.168.0/22 -add china_ip_route 202.179.172.0/22 -add china_ip_route 202.179.240.0/20 -add china_ip_route 202.180.128.0/19 -add china_ip_route 202.180.208.0/21 -add china_ip_route 202.181.8.0/22 -add china_ip_route 202.181.28.0/22 -add china_ip_route 202.181.112.0/20 -add china_ip_route 202.182.32.0/20 -add china_ip_route 202.182.192.0/19 -add china_ip_route 202.189.0.0/18 -add china_ip_route 202.189.80.0/20 -add china_ip_route 202.189.184.0/21 -add china_ip_route 202.191.0.0/24 -add china_ip_route 202.191.68.0/22 -add china_ip_route 202.191.72.0/21 -add china_ip_route 202.191.80.0/20 -add china_ip_route 202.192.0.0/13 -add china_ip_route 202.200.0.0/14 -add china_ip_route 202.204.0.0/14 -add china_ip_route 203.0.4.0/22 -add china_ip_route 203.0.10.0/23 -add china_ip_route 203.0.18.0/24 -add china_ip_route 203.0.24.0/24 -add china_ip_route 203.0.42.0/23 -add china_ip_route 203.0.45.0/24 -add china_ip_route 203.0.46.0/23 -add china_ip_route 203.0.81.0/24 -add china_ip_route 203.0.82.0/23 -add china_ip_route 203.0.90.0/23 -add china_ip_route 203.0.96.0/23 -add china_ip_route 203.0.104.0/21 -add china_ip_route 203.0.114.0/23 -add china_ip_route 203.0.122.0/24 -add china_ip_route 203.0.128.0/24 -add china_ip_route 203.0.130.0/23 -add china_ip_route 203.0.132.0/22 -add china_ip_route 203.0.137.0/24 -add china_ip_route 203.0.142.0/24 -add china_ip_route 203.0.144.0/24 -add china_ip_route 203.0.146.0/24 -add china_ip_route 203.0.148.0/24 -add china_ip_route 203.0.150.0/23 -add china_ip_route 203.0.152.0/24 -add china_ip_route 203.0.177.0/24 -add china_ip_route 203.0.224.0/24 -add china_ip_route 203.1.4.0/22 -add china_ip_route 203.1.18.0/24 -add china_ip_route 203.1.26.0/23 -add china_ip_route 203.1.65.0/24 -add china_ip_route 203.1.66.0/23 -add china_ip_route 203.1.70.0/23 -add china_ip_route 203.1.76.0/23 -add china_ip_route 203.1.90.0/24 -add china_ip_route 203.1.97.0/24 -add china_ip_route 203.1.98.0/23 -add china_ip_route 203.1.100.0/22 -add china_ip_route 203.1.108.0/24 -add china_ip_route 203.1.253.0/24 -add china_ip_route 203.1.254.0/24 -add china_ip_route 203.2.64.0/21 -add china_ip_route 203.2.73.0/24 -add china_ip_route 203.2.112.0/21 -add china_ip_route 203.2.126.0/23 -add china_ip_route 203.2.140.0/24 -add china_ip_route 203.2.150.0/24 -add china_ip_route 203.2.152.0/22 -add china_ip_route 203.2.156.0/23 -add china_ip_route 203.2.160.0/21 -add china_ip_route 203.2.180.0/23 -add china_ip_route 203.2.196.0/23 -add china_ip_route 203.2.209.0/24 -add china_ip_route 203.2.214.0/23 -add china_ip_route 203.2.226.0/23 -add china_ip_route 203.2.229.0/24 -add china_ip_route 203.2.236.0/23 -add china_ip_route 203.3.68.0/24 -add china_ip_route 203.3.72.0/23 -add china_ip_route 203.3.75.0/24 -add china_ip_route 203.3.80.0/21 -add china_ip_route 203.3.96.0/22 -add china_ip_route 203.3.105.0/24 -add china_ip_route 203.3.112.0/21 -add china_ip_route 203.3.120.0/24 -add china_ip_route 203.3.123.0/24 -add china_ip_route 203.3.135.0/24 -add china_ip_route 203.3.139.0/24 -add china_ip_route 203.3.143.0/24 -add china_ip_route 203.4.132.0/23 -add china_ip_route 203.4.134.0/24 -add china_ip_route 203.4.151.0/24 -add china_ip_route 203.4.152.0/22 -add china_ip_route 203.4.174.0/23 -add china_ip_route 203.4.180.0/24 -add china_ip_route 203.4.186.0/24 -add china_ip_route 203.4.205.0/24 -add china_ip_route 203.4.208.0/22 -add china_ip_route 203.4.227.0/24 -add china_ip_route 203.4.230.0/23 -add china_ip_route 203.5.4.0/23 -add china_ip_route 203.5.7.0/24 -add china_ip_route 203.5.8.0/23 -add china_ip_route 203.5.11.0/24 -add china_ip_route 203.5.21.0/24 -add china_ip_route 203.5.22.0/24 -add china_ip_route 203.5.44.0/24 -add china_ip_route 203.5.46.0/23 -add china_ip_route 203.5.52.0/22 -add china_ip_route 203.5.56.0/23 -add china_ip_route 203.5.60.0/23 -add china_ip_route 203.5.114.0/23 -add china_ip_route 203.5.118.0/24 -add china_ip_route 203.5.120.0/24 -add china_ip_route 203.5.172.0/24 -add china_ip_route 203.5.180.0/23 -add china_ip_route 203.5.182.0/24 -add china_ip_route 203.5.185.0/24 -add china_ip_route 203.5.186.0/24 -add china_ip_route 203.5.188.0/23 -add china_ip_route 203.5.190.0/24 -add china_ip_route 203.5.195.0/24 -add china_ip_route 203.5.214.0/23 -add china_ip_route 203.5.218.0/23 -add china_ip_route 203.6.131.0/24 -add china_ip_route 203.6.136.0/24 -add china_ip_route 203.6.138.0/23 -add china_ip_route 203.6.142.0/24 -add china_ip_route 203.6.150.0/23 -add china_ip_route 203.6.157.0/24 -add china_ip_route 203.6.159.0/24 -add china_ip_route 203.6.224.0/20 -add china_ip_route 203.6.248.0/23 -add china_ip_route 203.7.129.0/24 -add china_ip_route 203.7.138.0/23 -add china_ip_route 203.7.147.0/24 -add china_ip_route 203.7.150.0/23 -add china_ip_route 203.7.158.0/24 -add china_ip_route 203.7.192.0/23 -add china_ip_route 203.7.200.0/24 -add china_ip_route 203.8.0.0/24 -add china_ip_route 203.8.8.0/24 -add china_ip_route 203.8.23.0/24 -add china_ip_route 203.8.70.0/24 -add china_ip_route 203.8.82.0/24 -add china_ip_route 203.8.86.0/23 -add china_ip_route 203.8.91.0/24 -add china_ip_route 203.8.110.0/23 -add china_ip_route 203.8.115.0/24 -add china_ip_route 203.8.166.0/23 -add china_ip_route 203.8.169.0/24 -add china_ip_route 203.8.173.0/24 -add china_ip_route 203.8.184.0/24 -add china_ip_route 203.8.186.0/23 -add china_ip_route 203.8.190.0/23 -add china_ip_route 203.8.192.0/24 -add china_ip_route 203.8.197.0/24 -add china_ip_route 203.8.198.0/23 -add china_ip_route 203.8.203.0/24 -add china_ip_route 203.8.209.0/24 -add china_ip_route 203.8.210.0/23 -add china_ip_route 203.8.212.0/22 -add china_ip_route 203.8.217.0/24 -add china_ip_route 203.8.220.0/24 -add china_ip_route 203.9.32.0/24 -add china_ip_route 203.9.36.0/23 -add china_ip_route 203.9.57.0/24 -add china_ip_route 203.9.63.0/24 -add china_ip_route 203.9.65.0/24 -add china_ip_route 203.9.70.0/23 -add china_ip_route 203.9.72.0/24 -add china_ip_route 203.9.75.0/24 -add china_ip_route 203.9.76.0/23 -add china_ip_route 203.9.96.0/22 -add china_ip_route 203.9.100.0/23 -add china_ip_route 203.9.108.0/24 -add china_ip_route 203.9.158.0/24 -add china_ip_route 203.10.34.0/24 -add china_ip_route 203.10.56.0/24 -add china_ip_route 203.10.74.0/23 -add china_ip_route 203.10.84.0/22 -add china_ip_route 203.10.88.0/24 -add china_ip_route 203.10.95.0/24 -add china_ip_route 203.10.125.0/24 -add china_ip_route 203.11.70.0/24 -add china_ip_route 203.11.76.0/22 -add china_ip_route 203.11.82.0/24 -add china_ip_route 203.11.84.0/22 -add china_ip_route 203.11.100.0/22 -add china_ip_route 203.11.109.0/24 -add china_ip_route 203.11.117.0/24 -add china_ip_route 203.11.122.0/24 -add china_ip_route 203.11.126.0/24 -add china_ip_route 203.11.136.0/22 -add china_ip_route 203.11.141.0/24 -add china_ip_route 203.11.142.0/23 -add china_ip_route 203.11.180.0/22 -add china_ip_route 203.11.208.0/22 -add china_ip_route 203.12.16.0/24 -add china_ip_route 203.12.19.0/24 -add china_ip_route 203.12.24.0/24 -add china_ip_route 203.12.57.0/24 -add china_ip_route 203.12.65.0/24 -add china_ip_route 203.12.66.0/24 -add china_ip_route 203.12.70.0/23 -add china_ip_route 203.12.87.0/24 -add china_ip_route 203.12.100.0/23 -add china_ip_route 203.12.103.0/24 -add china_ip_route 203.12.114.0/24 -add china_ip_route 203.12.118.0/24 -add china_ip_route 203.12.130.0/24 -add china_ip_route 203.12.137.0/24 -add china_ip_route 203.12.196.0/22 -add china_ip_route 203.12.211.0/24 -add china_ip_route 203.12.219.0/24 -add china_ip_route 203.12.226.0/24 -add china_ip_route 203.12.240.0/22 -add china_ip_route 203.13.18.0/24 -add china_ip_route 203.13.24.0/24 -add china_ip_route 203.13.44.0/23 -add china_ip_route 203.13.88.0/23 -add china_ip_route 203.13.92.0/22 -add china_ip_route 203.13.173.0/24 -add china_ip_route 203.13.224.0/23 -add china_ip_route 203.13.227.0/24 -add china_ip_route 203.13.233.0/24 -add china_ip_route 203.14.24.0/22 -add china_ip_route 203.14.33.0/24 -add china_ip_route 203.14.56.0/24 -add china_ip_route 203.14.61.0/24 -add china_ip_route 203.14.62.0/24 -add china_ip_route 203.14.104.0/24 -add china_ip_route 203.14.114.0/23 -add china_ip_route 203.14.118.0/24 -add china_ip_route 203.14.162.0/24 -add china_ip_route 203.14.192.0/24 -add china_ip_route 203.14.194.0/23 -add china_ip_route 203.14.214.0/24 -add china_ip_route 203.14.231.0/24 -add china_ip_route 203.14.246.0/24 -add china_ip_route 203.15.0.0/20 -add china_ip_route 203.15.20.0/23 -add china_ip_route 203.15.22.0/24 -add china_ip_route 203.15.87.0/24 -add china_ip_route 203.15.88.0/23 -add china_ip_route 203.15.105.0/24 -add china_ip_route 203.15.112.0/21 -add china_ip_route 203.15.130.0/23 -add china_ip_route 203.15.149.0/24 -add china_ip_route 203.15.151.0/24 -add china_ip_route 203.15.156.0/22 -add china_ip_route 203.15.174.0/24 -add china_ip_route 203.15.227.0/24 -add china_ip_route 203.15.232.0/21 -add china_ip_route 203.15.240.0/23 -add china_ip_route 203.15.246.0/24 -add china_ip_route 203.16.10.0/24 -add china_ip_route 203.16.12.0/23 -add china_ip_route 203.16.16.0/21 -add china_ip_route 203.16.27.0/24 -add china_ip_route 203.16.38.0/24 -add china_ip_route 203.16.49.0/24 -add china_ip_route 203.16.50.0/23 -add china_ip_route 203.16.58.0/24 -add china_ip_route 203.16.63.0/24 -add china_ip_route 203.16.133.0/24 -add china_ip_route 203.16.161.0/24 -add china_ip_route 203.16.162.0/24 -add china_ip_route 203.16.186.0/23 -add china_ip_route 203.16.228.0/24 -add china_ip_route 203.16.238.0/24 -add china_ip_route 203.16.240.0/24 -add china_ip_route 203.16.245.0/24 -add china_ip_route 203.17.2.0/24 -add china_ip_route 203.17.18.0/24 -add china_ip_route 203.17.28.0/24 -add china_ip_route 203.17.39.0/24 -add china_ip_route 203.17.56.0/24 -add china_ip_route 203.17.74.0/23 -add china_ip_route 203.17.88.0/23 -add china_ip_route 203.17.136.0/24 -add china_ip_route 203.17.164.0/24 -add china_ip_route 203.17.187.0/24 -add china_ip_route 203.17.190.0/23 -add china_ip_route 203.17.231.0/24 -add china_ip_route 203.17.233.0/24 -add china_ip_route 203.17.248.0/24 -add china_ip_route 203.17.249.0/24 -add china_ip_route 203.17.255.0/24 -add china_ip_route 203.18.2.0/23 -add china_ip_route 203.18.4.0/24 -add china_ip_route 203.18.7.0/24 -add china_ip_route 203.18.31.0/24 -add china_ip_route 203.18.37.0/24 -add china_ip_route 203.18.48.0/23 -add china_ip_route 203.18.52.0/24 -add china_ip_route 203.18.72.0/22 -add china_ip_route 203.18.80.0/23 -add china_ip_route 203.18.87.0/24 -add china_ip_route 203.18.100.0/23 -add china_ip_route 203.18.105.0/24 -add china_ip_route 203.18.107.0/24 -add china_ip_route 203.18.110.0/24 -add china_ip_route 203.18.129.0/24 -add china_ip_route 203.18.131.0/24 -add china_ip_route 203.18.132.0/23 -add china_ip_route 203.18.144.0/24 -add china_ip_route 203.18.153.0/24 -add china_ip_route 203.18.199.0/24 -add china_ip_route 203.18.208.0/24 -add china_ip_route 203.18.211.0/24 -add china_ip_route 203.18.215.0/24 -add china_ip_route 203.19.1.0/24 -add china_ip_route 203.19.18.0/24 -add china_ip_route 203.19.24.0/24 -add china_ip_route 203.19.30.0/24 -add china_ip_route 203.19.32.0/21 -add china_ip_route 203.19.41.0/24 -add china_ip_route 203.19.44.0/23 -add china_ip_route 203.19.46.0/24 -add china_ip_route 203.19.58.0/24 -add china_ip_route 203.19.60.0/23 -add china_ip_route 203.19.64.0/24 -add china_ip_route 203.19.68.0/24 -add china_ip_route 203.19.72.0/24 -add china_ip_route 203.19.101.0/24 -add china_ip_route 203.19.111.0/24 -add china_ip_route 203.19.131.0/24 -add china_ip_route 203.19.133.0/24 -add china_ip_route 203.19.144.0/24 -add china_ip_route 203.19.147.0/24 -add china_ip_route 203.19.149.0/24 -add china_ip_route 203.19.156.0/24 -add china_ip_route 203.19.176.0/24 -add china_ip_route 203.19.178.0/23 -add china_ip_route 203.19.208.0/24 -add china_ip_route 203.19.228.0/22 -add china_ip_route 203.19.233.0/24 -add china_ip_route 203.19.242.0/24 -add china_ip_route 203.19.248.0/23 -add china_ip_route 203.19.255.0/24 -add china_ip_route 203.20.17.0/24 -add china_ip_route 203.20.40.0/23 -add china_ip_route 203.20.44.0/24 -add china_ip_route 203.20.48.0/24 -add china_ip_route 203.20.61.0/24 -add china_ip_route 203.20.65.0/24 -add china_ip_route 203.20.84.0/23 -add china_ip_route 203.20.89.0/24 -add china_ip_route 203.20.106.0/23 -add china_ip_route 203.20.115.0/24 -add china_ip_route 203.20.117.0/24 -add china_ip_route 203.20.118.0/23 -add china_ip_route 203.20.122.0/24 -add china_ip_route 203.20.126.0/23 -add china_ip_route 203.20.135.0/24 -add china_ip_route 203.20.136.0/21 -add china_ip_route 203.20.150.0/24 -add china_ip_route 203.20.230.0/24 -add china_ip_route 203.20.232.0/24 -add china_ip_route 203.20.236.0/24 -add china_ip_route 203.21.0.0/23 -add china_ip_route 203.21.2.0/24 -add china_ip_route 203.21.8.0/24 -add china_ip_route 203.21.10.0/24 -add china_ip_route 203.21.18.0/24 -add china_ip_route 203.21.33.0/24 -add china_ip_route 203.21.34.0/24 -add china_ip_route 203.21.41.0/24 -add china_ip_route 203.21.44.0/24 -add china_ip_route 203.21.68.0/24 -add china_ip_route 203.21.82.0/24 -add china_ip_route 203.21.96.0/22 -add china_ip_route 203.21.124.0/24 -add china_ip_route 203.21.136.0/23 -add china_ip_route 203.21.145.0/24 -add china_ip_route 203.21.206.0/24 -add china_ip_route 203.22.24.0/24 -add china_ip_route 203.22.28.0/23 -add china_ip_route 203.22.31.0/24 -add china_ip_route 203.22.68.0/24 -add china_ip_route 203.22.76.0/24 -add china_ip_route 203.22.78.0/24 -add china_ip_route 203.22.84.0/24 -add china_ip_route 203.22.87.0/24 -add china_ip_route 203.22.92.0/22 -add china_ip_route 203.22.99.0/24 -add china_ip_route 203.22.106.0/24 -add china_ip_route 203.22.122.0/23 -add china_ip_route 203.22.131.0/24 -add china_ip_route 203.22.163.0/24 -add china_ip_route 203.22.166.0/24 -add china_ip_route 203.22.170.0/24 -add china_ip_route 203.22.176.0/21 -add china_ip_route 203.22.194.0/24 -add china_ip_route 203.22.242.0/23 -add china_ip_route 203.22.245.0/24 -add china_ip_route 203.22.246.0/24 -add china_ip_route 203.22.252.0/23 -add china_ip_route 203.23.0.0/24 -add china_ip_route 203.23.47.0/24 -add china_ip_route 203.23.61.0/24 -add china_ip_route 203.23.62.0/23 -add china_ip_route 203.23.73.0/24 -add china_ip_route 203.23.85.0/24 -add china_ip_route 203.23.92.0/22 -add china_ip_route 203.23.98.0/24 -add china_ip_route 203.23.107.0/24 -add china_ip_route 203.23.112.0/24 -add china_ip_route 203.23.130.0/24 -add china_ip_route 203.23.140.0/23 -add china_ip_route 203.23.172.0/24 -add china_ip_route 203.23.182.0/24 -add china_ip_route 203.23.186.0/23 -add china_ip_route 203.23.192.0/24 -add china_ip_route 203.23.197.0/24 -add china_ip_route 203.23.198.0/24 -add china_ip_route 203.23.204.0/22 -add china_ip_route 203.23.224.0/24 -add china_ip_route 203.23.226.0/23 -add china_ip_route 203.23.228.0/22 -add china_ip_route 203.23.249.0/24 -add china_ip_route 203.23.251.0/24 -add china_ip_route 203.24.13.0/24 -add china_ip_route 203.24.18.0/24 -add china_ip_route 203.24.27.0/24 -add china_ip_route 203.24.43.0/24 -add china_ip_route 203.24.56.0/24 -add china_ip_route 203.24.58.0/24 -add china_ip_route 203.24.67.0/24 -add china_ip_route 203.24.74.0/24 -add china_ip_route 203.24.79.0/24 -add china_ip_route 203.24.80.0/23 -add china_ip_route 203.24.84.0/23 -add china_ip_route 203.24.86.0/24 -add china_ip_route 203.24.90.0/24 -add china_ip_route 203.24.111.0/24 -add china_ip_route 203.24.112.0/24 -add china_ip_route 203.24.116.0/24 -add china_ip_route 203.24.122.0/23 -add china_ip_route 203.24.145.0/24 -add china_ip_route 203.24.152.0/23 -add china_ip_route 203.24.157.0/24 -add china_ip_route 203.24.161.0/24 -add china_ip_route 203.24.167.0/24 -add china_ip_route 203.24.186.0/23 -add china_ip_route 203.24.199.0/24 -add china_ip_route 203.24.202.0/24 -add china_ip_route 203.24.212.0/23 -add china_ip_route 203.24.217.0/24 -add china_ip_route 203.24.219.0/24 -add china_ip_route 203.24.244.0/24 -add china_ip_route 203.25.19.0/24 -add china_ip_route 203.25.20.0/23 -add china_ip_route 203.25.46.0/24 -add china_ip_route 203.25.48.0/21 -add china_ip_route 203.25.64.0/23 -add china_ip_route 203.25.91.0/24 -add china_ip_route 203.25.99.0/24 -add china_ip_route 203.25.100.0/24 -add china_ip_route 203.25.106.0/24 -add china_ip_route 203.25.131.0/24 -add china_ip_route 203.25.135.0/24 -add china_ip_route 203.25.138.0/24 -add china_ip_route 203.25.147.0/24 -add china_ip_route 203.25.153.0/24 -add china_ip_route 203.25.154.0/23 -add china_ip_route 203.25.164.0/24 -add china_ip_route 203.25.166.0/24 -add china_ip_route 203.25.174.0/23 -add china_ip_route 203.25.180.0/24 -add china_ip_route 203.25.182.0/24 -add china_ip_route 203.25.191.0/24 -add china_ip_route 203.25.199.0/24 -add china_ip_route 203.25.200.0/24 -add china_ip_route 203.25.202.0/23 -add china_ip_route 203.25.208.0/20 -add china_ip_route 203.25.229.0/24 -add china_ip_route 203.25.235.0/24 -add china_ip_route 203.25.236.0/24 -add china_ip_route 203.25.242.0/24 -add china_ip_route 203.26.12.0/24 -add china_ip_route 203.26.34.0/24 -add china_ip_route 203.26.49.0/24 -add china_ip_route 203.26.50.0/24 -add china_ip_route 203.26.55.0/24 -add china_ip_route 203.26.56.0/23 -add china_ip_route 203.26.60.0/24 -add china_ip_route 203.26.65.0/24 -add china_ip_route 203.26.68.0/24 -add china_ip_route 203.26.76.0/24 -add china_ip_route 203.26.80.0/24 -add china_ip_route 203.26.84.0/24 -add china_ip_route 203.26.97.0/24 -add china_ip_route 203.26.102.0/23 -add china_ip_route 203.26.115.0/24 -add china_ip_route 203.26.116.0/24 -add china_ip_route 203.26.129.0/24 -add china_ip_route 203.26.143.0/24 -add china_ip_route 203.26.144.0/24 -add china_ip_route 203.26.148.0/23 -add china_ip_route 203.26.154.0/24 -add china_ip_route 203.26.158.0/23 -add china_ip_route 203.26.170.0/24 -add china_ip_route 203.26.173.0/24 -add china_ip_route 203.26.176.0/24 -add china_ip_route 203.26.185.0/24 -add china_ip_route 203.26.202.0/23 -add china_ip_route 203.26.210.0/24 -add china_ip_route 203.26.214.0/24 -add china_ip_route 203.26.222.0/24 -add china_ip_route 203.26.224.0/24 -add china_ip_route 203.26.228.0/24 -add china_ip_route 203.26.232.0/24 -add china_ip_route 203.27.0.0/24 -add china_ip_route 203.27.10.0/24 -add china_ip_route 203.27.15.0/24 -add china_ip_route 203.27.16.0/24 -add china_ip_route 203.27.20.0/24 -add china_ip_route 203.27.22.0/23 -add china_ip_route 203.27.40.0/24 -add china_ip_route 203.27.45.0/24 -add china_ip_route 203.27.53.0/24 -add china_ip_route 203.27.65.0/24 -add china_ip_route 203.27.66.0/24 -add china_ip_route 203.27.81.0/24 -add china_ip_route 203.27.88.0/24 -add china_ip_route 203.27.102.0/24 -add china_ip_route 203.27.109.0/24 -add china_ip_route 203.27.117.0/24 -add china_ip_route 203.27.121.0/24 -add china_ip_route 203.27.122.0/23 -add china_ip_route 203.27.125.0/24 -add china_ip_route 203.27.200.0/24 -add china_ip_route 203.27.202.0/24 -add china_ip_route 203.27.233.0/24 -add china_ip_route 203.27.241.0/24 -add china_ip_route 203.27.250.0/24 -add china_ip_route 203.28.10.0/24 -add china_ip_route 203.28.12.0/24 -add china_ip_route 203.28.33.0/24 -add china_ip_route 203.28.34.0/23 -add china_ip_route 203.28.43.0/24 -add china_ip_route 203.28.44.0/24 -add china_ip_route 203.28.54.0/24 -add china_ip_route 203.28.56.0/24 -add china_ip_route 203.28.73.0/24 -add china_ip_route 203.28.74.0/24 -add china_ip_route 203.28.76.0/24 -add china_ip_route 203.28.86.0/24 -add china_ip_route 203.28.88.0/24 -add china_ip_route 203.28.112.0/24 -add china_ip_route 203.28.131.0/24 -add china_ip_route 203.28.136.0/24 -add china_ip_route 203.28.140.0/24 -add china_ip_route 203.28.145.0/24 -add china_ip_route 203.28.165.0/24 -add china_ip_route 203.28.169.0/24 -add china_ip_route 203.28.170.0/24 -add china_ip_route 203.28.178.0/23 -add china_ip_route 203.28.185.0/24 -add china_ip_route 203.28.187.0/24 -add china_ip_route 203.28.196.0/24 -add china_ip_route 203.28.226.0/23 -add china_ip_route 203.28.239.0/24 -add china_ip_route 203.29.2.0/24 -add china_ip_route 203.29.8.0/23 -add china_ip_route 203.29.13.0/24 -add china_ip_route 203.29.14.0/24 -add china_ip_route 203.29.28.0/24 -add china_ip_route 203.29.46.0/24 -add china_ip_route 203.29.57.0/24 -add china_ip_route 203.29.61.0/24 -add china_ip_route 203.29.63.0/24 -add china_ip_route 203.29.69.0/24 -add china_ip_route 203.29.73.0/24 -add china_ip_route 203.29.81.0/24 -add china_ip_route 203.29.90.0/24 -add china_ip_route 203.29.95.0/24 -add china_ip_route 203.29.100.0/24 -add china_ip_route 203.29.103.0/24 -add china_ip_route 203.29.112.0/24 -add china_ip_route 203.29.120.0/22 -add china_ip_route 203.29.182.0/23 -add china_ip_route 203.29.187.0/24 -add china_ip_route 203.29.189.0/24 -add china_ip_route 203.29.190.0/24 -add china_ip_route 203.29.205.0/24 -add china_ip_route 203.29.210.0/24 -add china_ip_route 203.29.217.0/24 -add china_ip_route 203.29.227.0/24 -add china_ip_route 203.29.231.0/24 -add china_ip_route 203.29.233.0/24 -add china_ip_route 203.29.234.0/24 -add china_ip_route 203.29.248.0/24 -add china_ip_route 203.29.254.0/23 -add china_ip_route 203.30.16.0/23 -add china_ip_route 203.30.25.0/24 -add china_ip_route 203.30.27.0/24 -add china_ip_route 203.30.29.0/24 -add china_ip_route 203.30.66.0/24 -add china_ip_route 203.30.81.0/24 -add china_ip_route 203.30.87.0/24 -add china_ip_route 203.30.111.0/24 -add china_ip_route 203.30.121.0/24 -add china_ip_route 203.30.123.0/24 -add china_ip_route 203.30.152.0/24 -add china_ip_route 203.30.156.0/24 -add china_ip_route 203.30.162.0/24 -add china_ip_route 203.30.173.0/24 -add china_ip_route 203.30.175.0/24 -add china_ip_route 203.30.187.0/24 -add china_ip_route 203.30.194.0/24 -add china_ip_route 203.30.217.0/24 -add china_ip_route 203.30.220.0/24 -add china_ip_route 203.30.222.0/24 -add china_ip_route 203.30.232.0/23 -add china_ip_route 203.30.235.0/24 -add china_ip_route 203.30.240.0/23 -add china_ip_route 203.30.246.0/24 -add china_ip_route 203.30.250.0/23 -add china_ip_route 203.31.45.0/24 -add china_ip_route 203.31.46.0/24 -add china_ip_route 203.31.49.0/24 -add china_ip_route 203.31.51.0/24 -add china_ip_route 203.31.54.0/23 -add china_ip_route 203.31.69.0/24 -add china_ip_route 203.31.72.0/24 -add china_ip_route 203.31.80.0/24 -add china_ip_route 203.31.85.0/24 -add china_ip_route 203.31.97.0/24 -add china_ip_route 203.31.105.0/24 -add china_ip_route 203.31.106.0/24 -add china_ip_route 203.31.108.0/23 -add china_ip_route 203.31.124.0/24 -add china_ip_route 203.31.162.0/24 -add china_ip_route 203.31.174.0/24 -add china_ip_route 203.31.177.0/24 -add china_ip_route 203.31.181.0/24 -add china_ip_route 203.31.187.0/24 -add china_ip_route 203.31.189.0/24 -add china_ip_route 203.31.204.0/24 -add china_ip_route 203.31.220.0/24 -add china_ip_route 203.31.222.0/23 -add china_ip_route 203.31.225.0/24 -add china_ip_route 203.31.229.0/24 -add china_ip_route 203.31.248.0/23 -add china_ip_route 203.31.253.0/24 -add china_ip_route 203.32.20.0/24 -add china_ip_route 203.32.48.0/23 -add china_ip_route 203.32.56.0/24 -add china_ip_route 203.32.60.0/24 -add china_ip_route 203.32.62.0/24 -add china_ip_route 203.32.68.0/23 -add china_ip_route 203.32.76.0/24 -add china_ip_route 203.32.81.0/24 -add china_ip_route 203.32.84.0/23 -add china_ip_route 203.32.95.0/24 -add china_ip_route 203.32.102.0/24 -add china_ip_route 203.32.105.0/24 -add china_ip_route 203.32.130.0/24 -add china_ip_route 203.32.133.0/24 -add china_ip_route 203.32.140.0/24 -add china_ip_route 203.32.152.0/24 -add china_ip_route 203.32.186.0/23 -add china_ip_route 203.32.192.0/24 -add china_ip_route 203.32.196.0/24 -add china_ip_route 203.32.203.0/24 -add china_ip_route 203.32.204.0/23 -add china_ip_route 203.32.212.0/24 -add china_ip_route 203.33.4.0/24 -add china_ip_route 203.33.7.0/24 -add china_ip_route 203.33.8.0/21 -add china_ip_route 203.33.21.0/24 -add china_ip_route 203.33.26.0/24 -add china_ip_route 203.33.32.0/24 -add china_ip_route 203.33.63.0/24 -add china_ip_route 203.33.64.0/24 -add china_ip_route 203.33.67.0/24 -add china_ip_route 203.33.68.0/24 -add china_ip_route 203.33.73.0/24 -add china_ip_route 203.33.79.0/24 -add china_ip_route 203.33.100.0/24 -add china_ip_route 203.33.122.0/24 -add china_ip_route 203.33.129.0/24 -add china_ip_route 203.33.131.0/24 -add china_ip_route 203.33.145.0/24 -add china_ip_route 203.33.156.0/24 -add china_ip_route 203.33.158.0/23 -add china_ip_route 203.33.174.0/24 -add china_ip_route 203.33.185.0/24 -add china_ip_route 203.33.200.0/24 -add china_ip_route 203.33.202.0/23 -add china_ip_route 203.33.204.0/24 -add china_ip_route 203.33.206.0/23 -add china_ip_route 203.33.214.0/23 -add china_ip_route 203.33.224.0/23 -add china_ip_route 203.33.226.0/24 -add china_ip_route 203.33.233.0/24 -add china_ip_route 203.33.243.0/24 -add china_ip_route 203.33.250.0/24 -add china_ip_route 203.34.4.0/24 -add china_ip_route 203.34.21.0/24 -add china_ip_route 203.34.27.0/24 -add china_ip_route 203.34.39.0/24 -add china_ip_route 203.34.48.0/23 -add china_ip_route 203.34.54.0/24 -add china_ip_route 203.34.56.0/23 -add china_ip_route 203.34.67.0/24 -add china_ip_route 203.34.69.0/24 -add china_ip_route 203.34.76.0/24 -add china_ip_route 203.34.92.0/24 -add china_ip_route 203.34.106.0/24 -add china_ip_route 203.34.113.0/24 -add china_ip_route 203.34.147.0/24 -add china_ip_route 203.34.150.0/24 -add china_ip_route 203.34.152.0/23 -add china_ip_route 203.34.161.0/24 -add china_ip_route 203.34.162.0/24 -add china_ip_route 203.34.187.0/24 -add china_ip_route 203.34.192.0/21 -add china_ip_route 203.34.204.0/22 -add china_ip_route 203.34.232.0/24 -add china_ip_route 203.34.240.0/24 -add china_ip_route 203.34.242.0/24 -add china_ip_route 203.34.245.0/24 -add china_ip_route 203.34.251.0/24 -add china_ip_route 203.55.2.0/23 -add china_ip_route 203.55.4.0/24 -add china_ip_route 203.55.10.0/24 -add china_ip_route 203.55.13.0/24 -add china_ip_route 203.55.22.0/24 -add china_ip_route 203.55.30.0/24 -add china_ip_route 203.55.93.0/24 -add china_ip_route 203.55.101.0/24 -add china_ip_route 203.55.109.0/24 -add china_ip_route 203.55.110.0/24 -add china_ip_route 203.55.116.0/23 -add china_ip_route 203.55.119.0/24 -add china_ip_route 203.55.128.0/23 -add china_ip_route 203.55.146.0/23 -add china_ip_route 203.55.192.0/24 -add china_ip_route 203.55.196.0/24 -add china_ip_route 203.55.218.0/23 -add china_ip_route 203.55.221.0/24 -add china_ip_route 203.55.224.0/24 -add china_ip_route 203.56.1.0/24 -add china_ip_route 203.56.4.0/24 -add china_ip_route 203.56.12.0/24 -add china_ip_route 203.56.24.0/24 -add china_ip_route 203.56.38.0/24 -add china_ip_route 203.56.40.0/24 -add china_ip_route 203.56.46.0/24 -add china_ip_route 203.56.48.0/21 -add china_ip_route 203.56.68.0/23 -add china_ip_route 203.56.82.0/23 -add china_ip_route 203.56.84.0/23 -add china_ip_route 203.56.95.0/24 -add china_ip_route 203.56.110.0/24 -add china_ip_route 203.56.121.0/24 -add china_ip_route 203.56.161.0/24 -add china_ip_route 203.56.169.0/24 -add china_ip_route 203.56.172.0/23 -add china_ip_route 203.56.175.0/24 -add china_ip_route 203.56.183.0/24 -add china_ip_route 203.56.185.0/24 -add china_ip_route 203.56.187.0/24 -add china_ip_route 203.56.192.0/24 -add china_ip_route 203.56.198.0/24 -add china_ip_route 203.56.201.0/24 -add china_ip_route 203.56.208.0/23 -add china_ip_route 203.56.210.0/24 -add china_ip_route 203.56.214.0/24 -add china_ip_route 203.56.216.0/24 -add china_ip_route 203.56.227.0/24 -add china_ip_route 203.56.228.0/24 -add china_ip_route 203.56.231.0/24 -add china_ip_route 203.56.232.0/24 -add china_ip_route 203.56.240.0/24 -add china_ip_route 203.56.252.0/24 -add china_ip_route 203.56.254.0/24 -add china_ip_route 203.57.5.0/24 -add china_ip_route 203.57.6.0/24 -add china_ip_route 203.57.12.0/23 -add china_ip_route 203.57.28.0/24 -add china_ip_route 203.57.39.0/24 -add china_ip_route 203.57.46.0/24 -add china_ip_route 203.57.58.0/24 -add china_ip_route 203.57.61.0/24 -add china_ip_route 203.57.66.0/24 -add china_ip_route 203.57.69.0/24 -add china_ip_route 203.57.70.0/23 -add china_ip_route 203.57.73.0/24 -add china_ip_route 203.57.90.0/24 -add china_ip_route 203.57.101.0/24 -add china_ip_route 203.57.109.0/24 -add china_ip_route 203.57.123.0/24 -add china_ip_route 203.57.157.0/24 -add china_ip_route 203.57.200.0/24 -add china_ip_route 203.57.202.0/24 -add china_ip_route 203.57.206.0/24 -add china_ip_route 203.57.222.0/24 -add china_ip_route 203.57.224.0/20 -add china_ip_route 203.57.246.0/23 -add china_ip_route 203.57.249.0/24 -add china_ip_route 203.57.253.0/24 -add china_ip_route 203.57.254.0/23 -add china_ip_route 203.62.2.0/24 -add china_ip_route 203.62.131.0/24 -add china_ip_route 203.62.139.0/24 -add china_ip_route 203.62.161.0/24 -add china_ip_route 203.62.197.0/24 -add china_ip_route 203.62.228.0/22 -add china_ip_route 203.62.234.0/24 -add china_ip_route 203.62.246.0/24 -add china_ip_route 203.76.160.0/22 -add china_ip_route 203.76.168.0/22 -add china_ip_route 203.76.208.0/22 -add china_ip_route 203.76.212.0/22 -add china_ip_route 203.76.216.0/22 -add china_ip_route 203.76.240.0/22 -add china_ip_route 203.76.244.0/22 -add china_ip_route 203.77.180.0/22 -add china_ip_route 203.78.48.0/20 -add china_ip_route 203.78.156.0/22 -add china_ip_route 203.79.0.0/20 -add china_ip_route 203.79.32.0/20 -add china_ip_route 203.80.4.0/23 -add china_ip_route 203.80.32.0/20 -add china_ip_route 203.80.57.0/24 -add china_ip_route 203.80.129.0/24 -add china_ip_route 203.80.132.0/22 -add china_ip_route 203.80.136.0/21 -add china_ip_route 203.80.144.0/20 -add china_ip_route 203.81.0.0/21 -add china_ip_route 203.81.16.0/20 -add china_ip_route 203.81.244.0/22 -add china_ip_route 203.82.0.0/23 -add china_ip_route 203.82.16.0/21 -add china_ip_route 203.82.112.0/22 -add china_ip_route 203.82.116.0/22 -add china_ip_route 203.82.120.0/22 -add china_ip_route 203.82.124.0/22 -add china_ip_route 203.82.224.0/22 -add china_ip_route 203.82.228.0/22 -add china_ip_route 203.82.232.0/22 -add china_ip_route 203.82.236.0/22 -add china_ip_route 203.83.0.0/22 -add china_ip_route 203.83.8.0/22 -add china_ip_route 203.83.12.0/22 -add china_ip_route 203.83.56.0/21 -add china_ip_route 203.83.224.0/20 -add china_ip_route 203.86.0.0/19 -add china_ip_route 203.86.32.0/19 -add china_ip_route 203.86.64.0/20 -add china_ip_route 203.86.80.0/20 -add china_ip_route 203.86.96.0/19 -add china_ip_route 203.86.250.0/24 -add china_ip_route 203.86.254.0/23 -add china_ip_route 203.88.32.0/19 -add china_ip_route 203.88.192.0/19 -add china_ip_route 203.89.0.0/22 -add china_ip_route 203.89.8.0/21 -add china_ip_route 203.89.100.0/22 -add china_ip_route 203.89.133.0/24 -add china_ip_route 203.89.136.0/22 -add china_ip_route 203.89.144.0/24 -add china_ip_route 203.90.0.0/22 -add china_ip_route 203.90.8.0/22 -add china_ip_route 203.90.12.0/22 -add china_ip_route 203.90.128.0/19 -add china_ip_route 203.90.160.0/19 -add china_ip_route 203.90.192.0/19 -add china_ip_route 203.91.32.0/19 -add china_ip_route 203.91.96.0/20 -add china_ip_route 203.91.120.0/21 -add china_ip_route 203.92.0.0/22 -add china_ip_route 203.92.6.0/24 -add china_ip_route 203.92.160.0/19 -add china_ip_route 203.93.0.0/22 -add china_ip_route 203.93.4.0/22 -add china_ip_route 203.93.8.0/24 -add china_ip_route 203.93.9.0/24 -add china_ip_route 203.93.10.0/23 -add china_ip_route 203.93.12.0/22 -add china_ip_route 203.93.16.0/20 -add china_ip_route 203.93.32.0/19 -add china_ip_route 203.93.64.0/18 -add china_ip_route 203.93.128.0/21 -add china_ip_route 203.93.136.0/22 -add china_ip_route 203.93.140.0/24 -add china_ip_route 203.93.141.0/24 -add china_ip_route 203.93.142.0/23 -add china_ip_route 203.93.144.0/20 -add china_ip_route 203.93.160.0/19 -add china_ip_route 203.93.192.0/18 -add china_ip_route 203.94.0.0/22 -add china_ip_route 203.94.4.0/22 -add china_ip_route 203.94.8.0/21 -add china_ip_route 203.94.16.0/20 -add china_ip_route 203.95.0.0/21 -add china_ip_route 203.95.96.0/20 -add china_ip_route 203.95.112.0/20 -add china_ip_route 203.95.128.0/18 -add china_ip_route 203.95.200.0/22 -add china_ip_route 203.95.204.0/22 -add china_ip_route 203.95.208.0/22 -add china_ip_route 203.95.224.0/19 -add china_ip_route 203.99.8.0/21 -add china_ip_route 203.99.16.0/20 -add china_ip_route 203.99.80.0/20 -add china_ip_route 203.100.32.0/20 -add china_ip_route 203.100.48.0/21 -add china_ip_route 203.100.58.0/24 -add china_ip_route 203.100.60.0/24 -add china_ip_route 203.100.63.0/24 -add china_ip_route 203.100.80.0/20 -add china_ip_route 203.100.96.0/19 -add china_ip_route 203.100.192.0/20 -add china_ip_route 203.104.32.0/20 -add china_ip_route 203.105.96.0/19 -add china_ip_route 203.105.128.0/19 -add china_ip_route 203.107.0.0/17 -add china_ip_route 203.110.160.0/19 -add china_ip_route 203.110.208.0/20 -add china_ip_route 203.110.232.0/23 -add china_ip_route 203.110.234.0/24 -add china_ip_route 203.114.80.0/22 -add china_ip_route 203.114.84.0/22 -add china_ip_route 203.114.88.0/22 -add china_ip_route 203.114.92.0/22 -add china_ip_route 203.114.244.0/22 -add china_ip_route 203.118.192.0/19 -add china_ip_route 203.118.241.0/24 -add china_ip_route 203.118.248.0/22 -add china_ip_route 203.119.24.0/21 -add china_ip_route 203.119.32.0/22 -add china_ip_route 203.119.80.0/22 -add china_ip_route 203.119.85.0/24 -add china_ip_route 203.119.113.0/24 -add china_ip_route 203.119.114.0/23 -add china_ip_route 203.119.116.0/22 -add china_ip_route 203.119.120.0/21 -add china_ip_route 203.119.128.0/17 -add china_ip_route 203.123.58.0/24 -add china_ip_route 203.128.32.0/19 -add china_ip_route 203.128.96.0/19 -add china_ip_route 203.128.224.0/21 -add china_ip_route 203.129.8.0/21 -add china_ip_route 203.130.32.0/19 -add china_ip_route 203.132.32.0/19 -add china_ip_route 203.134.240.0/21 -add china_ip_route 203.135.96.0/20 -add china_ip_route 203.135.112.0/20 -add china_ip_route 203.135.160.0/20 -add china_ip_route 203.142.219.0/24 -add china_ip_route 203.142.224.0/19 -add china_ip_route 203.144.96.0/19 -add china_ip_route 203.145.0.0/19 -add china_ip_route 203.148.0.0/18 -add china_ip_route 203.148.64.0/20 -add china_ip_route 203.148.80.0/22 -add china_ip_route 203.148.86.0/23 -add china_ip_route 203.149.92.0/22 -add china_ip_route 203.152.64.0/19 -add china_ip_route 203.152.128.0/19 -add china_ip_route 203.153.0.0/22 -add china_ip_route 203.156.192.0/18 -add china_ip_route 203.158.16.0/21 -add china_ip_route 203.160.52.0/22 -add china_ip_route 203.160.104.0/21 -add china_ip_route 203.160.129.0/24 -add china_ip_route 203.160.192.0/19 -add china_ip_route 203.161.0.0/22 -add china_ip_route 203.161.180.0/24 -add china_ip_route 203.161.183.0/24 -add china_ip_route 203.161.192.0/19 -add china_ip_route 203.166.160.0/19 -add china_ip_route 203.167.28.0/22 -add china_ip_route 203.168.0.0/19 -add china_ip_route 203.170.58.0/23 -add china_ip_route 203.171.0.0/22 -add china_ip_route 203.171.208.0/24 -add china_ip_route 203.171.224.0/20 -add china_ip_route 203.174.4.0/24 -add china_ip_route 203.174.6.0/24 -add china_ip_route 203.174.7.0/24 -add china_ip_route 203.174.96.0/19 -add china_ip_route 203.175.128.0/19 -add china_ip_route 203.175.192.0/18 -add china_ip_route 203.176.0.0/18 -add china_ip_route 203.176.64.0/19 -add china_ip_route 203.176.168.0/21 -add china_ip_route 203.184.80.0/20 -add china_ip_route 203.185.189.0/24 -add china_ip_route 203.187.160.0/19 -add china_ip_route 203.189.0.0/23 -add china_ip_route 203.189.6.0/23 -add china_ip_route 203.189.112.0/22 -add china_ip_route 203.189.192.0/19 -add china_ip_route 203.189.232.0/22 -add china_ip_route 203.189.240.0/22 -add china_ip_route 203.190.96.0/20 -add china_ip_route 203.190.249.0/24 -add china_ip_route 203.191.0.0/23 -add china_ip_route 203.191.2.0/24 -add china_ip_route 203.191.5.0/24 -add china_ip_route 203.191.7.0/24 -add china_ip_route 203.191.16.0/20 -add china_ip_route 203.191.64.0/18 -add china_ip_route 203.191.133.0/24 -add china_ip_route 203.191.144.0/21 -add china_ip_route 203.191.152.0/21 -add china_ip_route 203.192.0.0/19 -add china_ip_route 203.193.224.0/19 -add china_ip_route 203.194.120.0/21 -add china_ip_route 203.195.64.0/19 -add china_ip_route 203.195.112.0/21 -add china_ip_route 203.195.128.0/17 -add china_ip_route 203.196.0.0/21 -add china_ip_route 203.196.8.0/21 -add china_ip_route 203.196.28.0/22 -add china_ip_route 203.201.181.0/24 -add china_ip_route 203.201.182.0/24 -add china_ip_route 203.202.236.0/22 -add china_ip_route 203.205.64.0/19 -add china_ip_route 203.205.128.0/17 -add china_ip_route 203.207.64.0/20 -add china_ip_route 203.207.80.0/21 -add china_ip_route 203.207.88.0/22 -add china_ip_route 203.207.92.0/22 -add china_ip_route 203.207.96.0/20 -add china_ip_route 203.207.112.0/20 -add china_ip_route 203.207.128.0/18 -add china_ip_route 203.207.192.0/21 -add china_ip_route 203.207.200.0/21 -add china_ip_route 203.207.208.0/20 -add china_ip_route 203.207.224.0/19 -add china_ip_route 203.208.0.0/20 -add china_ip_route 203.208.16.0/22 -add china_ip_route 203.208.32.0/19 -add china_ip_route 203.209.224.0/19 -add china_ip_route 203.212.0.0/20 -add china_ip_route 203.212.80.0/20 -add china_ip_route 203.215.232.0/21 -add china_ip_route 203.217.164.0/22 -add china_ip_route 203.223.0.0/20 -add china_ip_route 203.223.16.0/21 -add china_ip_route 204.52.191.0/24 -add china_ip_route 210.2.0.0/20 -add china_ip_route 210.2.16.0/20 -add china_ip_route 210.5.0.0/19 -add china_ip_route 210.5.56.0/21 -add china_ip_route 210.5.128.0/20 -add china_ip_route 210.5.144.0/20 -add china_ip_route 210.7.56.0/22 -add china_ip_route 210.7.60.0/22 -add china_ip_route 210.12.0.0/18 -add china_ip_route 210.12.64.0/18 -add china_ip_route 210.12.128.0/18 -add china_ip_route 210.12.192.0/18 -add china_ip_route 210.13.0.0/18 -add china_ip_route 210.13.64.0/18 -add china_ip_route 210.13.128.0/17 -add china_ip_route 210.14.64.0/19 -add china_ip_route 210.14.112.0/20 -add china_ip_route 210.14.128.0/19 -add china_ip_route 210.14.160.0/19 -add china_ip_route 210.14.192.0/19 -add china_ip_route 210.14.224.0/19 -add china_ip_route 210.15.0.0/19 -add china_ip_route 210.15.32.0/19 -add china_ip_route 210.15.64.0/19 -add china_ip_route 210.15.96.0/19 -add china_ip_route 210.15.128.0/18 -add china_ip_route 210.16.104.0/22 -add china_ip_route 210.16.128.0/18 -add china_ip_route 210.21.0.0/17 -add china_ip_route 210.21.128.0/17 -add china_ip_route 210.22.0.0/16 -add china_ip_route 210.23.32.0/19 -add china_ip_route 210.25.0.0/16 -add china_ip_route 210.26.0.0/15 -add china_ip_route 210.28.0.0/14 -add china_ip_route 210.32.0.0/14 -add china_ip_route 210.36.0.0/14 -add china_ip_route 210.40.0.0/13 -add china_ip_route 210.51.0.0/16 -add china_ip_route 210.52.0.0/18 -add china_ip_route 210.52.64.0/18 -add china_ip_route 210.52.128.0/17 -add china_ip_route 210.53.0.0/17 -add china_ip_route 210.53.128.0/17 -add china_ip_route 210.56.192.0/19 -add china_ip_route 210.72.0.0/17 -add china_ip_route 210.72.128.0/19 -add china_ip_route 210.72.160.0/19 -add china_ip_route 210.72.192.0/18 -add china_ip_route 210.73.0.0/19 -add china_ip_route 210.73.32.0/19 -add china_ip_route 210.73.64.0/18 -add china_ip_route 210.73.128.0/17 -add china_ip_route 210.74.0.0/19 -add china_ip_route 210.74.32.0/19 -add china_ip_route 210.74.64.0/19 -add china_ip_route 210.74.96.0/19 -add china_ip_route 210.74.128.0/19 -add china_ip_route 210.74.160.0/19 -add china_ip_route 210.74.192.0/18 -add china_ip_route 210.75.0.0/16 -add china_ip_route 210.76.0.0/19 -add china_ip_route 210.76.32.0/19 -add china_ip_route 210.76.64.0/18 -add china_ip_route 210.76.128.0/17 -add china_ip_route 210.77.0.0/16 -add china_ip_route 210.78.0.0/19 -add china_ip_route 210.78.32.0/19 -add china_ip_route 210.78.64.0/18 -add china_ip_route 210.78.128.0/19 -add china_ip_route 210.78.160.0/19 -add china_ip_route 210.78.192.0/18 -add china_ip_route 210.79.64.0/18 -add china_ip_route 210.79.224.0/19 -add china_ip_route 210.82.0.0/15 -add china_ip_route 210.87.128.0/20 -add china_ip_route 210.87.144.0/20 -add china_ip_route 210.87.160.0/19 -add china_ip_route 210.185.192.0/18 -add china_ip_route 210.192.96.0/19 -add china_ip_route 211.64.0.0/14 -add china_ip_route 211.68.0.0/15 -add china_ip_route 211.70.0.0/15 -add china_ip_route 211.80.0.0/16 -add china_ip_route 211.81.0.0/16 -add china_ip_route 211.82.0.0/16 -add china_ip_route 211.83.0.0/16 -add china_ip_route 211.84.0.0/15 -add china_ip_route 211.86.0.0/15 -add china_ip_route 211.88.0.0/16 -add china_ip_route 211.89.0.0/16 -add china_ip_route 211.90.0.0/15 -add china_ip_route 211.92.0.0/15 -add china_ip_route 211.94.0.0/15 -add china_ip_route 211.96.0.0/15 -add china_ip_route 211.98.0.0/16 -add china_ip_route 211.99.0.0/18 -add china_ip_route 211.99.64.0/19 -add china_ip_route 211.99.96.0/19 -add china_ip_route 211.99.128.0/17 -add china_ip_route 211.100.0.0/16 -add china_ip_route 211.101.0.0/18 -add china_ip_route 211.101.64.0/18 -add china_ip_route 211.101.128.0/17 -add china_ip_route 211.102.0.0/16 -add china_ip_route 211.103.0.0/17 -add china_ip_route 211.103.128.0/17 -add china_ip_route 211.136.0.0/14 -add china_ip_route 211.140.0.0/15 -add china_ip_route 211.142.0.0/17 -add china_ip_route 211.142.128.0/17 -add china_ip_route 211.143.0.0/16 -add china_ip_route 211.144.0.0/15 -add china_ip_route 211.146.0.0/16 -add china_ip_route 211.147.0.0/16 -add china_ip_route 211.148.0.0/14 -add china_ip_route 211.152.0.0/15 -add china_ip_route 211.154.0.0/16 -add china_ip_route 211.155.0.0/18 -add china_ip_route 211.155.64.0/19 -add china_ip_route 211.155.96.0/19 -add china_ip_route 211.155.128.0/17 -add china_ip_route 211.156.0.0/14 -add china_ip_route 211.160.0.0/14 -add china_ip_route 211.164.0.0/14 -add china_ip_route 212.64.0.0/17 -add china_ip_route 212.129.128.0/17 -add china_ip_route 218.0.0.0/16 -add china_ip_route 218.1.0.0/16 -add china_ip_route 218.2.0.0/15 -add china_ip_route 218.4.0.0/15 -add china_ip_route 218.6.0.0/16 -add china_ip_route 218.7.0.0/16 -add china_ip_route 218.8.0.0/15 -add china_ip_route 218.10.0.0/16 -add china_ip_route 218.11.0.0/16 -add china_ip_route 218.12.0.0/16 -add china_ip_route 218.13.0.0/16 -add china_ip_route 218.14.0.0/15 -add china_ip_route 218.16.0.0/14 -add china_ip_route 218.20.0.0/16 -add china_ip_route 218.21.0.0/17 -add china_ip_route 218.21.128.0/17 -add china_ip_route 218.22.0.0/15 -add china_ip_route 218.24.0.0/15 -add china_ip_route 218.26.0.0/16 -add china_ip_route 218.27.0.0/16 -add china_ip_route 218.28.0.0/15 -add china_ip_route 218.30.0.0/15 -add china_ip_route 218.56.0.0/14 -add china_ip_route 218.60.0.0/15 -add china_ip_route 218.62.0.0/17 -add china_ip_route 218.62.128.0/17 -add china_ip_route 218.63.0.0/16 -add china_ip_route 218.64.0.0/15 -add china_ip_route 218.66.0.0/16 -add china_ip_route 218.67.0.0/17 -add china_ip_route 218.67.128.0/17 -add china_ip_route 218.68.0.0/15 -add china_ip_route 218.70.0.0/15 -add china_ip_route 218.72.0.0/14 -add china_ip_route 218.76.0.0/15 -add china_ip_route 218.78.0.0/15 -add china_ip_route 218.80.0.0/14 -add china_ip_route 218.84.0.0/14 -add china_ip_route 218.88.0.0/13 -add china_ip_route 218.96.0.0/15 -add china_ip_route 218.98.0.0/17 -add china_ip_route 218.98.128.0/18 -add china_ip_route 218.98.192.0/19 -add china_ip_route 218.98.224.0/19 -add china_ip_route 218.99.0.0/16 -add china_ip_route 218.100.88.0/21 -add china_ip_route 218.100.96.0/19 -add china_ip_route 218.100.128.0/17 -add china_ip_route 218.104.0.0/17 -add china_ip_route 218.104.128.0/19 -add china_ip_route 218.104.160.0/19 -add china_ip_route 218.104.192.0/21 -add china_ip_route 218.104.200.0/21 -add china_ip_route 218.104.208.0/20 -add china_ip_route 218.104.224.0/19 -add china_ip_route 218.105.0.0/16 -add china_ip_route 218.106.0.0/15 -add china_ip_route 218.108.0.0/16 -add china_ip_route 218.109.0.0/16 -add china_ip_route 218.185.192.0/19 -add china_ip_route 218.185.240.0/21 -add china_ip_route 218.192.0.0/16 -add china_ip_route 218.193.0.0/16 -add china_ip_route 218.194.0.0/16 -add china_ip_route 218.195.0.0/16 -add china_ip_route 218.196.0.0/14 -add china_ip_route 218.200.0.0/14 -add china_ip_route 218.204.0.0/15 -add china_ip_route 218.206.0.0/15 -add china_ip_route 218.240.0.0/14 -add china_ip_route 218.244.0.0/15 -add china_ip_route 218.246.0.0/15 -add china_ip_route 218.249.0.0/16 -add china_ip_route 219.72.0.0/16 -add china_ip_route 219.82.0.0/16 -add china_ip_route 219.83.128.0/17 -add china_ip_route 219.90.68.0/22 -add china_ip_route 219.90.72.0/22 -add china_ip_route 219.90.76.0/22 -add china_ip_route 219.128.0.0/12 -add china_ip_route 219.144.0.0/14 -add china_ip_route 219.148.0.0/16 -add china_ip_route 219.149.0.0/17 -add china_ip_route 219.149.128.0/18 -add china_ip_route 219.149.192.0/18 -add china_ip_route 219.150.0.0/19 -add china_ip_route 219.150.32.0/19 -add china_ip_route 219.150.64.0/19 -add china_ip_route 219.150.96.0/20 -add china_ip_route 219.150.112.0/20 -add china_ip_route 219.150.128.0/17 -add china_ip_route 219.151.0.0/19 -add china_ip_route 219.151.32.0/19 -add china_ip_route 219.151.64.0/18 -add china_ip_route 219.151.128.0/17 -add china_ip_route 219.152.0.0/15 -add china_ip_route 219.154.0.0/15 -add china_ip_route 219.156.0.0/15 -add china_ip_route 219.158.0.0/17 -add china_ip_route 219.158.128.0/17 -add china_ip_route 219.159.0.0/18 -add china_ip_route 219.159.64.0/18 -add china_ip_route 219.159.128.0/17 -add china_ip_route 219.216.0.0/15 -add china_ip_route 219.218.0.0/15 -add china_ip_route 219.220.0.0/16 -add china_ip_route 219.221.0.0/16 -add china_ip_route 219.222.0.0/15 -add china_ip_route 219.224.0.0/15 -add china_ip_route 219.226.0.0/16 -add china_ip_route 219.227.0.0/16 -add china_ip_route 219.228.0.0/15 -add china_ip_route 219.230.0.0/15 -add china_ip_route 219.232.0.0/14 -add china_ip_route 219.236.0.0/15 -add china_ip_route 219.238.0.0/15 -add china_ip_route 219.242.0.0/15 -add china_ip_route 219.244.0.0/14 -add china_ip_route 220.101.192.0/18 -add china_ip_route 220.112.0.0/14 -add china_ip_route 220.152.128.0/17 -add china_ip_route 220.154.0.0/15 -add china_ip_route 220.158.240.0/22 -add china_ip_route 220.160.0.0/11 -add china_ip_route 220.192.0.0/15 -add china_ip_route 220.194.0.0/15 -add china_ip_route 220.196.0.0/14 -add china_ip_route 220.200.0.0/13 -add china_ip_route 220.231.0.0/18 -add china_ip_route 220.231.128.0/17 -add china_ip_route 220.232.64.0/18 -add china_ip_route 220.234.0.0/16 -add china_ip_route 220.242.0.0/15 -add china_ip_route 220.247.136.0/21 -add china_ip_route 220.248.0.0/14 -add china_ip_route 220.252.0.0/16 -add china_ip_route 221.0.0.0/15 -add china_ip_route 221.2.0.0/16 -add china_ip_route 221.3.0.0/17 -add china_ip_route 221.3.128.0/17 -add china_ip_route 221.4.0.0/16 -add china_ip_route 221.5.0.0/17 -add china_ip_route 221.5.128.0/17 -add china_ip_route 221.6.0.0/16 -add china_ip_route 221.7.0.0/19 -add china_ip_route 221.7.32.0/19 -add china_ip_route 221.7.64.0/19 -add china_ip_route 221.7.96.0/19 -add china_ip_route 221.7.128.0/17 -add china_ip_route 221.8.0.0/15 -add china_ip_route 221.10.0.0/16 -add china_ip_route 221.11.0.0/17 -add china_ip_route 221.11.128.0/18 -add china_ip_route 221.11.192.0/19 -add china_ip_route 221.11.224.0/19 -add china_ip_route 221.12.0.0/17 -add china_ip_route 221.12.128.0/18 -add china_ip_route 221.13.0.0/18 -add china_ip_route 221.13.64.0/19 -add china_ip_route 221.13.96.0/19 -add china_ip_route 221.13.128.0/17 -add china_ip_route 221.14.0.0/15 -add china_ip_route 221.122.0.0/15 -add china_ip_route 221.128.128.0/17 -add china_ip_route 221.129.0.0/16 -add china_ip_route 221.130.0.0/15 -add china_ip_route 221.133.224.0/19 -add china_ip_route 221.136.0.0/16 -add china_ip_route 221.137.0.0/16 -add china_ip_route 221.172.0.0/14 -add china_ip_route 221.176.0.0/13 -add china_ip_route 221.192.0.0/15 -add china_ip_route 221.194.0.0/16 -add china_ip_route 221.195.0.0/16 -add china_ip_route 221.196.0.0/15 -add china_ip_route 221.198.0.0/16 -add china_ip_route 221.199.0.0/19 -add china_ip_route 221.199.32.0/20 -add china_ip_route 221.199.48.0/20 -add china_ip_route 221.199.64.0/18 -add china_ip_route 221.199.128.0/18 -add china_ip_route 221.199.192.0/20 -add china_ip_route 221.199.224.0/19 -add china_ip_route 221.200.0.0/14 -add china_ip_route 221.204.0.0/15 -add china_ip_route 221.206.0.0/16 -add china_ip_route 221.207.0.0/18 -add china_ip_route 221.207.64.0/18 -add china_ip_route 221.207.128.0/17 -add china_ip_route 221.208.0.0/14 -add china_ip_route 221.212.0.0/16 -add china_ip_route 221.213.0.0/16 -add china_ip_route 221.214.0.0/15 -add china_ip_route 221.216.0.0/13 -add china_ip_route 221.224.0.0/13 -add china_ip_route 221.232.0.0/14 -add china_ip_route 221.236.0.0/15 -add china_ip_route 221.238.0.0/16 -add china_ip_route 221.239.0.0/17 -add china_ip_route 221.239.128.0/17 -add china_ip_route 222.16.0.0/15 -add china_ip_route 222.18.0.0/15 -add china_ip_route 222.20.0.0/15 -add china_ip_route 222.22.0.0/16 -add china_ip_route 222.23.0.0/16 -add china_ip_route 222.24.0.0/15 -add china_ip_route 222.26.0.0/15 -add china_ip_route 222.28.0.0/14 -add china_ip_route 222.32.0.0/11 -add china_ip_route 222.64.0.0/13 -add china_ip_route 222.72.0.0/15 -add china_ip_route 222.74.0.0/16 -add china_ip_route 222.75.0.0/16 -add china_ip_route 222.76.0.0/14 -add china_ip_route 222.80.0.0/15 -add china_ip_route 222.82.0.0/16 -add china_ip_route 222.83.0.0/17 -add china_ip_route 222.83.128.0/17 -add china_ip_route 222.84.0.0/16 -add china_ip_route 222.85.0.0/17 -add china_ip_route 222.85.128.0/17 -add china_ip_route 222.86.0.0/15 -add china_ip_route 222.88.0.0/15 -add china_ip_route 222.90.0.0/15 -add china_ip_route 222.92.0.0/14 -add china_ip_route 222.125.0.0/16 -add china_ip_route 222.126.128.0/17 -add china_ip_route 222.128.0.0/14 -add china_ip_route 222.132.0.0/14 -add china_ip_route 222.136.0.0/13 -add china_ip_route 222.160.0.0/15 -add china_ip_route 222.162.0.0/16 -add china_ip_route 222.163.0.0/19 -add china_ip_route 222.163.32.0/19 -add china_ip_route 222.163.64.0/18 -add china_ip_route 222.163.128.0/17 -add china_ip_route 222.168.0.0/15 -add china_ip_route 222.170.0.0/15 -add china_ip_route 222.172.0.0/17 -add china_ip_route 222.172.128.0/17 -add china_ip_route 222.173.0.0/16 -add china_ip_route 222.174.0.0/15 -add china_ip_route 222.176.0.0/13 -add china_ip_route 222.184.0.0/13 -add china_ip_route 222.192.0.0/14 -add china_ip_route 222.196.0.0/15 -add china_ip_route 222.198.0.0/16 -add china_ip_route 222.199.0.0/16 -add china_ip_route 222.200.0.0/14 -add china_ip_route 222.204.0.0/15 -add china_ip_route 222.206.0.0/15 -add china_ip_route 222.208.0.0/13 -add china_ip_route 222.216.0.0/15 -add china_ip_route 222.218.0.0/16 -add china_ip_route 222.219.0.0/16 -add china_ip_route 222.220.0.0/15 -add china_ip_route 222.222.0.0/15 -add china_ip_route 222.240.0.0/13 -add china_ip_route 222.248.0.0/16 -add china_ip_route 222.249.0.0/17 -add china_ip_route 222.249.128.0/19 -add china_ip_route 222.249.160.0/20 -add china_ip_route 222.249.176.0/20 -add china_ip_route 222.249.192.0/18 -add china_ip_route 223.0.0.0/15 -add china_ip_route 223.2.0.0/15 -add china_ip_route 223.4.0.0/14 -add china_ip_route 223.8.0.0/13 -add china_ip_route 223.20.0.0/15 -add china_ip_route 223.27.184.0/22 -add china_ip_route 223.29.208.0/22 -add china_ip_route 223.29.252.0/22 -add china_ip_route 223.64.0.0/11 -add china_ip_route 223.96.0.0/12 -add china_ip_route 223.112.0.0/14 -add china_ip_route 223.116.0.0/15 -add china_ip_route 223.120.128.0/17 -add china_ip_route 223.121.128.0/17 -add china_ip_route 223.122.0.0/15 -add china_ip_route 223.124.0.0/14 -add china_ip_route 223.128.0.0/15 -add china_ip_route 223.144.0.0/12 -add china_ip_route 223.160.0.0/14 -add china_ip_route 223.166.0.0/15 -add china_ip_route 223.192.0.0/15 -add china_ip_route 223.198.0.0/15 -add china_ip_route 223.201.0.0/16 -add china_ip_route 223.202.0.0/15 -add china_ip_route 223.208.0.0/14 -add china_ip_route 223.212.0.0/15 -add china_ip_route 223.214.0.0/15 -add china_ip_route 223.220.0.0/15 -add china_ip_route 223.223.176.0/20 -add china_ip_route 223.223.192.0/20 -add china_ip_route 223.240.0.0/13 -add china_ip_route 223.248.0.0/14 -add china_ip_route 223.252.128.0/17 -add china_ip_route 223.254.0.0/16 -add china_ip_route 223.255.0.0/17 -add china_ip_route 223.255.236.0/22 -add china_ip_route 223.255.252.0/23 +1.0.1.0/24 +1.0.2.0/23 +1.0.8.0/21 +1.0.32.0/19 +1.1.0.0/24 +1.1.2.0/23 +1.1.4.0/22 +1.1.8.0/24 +1.1.9.0/24 +1.1.10.0/23 +1.1.12.0/22 +1.1.16.0/20 +1.1.32.0/19 +1.2.0.0/23 +1.2.2.0/24 +1.2.4.0/24 +1.2.5.0/24 +1.2.6.0/23 +1.2.8.0/24 +1.2.9.0/24 +1.2.10.0/23 +1.2.12.0/22 +1.2.16.0/20 +1.2.32.0/19 +1.2.64.0/18 +1.3.0.0/16 +1.4.1.0/24 +1.4.2.0/23 +1.4.4.0/24 +1.4.5.0/24 +1.4.6.0/23 +1.4.8.0/21 +1.4.16.0/20 +1.4.32.0/19 +1.4.64.0/18 +1.8.0.0/16 +1.10.0.0/21 +1.10.8.0/23 +1.10.11.0/24 +1.10.12.0/22 +1.10.16.0/20 +1.10.32.0/19 +1.10.64.0/18 +1.12.0.0/14 +1.24.0.0/13 +1.45.0.0/16 +1.48.0.0/15 +1.50.0.0/16 +1.51.0.0/16 +1.56.0.0/13 +1.68.0.0/14 +1.80.0.0/13 +1.88.0.0/14 +1.92.0.0/15 +1.94.0.0/15 +1.116.0.0/15 +1.118.0.0/16 +1.119.0.0/17 +1.119.128.0/17 +1.180.0.0/14 +1.184.0.0/15 +1.188.0.0/14 +1.192.0.0/13 +1.202.0.0/15 +1.204.0.0/14 +14.0.0.0/21 +14.0.12.0/22 +14.1.0.0/22 +14.1.24.0/22 +14.1.96.0/22 +14.1.108.0/22 +14.16.0.0/12 +14.102.128.0/22 +14.102.156.0/22 +14.102.180.0/22 +14.103.0.0/16 +14.104.0.0/13 +14.112.0.0/12 +14.130.0.0/15 +14.134.0.0/15 +14.144.0.0/12 +14.192.60.0/22 +14.192.76.0/22 +14.196.0.0/15 +14.204.0.0/15 +14.208.0.0/12 +27.0.128.0/22 +27.0.132.0/22 +27.0.160.0/22 +27.0.164.0/22 +27.0.188.0/22 +27.0.204.0/22 +27.0.208.0/22 +27.0.212.0/22 +27.8.0.0/13 +27.16.0.0/12 +27.34.232.0/21 +27.36.0.0/14 +27.40.0.0/13 +27.50.40.0/21 +27.50.128.0/17 +27.54.72.0/21 +27.54.152.0/21 +27.54.192.0/18 +27.98.208.0/20 +27.98.224.0/19 +27.99.128.0/17 +27.103.0.0/16 +27.106.128.0/18 +27.106.204.0/22 +27.109.32.0/19 +27.109.124.0/22 +27.112.0.0/18 +27.112.80.0/20 +27.112.112.0/22 +27.112.116.0/22 +27.113.128.0/18 +27.115.0.0/17 +27.116.44.0/22 +27.121.72.0/21 +27.121.120.0/21 +27.128.0.0/15 +27.131.220.0/22 +27.144.0.0/16 +27.148.0.0/14 +27.152.0.0/13 +27.184.0.0/13 +27.192.0.0/11 +27.224.0.0/14 +36.0.0.0/22 +36.0.8.0/21 +36.0.16.0/20 +36.0.32.0/19 +36.0.64.0/18 +36.0.128.0/17 +36.1.0.0/16 +36.4.0.0/14 +36.16.0.0/12 +36.32.0.0/14 +36.36.0.0/16 +36.37.0.0/19 +36.37.36.0/23 +36.37.39.0/24 +36.37.40.0/21 +36.37.48.0/20 +36.40.0.0/13 +36.48.0.0/15 +36.50.226.0/23 +36.50.254.0/23 +36.51.0.0/16 +36.56.0.0/13 +36.96.0.0/11 +36.128.0.0/10 +36.192.0.0/11 +36.248.0.0/14 +36.254.0.0/16 +36.255.116.0/22 +36.255.128.0/22 +36.255.164.0/22 +36.255.172.0/22 +36.255.176.0/22 +39.0.0.0/24 +39.0.2.0/23 +39.0.4.0/22 +39.0.8.0/21 +39.0.16.0/20 +39.0.32.0/19 +39.0.64.0/18 +39.0.128.0/17 +39.64.0.0/11 +39.96.0.0/13 +39.104.0.0/14 +39.108.0.0/16 +39.128.0.0/10 +40.72.0.0/15 +40.125.128.0/17 +40.126.64.0/18 +40.162.0.0/16 +42.0.0.0/22 +42.0.8.0/21 +42.0.16.0/21 +42.0.24.0/22 +42.0.32.0/19 +42.0.128.0/17 +42.1.0.0/19 +42.1.32.0/20 +42.1.48.0/21 +42.1.56.0/22 +42.1.128.0/17 +42.4.0.0/14 +42.48.0.0/15 +42.50.0.0/16 +42.51.0.0/16 +42.52.0.0/14 +42.56.0.0/14 +42.62.0.0/17 +42.62.128.0/19 +42.62.160.0/20 +42.62.180.0/22 +42.62.184.0/21 +42.63.0.0/16 +42.80.0.0/15 +42.83.64.0/20 +42.83.80.0/22 +42.83.88.0/21 +42.83.96.0/19 +42.83.128.0/17 +42.84.0.0/14 +42.88.0.0/13 +42.96.64.0/19 +42.96.96.0/21 +42.96.108.0/22 +42.96.112.0/20 +42.96.128.0/17 +42.97.0.0/16 +42.99.0.0/18 +42.99.64.0/19 +42.99.96.0/20 +42.99.112.0/22 +42.99.120.0/21 +42.100.0.0/14 +42.120.0.0/15 +42.122.0.0/16 +42.123.0.0/19 +42.123.36.0/22 +42.123.40.0/21 +42.123.48.0/20 +42.123.64.0/18 +42.123.128.0/17 +42.128.0.0/12 +42.156.0.0/19 +42.156.36.0/22 +42.156.40.0/21 +42.156.48.0/20 +42.156.64.0/18 +42.156.128.0/17 +42.157.0.0/16 +42.158.0.0/16 +42.159.0.0/16 +42.160.0.0/12 +42.176.0.0/13 +42.184.0.0/15 +42.186.0.0/16 +42.187.0.0/18 +42.187.64.0/19 +42.187.96.0/20 +42.187.112.0/21 +42.187.120.0/22 +42.187.128.0/17 +42.192.0.0/15 +42.194.0.0/21 +42.194.8.0/22 +42.194.12.0/22 +42.194.16.0/20 +42.194.32.0/19 +42.194.64.0/18 +42.194.128.0/17 +42.195.0.0/16 +42.196.0.0/14 +42.201.0.0/17 +42.202.0.0/15 +42.204.0.0/14 +42.208.0.0/12 +42.224.0.0/12 +42.240.0.0/17 +42.240.128.0/17 +42.242.0.0/15 +42.244.0.0/14 +42.248.0.0/13 +43.136.0.0/13 +43.144.0.0/13 +43.176.0.0/12 +43.192.0.0/15 +43.194.0.0/16 +43.195.0.0/16 +43.196.0.0/15 +43.224.12.0/22 +43.224.24.0/22 +43.224.44.0/22 +43.224.52.0/22 +43.224.56.0/22 +43.224.64.0/22 +43.224.68.0/22 +43.224.72.0/22 +43.224.80.0/22 +43.224.100.0/22 +43.224.144.0/22 +43.224.160.0/22 +43.224.176.0/22 +43.224.184.0/22 +43.224.200.0/22 +43.224.204.0/22 +43.224.208.0/22 +43.224.212.0/22 +43.224.216.0/22 +43.224.240.0/22 +43.225.76.0/22 +43.225.84.0/22 +43.225.120.0/22 +43.225.172.0/22 +43.225.180.0/22 +43.225.208.0/22 +43.225.216.0/22 +43.225.220.0/22 +43.225.224.0/22 +43.225.228.0/22 +43.225.232.0/22 +43.225.236.0/22 +43.225.240.0/22 +43.225.244.0/22 +43.225.252.0/22 +43.226.32.0/22 +43.226.36.0/22 +43.226.40.0/22 +43.226.44.0/22 +43.226.48.0/22 +43.226.52.0/22 +43.226.56.0/22 +43.226.60.0/22 +43.226.64.0/22 +43.226.68.0/22 +43.226.72.0/22 +43.226.76.0/22 +43.226.80.0/22 +43.226.84.0/22 +43.226.88.0/22 +43.226.92.0/22 +43.226.96.0/22 +43.226.100.0/22 +43.226.104.0/22 +43.226.108.0/22 +43.226.112.0/22 +43.226.116.0/22 +43.226.120.0/22 +43.226.128.0/22 +43.226.132.0/22 +43.226.136.0/22 +43.226.140.0/22 +43.226.144.0/22 +43.226.148.0/22 +43.226.152.0/22 +43.226.156.0/22 +43.226.160.0/22 +43.226.164.0/22 +43.226.168.0/22 +43.226.172.0/22 +43.226.176.0/22 +43.226.180.0/22 +43.226.184.0/22 +43.226.188.0/22 +43.226.192.0/22 +43.226.196.0/22 +43.226.200.0/22 +43.226.204.0/22 +43.226.208.0/22 +43.226.212.0/22 +43.226.236.0/22 +43.226.240.0/22 +43.226.244.0/22 +43.226.248.0/22 +43.226.252.0/22 +43.227.0.0/22 +43.227.4.0/22 +43.227.8.0/22 +43.227.32.0/22 +43.227.36.0/22 +43.227.40.0/22 +43.227.44.0/22 +43.227.48.0/22 +43.227.52.0/22 +43.227.56.0/22 +43.227.60.0/22 +43.227.64.0/22 +43.227.68.0/22 +43.227.72.0/22 +43.227.76.0/22 +43.227.80.0/22 +43.227.84.0/22 +43.227.88.0/22 +43.227.92.0/22 +43.227.96.0/22 +43.227.100.0/22 +43.227.104.0/22 +43.227.136.0/22 +43.227.140.0/22 +43.227.144.0/22 +43.227.152.0/22 +43.227.156.0/22 +43.227.160.0/22 +43.227.164.0/22 +43.227.168.0/22 +43.227.172.0/22 +43.227.176.0/22 +43.227.180.0/22 +43.227.188.0/22 +43.227.192.0/22 +43.227.196.0/22 +43.227.200.0/22 +43.227.204.0/22 +43.227.208.0/22 +43.227.212.0/22 +43.227.216.0/22 +43.227.220.0/22 +43.227.232.0/22 +43.227.248.0/22 +43.227.252.0/22 +43.228.0.0/22 +43.228.4.0/22 +43.228.8.0/22 +43.228.12.0/22 +43.228.16.0/22 +43.228.20.0/22 +43.228.24.0/22 +43.228.28.0/22 +43.228.32.0/22 +43.228.36.0/22 +43.228.40.0/22 +43.228.44.0/22 +43.228.48.0/22 +43.228.52.0/22 +43.228.56.0/22 +43.228.60.0/22 +43.228.64.0/22 +43.228.68.0/22 +43.228.76.0/22 +43.228.100.0/22 +43.228.116.0/22 +43.228.120.0/22 +43.228.132.0/22 +43.228.136.0/22 +43.228.148.0/22 +43.228.152.0/22 +43.228.188.0/22 +43.228.204.0/22 +43.228.240.0/22 +43.229.40.0/22 +43.229.48.0/22 +43.229.56.0/22 +43.229.96.0/22 +43.229.136.0/22 +43.229.140.0/22 +43.229.144.0/22 +43.229.168.0/22 +43.229.172.0/22 +43.229.176.0/22 +43.229.180.0/22 +43.229.184.0/22 +43.229.188.0/22 +43.229.192.0/22 +43.229.196.0/22 +43.229.216.0/22 +43.229.220.0/22 +43.229.232.0/22 +43.229.236.0/22 +43.230.20.0/22 +43.230.32.0/22 +43.230.68.0/22 +43.230.72.0/22 +43.230.124.0/22 +43.230.136.0/22 +43.230.220.0/22 +43.230.224.0/22 +43.230.228.0/22 +43.230.232.0/22 +43.230.236.0/22 +43.230.240.0/22 +43.230.244.0/22 +43.230.248.0/22 +43.230.252.0/22 +43.231.32.0/22 +43.231.36.0/22 +43.231.40.0/22 +43.231.44.0/22 +43.231.80.0/22 +43.231.84.0/22 +43.231.88.0/22 +43.231.92.0/22 +43.231.96.0/22 +43.231.100.0/22 +43.231.104.0/22 +43.231.108.0/22 +43.231.136.0/22 +43.231.140.0/22 +43.231.144.0/22 +43.231.148.0/22 +43.231.152.0/22 +43.231.156.0/22 +43.231.160.0/22 +43.231.164.0/22 +43.231.168.0/22 +43.231.172.0/22 +43.231.176.0/22 +43.231.180.0/22 +43.236.0.0/22 +43.236.4.0/22 +43.236.8.0/22 +43.236.12.0/22 +43.236.16.0/22 +43.236.20.0/22 +43.236.24.0/22 +43.236.28.0/22 +43.236.32.0/22 +43.236.36.0/22 +43.236.40.0/22 +43.236.44.0/22 +43.236.48.0/22 +43.236.52.0/22 +43.236.56.0/22 +43.236.60.0/22 +43.236.64.0/22 +43.236.68.0/22 +43.236.72.0/22 +43.236.76.0/22 +43.236.80.0/22 +43.236.84.0/22 +43.236.88.0/22 +43.236.92.0/22 +43.236.96.0/22 +43.236.100.0/22 +43.236.104.0/22 +43.236.108.0/22 +43.236.112.0/22 +43.236.116.0/22 +43.236.120.0/22 +43.236.124.0/22 +43.236.128.0/22 +43.236.132.0/22 +43.236.136.0/22 +43.236.140.0/22 +43.236.144.0/22 +43.236.148.0/22 +43.236.152.0/22 +43.236.156.0/22 +43.236.160.0/22 +43.236.164.0/22 +43.236.168.0/22 +43.236.172.0/22 +43.236.176.0/22 +43.236.180.0/22 +43.236.184.0/22 +43.236.188.0/22 +43.236.192.0/22 +43.236.196.0/22 +43.236.200.0/22 +43.236.204.0/22 +43.236.208.0/22 +43.236.212.0/22 +43.236.216.0/22 +43.236.220.0/22 +43.236.224.0/22 +43.236.228.0/22 +43.236.232.0/22 +43.236.236.0/22 +43.236.240.0/22 +43.236.244.0/22 +43.236.248.0/22 +43.236.252.0/22 +43.237.0.0/22 +43.237.4.0/22 +43.237.8.0/22 +43.237.12.0/22 +43.237.16.0/22 +43.237.20.0/22 +43.237.24.0/22 +43.237.28.0/22 +43.237.32.0/22 +43.237.36.0/22 +43.237.40.0/22 +43.237.44.0/22 +43.237.48.0/22 +43.237.52.0/22 +43.237.56.0/22 +43.237.60.0/22 +43.237.64.0/22 +43.237.68.0/22 +43.237.72.0/22 +43.237.76.0/22 +43.237.80.0/22 +43.237.84.0/22 +43.237.88.0/22 +43.237.92.0/22 +43.237.96.0/22 +43.237.100.0/22 +43.237.104.0/22 +43.237.108.0/22 +43.237.112.0/22 +43.237.116.0/22 +43.237.120.0/22 +43.237.124.0/22 +43.237.128.0/22 +43.237.132.0/22 +43.237.136.0/22 +43.237.140.0/22 +43.237.144.0/22 +43.237.148.0/22 +43.237.152.0/22 +43.237.156.0/22 +43.237.160.0/22 +43.237.164.0/22 +43.237.168.0/22 +43.237.172.0/22 +43.237.176.0/22 +43.237.180.0/22 +43.237.184.0/22 +43.237.188.0/22 +43.237.192.0/22 +43.237.200.0/22 +43.237.204.0/22 +43.237.208.0/22 +43.237.212.0/22 +43.237.216.0/22 +43.237.220.0/22 +43.237.224.0/22 +43.237.228.0/22 +43.237.232.0/22 +43.237.236.0/22 +43.237.240.0/22 +43.237.244.0/22 +43.237.248.0/22 +43.237.252.0/22 +43.238.0.0/22 +43.238.4.0/22 +43.238.8.0/22 +43.238.12.0/22 +43.238.16.0/22 +43.238.20.0/22 +43.238.24.0/22 +43.238.28.0/22 +43.238.32.0/22 +43.238.36.0/22 +43.238.40.0/22 +43.238.44.0/22 +43.238.48.0/22 +43.238.52.0/22 +43.238.56.0/22 +43.238.60.0/22 +43.238.64.0/22 +43.238.68.0/22 +43.238.72.0/22 +43.238.76.0/22 +43.238.80.0/22 +43.238.84.0/22 +43.238.88.0/22 +43.238.92.0/22 +43.238.96.0/22 +43.238.100.0/22 +43.238.104.0/22 +43.238.108.0/22 +43.238.112.0/22 +43.238.116.0/22 +43.238.120.0/22 +43.238.124.0/22 +43.238.128.0/22 +43.238.132.0/22 +43.238.136.0/22 +43.238.140.0/22 +43.238.144.0/22 +43.238.148.0/22 +43.238.152.0/22 +43.238.156.0/22 +43.238.160.0/22 +43.238.164.0/22 +43.238.168.0/22 +43.238.172.0/22 +43.238.176.0/22 +43.238.180.0/22 +43.238.184.0/22 +43.238.188.0/22 +43.238.192.0/22 +43.238.196.0/22 +43.238.200.0/22 +43.238.204.0/22 +43.238.208.0/22 +43.238.212.0/22 +43.238.216.0/22 +43.238.220.0/22 +43.238.224.0/22 +43.238.228.0/22 +43.238.232.0/22 +43.238.236.0/22 +43.238.240.0/22 +43.238.244.0/22 +43.238.248.0/22 +43.238.252.0/22 +43.239.0.0/22 +43.239.4.0/22 +43.239.8.0/21 +43.239.16.0/22 +43.239.20.0/22 +43.239.24.0/22 +43.239.28.0/22 +43.239.32.0/22 +43.239.36.0/22 +43.239.40.0/22 +43.239.44.0/22 +43.239.48.0/22 +43.239.116.0/22 +43.239.120.0/22 +43.239.172.0/22 +43.239.176.0/22 +43.240.0.0/22 +43.240.56.0/22 +43.240.60.0/22 +43.240.68.0/22 +43.240.72.0/22 +43.240.76.0/22 +43.240.84.0/22 +43.240.124.0/22 +43.240.128.0/22 +43.240.132.0/22 +43.240.136.0/22 +43.240.144.0/22 +43.240.156.0/22 +43.240.160.0/22 +43.240.164.0/22 +43.240.168.0/22 +43.240.172.0/22 +43.240.176.0/22 +43.240.180.0/22 +43.240.184.0/22 +43.240.188.0/22 +43.240.192.0/22 +43.240.196.0/22 +43.240.200.0/22 +43.240.204.0/22 +43.240.208.0/22 +43.240.212.0/22 +43.240.216.0/22 +43.240.220.0/22 +43.240.240.0/22 +43.240.244.0/22 +43.240.248.0/22 +43.240.252.0/22 +43.241.0.0/22 +43.241.4.0/22 +43.241.8.0/22 +43.241.12.0/22 +43.241.16.0/22 +43.241.20.0/22 +43.241.48.0/22 +43.241.76.0/22 +43.241.80.0/22 +43.241.84.0/22 +43.241.88.0/22 +43.241.92.0/22 +43.241.112.0/22 +43.241.168.0/22 +43.241.172.0/22 +43.241.176.0/22 +43.241.180.0/22 +43.241.184.0/22 +43.241.208.0/22 +43.241.212.0/22 +43.241.216.0/22 +43.241.220.0/22 +43.241.224.0/22 +43.241.228.0/22 +43.241.232.0/22 +43.241.236.0/22 +43.241.240.0/22 +43.241.248.0/22 +43.241.252.0/22 +43.242.8.0/22 +43.242.12.0/22 +43.242.16.0/21 +43.242.24.0/22 +43.242.28.0/22 +43.242.48.0/22 +43.242.52.0/22 +43.242.56.0/22 +43.242.60.0/22 +43.242.64.0/22 +43.242.72.0/22 +43.242.76.0/22 +43.242.80.0/22 +43.242.84.0/22 +43.242.88.0/22 +43.242.92.0/22 +43.242.96.0/22 +43.242.144.0/22 +43.242.148.0/22 +43.242.152.0/22 +43.242.156.0/22 +43.242.160.0/22 +43.242.164.0/22 +43.242.168.0/22 +43.242.180.0/22 +43.242.188.0/22 +43.242.192.0/22 +43.242.196.0/22 +43.242.204.0/22 +43.242.216.0/22 +43.242.220.0/22 +43.242.252.0/22 +43.243.4.0/22 +43.243.8.0/22 +43.243.12.0/22 +43.243.16.0/22 +43.243.88.0/22 +43.243.128.0/22 +43.243.136.0/22 +43.243.144.0/22 +43.243.148.0/22 +43.243.156.0/22 +43.243.180.0/22 +43.243.228.0/22 +43.243.232.0/22 +43.243.244.0/22 +43.246.0.0/22 +43.246.4.0/22 +43.246.8.0/22 +43.246.12.0/22 +43.246.16.0/22 +43.246.20.0/22 +43.246.24.0/22 +43.246.28.0/22 +43.246.32.0/22 +43.246.36.0/22 +43.246.40.0/22 +43.246.44.0/22 +43.246.48.0/22 +43.246.52.0/22 +43.246.56.0/22 +43.246.60.0/22 +43.246.64.0/22 +43.246.68.0/22 +43.246.72.0/22 +43.246.76.0/22 +43.246.80.0/22 +43.246.84.0/22 +43.246.88.0/22 +43.246.92.0/22 +43.246.96.0/22 +43.246.112.0/22 +43.246.228.0/22 +43.247.4.0/22 +43.247.8.0/22 +43.247.44.0/22 +43.247.48.0/22 +43.247.68.0/22 +43.247.76.0/22 +43.247.84.0/22 +43.247.88.0/22 +43.247.92.0/22 +43.247.96.0/22 +43.247.100.0/22 +43.247.108.0/22 +43.247.112.0/22 +43.247.148.0/22 +43.247.152.0/22 +43.247.176.0/22 +43.247.180.0/22 +43.247.184.0/22 +43.247.188.0/22 +43.247.196.0/22 +43.247.200.0/22 +43.247.204.0/22 +43.247.208.0/22 +43.247.212.0/22 +43.247.216.0/22 +43.247.220.0/22 +43.247.224.0/22 +43.247.228.0/22 +43.247.232.0/22 +43.247.236.0/22 +43.247.240.0/22 +43.247.244.0/22 +43.247.248.0/22 +43.247.252.0/22 +43.248.0.0/22 +43.248.4.0/22 +43.248.20.0/22 +43.248.28.0/22 +43.248.48.0/22 +43.248.76.0/22 +43.248.80.0/22 +43.248.84.0/22 +43.248.88.0/22 +43.248.92.0/22 +43.248.96.0/22 +43.248.100.0/22 +43.248.104.0/22 +43.248.108.0/22 +43.248.112.0/22 +43.248.116.0/22 +43.248.120.0/22 +43.248.124.0/22 +43.248.128.0/22 +43.248.132.0/22 +43.248.136.0/22 +43.248.140.0/22 +43.248.144.0/22 +43.248.148.0/22 +43.248.176.0/22 +43.248.180.0/22 +43.248.184.0/22 +43.248.188.0/22 +43.248.192.0/22 +43.248.196.0/22 +43.248.200.0/22 +43.248.204.0/22 +43.248.208.0/22 +43.248.228.0/22 +43.248.232.0/22 +43.248.244.0/22 +43.249.4.0/22 +43.249.120.0/22 +43.249.132.0/22 +43.249.136.0/22 +43.249.144.0/22 +43.249.148.0/22 +43.249.152.0/22 +43.249.156.0/22 +43.249.160.0/22 +43.249.164.0/22 +43.249.168.0/22 +43.249.192.0/22 +43.249.236.0/22 +43.250.4.0/22 +43.250.12.0/22 +43.250.16.0/22 +43.250.20.0/22 +43.250.28.0/22 +43.250.32.0/22 +43.250.36.0/22 +43.250.72.0/22 +43.250.96.0/22 +43.250.100.0/22 +43.250.104.0/22 +43.250.108.0/22 +43.250.112.0/22 +43.250.116.0/22 +43.250.128.0/22 +43.250.144.0/22 +43.250.148.0/22 +43.250.160.0/22 +43.250.168.0/22 +43.250.172.0/22 +43.250.176.0/22 +43.250.180.0/23 +43.250.200.0/22 +43.250.212.0/22 +43.250.216.0/22 +43.250.220.0/22 +43.250.236.0/22 +43.250.244.0/22 +43.251.4.0/22 +43.251.8.0/22 +43.251.36.0/22 +43.251.100.0/22 +43.251.116.0/22 +43.251.192.0/22 +43.251.232.0/22 +43.251.236.0/22 +43.251.244.0/22 +43.252.48.0/22 +43.252.56.0/22 +43.254.0.0/22 +43.254.4.0/22 +43.254.8.0/22 +43.254.24.0/22 +43.254.36.0/22 +43.254.44.0/22 +43.254.52.0/22 +43.254.64.0/22 +43.254.72.0/22 +43.254.84.0/22 +43.254.88.0/22 +43.254.92.0/22 +43.254.100.0/22 +43.254.104.0/22 +43.254.112.0/22 +43.254.116.0/22 +43.254.128.0/22 +43.254.136.0/22 +43.254.140.0/22 +43.254.144.0/22 +43.254.148.0/22 +43.254.152.0/22 +43.254.156.0/22 +43.254.168.0/22 +43.254.172.0/22 +43.254.180.0/22 +43.254.184.0/22 +43.254.188.0/22 +43.254.192.0/22 +43.254.196.0/22 +43.254.200.0/22 +43.254.208.0/22 +43.254.220.0/22 +43.254.224.0/22 +43.254.228.0/22 +43.254.232.0/22 +43.254.236.0/22 +43.254.240.0/22 +43.254.248.0/22 +43.254.252.0/22 +43.255.0.0/22 +43.255.4.0/22 +43.255.8.0/22 +43.255.16.0/22 +43.255.48.0/22 +43.255.64.0/22 +43.255.68.0/22 +43.255.72.0/22 +43.255.76.0/22 +43.255.84.0/22 +43.255.96.0/22 +43.255.144.0/22 +43.255.176.0/22 +43.255.184.0/22 +43.255.192.0/22 +43.255.200.0/22 +43.255.204.0/22 +43.255.208.0/22 +43.255.212.0/22 +43.255.224.0/22 +43.255.228.0/22 +43.255.232.0/22 +43.255.244.0/22 +45.40.192.0/18 +45.65.16.0/22 +45.65.20.0/22 +45.65.24.0/22 +45.65.28.0/22 +45.112.132.0/22 +45.112.188.0/22 +45.112.208.0/22 +45.112.212.0/22 +45.112.216.0/22 +45.112.220.0/22 +45.112.228.0/22 +45.112.232.0/22 +45.112.236.0/22 +45.113.12.0/22 +45.113.16.0/22 +45.113.20.0/22 +45.113.24.0/22 +45.113.28.0/22 +45.113.40.0/22 +45.113.52.0/22 +45.113.56.0/22 +45.113.72.0/22 +45.113.144.0/22 +45.113.148.0/22 +45.113.168.0/22 +45.113.176.0/22 +45.113.184.0/22 +45.113.200.0/22 +45.113.204.0/22 +45.113.208.0/22 +45.113.212.0/22 +45.113.216.0/22 +45.113.220.0/22 +45.113.240.0/22 +45.113.252.0/22 +45.114.0.0/22 +45.114.32.0/22 +45.114.40.0/22 +45.114.52.0/22 +45.114.96.0/22 +45.114.124.0/22 +45.114.136.0/22 +45.114.196.0/22 +45.114.200.0/22 +45.114.228.0/22 +45.114.252.0/22 +45.115.44.0/22 +45.115.100.0/22 +45.115.120.0/22 +45.115.132.0/22 +45.115.144.0/22 +45.115.156.0/22 +45.115.164.0/22 +45.115.200.0/22 +45.115.212.0/22 +45.115.228.0/22 +45.115.236.0/22 +45.115.244.0/22 +45.115.248.0/22 +45.116.16.0/22 +45.116.24.0/22 +45.116.32.0/22 +45.116.36.0/22 +45.116.52.0/22 +45.116.96.0/22 +45.116.100.0/22 +45.116.140.0/22 +45.116.152.0/22 +45.116.208.0/22 +45.117.8.0/22 +45.117.20.0/22 +45.117.68.0/22 +45.117.124.0/22 +45.117.252.0/22 +45.119.52.0/22 +45.119.60.0/22 +45.119.64.0/22 +45.119.68.0/22 +45.119.72.0/22 +45.119.104.0/22 +45.119.116.0/22 +45.119.232.0/22 +45.120.100.0/22 +45.120.140.0/22 +45.120.164.0/22 +45.120.240.0/22 +45.121.52.0/22 +45.121.64.0/22 +45.121.68.0/22 +45.121.72.0/22 +45.121.92.0/22 +45.121.96.0/22 +45.121.172.0/22 +45.121.176.0/22 +45.121.212.0/22 +45.121.240.0/22 +45.121.244.0/22 +45.121.248.0/22 +45.121.252.0/22 +45.122.0.0/22 +45.122.4.0/22 +45.122.8.0/22 +45.122.12.0/22 +45.122.16.0/22 +45.122.20.0/22 +45.122.24.0/22 +45.122.28.0/22 +45.122.32.0/22 +45.122.36.0/22 +45.122.40.0/22 +45.122.60.0/22 +45.122.64.0/22 +45.122.68.0/22 +45.122.72.0/22 +45.122.76.0/22 +45.122.80.0/22 +45.122.84.0/22 +45.122.88.0/22 +45.122.92.0/22 +45.122.96.0/21 +45.122.104.0/22 +45.122.108.0/22 +45.122.112.0/22 +45.122.116.0/22 +45.122.160.0/22 +45.122.164.0/22 +45.122.168.0/22 +45.122.172.0/22 +45.122.176.0/22 +45.122.180.0/22 +45.122.184.0/22 +45.122.188.0/22 +45.122.192.0/22 +45.122.196.0/22 +45.122.200.0/22 +45.122.204.0/22 +45.122.208.0/22 +45.122.212.0/22 +45.122.216.0/22 +45.123.28.0/22 +45.123.32.0/22 +45.123.36.0/22 +45.123.44.0/22 +45.123.48.0/22 +45.123.52.0/22 +45.123.56.0/22 +45.123.60.0/22 +45.123.64.0/22 +45.123.68.0/22 +45.123.72.0/22 +45.123.76.0/22 +45.123.80.0/22 +45.123.84.0/22 +45.123.88.0/22 +45.123.120.0/22 +45.123.128.0/22 +45.123.132.0/22 +45.123.136.0/22 +45.123.148.0/22 +45.123.152.0/22 +45.123.156.0/22 +45.123.164.0/22 +45.123.168.0/22 +45.123.172.0/22 +45.123.176.0/22 +45.123.180.0/22 +45.123.184.0/22 +45.123.204.0/22 +45.123.212.0/22 +45.123.224.0/22 +45.123.228.0/22 +45.123.232.0/22 +45.123.236.0/22 +45.123.240.0/22 +45.123.244.0/22 +45.123.248.0/22 +45.123.252.0/22 +45.124.0.0/22 +45.124.20.0/22 +45.124.28.0/22 +45.124.32.0/22 +45.124.36.0/22 +45.124.44.0/22 +45.124.68.0/22 +45.124.76.0/22 +45.124.80.0/22 +45.124.100.0/22 +45.124.124.0/22 +45.124.172.0/22 +45.124.176.0/22 +45.124.208.0/22 +45.124.248.0/22 +45.125.16.0/22 +45.125.24.0/22 +45.125.44.0/22 +45.125.52.0/22 +45.125.56.0/22 +45.125.76.0/22 +45.125.80.0/22 +45.125.84.0/22 +45.125.88.0/22 +45.125.92.0/22 +45.125.96.0/22 +45.125.100.0/22 +45.125.136.0/22 +45.126.48.0/22 +45.126.52.0/22 +45.126.100.0/22 +45.126.108.0/22 +45.126.112.0/22 +45.126.116.0/22 +45.126.120.0/22 +45.126.212.0/22 +45.126.220.0/22 +45.127.8.0/22 +45.127.12.0/22 +45.127.128.0/22 +45.127.144.0/22 +45.127.148.0/22 +45.127.156.0/22 +45.127.216.0/22 +45.248.8.0/22 +45.248.80.0/22 +45.248.84.0/22 +45.248.88.0/22 +45.248.96.0/22 +45.248.100.0/22 +45.248.104.0/22 +45.248.108.0/22 +45.248.128.0/22 +45.248.132.0/22 +45.248.204.0/22 +45.248.208.0/22 +45.248.212.0/22 +45.248.216.0/22 +45.248.220.0/22 +45.248.224.0/22 +45.248.228.0/22 +45.248.232.0/22 +45.248.236.0/22 +45.248.240.0/22 +45.248.244.0/22 +45.248.248.0/22 +45.248.252.0/22 +45.249.0.0/22 +45.249.4.0/22 +45.249.12.0/22 +45.249.16.0/22 +45.249.20.0/22 +45.249.24.0/22 +45.249.28.0/22 +45.249.32.0/22 +45.249.36.0/22 +45.249.112.0/22 +45.249.188.0/22 +45.249.192.0/22 +45.249.196.0/22 +45.249.200.0/22 +45.249.204.0/22 +45.249.208.0/22 +45.249.212.0/22 +45.250.12.0/22 +45.250.16.0/22 +45.250.28.0/22 +45.250.32.0/22 +45.250.36.0/22 +45.250.40.0/22 +45.250.76.0/22 +45.250.80.0/22 +45.250.84.0/22 +45.250.88.0/22 +45.250.92.0/22 +45.250.96.0/22 +45.250.104.0/22 +45.250.108.0/22 +45.250.112.0/22 +45.250.116.0/22 +45.250.120.0/22 +45.250.124.0/22 +45.250.128.0/22 +45.250.132.0/22 +45.250.136.0/22 +45.250.140.0/22 +45.250.144.0/22 +45.250.148.0/22 +45.250.152.0/22 +45.250.164.0/22 +45.250.180.0/22 +45.250.184.0/22 +45.250.188.0/22 +45.250.192.0/22 +45.251.0.0/22 +45.251.8.0/22 +45.251.16.0/22 +45.251.20.0/22 +45.251.52.0/22 +45.251.84.0/22 +45.251.88.0/22 +45.251.92.0/22 +45.251.96.0/22 +45.251.100.0/22 +45.251.120.0/22 +45.251.124.0/22 +45.251.136.0/22 +45.251.140.0/22 +45.251.144.0/22 +45.251.148.0/22 +45.251.152.0/22 +45.251.156.0/22 +45.251.160.0/22 +45.251.164.0/22 +45.251.168.0/22 +45.251.172.0/22 +45.251.176.0/22 +45.251.180.0/22 +45.251.184.0/22 +45.251.188.0/22 +45.251.192.0/22 +45.251.196.0/22 +45.251.200.0/22 +45.251.204.0/22 +45.251.208.0/22 +45.251.212.0/22 +45.251.216.0/22 +45.251.220.0/22 +45.251.224.0/22 +45.251.240.0/22 +45.252.0.0/22 +45.252.4.0/22 +45.252.8.0/22 +45.252.12.0/22 +45.252.16.0/22 +45.252.20.0/22 +45.252.24.0/22 +45.252.28.0/22 +45.252.32.0/22 +45.252.36.0/22 +45.252.40.0/22 +45.252.44.0/22 +45.252.48.0/22 +45.252.84.0/22 +45.252.88.0/22 +45.252.92.0/22 +45.252.96.0/22 +45.252.100.0/22 +45.252.104.0/22 +45.252.108.0/22 +45.252.112.0/22 +45.252.116.0/22 +45.252.120.0/22 +45.252.124.0/22 +45.252.128.0/22 +45.252.132.0/22 +45.252.136.0/22 +45.252.140.0/22 +45.252.144.0/22 +45.252.148.0/22 +45.252.152.0/22 +45.252.156.0/22 +45.252.160.0/22 +45.252.164.0/22 +45.252.168.0/22 +45.252.172.0/22 +45.252.176.0/22 +45.252.192.0/22 +45.252.196.0/22 +45.252.200.0/22 +45.252.204.0/22 +45.252.208.0/22 +45.252.212.0/22 +45.252.216.0/22 +45.252.220.0/22 +45.252.224.0/22 +45.252.228.0/22 +45.252.232.0/22 +45.253.0.0/22 +45.253.4.0/22 +45.253.8.0/22 +45.253.12.0/22 +45.253.16.0/22 +45.253.20.0/22 +45.253.24.0/22 +45.253.28.0/22 +45.253.32.0/22 +45.253.36.0/22 +45.253.40.0/22 +45.253.44.0/22 +45.253.48.0/22 +45.253.52.0/22 +45.253.56.0/22 +45.253.60.0/22 +45.253.64.0/22 +45.253.68.0/22 +45.253.72.0/22 +45.253.76.0/22 +45.253.80.0/22 +45.253.84.0/22 +45.253.92.0/22 +45.253.96.0/22 +45.253.100.0/22 +45.253.104.0/22 +45.253.108.0/22 +45.253.112.0/22 +45.253.116.0/22 +45.253.120.0/22 +45.253.132.0/22 +45.253.136.0/22 +45.253.140.0/22 +45.253.144.0/22 +45.253.148.0/22 +45.253.152.0/22 +45.253.156.0/22 +45.253.160.0/22 +45.253.164.0/22 +45.253.168.0/22 +45.253.172.0/22 +45.253.176.0/22 +45.253.180.0/22 +45.253.184.0/22 +45.253.188.0/22 +45.253.192.0/22 +45.253.196.0/22 +45.253.200.0/22 +45.253.204.0/22 +45.253.208.0/22 +45.253.212.0/22 +45.253.216.0/22 +45.253.220.0/22 +45.253.224.0/22 +45.253.228.0/22 +45.253.232.0/22 +45.253.236.0/22 +45.253.240.0/22 +45.253.244.0/22 +45.254.0.0/22 +45.254.4.0/22 +45.254.8.0/22 +45.254.12.0/22 +45.254.16.0/22 +45.254.20.0/22 +45.254.24.0/22 +45.254.28.0/22 +45.254.40.0/22 +45.254.48.0/22 +45.254.52.0/22 +45.254.56.0/22 +45.254.60.0/22 +45.254.64.0/22 +45.254.68.0/22 +45.254.72.0/22 +45.254.76.0/22 +45.254.80.0/22 +45.254.84.0/22 +45.254.88.0/22 +45.254.92.0/22 +45.254.96.0/22 +45.254.100.0/22 +45.254.104.0/22 +45.254.108.0/22 +45.254.112.0/22 +45.254.116.0/22 +45.254.120.0/22 +45.254.124.0/22 +45.254.128.0/22 +45.254.132.0/22 +45.254.136.0/22 +45.254.140.0/22 +45.254.144.0/22 +45.254.148.0/22 +45.254.152.0/22 +45.254.156.0/22 +45.254.160.0/22 +45.254.164.0/22 +45.254.168.0/22 +45.254.172.0/22 +45.254.176.0/22 +45.254.180.0/22 +45.254.184.0/22 +45.254.188.0/22 +45.254.192.0/22 +45.254.196.0/22 +45.254.200.0/22 +45.254.204.0/22 +45.254.208.0/22 +45.254.212.0/22 +45.254.216.0/22 +45.254.220.0/22 +45.254.224.0/22 +45.254.228.0/22 +45.254.236.0/22 +45.254.240.0/22 +45.254.248.0/22 +45.255.0.0/22 +45.255.4.0/22 +45.255.8.0/22 +45.255.12.0/22 +45.255.16.0/22 +45.255.20.0/22 +45.255.24.0/22 +45.255.28.0/22 +45.255.32.0/22 +45.255.36.0/22 +45.255.40.0/22 +45.255.44.0/22 +45.255.48.0/22 +45.255.52.0/22 +45.255.56.0/22 +45.255.60.0/22 +45.255.64.0/22 +45.255.68.0/22 +45.255.72.0/22 +45.255.76.0/22 +45.255.80.0/22 +45.255.84.0/22 +45.255.88.0/22 +45.255.92.0/22 +45.255.96.0/22 +45.255.100.0/22 +45.255.104.0/22 +45.255.108.0/22 +45.255.112.0/22 +45.255.116.0/22 +45.255.120.0/22 +45.255.124.0/22 +45.255.132.0/22 +45.255.136.0/22 +45.255.140.0/22 +45.255.144.0/22 +45.255.148.0/22 +45.255.152.0/22 +45.255.156.0/22 +45.255.160.0/22 +45.255.164.0/22 +45.255.168.0/22 +45.255.172.0/22 +45.255.176.0/22 +45.255.180.0/22 +45.255.184.0/22 +45.255.188.0/22 +45.255.192.0/22 +45.255.196.0/22 +45.255.200.0/22 +45.255.204.0/22 +45.255.208.0/22 +45.255.212.0/22 +45.255.216.0/22 +45.255.220.0/22 +45.255.224.0/22 +45.255.228.0/22 +45.255.232.0/22 +45.255.236.0/22 +45.255.240.0/22 +45.255.244.0/22 +45.255.248.0/22 +47.92.0.0/14 +47.96.0.0/11 +49.4.0.0/14 +49.51.0.0/16 +49.52.0.0/14 +49.64.0.0/11 +49.112.0.0/13 +49.120.0.0/14 +49.128.0.0/24 +49.128.2.0/23 +49.128.4.0/22 +49.140.0.0/15 +49.152.0.0/14 +49.208.0.0/15 +49.210.0.0/15 +49.220.0.0/14 +49.232.0.0/14 +49.239.0.0/18 +49.239.192.0/18 +49.246.224.0/19 +52.80.0.0/15 +52.82.0.0/15 +52.130.0.0/15 +54.222.0.0/15 +57.176.0.0/15 +58.14.0.0/15 +58.16.0.0/16 +58.17.0.0/17 +58.17.128.0/17 +58.18.0.0/16 +58.19.0.0/16 +58.20.0.0/16 +58.21.0.0/16 +58.22.0.0/15 +58.24.0.0/15 +58.30.0.0/15 +58.32.0.0/13 +58.40.0.0/15 +58.42.0.0/16 +58.43.0.0/16 +58.44.0.0/14 +58.48.0.0/13 +58.56.0.0/15 +58.58.0.0/16 +58.59.0.0/17 +58.59.128.0/17 +58.60.0.0/14 +58.65.232.0/21 +58.66.0.0/15 +58.68.128.0/17 +58.82.0.0/17 +58.83.0.0/17 +58.83.128.0/17 +58.87.64.0/18 +58.99.128.0/17 +58.100.0.0/15 +58.116.0.0/14 +58.128.0.0/13 +58.144.0.0/16 +58.154.0.0/15 +58.192.0.0/15 +58.194.0.0/15 +58.196.0.0/15 +58.198.0.0/15 +58.200.0.0/13 +58.208.0.0/12 +58.240.0.0/15 +58.242.0.0/15 +58.244.0.0/15 +58.246.0.0/15 +58.248.0.0/13 +59.32.0.0/13 +59.40.0.0/15 +59.42.0.0/16 +59.43.0.0/16 +59.44.0.0/14 +59.48.0.0/16 +59.49.0.0/17 +59.49.128.0/17 +59.50.0.0/16 +59.51.0.0/17 +59.51.128.0/17 +59.52.0.0/14 +59.56.0.0/14 +59.60.0.0/15 +59.62.0.0/15 +59.64.0.0/14 +59.68.0.0/14 +59.72.0.0/15 +59.74.0.0/15 +59.76.0.0/16 +59.77.0.0/16 +59.78.0.0/15 +59.80.0.0/15 +59.82.0.0/15 +59.107.0.0/17 +59.107.128.0/17 +59.108.0.0/15 +59.110.0.0/15 +59.151.0.0/17 +59.152.16.0/22 +59.152.20.0/22 +59.152.24.0/22 +59.152.28.0/22 +59.152.32.0/22 +59.152.36.0/22 +59.152.64.0/22 +59.152.68.0/22 +59.152.72.0/22 +59.152.76.0/22 +59.152.112.0/22 +59.152.116.0/22 +59.153.4.0/22 +59.153.32.0/22 +59.153.60.0/22 +59.153.64.0/22 +59.153.68.0/22 +59.153.72.0/22 +59.153.92.0/22 +59.153.116.0/22 +59.153.136.0/22 +59.153.152.0/22 +59.153.164.0/22 +59.153.168.0/22 +59.153.172.0/22 +59.153.176.0/22 +59.153.180.0/22 +59.153.184.0/22 +59.153.188.0/22 +59.153.192.0/22 +59.155.0.0/16 +59.172.0.0/15 +59.174.0.0/15 +59.191.0.0/17 +59.192.0.0/10 +60.0.0.0/13 +60.8.0.0/15 +60.10.0.0/16 +60.11.0.0/16 +60.12.0.0/16 +60.13.0.0/18 +60.13.64.0/18 +60.13.128.0/17 +60.14.0.0/15 +60.16.0.0/13 +60.24.0.0/14 +60.28.0.0/15 +60.30.0.0/16 +60.31.0.0/16 +60.55.0.0/16 +60.63.0.0/16 +60.160.0.0/15 +60.162.0.0/15 +60.164.0.0/15 +60.166.0.0/15 +60.168.0.0/13 +60.176.0.0/12 +60.194.0.0/15 +60.200.0.0/14 +60.204.0.0/16 +60.205.0.0/16 +60.206.0.0/15 +60.208.0.0/13 +60.216.0.0/15 +60.218.0.0/15 +60.220.0.0/14 +60.232.0.0/15 +60.235.0.0/16 +60.245.128.0/17 +60.247.0.0/16 +60.252.0.0/16 +60.253.128.0/17 +60.255.0.0/16 +61.4.80.0/22 +61.4.84.0/22 +61.4.88.0/21 +61.4.176.0/20 +61.8.160.0/20 +61.14.212.0/22 +61.14.216.0/22 +61.14.220.0/22 +61.14.240.0/22 +61.14.244.0/22 +61.28.0.0/20 +61.28.16.0/20 +61.28.32.0/19 +61.28.64.0/18 +61.29.128.0/18 +61.29.192.0/19 +61.29.224.0/20 +61.29.240.0/22 +61.29.248.0/22 +61.45.128.0/18 +61.45.224.0/20 +61.47.128.0/18 +61.48.0.0/14 +61.52.0.0/15 +61.54.0.0/16 +61.55.0.0/16 +61.87.192.0/18 +61.128.0.0/15 +61.130.0.0/15 +61.132.0.0/16 +61.133.0.0/17 +61.133.128.0/17 +61.134.0.0/18 +61.134.64.0/19 +61.134.96.0/19 +61.134.128.0/18 +61.134.192.0/18 +61.135.0.0/16 +61.136.0.0/18 +61.136.64.0/18 +61.136.128.0/17 +61.137.0.0/17 +61.137.128.0/17 +61.138.0.0/18 +61.138.64.0/18 +61.138.128.0/18 +61.138.192.0/18 +61.139.0.0/17 +61.139.128.0/18 +61.139.192.0/18 +61.140.0.0/14 +61.144.0.0/14 +61.148.0.0/15 +61.150.0.0/15 +61.152.0.0/16 +61.153.0.0/16 +61.154.0.0/15 +61.156.0.0/16 +61.157.0.0/16 +61.158.0.0/17 +61.158.128.0/17 +61.159.0.0/18 +61.159.64.0/18 +61.159.128.0/17 +61.160.0.0/16 +61.161.0.0/18 +61.161.64.0/18 +61.161.128.0/17 +61.162.0.0/16 +61.163.0.0/16 +61.164.0.0/16 +61.165.0.0/16 +61.166.0.0/16 +61.167.0.0/16 +61.168.0.0/16 +61.169.0.0/16 +61.170.0.0/15 +61.172.0.0/14 +61.176.0.0/16 +61.177.0.0/16 +61.178.0.0/16 +61.179.0.0/16 +61.180.0.0/17 +61.180.128.0/17 +61.181.0.0/16 +61.182.0.0/16 +61.183.0.0/16 +61.184.0.0/14 +61.188.0.0/16 +61.189.0.0/17 +61.189.128.0/17 +61.190.0.0/15 +61.232.0.0/14 +61.236.0.0/15 +61.240.0.0/14 +62.234.0.0/16 +68.79.0.0/18 +69.230.192.0/18 +69.231.128.0/18 +69.234.192.0/18 +69.235.128.0/18 +71.131.192.0/18 +71.132.0.0/18 +71.136.64.0/18 +71.137.0.0/18 +81.68.0.0/14 +82.156.0.0/15 +94.191.0.0/17 +101.0.0.0/22 +101.1.0.0/22 +101.2.172.0/22 +101.4.0.0/14 +101.16.0.0/12 +101.33.128.0/17 +101.34.0.0/15 +101.36.0.0/18 +101.36.64.0/19 +101.36.128.0/17 +101.37.0.0/16 +101.38.0.0/15 +101.40.0.0/15 +101.42.0.0/15 +101.48.0.0/15 +101.50.8.0/22 +101.50.12.0/22 +101.50.56.0/22 +101.52.0.0/16 +101.53.100.0/22 +101.54.0.0/16 +101.55.224.0/21 +101.64.0.0/13 +101.72.0.0/14 +101.76.0.0/15 +101.78.0.0/22 +101.78.32.0/19 +101.80.0.0/12 +101.96.0.0/21 +101.96.8.0/22 +101.96.16.0/20 +101.96.128.0/17 +101.99.96.0/19 +101.101.64.0/19 +101.101.100.0/24 +101.101.102.0/23 +101.101.104.0/21 +101.101.112.0/20 +101.102.64.0/19 +101.102.100.0/23 +101.102.102.0/24 +101.102.104.0/21 +101.102.112.0/20 +101.104.0.0/14 +101.110.64.0/19 +101.110.96.0/20 +101.110.116.0/22 +101.110.120.0/21 +101.120.0.0/14 +101.124.0.0/15 +101.126.0.0/16 +101.128.0.0/22 +101.128.8.0/21 +101.128.16.0/20 +101.128.32.0/19 +101.129.0.0/16 +101.130.0.0/15 +101.132.0.0/14 +101.144.0.0/12 +101.192.0.0/14 +101.196.0.0/16 +101.197.0.0/16 +101.198.0.0/15 +101.200.0.0/15 +101.203.128.0/19 +101.203.160.0/21 +101.203.172.0/22 +101.203.176.0/20 +101.204.0.0/14 +101.224.0.0/13 +101.232.0.0/15 +101.234.64.0/21 +101.234.76.0/22 +101.234.80.0/20 +101.234.96.0/19 +101.236.0.0/14 +101.240.0.0/14 +101.244.0.0/16 +101.245.0.0/16 +101.246.0.0/15 +101.248.0.0/15 +101.251.0.0/22 +101.251.8.0/21 +101.251.16.0/20 +101.251.32.0/19 +101.251.64.0/18 +101.251.128.0/17 +101.252.0.0/15 +101.254.0.0/16 +103.1.8.0/22 +103.1.20.0/22 +103.1.24.0/22 +103.1.72.0/22 +103.1.88.0/22 +103.1.168.0/22 +103.2.108.0/22 +103.2.156.0/22 +103.2.164.0/22 +103.2.188.0/23 +103.2.200.0/22 +103.2.204.0/22 +103.2.208.0/22 +103.2.212.0/22 +103.3.84.0/22 +103.3.88.0/22 +103.3.92.0/22 +103.3.96.0/22 +103.3.100.0/22 +103.3.104.0/22 +103.3.108.0/22 +103.3.112.0/22 +103.3.116.0/22 +103.3.120.0/22 +103.3.124.0/22 +103.3.128.0/22 +103.3.132.0/22 +103.3.136.0/22 +103.3.140.0/22 +103.3.148.0/22 +103.3.152.0/22 +103.3.156.0/22 +103.4.56.0/22 +103.4.168.0/22 +103.4.184.0/22 +103.4.224.0/22 +103.5.36.0/22 +103.5.52.0/22 +103.5.56.0/22 +103.5.152.0/22 +103.5.168.0/22 +103.5.192.0/22 +103.5.252.0/22 +103.6.76.0/22 +103.6.108.0/22 +103.6.220.0/22 +103.6.228.0/22 +103.7.28.0/22 +103.7.140.0/22 +103.7.212.0/22 +103.7.216.0/22 +103.7.220.0/22 +103.8.0.0/22 +103.8.4.0/22 +103.8.8.0/22 +103.8.32.0/22 +103.8.52.0/22 +103.8.68.0/22 +103.8.108.0/22 +103.8.156.0/22 +103.8.200.0/22 +103.8.204.0/22 +103.8.220.0/22 +103.9.8.0/22 +103.9.24.0/22 +103.9.108.0/22 +103.9.152.0/22 +103.9.248.0/22 +103.9.252.0/22 +103.10.0.0/22 +103.10.16.0/22 +103.10.84.0/22 +103.10.140.0/22 +103.11.16.0/22 +103.11.168.0/22 +103.11.180.0/22 +103.12.32.0/22 +103.12.92.0/22 +103.12.98.0/23 +103.12.136.0/22 +103.12.184.0/22 +103.12.232.0/22 +103.13.12.0/22 +103.13.124.0/22 +103.13.144.0/22 +103.13.196.0/22 +103.13.244.0/22 +103.14.84.0/22 +103.14.100.0/22 +103.14.132.0/22 +103.14.136.0/22 +103.14.156.0/22 +103.14.240.0/22 +103.15.4.0/22 +103.15.8.0/22 +103.15.16.0/22 +103.15.96.0/22 +103.15.200.0/22 +103.16.52.0/22 +103.16.80.0/22 +103.16.84.0/22 +103.16.88.0/22 +103.16.108.0/22 +103.16.124.0/22 +103.17.40.0/22 +103.17.64.0/22 +103.17.120.0/22 +103.17.136.0/22 +103.17.160.0/22 +103.17.204.0/22 +103.17.228.0/22 +103.18.186.0/23 +103.18.192.0/22 +103.18.206.0/23 +103.18.208.0/22 +103.18.212.0/22 +103.18.224.0/22 +103.19.12.0/22 +103.19.40.0/22 +103.19.44.0/22 +103.19.50.0/23 +103.19.64.0/22 +103.19.68.0/22 +103.19.72.0/22 +103.19.232.0/22 +103.20.12.0/22 +103.20.32.0/22 +103.20.44.0/22 +103.20.68.0/22 +103.20.112.0/22 +103.20.128.0/22 +103.20.160.0/22 +103.20.248.0/22 +103.21.98.0/23 +103.21.102.0/23 +103.21.112.0/22 +103.21.116.0/22 +103.21.136.0/22 +103.21.140.0/22 +103.21.176.0/22 +103.21.208.0/22 +103.21.240.0/22 +103.22.0.0/22 +103.22.4.0/22 +103.22.8.0/22 +103.22.12.0/22 +103.22.16.0/22 +103.22.20.0/22 +103.22.24.0/22 +103.22.28.0/22 +103.22.32.0/22 +103.22.36.0/22 +103.22.40.0/22 +103.22.44.0/22 +103.22.48.0/22 +103.22.52.0/22 +103.22.56.0/22 +103.22.60.0/22 +103.22.64.0/22 +103.22.68.0/22 +103.22.72.0/22 +103.22.76.0/22 +103.22.80.0/22 +103.22.84.0/22 +103.22.88.0/22 +103.22.92.0/22 +103.22.100.0/22 +103.22.104.0/22 +103.22.108.0/22 +103.22.112.0/22 +103.22.116.0/22 +103.22.120.0/22 +103.22.124.0/22 +103.22.188.0/22 +103.22.228.0/22 +103.22.252.0/22 +103.23.8.0/22 +103.23.56.0/22 +103.23.160.0/22 +103.23.164.0/22 +103.23.176.0/22 +103.23.228.0/22 +103.24.24.0/22 +103.24.116.0/22 +103.24.128.0/22 +103.24.144.0/22 +103.24.176.0/22 +103.24.184.0/22 +103.24.220.0/22 +103.24.228.0/22 +103.24.252.0/22 +103.25.8.0/23 +103.25.20.0/22 +103.25.24.0/22 +103.25.28.0/22 +103.25.32.0/22 +103.25.36.0/22 +103.25.40.0/22 +103.25.48.0/22 +103.25.64.0/22 +103.25.68.0/22 +103.25.148.0/22 +103.25.156.0/22 +103.25.216.0/22 +103.26.0.0/22 +103.26.64.0/22 +103.26.76.0/22 +103.26.132.0/22 +103.26.156.0/22 +103.26.160.0/22 +103.26.228.0/22 +103.26.240.0/22 +103.27.4.0/22 +103.27.12.0/22 +103.27.24.0/22 +103.27.56.0/22 +103.27.96.0/22 +103.27.184.0/22 +103.27.212.0/22 +103.27.240.0/22 +103.28.4.0/22 +103.28.8.0/22 +103.28.184.0/22 +103.28.204.0/22 +103.28.212.0/22 +103.29.16.0/22 +103.29.24.0/23 +103.29.29.0/24 +103.29.128.0/22 +103.29.132.0/22 +103.29.136.0/22 +103.29.236.0/23 +103.30.20.0/22 +103.30.96.0/22 +103.30.104.0/23 +103.30.106.0/23 +103.30.148.0/22 +103.30.200.0/22 +103.30.228.0/22 +103.30.236.0/22 +103.31.0.0/22 +103.31.48.0/22 +103.31.52.0/22 +103.31.56.0/22 +103.31.60.0/22 +103.31.64.0/22 +103.31.68.0/22 +103.31.148.0/22 +103.31.160.0/22 +103.31.168.0/22 +103.31.200.0/22 +103.31.236.0/22 +103.31.242.0/23 +103.32.0.0/22 +103.32.4.0/22 +103.32.8.0/22 +103.32.12.0/22 +103.32.16.0/22 +103.32.20.0/22 +103.32.24.0/22 +103.32.28.0/22 +103.32.32.0/22 +103.32.36.0/22 +103.32.40.0/22 +103.32.44.0/22 +103.32.48.0/22 +103.32.52.0/22 +103.32.56.0/22 +103.32.60.0/22 +103.32.64.0/22 +103.32.68.0/22 +103.32.72.0/22 +103.32.76.0/22 +103.32.80.0/22 +103.32.84.0/22 +103.32.88.0/22 +103.32.92.0/22 +103.32.96.0/22 +103.32.100.0/22 +103.32.104.0/22 +103.32.108.0/22 +103.32.112.0/22 +103.32.116.0/22 +103.32.120.0/22 +103.32.124.0/22 +103.32.128.0/22 +103.32.132.0/22 +103.32.136.0/22 +103.32.140.0/22 +103.32.144.0/22 +103.32.148.0/22 +103.32.152.0/22 +103.32.156.0/22 +103.32.160.0/22 +103.32.164.0/22 +103.32.168.0/22 +103.32.172.0/22 +103.32.176.0/22 +103.32.180.0/22 +103.32.184.0/22 +103.32.188.0/22 +103.32.192.0/22 +103.32.196.0/22 +103.32.200.0/22 +103.32.204.0/22 +103.32.208.0/22 +103.32.212.0/22 +103.32.216.0/22 +103.32.220.0/22 +103.32.224.0/22 +103.32.228.0/22 +103.32.232.0/22 +103.32.236.0/22 +103.32.240.0/22 +103.32.244.0/22 +103.32.248.0/22 +103.32.252.0/22 +103.33.0.0/22 +103.33.4.0/22 +103.33.8.0/22 +103.33.12.0/22 +103.33.16.0/22 +103.33.20.0/22 +103.33.24.0/22 +103.33.28.0/22 +103.33.32.0/22 +103.33.36.0/22 +103.33.40.0/22 +103.33.44.0/22 +103.33.48.0/22 +103.33.52.0/22 +103.33.56.0/22 +103.33.60.0/22 +103.33.64.0/22 +103.33.68.0/22 +103.33.72.0/22 +103.33.76.0/22 +103.33.80.0/22 +103.33.84.0/22 +103.33.88.0/22 +103.33.92.0/22 +103.33.96.0/22 +103.33.100.0/22 +103.33.104.0/22 +103.33.108.0/22 +103.33.112.0/22 +103.33.116.0/22 +103.33.120.0/22 +103.33.124.0/22 +103.33.128.0/22 +103.33.132.0/22 +103.33.136.0/22 +103.33.140.0/22 +103.33.144.0/22 +103.33.148.0/22 +103.33.152.0/22 +103.33.156.0/22 +103.33.160.0/22 +103.33.164.0/22 +103.33.168.0/22 +103.33.172.0/22 +103.33.176.0/22 +103.33.180.0/22 +103.33.184.0/22 +103.33.188.0/22 +103.33.192.0/22 +103.33.196.0/22 +103.33.200.0/22 +103.33.204.0/22 +103.33.208.0/22 +103.33.212.0/22 +103.33.216.0/22 +103.33.220.0/22 +103.33.224.0/22 +103.33.228.0/22 +103.33.232.0/22 +103.33.236.0/22 +103.33.240.0/22 +103.33.244.0/22 +103.33.248.0/22 +103.33.252.0/22 +103.34.0.0/22 +103.34.4.0/22 +103.34.8.0/22 +103.34.12.0/22 +103.34.16.0/22 +103.34.20.0/22 +103.34.24.0/22 +103.34.28.0/22 +103.34.32.0/22 +103.34.36.0/22 +103.34.40.0/22 +103.34.44.0/22 +103.34.48.0/22 +103.34.52.0/22 +103.34.56.0/22 +103.34.60.0/22 +103.34.64.0/22 +103.34.68.0/22 +103.34.72.0/22 +103.34.76.0/22 +103.34.80.0/22 +103.34.84.0/22 +103.34.88.0/22 +103.34.92.0/22 +103.34.96.0/22 +103.34.100.0/22 +103.34.104.0/22 +103.34.108.0/22 +103.34.112.0/22 +103.34.116.0/22 +103.34.120.0/22 +103.34.124.0/22 +103.34.128.0/22 +103.34.132.0/22 +103.34.136.0/22 +103.34.140.0/22 +103.34.144.0/22 +103.34.148.0/22 +103.34.152.0/22 +103.34.156.0/22 +103.34.160.0/22 +103.34.164.0/22 +103.34.168.0/22 +103.34.172.0/22 +103.34.176.0/22 +103.34.180.0/22 +103.34.184.0/22 +103.34.188.0/22 +103.34.192.0/22 +103.34.196.0/22 +103.34.200.0/22 +103.34.204.0/22 +103.34.208.0/22 +103.34.212.0/22 +103.34.216.0/22 +103.34.220.0/22 +103.34.224.0/22 +103.34.228.0/22 +103.34.232.0/22 +103.34.236.0/22 +103.34.240.0/22 +103.34.244.0/22 +103.34.248.0/22 +103.34.252.0/22 +103.35.0.0/22 +103.35.4.0/22 +103.35.8.0/22 +103.35.12.0/22 +103.35.16.0/22 +103.35.20.0/22 +103.35.24.0/22 +103.35.28.0/22 +103.35.32.0/22 +103.35.36.0/22 +103.35.40.0/22 +103.35.44.0/22 +103.35.48.0/22 +103.35.104.0/22 +103.35.116.0/22 +103.35.180.0/22 +103.35.220.0/22 +103.36.28.0/22 +103.36.36.0/22 +103.36.56.0/22 +103.36.60.0/22 +103.36.64.0/22 +103.36.72.0/22 +103.36.96.0/22 +103.36.132.0/22 +103.36.136.0/22 +103.36.160.0/22 +103.36.164.0/22 +103.36.168.0/22 +103.36.172.0/22 +103.36.176.0/22 +103.36.180.0/22 +103.36.184.0/22 +103.36.188.0/22 +103.36.192.0/22 +103.36.196.0/22 +103.36.200.0/22 +103.36.204.0/22 +103.36.208.0/22 +103.36.212.0/22 +103.36.216.0/22 +103.36.220.0/22 +103.36.224.0/22 +103.36.228.0/22 +103.36.232.0/22 +103.36.236.0/22 +103.36.240.0/22 +103.36.244.0/22 +103.37.12.0/22 +103.37.16.0/22 +103.37.24.0/22 +103.37.44.0/22 +103.37.52.0/22 +103.37.56.0/22 +103.37.72.0/22 +103.37.100.0/22 +103.37.104.0/22 +103.37.136.0/22 +103.37.140.0/22 +103.37.144.0/22 +103.37.148.0/22 +103.37.152.0/22 +103.37.156.0/22 +103.37.160.0/22 +103.37.164.0/22 +103.37.172.0/22 +103.37.176.0/22 +103.37.188.0/22 +103.37.208.0/22 +103.37.212.0/22 +103.37.216.0/21 +103.37.252.0/22 +103.38.0.0/22 +103.38.32.0/22 +103.38.40.0/22 +103.38.44.0/22 +103.38.56.0/22 +103.38.76.0/22 +103.38.84.0/22 +103.38.92.0/22 +103.38.96.0/22 +103.38.116.0/22 +103.38.132.0/22 +103.38.140.0/22 +103.38.224.0/22 +103.38.228.0/22 +103.38.232.0/22 +103.39.64.0/22 +103.39.88.0/22 +103.39.100.0/22 +103.39.104.0/22 +103.39.160.0/22 +103.39.164.0/22 +103.39.168.0/22 +103.39.172.0/22 +103.39.176.0/22 +103.39.180.0/22 +103.39.184.0/22 +103.39.188.0/22 +103.39.200.0/22 +103.39.204.0/22 +103.39.208.0/22 +103.39.212.0/22 +103.39.216.0/22 +103.39.220.0/22 +103.39.224.0/22 +103.39.228.0/22 +103.39.232.0/22 +103.40.12.0/22 +103.40.16.0/22 +103.40.20.0/22 +103.40.24.0/22 +103.40.28.0/22 +103.40.32.0/22 +103.40.36.0/22 +103.40.40.0/22 +103.40.44.0/22 +103.40.88.0/22 +103.40.158.0/23 +103.40.174.0/23 +103.40.192.0/22 +103.40.212.0/22 +103.40.220.0/22 +103.40.228.0/22 +103.40.232.0/22 +103.40.236.0/22 +103.40.240.0/22 +103.40.244.0/22 +103.40.248.0/22 +103.40.252.0/22 +103.41.0.0/22 +103.41.16.0/22 +103.41.52.0/22 +103.41.116.0/22 +103.41.140.0/22 +103.41.148.0/22 +103.41.152.0/22 +103.41.160.0/22 +103.41.164.0/22 +103.41.220.0/22 +103.41.224.0/22 +103.41.228.0/22 +103.41.232.0/22 +103.42.8.0/22 +103.42.24.0/22 +103.42.28.0/22 +103.42.32.0/22 +103.42.64.0/22 +103.42.68.0/22 +103.42.76.0/22 +103.42.104.0/22 +103.42.180.0/22 +103.42.232.0/22 +103.43.16.0/22 +103.43.84.0/22 +103.43.96.0/22 +103.43.100.0/22 +103.43.104.0/22 +103.43.124.0/22 +103.43.132.0/22 +103.43.184.0/22 +103.43.192.0/22 +103.43.196.0/22 +103.43.208.0/22 +103.43.220.0/22 +103.43.224.0/22 +103.43.240.0/22 +103.44.56.0/22 +103.44.80.0/22 +103.44.120.0/22 +103.44.124.0/22 +103.44.132.0/22 +103.44.144.0/22 +103.44.168.0/22 +103.44.176.0/22 +103.44.180.0/22 +103.44.184.0/22 +103.44.188.0/22 +103.44.192.0/22 +103.44.196.0/22 +103.44.200.0/22 +103.44.204.0/22 +103.44.224.0/22 +103.44.236.0/22 +103.44.240.0/22 +103.44.244.0/22 +103.44.248.0/22 +103.44.252.0/22 +103.45.0.0/22 +103.45.4.0/22 +103.45.8.0/22 +103.45.12.0/22 +103.45.16.0/22 +103.45.20.0/22 +103.45.24.0/22 +103.45.28.0/22 +103.45.32.0/22 +103.45.36.0/22 +103.45.40.0/22 +103.45.44.0/22 +103.45.48.0/22 +103.45.52.0/22 +103.45.56.0/22 +103.45.60.0/22 +103.45.72.0/22 +103.45.76.0/22 +103.45.80.0/22 +103.45.84.0/22 +103.45.88.0/22 +103.45.92.0/22 +103.45.96.0/22 +103.45.100.0/22 +103.45.104.0/22 +103.45.108.0/22 +103.45.112.0/22 +103.45.116.0/22 +103.45.120.0/22 +103.45.124.0/22 +103.45.128.0/22 +103.45.132.0/22 +103.45.136.0/22 +103.45.140.0/22 +103.45.144.0/22 +103.45.148.0/22 +103.45.152.0/22 +103.45.156.0/22 +103.45.160.0/22 +103.45.164.0/22 +103.45.168.0/22 +103.45.172.0/22 +103.45.176.0/22 +103.45.180.0/22 +103.45.184.0/22 +103.45.188.0/22 +103.45.192.0/22 +103.45.196.0/22 +103.45.200.0/22 +103.45.204.0/22 +103.45.208.0/22 +103.45.212.0/22 +103.45.216.0/22 +103.45.220.0/22 +103.45.224.0/22 +103.45.248.0/22 +103.46.0.0/22 +103.46.12.0/22 +103.46.16.0/22 +103.46.20.0/22 +103.46.24.0/22 +103.46.28.0/22 +103.46.32.0/22 +103.46.36.0/22 +103.46.40.0/22 +103.46.44.0/22 +103.46.48.0/22 +103.46.52.0/22 +103.46.56.0/22 +103.46.60.0/22 +103.46.64.0/22 +103.46.68.0/22 +103.46.72.0/22 +103.46.76.0/22 +103.46.80.0/22 +103.46.84.0/22 +103.46.88.0/22 +103.46.92.0/22 +103.46.96.0/22 +103.46.100.0/22 +103.46.104.0/22 +103.46.108.0/22 +103.46.112.0/22 +103.46.116.0/22 +103.46.120.0/22 +103.46.124.0/22 +103.46.128.0/22 +103.46.132.0/22 +103.46.136.0/22 +103.46.152.0/22 +103.46.156.0/22 +103.46.160.0/22 +103.46.164.0/22 +103.46.168.0/22 +103.46.172.0/22 +103.46.176.0/22 +103.46.180.0/22 +103.46.244.0/22 +103.46.248.0/22 +103.47.4.0/22 +103.47.20.0/22 +103.47.36.0/22 +103.47.40.0/22 +103.47.48.0/22 +103.47.80.0/22 +103.47.96.0/22 +103.47.108.0/22 +103.47.116.0/22 +103.47.120.0/22 +103.47.136.0/22 +103.47.140.0/22 +103.47.212.0/22 +103.48.52.0/22 +103.48.92.0/22 +103.48.148.0/22 +103.48.152.0/22 +103.48.156.0/22 +103.48.202.0/23 +103.48.216.0/22 +103.48.220.0/22 +103.48.224.0/22 +103.48.228.0/22 +103.48.232.0/22 +103.48.236.0/22 +103.48.240.0/22 +103.48.244.0/22 +103.49.12.0/22 +103.49.20.0/22 +103.49.72.0/22 +103.49.76.0/22 +103.49.96.0/22 +103.49.108.0/22 +103.49.176.0/22 +103.49.180.0/22 +103.49.196.0/22 +103.50.36.0/22 +103.50.44.0/22 +103.50.48.0/22 +103.50.52.0/22 +103.50.56.0/22 +103.50.60.0/22 +103.50.64.0/22 +103.50.68.0/22 +103.50.72.0/22 +103.50.108.0/22 +103.50.112.0/22 +103.50.116.0/22 +103.50.120.0/22 +103.50.124.0/22 +103.50.132.0/22 +103.50.136.0/22 +103.50.140.0/22 +103.50.172.0/22 +103.50.176.0/22 +103.50.180.0/22 +103.50.184.0/22 +103.50.188.0/22 +103.50.192.0/22 +103.50.196.0/22 +103.50.200.0/22 +103.50.220.0/22 +103.50.224.0/22 +103.50.228.0/22 +103.50.232.0/22 +103.50.236.0/22 +103.50.240.0/22 +103.50.244.0/22 +103.50.248.0/22 +103.51.62.0/23 +103.52.40.0/22 +103.52.72.0/22 +103.52.76.0/22 +103.52.80.0/22 +103.52.84.0/22 +103.52.96.0/22 +103.52.100.0/22 +103.52.104.0/22 +103.52.160.0/22 +103.52.164.0/22 +103.52.172.0/22 +103.52.176.0/22 +103.52.184.0/22 +103.52.196.0/22 +103.53.64.0/22 +103.53.68.0/22 +103.53.92.0/22 +103.53.100.0/22 +103.53.124.0/22 +103.53.128.0/22 +103.53.132.0/22 +103.53.136.0/22 +103.53.140.0/22 +103.53.144.0/22 +103.53.180.0/22 +103.53.204.0/22 +103.53.208.0/22 +103.53.212.0/22 +103.53.236.0/22 +103.53.248.0/22 +103.54.8.0/22 +103.54.48.0/22 +103.54.160.0/22 +103.54.164.0/22 +103.54.212.0/22 +103.54.240.0/22 +103.55.80.0/22 +103.55.120.0/22 +103.55.152.0/22 +103.55.172.0/22 +103.55.204.0/22 +103.55.208.0/22 +103.55.228.0/22 +103.55.236.0/22 +103.56.8.0/22 +103.56.16.0/22 +103.56.20.0/22 +103.56.32.0/22 +103.56.56.0/22 +103.56.60.0/22 +103.56.72.0/22 +103.56.76.0/22 +103.56.94.0/23 +103.56.100.0/22 +103.56.104.0/22 +103.56.140.0/22 +103.56.152.0/22 +103.56.184.0/22 +103.56.200.0/22 +103.57.12.0/22 +103.57.52.0/22 +103.57.56.0/22 +103.57.76.0/22 +103.57.136.0/22 +103.57.196.0/22 +103.58.24.0/22 +103.59.76.0/22 +103.59.100.0/22 +103.59.112.0/22 +103.59.116.0/22 +103.59.120.0/22 +103.59.124.0/22 +103.59.128.0/22 +103.59.148.0/22 +103.59.164.0/22 +103.59.168.0/23 +103.60.32.0/22 +103.60.44.0/22 +103.60.164.0/22 +103.60.228.0/22 +103.60.236.0/22 +103.61.60.0/22 +103.61.104.0/22 +103.61.140.0/22 +103.61.152.0/22 +103.61.156.0/22 +103.61.160.0/22 +103.61.172.0/22 +103.61.176.0/22 +103.61.188.0/22 +103.62.24.0/22 +103.62.52.0/22 +103.62.72.0/22 +103.62.76.0/22 +103.62.80.0/22 +103.62.84.0/22 +103.62.88.0/22 +103.62.96.0/22 +103.62.100.0/22 +103.62.104.0/22 +103.62.108.0/22 +103.62.112.0/22 +103.62.116.0/22 +103.62.120.0/22 +103.62.124.0/22 +103.62.128.0/22 +103.62.132.0/22 +103.62.156.0/22 +103.62.160.0/22 +103.62.164.0/22 +103.62.168.0/22 +103.62.172.0/22 +103.62.176.0/22 +103.62.180.0/22 +103.62.184.0/22 +103.62.188.0/22 +103.62.192.0/22 +103.62.204.0/22 +103.62.208.0/22 +103.62.212.0/22 +103.62.216.0/22 +103.62.220.0/22 +103.62.224.0/22 +103.63.32.0/22 +103.63.36.0/22 +103.63.40.0/22 +103.63.44.0/22 +103.63.48.0/22 +103.63.52.0/22 +103.63.56.0/22 +103.63.60.0/22 +103.63.64.0/22 +103.63.68.0/22 +103.63.72.0/22 +103.63.76.0/22 +103.63.80.0/22 +103.63.84.0/22 +103.63.88.0/22 +103.63.140.0/22 +103.63.144.0/22 +103.63.152.0/22 +103.63.160.0/22 +103.63.164.0/22 +103.63.168.0/22 +103.63.172.0/22 +103.63.176.0/22 +103.63.180.0/22 +103.63.184.0/22 +103.63.192.0/22 +103.63.196.0/22 +103.63.200.0/22 +103.63.204.0/22 +103.63.208.0/22 +103.63.240.0/22 +103.63.244.0/22 +103.63.248.0/22 +103.63.252.0/22 +103.64.0.0/22 +103.64.4.0/22 +103.64.24.0/22 +103.64.28.0/22 +103.64.32.0/22 +103.64.36.0/22 +103.64.40.0/22 +103.64.44.0/22 +103.64.48.0/22 +103.64.52.0/22 +103.64.56.0/22 +103.64.60.0/22 +103.64.64.0/22 +103.64.68.0/22 +103.64.72.0/22 +103.64.76.0/22 +103.64.80.0/22 +103.64.84.0/22 +103.64.88.0/22 +103.64.92.0/22 +103.64.96.0/22 +103.64.100.0/22 +103.64.104.0/22 +103.64.108.0/22 +103.64.112.0/22 +103.64.116.0/22 +103.64.120.0/22 +103.64.124.0/22 +103.64.140.0/22 +103.64.144.0/22 +103.64.152.0/22 +103.64.156.0/22 +103.64.160.0/22 +103.64.164.0/22 +103.64.168.0/22 +103.64.172.0/22 +103.64.176.0/22 +103.64.180.0/22 +103.64.184.0/22 +103.64.188.0/22 +103.64.192.0/22 +103.64.196.0/22 +103.64.200.0/22 +103.64.204.0/22 +103.64.208.0/22 +103.64.212.0/22 +103.64.216.0/22 +103.64.220.0/22 +103.64.224.0/22 +103.64.228.0/22 +103.64.232.0/22 +103.64.236.0/22 +103.64.240.0/22 +103.64.244.0/22 +103.64.248.0/22 +103.64.252.0/22 +103.65.0.0/22 +103.65.4.0/22 +103.65.8.0/22 +103.65.12.0/22 +103.65.16.0/22 +103.65.36.0/22 +103.65.40.0/22 +103.65.48.0/22 +103.65.52.0/22 +103.65.56.0/22 +103.65.60.0/22 +103.65.64.0/22 +103.65.68.0/22 +103.65.72.0/22 +103.65.76.0/22 +103.65.80.0/22 +103.65.84.0/22 +103.65.88.0/22 +103.65.92.0/22 +103.65.100.0/22 +103.65.104.0/22 +103.65.108.0/22 +103.65.112.0/22 +103.65.144.0/22 +103.65.148.0/22 +103.65.152.0/22 +103.65.156.0/22 +103.65.160.0/22 +103.65.164.0/22 +103.65.168.0/22 +103.65.172.0/22 +103.65.204.0/23 +103.65.206.0/23 +103.65.224.0/23 +103.66.32.0/22 +103.66.40.0/22 +103.66.92.0/22 +103.66.108.0/22 +103.66.200.0/22 +103.66.216.0/22 +103.66.240.0/22 +103.66.244.0/22 +103.66.248.0/22 +103.66.252.0/22 +103.67.0.0/22 +103.67.4.0/22 +103.67.8.0/22 +103.67.52.0/23 +103.67.100.0/22 +103.67.104.0/22 +103.67.108.0/22 +103.67.112.0/22 +103.67.116.0/22 +103.67.120.0/22 +103.67.124.0/22 +103.67.128.0/22 +103.67.132.0/22 +103.67.136.0/22 +103.67.140.0/22 +103.67.144.0/22 +103.67.148.0/22 +103.67.172.0/22 +103.67.192.0/22 +103.67.212.0/22 +103.67.252.0/22 +103.68.64.0/22 +103.68.88.0/22 +103.68.100.0/22 +103.68.128.0/22 +103.68.192.0/22 +103.69.16.0/22 +103.69.62.0/23 +103.69.116.0/22 +103.70.8.0/22 +103.70.14.0/23 +103.70.148.0/22 +103.70.220.0/22 +103.70.224.0/22 +103.70.236.0/22 +103.70.252.0/22 +103.71.0.0/22 +103.71.48.0/22 +103.71.68.0/22 +103.71.72.0/22 +103.71.80.0/22 +103.71.84.0/22 +103.71.88.0/22 +103.71.120.0/22 +103.71.124.0/22 +103.71.128.0/22 +103.71.144.0/22 +103.71.196.0/22 +103.71.200.0/22 +103.71.232.0/22 +103.72.12.0/22 +103.72.16.0/22 +103.72.20.0/22 +103.72.24.0/22 +103.72.28.0/22 +103.72.32.0/22 +103.72.36.0/22 +103.72.40.0/22 +103.72.44.0/22 +103.72.48.0/22 +103.72.52.0/22 +103.72.112.0/22 +103.72.116.0/22 +103.72.120.0/22 +103.72.124.0/22 +103.72.128.0/22 +103.72.132.0/22 +103.72.148.0/22 +103.72.172.0/22 +103.72.180.0/22 +103.72.224.0/22 +103.72.228.0/22 +103.72.232.0/22 +103.72.236.0/22 +103.72.240.0/22 +103.72.244.0/22 +103.72.248.0/22 +103.72.252.0/22 +103.73.0.0/22 +103.73.4.0/22 +103.73.8.0/22 +103.73.12.0/22 +103.73.16.0/22 +103.73.20.0/22 +103.73.24.0/22 +103.73.28.0/22 +103.73.48.0/22 +103.73.116.0/22 +103.73.120.0/22 +103.73.128.0/22 +103.73.132.0/22 +103.73.136.0/22 +103.73.140.0/22 +103.73.144.0/22 +103.73.168.0/22 +103.73.176.0/22 +103.73.204.0/22 +103.73.208.0/22 +103.73.240.0/22 +103.73.244.0/22 +103.73.248.0/22 +103.74.24.0/22 +103.74.28.0/22 +103.74.32.0/22 +103.74.36.0/22 +103.74.40.0/22 +103.74.44.0/22 +103.74.48.0/22 +103.74.56.0/22 +103.74.60.0/22 +103.74.80.0/22 +103.74.124.0/22 +103.74.148.0/22 +103.74.152.0/22 +103.74.156.0/22 +103.74.204.0/22 +103.74.232.0/22 +103.75.82.0/23 +103.75.88.0/22 +103.75.92.0/22 +103.75.104.0/22 +103.75.108.0/22 +103.75.112.0/22 +103.75.120.0/22 +103.75.128.0/22 +103.75.144.0/22 +103.75.152.0/22 +103.75.236.0/24 +103.76.60.0/22 +103.76.64.0/22 +103.76.68.0/22 +103.76.72.0/22 +103.76.92.0/22 +103.76.216.0/22 +103.76.220.0/22 +103.76.224.0/22 +103.77.28.0/22 +103.77.52.0/22 +103.77.56.0/22 +103.77.72.0/22 +103.77.88.0/22 +103.77.92.0/22 +103.77.132.0/22 +103.77.148.0/22 +103.77.220.0/22 +103.78.56.0/22 +103.78.60.0/22 +103.78.64.0/22 +103.78.68.0/22 +103.78.124.0/22 +103.78.172.0/22 +103.78.176.0/22 +103.78.196.0/22 +103.78.228.0/22 +103.79.24.0/22 +103.79.28.0/22 +103.79.36.0/22 +103.79.40.0/22 +103.79.44.0/22 +103.79.56.0/22 +103.79.60.0/22 +103.79.64.0/22 +103.79.68.0/22 +103.79.80.0/22 +103.79.84.0/22 +103.79.136.0/22 +103.79.188.0/22 +103.79.192.0/22 +103.79.196.0/22 +103.79.200.0/22 +103.79.204.0/22 +103.79.208.0/22 +103.79.212.0/22 +103.79.228.0/23 +103.80.28.0/22 +103.80.44.0/22 +103.80.72.0/22 +103.80.176.0/22 +103.80.180.0/22 +103.80.184.0/22 +103.80.192.0/22 +103.80.200.0/22 +103.80.232.0/22 +103.81.4.0/22 +103.81.8.0/22 +103.81.16.0/22 +103.81.20.0/22 +103.81.44.0/22 +103.81.48.0/22 +103.81.96.0/22 +103.81.120.0/22 +103.81.148.0/22 +103.81.164.0/22 +103.81.168.0/22 +103.81.183.0/24 +103.81.184.0/22 +103.81.200.0/22 +103.81.232.0/22 +103.82.52.0/22 +103.82.60.0/22 +103.82.68.0/22 +103.82.84.0/22 +103.82.104.0/22 +103.82.224.0/22 +103.82.236.0/22 +103.83.44.0/22 +103.83.52.0/22 +103.83.60.0/22 +103.83.64.0/22 +103.83.72.0/22 +103.83.112.0/22 +103.83.120.0/22 +103.83.180.0/22 +103.84.0.0/22 +103.84.12.0/22 +103.84.16.0/22 +103.84.20.0/22 +103.84.24.0/22 +103.84.28.0/22 +103.84.48.0/22 +103.84.64.0/22 +103.84.72.0/22 +103.84.136.0/22 +103.84.170.0/23 +103.85.20.0/22 +103.85.24.0/22 +103.85.44.0/22 +103.85.48.0/22 +103.85.84.0/22 +103.85.136.0/22 +103.85.144.0/22 +103.85.164.0/22 +103.85.168.0/22 +103.85.172.0/22 +103.85.176.0/22 +103.85.186.0/23 +103.85.224.0/22 +103.86.28.0/22 +103.86.32.0/22 +103.86.60.0/22 +103.86.80.0/22 +103.86.84.0/22 +103.86.204.0/22 +103.86.208.0/22 +103.86.212.0/22 +103.86.216.0/22 +103.86.220.0/22 +103.86.224.0/22 +103.86.228.0/22 +103.86.232.0/22 +103.86.236.0/22 +103.86.240.0/22 +103.86.244.0/22 +103.86.248.0/22 +103.86.252.0/22 +103.87.0.0/22 +103.87.4.0/22 +103.87.20.0/22 +103.87.32.0/22 +103.87.96.0/22 +103.87.132.0/22 +103.87.180.0/22 +103.87.224.0/22 +103.88.4.0/22 +103.88.8.0/22 +103.88.12.0/22 +103.88.16.0/22 +103.88.20.0/22 +103.88.32.0/22 +103.88.36.0/22 +103.88.60.0/22 +103.88.64.0/22 +103.88.72.0/22 +103.88.96.0/22 +103.88.164.0/22 +103.88.212.0/22 +103.89.28.0/22 +103.89.96.0/22 +103.89.100.0/22 +103.89.104.0/22 +103.89.108.0/22 +103.89.112.0/22 +103.89.116.0/22 +103.89.148.0/22 +103.89.172.0/22 +103.89.184.0/22 +103.89.188.0/22 +103.89.192.0/22 +103.89.196.0/22 +103.89.200.0/22 +103.89.204.0/22 +103.89.208.0/22 +103.89.212.0/22 +103.89.216.0/22 +103.89.220.0/22 +103.89.224.0/22 +103.89.228.0/22 +103.90.51.0/24 +103.90.52.0/22 +103.90.56.0/23 +103.90.92.0/22 +103.90.100.0/22 +103.90.104.0/22 +103.90.108.0/22 +103.90.112.0/22 +103.90.116.0/22 +103.90.120.0/22 +103.90.124.0/22 +103.90.128.0/22 +103.90.132.0/22 +103.90.152.0/22 +103.90.168.0/22 +103.90.173.0/24 +103.90.176.0/22 +103.90.188.0/22 +103.90.192.0/22 +103.91.36.0/22 +103.91.40.0/22 +103.91.108.0/22 +103.91.112.0/23 +103.91.138.0/23 +103.91.152.0/22 +103.91.176.0/22 +103.91.200.0/22 +103.91.208.0/22 +103.91.212.0/22 +103.91.236.0/22 +103.91.252.0/22 +103.92.0.0/22 +103.92.4.0/22 +103.92.8.0/22 +103.92.12.0/22 +103.92.48.0/22 +103.92.52.0/22 +103.92.56.0/22 +103.92.60.0/22 +103.92.64.0/22 +103.92.68.0/22 +103.92.72.0/22 +103.92.76.0/22 +103.92.80.0/22 +103.92.86.0/24 +103.92.88.0/22 +103.92.108.0/22 +103.92.124.0/22 +103.92.132.0/22 +103.92.156.0/22 +103.92.164.0/22 +103.92.168.0/22 +103.92.172.0/22 +103.92.176.0/22 +103.92.180.0/22 +103.92.184.0/22 +103.92.188.0/22 +103.92.192.0/22 +103.92.236.0/22 +103.92.240.0/22 +103.92.244.0/22 +103.92.248.0/22 +103.92.252.0/22 +103.93.0.0/22 +103.93.4.0/22 +103.93.28.0/22 +103.93.84.0/22 +103.93.142.0/23 +103.93.152.0/22 +103.93.180.0/22 +103.93.204.0/22 +103.94.12.0/22 +103.94.20.0/22 +103.94.28.0/22 +103.94.32.0/22 +103.94.36.0/22 +103.94.40.0/22 +103.94.44.0/22 +103.94.72.0/22 +103.94.88.0/22 +103.94.116.0/22 +103.94.160.0/22 +103.94.200.0/22 +103.95.52.0/22 +103.95.68.0/22 +103.95.88.0/22 +103.95.92.0/22 +103.95.128.0/22 +103.95.136.0/22 +103.95.140.0/22 +103.95.144.0/22 +103.95.152.0/22 +103.95.216.0/22 +103.95.220.0/22 +103.95.224.0/22 +103.95.236.0/22 +103.95.240.0/22 +103.95.244.0/22 +103.95.248.0/22 +103.95.252.0/22 +103.96.0.0/22 +103.96.8.0/22 +103.96.124.0/22 +103.96.136.0/22 +103.96.140.0/24 +103.96.152.0/22 +103.96.156.0/22 +103.96.160.0/22 +103.96.164.0/22 +103.96.168.0/22 +103.96.172.0/22 +103.96.176.0/22 +103.96.180.0/22 +103.96.184.0/22 +103.96.188.0/22 +103.96.192.0/22 +103.96.196.0/22 +103.96.200.0/22 +103.96.204.0/22 +103.96.208.0/22 +103.96.212.0/22 +103.96.216.0/22 +103.96.224.0/23 +103.97.8.0/22 +103.97.12.0/22 +103.97.16.0/20 +103.97.32.0/22 +103.97.36.0/22 +103.97.40.0/22 +103.97.56.0/22 +103.97.60.0/22 +103.97.64.0/22 +103.97.68.0/22 +103.97.72.0/22 +103.97.80.0/22 +103.97.112.0/22 +103.97.116.0/22 +103.97.128.0/22 +103.97.144.0/22 +103.97.148.0/22 +103.97.188.0/22 +103.97.192.0/22 +103.97.228.0/23 +103.98.0.0/23 +103.98.28.0/23 +103.98.40.0/22 +103.98.44.0/22 +103.98.48.0/22 +103.98.56.0/22 +103.98.80.0/22 +103.98.88.0/22 +103.98.92.0/22 +103.98.96.0/22 +103.98.100.0/22 +103.98.124.0/22 +103.98.136.0/22 +103.98.140.0/22 +103.98.144.0/22 +103.98.164.0/22 +103.98.168.0/22 +103.98.180.0/22 +103.98.196.0/22 +103.98.216.0/22 +103.98.220.0/22 +103.98.224.0/22 +103.98.228.0/22 +103.98.232.0/22 +103.98.240.0/22 +103.98.244.0/22 +103.98.248.0/22 +103.98.252.0/22 +103.99.40.0/23 +103.99.52.0/22 +103.99.56.0/22 +103.99.60.0/22 +103.99.76.0/22 +103.99.104.0/22 +103.99.116.0/22 +103.99.120.0/22 +103.99.152.0/22 +103.99.220.0/22 +103.99.232.0/22 +103.99.236.0/22 +103.100.0.0/22 +103.100.32.0/22 +103.100.40.0/22 +103.100.48.0/22 +103.100.52.0/22 +103.100.56.0/22 +103.100.60.0/22 +103.100.64.0/22 +103.100.68.0/22 +103.100.88.0/22 +103.100.116.0/22 +103.100.144.0/22 +103.100.236.0/22 +103.100.240.0/22 +103.100.248.0/22 +103.100.252.0/22 +103.101.8.0/22 +103.101.12.0/22 +103.101.60.0/22 +103.101.120.0/22 +103.101.124.0/22 +103.101.144.0/22 +103.101.148.0/22 +103.101.180.0/22 +103.101.184.0/22 +103.102.76.0/22 +103.102.80.0/22 +103.102.168.0/22 +103.102.172.0/22 +103.102.180.0/22 +103.102.184.0/22 +103.102.188.0/22 +103.102.192.0/22 +103.102.196.0/22 +103.102.200.0/22 +103.102.208.0/22 +103.102.212.0/22 +103.103.12.0/22 +103.103.16.0/22 +103.103.36.0/22 +103.103.72.0/22 +103.103.188.0/22 +103.103.200.0/22 +103.103.204.0/22 +103.103.220.0/22 +103.103.224.0/21 +103.103.232.0/22 +103.103.248.0/21 +103.104.0.0/21 +103.104.36.0/22 +103.104.40.0/22 +103.104.64.0/22 +103.104.104.0/22 +103.104.152.0/22 +103.104.188.0/22 +103.104.198.0/23 +103.104.252.0/22 +103.105.0.0/22 +103.105.4.0/22 +103.105.12.0/22 +103.105.16.0/22 +103.105.23.0/24 +103.105.60.0/22 +103.105.116.0/22 +103.105.132.0/22 +103.105.180.0/22 +103.105.184.0/22 +103.105.200.0/22 +103.105.204.0/22 +103.105.220.0/22 +103.106.36.0/22 +103.106.40.0/22 +103.106.44.0/22 +103.106.60.0/22 +103.106.68.0/22 +103.106.96.0/22 +103.106.120.0/22 +103.106.128.0/22 +103.106.132.0/22 +103.106.160.0/22 +103.106.196.0/22 +103.106.202.0/23 +103.106.212.0/22 +103.106.252.0/22 +103.107.0.0/22 +103.107.28.0/22 +103.107.32.0/22 +103.107.44.0/22 +103.107.72.0/22 +103.107.108.0/22 +103.107.164.0/22 +103.107.168.0/22 +103.107.188.0/22 +103.107.192.0/22 +103.107.208.0/22 +103.107.212.0/22 +103.107.216.0/22 +103.107.220.0/22 +103.108.52.0/22 +103.108.160.0/22 +103.108.164.0/22 +103.108.192.0/22 +103.108.196.0/22 +103.108.208.0/22 +103.108.212.0/22 +103.108.224.0/22 +103.108.244.0/22 +103.109.20.0/22 +103.109.48.0/22 +103.109.88.0/22 +103.109.106.0/23 +103.109.248.0/22 +103.110.92.0/22 +103.110.116.0/22 +103.110.132.0/22 +103.110.136.0/22 +103.110.152.0/22 +103.110.156.0/22 +103.110.188.0/22 +103.110.204.0/22 +103.111.64.0/22 +103.111.172.0/22 +103.111.252.0/22 +103.112.28.0/22 +103.112.68.0/22 +103.112.72.0/22 +103.112.88.0/22 +103.112.92.0/22 +103.112.108.0/22 +103.112.112.0/22 +103.112.116.0/22 +103.112.140.0/22 +103.112.172.0/22 +103.112.184.0/22 +103.113.4.0/22 +103.113.92.0/22 +103.113.144.0/22 +103.113.220.0/22 +103.113.232.0/22 +103.113.236.0/22 +103.114.4.0/22 +103.114.28.0/22 +103.114.68.0/22 +103.114.72.0/22 +103.114.100.0/22 +103.114.132.0/22 +103.114.148.0/22 +103.114.156.0/22 +103.114.176.0/22 +103.114.212.0/22 +103.114.236.0/22 +103.114.240.0/22 +103.115.16.0/22 +103.115.40.0/22 +103.115.44.0/22 +103.115.48.0/22 +103.115.52.0/22 +103.115.56.0/22 +103.115.60.0/22 +103.115.64.0/22 +103.115.68.0/22 +103.115.92.0/22 +103.115.120.0/22 +103.115.148.0/22 +103.115.248.0/22 +103.116.40.0/22 +103.116.64.0/22 +103.116.72.0/22 +103.116.76.0/22 +103.116.92.0/22 +103.116.120.0/22 +103.116.128.0/22 +103.116.138.0/23 +103.116.148.0/22 +103.116.184.0/22 +103.116.206.0/23 +103.116.220.0/22 +103.116.224.0/22 +103.116.228.0/22 +103.117.16.0/22 +103.117.72.0/22 +103.117.88.0/22 +103.117.136.0/22 +103.117.188.0/22 +103.117.220.0/22 +103.118.52.0/22 +103.118.56.0/22 +103.118.60.0/22 +103.118.64.0/22 +103.118.68.0/22 +103.118.72.0/22 +103.118.88.0/22 +103.118.173.0/24 +103.118.192.0/22 +103.118.196.0/22 +103.118.200.0/22 +103.118.204.0/22 +103.118.208.0/22 +103.118.212.0/22 +103.118.216.0/22 +103.118.220.0/22 +103.118.240.0/22 +103.118.244.0/22 +103.118.248.0/22 +103.118.252.0/22 +103.119.0.0/22 +103.119.12.0/22 +103.119.16.0/22 +103.119.28.0/22 +103.119.104.0/22 +103.119.115.0/24 +103.119.156.0/22 +103.119.180.0/22 +103.119.200.0/22 +103.119.224.0/22 +103.120.52.0/22 +103.120.72.0/22 +103.120.88.0/22 +103.120.96.0/22 +103.120.100.0/22 +103.120.140.0/22 +103.120.196.0/22 +103.120.224.0/22 +103.121.52.0/22 +103.121.92.0/22 +103.121.160.0/22 +103.121.164.0/22 +103.121.250.0/24 +103.121.252.0/22 +103.122.48.0/22 +103.122.176.0/22 +103.122.192.0/22 +103.122.240.0/22 +103.123.4.0/22 +103.123.56.0/22 +103.123.88.0/22 +103.123.92.0/22 +103.123.116.0/22 +103.123.176.0/22 +103.123.200.0/22 +103.123.204.0/22 +103.123.208.0/22 +103.123.212.0/22 +103.124.24.0/22 +103.124.48.0/22 +103.124.64.0/22 +103.124.212.0/22 +103.124.216.0/22 +103.125.20.0/22 +103.125.44.0/22 +103.125.132.0/22 +103.125.164.0/22 +103.125.196.0/22 +103.125.236.0/22 +103.125.248.0/22 +103.126.0.0/22 +103.126.16.0/22 +103.126.44.0/22 +103.126.100.0/22 +103.126.124.0/22 +103.126.128.0/22 +103.126.132.0/22 +103.126.208.0/22 +103.130.132.0/22 +103.130.160.0/22 +103.130.228.0/22 +103.131.20.0/22 +103.131.36.0/22 +103.131.138.0/23 +103.131.152.0/22 +103.131.168.0/22 +103.131.176.0/22 +103.131.224.0/22 +103.131.228.0/22 +103.131.240.0/22 +103.132.22.0/23 +103.132.60.0/22 +103.132.64.0/20 +103.132.80.0/22 +103.132.104.0/21 +103.132.112.0/21 +103.132.120.0/22 +103.132.160.0/22 +103.132.164.0/22 +103.132.188.0/22 +103.132.208.0/22 +103.132.212.0/22 +103.132.234.0/23 +103.133.12.0/22 +103.133.40.0/22 +103.133.128.0/22 +103.133.136.0/22 +103.133.176.0/22 +103.133.232.0/22 +103.134.196.0/22 +103.134.232.0/23 +103.135.80.0/22 +103.135.124.0/22 +103.135.148.0/22 +103.135.156.0/22 +103.135.160.0/22 +103.135.164.0/22 +103.135.176.0/22 +103.135.184.0/22 +103.135.192.0/22 +103.135.196.0/22 +103.135.236.0/22 +103.136.128.0/22 +103.136.232.0/22 +103.137.58.0/23 +103.137.60.0/24 +103.137.76.0/22 +103.137.136.0/23 +103.137.180.0/22 +103.137.236.0/22 +103.138.2.0/23 +103.138.12.0/23 +103.138.80.0/22 +103.138.134.0/23 +103.138.156.0/23 +103.138.208.0/23 +103.138.220.0/23 +103.138.248.0/23 +103.139.0.0/23 +103.139.2.0/23 +103.139.22.0/23 +103.139.92.0/23 +103.139.113.0/24 +103.139.134.0/23 +103.139.136.0/23 +103.139.172.0/23 +103.139.204.0/23 +103.139.212.0/23 +103.140.8.0/23 +103.140.14.0/23 +103.140.126.0/23 +103.140.140.0/23 +103.140.144.0/23 +103.140.152.0/23 +103.140.192.0/23 +103.140.228.0/23 +103.141.10.0/23 +103.141.58.0/23 +103.141.128.0/23 +103.141.186.0/23 +103.141.242.0/23 +103.142.28.0/23 +103.142.58.0/23 +103.142.82.0/23 +103.142.96.0/23 +103.142.102.0/23 +103.142.122.0/23 +103.142.128.0/23 +103.142.140.0/23 +103.142.154.0/23 +103.142.156.0/23 +103.142.172.0/23 +103.142.180.0/23 +103.142.186.0/23 +103.142.190.0/23 +103.142.220.0/23 +103.142.230.0/24 +103.142.234.0/23 +103.142.238.0/23 +103.142.248.0/23 +103.143.16.0/23 +103.143.18.0/23 +103.143.74.0/23 +103.143.120.0/23 +103.143.124.0/23 +103.143.132.0/23 +103.143.134.0/23 +103.143.174.0/23 +103.143.228.0/23 +103.144.40.0/23 +103.144.52.0/23 +103.144.66.0/23 +103.144.70.0/23 +103.144.72.0/23 +103.144.136.0/23 +103.144.148.0/23 +103.144.158.0/23 +103.144.240.0/23 +103.145.38.0/23 +103.145.42.0/23 +103.145.60.0/23 +103.145.72.0/23 +103.145.86.0/23 +103.145.92.0/23 +103.145.94.0/23 +103.145.98.0/23 +103.145.106.0/23 +103.145.188.0/23 +103.145.190.0/23 +103.146.72.0/23 +103.146.90.0/23 +103.146.124.0/23 +103.146.126.0/23 +103.146.138.0/23 +103.146.230.0/23 +103.146.236.0/23 +103.146.252.0/23 +103.147.12.0/23 +103.147.124.0/23 +103.147.198.0/23 +103.147.206.0/23 +103.148.174.0/23 +103.149.6.0/23 +103.149.17.0/24 +103.149.44.0/23 +103.149.110.0/23 +103.149.132.0/23 +103.149.144.0/23 +103.149.156.0/23 +103.149.181.0/24 +103.149.210.0/23 +103.149.214.0/23 +103.149.220.0/23 +103.149.242.0/23 +103.149.244.0/23 +103.149.246.0/23 +103.149.248.0/23 +103.150.10.0/23 +103.150.24.0/23 +103.150.66.0/23 +103.150.72.0/23 +103.150.122.0/23 +103.150.126.0/23 +103.150.128.0/23 +103.150.130.0/23 +103.150.146.0/23 +103.150.164.0/23 +103.150.172.0/23 +103.150.180.0/23 +103.150.200.0/23 +103.150.210.0/23 +103.150.214.0/23 +103.150.216.0/23 +103.150.244.0/23 +103.151.4.0/23 +103.151.44.0/23 +103.151.138.0/23 +103.151.142.0/23 +103.151.148.0/23 +103.151.150.0/23 +103.151.158.0/23 +103.151.206.0/23 +103.151.216.0/23 +103.151.228.0/23 +103.152.14.0/23 +103.152.24.0/23 +103.152.28.0/23 +103.152.30.0/23 +103.152.56.0/23 +103.152.76.0/23 +103.152.98.0/23 +103.152.112.0/23 +103.152.120.0/23 +103.152.122.0/23 +103.152.152.0/23 +103.152.168.0/23 +103.152.170.0/23 +103.152.186.0/23 +103.152.190.0/23 +103.152.192.0/23 +103.152.200.0/23 +103.152.208.0/23 +103.152.224.0/23 +103.152.226.0/23 +103.152.246.0/23 +103.152.250.0/23 +103.153.4.0/23 +103.153.36.0/23 +103.153.100.0/23 +103.153.114.0/23 +103.153.122.0/23 +103.153.128.0/23 +103.153.132.0/23 +103.153.138.0/23 +103.153.146.0/23 +103.153.160.0/23 +103.154.18.0/23 +103.154.30.0/23 +103.154.32.0/23 +103.154.40.0/23 +103.154.66.0/23 +103.154.162.0/23 +103.154.164.0/23 +103.154.168.0/23 +103.154.242.0/23 +103.155.14.0/23 +103.155.16.0/23 +103.155.34.0/23 +103.155.48.0/23 +103.155.76.0/23 +103.155.100.0/23 +103.155.110.0/23 +103.155.120.0/23 +103.155.214.0/23 +103.155.248.0/23 +103.156.28.0/23 +103.156.68.0/23 +103.156.78.0/23 +103.156.104.0/23 +103.156.158.0/23 +103.156.174.0/23 +103.156.186.0/23 +103.156.228.0/23 +103.157.30.0/23 +103.157.138.0/23 +103.157.174.0/23 +103.157.212.0/23 +103.157.234.0/23 +103.157.254.0/23 +103.158.0.0/23 +103.158.8.0/23 +103.158.16.0/23 +103.158.74.0/23 +103.158.190.0/23 +103.158.200.0/23 +103.158.224.0/23 +103.159.80.0/23 +103.159.122.0/23 +103.159.124.0/23 +103.159.134.0/23 +103.159.142.0/23 +103.160.32.0/23 +103.160.34.0/23 +103.160.112.0/23 +103.160.114.0/23 +103.160.244.0/23 +103.160.254.0/23 +103.161.14.0/23 +103.161.102.0/23 +103.161.138.0/23 +103.161.208.0/23 +103.161.220.0/23 +103.161.254.0/23 +103.162.10.0/23 +103.162.32.0/23 +103.162.116.0/23 +103.163.28.0/23 +103.163.32.0/23 +103.163.46.0/23 +103.163.74.0/23 +103.163.180.0/23 +103.164.4.0/23 +103.164.32.0/23 +103.164.40.0/23 +103.164.42.0/23 +103.164.64.0/23 +103.164.76.0/23 +103.164.178.0/23 +103.165.44.0/23 +103.165.52.0/23 +103.165.82.0/23 +103.165.110.0/23 +103.166.20.0/23 +103.166.50.0/23 +103.166.52.0/23 +103.166.54.0/23 +103.166.84.0/23 +103.166.138.0/23 +103.167.0.0/23 +103.167.36.0/23 +103.167.100.0/23 +103.168.98.0/23 +103.168.170.0/23 +103.169.50.0/23 +103.169.62.0/23 +103.169.108.0/23 +103.169.162.0/23 +103.169.202.0/23 +103.169.216.0/23 +103.170.4.0/23 +103.170.72.0/23 +103.170.134.0/23 +103.170.210.0/23 +103.170.212.0/23 +103.171.32.0/23 +103.171.166.0/23 +103.171.214.0/23 +103.172.32.0/23 +103.172.160.0/23 +103.172.191.0/24 +103.173.102.0/23 +103.173.182.0/23 +103.173.184.0/23 +103.174.94.0/23 +103.175.14.0/23 +103.175.98.0/23 +103.175.114.0/23 +103.175.118.0/23 +103.176.52.0/23 +103.176.222.0/23 +103.176.244.0/23 +103.177.28.0/23 +103.177.44.0/23 +103.177.70.0/23 +103.177.136.0/23 +103.177.162.0/23 +103.178.56.0/23 +103.178.240.0/23 +103.179.76.0/23 +103.179.78.0/23 +103.180.108.0/23 +103.180.226.0/23 +103.181.164.0/23 +103.181.234.0/23 +103.183.26.0/23 +103.183.66.0/23 +103.183.122.0/23 +103.183.124.0/23 +103.184.46.0/23 +103.184.60.0/23 +103.185.78.0/23 +103.185.80.0/23 +103.185.228.0/23 +103.186.4.0/23 +103.186.108.0/23 +103.186.112.0/23 +103.186.136.0/23 +103.186.158.0/23 +103.186.162.0/23 +103.186.228.0/23 +103.189.92.0/23 +103.189.140.0/23 +103.189.152.0/23 +103.189.154.0/23 +103.190.20.0/23 +103.190.71.0/24 +103.190.104.0/23 +103.190.116.0/23 +103.190.118.0/23 +103.190.122.0/23 +103.191.102.0/23 +103.191.242.0/23 +103.192.0.0/22 +103.192.4.0/22 +103.192.8.0/22 +103.192.12.0/22 +103.192.16.0/22 +103.192.20.0/22 +103.192.24.0/22 +103.192.28.0/22 +103.192.48.0/22 +103.192.52.0/22 +103.192.56.0/22 +103.192.84.0/22 +103.192.88.0/22 +103.192.92.0/22 +103.192.96.0/22 +103.192.100.0/22 +103.192.104.0/22 +103.192.108.0/22 +103.192.112.0/22 +103.192.128.0/22 +103.192.132.0/22 +103.192.136.0/22 +103.192.140.0/22 +103.192.144.0/22 +103.192.164.0/22 +103.192.188.0/22 +103.192.208.0/22 +103.192.212.0/22 +103.192.216.0/22 +103.192.252.0/22 +103.193.40.0/22 +103.193.44.0/22 +103.193.120.0/22 +103.193.140.0/22 +103.193.160.0/22 +103.193.188.0/22 +103.193.192.0/22 +103.193.212.0/22 +103.193.216.0/22 +103.193.220.0/22 +103.193.224.0/22 +103.193.228.0/22 +103.193.232.0/22 +103.193.236.0/22 +103.194.16.0/22 +103.195.104.0/22 +103.195.112.0/22 +103.195.148.0/22 +103.195.152.0/22 +103.195.160.0/22 +103.196.64.0/22 +103.196.72.0/22 +103.196.88.0/22 +103.196.92.0/22 +103.196.96.0/22 +103.196.168.0/22 +103.196.204.0/22 +103.197.0.0/22 +103.197.180.0/22 +103.197.228.0/22 +103.198.20.0/22 +103.198.60.0/22 +103.198.64.0/22 +103.198.72.0/22 +103.198.124.0/22 +103.198.156.0/22 +103.198.180.0/22 +103.198.196.0/22 +103.198.216.0/22 +103.198.220.0/22 +103.198.224.0/22 +103.198.228.0/22 +103.198.232.0/22 +103.198.236.0/22 +103.198.240.0/22 +103.198.244.0/22 +103.199.164.0/22 +103.199.196.0/22 +103.199.228.0/22 +103.199.248.0/22 +103.199.252.0/22 +103.200.52.0/22 +103.200.64.0/22 +103.200.68.0/22 +103.200.136.0/22 +103.200.140.0/22 +103.200.144.0/22 +103.200.148.0/22 +103.200.152.0/22 +103.200.156.0/22 +103.200.160.0/22 +103.200.164.0/22 +103.200.168.0/22 +103.200.172.0/22 +103.200.176.0/22 +103.200.180.0/22 +103.200.184.0/22 +103.200.188.0/22 +103.200.192.0/22 +103.200.220.0/22 +103.200.224.0/22 +103.200.228.0/22 +103.200.232.0/22 +103.200.236.0/22 +103.200.240.0/22 +103.200.244.0/22 +103.200.248.0/22 +103.200.252.0/22 +103.201.0.0/22 +103.201.4.0/22 +103.201.8.0/22 +103.201.12.0/22 +103.201.16.0/22 +103.201.20.0/22 +103.201.28.0/22 +103.201.32.0/22 +103.201.36.0/22 +103.201.40.0/22 +103.201.44.0/22 +103.201.48.0/22 +103.201.52.0/22 +103.201.56.0/22 +103.201.60.0/22 +103.201.64.0/22 +103.201.76.0/22 +103.201.80.0/22 +103.201.84.0/22 +103.201.88.0/22 +103.201.92.0/22 +103.201.96.0/22 +103.201.100.0/22 +103.201.104.0/22 +103.201.108.0/22 +103.201.112.0/22 +103.201.116.0/22 +103.201.120.0/22 +103.201.152.0/22 +103.201.156.0/22 +103.201.160.0/22 +103.201.164.0/22 +103.201.168.0/22 +103.201.172.0/22 +103.201.176.0/22 +103.201.180.0/22 +103.201.184.0/22 +103.201.188.0/22 +103.201.192.0/22 +103.201.196.0/22 +103.201.200.0/22 +103.201.204.0/22 +103.201.208.0/22 +103.201.212.0/22 +103.201.216.0/22 +103.201.220.0/22 +103.201.224.0/22 +103.201.228.0/22 +103.201.232.0/22 +103.201.236.0/22 +103.201.240.0/22 +103.201.244.0/22 +103.201.248.0/22 +103.201.252.0/22 +103.202.0.0/22 +103.202.4.0/22 +103.202.8.0/22 +103.202.12.0/22 +103.202.16.0/22 +103.202.20.0/22 +103.202.24.0/22 +103.202.28.0/22 +103.202.32.0/22 +103.202.36.0/22 +103.202.40.0/22 +103.202.44.0/22 +103.202.56.0/22 +103.202.60.0/22 +103.202.64.0/22 +103.202.68.0/22 +103.202.72.0/22 +103.202.76.0/22 +103.202.80.0/22 +103.202.84.0/22 +103.202.88.0/22 +103.202.92.0/22 +103.202.96.0/22 +103.202.100.0/22 +103.202.104.0/22 +103.202.108.0/22 +103.202.112.0/22 +103.202.116.0/22 +103.202.120.0/22 +103.202.124.0/22 +103.202.128.0/22 +103.202.132.0/22 +103.202.136.0/22 +103.202.140.0/22 +103.202.144.0/22 +103.202.152.0/22 +103.202.156.0/22 +103.202.160.0/22 +103.202.164.0/22 +103.202.168.0/22 +103.202.172.0/22 +103.202.176.0/22 +103.202.180.0/22 +103.202.184.0/22 +103.202.188.0/22 +103.202.192.0/22 +103.202.196.0/22 +103.202.200.0/21 +103.202.212.0/22 +103.202.228.0/22 +103.202.236.0/22 +103.202.240.0/22 +103.202.244.0/22 +103.202.248.0/22 +103.202.252.0/22 +103.203.0.0/22 +103.203.4.0/22 +103.203.8.0/22 +103.203.12.0/22 +103.203.16.0/22 +103.203.20.0/22 +103.203.24.0/22 +103.203.28.0/22 +103.203.32.0/22 +103.203.56.0/22 +103.203.96.0/22 +103.203.100.0/22 +103.203.104.0/22 +103.203.108.0/22 +103.203.112.0/22 +103.203.116.0/22 +103.203.120.0/22 +103.203.124.0/22 +103.203.128.0/22 +103.203.140.0/22 +103.203.164.0/22 +103.203.168.0/22 +103.203.192.0/22 +103.203.200.0/22 +103.203.212.0/22 +103.203.216.0/22 +103.204.24.0/22 +103.204.72.0/22 +103.204.88.0/22 +103.204.112.0/22 +103.204.136.0/22 +103.204.140.0/22 +103.204.144.0/22 +103.204.148.0/22 +103.204.152.0/22 +103.204.196.0/22 +103.204.216.0/23 +103.204.232.0/22 +103.204.236.0/22 +103.205.4.0/22 +103.205.8.0/22 +103.205.40.0/22 +103.205.44.0/22 +103.205.52.0/22 +103.205.108.0/22 +103.205.116.0/22 +103.205.120.0/22 +103.205.136.0/22 +103.205.162.0/24 +103.205.188.0/22 +103.205.192.0/22 +103.205.196.0/22 +103.205.200.0/22 +103.205.236.0/22 +103.205.248.0/22 +103.205.252.0/22 +103.206.0.0/22 +103.206.44.0/22 +103.206.148.0/22 +103.207.48.0/22 +103.207.104.0/22 +103.207.184.0/22 +103.207.188.0/22 +103.207.192.0/22 +103.207.196.0/22 +103.207.200.0/22 +103.207.204.0/22 +103.207.208.0/22 +103.207.212.0/22 +103.207.220.0/22 +103.207.228.0/22 +103.207.232.0/22 +103.208.12.0/22 +103.208.16.0/22 +103.208.28.0/22 +103.208.40.0/22 +103.208.44.0/22 +103.208.48.0/22 +103.209.112.0/22 +103.209.136.0/22 +103.209.200.0/22 +103.209.208.0/22 +103.209.216.0/22 +103.210.96.0/22 +103.210.156.0/22 +103.210.160.0/22 +103.210.164.0/22 +103.210.168.0/22 +103.210.172.0/22 +103.210.176.0/22 +103.210.180.0/22 +103.210.184.0/22 +103.210.188.0/22 +103.210.216.0/22 +103.211.44.0/22 +103.211.96.0/22 +103.211.156.0/22 +103.211.164.0/22 +103.211.194.0/23 +103.211.220.0/22 +103.211.224.0/22 +103.211.248.0/22 +103.212.0.0/22 +103.212.4.0/22 +103.212.8.0/22 +103.212.12.0/22 +103.212.44.0/22 +103.212.48.0/22 +103.212.84.0/22 +103.212.100.0/22 +103.212.108.0/22 +103.212.148.0/22 +103.212.164.0/22 +103.212.196.0/22 +103.212.200.0/22 +103.212.228.0/22 +103.212.252.0/22 +103.213.40.0/22 +103.213.44.0/22 +103.213.48.0/22 +103.213.52.0/22 +103.213.56.0/22 +103.213.60.0/22 +103.213.64.0/19 +103.213.96.0/22 +103.213.132.0/22 +103.213.136.0/22 +103.213.140.0/22 +103.213.144.0/22 +103.213.148.0/22 +103.213.152.0/22 +103.213.156.0/22 +103.213.160.0/19 +103.213.196.0/23 +103.213.198.0/23 +103.213.226.0/23 +103.213.232.0/23 +103.214.48.0/22 +103.214.84.0/22 +103.214.212.0/22 +103.214.240.0/22 +103.214.244.0/22 +103.215.28.0/22 +103.215.32.0/22 +103.215.36.0/22 +103.215.44.0/22 +103.215.48.0/22 +103.215.100.0/22 +103.215.108.0/22 +103.215.116.0/22 +103.215.120.0/22 +103.215.140.0/22 +103.216.4.0/22 +103.216.8.0/22 +103.216.12.0/22 +103.216.16.0/22 +103.216.20.0/22 +103.216.24.0/22 +103.216.28.0/22 +103.216.32.0/22 +103.216.36.0/22 +103.216.40.0/22 +103.216.44.0/22 +103.216.64.0/22 +103.216.108.0/22 +103.216.136.0/22 +103.216.152.0/22 +103.216.156.0/23 +103.216.224.0/22 +103.216.228.0/22 +103.216.240.0/22 +103.216.244.0/22 +103.216.248.0/22 +103.216.252.0/22 +103.217.0.0/22 +103.217.4.0/22 +103.217.8.0/22 +103.217.12.0/22 +103.217.16.0/22 +103.217.20.0/22 +103.217.24.0/22 +103.217.28.0/22 +103.217.32.0/22 +103.217.36.0/22 +103.217.40.0/22 +103.217.44.0/22 +103.217.48.0/22 +103.217.52.0/22 +103.217.56.0/22 +103.217.60.0/22 +103.217.168.0/22 +103.217.180.0/22 +103.217.184.0/22 +103.217.188.0/22 +103.217.192.0/22 +103.217.196.0/22 +103.217.200.0/22 +103.217.204.0/22 +103.218.8.0/22 +103.218.12.0/22 +103.218.16.0/22 +103.218.20.0/22 +103.218.28.0/22 +103.218.32.0/22 +103.218.36.0/22 +103.218.40.0/22 +103.218.44.0/22 +103.218.48.0/22 +103.218.52.0/22 +103.218.56.0/22 +103.218.60.0/22 +103.218.64.0/22 +103.218.68.0/22 +103.218.72.0/22 +103.218.76.0/22 +103.218.80.0/22 +103.218.84.0/22 +103.218.88.0/22 +103.218.92.0/22 +103.218.178.0/23 +103.218.192.0/22 +103.218.196.0/22 +103.218.200.0/22 +103.218.204.0/22 +103.218.208.0/22 +103.218.212.0/22 +103.218.216.0/22 +103.219.24.0/22 +103.219.28.0/22 +103.219.32.0/22 +103.219.36.0/22 +103.219.64.0/22 +103.219.84.0/22 +103.219.88.0/22 +103.219.92.0/22 +103.219.96.0/22 +103.219.100.0/22 +103.219.176.0/22 +103.219.184.0/22 +103.220.48.0/22 +103.220.52.0/22 +103.220.56.0/22 +103.220.60.0/22 +103.220.64.0/22 +103.220.92.0/22 +103.220.96.0/22 +103.220.100.0/22 +103.220.104.0/22 +103.220.108.0/22 +103.220.116.0/22 +103.220.120.0/22 +103.220.124.0/22 +103.220.128.0/22 +103.220.132.0/22 +103.220.136.0/22 +103.220.140.0/22 +103.220.144.0/22 +103.220.148.0/22 +103.220.152.0/22 +103.220.160.0/22 +103.220.164.0/22 +103.220.168.0/22 +103.220.172.0/22 +103.220.176.0/22 +103.220.180.0/22 +103.220.184.0/22 +103.220.188.0/22 +103.220.192.0/22 +103.220.196.0/22 +103.220.200.0/22 +103.220.240.0/22 +103.220.244.0/22 +103.220.248.0/22 +103.220.252.0/22 +103.221.0.0/22 +103.221.4.0/22 +103.221.8.0/22 +103.221.12.0/22 +103.221.16.0/22 +103.221.20.0/22 +103.221.24.0/22 +103.221.28.0/22 +103.221.32.0/22 +103.221.36.0/22 +103.221.40.0/22 +103.221.44.0/22 +103.221.48.0/22 +103.221.88.0/22 +103.221.92.0/22 +103.221.96.0/22 +103.221.100.0/22 +103.221.104.0/22 +103.221.108.0/22 +103.221.112.0/22 +103.221.116.0/22 +103.221.120.0/22 +103.221.124.0/22 +103.221.128.0/22 +103.221.132.0/22 +103.221.136.0/22 +103.221.140.0/22 +103.221.144.0/22 +103.221.148.0/22 +103.221.152.0/22 +103.221.156.0/22 +103.221.160.0/22 +103.221.164.0/22 +103.221.168.0/22 +103.221.172.0/22 +103.221.176.0/22 +103.221.180.0/22 +103.221.184.0/22 +103.221.188.0/22 +103.221.192.0/22 +103.221.196.0/22 +103.221.200.0/22 +103.221.204.0/22 +103.222.0.0/22 +103.222.4.0/22 +103.222.8.0/22 +103.222.12.0/22 +103.222.16.0/22 +103.222.24.0/22 +103.222.28.0/22 +103.222.32.0/22 +103.222.36.0/22 +103.222.40.0/22 +103.222.44.0/22 +103.222.48.0/22 +103.222.52.0/22 +103.222.56.0/22 +103.222.60.0/22 +103.222.64.0/22 +103.222.68.0/22 +103.222.72.0/22 +103.222.76.0/22 +103.222.80.0/22 +103.222.84.0/22 +103.222.88.0/22 +103.222.92.0/22 +103.222.96.0/22 +103.222.100.0/22 +103.222.104.0/22 +103.222.108.0/22 +103.222.112.0/22 +103.222.116.0/22 +103.222.120.0/22 +103.222.124.0/22 +103.222.128.0/22 +103.222.132.0/22 +103.222.136.0/22 +103.222.140.0/22 +103.222.144.0/22 +103.222.148.0/22 +103.222.152.0/22 +103.222.156.0/22 +103.222.160.0/22 +103.222.164.0/22 +103.222.168.0/22 +103.222.172.0/22 +103.222.176.0/22 +103.222.180.0/22 +103.222.184.0/22 +103.222.188.0/22 +103.222.192.0/22 +103.222.196.0/22 +103.222.200.0/22 +103.222.204.0/22 +103.222.208.0/22 +103.222.212.0/22 +103.222.216.0/22 +103.222.220.0/22 +103.222.224.0/22 +103.222.228.0/22 +103.222.232.0/22 +103.222.240.0/22 +103.222.244.0/22 +103.223.16.0/22 +103.223.20.0/22 +103.223.24.0/22 +103.223.28.0/22 +103.223.32.0/22 +103.223.36.0/22 +103.223.40.0/22 +103.223.44.0/22 +103.223.48.0/22 +103.223.52.0/22 +103.223.56.0/22 +103.223.60.0/22 +103.223.64.0/22 +103.223.68.0/22 +103.223.72.0/22 +103.223.76.0/22 +103.223.80.0/22 +103.223.84.0/22 +103.223.88.0/22 +103.223.92.0/22 +103.223.96.0/22 +103.223.100.0/22 +103.223.104.0/22 +103.223.108.0/22 +103.223.112.0/22 +103.223.116.0/22 +103.223.120.0/22 +103.223.124.0/22 +103.223.128.0/22 +103.223.132.0/22 +103.223.140.0/22 +103.223.144.0/22 +103.223.148.0/22 +103.223.152.0/22 +103.223.156.0/22 +103.223.160.0/22 +103.223.164.0/22 +103.223.168.0/22 +103.223.172.0/22 +103.223.176.0/22 +103.223.180.0/22 +103.223.188.0/22 +103.223.192.0/22 +103.223.196.0/22 +103.223.200.0/22 +103.223.204.0/22 +103.223.208.0/22 +103.223.212.0/22 +103.223.216.0/22 +103.223.220.0/22 +103.223.224.0/22 +103.223.228.0/22 +103.223.232.0/22 +103.223.236.0/22 +103.223.240.0/22 +103.223.244.0/22 +103.223.248.0/22 +103.223.252.0/22 +103.224.0.0/22 +103.224.40.0/22 +103.224.44.0/22 +103.224.60.0/22 +103.224.80.0/22 +103.224.220.0/22 +103.224.224.0/22 +103.224.228.0/22 +103.224.232.0/22 +103.225.18.0/24 +103.225.84.0/22 +103.226.16.0/22 +103.226.40.0/22 +103.226.56.0/22 +103.226.60.0/22 +103.226.80.0/22 +103.226.116.0/23 +103.226.132.0/22 +103.226.156.0/22 +103.226.180.0/22 +103.226.196.0/22 +103.227.48.0/22 +103.227.72.0/22 +103.227.76.0/22 +103.227.80.0/22 +103.227.100.0/22 +103.227.120.0/22 +103.227.132.0/22 +103.227.136.0/22 +103.227.196.0/22 +103.227.204.0/22 +103.227.212.0/22 +103.227.228.0/22 +103.228.12.0/22 +103.228.88.0/22 +103.228.136.0/22 +103.228.160.0/22 +103.228.176.0/22 +103.228.204.0/22 +103.228.208.0/22 +103.228.228.0/22 +103.228.232.0/22 +103.229.20.0/22 +103.229.60.0/22 +103.229.136.0/22 +103.229.148.0/22 +103.229.172.0/22 +103.229.212.0/22 +103.229.216.0/22 +103.229.220.0/22 +103.229.228.0/22 +103.229.236.0/22 +103.229.240.0/22 +103.230.0.0/22 +103.230.28.0/22 +103.230.44.0/22 +103.230.96.0/22 +103.230.110.0/23 +103.230.128.0/23 +103.230.196.0/22 +103.230.200.0/22 +103.230.204.0/22 +103.230.212.0/22 +103.230.236.0/22 +103.231.16.0/22 +103.231.20.0/22 +103.231.64.0/22 +103.231.68.0/22 +103.231.180.0/22 +103.231.184.0/22 +103.231.244.0/22 +103.232.4.0/22 +103.232.144.0/22 +103.232.166.0/23 +103.232.188.0/22 +103.232.212.0/22 +103.233.4.0/22 +103.233.44.0/22 +103.233.52.0/22 +103.233.104.0/22 +103.233.128.0/22 +103.233.136.0/22 +103.233.162.0/23 +103.233.178.0/23 +103.233.228.0/22 +103.234.0.0/22 +103.234.20.0/22 +103.234.56.0/22 +103.234.128.0/22 +103.234.172.0/22 +103.234.180.0/22 +103.234.244.0/22 +103.235.48.0/22 +103.235.56.0/22 +103.235.60.0/22 +103.235.80.0/22 +103.235.84.0/22 +103.235.100.0/22 +103.235.128.0/22 +103.235.132.0/22 +103.235.136.0/22 +103.235.140.0/22 +103.235.144.0/22 +103.235.148.0/22 +103.235.184.0/22 +103.235.192.0/22 +103.235.200.0/22 +103.235.220.0/22 +103.235.224.0/22 +103.235.228.0/22 +103.235.232.0/22 +103.235.236.0/22 +103.235.240.0/22 +103.235.244.0/22 +103.235.248.0/22 +103.235.252.0/22 +103.236.0.0/22 +103.236.4.0/22 +103.236.8.0/22 +103.236.12.0/22 +103.236.16.0/22 +103.236.20.0/22 +103.236.24.0/22 +103.236.28.0/22 +103.236.32.0/22 +103.236.36.0/22 +103.236.40.0/22 +103.236.44.0/22 +103.236.48.0/22 +103.236.52.0/22 +103.236.56.0/22 +103.236.60.0/22 +103.236.64.0/22 +103.236.68.0/22 +103.236.72.0/22 +103.236.76.0/22 +103.236.80.0/22 +103.236.84.0/22 +103.236.88.0/22 +103.236.92.0/22 +103.236.96.0/22 +103.236.116.0/23 +103.236.120.0/22 +103.236.184.0/22 +103.236.220.0/22 +103.236.232.0/22 +103.236.240.0/22 +103.236.244.0/22 +103.236.248.0/22 +103.236.252.0/22 +103.237.0.0/22 +103.237.4.0/22 +103.237.8.0/22 +103.237.12.0/22 +103.237.24.0/22 +103.237.28.0/22 +103.237.68.0/22 +103.237.88.0/22 +103.237.92.0/23 +103.237.152.0/22 +103.237.176.0/22 +103.237.180.0/22 +103.237.184.0/22 +103.237.188.0/22 +103.237.192.0/22 +103.237.196.0/22 +103.237.200.0/22 +103.237.204.0/22 +103.237.208.0/22 +103.237.212.0/22 +103.237.216.0/22 +103.237.220.0/22 +103.237.224.0/22 +103.237.228.0/22 +103.237.232.0/22 +103.237.236.0/22 +103.237.240.0/22 +103.237.244.0/22 +103.237.248.0/22 +103.237.252.0/22 +103.238.0.0/22 +103.238.4.0/22 +103.238.16.0/22 +103.238.20.0/22 +103.238.24.0/22 +103.238.28.0/22 +103.238.32.0/22 +103.238.36.0/22 +103.238.40.0/22 +103.238.44.0/22 +103.238.48.0/22 +103.238.52.0/22 +103.238.56.0/22 +103.238.88.0/22 +103.238.92.0/22 +103.238.96.0/22 +103.238.132.0/22 +103.238.140.0/22 +103.238.144.0/22 +103.238.152.0/23 +103.238.160.0/22 +103.238.164.0/22 +103.238.168.0/22 +103.238.172.0/22 +103.238.176.0/22 +103.238.180.0/22 +103.238.184.0/22 +103.238.188.0/22 +103.238.196.0/22 +103.238.204.0/22 +103.238.252.0/22 +103.239.0.0/22 +103.239.44.0/22 +103.239.68.0/22 +103.239.152.0/22 +103.239.156.0/22 +103.239.180.0/22 +103.239.184.0/22 +103.239.192.0/22 +103.239.196.0/22 +103.239.204.0/22 +103.239.208.0/22 +103.239.224.0/22 +103.239.244.0/22 +103.240.16.0/22 +103.240.36.0/22 +103.240.42.0/23 +103.240.72.0/22 +103.240.84.0/22 +103.240.124.0/22 +103.240.172.0/22 +103.240.188.0/22 +103.240.200.0/23 +103.240.202.0/23 +103.240.244.0/22 +103.241.12.0/22 +103.241.72.0/22 +103.241.92.0/22 +103.241.96.0/22 +103.241.160.0/22 +103.241.172.0/23 +103.241.184.0/22 +103.241.188.0/22 +103.241.220.0/22 +103.242.64.0/22 +103.242.128.0/22 +103.242.132.0/22 +103.242.160.0/22 +103.242.168.0/22 +103.242.172.0/22 +103.242.176.0/22 +103.242.200.0/22 +103.242.212.0/22 +103.242.220.0/22 +103.242.240.0/22 +103.243.136.0/22 +103.243.252.0/22 +103.244.16.0/22 +103.244.26.0/23 +103.244.58.0/23 +103.244.60.0/22 +103.244.64.0/22 +103.244.68.0/22 +103.244.72.0/22 +103.244.76.0/22 +103.244.80.0/22 +103.244.84.0/22 +103.244.116.0/22 +103.244.164.0/22 +103.244.232.0/22 +103.244.252.0/22 +103.245.23.0/24 +103.245.24.0/23 +103.245.52.0/22 +103.245.60.0/22 +103.245.80.0/22 +103.245.124.0/22 +103.245.128.0/22 +103.246.8.0/22 +103.246.12.0/22 +103.246.120.0/22 +103.246.124.0/22 +103.246.132.0/22 +103.246.152.0/22 +103.246.156.0/22 +103.247.168.0/22 +103.247.172.0/22 +103.247.176.0/22 +103.247.191.0/24 +103.247.200.0/22 +103.247.212.0/22 +103.248.0.0/23 +103.248.64.0/22 +103.248.100.0/22 +103.248.124.0/22 +103.248.152.0/22 +103.248.168.0/22 +103.248.192.0/22 +103.248.212.0/22 +103.248.224.0/22 +103.249.8.0/22 +103.249.12.0/22 +103.249.52.0/22 +103.249.104.0/22 +103.249.128.0/22 +103.249.136.0/22 +103.249.144.0/22 +103.249.164.0/22 +103.249.168.0/22 +103.249.172.0/22 +103.249.176.0/22 +103.249.188.0/22 +103.249.192.0/22 +103.249.244.0/22 +103.249.252.0/22 +103.250.32.0/22 +103.250.104.0/22 +103.250.124.0/22 +103.250.180.0/22 +103.250.192.0/22 +103.250.216.0/22 +103.250.224.0/22 +103.250.236.0/22 +103.250.248.0/22 +103.250.252.0/22 +103.251.32.0/22 +103.251.84.0/22 +103.251.96.0/22 +103.251.124.0/22 +103.251.128.0/22 +103.251.160.0/22 +103.251.192.0/22 +103.251.204.0/22 +103.251.240.0/22 +103.252.28.0/22 +103.252.36.0/22 +103.252.64.0/22 +103.252.96.0/22 +103.252.104.0/22 +103.252.172.0/22 +103.252.204.0/22 +103.252.208.0/22 +103.252.232.0/22 +103.252.248.0/22 +103.253.4.0/22 +103.253.60.0/22 +103.253.204.0/22 +103.253.220.0/22 +103.253.224.0/22 +103.253.232.0/22 +103.254.8.0/22 +103.254.20.0/22 +103.254.64.0/22 +103.254.68.0/22 +103.254.72.0/22 +103.254.76.0/22 +103.254.112.0/22 +103.254.176.0/22 +103.254.188.0/22 +103.254.196.0/24 +103.254.220.0/22 +103.255.56.0/22 +103.255.68.0/22 +103.255.88.0/22 +103.255.92.0/22 +103.255.136.0/22 +103.255.140.0/22 +103.255.184.0/22 +103.255.200.0/22 +103.255.208.0/23 +103.255.212.0/22 +103.255.228.0/22 +106.0.0.0/24 +106.0.2.0/23 +106.0.4.0/22 +106.0.8.0/21 +106.0.16.0/20 +106.0.44.0/22 +106.0.64.0/18 +106.2.0.0/15 +106.4.0.0/14 +106.8.0.0/15 +106.11.0.0/16 +106.12.0.0/14 +106.16.0.0/12 +106.32.0.0/12 +106.48.0.0/15 +106.50.0.0/16 +106.52.0.0/14 +106.56.0.0/13 +106.74.0.0/16 +106.75.0.0/16 +106.80.0.0/12 +106.108.0.0/14 +106.112.0.0/13 +106.120.0.0/13 +106.224.0.0/12 +109.244.0.0/16 +110.6.0.0/15 +110.16.0.0/14 +110.34.40.0/22 +110.34.44.0/22 +110.40.0.0/14 +110.44.12.0/22 +110.44.144.0/20 +110.48.0.0/16 +110.51.0.0/16 +110.52.0.0/15 +110.56.0.0/13 +110.64.0.0/15 +110.72.0.0/15 +110.75.0.0/17 +110.75.128.0/19 +110.75.160.0/19 +110.75.192.0/18 +110.76.0.0/19 +110.76.32.0/19 +110.76.132.0/22 +110.76.156.0/22 +110.76.184.0/22 +110.76.192.0/18 +110.77.0.0/17 +110.80.0.0/13 +110.88.0.0/14 +110.92.68.0/22 +110.93.32.0/19 +110.94.0.0/15 +110.96.0.0/11 +110.152.0.0/14 +110.156.0.0/15 +110.165.32.0/19 +110.166.0.0/15 +110.172.192.0/18 +110.173.0.0/19 +110.173.32.0/20 +110.173.64.0/19 +110.173.96.0/19 +110.173.192.0/19 +110.176.0.0/13 +110.184.0.0/13 +110.192.0.0/11 +110.228.0.0/14 +110.232.32.0/19 +110.236.0.0/15 +110.240.0.0/12 +111.0.0.0/10 +111.66.0.0/16 +111.67.192.0/20 +111.68.64.0/19 +111.72.0.0/13 +111.85.0.0/16 +111.92.248.0/22 +111.92.252.0/22 +111.112.0.0/15 +111.114.0.0/15 +111.116.0.0/15 +111.118.200.0/21 +111.119.64.0/18 +111.119.128.0/19 +111.120.0.0/14 +111.124.0.0/16 +111.126.0.0/15 +111.128.0.0/11 +111.160.0.0/13 +111.170.0.0/16 +111.172.0.0/14 +111.176.0.0/13 +111.186.0.0/15 +111.192.0.0/12 +111.208.0.0/14 +111.212.0.0/14 +111.221.28.0/24 +111.221.128.0/17 +111.222.0.0/16 +111.223.4.0/22 +111.223.8.0/22 +111.223.12.0/22 +111.223.16.0/22 +111.223.240.0/22 +111.223.248.0/22 +111.224.0.0/14 +111.228.0.0/14 +111.235.96.0/19 +111.235.156.0/22 +111.235.160.0/19 +112.0.0.0/10 +112.64.0.0/15 +112.66.0.0/15 +112.73.0.0/16 +112.74.0.0/15 +112.80.0.0/13 +112.88.0.0/13 +112.96.0.0/15 +112.98.0.0/15 +112.100.0.0/14 +112.109.128.0/17 +112.111.0.0/16 +112.112.0.0/14 +112.116.0.0/15 +112.122.0.0/15 +112.124.0.0/14 +112.128.0.0/14 +112.132.0.0/16 +112.137.48.0/21 +112.192.0.0/14 +112.224.0.0/11 +113.0.0.0/13 +113.8.0.0/15 +113.11.192.0/19 +113.12.0.0/14 +113.16.0.0/15 +113.18.0.0/16 +113.21.232.0/22 +113.21.236.0/22 +113.24.0.0/14 +113.31.0.0/16 +113.44.0.0/14 +113.48.0.0/14 +113.52.160.0/19 +113.52.228.0/22 +113.54.0.0/15 +113.56.0.0/15 +113.58.0.0/16 +113.59.0.0/17 +113.59.224.0/22 +113.62.0.0/15 +113.64.0.0/11 +113.96.0.0/12 +113.112.0.0/13 +113.120.0.0/13 +113.128.0.0/15 +113.130.96.0/20 +113.130.112.0/21 +113.132.0.0/14 +113.136.0.0/13 +113.192.40.0/23 +113.192.56.0/23 +113.194.0.0/15 +113.197.100.0/22 +113.200.0.0/15 +113.202.0.0/16 +113.204.0.0/14 +113.208.96.0/19 +113.208.128.0/17 +113.209.0.0/16 +113.212.0.0/18 +113.212.88.0/22 +113.212.100.0/22 +113.212.184.0/21 +113.213.0.0/17 +113.214.0.0/15 +113.218.0.0/15 +113.220.0.0/14 +113.224.0.0/12 +113.240.0.0/13 +113.248.0.0/14 +114.28.0.0/16 +114.31.64.0/22 +114.31.68.0/22 +114.54.0.0/15 +114.60.0.0/14 +114.64.0.0/14 +114.68.0.0/16 +114.79.64.0/18 +114.80.0.0/12 +114.96.0.0/13 +114.104.0.0/14 +114.110.0.0/20 +114.110.64.0/18 +114.111.0.0/19 +114.111.160.0/19 +114.112.0.0/14 +114.116.0.0/16 +114.117.0.0/17 +114.117.128.0/17 +114.118.0.0/16 +114.119.0.0/17 +114.119.192.0/21 +114.119.200.0/22 +114.119.204.0/22 +114.119.208.0/20 +114.119.224.0/19 +114.132.0.0/16 +114.134.184.0/22 +114.134.188.0/23 +114.135.0.0/16 +114.138.0.0/15 +114.141.64.0/21 +114.141.80.0/22 +114.141.84.0/22 +114.141.128.0/18 +114.142.136.0/21 +114.196.0.0/15 +114.198.248.0/21 +114.208.0.0/14 +114.212.0.0/15 +114.214.0.0/16 +114.215.0.0/16 +114.216.0.0/13 +114.224.0.0/12 +114.240.0.0/12 +115.24.0.0/14 +115.28.0.0/15 +115.31.64.0/22 +115.31.68.0/22 +115.31.72.0/22 +115.31.76.0/22 +115.32.0.0/14 +115.42.56.0/22 +115.44.0.0/15 +115.46.0.0/16 +115.47.0.0/16 +115.48.0.0/12 +115.69.64.0/20 +115.84.0.0/18 +115.85.192.0/18 +115.100.0.0/14 +115.104.0.0/14 +115.120.0.0/14 +115.124.16.0/20 +115.148.0.0/14 +115.152.0.0/15 +115.154.0.0/15 +115.156.0.0/15 +115.158.0.0/16 +115.159.0.0/16 +115.166.64.0/19 +115.168.0.0/14 +115.172.0.0/14 +115.180.0.0/15 +115.182.0.0/16 +115.183.0.0/16 +115.187.0.0/22 +115.187.4.0/22 +115.187.8.0/22 +115.187.12.0/22 +115.190.0.0/15 +115.192.0.0/11 +115.224.0.0/12 +116.0.8.0/21 +116.0.24.0/21 +116.1.0.0/16 +116.2.0.0/15 +116.4.0.0/14 +116.8.0.0/14 +116.13.0.0/16 +116.16.0.0/12 +116.50.0.0/20 +116.52.0.0/14 +116.56.0.0/15 +116.58.128.0/20 +116.58.208.0/20 +116.60.0.0/14 +116.66.0.0/17 +116.68.136.0/22 +116.68.140.0/22 +116.68.176.0/22 +116.68.180.0/22 +116.69.0.0/16 +116.70.0.0/17 +116.76.0.0/15 +116.78.0.0/15 +116.85.0.0/16 +116.89.144.0/20 +116.89.240.0/22 +116.90.80.0/20 +116.90.184.0/21 +116.95.0.0/16 +116.112.0.0/14 +116.116.0.0/15 +116.128.0.0/10 +116.192.0.0/16 +116.193.16.0/20 +116.193.32.0/19 +116.193.164.0/22 +116.193.176.0/21 +116.194.0.0/15 +116.196.0.0/17 +116.196.128.0/18 +116.196.192.0/18 +116.197.160.0/22 +116.197.164.0/22 +116.198.0.0/16 +116.199.0.0/17 +116.199.128.0/19 +116.204.0.0/17 +116.204.132.0/22 +116.205.0.0/16 +116.207.0.0/16 +116.208.0.0/14 +116.212.160.0/20 +116.213.44.0/22 +116.213.64.0/18 +116.213.128.0/17 +116.214.32.0/19 +116.214.64.0/20 +116.214.128.0/17 +116.215.0.0/16 +116.216.0.0/14 +116.224.0.0/12 +116.242.0.0/15 +116.244.0.0/15 +116.246.0.0/15 +116.248.0.0/15 +116.251.64.0/18 +116.252.0.0/15 +116.254.104.0/22 +116.254.108.0/22 +116.254.128.0/17 +116.255.128.0/17 +117.8.0.0/13 +117.21.0.0/16 +117.22.0.0/15 +117.24.0.0/13 +117.32.0.0/13 +117.40.0.0/14 +117.44.0.0/15 +117.48.0.0/14 +117.53.48.0/20 +117.53.176.0/20 +117.57.0.0/16 +117.58.0.0/17 +117.59.0.0/16 +117.60.0.0/14 +117.64.0.0/13 +117.72.0.0/15 +117.74.64.0/20 +117.74.80.0/20 +117.74.128.0/17 +117.75.0.0/16 +117.76.0.0/14 +117.80.0.0/12 +117.100.0.0/15 +117.103.16.0/20 +117.103.40.0/21 +117.103.72.0/21 +117.103.128.0/20 +117.104.168.0/21 +117.106.0.0/15 +117.112.0.0/13 +117.120.64.0/18 +117.120.128.0/17 +117.121.0.0/17 +117.121.128.0/18 +117.121.192.0/21 +117.122.128.0/17 +117.124.0.0/14 +117.128.0.0/10 +118.24.0.0/15 +118.26.0.0/19 +118.26.32.0/22 +118.26.40.0/21 +118.26.48.0/21 +118.26.56.0/21 +118.26.64.0/19 +118.26.96.0/21 +118.26.112.0/21 +118.26.120.0/21 +118.26.128.0/22 +118.26.133.0/24 +118.26.134.0/23 +118.26.136.0/21 +118.26.160.0/20 +118.26.188.0/22 +118.26.192.0/18 +118.28.0.0/15 +118.30.0.0/16 +118.31.0.0/16 +118.64.0.0/15 +118.66.0.0/16 +118.67.112.0/20 +118.72.0.0/13 +118.80.0.0/15 +118.84.0.0/15 +118.88.32.0/19 +118.88.64.0/18 +118.88.128.0/17 +118.89.0.0/16 +118.91.240.0/20 +118.102.16.0/20 +118.102.32.0/21 +118.103.164.0/22 +118.103.168.0/22 +118.103.172.0/22 +118.103.176.0/22 +118.112.0.0/13 +118.120.0.0/14 +118.124.0.0/15 +118.126.0.0/16 +118.127.128.0/19 +118.132.0.0/14 +118.144.0.0/14 +118.178.0.0/16 +118.180.0.0/14 +118.184.0.0/17 +118.184.128.0/17 +118.186.0.0/15 +118.188.0.0/16 +118.190.0.0/16 +118.191.0.0/21 +118.191.8.0/22 +118.191.12.0/24 +118.191.16.0/21 +118.191.64.0/20 +118.191.80.0/22 +118.191.128.0/19 +118.191.176.0/20 +118.191.192.0/20 +118.191.208.0/24 +118.191.216.0/22 +118.191.223.0/24 +118.191.224.0/24 +118.191.240.0/20 +118.192.0.0/16 +118.193.0.0/21 +118.193.8.0/21 +118.193.48.0/21 +118.193.96.0/19 +118.193.128.0/17 +118.194.0.0/17 +118.194.128.0/18 +118.194.192.0/19 +118.194.224.0/22 +118.194.240.0/21 +118.195.0.0/17 +118.195.128.0/17 +118.196.0.0/14 +118.202.0.0/15 +118.204.0.0/14 +118.212.0.0/16 +118.213.0.0/16 +118.215.192.0/18 +118.224.0.0/14 +118.228.0.0/15 +118.230.0.0/16 +118.239.0.0/16 +118.242.0.0/16 +118.244.0.0/14 +118.248.0.0/13 +119.0.0.0/15 +119.2.0.0/19 +119.2.128.0/17 +119.3.0.0/16 +119.4.0.0/14 +119.10.0.0/17 +119.15.136.0/21 +119.16.0.0/16 +119.18.192.0/20 +119.18.208.0/21 +119.18.224.0/20 +119.18.240.0/20 +119.19.0.0/16 +119.20.0.0/14 +119.27.64.0/18 +119.27.128.0/19 +119.27.160.0/19 +119.27.192.0/18 +119.28.0.0/15 +119.30.48.0/20 +119.31.192.0/19 +119.32.0.0/14 +119.36.0.0/16 +119.37.0.0/17 +119.37.128.0/18 +119.37.192.0/18 +119.38.0.0/17 +119.38.128.0/18 +119.38.192.0/20 +119.38.208.0/20 +119.38.224.0/19 +119.39.0.0/16 +119.40.0.0/18 +119.40.64.0/20 +119.40.128.0/17 +119.41.0.0/16 +119.42.0.0/19 +119.42.128.0/21 +119.42.136.0/21 +119.42.224.0/19 +119.44.0.0/15 +119.48.0.0/13 +119.57.0.0/16 +119.58.0.0/16 +119.59.128.0/17 +119.60.0.0/16 +119.61.0.0/16 +119.62.0.0/16 +119.63.32.0/19 +119.75.208.0/20 +119.78.0.0/15 +119.80.0.0/16 +119.82.208.0/20 +119.84.0.0/14 +119.88.0.0/14 +119.96.0.0/13 +119.108.0.0/15 +119.112.0.0/13 +119.120.0.0/13 +119.128.0.0/12 +119.144.0.0/14 +119.148.160.0/20 +119.148.176.0/20 +119.151.192.0/18 +119.160.200.0/21 +119.161.120.0/22 +119.161.124.0/22 +119.161.128.0/17 +119.162.0.0/15 +119.164.0.0/14 +119.176.0.0/12 +119.232.0.0/16 +119.233.0.0/17 +119.233.128.0/17 +119.235.128.0/18 +119.248.0.0/14 +119.252.96.0/21 +119.252.240.0/20 +119.253.0.0/16 +119.254.0.0/15 +120.0.0.0/12 +120.24.0.0/14 +120.30.0.0/16 +120.31.0.0/16 +120.32.0.0/13 +120.40.0.0/14 +120.44.0.0/15 +120.46.0.0/16 +120.47.0.0/16 +120.48.0.0/15 +120.52.0.0/16 +120.53.0.0/16 +120.54.0.0/15 +120.64.0.0/14 +120.68.0.0/14 +120.72.32.0/19 +120.72.128.0/17 +120.76.0.0/14 +120.80.0.0/13 +120.88.8.0/21 +120.90.0.0/15 +120.92.0.0/16 +120.94.0.0/16 +120.95.0.0/16 +120.128.0.0/14 +120.132.0.0/17 +120.132.128.0/17 +120.133.0.0/16 +120.134.0.0/15 +120.136.16.0/22 +120.136.20.0/22 +120.136.128.0/18 +120.137.0.0/17 +120.143.128.0/19 +120.192.0.0/10 +121.0.8.0/21 +121.0.16.0/20 +121.4.0.0/15 +121.8.0.0/13 +121.16.0.0/13 +121.24.0.0/14 +121.28.0.0/15 +121.30.0.0/16 +121.31.0.0/16 +121.32.0.0/14 +121.36.0.0/16 +121.37.0.0/16 +121.38.0.0/15 +121.40.0.0/14 +121.46.0.0/18 +121.46.76.0/22 +121.46.128.0/17 +121.47.0.0/16 +121.48.0.0/15 +121.50.8.0/21 +121.51.0.0/16 +121.52.160.0/19 +121.52.208.0/20 +121.52.224.0/19 +121.54.176.0/21 +121.54.188.0/22 +121.55.0.0/18 +121.56.0.0/15 +121.58.0.0/17 +121.58.136.0/21 +121.58.144.0/20 +121.58.160.0/21 +121.59.0.0/16 +121.60.0.0/14 +121.68.0.0/14 +121.76.0.0/15 +121.79.128.0/18 +121.89.0.0/16 +121.91.104.0/21 +121.100.128.0/17 +121.101.0.0/18 +121.101.208.0/20 +121.192.0.0/16 +121.193.0.0/16 +121.194.0.0/15 +121.196.0.0/14 +121.200.192.0/21 +121.201.0.0/16 +121.204.0.0/14 +121.224.0.0/12 +121.248.0.0/14 +121.255.0.0/16 +122.0.64.0/18 +122.0.128.0/17 +122.4.0.0/14 +122.8.0.0/17 +122.8.192.0/18 +122.9.0.0/16 +122.10.128.0/22 +122.10.132.0/23 +122.10.136.0/23 +122.10.164.0/22 +122.10.168.0/21 +122.10.176.0/20 +122.10.192.0/22 +122.10.200.0/21 +122.10.208.0/21 +122.10.216.0/22 +122.10.228.0/22 +122.10.232.0/21 +122.10.240.0/22 +122.11.0.0/17 +122.12.0.0/16 +122.13.0.0/16 +122.14.0.0/17 +122.14.128.0/18 +122.14.192.0/18 +122.48.0.0/16 +122.49.0.0/18 +122.51.0.0/16 +122.64.0.0/11 +122.96.0.0/15 +122.102.0.0/20 +122.102.64.0/20 +122.102.80.0/20 +122.112.0.0/18 +122.112.64.0/18 +122.112.128.0/17 +122.113.0.0/16 +122.114.0.0/16 +122.115.0.0/17 +122.115.128.0/19 +122.115.160.0/19 +122.115.192.0/19 +122.115.224.0/19 +122.119.0.0/16 +122.128.100.0/22 +122.128.120.0/21 +122.136.0.0/13 +122.144.128.0/17 +122.152.192.0/18 +122.156.0.0/14 +122.188.0.0/14 +122.192.0.0/14 +122.198.0.0/16 +122.200.40.0/22 +122.200.44.0/22 +122.200.64.0/18 +122.201.48.0/20 +122.204.0.0/14 +122.224.0.0/12 +122.240.0.0/13 +122.248.24.0/21 +122.248.48.0/20 +122.255.64.0/21 +123.0.128.0/18 +123.4.0.0/14 +123.8.0.0/13 +123.49.128.0/17 +123.50.160.0/19 +123.52.0.0/14 +123.56.0.0/15 +123.58.0.0/20 +123.58.16.0/20 +123.58.32.0/19 +123.58.64.0/19 +123.58.96.0/19 +123.58.128.0/18 +123.58.224.0/20 +123.58.240.0/20 +123.59.0.0/16 +123.60.0.0/16 +123.61.0.0/16 +123.62.0.0/16 +123.64.0.0/11 +123.96.0.0/15 +123.98.0.0/17 +123.99.128.0/17 +123.100.0.0/19 +123.101.0.0/16 +123.103.0.0/17 +123.108.88.0/23 +123.108.128.0/20 +123.108.208.0/20 +123.112.0.0/12 +123.128.0.0/13 +123.136.80.0/20 +123.137.0.0/16 +123.138.0.0/15 +123.144.0.0/14 +123.148.0.0/16 +123.149.0.0/16 +123.150.0.0/15 +123.152.0.0/13 +123.160.0.0/14 +123.164.0.0/14 +123.168.0.0/14 +123.172.0.0/15 +123.174.0.0/15 +123.176.60.0/22 +123.176.80.0/20 +123.177.0.0/16 +123.178.0.0/15 +123.180.0.0/14 +123.184.0.0/14 +123.188.0.0/14 +123.196.0.0/15 +123.199.128.0/17 +123.206.0.0/15 +123.232.0.0/14 +123.242.0.0/17 +123.242.192.0/22 +123.242.196.0/22 +123.244.0.0/14 +123.249.0.0/16 +123.253.240.0/22 +123.254.96.0/22 +123.254.100.0/22 +124.6.64.0/18 +124.14.0.0/15 +124.16.0.0/15 +124.20.0.0/16 +124.21.0.0/20 +124.21.16.0/20 +124.21.32.0/19 +124.21.64.0/18 +124.21.128.0/17 +124.22.0.0/15 +124.28.192.0/18 +124.29.0.0/17 +124.31.0.0/16 +124.40.112.0/20 +124.40.128.0/18 +124.40.192.0/19 +124.40.240.0/22 +124.42.0.0/17 +124.42.128.0/17 +124.47.0.0/18 +124.64.0.0/15 +124.66.0.0/17 +124.67.0.0/16 +124.68.0.0/15 +124.70.0.0/15 +124.72.0.0/16 +124.73.0.0/16 +124.74.0.0/15 +124.76.0.0/14 +124.88.0.0/16 +124.89.0.0/17 +124.89.128.0/17 +124.90.0.0/15 +124.92.0.0/14 +124.108.8.0/21 +124.108.40.0/21 +124.109.96.0/21 +124.112.0.0/15 +124.114.0.0/15 +124.116.0.0/16 +124.117.0.0/16 +124.118.0.0/15 +124.126.0.0/15 +124.128.0.0/13 +124.147.128.0/17 +124.150.137.0/24 +124.151.0.0/16 +124.152.0.0/16 +124.160.0.0/16 +124.161.0.0/16 +124.162.0.0/16 +124.163.0.0/16 +124.164.0.0/14 +124.172.0.0/15 +124.174.0.0/15 +124.192.0.0/15 +124.196.0.0/16 +124.200.0.0/13 +124.220.0.0/14 +124.224.0.0/16 +124.225.0.0/16 +124.226.0.0/15 +124.228.0.0/14 +124.232.0.0/15 +124.234.0.0/15 +124.236.0.0/14 +124.240.0.0/17 +124.240.128.0/18 +124.242.0.0/16 +124.243.192.0/18 +124.248.0.0/17 +124.249.0.0/16 +124.250.0.0/15 +124.254.0.0/18 +125.31.192.0/18 +125.32.0.0/16 +125.33.0.0/16 +125.34.0.0/16 +125.35.0.0/17 +125.35.128.0/17 +125.36.0.0/14 +125.40.0.0/13 +125.58.128.0/17 +125.61.128.0/17 +125.62.0.0/18 +125.64.0.0/13 +125.72.0.0/16 +125.73.0.0/16 +125.74.0.0/15 +125.76.0.0/17 +125.76.128.0/17 +125.77.0.0/16 +125.78.0.0/15 +125.80.0.0/13 +125.88.0.0/13 +125.96.0.0/15 +125.98.0.0/16 +125.104.0.0/13 +125.112.0.0/12 +125.169.0.0/16 +125.171.0.0/16 +125.208.0.0/18 +125.210.0.0/16 +125.211.0.0/16 +125.213.0.0/17 +125.214.96.0/19 +125.215.0.0/18 +125.216.0.0/15 +125.218.0.0/16 +125.219.0.0/16 +125.220.0.0/15 +125.222.0.0/15 +125.254.128.0/18 +125.254.192.0/18 +128.108.0.0/16 +129.28.0.0/16 +129.204.0.0/16 +129.211.0.0/16 +132.232.0.0/16 +134.175.0.0/16 +137.59.59.0/24 +137.59.88.0/22 +139.5.56.0/22 +139.5.60.0/22 +139.5.80.0/22 +139.5.92.0/22 +139.5.108.0/22 +139.5.128.0/22 +139.5.160.0/22 +139.5.192.0/22 +139.5.204.0/22 +139.5.212.0/22 +139.5.244.0/22 +139.9.0.0/16 +139.129.0.0/16 +139.148.0.0/16 +139.155.0.0/16 +139.159.0.0/16 +139.170.0.0/16 +139.176.0.0/16 +139.183.0.0/16 +139.186.0.0/16 +139.189.0.0/16 +139.196.0.0/14 +139.200.0.0/13 +139.208.0.0/13 +139.217.0.0/16 +139.219.0.0/16 +139.220.0.0/15 +139.224.0.0/16 +139.226.0.0/15 +140.75.0.0/16 +140.143.0.0/16 +140.179.0.0/16 +140.205.0.0/16 +140.206.0.0/15 +140.210.0.0/17 +140.210.128.0/17 +140.224.0.0/16 +140.237.0.0/16 +140.240.0.0/16 +140.243.0.0/16 +140.246.0.0/16 +140.249.0.0/16 +140.250.0.0/16 +140.255.0.0/16 +142.70.0.0/16 +142.86.0.0/16 +143.64.0.0/16 +144.0.0.0/16 +144.7.0.0/16 +144.12.0.0/16 +144.48.64.0/22 +144.48.88.0/22 +144.48.156.0/22 +144.48.180.0/22 +144.48.184.0/22 +144.48.204.0/22 +144.48.208.0/22 +144.48.212.0/22 +144.48.220.0/22 +144.48.252.0/22 +144.52.0.0/16 +144.123.0.0/16 +144.255.0.0/16 +146.56.192.0/18 +146.196.56.0/22 +146.196.68.0/22 +146.196.72.0/22 +146.196.92.0/22 +146.196.112.0/22 +146.196.116.0/22 +146.196.124.0/22 +148.70.0.0/16 +149.41.0.0/16 +150.0.0.0/16 +150.115.0.0/16 +150.121.0.0/16 +150.122.0.0/16 +150.129.136.0/22 +150.129.192.0/22 +150.129.252.0/22 +150.138.0.0/15 +150.158.0.0/16 +150.223.0.0/16 +150.242.0.0/22 +150.242.4.0/22 +150.242.8.0/22 +150.242.28.0/22 +150.242.44.0/22 +150.242.48.0/22 +150.242.52.0/22 +150.242.56.0/22 +150.242.76.0/22 +150.242.80.0/22 +150.242.92.0/22 +150.242.96.0/22 +150.242.112.0/22 +150.242.116.0/22 +150.242.120.0/22 +150.242.152.0/22 +150.242.156.0/22 +150.242.160.0/22 +150.242.164.0/22 +150.242.168.0/22 +150.242.184.0/22 +150.242.188.0/22 +150.242.192.0/22 +150.242.212.0/22 +150.242.224.0/22 +150.242.232.0/22 +150.242.236.0/22 +150.242.240.0/22 +150.242.244.0/22 +150.242.248.0/22 +150.248.0.0/16 +150.255.0.0/16 +152.104.128.0/17 +152.136.0.0/16 +153.0.0.0/16 +153.3.0.0/16 +153.34.0.0/15 +153.36.0.0/15 +153.99.0.0/16 +153.101.0.0/16 +153.118.0.0/15 +154.8.128.0/17 +157.0.0.0/16 +157.10.34.0/23 +157.10.36.0/23 +157.10.112.0/23 +157.10.118.0/23 +157.10.130.0/23 +157.10.218.0/23 +157.10.220.0/23 +157.10.246.0/23 +157.15.74.0/23 +157.15.94.0/23 +157.15.100.0/23 +157.15.102.0/23 +157.15.104.0/23 +157.15.200.0/23 +157.18.0.0/16 +157.20.33.0/24 +157.20.136.0/23 +157.20.194.0/23 +157.20.246.0/23 +157.61.0.0/16 +157.66.42.0/23 +157.66.70.0/23 +157.66.88.0/23 +157.66.90.0/23 +157.66.92.0/23 +157.66.94.0/23 +157.66.164.0/23 +157.66.244.0/23 +157.119.8.0/22 +157.119.12.0/22 +157.119.16.0/22 +157.119.28.0/22 +157.119.132.0/22 +157.119.136.0/22 +157.119.140.0/22 +157.119.144.0/22 +157.119.148.0/22 +157.119.152.0/22 +157.119.156.0/22 +157.119.160.0/22 +157.119.164.0/22 +157.119.172.0/22 +157.119.192.0/22 +157.119.196.0/22 +157.119.240.0/22 +157.119.252.0/22 +157.122.0.0/16 +157.148.0.0/16 +157.156.0.0/16 +157.255.0.0/16 +158.60.0.0/16 +158.79.0.0/16 +158.140.252.0/22 +159.27.0.0/16 +159.75.0.0/16 +159.226.0.0/16 +160.19.76.0/23 +160.19.82.0/23 +160.19.208.0/22 +160.19.212.0/22 +160.19.216.0/22 +160.20.16.0/23 +160.20.18.0/23 +160.20.48.0/22 +160.20.130.0/23 +160.22.58.0/23 +160.22.82.0/23 +160.22.148.0/23 +160.22.188.0/23 +160.22.224.0/23 +160.22.230.0/23 +160.22.244.0/23 +160.22.246.0/23 +160.25.10.0/23 +160.25.12.0/23 +160.25.20.0/23 +160.25.194.0/23 +160.30.40.0/23 +160.30.148.0/23 +160.30.150.0/23 +160.30.194.0/23 +160.30.196.0/23 +160.30.198.0/23 +160.30.230.0/23 +160.187.223.0/24 +160.187.252.0/23 +160.187.254.0/23 +160.191.0.0/23 +160.191.104.0/23 +160.191.110.0/23 +160.202.60.0/22 +160.202.148.0/22 +160.202.152.0/22 +160.202.168.0/22 +160.202.212.0/22 +160.202.216.0/22 +160.202.220.0/22 +160.202.224.0/22 +160.202.228.0/22 +160.202.232.0/22 +160.202.236.0/22 +160.202.240.0/22 +160.202.244.0/22 +160.202.248.0/22 +160.202.252.0/22 +160.250.14.0/23 +160.250.16.0/23 +160.250.18.0/23 +160.250.24.0/23 +160.250.84.0/23 +160.250.90.0/23 +160.250.102.0/23 +160.250.104.0/23 +160.250.140.0/24 +160.250.160.0/23 +160.250.170.0/23 +160.250.214.0/23 +160.250.252.0/23 +161.120.0.0/16 +161.189.0.0/16 +161.207.0.0/16 +161.248.20.0/23 +161.248.42.0/23 +161.248.84.0/23 +161.248.92.0/23 +161.248.108.0/23 +161.248.110.0/23 +161.248.112.0/23 +161.248.136.0/23 +162.14.0.0/16 +162.105.0.0/16 +163.0.0.0/16 +163.47.4.0/22 +163.53.0.0/22 +163.53.4.0/22 +163.53.8.0/22 +163.53.12.0/22 +163.53.36.0/22 +163.53.40.0/22 +163.53.44.0/22 +163.53.48.0/22 +163.53.52.0/22 +163.53.56.0/22 +163.53.60.0/22 +163.53.64.0/22 +163.53.88.0/22 +163.53.92.0/22 +163.53.96.0/22 +163.53.100.0/22 +163.53.104.0/22 +163.53.108.0/22 +163.53.112.0/22 +163.53.116.0/22 +163.53.120.0/22 +163.53.124.0/22 +163.53.128.0/22 +163.53.132.0/22 +163.53.136.0/22 +163.53.160.0/22 +163.53.164.0/22 +163.53.168.0/22 +163.53.172.0/22 +163.53.188.0/22 +163.53.240.0/22 +163.125.0.0/16 +163.142.0.0/16 +163.177.0.0/16 +163.179.0.0/16 +163.204.0.0/16 +163.228.0.0/16 +164.52.0.0/17 +166.111.0.0/16 +167.139.0.0/16 +167.189.0.0/16 +167.220.244.0/22 +168.160.0.0/16 +170.179.0.0/16 +171.8.0.0/13 +171.34.0.0/15 +171.36.0.0/14 +171.40.0.0/13 +171.80.0.0/14 +171.84.0.0/14 +171.88.0.0/13 +171.104.0.0/13 +171.112.0.0/14 +171.116.0.0/14 +171.120.0.0/13 +171.208.0.0/12 +172.81.192.0/18 +175.0.0.0/12 +175.16.0.0/13 +175.24.0.0/16 +175.25.0.0/16 +175.26.0.0/16 +175.27.0.0/16 +175.30.0.0/15 +175.42.0.0/15 +175.44.0.0/16 +175.46.0.0/15 +175.48.0.0/12 +175.64.0.0/11 +175.102.0.0/16 +175.106.128.0/17 +175.111.144.0/22 +175.111.148.0/22 +175.111.152.0/22 +175.111.156.0/22 +175.111.160.0/22 +175.111.164.0/22 +175.111.168.0/22 +175.111.172.0/22 +175.111.184.0/22 +175.146.0.0/15 +175.148.0.0/14 +175.152.0.0/14 +175.158.96.0/22 +175.160.0.0/12 +175.176.156.0/22 +175.176.176.0/22 +175.176.188.0/22 +175.178.0.0/16 +175.184.128.0/18 +175.185.0.0/16 +175.186.0.0/15 +175.188.0.0/14 +180.76.0.0/16 +180.77.0.0/16 +180.78.0.0/15 +180.84.0.0/15 +180.86.0.0/16 +180.88.0.0/14 +180.94.56.0/21 +180.94.96.0/20 +180.94.120.0/22 +180.94.124.0/22 +180.95.128.0/17 +180.96.0.0/11 +180.129.128.0/17 +180.130.0.0/16 +180.136.0.0/13 +180.148.16.0/21 +180.148.152.0/21 +180.148.216.0/21 +180.148.224.0/19 +180.149.128.0/19 +180.150.160.0/19 +180.152.0.0/13 +180.160.0.0/12 +180.178.112.0/22 +180.178.116.0/22 +180.178.192.0/18 +180.184.0.0/15 +180.186.0.0/16 +180.187.0.0/16 +180.188.0.0/17 +180.189.148.0/22 +180.200.252.0/22 +180.201.0.0/16 +180.202.0.0/15 +180.208.0.0/15 +180.210.212.0/22 +180.210.224.0/19 +180.212.0.0/15 +180.222.224.0/19 +180.223.0.0/16 +180.233.0.0/18 +180.233.64.0/19 +180.233.144.0/22 +180.235.64.0/19 +180.235.112.0/22 +182.16.144.0/22 +182.16.148.0/22 +182.16.192.0/19 +182.18.0.0/17 +182.23.184.0/21 +182.23.200.0/21 +182.32.0.0/12 +182.48.96.0/19 +182.49.0.0/16 +182.50.0.0/20 +182.50.112.0/20 +182.51.0.0/16 +182.54.0.0/17 +182.54.244.0/22 +182.61.0.0/16 +182.80.0.0/14 +182.84.0.0/14 +182.88.0.0/14 +182.92.0.0/16 +182.96.0.0/12 +182.112.0.0/12 +182.128.0.0/12 +182.144.0.0/13 +182.157.0.0/16 +182.160.64.0/19 +182.174.0.0/15 +182.200.0.0/13 +182.236.128.0/17 +182.237.24.0/22 +182.237.28.0/22 +182.238.0.0/16 +182.239.0.0/19 +182.240.0.0/13 +182.254.0.0/16 +182.255.60.0/22 +183.0.0.0/10 +183.64.0.0/13 +183.78.160.0/22 +183.78.164.0/22 +183.78.180.0/22 +183.81.172.0/22 +183.81.180.0/22 +183.84.0.0/15 +183.91.128.0/22 +183.91.136.0/21 +183.91.144.0/20 +183.92.0.0/14 +183.128.0.0/11 +183.160.0.0/13 +183.168.0.0/15 +183.170.0.0/16 +183.172.0.0/14 +183.182.0.0/19 +183.184.0.0/13 +183.192.0.0/10 +188.131.128.0/17 +192.51.188.0/24 +192.55.46.0/23 +192.55.68.0/22 +192.102.204.0/22 +192.124.154.0/24 +192.140.128.0/22 +192.140.132.0/22 +192.140.136.0/22 +192.140.156.0/22 +192.140.160.0/22 +192.140.164.0/22 +192.140.168.0/22 +192.140.172.0/22 +192.140.176.0/22 +192.140.180.0/22 +192.140.184.0/22 +192.140.188.0/22 +192.140.192.0/22 +192.140.196.0/22 +192.140.200.0/22 +192.140.204.0/22 +192.140.208.0/22 +192.140.212.0/22 +192.144.128.0/17 +192.197.113.0/24 +193.112.0.0/16 +193.119.0.0/19 +198.175.100.0/22 +199.212.57.0/24 +202.0.100.0/23 +202.0.122.0/23 +202.0.176.0/22 +202.3.128.0/23 +202.4.128.0/19 +202.4.252.0/22 +202.5.208.0/22 +202.5.212.0/22 +202.5.216.0/22 +202.6.6.0/23 +202.6.66.0/23 +202.6.72.0/23 +202.6.87.0/24 +202.6.88.0/23 +202.6.92.0/23 +202.6.103.0/24 +202.6.108.0/24 +202.6.110.0/23 +202.6.114.0/24 +202.6.176.0/20 +202.8.0.0/24 +202.8.2.0/23 +202.8.4.0/23 +202.8.12.0/24 +202.8.24.0/24 +202.8.77.0/24 +202.8.120.0/22 +202.8.128.0/19 +202.8.192.0/20 +202.9.32.0/24 +202.9.34.0/23 +202.9.48.0/23 +202.9.51.0/24 +202.9.52.0/23 +202.9.54.0/24 +202.9.57.0/24 +202.9.58.0/23 +202.10.64.0/20 +202.10.112.0/22 +202.10.116.0/22 +202.10.120.0/22 +202.10.124.0/22 +202.12.1.0/24 +202.12.2.0/24 +202.12.17.0/24 +202.12.18.0/24 +202.12.72.0/24 +202.12.84.0/23 +202.12.96.0/24 +202.12.98.0/23 +202.12.106.0/24 +202.12.111.0/24 +202.12.116.0/24 +202.14.64.0/23 +202.14.69.0/24 +202.14.73.0/24 +202.14.74.0/23 +202.14.76.0/24 +202.14.78.0/23 +202.14.88.0/24 +202.14.97.0/24 +202.14.104.0/23 +202.14.108.0/23 +202.14.111.0/24 +202.14.114.0/23 +202.14.118.0/23 +202.14.124.0/23 +202.14.127.0/24 +202.14.129.0/24 +202.14.135.0/24 +202.14.136.0/24 +202.14.149.0/24 +202.14.151.0/24 +202.14.157.0/24 +202.14.158.0/23 +202.14.169.0/24 +202.14.170.0/23 +202.14.172.0/22 +202.14.176.0/24 +202.14.184.0/23 +202.14.208.0/23 +202.14.213.0/24 +202.14.219.0/24 +202.14.220.0/24 +202.14.222.0/23 +202.14.225.0/24 +202.14.226.0/23 +202.14.231.0/24 +202.14.235.0/24 +202.14.236.0/23 +202.14.238.0/24 +202.14.239.0/24 +202.14.246.0/24 +202.14.251.0/24 +202.20.66.0/24 +202.20.79.0/24 +202.20.87.0/24 +202.20.88.0/23 +202.20.90.0/24 +202.20.94.0/23 +202.20.114.0/24 +202.20.117.0/24 +202.20.120.0/24 +202.20.125.0/24 +202.20.126.0/24 +202.20.127.0/24 +202.21.48.0/22 +202.21.52.0/22 +202.21.56.0/22 +202.21.60.0/22 +202.21.131.0/24 +202.21.132.0/24 +202.21.141.0/24 +202.21.142.0/24 +202.21.147.0/24 +202.21.148.0/24 +202.21.150.0/23 +202.21.152.0/23 +202.21.154.0/24 +202.21.156.0/24 +202.22.248.0/22 +202.22.252.0/22 +202.27.12.0/24 +202.27.14.0/24 +202.27.136.0/23 +202.36.226.0/24 +202.38.0.0/23 +202.38.2.0/23 +202.38.8.0/21 +202.38.48.0/20 +202.38.64.0/19 +202.38.96.0/19 +202.38.128.0/23 +202.38.130.0/23 +202.38.132.0/23 +202.38.134.0/24 +202.38.135.0/24 +202.38.136.0/23 +202.38.140.0/23 +202.38.142.0/23 +202.38.146.0/23 +202.38.149.0/24 +202.38.150.0/23 +202.38.152.0/23 +202.38.154.0/23 +202.38.156.0/24 +202.38.158.0/23 +202.38.164.0/22 +202.38.168.0/23 +202.38.170.0/24 +202.38.176.0/23 +202.38.184.0/21 +202.38.192.0/18 +202.40.4.0/23 +202.40.7.0/24 +202.40.15.0/24 +202.40.135.0/24 +202.40.136.0/24 +202.40.140.0/24 +202.40.143.0/24 +202.40.144.0/23 +202.40.150.0/24 +202.40.155.0/24 +202.40.156.0/24 +202.40.158.0/23 +202.40.162.0/24 +202.41.8.0/23 +202.41.11.0/24 +202.41.12.0/23 +202.41.128.0/24 +202.41.130.0/23 +202.41.152.0/21 +202.41.192.0/24 +202.41.196.0/22 +202.41.200.0/22 +202.41.240.0/20 +202.43.76.0/22 +202.43.144.0/20 +202.44.16.0/20 +202.44.48.0/22 +202.44.67.0/24 +202.44.74.0/24 +202.44.97.0/24 +202.44.129.0/24 +202.44.132.0/23 +202.44.146.0/23 +202.45.0.0/23 +202.45.2.0/24 +202.45.15.0/24 +202.45.16.0/20 +202.46.16.0/23 +202.46.18.0/24 +202.46.20.0/23 +202.46.32.0/19 +202.46.128.0/24 +202.46.224.0/20 +202.47.82.0/23 +202.47.96.0/22 +202.47.100.0/22 +202.47.104.0/22 +202.47.108.0/22 +202.47.126.0/24 +202.47.128.0/24 +202.47.130.0/23 +202.52.33.0/24 +202.52.34.0/24 +202.52.47.0/24 +202.52.143.0/24 +202.53.140.0/24 +202.53.143.0/24 +202.57.192.0/22 +202.57.196.0/22 +202.57.200.0/22 +202.57.204.0/22 +202.57.212.0/22 +202.57.216.0/22 +202.57.240.0/20 +202.58.0.0/24 +202.58.104.0/22 +202.58.112.0/22 +202.59.0.0/24 +202.59.1.0/24 +202.59.212.0/22 +202.59.236.0/24 +202.59.240.0/24 +202.60.48.0/21 +202.60.96.0/21 +202.60.112.0/20 +202.60.132.0/22 +202.60.136.0/21 +202.60.144.0/20 +202.61.68.0/22 +202.61.76.0/22 +202.61.88.0/22 +202.61.123.0/24 +202.61.127.0/24 +202.62.112.0/22 +202.62.248.0/22 +202.62.252.0/24 +202.62.255.0/24 +202.63.80.0/24 +202.63.81.0/24 +202.63.82.0/23 +202.63.84.0/22 +202.63.88.0/21 +202.63.160.0/19 +202.63.248.0/22 +202.63.253.0/24 +202.65.0.0/21 +202.65.8.0/23 +202.65.96.0/22 +202.65.100.0/22 +202.65.104.0/22 +202.65.108.0/22 +202.66.168.0/22 +202.67.0.0/22 +202.69.4.0/22 +202.69.16.0/20 +202.70.0.0/19 +202.70.96.0/20 +202.70.192.0/20 +202.71.32.0/22 +202.71.36.0/22 +202.71.40.0/22 +202.71.44.0/22 +202.72.40.0/21 +202.72.80.0/20 +202.72.112.0/22 +202.72.116.0/22 +202.72.120.0/22 +202.72.124.0/22 +202.73.128.0/22 +202.73.240.0/22 +202.73.244.0/22 +202.73.248.0/22 +202.73.252.0/22 +202.74.8.0/21 +202.74.36.0/24 +202.74.42.0/24 +202.74.52.0/24 +202.74.80.0/20 +202.74.254.0/23 +202.75.208.0/20 +202.75.252.0/22 +202.76.252.0/22 +202.77.80.0/21 +202.77.92.0/22 +202.78.8.0/21 +202.79.224.0/21 +202.79.248.0/22 +202.80.192.0/21 +202.80.200.0/21 +202.81.0.0/22 +202.81.176.0/22 +202.81.180.0/22 +202.81.184.0/22 +202.81.188.0/22 +202.83.252.0/22 +202.84.0.0/22 +202.84.4.0/22 +202.84.8.0/21 +202.84.16.0/23 +202.84.22.0/24 +202.84.24.0/21 +202.85.208.0/20 +202.86.249.0/24 +202.86.252.0/22 +202.87.80.0/20 +202.88.32.0/22 +202.89.8.0/21 +202.89.96.0/22 +202.89.108.0/22 +202.89.119.0/24 +202.89.232.0/21 +202.90.16.0/22 +202.90.20.0/22 +202.90.24.0/22 +202.90.28.0/22 +202.90.37.0/24 +202.90.96.0/22 +202.90.100.0/22 +202.90.104.0/22 +202.90.108.0/22 +202.90.112.0/20 +202.90.193.0/24 +202.90.196.0/24 +202.90.205.0/24 +202.90.224.0/21 +202.90.232.0/21 +202.91.0.0/22 +202.91.96.0/20 +202.91.176.0/20 +202.91.224.0/19 +202.92.8.0/21 +202.92.48.0/20 +202.92.252.0/22 +202.93.252.0/22 +202.94.74.0/24 +202.94.81.0/24 +202.94.92.0/22 +202.95.240.0/21 +202.96.0.0/18 +202.96.64.0/21 +202.96.72.0/21 +202.96.80.0/20 +202.96.96.0/21 +202.96.104.0/21 +202.96.112.0/20 +202.96.128.0/21 +202.96.136.0/21 +202.96.144.0/20 +202.96.160.0/21 +202.96.168.0/21 +202.96.176.0/20 +202.96.192.0/21 +202.96.200.0/21 +202.96.208.0/20 +202.96.224.0/21 +202.96.232.0/21 +202.96.240.0/20 +202.97.0.0/21 +202.97.8.0/21 +202.97.16.0/20 +202.97.32.0/19 +202.97.64.0/19 +202.97.96.0/20 +202.97.112.0/20 +202.97.128.0/18 +202.97.192.0/19 +202.97.224.0/21 +202.97.232.0/21 +202.97.240.0/20 +202.98.0.0/21 +202.98.8.0/21 +202.98.16.0/20 +202.98.32.0/21 +202.98.40.0/21 +202.98.48.0/20 +202.98.64.0/19 +202.98.96.0/21 +202.98.104.0/21 +202.98.112.0/20 +202.98.128.0/19 +202.98.160.0/21 +202.98.168.0/21 +202.98.176.0/20 +202.98.192.0/21 +202.98.200.0/21 +202.98.208.0/20 +202.98.224.0/21 +202.98.232.0/21 +202.98.240.0/20 +202.99.0.0/18 +202.99.64.0/19 +202.99.96.0/21 +202.99.104.0/21 +202.99.112.0/20 +202.99.128.0/19 +202.99.160.0/21 +202.99.168.0/21 +202.99.176.0/20 +202.99.192.0/21 +202.99.200.0/21 +202.99.208.0/20 +202.99.224.0/21 +202.99.232.0/21 +202.99.240.0/20 +202.100.0.0/21 +202.100.8.0/21 +202.100.16.0/20 +202.100.32.0/19 +202.100.64.0/21 +202.100.72.0/21 +202.100.80.0/20 +202.100.96.0/21 +202.100.104.0/21 +202.100.112.0/20 +202.100.128.0/21 +202.100.136.0/21 +202.100.144.0/20 +202.100.160.0/21 +202.100.168.0/21 +202.100.176.0/20 +202.100.192.0/21 +202.100.200.0/21 +202.100.208.0/20 +202.100.224.0/19 +202.101.0.0/18 +202.101.64.0/19 +202.101.96.0/19 +202.101.128.0/18 +202.101.192.0/19 +202.101.224.0/21 +202.101.232.0/21 +202.101.240.0/20 +202.102.0.0/19 +202.102.32.0/19 +202.102.64.0/18 +202.102.128.0/21 +202.102.136.0/21 +202.102.144.0/20 +202.102.160.0/19 +202.102.192.0/21 +202.102.200.0/21 +202.102.208.0/20 +202.102.224.0/21 +202.102.232.0/21 +202.102.240.0/20 +202.103.0.0/21 +202.103.8.0/21 +202.103.16.0/20 +202.103.32.0/19 +202.103.64.0/19 +202.103.96.0/21 +202.103.104.0/21 +202.103.112.0/20 +202.103.128.0/18 +202.103.192.0/19 +202.103.224.0/21 +202.103.232.0/21 +202.103.240.0/20 +202.104.0.0/15 +202.106.0.0/16 +202.107.0.0/17 +202.107.128.0/17 +202.108.0.0/16 +202.109.0.0/16 +202.110.0.0/18 +202.110.64.0/18 +202.110.128.0/18 +202.110.192.0/18 +202.111.0.0/17 +202.111.128.0/19 +202.111.160.0/19 +202.111.192.0/18 +202.112.0.0/16 +202.113.0.0/20 +202.113.16.0/20 +202.113.32.0/19 +202.113.64.0/18 +202.113.128.0/18 +202.113.192.0/19 +202.113.224.0/20 +202.113.240.0/20 +202.114.0.0/19 +202.114.32.0/19 +202.114.64.0/18 +202.114.128.0/17 +202.115.0.0/19 +202.115.32.0/19 +202.115.64.0/18 +202.115.128.0/17 +202.116.0.0/19 +202.116.32.0/20 +202.116.48.0/20 +202.116.64.0/19 +202.116.96.0/19 +202.116.128.0/17 +202.117.0.0/18 +202.117.64.0/18 +202.117.128.0/17 +202.118.0.0/19 +202.118.32.0/19 +202.118.64.0/18 +202.118.128.0/17 +202.119.0.0/19 +202.119.32.0/19 +202.119.64.0/20 +202.119.80.0/20 +202.119.96.0/19 +202.119.128.0/17 +202.120.0.0/18 +202.120.64.0/18 +202.120.128.0/17 +202.121.0.0/16 +202.122.0.0/21 +202.122.32.0/21 +202.122.64.0/19 +202.122.112.0/21 +202.122.120.0/21 +202.122.132.0/24 +202.123.96.0/20 +202.123.116.0/22 +202.123.120.0/22 +202.124.16.0/21 +202.124.24.0/22 +202.125.107.0/24 +202.125.109.0/24 +202.125.112.0/20 +202.125.176.0/20 +202.127.0.0/23 +202.127.2.0/24 +202.127.3.0/24 +202.127.4.0/24 +202.127.5.0/24 +202.127.6.0/23 +202.127.12.0/22 +202.127.16.0/20 +202.127.40.0/21 +202.127.48.0/20 +202.127.112.0/20 +202.127.128.0/20 +202.127.144.0/20 +202.127.192.0/23 +202.127.194.0/23 +202.127.196.0/22 +202.127.200.0/21 +202.127.212.0/22 +202.127.216.0/21 +202.127.224.0/19 +202.129.208.0/24 +202.130.0.0/19 +202.130.39.0/24 +202.130.224.0/19 +202.131.16.0/21 +202.131.48.0/20 +202.131.208.0/20 +202.133.32.0/20 +202.134.58.0/24 +202.134.128.0/20 +202.134.208.0/22 +202.134.212.0/22 +202.134.216.0/22 +202.134.220.0/22 +202.136.48.0/20 +202.136.208.0/20 +202.136.224.0/20 +202.136.248.0/22 +202.137.231.0/24 +202.140.140.0/22 +202.140.144.0/22 +202.140.148.0/22 +202.140.152.0/22 +202.140.156.0/22 +202.141.160.0/19 +202.142.16.0/20 +202.143.4.0/22 +202.143.16.0/20 +202.143.32.0/20 +202.143.56.0/21 +202.143.100.0/22 +202.143.104.0/22 +202.144.196.0/22 +202.146.160.0/20 +202.146.184.0/23 +202.146.186.0/24 +202.146.188.0/22 +202.146.196.0/22 +202.146.200.0/21 +202.147.144.0/20 +202.148.32.0/20 +202.148.64.0/19 +202.148.96.0/19 +202.149.32.0/19 +202.149.160.0/19 +202.149.224.0/19 +202.150.16.0/20 +202.150.32.0/20 +202.150.56.0/22 +202.150.192.0/20 +202.150.224.0/19 +202.151.0.0/22 +202.151.33.0/24 +202.151.128.0/19 +202.152.176.0/20 +202.153.0.0/22 +202.153.7.0/24 +202.153.48.0/20 +202.157.192.0/19 +202.158.160.0/19 +202.158.242.0/24 +202.160.140.0/22 +202.160.156.0/22 +202.160.176.0/20 +202.162.67.0/24 +202.162.75.0/24 +202.164.0.0/20 +202.164.96.0/19 +202.165.176.0/20 +202.165.208.0/20 +202.165.239.0/24 +202.165.240.0/23 +202.165.243.0/24 +202.165.245.0/24 +202.165.251.0/24 +202.165.252.0/22 +202.166.224.0/19 +202.168.80.0/22 +202.168.128.0/22 +202.168.132.0/22 +202.168.136.0/22 +202.168.140.0/22 +202.168.160.0/20 +202.168.176.0/20 +202.170.128.0/19 +202.170.216.0/21 +202.170.224.0/19 +202.171.216.0/21 +202.171.232.0/24 +202.171.235.0/24 +202.172.0.0/22 +202.172.7.0/24 +202.173.0.0/22 +202.173.6.0/24 +202.173.8.0/21 +202.173.112.0/22 +202.173.224.0/19 +202.174.64.0/20 +202.174.124.0/22 +202.176.224.0/19 +202.179.160.0/22 +202.179.164.0/22 +202.179.168.0/22 +202.179.172.0/22 +202.179.240.0/20 +202.180.128.0/19 +202.180.208.0/21 +202.181.8.0/22 +202.181.28.0/22 +202.181.112.0/20 +202.182.32.0/20 +202.182.192.0/19 +202.189.0.0/18 +202.189.80.0/20 +202.189.184.0/21 +202.191.0.0/24 +202.191.68.0/22 +202.191.72.0/21 +202.191.80.0/20 +202.192.0.0/13 +202.200.0.0/14 +202.204.0.0/14 +203.0.4.0/22 +203.0.10.0/23 +203.0.18.0/24 +203.0.24.0/24 +203.0.42.0/23 +203.0.45.0/24 +203.0.46.0/23 +203.0.81.0/24 +203.0.82.0/23 +203.0.90.0/23 +203.0.96.0/23 +203.0.104.0/21 +203.0.114.0/23 +203.0.122.0/24 +203.0.128.0/24 +203.0.130.0/23 +203.0.132.0/22 +203.0.137.0/24 +203.0.142.0/24 +203.0.144.0/24 +203.0.146.0/24 +203.0.148.0/24 +203.0.150.0/23 +203.0.152.0/24 +203.0.177.0/24 +203.0.224.0/24 +203.1.4.0/22 +203.1.18.0/24 +203.1.26.0/23 +203.1.65.0/24 +203.1.66.0/23 +203.1.70.0/23 +203.1.76.0/23 +203.1.90.0/24 +203.1.97.0/24 +203.1.98.0/23 +203.1.100.0/22 +203.1.108.0/24 +203.1.253.0/24 +203.1.254.0/24 +203.2.64.0/21 +203.2.73.0/24 +203.2.112.0/21 +203.2.126.0/23 +203.2.140.0/24 +203.2.150.0/24 +203.2.152.0/22 +203.2.156.0/23 +203.2.160.0/21 +203.2.180.0/23 +203.2.196.0/23 +203.2.209.0/24 +203.2.214.0/23 +203.2.226.0/23 +203.2.229.0/24 +203.2.236.0/23 +203.3.68.0/24 +203.3.72.0/23 +203.3.75.0/24 +203.3.80.0/21 +203.3.96.0/22 +203.3.105.0/24 +203.3.112.0/21 +203.3.120.0/24 +203.3.123.0/24 +203.3.135.0/24 +203.3.139.0/24 +203.3.143.0/24 +203.4.132.0/23 +203.4.134.0/24 +203.4.151.0/24 +203.4.152.0/22 +203.4.174.0/23 +203.4.180.0/24 +203.4.186.0/24 +203.4.205.0/24 +203.4.208.0/22 +203.4.227.0/24 +203.4.230.0/23 +203.5.4.0/23 +203.5.7.0/24 +203.5.8.0/23 +203.5.11.0/24 +203.5.21.0/24 +203.5.22.0/24 +203.5.44.0/24 +203.5.46.0/23 +203.5.52.0/22 +203.5.56.0/23 +203.5.60.0/23 +203.5.114.0/23 +203.5.118.0/24 +203.5.120.0/24 +203.5.172.0/24 +203.5.180.0/23 +203.5.182.0/24 +203.5.185.0/24 +203.5.186.0/24 +203.5.188.0/23 +203.5.190.0/24 +203.5.195.0/24 +203.5.214.0/23 +203.5.218.0/23 +203.6.131.0/24 +203.6.136.0/24 +203.6.138.0/23 +203.6.142.0/24 +203.6.150.0/23 +203.6.157.0/24 +203.6.159.0/24 +203.6.224.0/20 +203.6.248.0/23 +203.7.129.0/24 +203.7.138.0/23 +203.7.147.0/24 +203.7.150.0/23 +203.7.158.0/24 +203.7.192.0/23 +203.7.200.0/24 +203.8.0.0/24 +203.8.8.0/24 +203.8.23.0/24 +203.8.70.0/24 +203.8.82.0/24 +203.8.86.0/23 +203.8.91.0/24 +203.8.110.0/23 +203.8.115.0/24 +203.8.166.0/23 +203.8.169.0/24 +203.8.173.0/24 +203.8.184.0/24 +203.8.186.0/23 +203.8.190.0/23 +203.8.192.0/24 +203.8.197.0/24 +203.8.198.0/23 +203.8.203.0/24 +203.8.209.0/24 +203.8.210.0/23 +203.8.212.0/22 +203.8.217.0/24 +203.8.220.0/24 +203.9.32.0/24 +203.9.36.0/23 +203.9.57.0/24 +203.9.63.0/24 +203.9.65.0/24 +203.9.70.0/23 +203.9.72.0/24 +203.9.75.0/24 +203.9.76.0/23 +203.9.96.0/22 +203.9.100.0/23 +203.9.108.0/24 +203.9.158.0/24 +203.10.34.0/24 +203.10.56.0/24 +203.10.74.0/23 +203.10.84.0/22 +203.10.88.0/24 +203.10.95.0/24 +203.10.125.0/24 +203.11.70.0/24 +203.11.76.0/22 +203.11.82.0/24 +203.11.84.0/22 +203.11.100.0/22 +203.11.109.0/24 +203.11.117.0/24 +203.11.122.0/24 +203.11.126.0/24 +203.11.136.0/22 +203.11.141.0/24 +203.11.142.0/23 +203.11.180.0/22 +203.11.208.0/22 +203.12.16.0/24 +203.12.19.0/24 +203.12.24.0/24 +203.12.57.0/24 +203.12.65.0/24 +203.12.66.0/24 +203.12.70.0/23 +203.12.87.0/24 +203.12.100.0/23 +203.12.103.0/24 +203.12.114.0/24 +203.12.118.0/24 +203.12.130.0/24 +203.12.137.0/24 +203.12.196.0/22 +203.12.211.0/24 +203.12.219.0/24 +203.12.226.0/24 +203.12.240.0/22 +203.13.18.0/24 +203.13.24.0/24 +203.13.44.0/23 +203.13.88.0/23 +203.13.92.0/22 +203.13.173.0/24 +203.13.224.0/23 +203.13.227.0/24 +203.13.233.0/24 +203.14.24.0/22 +203.14.33.0/24 +203.14.56.0/24 +203.14.61.0/24 +203.14.62.0/24 +203.14.104.0/24 +203.14.114.0/23 +203.14.118.0/24 +203.14.162.0/24 +203.14.192.0/24 +203.14.194.0/23 +203.14.214.0/24 +203.14.231.0/24 +203.14.246.0/24 +203.15.0.0/20 +203.15.20.0/23 +203.15.22.0/24 +203.15.87.0/24 +203.15.88.0/23 +203.15.105.0/24 +203.15.112.0/21 +203.15.130.0/23 +203.15.149.0/24 +203.15.151.0/24 +203.15.156.0/22 +203.15.174.0/24 +203.15.227.0/24 +203.15.232.0/21 +203.15.240.0/23 +203.15.246.0/24 +203.16.10.0/24 +203.16.12.0/23 +203.16.16.0/21 +203.16.27.0/24 +203.16.38.0/24 +203.16.49.0/24 +203.16.50.0/23 +203.16.58.0/24 +203.16.63.0/24 +203.16.133.0/24 +203.16.161.0/24 +203.16.162.0/24 +203.16.186.0/23 +203.16.228.0/24 +203.16.238.0/24 +203.16.240.0/24 +203.16.245.0/24 +203.17.2.0/24 +203.17.18.0/24 +203.17.28.0/24 +203.17.39.0/24 +203.17.56.0/24 +203.17.74.0/23 +203.17.88.0/23 +203.17.136.0/24 +203.17.164.0/24 +203.17.187.0/24 +203.17.190.0/23 +203.17.231.0/24 +203.17.233.0/24 +203.17.248.0/24 +203.17.249.0/24 +203.17.255.0/24 +203.18.2.0/23 +203.18.4.0/24 +203.18.7.0/24 +203.18.31.0/24 +203.18.37.0/24 +203.18.48.0/23 +203.18.52.0/24 +203.18.72.0/22 +203.18.80.0/23 +203.18.87.0/24 +203.18.100.0/23 +203.18.105.0/24 +203.18.107.0/24 +203.18.110.0/24 +203.18.129.0/24 +203.18.131.0/24 +203.18.132.0/23 +203.18.144.0/24 +203.18.153.0/24 +203.18.199.0/24 +203.18.208.0/24 +203.18.211.0/24 +203.18.215.0/24 +203.19.1.0/24 +203.19.18.0/24 +203.19.24.0/24 +203.19.30.0/24 +203.19.32.0/21 +203.19.41.0/24 +203.19.44.0/23 +203.19.46.0/24 +203.19.58.0/24 +203.19.60.0/23 +203.19.64.0/24 +203.19.68.0/24 +203.19.72.0/24 +203.19.101.0/24 +203.19.111.0/24 +203.19.131.0/24 +203.19.133.0/24 +203.19.144.0/24 +203.19.147.0/24 +203.19.149.0/24 +203.19.156.0/24 +203.19.176.0/24 +203.19.178.0/23 +203.19.208.0/24 +203.19.228.0/22 +203.19.233.0/24 +203.19.242.0/24 +203.19.248.0/23 +203.19.255.0/24 +203.20.17.0/24 +203.20.40.0/23 +203.20.44.0/24 +203.20.48.0/24 +203.20.61.0/24 +203.20.65.0/24 +203.20.84.0/23 +203.20.89.0/24 +203.20.106.0/23 +203.20.115.0/24 +203.20.117.0/24 +203.20.118.0/23 +203.20.122.0/24 +203.20.126.0/23 +203.20.135.0/24 +203.20.136.0/21 +203.20.150.0/24 +203.20.230.0/24 +203.20.232.0/24 +203.20.236.0/24 +203.21.0.0/23 +203.21.2.0/24 +203.21.8.0/24 +203.21.10.0/24 +203.21.18.0/24 +203.21.33.0/24 +203.21.34.0/24 +203.21.41.0/24 +203.21.44.0/24 +203.21.68.0/24 +203.21.82.0/24 +203.21.96.0/22 +203.21.124.0/24 +203.21.136.0/23 +203.21.145.0/24 +203.21.206.0/24 +203.22.24.0/24 +203.22.28.0/23 +203.22.31.0/24 +203.22.68.0/24 +203.22.76.0/24 +203.22.78.0/24 +203.22.84.0/24 +203.22.87.0/24 +203.22.92.0/22 +203.22.99.0/24 +203.22.106.0/24 +203.22.122.0/23 +203.22.131.0/24 +203.22.163.0/24 +203.22.166.0/24 +203.22.170.0/24 +203.22.176.0/21 +203.22.194.0/24 +203.22.242.0/23 +203.22.245.0/24 +203.22.246.0/24 +203.22.252.0/23 +203.23.0.0/24 +203.23.47.0/24 +203.23.61.0/24 +203.23.62.0/23 +203.23.73.0/24 +203.23.85.0/24 +203.23.92.0/22 +203.23.98.0/24 +203.23.107.0/24 +203.23.112.0/24 +203.23.130.0/24 +203.23.140.0/23 +203.23.172.0/24 +203.23.182.0/24 +203.23.186.0/23 +203.23.192.0/24 +203.23.197.0/24 +203.23.198.0/24 +203.23.204.0/22 +203.23.224.0/24 +203.23.226.0/23 +203.23.228.0/22 +203.23.249.0/24 +203.23.251.0/24 +203.24.13.0/24 +203.24.18.0/24 +203.24.27.0/24 +203.24.43.0/24 +203.24.56.0/24 +203.24.58.0/24 +203.24.67.0/24 +203.24.74.0/24 +203.24.79.0/24 +203.24.80.0/23 +203.24.84.0/23 +203.24.86.0/24 +203.24.90.0/24 +203.24.111.0/24 +203.24.112.0/24 +203.24.116.0/24 +203.24.122.0/23 +203.24.145.0/24 +203.24.152.0/23 +203.24.157.0/24 +203.24.161.0/24 +203.24.167.0/24 +203.24.186.0/23 +203.24.199.0/24 +203.24.202.0/24 +203.24.212.0/23 +203.24.217.0/24 +203.24.219.0/24 +203.24.244.0/24 +203.25.19.0/24 +203.25.20.0/23 +203.25.46.0/24 +203.25.48.0/21 +203.25.64.0/23 +203.25.91.0/24 +203.25.99.0/24 +203.25.100.0/24 +203.25.106.0/24 +203.25.131.0/24 +203.25.135.0/24 +203.25.138.0/24 +203.25.147.0/24 +203.25.153.0/24 +203.25.154.0/23 +203.25.164.0/24 +203.25.166.0/24 +203.25.174.0/23 +203.25.180.0/24 +203.25.182.0/24 +203.25.191.0/24 +203.25.199.0/24 +203.25.200.0/24 +203.25.202.0/23 +203.25.208.0/20 +203.25.229.0/24 +203.25.235.0/24 +203.25.236.0/24 +203.25.242.0/24 +203.26.12.0/24 +203.26.34.0/24 +203.26.49.0/24 +203.26.50.0/24 +203.26.55.0/24 +203.26.56.0/23 +203.26.60.0/24 +203.26.65.0/24 +203.26.68.0/24 +203.26.76.0/24 +203.26.80.0/24 +203.26.84.0/24 +203.26.97.0/24 +203.26.102.0/23 +203.26.115.0/24 +203.26.116.0/24 +203.26.129.0/24 +203.26.143.0/24 +203.26.144.0/24 +203.26.148.0/23 +203.26.154.0/24 +203.26.158.0/23 +203.26.170.0/24 +203.26.173.0/24 +203.26.176.0/24 +203.26.185.0/24 +203.26.202.0/23 +203.26.210.0/24 +203.26.214.0/24 +203.26.222.0/24 +203.26.224.0/24 +203.26.228.0/24 +203.26.232.0/24 +203.27.0.0/24 +203.27.10.0/24 +203.27.15.0/24 +203.27.16.0/24 +203.27.20.0/24 +203.27.22.0/23 +203.27.40.0/24 +203.27.45.0/24 +203.27.53.0/24 +203.27.65.0/24 +203.27.66.0/24 +203.27.81.0/24 +203.27.88.0/24 +203.27.102.0/24 +203.27.109.0/24 +203.27.117.0/24 +203.27.121.0/24 +203.27.122.0/23 +203.27.125.0/24 +203.27.200.0/24 +203.27.202.0/24 +203.27.233.0/24 +203.27.241.0/24 +203.27.250.0/24 +203.28.10.0/24 +203.28.12.0/24 +203.28.33.0/24 +203.28.34.0/23 +203.28.43.0/24 +203.28.44.0/24 +203.28.54.0/24 +203.28.56.0/24 +203.28.73.0/24 +203.28.74.0/24 +203.28.76.0/24 +203.28.86.0/24 +203.28.88.0/24 +203.28.112.0/24 +203.28.131.0/24 +203.28.136.0/24 +203.28.140.0/24 +203.28.145.0/24 +203.28.165.0/24 +203.28.169.0/24 +203.28.170.0/24 +203.28.178.0/23 +203.28.185.0/24 +203.28.187.0/24 +203.28.196.0/24 +203.28.226.0/23 +203.28.239.0/24 +203.29.2.0/24 +203.29.8.0/23 +203.29.13.0/24 +203.29.14.0/24 +203.29.28.0/24 +203.29.46.0/24 +203.29.57.0/24 +203.29.61.0/24 +203.29.63.0/24 +203.29.69.0/24 +203.29.73.0/24 +203.29.81.0/24 +203.29.90.0/24 +203.29.95.0/24 +203.29.100.0/24 +203.29.103.0/24 +203.29.112.0/24 +203.29.120.0/22 +203.29.182.0/23 +203.29.187.0/24 +203.29.189.0/24 +203.29.190.0/24 +203.29.205.0/24 +203.29.210.0/24 +203.29.217.0/24 +203.29.227.0/24 +203.29.231.0/24 +203.29.233.0/24 +203.29.234.0/24 +203.29.248.0/24 +203.29.254.0/23 +203.30.16.0/23 +203.30.25.0/24 +203.30.27.0/24 +203.30.29.0/24 +203.30.66.0/24 +203.30.81.0/24 +203.30.87.0/24 +203.30.111.0/24 +203.30.121.0/24 +203.30.123.0/24 +203.30.152.0/24 +203.30.156.0/24 +203.30.162.0/24 +203.30.173.0/24 +203.30.175.0/24 +203.30.187.0/24 +203.30.194.0/24 +203.30.217.0/24 +203.30.220.0/24 +203.30.222.0/24 +203.30.232.0/23 +203.30.235.0/24 +203.30.240.0/23 +203.30.246.0/24 +203.30.250.0/23 +203.31.45.0/24 +203.31.46.0/24 +203.31.49.0/24 +203.31.51.0/24 +203.31.54.0/23 +203.31.69.0/24 +203.31.72.0/24 +203.31.80.0/24 +203.31.85.0/24 +203.31.97.0/24 +203.31.105.0/24 +203.31.106.0/24 +203.31.108.0/23 +203.31.124.0/24 +203.31.162.0/24 +203.31.174.0/24 +203.31.177.0/24 +203.31.181.0/24 +203.31.187.0/24 +203.31.189.0/24 +203.31.204.0/24 +203.31.220.0/24 +203.31.222.0/23 +203.31.225.0/24 +203.31.229.0/24 +203.31.248.0/23 +203.31.253.0/24 +203.32.20.0/24 +203.32.48.0/23 +203.32.56.0/24 +203.32.60.0/24 +203.32.62.0/24 +203.32.68.0/23 +203.32.76.0/24 +203.32.81.0/24 +203.32.84.0/23 +203.32.95.0/24 +203.32.102.0/24 +203.32.105.0/24 +203.32.130.0/24 +203.32.133.0/24 +203.32.140.0/24 +203.32.152.0/24 +203.32.186.0/23 +203.32.192.0/24 +203.32.196.0/24 +203.32.203.0/24 +203.32.204.0/23 +203.32.212.0/24 +203.33.4.0/24 +203.33.7.0/24 +203.33.8.0/21 +203.33.21.0/24 +203.33.26.0/24 +203.33.32.0/24 +203.33.63.0/24 +203.33.64.0/24 +203.33.67.0/24 +203.33.68.0/24 +203.33.73.0/24 +203.33.79.0/24 +203.33.100.0/24 +203.33.122.0/24 +203.33.129.0/24 +203.33.131.0/24 +203.33.145.0/24 +203.33.156.0/24 +203.33.158.0/23 +203.33.174.0/24 +203.33.185.0/24 +203.33.200.0/24 +203.33.202.0/23 +203.33.204.0/24 +203.33.206.0/23 +203.33.214.0/23 +203.33.224.0/23 +203.33.226.0/24 +203.33.233.0/24 +203.33.243.0/24 +203.33.250.0/24 +203.34.4.0/24 +203.34.21.0/24 +203.34.27.0/24 +203.34.39.0/24 +203.34.48.0/23 +203.34.54.0/24 +203.34.56.0/23 +203.34.67.0/24 +203.34.69.0/24 +203.34.76.0/24 +203.34.92.0/24 +203.34.106.0/24 +203.34.113.0/24 +203.34.147.0/24 +203.34.150.0/24 +203.34.152.0/23 +203.34.161.0/24 +203.34.162.0/24 +203.34.187.0/24 +203.34.192.0/21 +203.34.204.0/22 +203.34.232.0/24 +203.34.240.0/24 +203.34.242.0/24 +203.34.245.0/24 +203.34.251.0/24 +203.55.2.0/23 +203.55.4.0/24 +203.55.10.0/24 +203.55.13.0/24 +203.55.22.0/24 +203.55.30.0/24 +203.55.93.0/24 +203.55.101.0/24 +203.55.109.0/24 +203.55.110.0/24 +203.55.116.0/23 +203.55.119.0/24 +203.55.128.0/23 +203.55.146.0/23 +203.55.192.0/24 +203.55.196.0/24 +203.55.218.0/23 +203.55.221.0/24 +203.55.224.0/24 +203.56.1.0/24 +203.56.4.0/24 +203.56.12.0/24 +203.56.24.0/24 +203.56.38.0/24 +203.56.40.0/24 +203.56.46.0/24 +203.56.48.0/21 +203.56.68.0/23 +203.56.82.0/23 +203.56.84.0/23 +203.56.95.0/24 +203.56.110.0/24 +203.56.121.0/24 +203.56.161.0/24 +203.56.169.0/24 +203.56.172.0/23 +203.56.175.0/24 +203.56.183.0/24 +203.56.185.0/24 +203.56.187.0/24 +203.56.192.0/24 +203.56.198.0/24 +203.56.201.0/24 +203.56.208.0/23 +203.56.210.0/24 +203.56.214.0/24 +203.56.216.0/24 +203.56.227.0/24 +203.56.228.0/24 +203.56.231.0/24 +203.56.232.0/24 +203.56.240.0/24 +203.56.252.0/24 +203.56.254.0/24 +203.57.5.0/24 +203.57.6.0/24 +203.57.12.0/23 +203.57.28.0/24 +203.57.39.0/24 +203.57.46.0/24 +203.57.58.0/24 +203.57.61.0/24 +203.57.66.0/24 +203.57.69.0/24 +203.57.70.0/23 +203.57.73.0/24 +203.57.90.0/24 +203.57.101.0/24 +203.57.109.0/24 +203.57.123.0/24 +203.57.157.0/24 +203.57.200.0/24 +203.57.202.0/24 +203.57.206.0/24 +203.57.222.0/24 +203.57.224.0/20 +203.57.246.0/23 +203.57.249.0/24 +203.57.253.0/24 +203.57.254.0/23 +203.62.2.0/24 +203.62.131.0/24 +203.62.139.0/24 +203.62.161.0/24 +203.62.197.0/24 +203.62.228.0/22 +203.62.234.0/24 +203.62.246.0/24 +203.76.160.0/22 +203.76.168.0/22 +203.76.208.0/22 +203.76.212.0/22 +203.76.216.0/22 +203.76.240.0/22 +203.76.244.0/22 +203.77.180.0/22 +203.78.48.0/20 +203.78.156.0/22 +203.79.0.0/20 +203.79.32.0/20 +203.80.4.0/23 +203.80.32.0/20 +203.80.57.0/24 +203.80.129.0/24 +203.80.132.0/22 +203.80.136.0/21 +203.80.144.0/20 +203.81.0.0/21 +203.81.16.0/20 +203.81.244.0/22 +203.82.0.0/23 +203.82.16.0/21 +203.82.112.0/22 +203.82.116.0/22 +203.82.120.0/22 +203.82.124.0/22 +203.82.224.0/22 +203.82.228.0/22 +203.82.232.0/22 +203.82.236.0/22 +203.83.0.0/22 +203.83.8.0/22 +203.83.12.0/22 +203.83.56.0/21 +203.83.224.0/20 +203.86.0.0/19 +203.86.32.0/19 +203.86.64.0/20 +203.86.80.0/20 +203.86.96.0/19 +203.86.250.0/24 +203.86.254.0/23 +203.88.32.0/19 +203.88.192.0/19 +203.89.8.0/21 +203.89.100.0/22 +203.89.133.0/24 +203.89.136.0/22 +203.89.144.0/24 +203.90.8.0/22 +203.90.12.0/22 +203.90.128.0/19 +203.90.160.0/19 +203.90.192.0/19 +203.91.32.0/19 +203.91.96.0/20 +203.91.120.0/21 +203.92.0.0/22 +203.92.6.0/24 +203.92.160.0/19 +203.93.0.0/22 +203.93.4.0/22 +203.93.8.0/24 +203.93.9.0/24 +203.93.10.0/23 +203.93.12.0/22 +203.93.16.0/20 +203.93.32.0/19 +203.93.64.0/18 +203.93.128.0/21 +203.93.136.0/22 +203.93.140.0/24 +203.93.141.0/24 +203.93.142.0/23 +203.93.144.0/20 +203.93.160.0/19 +203.93.192.0/18 +203.94.0.0/22 +203.94.4.0/22 +203.94.8.0/21 +203.94.16.0/20 +203.95.0.0/21 +203.95.96.0/20 +203.95.112.0/20 +203.95.128.0/18 +203.95.200.0/22 +203.95.204.0/22 +203.95.208.0/22 +203.95.224.0/19 +203.99.8.0/21 +203.99.16.0/20 +203.99.80.0/20 +203.100.32.0/20 +203.100.48.0/21 +203.100.58.0/24 +203.100.60.0/24 +203.100.63.0/24 +203.100.80.0/20 +203.100.96.0/19 +203.100.192.0/20 +203.104.32.0/20 +203.105.96.0/19 +203.105.128.0/19 +203.107.0.0/17 +203.110.160.0/19 +203.110.208.0/20 +203.110.232.0/23 +203.110.234.0/24 +203.114.80.0/22 +203.114.84.0/22 +203.114.88.0/22 +203.114.92.0/22 +203.114.244.0/22 +203.118.192.0/19 +203.118.241.0/24 +203.118.248.0/22 +203.119.24.0/21 +203.119.32.0/22 +203.119.80.0/22 +203.119.85.0/24 +203.119.113.0/24 +203.119.114.0/23 +203.119.116.0/22 +203.119.120.0/21 +203.119.128.0/17 +203.123.58.0/24 +203.128.32.0/19 +203.128.96.0/19 +203.128.224.0/21 +203.129.8.0/21 +203.130.32.0/19 +203.132.32.0/19 +203.134.240.0/21 +203.135.96.0/20 +203.135.112.0/20 +203.135.160.0/20 +203.142.219.0/24 +203.142.224.0/19 +203.144.96.0/19 +203.145.0.0/19 +203.148.0.0/18 +203.148.64.0/20 +203.148.80.0/22 +203.148.86.0/23 +203.149.92.0/22 +203.152.64.0/19 +203.152.128.0/19 +203.153.0.0/22 +203.156.192.0/18 +203.158.16.0/21 +203.160.52.0/22 +203.160.104.0/21 +203.160.129.0/24 +203.160.192.0/19 +203.161.0.0/22 +203.161.180.0/24 +203.161.183.0/24 +203.161.192.0/19 +203.166.160.0/19 +203.167.28.0/22 +203.168.0.0/19 +203.170.58.0/23 +203.171.0.0/22 +203.171.208.0/24 +203.171.224.0/20 +203.174.4.0/24 +203.174.6.0/24 +203.174.7.0/24 +203.174.96.0/19 +203.175.128.0/19 +203.175.192.0/18 +203.176.0.0/18 +203.176.64.0/19 +203.176.168.0/21 +203.184.80.0/20 +203.185.189.0/24 +203.187.160.0/19 +203.189.0.0/23 +203.189.6.0/23 +203.189.112.0/22 +203.189.192.0/19 +203.189.240.0/22 +203.190.96.0/20 +203.190.249.0/24 +203.191.0.0/23 +203.191.2.0/24 +203.191.5.0/24 +203.191.7.0/24 +203.191.16.0/20 +203.191.64.0/18 +203.191.133.0/24 +203.191.144.0/21 +203.191.152.0/21 +203.192.0.0/19 +203.193.224.0/19 +203.194.120.0/21 +203.195.64.0/19 +203.195.112.0/21 +203.195.128.0/17 +203.196.0.0/21 +203.196.8.0/21 +203.196.28.0/22 +203.201.181.0/24 +203.201.182.0/24 +203.202.236.0/22 +203.205.64.0/19 +203.205.128.0/17 +203.207.64.0/20 +203.207.80.0/21 +203.207.88.0/22 +203.207.92.0/22 +203.207.96.0/20 +203.207.112.0/20 +203.207.128.0/18 +203.207.192.0/21 +203.207.200.0/21 +203.207.208.0/20 +203.207.224.0/19 +203.208.32.0/19 +203.209.224.0/19 +203.212.0.0/20 +203.212.80.0/20 +203.215.232.0/21 +203.217.164.0/22 +203.223.16.0/21 +204.52.191.0/24 +210.2.0.0/20 +210.2.16.0/20 +210.5.0.0/19 +210.5.56.0/21 +210.5.128.0/20 +210.5.144.0/20 +210.7.56.0/22 +210.7.60.0/22 +210.12.0.0/18 +210.12.64.0/18 +210.12.128.0/18 +210.12.192.0/18 +210.13.0.0/18 +210.13.64.0/18 +210.13.128.0/17 +210.14.64.0/19 +210.14.112.0/20 +210.14.128.0/19 +210.14.160.0/19 +210.14.192.0/19 +210.14.224.0/19 +210.15.0.0/19 +210.15.32.0/19 +210.15.64.0/19 +210.15.96.0/19 +210.15.128.0/18 +210.16.104.0/22 +210.16.128.0/18 +210.21.0.0/17 +210.21.128.0/17 +210.22.0.0/16 +210.23.32.0/19 +210.25.0.0/16 +210.26.0.0/15 +210.28.0.0/14 +210.32.0.0/14 +210.36.0.0/14 +210.40.0.0/13 +210.51.0.0/16 +210.52.0.0/18 +210.52.64.0/18 +210.52.128.0/17 +210.53.0.0/17 +210.53.128.0/17 +210.56.192.0/19 +210.72.0.0/17 +210.72.128.0/19 +210.72.160.0/19 +210.72.192.0/18 +210.73.0.0/19 +210.73.32.0/19 +210.73.64.0/18 +210.73.128.0/17 +210.74.0.0/19 +210.74.32.0/19 +210.74.64.0/19 +210.74.96.0/19 +210.74.128.0/19 +210.74.160.0/19 +210.74.192.0/18 +210.75.0.0/17 +210.75.128.0/19 +210.75.160.0/19 +210.75.192.0/19 +210.75.224.0/19 +210.76.0.0/19 +210.76.32.0/19 +210.76.64.0/18 +210.76.128.0/18 +210.76.192.0/19 +210.76.224.0/19 +210.77.0.0/19 +210.77.32.0/19 +210.77.64.0/19 +210.77.96.0/19 +210.77.128.0/17 +210.78.0.0/19 +210.78.32.0/19 +210.78.64.0/18 +210.78.128.0/19 +210.78.160.0/19 +210.78.192.0/18 +210.79.64.0/18 +210.79.224.0/19 +210.82.0.0/15 +210.87.72.0/23 +210.87.114.0/23 +210.87.128.0/20 +210.87.144.0/20 +210.87.160.0/19 +210.185.192.0/18 +210.192.96.0/19 +211.64.0.0/14 +211.68.0.0/15 +211.70.0.0/15 +211.80.0.0/16 +211.81.0.0/16 +211.82.0.0/16 +211.83.0.0/16 +211.84.0.0/15 +211.86.0.0/15 +211.88.0.0/16 +211.89.0.0/16 +211.90.0.0/15 +211.92.0.0/15 +211.94.0.0/15 +211.96.0.0/15 +211.98.0.0/16 +211.99.0.0/18 +211.99.64.0/19 +211.99.96.0/19 +211.99.128.0/17 +211.100.0.0/16 +211.101.0.0/18 +211.101.64.0/18 +211.101.128.0/17 +211.102.0.0/16 +211.103.0.0/17 +211.103.128.0/17 +211.136.0.0/14 +211.140.0.0/15 +211.142.0.0/17 +211.142.128.0/17 +211.143.0.0/16 +211.144.0.0/15 +211.146.0.0/16 +211.147.0.0/17 +211.147.128.0/18 +211.147.192.0/20 +211.147.208.0/20 +211.147.224.0/19 +211.148.0.0/14 +211.152.0.0/15 +211.154.0.0/16 +211.155.0.0/18 +211.155.64.0/19 +211.155.96.0/19 +211.155.128.0/17 +211.156.0.0/18 +211.156.64.0/20 +211.156.80.0/20 +211.156.96.0/19 +211.156.128.0/19 +211.156.160.0/20 +211.156.176.0/20 +211.156.192.0/18 +211.157.0.0/16 +211.158.0.0/15 +211.160.0.0/14 +211.164.0.0/15 +211.166.0.0/16 +211.167.0.0/17 +211.167.128.0/19 +211.167.160.0/20 +211.167.176.0/20 +211.167.192.0/18 +212.64.0.0/17 +212.129.128.0/17 +218.0.0.0/16 +218.1.0.0/16 +218.2.0.0/15 +218.4.0.0/15 +218.6.0.0/16 +218.7.0.0/16 +218.8.0.0/15 +218.10.0.0/16 +218.11.0.0/16 +218.12.0.0/16 +218.13.0.0/16 +218.14.0.0/15 +218.16.0.0/14 +218.20.0.0/16 +218.21.0.0/17 +218.21.128.0/17 +218.22.0.0/15 +218.24.0.0/15 +218.26.0.0/16 +218.27.0.0/16 +218.28.0.0/15 +218.30.0.0/15 +218.56.0.0/14 +218.60.0.0/15 +218.62.0.0/17 +218.62.128.0/17 +218.63.0.0/16 +218.64.0.0/15 +218.66.0.0/16 +218.67.0.0/17 +218.67.128.0/17 +218.68.0.0/15 +218.70.0.0/15 +218.72.0.0/14 +218.76.0.0/15 +218.78.0.0/15 +218.80.0.0/14 +218.84.0.0/14 +218.88.0.0/13 +218.96.0.0/15 +218.98.0.0/17 +218.98.128.0/18 +218.98.192.0/19 +218.98.224.0/19 +218.99.0.0/16 +218.100.88.0/21 +218.100.96.0/19 +218.100.128.0/17 +218.104.0.0/17 +218.104.128.0/19 +218.104.160.0/19 +218.104.192.0/21 +218.104.200.0/21 +218.104.208.0/20 +218.104.224.0/19 +218.105.0.0/16 +218.106.0.0/15 +218.108.0.0/16 +218.109.0.0/16 +218.185.192.0/19 +218.185.240.0/21 +218.192.0.0/16 +218.193.0.0/16 +218.194.0.0/16 +218.195.0.0/16 +218.196.0.0/14 +218.200.0.0/14 +218.204.0.0/15 +218.206.0.0/15 +218.240.0.0/14 +218.244.0.0/18 +218.244.64.0/19 +218.244.96.0/19 +218.244.128.0/17 +218.245.0.0/16 +218.246.0.0/15 +218.249.0.0/16 +219.72.0.0/16 +219.82.0.0/16 +219.83.128.0/17 +219.90.68.0/22 +219.90.72.0/22 +219.90.76.0/22 +219.128.0.0/12 +219.144.0.0/14 +219.148.0.0/16 +219.149.0.0/17 +219.149.128.0/18 +219.149.192.0/18 +219.150.0.0/19 +219.150.32.0/19 +219.150.64.0/19 +219.150.96.0/20 +219.150.112.0/20 +219.150.128.0/17 +219.151.0.0/19 +219.151.32.0/19 +219.151.64.0/18 +219.151.128.0/17 +219.152.0.0/15 +219.154.0.0/15 +219.156.0.0/15 +219.158.0.0/17 +219.158.128.0/17 +219.159.0.0/18 +219.159.64.0/18 +219.159.128.0/17 +219.216.0.0/15 +219.218.0.0/15 +219.220.0.0/16 +219.221.0.0/16 +219.222.0.0/15 +219.224.0.0/15 +219.226.0.0/16 +219.227.0.0/16 +219.228.0.0/15 +219.230.0.0/15 +219.232.0.0/14 +219.236.0.0/15 +219.238.0.0/15 +219.242.0.0/15 +219.244.0.0/14 +220.101.192.0/18 +220.112.0.0/14 +220.152.128.0/17 +220.154.0.0/16 +220.155.0.0/16 +220.158.240.0/22 +220.160.0.0/11 +220.192.0.0/15 +220.194.0.0/15 +220.196.0.0/14 +220.200.0.0/13 +220.231.0.0/18 +220.231.128.0/17 +220.232.64.0/18 +220.234.0.0/16 +220.242.0.0/15 +220.247.136.0/21 +220.248.0.0/14 +220.252.0.0/16 +221.0.0.0/15 +221.2.0.0/16 +221.3.0.0/17 +221.3.128.0/17 +221.4.0.0/16 +221.5.0.0/17 +221.5.128.0/17 +221.6.0.0/16 +221.7.0.0/19 +221.7.32.0/19 +221.7.64.0/19 +221.7.96.0/19 +221.7.128.0/17 +221.8.0.0/15 +221.10.0.0/16 +221.11.0.0/17 +221.11.128.0/18 +221.11.192.0/19 +221.11.224.0/19 +221.12.0.0/17 +221.12.128.0/18 +221.13.0.0/18 +221.13.64.0/19 +221.13.96.0/19 +221.13.128.0/17 +221.14.0.0/15 +221.122.0.0/15 +221.128.128.0/17 +221.129.0.0/16 +221.130.0.0/15 +221.133.224.0/19 +221.136.0.0/16 +221.137.0.0/16 +221.172.0.0/14 +221.176.0.0/13 +221.192.0.0/15 +221.194.0.0/16 +221.195.0.0/16 +221.196.0.0/15 +221.198.0.0/16 +221.199.0.0/19 +221.199.32.0/20 +221.199.48.0/20 +221.199.64.0/18 +221.199.128.0/18 +221.199.192.0/20 +221.199.224.0/19 +221.200.0.0/14 +221.204.0.0/15 +221.206.0.0/16 +221.207.0.0/18 +221.207.64.0/18 +221.207.128.0/17 +221.208.0.0/14 +221.212.0.0/16 +221.213.0.0/16 +221.214.0.0/15 +221.216.0.0/13 +221.224.0.0/13 +221.232.0.0/14 +221.236.0.0/15 +221.238.0.0/16 +221.239.0.0/17 +221.239.128.0/17 +222.16.0.0/15 +222.18.0.0/15 +222.20.0.0/15 +222.22.0.0/16 +222.23.0.0/16 +222.24.0.0/15 +222.26.0.0/15 +222.28.0.0/14 +222.32.0.0/11 +222.64.0.0/13 +222.72.0.0/15 +222.74.0.0/16 +222.75.0.0/16 +222.76.0.0/14 +222.80.0.0/15 +222.82.0.0/16 +222.83.0.0/17 +222.83.128.0/17 +222.84.0.0/16 +222.85.0.0/17 +222.85.128.0/17 +222.86.0.0/15 +222.88.0.0/15 +222.90.0.0/15 +222.92.0.0/14 +222.125.0.0/16 +222.126.128.0/17 +222.128.0.0/14 +222.132.0.0/14 +222.136.0.0/13 +222.160.0.0/15 +222.162.0.0/16 +222.163.0.0/19 +222.163.32.0/19 +222.163.64.0/18 +222.163.128.0/17 +222.168.0.0/15 +222.170.0.0/15 +222.172.0.0/17 +222.172.128.0/17 +222.173.0.0/16 +222.174.0.0/15 +222.176.0.0/13 +222.184.0.0/13 +222.192.0.0/14 +222.196.0.0/15 +222.198.0.0/16 +222.199.0.0/16 +222.200.0.0/14 +222.204.0.0/15 +222.206.0.0/15 +222.208.0.0/13 +222.216.0.0/15 +222.218.0.0/16 +222.219.0.0/16 +222.220.0.0/15 +222.222.0.0/15 +222.240.0.0/13 +222.248.0.0/16 +222.249.0.0/17 +222.249.128.0/19 +222.249.160.0/20 +222.249.176.0/20 +222.249.192.0/18 +223.0.0.0/15 +223.2.0.0/15 +223.4.0.0/14 +223.8.0.0/13 +223.20.0.0/15 +223.27.184.0/22 +223.29.208.0/22 +223.29.252.0/22 +223.64.0.0/11 +223.96.0.0/12 +223.112.0.0/14 +223.116.0.0/15 +223.120.128.0/17 +223.121.128.0/17 +223.123.128.0/17 +223.124.0.0/14 +223.128.0.0/15 +223.144.0.0/12 +223.160.0.0/14 +223.166.0.0/15 +223.192.0.0/15 +223.198.0.0/15 +223.201.0.0/16 +223.202.0.0/15 +223.208.0.0/14 +223.212.0.0/15 +223.214.0.0/15 +223.220.0.0/15 +223.223.176.0/21 +223.223.184.0/21 +223.223.192.0/20 +223.240.0.0/13 +223.248.0.0/14 +223.252.128.0/17 +223.254.0.0/16 +223.255.0.0/17 +223.255.236.0/22 +223.255.252.0/23 \ No newline at end of file diff --git a/luci-app-openclash/root/etc/openclash/custom/openclash_custom_domain_dns_policy.list b/luci-app-openclash/root/etc/openclash/custom/openclash_custom_domain_dns_policy.list index 7f4c4e31b..0b01d7aef 100644 --- a/luci-app-openclash/root/etc/openclash/custom/openclash_custom_domain_dns_policy.list +++ b/luci-app-openclash/root/etc/openclash/custom/openclash_custom_domain_dns_policy.list @@ -1,5 +1,6 @@ #'www.baidu.com': '114.114.114.114' #'+.internal.crop.com': '10.0.0.1' +#"_vlmcs._tcp.lan": '127.0.0.1:53' #"geosite:category-games@cn": [https://doh.pub/dns-query, 114.114.114.114, 223.5.5.5] #"geosite:google": [tls://8.8.4.4, https://1.0.0.1/dns-query] #"geosite:cn": [https://doh.pub/dns-query, 114.114.114.114, 223.5.5.5] \ No newline at end of file diff --git a/luci-app-openclash/root/etc/openclash/custom/openclash_custom_sniffer.yaml b/luci-app-openclash/root/etc/openclash/custom/openclash_custom_sniffer.yaml index 480eb275e..75005f69f 100644 --- a/luci-app-openclash/root/etc/openclash/custom/openclash_custom_sniffer.yaml +++ b/luci-app-openclash/root/etc/openclash/custom/openclash_custom_sniffer.yaml @@ -7,7 +7,7 @@ sniffer: parse-pure-ip: true # 是否使用嗅探结果作为实际访问,默认 true # 全局配置,优先级低于 sniffer.sniff 实际配置 - override-destination: false + override-destination: true sniff: # TLS 和 QUIC 默认如果不配置 ports 默认嗅探 443 QUIC: ports: [ 443 ] diff --git a/luci-app-openclash/root/etc/uci-defaults/luci-openclash b/luci-app-openclash/root/etc/uci-defaults/luci-openclash index c7605649f..32775e645 100644 --- a/luci-app-openclash/root/etc/uci-defaults/luci-openclash +++ b/luci-app-openclash/root/etc/uci-defaults/luci-openclash @@ -21,28 +21,45 @@ mkdir -p /etc/openclash/core mkdir -p /etc/openclash/history mkdir -p /usr/share/openclash/backup -#Backup -cp -f "/etc/config/openclash" "/usr/share/openclash/backup/openclash" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_rules.list" "/usr/share/openclash/backup/openclash_custom_rules.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_rules_2.list" "/usr/share/openclash/backup/openclash_custom_rules_2.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_hosts.list" "/usr/share/openclash/backup/openclash_custom_hosts.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_fake_filter.list" "/usr/share/openclash/backup/openclash_custom_fake_filter.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_domain_dns.list" "/usr/share/openclash/backup/openclash_custom_domain_dns.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_domain_dns_policy.list" "/usr/share/openclash/backup/openclash_custom_domain_dns_policy.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_fallback_filter.yaml" "/usr/share/openclash/backup/openclash_custom_fallback_filter.yaml" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_sniffer.yaml" "/usr/share/openclash/backup/openclash_custom_sniffer.yaml" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_localnetwork_ipv4.list" "/usr/share/openclash/backup/openclash_custom_localnetwork_ipv4.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_localnetwork_ipv6.list" "/usr/share/openclash/backup/openclash_custom_localnetwork_ipv6.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_chnroute_pass.list" "/usr/share/openclash/backup/openclash_custom_chnroute_pass.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_chnroute6_pass.list" "/usr/share/openclash/backup/openclash_custom_chnroute6_pass.list" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_firewall_rules.sh" "/usr/share/openclash/backup/openclash_custom_firewall_rules.sh" >/dev/null 2>&1 -cp -f "/etc/openclash/custom/openclash_custom_overwrite.sh" "/usr/share/openclash/backup/openclash_custom_overwrite.sh" >/dev/null 2>&1 - mkdir -p /lib/upgrade/keep.d cat > "/lib/upgrade/keep.d/luci-app-openclash" <<-EOF /etc/openclash/ EOF +#Set Chnroute Format +FW4=$(command -v fw4) +if [ -n "$FW4" ]; then + #v4 + if [ -z "$(cat "/etc/openclash/china_ip_route.ipset" |grep "define china_ip_route")" ]; then + echo "define china_ip_route = {" >/tmp/china_ip_route.list + awk '!/^$/&&!/^#/{printf(" %s,'" "'\n",$0)}' /etc/openclash/china_ip_route.ipset >>/tmp/china_ip_route.list + echo "}" >>/tmp/china_ip_route.list + echo "add set inet fw4 china_ip_route { type ipv4_addr; flags interval; auto-merge; }" >>/tmp/china_ip_route.list + echo 'add element inet fw4 china_ip_route $china_ip_route' >>/tmp/china_ip_route.list + fi + #v6 + if [ -z "$(cat "/etc/openclash/china_ip6_route.ipset" |grep "define china_ip6_route")" ]; then + echo "define china_ip6_route = {" >/tmp/china_ip6_route.list + awk '!/^$/&&!/^#/{printf(" %s,'" "'\n",$0)}' /etc/openclash/china_ip6_route.ipset >>/tmp/china_ip6_route.list + echo "}" >>/tmp/china_ip6_route.list + echo "add set inet fw4 china_ip6_route { type ipv6_addr; flags interval; auto-merge; }" >>/tmp/china_ip6_route.list + echo 'add element inet fw4 china_ip6_route $china_ip6_route' >>/tmp/china_ip6_route.list + fi +else + #v4 + if [ -z "$(cat "/etc/openclash/china_ip_route.ipset" |grep "create china_ip_route")" ]; then + echo "create china_ip_route hash:net family inet hashsize 1024 maxelem 1000000" >/tmp/china_ip_route.list + awk '!/^$/&&!/^#/{printf("add china_ip_route %s'" "'\n",$0)}' /etc/openclash/china_ip_route.ipset >>/tmp/china_ip_route.list + fi + #v6 + if [ -z "$(cat "/etc/openclash/china_ip6_route.ipset" |grep "create china_ip6_route")" ]; then + echo "create china_ip6_route hash:net family inet6 hashsize 1024 maxelem 1000000" >/tmp/china_ip6_route.list + awk '!/^$/&&!/^#/{printf("add china_ip6_route %s'" "'\n",$0)}' /etc/openclash/china_ip6_route.ipset >>/tmp/china_ip6_route.list + fi +fi +mv -f /tmp/china_ip_route.list /etc/openclash/china_ip_route.ipset >/dev/null 2>&1 +mv -f /tmp/china_ip6_route.list /etc/openclash/china_ip6_route.ipset >/dev/null 2>&1 + #Set Dashboard Secret if [ -z "$(uci -q get openclash.config.dashboard_password)" ]; then uci -q set openclash.config.dashboard_password="$(tr -cd 'a-zA-Z0-9' /dev/null| head -c8 || date +%N| md5sum |head -c8)" @@ -100,12 +117,44 @@ fi uci -q commit openclash +#Backup +cp -f "/etc/config/openclash" "/usr/share/openclash/backup/openclash" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_rules.list" "/usr/share/openclash/backup/openclash_custom_rules.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_rules_2.list" "/usr/share/openclash/backup/openclash_custom_rules_2.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_hosts.list" "/usr/share/openclash/backup/openclash_custom_hosts.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_fake_filter.list" "/usr/share/openclash/backup/openclash_custom_fake_filter.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_domain_dns.list" "/usr/share/openclash/backup/openclash_custom_domain_dns.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_domain_dns_policy.list" "/usr/share/openclash/backup/openclash_custom_domain_dns_policy.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_fallback_filter.yaml" "/usr/share/openclash/backup/openclash_custom_fallback_filter.yaml" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_sniffer.yaml" "/usr/share/openclash/backup/openclash_custom_sniffer.yaml" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_localnetwork_ipv4.list" "/usr/share/openclash/backup/openclash_custom_localnetwork_ipv4.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_localnetwork_ipv6.list" "/usr/share/openclash/backup/openclash_custom_localnetwork_ipv6.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_chnroute_pass.list" "/usr/share/openclash/backup/openclash_custom_chnroute_pass.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_chnroute6_pass.list" "/usr/share/openclash/backup/openclash_custom_chnroute6_pass.list" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_firewall_rules.sh" "/usr/share/openclash/backup/openclash_custom_firewall_rules.sh" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_overwrite.sh" "/usr/share/openclash/backup/openclash_custom_overwrite.sh" >/dev/null 2>&1 +cp -f "/etc/openclash/custom/openclash_custom_overwrite.sh" "/usr/share/openclash/backup/openclash_custom_overwrite.sh" >/dev/null 2>&1 +cp -f "/etc/openclash/china_ip_route.ipset" "/usr/share/openclash/backup/china_ip_route.ipset" >/dev/null 2>&1 +cp -f "/etc/openclash/china_ip6_route.ipset" "/usr/share/openclash/backup/china_ip6_route.ipset" >/dev/null 2>&1 + #Restore if [ -f "/tmp/openclash.bak" ]; then #delete old geosite database first if [ "/etc/openclash/GeoSite.dat" -nt "/tmp/openclash/GeoSite.dat" ]; then rm -rf "/tmp/openclash/GeoSite.dat" >/dev/null 2>&1 fi + #delete error china_ip_route first + if [ -n "$FW4" ]; then + if [ -z "$(cat "/tmp/openclash/china_ip_route.ipset" |grep "define china_ip_route")" ]; then + rm -f "/tmp/openclash/china_ip_route.ipset" >/dev/null 2>&1 + rm -f "/tmp/openclash/china_ip6_route.ipset" >/dev/null 2>&1 + fi + else + if [ -z "$(cat "/tmp/openclash/china_ip_route.ipset" |grep "create china_ip_route")" ]; then + rm -f "/tmp/openclash/china_ip_route.ipset" >/dev/null 2>&1 + rm -f "/tmp/openclash/china_ip6_route.ipset" >/dev/null 2>&1 + fi + fi mv -f "/tmp/openclash.bak" "/etc/config/openclash" >/dev/null 2>&1 cp -rf "/tmp/openclash/." "/etc/openclash/" >/dev/null 2>&1 if [ -d "/tmp/openclash_dashboard/" ]; then diff --git a/luci-app-openclash/root/usr/share/openclash/clash_version.sh b/luci-app-openclash/root/usr/share/openclash/clash_version.sh index 17bba88d4..f2719ee3f 100644 --- a/luci-app-openclash/root/usr/share/openclash/clash_version.sh +++ b/luci-app-openclash/root/usr/share/openclash/clash_version.sh @@ -7,9 +7,11 @@ set_lock() { del_lock() { flock -u 884 2>/dev/null - rm -rf "/tmp/lock/openclash_clash_version.lock" + rm -rf "/tmp/lock/openclash_clash_version.lock" 2>/dev/null } +set_lock + TIME=$(date "+%Y-%m-%d-%H") CHTIME=$(date "+%Y-%m-%d-%H" -r "/tmp/clash_last_version" 2>/dev/null) LAST_OPVER="/tmp/clash_last_version" @@ -19,7 +21,6 @@ if [ -n "$1" ]; then github_address_mod="$1" fi LOG_FILE="/tmp/openclash.log" -set_lock if [ "$TIME" != "$CHTIME" ]; then if [ "$github_address_mod" != "0" ]; then diff --git a/luci-app-openclash/root/usr/share/openclash/openclash.sh b/luci-app-openclash/root/usr/share/openclash/openclash.sh index e933e2bf9..dc002db55 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash.sh @@ -3,6 +3,7 @@ . /usr/share/openclash/ruby.sh . /usr/share/openclash/openclash_ps.sh . /usr/share/openclash/log.sh +. /lib/functions/procd.sh set_lock() { exec 889>"/tmp/lock/openclash_subs.lock" 2>/dev/null @@ -11,9 +12,11 @@ set_lock() { del_lock() { flock -u 889 2>/dev/null - rm -rf "/tmp/lock/openclash_subs.lock" + rm -rf "/tmp/lock/openclash_subs.lock" 2>/dev/null } +set_lock + LOGTIME=$(echo $(date "+%Y-%m-%d %H:%M:%S")) LOG_FILE="/tmp/openclash.log" CFG_FILE="/tmp/yaml_sub_tmp_config.yaml" @@ -26,7 +29,6 @@ CLASH="/etc/openclash/clash" CLASH_CONFIG="/etc/openclash" restart=0 only_download=0 -set_lock urlencode() { if [ "$#" -eq 1 ]; then @@ -34,12 +36,7 @@ urlencode() { fi } -kill_watchdog() { - watchdog_pids=$(unify_ps_pids "openclash_watchdog.sh") - for watchdog_pid in $watchdog_pids; do - kill -9 "$watchdog_pid" >/dev/null 2>&1 - done - +kill_streaming_unlock() { streaming_unlock_pids=$(unify_ps_pids "openclash_streaming_unlock.lua") for streaming_unlock_pid in $streaming_unlock_pids; do kill -9 "$streaming_unlock_pid" >/dev/null 2>&1 @@ -50,7 +47,7 @@ config_test() { if [ -f "$CLASH" ]; then LOG_OUT "Config File Download Successful, Test If There is Any Errors..." - test_info=$(nohup $CLASH -t -d $CLASH_CONFIG -f "$CFG_FILE") + test_info=$($CLASH -t -d $CLASH_CONFIG -f "$CFG_FILE") local IFS=$'\n' for i in $test_info; do if [ -n "$(echo "$i" |grep "configuration file")" ]; then @@ -254,14 +251,15 @@ change_dns() { if pidof clash >/dev/null; then /etc/init.d/openclash reload "restore" >/dev/null 2>&1 - [ "$(unify_ps_status "openclash_watchdog.sh")" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && nohup /usr/share/openclash/openclash_watchdog.sh & + procd_send_signal "openclash" "openclash-watchdog" CONT fi } config_download_direct() { if pidof clash >/dev/null && [ "$router_self_proxy" = 1 ]; then - kill_watchdog + kill_streaming_unlock + procd_send_signal "openclash" "openclash-watchdog" STOP /etc/init.d/openclash reload "revert" >/dev/null 2>&1 sleep 3 @@ -358,7 +356,11 @@ convert_custom_param() return fi local p_name="${1%%=*}" p_value="${1#*=}" - append_custom_params="${append_custom_params}&${p_name}=$(urlencode "$p_value")" + if [ -z "$append_custom_params" ]; then + append_custom_params="&${p_name}=$(urlencode "$p_value")" + else + append_custom_params="${append_custom_params}\`$(urlencode "$p_value")" + fi } sub_info_get() @@ -383,7 +385,13 @@ sub_info_get() config_get "sub_ua" "$section" "sub_ua" "Clash" if [ "$enabled" -eq 0 ]; then - return + if [ -n "$2" ]; then + if [ "$2" != "$CONFIG_FILE" ] && [ "$2" != "$name" ]; then + return + fi + else + return + fi fi if [ -z "$address" ]; then @@ -415,7 +423,7 @@ sub_info_get() BACKPACK_FILE="/etc/openclash/backup/$name.yaml" fi - if [ -n "$2" ] && [ "$2" != "$CONFIG_FILE" ]; then + if [ -n "$2" ] && [ "$2" != "$CONFIG_FILE" ] && [ "$2" != "$name" ]; then return fi @@ -508,13 +516,13 @@ config_foreach sub_info_get "config_subscribe" "$1" uci -q delete openclash.config.config_update_path uci commit openclash -if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ]; then +if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & -elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then +elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & uci -q set openclash.config.restart=0 uci -q commit openclash -elif [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -gt 1 ]; then +elif [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then uci -q set openclash.config.restart=1 uci -q commit openclash else diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_chnroute.sh b/luci-app-openclash/root/usr/share/openclash/openclash_chnroute.sh index 9a884b26c..691bfb73a 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_chnroute.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_chnroute.sh @@ -2,7 +2,6 @@ . /usr/share/openclash/openclash_ps.sh . /usr/share/openclash/log.sh - FW4=$(command -v fw4) set_lock() { exec 879>"/tmp/lock/openclash_chn.lock" 2>/dev/null @@ -11,9 +10,12 @@ del_lock() { flock -u 879 2>/dev/null - rm -rf "/tmp/lock/openclash_chn.lock" + rm -rf "/tmp/lock/openclash_chn.lock" 2>/dev/null } + set_lock + + FW4=$(command -v fw4) china_ip_route=$(uci -q get openclash.config.china_ip_route) china_ip6_route=$(uci -q get openclash.config.china_ip6_route) CHNR_CUSTOM_URL=$(uci -q get openclash.config.chnr_custom_url) @@ -24,7 +26,7 @@ en_mode=$(uci -q get openclash.config.en_mode) LOG_FILE="/tmp/openclash.log" restart=0 - set_lock + if [ "$small_flash_memory" != "1" ]; then chnr_path="/etc/openclash/china_ip_route.ipset" @@ -111,9 +113,9 @@ LOG_OUT "Chnroute6 Cidr List Update Error, Please Try Again Later..." fi - if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ]; then + if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & - elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & uci -q set openclash.config.restart=0 uci -q commit openclash diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_core.sh b/luci-app-openclash/root/usr/share/openclash/openclash_core.sh index f96eb5b90..6d16e329a 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_core.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_core.sh @@ -3,6 +3,18 @@ . /usr/share/openclash/openclash_ps.sh . /usr/share/openclash/log.sh +set_lock() { + exec 872>"/tmp/lock/openclash_core.lock" 2>/dev/null + flock -x 872 2>/dev/null +} + +del_lock() { + flock -u 872 2>/dev/null + rm -rf "/tmp/lock/openclash_core.lock" 2>/dev/null +} + +set_lock + github_address_mod=$(uci -q get openclash.config.github_address_mod || echo 0) if [ "$github_address_mod" = "0" ] && [ -z "$(echo $2 2>/dev/null |grep -E 'http|one_key_update')" ] && [ -z "$(echo $3 2>/dev/null |grep 'http')" ]; then LOG_OUT "Tip: If the download fails, try setting the CDN in Overwrite Settings - General Settings - Github Address Modify Options" @@ -29,6 +41,7 @@ fi if [ ! -f "/tmp/clash_last_version" ]; then LOG_OUT "Error: 【"$CORE_TYPE"】Core Version Check Error, Please Try Again Later..." SLOG_CLEAN + del_lock exit 0 fi @@ -77,6 +90,7 @@ if [ "$CORE_CV" != "$CORE_LV" ] || [ -z "$CORE_CV" ]; then LOG_OUT "【"$CORE_TYPE"】Core Update Failed. Please Make Sure Enough Flash Memory Space or Selected Correct Core Platform And Try Again!" rm -rf /tmp/clash_meta >/dev/null 2>&1 SLOG_CLEAN + del_lock exit 0 fi @@ -85,10 +99,10 @@ if [ "$CORE_CV" != "$CORE_LV" ] || [ -z "$CORE_CV" ]; then if [ "$?" == "0" ]; then LOG_OUT "【"$CORE_TYPE"】Core Update Successful!" if [ "$if_restart" -eq 1 ]; then - uci -q set openclash.config.config_reload=1 + uci -q set openclash.config.restart=1 uci -q commit openclash - if ([ -z "$2" ] || ([ -n "$2" ] && [ "$2" != "one_key_update" ])) && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then - uci -q set openclash.config.config_reload=0 + if ([ -z "$2" ] || ([ -n "$2" ] && [ "$2" != "one_key_update" ])) && [ "$(unify_ps_prevent)" -eq 0 ]; then + uci -q set openclash.config.restart=0 uci -q commit openclash /etc/init.d/openclash restart >/dev/null 2>&1 & fi @@ -113,4 +127,4 @@ else fi rm -rf /tmp/clash_meta >/dev/null 2>&1 - +del_lock diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_debug.sh b/luci-app-openclash/root/usr/share/openclash/openclash_debug.sh index 22c83fc6e..d188aa648 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_debug.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_debug.sh @@ -9,7 +9,7 @@ set_lock() { del_lock() { flock -u 885 2>/dev/null - rm -rf "/tmp/lock/openclash_debug.lock" + rm -rf "/tmp/lock/openclash_debug.lock" 2>/dev/null } ipk_v() @@ -21,10 +21,10 @@ ipk_v() fi } -DEBUG_LOG="/tmp/openclash_debug.log" -LOGTIME=$(echo $(date "+%Y-%m-%d %H:%M:%S")) set_lock +DEBUG_LOG="/tmp/openclash_debug.log" +LOGTIME=$(echo $(date "+%Y-%m-%d %H:%M:%S")) enable_custom_dns=$(uci -q get openclash.config.enable_custom_dns) rule_source=$(uci -q get openclash.config.rule_source) enable_custom_clash_rules=$(uci -q get openclash.config.enable_custom_clash_rules) @@ -139,15 +139,11 @@ cat >> "$DEBUG_LOG" <<-EOF dnsmasq-full: $(ts_re "$(ipk_v "dnsmasq-full")") dnsmasq-full(ipset): $(ts_re "$(dnsmasq --version |grep -v no-ipset |grep ipset)") dnsmasq-full(nftset): $(ts_re "$(dnsmasq --version |grep nftset)") -coreutils: $(ts_re "$(ipk_v "coreutils")") -coreutils-nohup: $(ts_re "$(ipk_v "coreutils-nohup")") bash: $(ts_re "$(ipk_v "bash")") curl: $(ts_re "$(ipk_v "curl")") -ca-certificates: $(ts_re "$(ipk_v "ca-certificates")") +ca-bundle: $(ts_re "$(ipk_v "ca-bundle")") ipset: $(ts_re "$(ipk_v "ipset")") ip-full: $(ts_re "$(ipk_v "ip-full")") -libcap: $(ts_re "$(ipk_v "libcap")") -libcap-bin: $(ts_re "$(ipk_v "libcap-bin")") ruby: $(ts_re "$(ipk_v "ruby")") ruby-yaml: $(ts_re "$(ipk_v "ruby-yaml")") ruby-psych: $(ts_re "$(ipk_v "ruby-psych")") @@ -182,7 +178,6 @@ cat >> "$DEBUG_LOG" <<-EOF 运行状态: 运行中 运行内核:$core_type 进程pid: $(pidof clash) -运行权限: `getpcaps $(pidof clash)` 运行用户: $(ps |grep "/etc/openclash/clash" |grep -v grep |awk '{print $2}' 2>/dev/null) EOF else diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_download_dashboard.sh b/luci-app-openclash/root/usr/share/openclash/openclash_download_dashboard.sh index d1f31b8b4..81484ca2e 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_download_dashboard.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_download_dashboard.sh @@ -2,6 +2,18 @@ . /usr/share/openclash/log.sh . /lib/functions.sh + set_lock() { + exec 871>"/tmp/lock/openclash_dashboard.lock" 2>/dev/null + flock -x 871 2>/dev/null + } + + del_lock() { + flock -u 871 2>/dev/null + rm -rf "/tmp/lock/openclash_dashboard.lock" 2>/dev/null + } + + set_lock + DASH_NAME="$1" DASH_TYPE="$2" DASH_FILE_DIR="/tmp/dash.zip" @@ -28,6 +40,11 @@ DOWNLOAD_PATH="https://codeload.github.com/MetaCubeX/Yacd-meta/zip/refs/heads/gh-pages" FILE_PATH_INCLUDE="Yacd-meta-gh-pages" fi + elif [ "$DASH_NAME" == "zashboard" ]; then + UNPACK_FILE_DIR="/usr/share/openclash/ui/zashboard/" + BACKUP_FILE_DIR="/usr/share/openclash/ui/zashboard_backup/" + DOWNLOAD_PATH="https://codeload.github.com/Zephyruso/zashboard/zip/refs/heads/gh-pages" + FILE_PATH_INCLUDE="zashboard-gh-pages" else UNPACK_FILE_DIR="/usr/share/openclash/ui/metacubexd/" BACKUP_FILE_DIR="/usr/share/openclash/ui/metacubexd_backup/" @@ -49,6 +66,7 @@ rm -rf "$BACKUP_FILE_DIR" >/dev/null 2>&1 rm -rf "$DASH_FILE_TMP" >/dev/null 2>&1 LOG_OUT "Control Panel【$DASH_NAME - $DASH_TYPE】Download Successful!" && SLOG_CLEAN + del_lock exit 1 else LOG_OUT "Control Panel【$DASH_NAME - $DASH_TYPE】Unzip Error!" && SLOG_CLEAN @@ -56,6 +74,7 @@ rm -rf "$DASH_FILE_DIR" >/dev/null 2>&1 rm -rf "$BACKUP_FILE_DIR" >/dev/null 2>&1 rm -rf "$DASH_FILE_TMP" >/dev/null 2>&1 + del_lock exit 2 fi else @@ -64,6 +83,7 @@ rm -rf "$DASH_FILE_DIR" >/dev/null 2>&1 rm -rf "$BACKUP_FILE_DIR" >/dev/null 2>&1 rm -rf "$DASH_FILE_TMP" >/dev/null 2>&1 + del_lock exit 2 fi else @@ -72,5 +92,8 @@ rm -rf "$DASH_FILE_DIR" >/dev/null 2>&1 rm -rf "$DASH_FILE_TMP" >/dev/null 2>&1 LOG_OUT "Control Panel【$DASH_NAME - $DASH_TYPE】Download Error!" && SLOG_CLEAN + del_lock exit 0 fi + + del_lock diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_download_rule_list.sh b/luci-app-openclash/root/usr/share/openclash/openclash_download_rule_list.sh index 11d4a9b68..9ff636c40 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_download_rule_list.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_download_rule_list.sh @@ -2,11 +2,23 @@ . /usr/share/openclash/log.sh . /lib/functions.sh -urlencode() { - if [ "$#" -eq 1 ]; then - echo "$(/usr/share/openclash/openclash_urlencode.lua "$1")" - fi -} + urlencode() { + if [ "$#" -eq 1 ]; then + echo "$(/usr/share/openclash/openclash_urlencode.lua "$1")" + fi + } + + set_lock() { + exec 870>"/tmp/lock/openclash_rulelist.lock" 2>/dev/null + flock -x 870 2>/dev/null + } + + del_lock() { + flock -u 870 2>/dev/null + rm -rf "/tmp/lock/openclash_rulelist.lock" 2>/dev/null + } + + set_lock RULE_FILE_NAME="$1" LOG_FILE="/tmp/openclash.log" @@ -25,6 +37,7 @@ urlencode() { if [ -z "$DOWNLOAD_PATH" ]; then LOG_OUT "Rule File【$RULE_FILE_NAME】Download Error!" && SLOG_CLEAN + del_lock exit 0 fi @@ -70,15 +83,20 @@ urlencode() { fi rm -rf "$TMP_RULE_DIR" >/dev/null 2>&1 LOG_OUT "Rule File【$RULE_FILE_NAME】Download Successful!" && SLOG_CLEAN + del_lock exit 1 else LOG_OUT "Rule File【$RULE_FILE_NAME】No Change, Do Nothing!" && SLOG_CLEAN rm -rf "$TMP_RULE_DIR" >/dev/null 2>&1 rm -rf "$TMP_RULE_DIR_TMP" >/dev/null 2>&1 + del_lock exit 2 fi else rm -rf "$TMP_RULE_DIR" >/dev/null 2>&1 LOG_OUT "Rule File【$RULE_FILE_NAME】Download Error!" && SLOG_CLEAN + del_lock exit 0 fi + + del_lock diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_geoip.sh b/luci-app-openclash/root/usr/share/openclash/openclash_geoip.sh index 0140e0ff0..5b9e9f5cd 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_geoip.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_geoip.sh @@ -9,16 +9,17 @@ del_lock() { flock -u 873 2>/dev/null - rm -rf "/tmp/lock/openclash_geoip.lock" + rm -rf "/tmp/lock/openclash_geoip.lock" 2>/dev/null } + set_lock + small_flash_memory=$(uci get openclash.config.small_flash_memory 2>/dev/null) GEOIP_CUSTOM_URL=$(uci get openclash.config.geoip_custom_url 2>/dev/null) github_address_mod=$(uci -q get openclash.config.github_address_mod || echo 0) LOG_FILE="/tmp/openclash.log" restart=0 - set_lock - + if [ "$small_flash_memory" != "1" ]; then geoip_path="/etc/openclash/GeoIP.dat" mkdir -p /etc/openclash @@ -56,9 +57,9 @@ LOG_OUT "GeoIP Dat Update Error, Please Try Again Later..." fi - if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ]; then + if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & - elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & uci -q set openclash.config.restart=0 uci -q commit openclash diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_geosite.sh b/luci-app-openclash/root/usr/share/openclash/openclash_geosite.sh index 64a20cfba..820a61bff 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_geosite.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_geosite.sh @@ -9,15 +9,16 @@ del_lock() { flock -u 874 2>/dev/null - rm -rf "/tmp/lock/openclash_geosite.lock" + rm -rf "/tmp/lock/openclash_geosite.lock" 2>/dev/null } + + set_lock small_flash_memory=$(uci get openclash.config.small_flash_memory 2>/dev/null) GEOSITE_CUSTOM_URL=$(uci get openclash.config.geosite_custom_url 2>/dev/null) github_address_mod=$(uci -q get openclash.config.github_address_mod || echo 0) LOG_FILE="/tmp/openclash.log" restart=0 - set_lock if [ "$small_flash_memory" != "1" ]; then geosite_path="/etc/openclash/GeoSite.dat" @@ -56,9 +57,9 @@ LOG_OUT "GeoSite Database Update Error, Please Try Again Later..." fi - if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ]; then + if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & - elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & uci -q set openclash.config.restart=0 uci -q commit openclash diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_get_network.lua b/luci-app-openclash/root/usr/share/openclash/openclash_get_network.lua index 52fe50622..13e282b6a 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_get_network.lua +++ b/luci-app-openclash/root/usr/share/openclash/openclash_get_network.lua @@ -4,6 +4,8 @@ require "nixio" require "luci.util" require "luci.sys" local ntm = require "luci.model.network".init() +local cidr = require "luci.ip" +local fs = require "luci.openclash" local type = arg[1] local rv = {} local wan, wan6 @@ -30,6 +32,7 @@ if wan then for i = 1, #wan do rv.wan[i] = { ipaddr = wan[i]:ipaddr(), + ip6addr = wan[i]:ip6addr(), gwaddr = wan[i]:gwaddr(), netmask = wan[i]:netmask(), dns = wan[i]:dnsaddrs(), @@ -150,4 +153,33 @@ if type == "wanip6" then end end +if type == "lan_cidr" then + if wan then + for o = 1, #(rv.wan) do + if rv.wan[o].proto ~= "pppoe" then + if rv.wan[o].ipaddr and rv.wan[o].netmask then + local network = cidr.IPv4(rv.wan[o].ipaddr, rv.wan[o].netmask):network():string() + local prefix = cidr.IPv4(rv.wan[o].ipaddr, rv.wan[o].netmask):prefix() + print(network.."/"..prefix) + end + end + end + end +end + +if type == "lan_cidr6" then + if wan then + for o = 1, #(rv.wan) do + if rv.wan[o].proto ~= "pppoe" then + if rv.wan[o].ip6addr then + local ip6, prefix = rv.wan[o].ip6addr:match("([^/]+)/(%d+)") + local network = cidr.IPv6(ip6, tonumber(prefix)):network():string() + local prefix = cidr.IPv6(ip6, tonumber(prefix)):prefix() + print(network.."/"..prefix) + end + end + end + end +end + os.exit(0) \ No newline at end of file diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_history_get.sh b/luci-app-openclash/root/usr/share/openclash/openclash_history_get.sh index a7f4bfd91..ae2af7427 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_history_get.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_history_get.sh @@ -9,7 +9,7 @@ set_lock() { del_lock() { flock -u 881 2>/dev/null - rm -rf "/tmp/lock/openclash_history_get.lock" + rm -rf "/tmp/lock/openclash_history_get.lock" 2>/dev/null } close_all_conection() { @@ -24,8 +24,11 @@ close_all_conection() { curl -m 2 -H "Authorization: Bearer ${SECRET}" -H "Content-Type:application/json" -X DELETE http://"$LAN_IP":"$PORT"/connections >/dev/null 2>&1 } +set_lock + if [ "$1" = "close_all_conection" ]; then close_all_conection + del_lock exit 0 fi @@ -38,8 +41,6 @@ core_version=$(uci -q get openclash.config.core_version || echo 0) CACHE_PATH_OLD="/etc/openclash/.cache" source "/etc/openwrt_release" -set_lock - if [ -z "$CONFIG_FILE" ] || [ ! -f "$CONFIG_FILE" ]; then CONFIG_FILE=$(uci get openclash.config.config_path 2>/dev/null) CONFIG_NAME=$(echo "$CONFIG_FILE" |awk -F '/' '{print $5}' 2>/dev/null) diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_ipdb.sh b/luci-app-openclash/root/usr/share/openclash/openclash_ipdb.sh index aa74324a4..bc0f01b04 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_ipdb.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_ipdb.sh @@ -9,15 +9,16 @@ del_lock() { flock -u 880 2>/dev/null - rm -rf "/tmp/lock/openclash_ipdb.lock" + rm -rf "/tmp/lock/openclash_ipdb.lock" 2>/dev/null } + + set_lock small_flash_memory=$(uci get openclash.config.small_flash_memory 2>/dev/null) GEOIP_CUSTOM_URL=$(uci get openclash.config.geo_custom_url 2>/dev/null) github_address_mod=$(uci -q get openclash.config.github_address_mod || echo 0) LOG_FILE="/tmp/openclash.log" restart=0 - set_lock if [ "$small_flash_memory" != "1" ]; then geoip_path="/etc/openclash/Country.mmdb" @@ -55,9 +56,9 @@ LOG_OUT "Geoip Database Update Error, Please Try Again Later..." fi - if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ]; then + if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & - elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & uci -q set openclash.config.restart=0 uci -q commit openclash diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh b/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh index a494563c5..4b9b27dc7 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh @@ -11,116 +11,117 @@ del_lock() { flock -u 877 2>/dev/null - rm -rf "/tmp/lock/openclash_rule.lock" + rm -rf "/tmp/lock/openclash_rule.lock" 2>/dev/null } yml_other_rules_dl() { - local section="$1" - local enabled config - config_get_bool "enabled" "$section" "enabled" "1" - config_get "config" "$section" "config" "" - - if [ "$enabled" = "0" ] || [ "$config" != "$2" ]; then - return - fi - - if [ -n "$rule_name" ]; then - LOG_OUT "Warrning: Multiple Other-Rules-Configurations Enabled, Ignore..." - return - fi - - config_get "rule_name" "$section" "rule_name" "" - - LOG_OUT "Start Downloading Third Party Rules in Use..." - if [ "$rule_name" = "lhie1" ]; then - if [ "$github_address_mod" != "0" ]; then - if [ "$github_address_mod" == "https://cdn.jsdelivr.net/" ] || [ "$github_address_mod" == "https://fastly.jsdelivr.net/" ] || [ "$github_address_mod" == "https://testingcf.jsdelivr.net/" ]; then - curl -SsL --connect-timeout 30 -m 60 --speed-time 30 --speed-limit 1 --retry 2 "$github_address_mod"gh/dler-io/Rules@master/Clash/Rule.yaml -o /tmp/rules.yaml 2>&1 |sed ':a;N;$!ba; s/\n/ /g' | awk -v time="$(date "+%Y-%m-%d %H:%M:%S")" -v file="/tmp/rules.yaml" '{print time "【" file "】Download Failed:【"$0"】"}' >> "$LOG_FILE" - else - curl -SsL --connect-timeout 30 -m 60 --speed-time 30 --speed-limit 1 --retry 2 "$github_address_mod"https://raw.githubusercontent.com/dler-io/Rules/master/Clash/Rule.yaml -o /tmp/rules.yaml 2>&1 |sed ':a;N;$!ba; s/\n/ /g' | awk -v time="$(date "+%Y-%m-%d %H:%M:%S")" -v file="/tmp/rules.yaml" '{print time "【" file "】Download Failed:【"$0"】"}' >> "$LOG_FILE" - fi - else - curl -SsL --connect-timeout 30 -m 60 --speed-time 30 --speed-limit 1 --retry 2 https://raw.githubusercontent.com/dler-io/Rules/master/Clash/Rule.yaml -o /tmp/rules.yaml 2>&1 |sed ':a;N;$!ba; s/\n/ /g' | awk -v time="$(date "+%Y-%m-%d %H:%M:%S")" -v file="/tmp/rules.yaml" '{print time "【" file "】Download Failed:【"$0"】"}' >> "$LOG_FILE" + local section="$1" + local enabled config + config_get_bool "enabled" "$section" "enabled" "1" + config_get "config" "$section" "config" "" + + if [ "$enabled" = "0" ] || [ "$config" != "$2" ]; then + return fi - sed -i '1i rules:' /tmp/rules.yaml - fi - if [ -s "/tmp/rules.yaml" ]; then - LOG_OUT "Download Successful, Start Preprocessing Rule File..." - ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e " - begin - YAML.load_file('/tmp/rules.yaml'); - rescue Exception => e - YAML.LOG('Error: Unable To Parse Updated Rules File,【${rule_name}:' + e.message + '】'); - system 'rm -rf /tmp/rules.yaml 2>/dev/null'; - end - " 2>/dev/null >> $LOG_FILE - if [ $? -ne 0 ]; then - LOG_OUT "Error: Ruby Works Abnormally, Please Check The Ruby Library Depends!" - rm -rf /tmp/rules.yaml >/dev/null 2>&1 - SLOG_CLEAN - del_lock - exit 0 - elif [ ! -f "/tmp/rules.yaml" ]; then - LOG_OUT "Error:【$rule_name】Rule File Format Validation Failed, Please Try Again Later..." - rm -rf /tmp/rules.yaml >/dev/null 2>&1 - SLOG_CLEAN - del_lock - exit 0 - elif ! "$(ruby_read "/tmp/rules.yaml" ".key?('rules')")" ; then - LOG_OUT "Error: Updated Others Rules【$rule_name】Has No Rules Field, Update Exit..." - rm -rf /tmp/rules.yaml >/dev/null 2>&1 - SLOG_CLEAN - del_lock - exit 0 - #校验是否含有新策略组 - elif ! "$(ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e " - Value = YAML.load_file('/usr/share/openclash/res/${rule_name}.yaml'); - Value_1 = YAML.load_file('/tmp/rules.yaml'); - OLD_GROUP = Value['rules'].collect{|x| x.split(',')[2] or x.split(',')[1]}.uniq.map(&:strip); - NEW_GROUP = Value_1['rules'].collect{|x| x.split(',')[2] or x.split(',')[1]}.uniq.map(&:strip); - if (OLD_GROUP | NEW_GROUP).eql?(OLD_GROUP) then - if (OLD_GROUP | NEW_GROUP).eql?(NEW_GROUP) then - puts true + + if [ -n "$rule_name" ]; then + LOG_OUT "Warrning: Multiple Other-Rules-Configurations Enabled, Ignore..." + return + fi + + config_get "rule_name" "$section" "rule_name" "" + + LOG_OUT "Start Downloading Third Party Rules in Use..." + if [ "$rule_name" = "lhie1" ]; then + if [ "$github_address_mod" != "0" ]; then + if [ "$github_address_mod" == "https://cdn.jsdelivr.net/" ] || [ "$github_address_mod" == "https://fastly.jsdelivr.net/" ] || [ "$github_address_mod" == "https://testingcf.jsdelivr.net/" ]; then + curl -SsL --connect-timeout 30 -m 60 --speed-time 30 --speed-limit 1 --retry 2 "$github_address_mod"gh/dler-io/Rules@master/Clash/Rule.yaml -o /tmp/rules.yaml 2>&1 |sed ':a;N;$!ba; s/\n/ /g' | awk -v time="$(date "+%Y-%m-%d %H:%M:%S")" -v file="/tmp/rules.yaml" '{print time "【" file "】Download Failed:【"$0"】"}' >> "$LOG_FILE" + else + curl -SsL --connect-timeout 30 -m 60 --speed-time 30 --speed-limit 1 --retry 2 "$github_address_mod"https://raw.githubusercontent.com/dler-io/Rules/master/Clash/Rule.yaml -o /tmp/rules.yaml 2>&1 |sed ':a;N;$!ba; s/\n/ /g' | awk -v time="$(date "+%Y-%m-%d %H:%M:%S")" -v file="/tmp/rules.yaml" '{print time "【" file "】Download Failed:【"$0"】"}' >> "$LOG_FILE" + fi + else + curl -SsL --connect-timeout 30 -m 60 --speed-time 30 --speed-limit 1 --retry 2 https://raw.githubusercontent.com/dler-io/Rules/master/Clash/Rule.yaml -o /tmp/rules.yaml 2>&1 |sed ':a;N;$!ba; s/\n/ /g' | awk -v time="$(date "+%Y-%m-%d %H:%M:%S")" -v file="/tmp/rules.yaml" '{print time "【" file "】Download Failed:【"$0"】"}' >> "$LOG_FILE" + fi + sed -i '1i rules:' /tmp/rules.yaml + fi + if [ -s "/tmp/rules.yaml" ]; then + LOG_OUT "Download Successful, Start Preprocessing Rule File..." + ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e " + begin + YAML.load_file('/tmp/rules.yaml'); + rescue Exception => e + YAML.LOG('Error: Unable To Parse Updated Rules File,【${rule_name}:' + e.message + '】'); + system 'rm -rf /tmp/rules.yaml 2>/dev/null'; + end + " 2>/dev/null >> $LOG_FILE + if [ $? -ne 0 ]; then + LOG_OUT "Error: Ruby Works Abnormally, Please Check The Ruby Library Depends!" + rm -rf /tmp/rules.yaml >/dev/null 2>&1 + SLOG_CLEAN + del_lock + exit 0 + elif [ ! -f "/tmp/rules.yaml" ]; then + LOG_OUT "Error:【$rule_name】Rule File Format Validation Failed, Please Try Again Later..." + rm -rf /tmp/rules.yaml >/dev/null 2>&1 + SLOG_CLEAN + del_lock + exit 0 + elif ! "$(ruby_read "/tmp/rules.yaml" ".key?('rules')")" ; then + LOG_OUT "Error: Updated Others Rules【$rule_name】Has No Rules Field, Update Exit..." + rm -rf /tmp/rules.yaml >/dev/null 2>&1 + SLOG_CLEAN + del_lock + exit 0 + #校验是否含有新策略组 + elif ! "$(ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e " + Value = YAML.load_file('/usr/share/openclash/res/${rule_name}.yaml'); + Value_1 = YAML.load_file('/tmp/rules.yaml'); + OLD_GROUP = Value['rules'].collect{|x| x.split(',')[2] or x.split(',')[1]}.uniq.map(&:strip); + NEW_GROUP = Value_1['rules'].collect{|x| x.split(',')[2] or x.split(',')[1]}.uniq.map(&:strip); + if (OLD_GROUP | NEW_GROUP).eql?(OLD_GROUP) then + if (OLD_GROUP | NEW_GROUP).eql?(NEW_GROUP) then + puts true + else + puts false + end else puts false end + ")" && [ -f "/usr/share/openclash/res/${rule_name}.yaml" ]; then + LOG_OUT "Error: Updated Others Rules【$rule_name】Has Incompatible Proxy-Group, Update Exit, Please Wait For OpenClash Update To Adapt..." + rm -rf /tmp/rules.yaml >/dev/null 2>&1 + SLOG_CLEAN + del_lock + exit 0 + fi + + #取出规则部分 + ruby_read "/tmp/rules.yaml" ".select {|x| 'rule-providers' == x or 'rules' == x }.to_yaml" > "$OTHER_RULE_FILE" + #合并 + cat "$OTHER_RULE_FILE" > "/tmp/rules.yaml" 2>/dev/null + rm -rf /tmp/other_rule* 2>/dev/null + + LOG_OUT "Check The Downloaded Rule File For Updates..." + cmp -s /usr/share/openclash/res/"$rule_name".yaml /tmp/rules.yaml + if [ "$?" -ne "0" ]; then + LOG_OUT "Detected that The Downloaded Rule File Has Been Updated, Starting To Replace..." + mv /tmp/rules.yaml /usr/share/openclash/res/"$rule_name".yaml >/dev/null 2>&1 + LOG_OUT "Other Rules【$rule_name】Update Successful!" + restart=1 else - puts false - end - ")" && [ -f "/usr/share/openclash/res/${rule_name}.yaml" ]; then - LOG_OUT "Error: Updated Others Rules【$rule_name】Has Incompatible Proxy-Group, Update Exit, Please Wait For OpenClash Update To Adapt..." - rm -rf /tmp/rules.yaml >/dev/null 2>&1 - SLOG_CLEAN - del_lock - exit 0 - fi - - #取出规则部分 - ruby_read "/tmp/rules.yaml" ".select {|x| 'rule-providers' == x or 'rules' == x }.to_yaml" > "$OTHER_RULE_FILE" - #合并 - cat "$OTHER_RULE_FILE" > "/tmp/rules.yaml" 2>/dev/null - rm -rf /tmp/other_rule* 2>/dev/null - - LOG_OUT "Check The Downloaded Rule File For Updates..." - cmp -s /usr/share/openclash/res/"$rule_name".yaml /tmp/rules.yaml - if [ "$?" -ne "0" ]; then - LOG_OUT "Detected that The Downloaded Rule File Has Been Updated, Starting To Replace..." - mv /tmp/rules.yaml /usr/share/openclash/res/"$rule_name".yaml >/dev/null 2>&1 - LOG_OUT "Other Rules【$rule_name】Update Successful!" - restart=1 + LOG_OUT "Updated Other Rules【$rule_name】No Change, Do Nothing!" + fi else - LOG_OUT "Updated Other Rules【$rule_name】No Change, Do Nothing!" + LOG_OUT "Other Rules【$rule_name】Update Error, Please Try Again Later..." fi - else - LOG_OUT "Other Rules【$rule_name】Update Error, Please Try Again Later..." - fi } + + set_lock LOG_FILE="/tmp/openclash.log" RUlE_SOURCE=$(uci get openclash.config.rule_source 2>/dev/null) github_address_mod=$(uci -q get openclash.config.github_address_mod || echo 0) - set_lock if [ "$RUlE_SOURCE" = "0" ]; then LOG_OUT "Other Rules Not Enable, Update Stop!" @@ -151,9 +152,9 @@ if [ -z "$rule_name" ]; then LOG_OUT "Get Other Rules Settings Faild, Update Stop!" fi - if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ]; then + if [ "$restart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & - elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(find /tmp/lock/ |grep -v "openclash.lock" |grep -c "openclash")" -le 1 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + elif [ "$restart" -eq 0 ] && [ "$(unify_ps_prevent)" -eq 0 ] && [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then /etc/init.d/openclash restart >/dev/null 2>&1 & uci -q set openclash.config.restart=0 uci -q commit openclash diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_streaming_unlock.lua b/luci-app-openclash/root/usr/share/openclash/openclash_streaming_unlock.lua index 27d1ee1a2..d734d6156 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_streaming_unlock.lua +++ b/luci-app-openclash/root/usr/share/openclash/openclash_streaming_unlock.lua @@ -1111,7 +1111,7 @@ function netflix_unlock_test() local filmId = 70143836 local url = "https://www.netflix.com/title/"..filmId local headers = "User-Agent: "..UA - local info = SYS.exec(string.format('curl -sLI --connect-timeout 5 -m 5 --speed-time 5 --speed-limit 1 --retry 2 -o /dev/null -w %%{json} -H "Content-Type: application/json" -H "%s" -XGET %s', headers, url)) + local info = SYS.exec(string.format('curl -sLI --connect-timeout 5 -m 5 --speed-time 5 --speed-limit 1 --retry 2 -o /dev/null -w %%{json} -H "Content-Type: application/json" -H "host: www.netflix.com" -H "accept-language: en-US,en;q=0.9" -H "sec-ch-ua: Google Chrome;v=125, Chromium;v=125, Not.A/Brand;v=24" -H "sec-ch-ua-mobile: ?0" -H "sec-ch-ua-platform: Windows" -H "sec-fetch-site: none" -H "sec-fetch-mode: navigate" -H "sec-fetch-user: ?1" -H "sec-fetch-dest: document" -H "%s" -XGET %s', headers, url)) local result = {} local region local old_region = get_old_region() diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_update.sh b/luci-app-openclash/root/usr/share/openclash/openclash_update.sh index ceb330809..057ff5c1d 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_update.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_update.sh @@ -8,9 +8,11 @@ set_lock() { del_lock() { flock -u 878 2>/dev/null - rm -rf "/tmp/lock/openclash_update.lock" + rm -rf "/tmp/lock/openclash_update.lock" 2>/dev/null } +set_lock + if [ -n "$1" ] && [ "$1" != "one_key_update" ]; then [ ! -f "/tmp/openclash_last_version" ] && /usr/share/openclash/openclash_version.sh "$1" 2>/dev/null elif [ -n "$2" ]; then @@ -22,6 +24,7 @@ fi if [ ! -f "/tmp/openclash_last_version" ]; then LOG_OUT "Error: Failed to Get Version Information, Please Try Again Later..." SLOG_CLEAN + del_lock exit 0 fi @@ -30,7 +33,7 @@ LAST_VER=$(sed -n 1p "$LAST_OPVER" 2>/dev/null |sed "s/^v//g" |tr -d "\n") if [ -x "/bin/opkg" ]; then OP_CV=$(rm -f /var/lock/opkg.lock && opkg status luci-app-openclash 2>/dev/null |grep 'Version' |awk -F 'Version: ' '{print $2}' |awk -F '.' '{print $2$3}' 2>/dev/null) elif [ -x "/usr/bin/apk" ]; then - OP_CV=$(apk list luci-app-openclash 2>/dev/null |grep 'installed' | grep -oE '\d+(\.\d+)*' | head -1 |awk -F '.' '{print $2$3}' 2>/dev/null) + OP_CV=$(apk list luci-app-openclash 2>/dev/null|grep 'installed' | grep -oE '[0-9]+(\.[0-9]+)*' | head -1 |awk -F '.' '{print $2$3}' 2>/dev/null) fi OP_LV=$(sed -n 1p "$LAST_OPVER" 2>/dev/null |awk -F 'v' '{print $2}' |awk -F '.' '{print $2$3}' 2>/dev/null) RELEASE_BRANCH=$(uci -q get openclash.config.release_branch || echo "master") @@ -58,8 +61,6 @@ else fi fi -set_lock - if [ -n "$OP_CV" ] && [ -n "$OP_LV" ] && [ "$(expr "$OP_LV" \> "$OP_CV")" -eq 1 ] && [ -f "$LAST_OPVER" ]; then LOG_OUT "Start Downloading【OpenClash - v$LAST_VER】..." if [ "$github_address_mod" != "0" ]; then @@ -89,9 +90,9 @@ if [ -n "$OP_CV" ] && [ -n "$OP_LV" ] && [ "$(expr "$OP_LV" \> "$OP_CV")" -eq 1 if [ -x "/bin/opkg" ]; then if [ -s "/tmp/openclash.ipk" ]; then if [ -z "$(opkg install /tmp/openclash.ipk --noaction 2>/dev/null |grep 'Upgrading luci-app-openclash on root' 2>/dev/null)" ]; then - LOG_OUT "【OpenClash - v$LAST_VER】Pre Update Test Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually!" - if [ "$(uci -q get openclash.config.config_reload)" -eq 1 ]; then - uci -q set openclash.config.config_reload=0 + LOG_OUT "【OpenClash - v$LAST_VER】Pre Update Test Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually With【opkg install /tmp/openclash.ipk】" + if [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + uci -q set openclash.config.restart=0 uci -q commit openclash /etc/init.d/openclash restart >/dev/null 2>&1 & else @@ -103,11 +104,12 @@ if [ -n "$OP_CV" ] && [ -n "$OP_LV" ] && [ "$(expr "$OP_LV" \> "$OP_CV")" -eq 1 fi elif [ -x "/usr/bin/apk" ]; then if [ -s "/tmp/openclash.apk" ]; then - apk add -s -q --clean-protected --allow-untrusted /tmp/openclash.apk >/dev/null 2>&1 + apk update >/dev/null 2>&1 + apk add -s -q --force-overwrite --clean-protected --allow-untrusted /tmp/openclash.apk >/dev/null 2>&1 if [ "$?" != "0" ]; then - LOG_OUT "【OpenClash - v$LAST_VER】Pre Update Test Failed, The File is Saved in /tmp/openclash.apk, Please Try to Update Manually!" - if [ "$(uci -q get openclash.config.config_reload)" -eq 1 ]; then - uci -q set openclash.config.config_reload=0 + LOG_OUT "【OpenClash - v$LAST_VER】Pre Update Test Failed, The File is Saved in /tmp/openclash.apk, Please Try to Update Manually With【apk add -q --force-overwrite --clean-protected --allow-untrusted /tmp/openclash.apk】" + if [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + uci -q set openclash.config.restart=0 uci -q commit openclash /etc/init.d/openclash restart >/dev/null 2>&1 & else @@ -148,7 +150,7 @@ LOG_OUT "Installing The New Version, Please Do Not Refresh The Page or Do Other if [ -x "/bin/opkg" ]; then opkg install /tmp/openclash.ipk elif [ -x "/usr/bin/apk" ]; then - apk add -q --clean-protected --allow-untrusted /tmp/openclash.apk + apk add -q --force-overwrite --clean-protected --allow-untrusted /tmp/openclash.apk fi if [ -x "/bin/opkg" ]; then if [ "$?" != "0" ] || [ -z "$(opkg info *openclash |grep Installed-Time)" ]; then @@ -161,35 +163,35 @@ if [ -x "/bin/opkg" ]; then uci -q commit openclash /etc/init.d/openclash restart 2>/dev/null else - LOG_OUT "OpenClash Update Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually!" + LOG_OUT "OpenClash Update Failed, The File is Saved in /tmp/openclash.ipk, Please Try to Update Manually With【opkg install /tmp/openclash.ipk】" SLOG_CLEAN fi elif [ -x "/usr/bin/apk" ]; then if [ "$?" != "0" ] || [ -z "$(apk list luci-app-openclash 2>/dev/null |grep 'installed')" ]; then - apk add -q --clean-protected --allow-untrusted /tmp/openclash.apk + apk add -q --force-overwrite --clean-protected --allow-untrusted /tmp/openclash.apk fi - if [ "$?" != "0" ] || [ -z "$(apk list luci-app-openclash 2>/dev/null |grep 'installed')" ]; then + if [ "$?" == "0" ] || [ -n "$(apk list luci-app-openclash 2>/dev/null |grep 'installed')" ]; then rm -rf /tmp/openclash.apk >/dev/null 2>&1 LOG_OUT "OpenClash Update Successful, About To Restart!" uci -q set openclash.config.enable=1 uci -q commit openclash /etc/init.d/openclash restart 2>/dev/null else - LOG_OUT "OpenClash Update Failed, The File is Saved in /tmp/openclash.apk, Please Try to Update Manually!" + LOG_OUT "OpenClash Update Failed, The File is Saved in /tmp/openclash.apk, Please Try to Update Manually With【apk add -q --force-overwrite --clean-protected --allow-untrusted /tmp/openclash.apk】" SLOG_CLEAN fi fi EOF chmod 4755 /tmp/openclash_update.sh - nohup /tmp/openclash_update.sh & + /tmp/openclash_update.sh & wait rm -rf /tmp/openclash_update.sh else LOG_OUT "【OpenClash - v$LAST_VER】Download Failed, Please Check The Network or Try Again Later!" rm -rf /tmp/openclash.ipk >/dev/null 2>&1 rm -rf /tmp/openclash.apk >/dev/null 2>&1 - if [ "$(uci -q get openclash.config.config_reload)" -eq 1 ]; then - uci -q set openclash.config.config_reload=0 + if [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + uci -q set openclash.config.restart=0 uci -q commit openclash /etc/init.d/openclash restart >/dev/null 2>&1 & else @@ -202,8 +204,8 @@ else else LOG_OUT "OpenClash Has not Been Updated, Stop Continuing!" fi - if [ "$(uci -q get openclash.config.config_reload)" -eq 1 ]; then - uci -q set openclash.config.config_reload=0 + if [ "$(uci -q get openclash.config.restart)" -eq 1 ]; then + uci -q set openclash.config.restart=0 uci -q commit openclash /etc/init.d/openclash restart >/dev/null 2>&1 & else diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_version.sh b/luci-app-openclash/root/usr/share/openclash/openclash_version.sh index 37258303d..e94404cbc 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_version.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_version.sh @@ -1,4 +1,15 @@ #!/bin/bash +set_lock() { + exec 869>"/tmp/lock/openclash_version.lock" 2>/dev/null + flock -x 869 2>/dev/null +} + +del_lock() { + flock -u 869 2>/dev/null + rm -rf "/tmp/lock/openclash_version.lock" 2>/dev/null +} + +set_lock TIME=$(date "+%Y-%m-%d-%H") CHTIME=$(date "+%Y-%m-%d-%H" -r "/tmp/openclash_last_version" 2>/dev/null) @@ -7,7 +18,7 @@ RELEASE_BRANCH=$(uci -q get openclash.config.release_branch || echo "master") if [ -x "/bin/opkg" ]; then OP_CV=$(rm -f /var/lock/opkg.lock && opkg status luci-app-openclash 2>/dev/null |grep 'Version' |awk -F 'Version: ' '{print $2}' |awk -F '.' '{print $2$3}' 2>/dev/null) elif [ -x "/usr/bin/apk" ]; then - OP_CV=$(apk list luci-app-openclash 2>/dev/null|grep 'installed' | grep -oE '\d+(\.\d+)*' | head -1 |awk -F '.' '{print $2$3}' 2>/dev/null) + OP_CV=$(apk list luci-app-openclash 2>/dev/null|grep 'installed' | grep -oE '[0-9]+(\.[0-9]+)*' | head -1 |awk -F '.' '{print $2$3}' 2>/dev/null) fi OP_LV=$(sed -n 1p $LAST_OPVER 2>/dev/null |awk -F 'v' '{print $2}' |awk -F '.' '{print $2$3}' 2>/dev/null) github_address_mod=$(uci -q get openclash.config.github_address_mod || echo 0) @@ -32,15 +43,20 @@ if [ "$TIME" != "$CHTIME" ]; then if [ "$(expr "$OP_CV" \>= "$OP_LV")" = "1" ]; then sed -i '/^https:/,$d' $LAST_OPVER elif [ "$(expr "$OP_LV" \> "$OP_CV")" = "1" ] && [ -n "$OP_LV" ]; then + del_lock exit 2 else + del_lock exit 0 fi else rm -rf "$LAST_OPVER" fi elif [ "$(expr "$OP_LV" \> "$OP_CV")" = "1" ] && [ -n "$OP_LV" ]; then + del_lock exit 2 else + del_lock exit 0 fi 2>/dev/null +del_lock \ No newline at end of file diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_watchdog.sh b/luci-app-openclash/root/usr/share/openclash/openclash_watchdog.sh index 065b789b6..af82a7ff7 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_watchdog.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_watchdog.sh @@ -16,7 +16,6 @@ log_size=$(uci -q get openclash.config.log_size || echo 1024) router_self_proxy=$(uci -q get openclash.config.router_self_proxy || echo 1) stream_auto_select_interval=$(uci -q get openclash.config.stream_auto_select_interval || echo 30) skip_proxy_address=$(uci -q get openclash.config.skip_proxy_address || echo 0) -CRASH_NUM=0 CFG_UPDATE_INT=1 SKIP_PROXY_ADDRESS=1 SKIP_PROXY_ADDRESS_INTERVAL=30 @@ -56,7 +55,7 @@ begin if servers.include?(i['server']) then next; end; - if i['server'] =~ reg and not servers.include?(i['server']) then + if i['server'] =~ reg then servers = servers.push(i['server']).uniq syscall = '/usr/share/openclash/openclash_debug_dns.lua 2>/dev/null \"' + i['server'] + '\" \"true\"' result = IO.popen(syscall).read.split(/\n+/) @@ -93,7 +92,7 @@ begin if servers.include?(j['server']) then next; end; - if j['server'] =~ reg and not servers.include?(j['server']) then + if j['server'] =~ reg then servers = servers.push(j['server']).uniq syscall = '/usr/share/openclash/openclash_debug_dns.lua 2>/dev/null \"' + j['server'] + '\" \"true\"' result = IO.popen(syscall).read.split(/\n+/) @@ -109,6 +108,28 @@ begin end; end; end; + if not i['path'] and i['type'] == 'inline' and i['payload'] and not i['payload'].empty? then + Value['payload'].each do + |k| + threadsp << Thread.new { + if k['server'] then + if servers.include?(k['server']) then + next; + end; + if k['server'] =~ reg then + servers = servers.push(k['server']).uniq + syscall = '/usr/share/openclash/openclash_debug_dns.lua 2>/dev/null \"' + k['server'] + '\" \"true\"' + result = IO.popen(syscall).read.split(/\n+/) + if result then + ips = ips | result + end; + else + ips = ips.push(k['server']).uniq + end; + end; + }; + end; + end; threadsp.each(&:join); }; end; @@ -144,12 +165,6 @@ rescue Exception => e end" 2>/dev/null >> $LOG_FILE } -#wait for core start complete -while ( [ -n "$(unify_ps_pids "/etc/init.d/openclash")" ] ) -do - sleep 1 -done >/dev/null 2>&1 - while :; do cfg_update=$(uci -q get openclash.config.auto_update) @@ -170,34 +185,12 @@ do stream_auto_select_google_not_cn=$(uci -q get openclash.config.stream_auto_select_google_not_cn || echo 0) stream_auto_select_openai=$(uci -q get openclash.config.stream_auto_select_openai || echo 0) upnp_lease_file=$(uci -q get upnpd.config.upnp_lease_file) - enable=$(uci -q get openclash.config.enable) -if [ "$enable" -eq 1 ]; then - clash_pids=$(pidof clash |sed 's/$//g' |wc -l) - if [ "$clash_pids" -gt 1 ]; then - LOG_OUT "Watchdog: Multiple Clash Processes, Kill All..." - clash_pids=$(pidof clash |sed 's/$//g') - for clash_pid in $clash_pids; do - kill -9 "$clash_pid" 2>/dev/null - done >/dev/null 2>&1 - sleep 1 - fi 2>/dev/null - if ! pidof clash >/dev/null; then - CRASH_NUM=$(expr "$CRASH_NUM" + 1) - if [ "$CRASH_NUM" -le 3 ]; then - LOG_OUT "Watchdog: Clash Core Problem, Restart..." - /etc/init.d/openclash reload "core" - sleep 10 - continue - else - LOG_OUT "Watchdog: Already Restart 3 Times With Clash Core Problem, Auto-Exit..." - /etc/init.d/openclash stop - exit 0 - fi - else - CRASH_NUM=0 - fi -fi +#wait for core start complete +while ( [ -n "$(unify_ps_pids "/etc/init.d/openclash")" ] ) +do + sleep 1 +done >/dev/null 2>&1 ## Porxy history /usr/share/openclash/openclash_history_get.sh @@ -234,12 +227,19 @@ fi ## Localnetwork 刷新 wan_ip4s=$(/usr/share/openclash/openclash_get_network.lua "wanip" 2>/dev/null) wan_ip6s=$(ifconfig | grep 'inet6 addr' | awk '{print $3}' 2>/dev/null) + lan_ip4s=$(/usr/share/openclash/openclash_get_network.lua "lan_cidr" 2>/dev/null) + lan_ip6s=$(/usr/share/openclash/openclash_get_network.lua "lan_cidr6" 2>/dev/null) if [ -n "$FW4" ]; then if [ -n "$wan_ip4s" ]; then for wan_ip4 in $wan_ip4s; do nft add element inet fw4 localnetwork { "$wan_ip4" } 2>/dev/null done fi + if [ -n "$lan_ip4s" ]; then + for lan_ip4 in $lan_ip4s; do + nft add element inet fw4 localnetwork { "$lan_ip4" } 2>/dev/null + done + fi if [ "$ipv6_enable" -eq 1 ]; then if [ -n "$wan_ip6s" ]; then @@ -247,6 +247,11 @@ fi nft add element inet fw4 localnetwork6 { "$wan_ip6" } 2>/dev/null done fi + if [ -n "$lan_ip6s" ]; then + for lan_ip6 in $lan_ip6s; do + nft add element inet fw4 localnetwork6 { "$lan_ip6" } 2>/dev/null + done + fi fi else if [ -n "$wan_ip4s" ]; then @@ -254,12 +259,22 @@ fi ipset add localnetwork "$wan_ip4" 2>/dev/null done fi + if [ -n "$lan_ip4s" ]; then + for lan_ip4 in $lan_ip4s; do + ipset add localnetwork "$lan_ip4" 2>/dev/null + done + fi if [ "$ipv6_enable" -eq 1 ]; then if [ -n "$wan_ip6s" ]; then for wan_ip6 in $wan_ip6s; do ipset add localnetwork6 "$wan_ip6" 2>/dev/null done fi + if [ -n "$lan_ip6s" ]; then + for lan_ip6 in $lan_ip6s; do + ipset add localnetwork6 "$lan_ip6" 2>/dev/null + done + fi fi fi diff --git a/luci-app-openclash/root/usr/share/openclash/ui/zashboard/CNAME b/luci-app-openclash/root/usr/share/openclash/ui/zashboard/CNAME new file mode 100644 index 000000000..d1eb3c393 --- /dev/null +++ b/luci-app-openclash/root/usr/share/openclash/ui/zashboard/CNAME @@ -0,0 +1 @@ +board.zash.run.place \ No newline at end of file diff --git a/luci-app-openclash/root/usr/share/openclash/ui/zashboard/apple-touch-icon.png b/luci-app-openclash/root/usr/share/openclash/ui/zashboard/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3c01d30a423ceb4cb46145cc7d1be20211a47a05 GIT binary patch literal 1556 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

wBF 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 z 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%0A!}MGRyZf3oa&l{=7`hVcRR(r!j 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

-!gwY>9Q#7Ml3o)i90fU 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 z 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
`I{Nt($tvu&u#@N)8!_U_loGwp-Nuo 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

2((^262Enr>^7y|&J>cZtZ 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 H4AIU||HyB7qCIM>`U8 z9L)fV*T%(TA^J?=np&cpcL!v*3Ynz#2k+kWoW3lBsQ#74 zh($S=J?lI5H$KfvB;L5qTy+{nNkqh(^ISHN{G+tgR)434>W4xa(ldVeaQ*iw(?F1S z+VejXtuUvZ>7K2^C-S-B%y(SD!cS|Q*Q&Ypkx4T?i zlon?P9BDy#O*mgc&#&}~ElG_>Si{tYNiR%j$Bi|`rKIlacP|6kbzN|K`z~0A-cbR6mKS?Y@1)4v&MTr@ za>}Jie0}f0PtE>*jQ)0YokK2zq!cwD2smzO!tGpGR|3~`>mwP%Uc)@B3s~H699@hf z`)&L@dS+uEh!<&fydQ&0{W^FE-Ck#`2P-p&H9OfikO&R@+2hp8JY?@T1OUN%7)#EDWS_? zR-6TaVC!)aYNM2o!fK7bzQ5bmLsPjt3#rqr)AXN}x^bYBbMucv6)>JTRFS32{%%>{ z3BbVipMsUS!ezj8hzl?CvUHc!hXb`T5LoDF`uVEEd;i}a&hLqyZfr!Qv#%)V|1i22 zKJq^BuJqyoe71?ArT5du>`jt|{KIKOe~CEi4x+ej&5V7oheL!xTr%^TKb{cR68!y!;=JJ(;M5D?Gzby>6he zlQNiMm&|)9XT*I=f(bAD$$KXJyV?lVamxyQhbNV4^bOcgP@Lxr<2SYqQtV4md_yY7 zvLeB?hDMp;$w%s6KW{Rq#jb7L*VBR1;GC@PX~n(qN;Rz@s^eMW$2UBi1R9x?mTnyW zkVpEOBcA^C%naQ&Pnanw+!Z?%vOWa84ue)*a#oG~RI~h|1xz9c7EHCGpHh}vRRZ>| zURm5rsBG_zb%spRbS>Qr>af-194LPqyuJU#D><9F>;8Jl^x#y^QeV?;;Z)Z8u0xAe zV6<9pO9fLnRIaIS!1|+jRwZ&N(6c&6_a-*_cUeVaQI;oPwO=d5O9aoEqjZPx^$`dc z@d!-saP~$pK!~9T_PcW=GH&V+nb8yvMXuHK8Kw8C5rIjhNA%qV*-0VU*^uYG~)Q6P_f zhHBXe+PxAnx{Vi{*}AP-zjU{F<2ek%nT(t*_QmBWPo{f0$Ct(hdauN9LE(_Z!1F|U zg=i57^1=7HNSZ5o9)$7P1KkeZc;1fJyhdfW)C4E&Mi0w}h^Tbm_Y+G5Llza9u9iEn z9{cH=mb|)gRILn3-!C1_xPC5x6OHyz72e^r(vGx7fsWJ>$R7Bo{wWgu`z?<)u%L)F znjkp}i(&G6zC1zfrxEvFL7cFSX)x+QBR;HW{_FO8Mf025>0Xa%hbjD7vfl-+_+fBz=LAII^O5Y)ZpX}S zKF+yJ&s^NBbaVCNfh*Pfb}1ClU?aOy66I%6K4f{<6>caCnmXBAG z9Yf#g<04+@Uw0ShJxlBCY3nLEpsg4LN{hiE3scrUuhjT~Cx;t@lfY>uDxN0VBQ@_o zu;@hQc6Yw>i*f~|vhyHV@BI5c?CKIfy3}(IglHwFu>WB3-@u9fS7` z?}sVRfcM1$o`( zuiE7$zR4gP9zAT9c+`XtY(fe(A%&~?IDx)~h)74Q9dLebt}8mK^@-9q8AQD>Kd%2v zfS)nI*AU=u{5ak%xx1#bqXTag)daamb*=CRCo83Z8wB_Q%O0Br$?wgkjjTht^k9q!!xx;W0yS=ZHESC#)N zCfF#St%FmOdjKS4pT!OTUCYd+bm_lC~H87!CeQ-Nej!5Y7X`=Q>qB#u=bL9 zA-?cjiT&V!)B@4FHV6QvrzS@D?iq2qA60iEEq3;(K{zrG2z+0XaxmfDwKA?%LjXa# z3Gc~zOIgJtlm=61pGyb#wAjQ139{qW zg@Lads6S`(0erR03!;iD8mTR10J_3!c~k&jZGewv%ls(FQ1Ymn);Z~sYgG!sPHrHM zB73kI;HU(!SGa4W26$^g0}Vg66f%10Or}u+yq*F))dB8msHR+igCf9972v7@aC!`Q zD+_ogIGO+k*h&Mm1p+hU!qJ7y4?O^sW}7?b0a0Cf}jsCeQp2fPF?FVk4!RvISLns1~5lX%^v_5Q2;uBMT2YrBpkpP44`-gfP?{m*xKg!q^8fyThDFFNuYZd72?*%Zu z`bP_|5q3xbYD)m+YXH@2?5_YbDI61NY@e+>?F?Ab-~3a@dXJv(>5zb_e_q$@<;~s6 zLQO)@n>&$z!CssW{Q9@{6n#hce?*UZ{lD?9$4hsuh!AZaO>?*Cf~nu5s%ze{aI8xN ziNJp-TJgN_S*8VWXeIjbhsYj=yyap6Mu~b-J4USX(tJ4_Jh_*-bepKeTxt?|^A^R}8k^ zlw<}(6!?j-n|a{{_;VzyJ&}xu?z%|Nw6CpQVtt&W4K@DI z(tiAo7q`|cXV#`x!ZUk*KT(trCC5N`a}Z2A_6`B@>WkPyx>^4|3CbJD=89-P2}k#M z!wKml84rQ#j8C(r$t+Lx?L~XZj;rdp^%5p|`x(mY(xXC|@0~?vazE}d7rD(Zd2lvQ z7$gvBl1axcjOrXBElTFW8kUBP4`2Q*6Z#relGbK!lyUbhS$o`uo(HpSrL{prO-uVq z==4l5p4?zKe zxF1F&#NxMFsZv7hq=QQ#5E?d7?}r8GJ$IPQ2S^u%SR*W&LEw$F}c60 z36p1}h`8W4^7l?)L{$htr3QXE$#%hG7ane@^(j&(u)_MNY&wNvXXcxYeJZDf<#;n_ znA0)1NA8h-!hXNY;?PPj94Z;?z7b(4T{Eur#`oey&r_pS2x-?=K>|o^(avk}WgRZz zzRi=s8g~~rM^L|wt!;n&K9A#+aHK#rO%EKls0WjhYVp0nLtRaakB)}D7LOZug4H}Z zK~YRZD(nMt=W*paJK1vZ%p-F`7@zGI@;eJow1v^9)apZkAPM}abN9$kDEb$@qgsbu zbe`M`BCkJuo|Z@V+Y<&o&KGZVH0HcpOH}{*v!24d4CN>Qeq)jM$sKmp`+YTz6bZ^* zB;H?v{ovzngqYjg+ZZ#eRV@gC$WT4)2s_MGNcWe!NCO|aG4ZV-!<27*pT5{08?8ba z`%X_!2lnR1!yN+5M1>w{fCdo-+&6TjR~wGU>!U3X90b5)e+-X+f>vTyVxmMf>#{~h zMn{I5{jsZ9vO0j@xO#trT)zAH^9_TI{S)ShoH#Q9BW=(<&r(!oe2A1f9x3}Tb9XHT zDwnDyukVfy>zHjgoSdckHO$688fJ4Q+bbIurmU2)+0R+FOuQX#z2NQYGbA@Ua62Aa z^zFHLxEx4Dy6;oz$73TLg`?y6&~bFMi6dA|TSMcqxX8MIM5#6xlUZFys`A3Ndao7K z;TXJE((3{o7-~d2Vy$!Hw=wKXwi1m zUj*UE(kd0(byE+tkWGWF;YRXD=kkeM}Q zYpc||2E<=lx{90l37@`qY<=kC2G2*SHP5+)68v@_`yY}PALRr7(f8EzuE!1L<42wAEC&S&b*Q|5YtqOywfo{E zuHo-T!lv39BNWV<&{g%kEF4GW;Vn5?^!1$HtMixs)?NF&6hBr@ZxMSucdjMgc9F<9 zxXW`duj@drIGmsaIDaSBI(T_`T<+U?x{$5KP0Iv@Ms>?)E#NM zZ`scb(Z>qsqInP{auw_h%9(r+_DJ{uI64Fy_Qxl8NXkfhmr>u*k_#HnbcKm4{7g#Y z1aFF$Eh;gj%F)D%_pNq7reGIPLN>3{4{%1g|;=f26PWK1;@eyN$Lg~myI!ueHG}VS98@Of<1Mur35mN z?0IzTXOhn9*g(4kb#I$rc#Wu`X@5}Yn1C#MWry~Mlv@dq<|RZj`c+RYU;8{8fSCuH zzkyL#N~H1rKkc1)Je1$x@ISMUF*C-#4Q5bDo26tcTSa{-Drr&3+9FE`B_T^?OBAiP ziX_pZD3UCdP+7AtiA1H+qVjy^+wb?fpVxgq_wwAY=db5=5A&XLZRdQ>=Q`KtT<3GH zbFRc2HUqK0Rp;V}c*T9H3pNZ+NiyndH_$kDe{HkMAm8n4u-~=+uGynhHE)B@`xh)Q zJU>z9FsnK-v^h+9Chdt?(6)o}G>b7|B7fHvgXiBNXzP2{PoEF$f1PJ1W)X61Ty2KGb<~3Q zp&F}_azA&@ksVAL&ndg8{m9?)r~Xcr9_!gPqH8V zgs*bpoz$kHJE<0PFQ04~DlYE1-_bq9W=(9P2iaHFE2e$njC)*;)84SwBSMpNt|)DF zd9&h0qXXYQi0TF7aEg8yyf162u=uGT%`-xwaE4no)vGd5Cg_-PrgNe*n;Nu+=N4_m zQGC0IoBVv=QSIH2T{U!6nRiv@3^Mngm57g2DCD2ovHVnOxQ41fhc;`rm*8%%U0JB&Hc)f4IoF!% z6T^2{9)G0FV(9H8bzNb#HBOnxHBdI+bHs*ra{W1zx4q7MHnn|`S^cwdYg)Bfk-Y!h z=egEVRrQM6OU^utg6_Sq z>v7qZ?z`r1j-BoKy=ifnw6EdF-O`X97oOjbI5iymYNpGsUGDGKNonu;QukxVE1SnZCcV-gF3yv=H6!2eEG>+Pd1*Ds2E>w z(q&Go+2uz%;lC^_jQ7ICRl)b(&SzQU*T(|OuDQu3s;)f!!Qu1o;C)+N8$~O8!UMi6 zTl_Pvps_N?rdhN#$z)IF%q3yh99l*D%={2$r3U_6+Jze2Oz^+|Ou^v)(E4Ut{})={gw}twzUMi!7H*~Sf~gWa2-3bF z=SfxwCduw4C?6v7LkTk?2{WQW6} z;vh&zgUk_7Nde_#5DNmSaFB@snWG@K6L?9$jRV3+m1g=?z+I zK*S!DFscNQj|FZ#$j8B~5D45vxZnv#?ZJ8@7<&kdy`2>UK{_zCQY|AH$Z9~&;c3?~H<6d{c zPtwQ#hpoE*a#WquPv+m6&Y1R}j{n(yW5+PQ?RQQ)PPcgMpCdU*a-%qZeqZ(Eyogt~ zzn14OKCv>zJ)|!8_+Yu3_237^n>8N9DeXJhYOre4&wyO|$OG4HO;r}Tu;uhk!V0Nd}ouX}Co z&oJy(s!vG&aZ64=-0PQ{hUq<6LHz z?vC59=3PDFpR`9J%BjHJNOt{XeQSlvbe)QtWUj-gk%C@Kx~BS~W#s-&ekRpzV|}djrc%8* zD*m4rcXS;rw;zAt6Bv=GJd?T_qQoszP#;jclt=+qU=T!)|-y5Ad#>E z-zD6ML@DLkj|MNpn0}o_@h7HoPlZ!2#PY$sW5L;`iaq^?9NGuzL*2o{`>rj`$c!Xi zAzQePoQzb>aNd4tr5w#*$H-Lq!}!_PZj1jVHD#A=ANr#q_RT=mb{zwQnMS7)%Jn%~ zhik-K+B$9U@jgYx4V5FGzv{jG;&&rs+96(T^$X8p(VE^6`}%awK(eH(F85mN=lGZW}8;be35maJAc0w$^WoSo~_X}n~bKl zIoWCxD>H7jzg~WOu1(I6XF;4Ld#sb@wCgQ5R#abd-&~Pj7n6x`yVqyM+FWdr%hn+p zH{H@vD>5-CPL!tlgj_ESz(=)hz%>zF%`1XB#WxeF#giLx#l>RD;8j1eZ5A^b;rE8^>NEGZf*!pP18S zuaiZouS?ZEA-TyhInk<}yQ02=AF`@dH1)~34x5Jc+{&_%QZSJ5qo-(Biwr6VtKRnaqnM?O`56r#Cp3ePtxnE}BtAy?84WViUd4ofR zYV-#NGQM{Y>b;MOZWD>$m712Ohkgx>d#`uQ{`x*?^@THM{G<{KN)kLrK1t7EOK(@$ z*W@HSr29_2*74r-z^rxax}IOj(w?0-i)+49a);T53}=nuxP;ZQo6Xrl`NW|9BiRFd z<~sB7;V&zy2(`PEEKl**fGJHjrX@ourA_^9;B#HMo{)u0wniC-<(Q2o4scdvv-KaO z4|KGKo=%gpSTY`S?V*iJO4D4GFJ2DQP5}WM_+Lu&v*SPe1m@)obi7~sQ;4BUUQ2tl zZ&=->R_$u#1uOqX!ULsrz>pfplXpVI!&Us&?Nn0%gQZRC`OWL zyyhKI9R0vc0aDQ><}07e&mhOs$!wiWj{ZIU!0df-Vh7y`84sg(SMhyl2~B!zSDeR3 zcK+e`5RrZZzZ6xK=wvR9M$D*;h^egeb)af}eCpet!O`bhiyEa;jQ<+-JcM0U^ z`_?*9UhK?O*&1DAyiIlRK{RGsidRNr>aS%ky+|^RqGdQM#cO3p#+bde;L>CXrZpwT z!)?)KJilc3j|D3Ahg6JfH#!)ttvy(qVcK*&N9Bo(>~~jLqCT5!T2p8m<;>O?{$N)a zOEiscr7I{d=r0rMhC1;+<884w*z7uO89e%X{0Xf7k?tS-V|VkcGQp$=m=b^%qRj;SW4N z@Etd9%J8)A)28z)Be~+f*EkLQEDKq>tSens@i1Eii_tNS!DVT}#)93?o)gaYeN?K`4xBy3}bw} zrE+mtimHZ$uUX9(Tb!gwTlYbF#EoI~hv^Z2a=cKq2V*QSrOUEW-b{A>z#i&L+F_=M zX|(W1?z;hg>{6a(2btRG%8sBnDKfLf`SeZs*|XBZMU` zC-uF#?P%#Y|Hred8}>_mj|!S>-+XdW$FF01Vom4@wHKsJYi4s@>0DWb1p!mfUfp1F z>r_9nEUXR@BiN?3F=oF@^bThcA16M1KKj{)B-`&uztY^xM_CWhB`&|TtIae`AHKb7 z`IA_8rC%Xu%&R}H`7KRc)3T7G#kH^=jL!?5)=pe~Eq!2ma!k(3lt)khaA&#px2-w@ zYG>Yywsd(%SF$5ZPc*BTO&6@pYabi&ZhyzPQMgMc-Zk4uCwp*UI!lSlacnXf>`2Hd z6`{xkSv=$w*B$KAxp}Vx)Sl9Rd=*jh%Ub&D=TF0%CS=yo?L0pD#)$T^`;$wyNXdlp zSK95hH6feXCm-cLa=I_`V&}fF*L?dyo^n$NjUMGBgZ}}PC2OOMBahzuAh?zM zSM#)UO8yHC3ljXJVZpLy(bv(5c0{r@nY@e)Yk<6tOtd8u9f?F2BEgkFa3c`h34oLK z?Evrqa0A!|L=Pfi4FOi;gm?g+04@N30ayaq0C)j712_RJ18@LX4;Ux-0_+9Aae4ay zf&uJ678X5|6i4VIk1MF{XY-qqC z0BUM#pbFUQSY2He78WKiFaP`3FC06FV&Hx5r-_M_loSbZ4krkN*Te2efTe=g#@a;i zI0YdYkaHbw7emc`Xn6!Zb&!||df3)+fXYmGdI{c*zQw@{EEaRL9)7pOH2$~2WD}gd z2=czbb_2V^F!kd*z6p5-4@xp&x)u7XV7d`X(#TV-Fx>*v&*4cHFi3FB8)kaK=Q_f4 z1Gue&>1J3N20t2LjTt;Fg6Wrl!%uK@iPjuwE+o6Sxa23o^fUPW>ebYnH)Y=N{`BdI z!om?Z7_x_fzhLYDOq_%-+3>9Zrpll|5i$XWTwF#E9YVF?J$f5J3qUJ_*e(y93t;LA zjQYZ_iHXj6bGw%=!66Kb(mes-Za>p547Zd>`s%q4!1ZWOa1{zy*MQ3kw|d zSgt09XY3IGHgT|we8q7zIy4@@e8H)Jdjxn2aES=l0iH4mSP;$-;8{4-J3vMR6m0{4 zdpO_*QTnh=3+^9>>Bmr>0tTAUw*ksdz;qqpu$t+o(B0kLd=JWLXcpM;PV})TltuE=g-3b5A1FIHs<)UDr97fB);Tf$3MIHn#0d( zNE~wN>>^gxbdA2B-nJy#vShq;-}ma23o#G=j8(m#r1rQdQ}9N#ho`J>y-6sLzl5(Z zdox9#)AkIuos^X?`Ml$DTK1+%KeOHD=gnix?{z5f=zE{|zf<0jBH}h&RjjpNdD#(9 zX@+_~LCKMNLVHo|nM=7U9hOaB;}Tw6aurfYh#YoX=1~dShZ4dKWYY3%~m)#l}hi+#l#6E?*%diX@`?QMkzC9)c& zmaM-XU&=4Jr7CICXl)fWpsg+S&{CsTc<*VG{6@L=I(IU~&FseCY1_0kKkD30Qm6fr z)87-FQ~E1IC1R((kz&GEgK;;F0ZsOrN-Ymz-E*tGX;NomUd^q~DYxH9+wh>%wC3v; zzR|()&|kj?PV5Ze8X9ruM&x?1pQf+wB}NTg$UQ%M>gkooJ{cx8V~OR{8*^z2E5jjn zV9j+#{q0tnj@zCEo@J9Ew&zN6#}(fE9>@v(uKsdWO0ct;c8$z0h3(W)Nus;k_!onU zqDNd+A?NRJN?RK^KKH`R$TlAS!IjlNrz&cQ)W7N+mn?r25yIQNotcr6a>1zkeo*!A zgWl=3LS)&LOW)%n?IPk`btAmw{NI~&O^Loq=iDG~FWl%k$!ZsSpH7bE-2J_g*}}{% zCUI`O{6gQZ`L<>8P}hYceR-7wf^J!B-G_|m@UWboH*rB+C5Mm9%|_J=T|e)=cdS%w zrRK6-{EIKrSkLwq7;)-{CcYnFzqTRt$(Nm2P_<9^wkc@Z0987~jG?adP* zvCHyt$eq;WkslfjpZ$!g2b^cy{ndAl9qxQ8!sB?PtCjoYl19h7{tkvcw*xZT&w2ed1MgRTJk3_uL8|7}7bV4qoh4J}nYk5l@>vxQeVP z_xOzZjaCUA*%O*kW{kTf{Ru-076fE;=(JM3eqXbgj%R&8%2txKczo;7R^yOa0UnOo z3K69F#WcO5)ra#ZgY)$6=C#URkRv56nV;9y?pPaSdp*nP!O&#-X%BJDPxsRP`nteE zg1!7;d3k<*Wy_-8-RW8{;;GRWNwbMzN+wZ(2V-8pV5ta2nglQV@Zfg^NlWczLX$zs z?yPYbHy58h@;d0=N^j@ZxO_jV$;Zp#3S&i^=55_dx^r#*U*&mOT}zf8e|yGRYtG?j ztF%kY6?KGW3k~&tm~*Bg?!;_vJHMp;?sv-K1*v+Op~A+QaVCyDe;TVucNaY}h~O!f znaBHX6%QlUVaa=oTt=MKVi&L6XZ5A1-QF%@#+>rV3~z8*L|PlqyK^!6Q=H*@h0UWM zgPj<;TTYJ6(O5Ce7-Q4*lsECKgl#lK&V-Z74Jd^vfy$cm8JlJNXvP~_oK>^AW`6SX z?w`4&XXf!LL4xy6a+B{Fr_{EV$@-E7chqMP!&`iEbdyRARz&f6ufb{Y=HNz|%;m#x zgLKCTQ85Y|eF>@~v0FMu%Tn&&q0N=6Hqj-n9o30gYy3NZ)N>%C+S1 zU7jq-+_G(ea>#Iwj^W(>2i9&j-12btlk$qeM9o`STOy*Z_9sb1tM2gfpE10pr~P3> zx~cB9Qg&34>}l<~3+n@xp1FUz!29}jtAlnD^qTnvLj8p!n{xd2%wK3!<$Kg`v6prz zf#@$1DLpha=a}WJ<+IFI(d!1hOzxD7^haOx;O)JX)xGE9fX=6{yl0m$W!|0IoAIO{ zQyVI=KOFS)*2NJ$gS5rxl2guI7&|&tUN}G2XNkC0ok??dD-NV}PiT1hL^bfeh51#< za}P*JBlTV>X?guWw+Mbfd=Sc$=#JU`+b1Rm&>!C3Y-nYya(<=;J=a zH!zhTi`}uNfqg!kF77zkeRDzZu9#n6Zh-VcOSv%4h0 zvnsYn`1YW=zR(PhME&Qbb$y4LpZezH>FLk(&b5>B9M%mURyJ8b=cm-Bt`q%24KBW7 zGHrY_ zzMi*e*P>N5GF6(_iqw6zBE}CXUrBt+x|lU6HZZk`+GP?soE-l%G?nzdr{Um+n_3S{ zOq*86DR;4k;_`Zqj_$jwzoMga56@$}HTUDP!4IG3DTEu{G77!)t?c#Ih?h>qZG#2+ z8fF8!wfd`j%0t&g_8$9HX{eh#l2H*H-Su|oKIg+jKE_UYdq0G*6ZaQS7xXtiUGk8n zPis8TX>6@E9RI<*hIf?69}->b%wbqKM3!kZU#`}EOC?7h4|rEvayC8PBqr#m7n{3& zg{}V2#rNzLoJ6E@xUXF93}kIxk`%y44qhgGd{u*mNkcIx?ITN z+z!_Zy_A;G6~;d*Jm&DwCoJe^;?OrMCS6a9KP{G+M^PF|VUNYyb6FA7x4fjMj#QdJ z&8}LKvATzE-e@QeKgZA3ZI16p69{Wwe9~Xb-+YES_$k^X>DHEmW1>l3mvglUHQt&o zCZdCHGX0N?Hl7$Y5BL?#TyW}q=ZRN)CtTzlw5+z3ZHchi&uwy=^w+(SOD{^N7rDKD zX16cEvnRmq{n*RP1J89^!u+e(xO*iSwxzBz>Q1@o-e%Bk-?ms^XM=1}f8*JYw9A{l zA2UhRV%}wv&OZI3Vx`@kC#F&k{CX2Bof|UIwsBGI)$S@A`@kFAWSbn)sTlnm#SPgn z3>Msu~9sOt?CT}5FtnWp0wUgWAPwu^W)_pedA zYbs=A*7k1Y)^*pXwysfLDbsn}a&WEtq$iM7?V=x)vr?q`5ABvsU0D%Q%+la-F0LL@ zH2R(L{^P*s$4%9BW$&VF^JLT;!xEP=D$rrzr&up*(I>GVM4YnVwnNW?3?P7boTCUL)&dtWSgti zIsFfuXJ@5>9@(Yx5btICYJ!U16d&)n)cXyrM|hy|Xt~_Oeyl zSRHj`)k$4#Q8OLVoi$nJl%zt3s{Fk?M}>c4BpM% zyzlCd#s-D+4BhG2HV31ymT|=b9h--#jr&WSPn5m7oHqHh*ueO7-Ps;OKhFO1_eY0> z9^8e+_t#|b0Mf-p${Y?KKaaX>zVzeN0k>uY=m-9JA6dl(1=DNj!x0gsTw%^Z*? z2p*R`jLV|}*^LwY7vW=!Ol;?f;P)-=jxGsNY`2Qp;uE&s08;$`(iH&m z_%Z-RE&#t4K;<;REZj$36JTBlHeu1dp>Y;K`yGmiVFPq}EQtm%s{50s5w@fS9|pE9 zm9RO!0Kbb1&_mLJt_^Gvd!ih{=;Mey43HFz9e|jzD;$8*-vCt@Z!5|+JR67hF9iZ6 z6$sKhfS|e+2n$?+us9b8rWb)=H2?&=ZXkF_0>SqN5RTyXa~eR%$9;?E0O8S9AT$$! z&>IJY&z`8kn?Mwm1EQKC5H*(paj6dw*H{5@D<6nESU}vf8i;{sfEY&y;;AAaX59s1 zejpI15&9oke>Desr4n0`f+(u637fKAWOsoS;Ys)a~pxITLWY( z29O>3K;D@NWWRVIhtCCayaSNW76JK^H;`}8fP9||?G z<`e3s&2 z4@-dxvw$k}5~y;bK%Mmqs9H>*>J0v{kc!W_ti=4mW|eGahJrGl3TJ189*h zKufU#+9gw<6?g%yyc}qap+M^p1KJ25XkU*3ow5b!@?k(%DFnJ!2hf-M0)5R~pxdti zx<@0>{j7l=-V5|o2|&NB1@z)_px3km{l$Ht_k9NX=nrFct^KS`%Q{djVqyuHTmcjL2)iNNxefd3Rvs?F7cn3Sd-E z0psOdVDy;*W3(0+Q9T-j z76B}43~v+zmZv+g4!j1|k)^;oEwDd$$%7(#xCqNuSgr^9AKNoM{r47vv$Ll+uKQ!n zh`8+mx;icK2*Gg#+(HyGL<=VW-}s~aGY0w(OkZFvnHVD(LudhTiG(El9TwO~LFiA4 z1o{(P*8gw({jsY8sR{HbkfZ&it)=Er_fSzy>;6Ya&P!B#|tF#NSd9QGO~x9K#X>F(d_LCKE(4B#d9d zHV*!Z6GV_ypaH%>6VyN%xF7`_0vp##640gro4`a05d=rk2n-~JAcQ0lP}>;izdn+N zYvl-3q%47g6ekFD$o@ObBB1rdSpMi#6zi9R5QuK=-IyCk^jNP)XSfBr7Y#uNG(a6x z2?9OKq53g*FpZRg-$)7gg%pFIND-Jqvf&4k1>ccO_=XgQuSf>!i-;Qjf~3J`Bo#g( z$uNN=!AB$kBq1BlLn_bwZ z7fFU5Bni5aMCigV0k^1P>6F3Pnb3)Aq@e>T39pdi=)4xB*oOT3Y(p!C2$=f6t6z+( z1^1DKW~4MaumyQ|i4=zyNHKI>3#4yEve3^hkiH%%jQ(ta#C1p-I-vzxeS)OGW2E3Z zAww;OSh)Yc)!70z23VWpolqf?gYI^Lgat@8rYy)M*6k?mRirTFA?a`hNy8E(kU1AgK?wzC^fHnJ zmyiV9_urKFzt8PO+$xJDQXo$jQWEnfkS7Bv4(UiS>>?1Pbsi}M=a3}Ky`Yrf-N%0r z^J&~F2Wd!IEbW3^pF)bE-URtdL9!tk$$}F|A-o<0c{z@xp=JfSApfxsSaK6^nFH}i z5r{*w@Y)gV@$cp87;crovm?mE5u_NzAVnb>DS}s>Aniyb3(ucGn-NF~S~`K&!jL4? z5U!JiP^1J}5kY(*NH)wyvanVV=tmrL6OZYH<8lDn%$?ZBwhjBl)?%Hp z0*ujq{;_)dac^0?>IE7JLQ0}l62!X?DUL@9V)sXiqFoT=dM}cVc1w_w50Z&-3-slM zq@(2!=*tsH#Vb#ci(N=ErY<-`JMc^RS9uYX6ESc{il8MF#OjI^Mrj2$!Wk)qfB#~G z{;7rSxJ43s2?eq`BE_+&ylzjn-69uGb(X(b@~7wL*&ieXVft zya=TD3&}>SE0AR+l8Lo~Kq7Ob5S}?f?v^8Is1t#f&5&fQHw1Y!LH^%abYnb14vdhp zXypYmRwAXagG-=SL!>zNh6yCqM~Z?TQUq%QfsBihEUc{rGA=?gutW)D)JD>=z7WW$ ziKJqECeYvlBpGX3K}nd0UqSooKdl9^+zTX}gOtHqQ6Qn9luKfLEs$^)QXH=gfrK-V zqF6@=Bve7Nutpci#zzXF-4)2Agrxp`k3#_k3=6Jlf#w9#{AvIF-Et&PP2oL}5Vp0D bj(^|n2!j9o5dLiW=i>kT{*MO!V-5T-nLv#X literal 0 HcmV?d00001 diff --git a/luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/index-DnsHUhFc.js b/luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/index-DnsHUhFc.js new file mode 100644 index 000000000..5b5a2a845 --- /dev/null +++ b/luci-app-openclash/root/usr/share/openclash/ui/zashboard/assets/index-DnsHUhFc.js @@ -0,0 +1,177 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var hy=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Vg(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function sb(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var $0={exports:{}},cK=$0.exports,SD;function KA(){return SD||(SD=1,function(e,t){(function(n,r){e.exports=r()})(cK,function(){var n=1e3,r=6e4,i=36e5,o="millisecond",a="second",s="minute",l="hour",u="day",c="week",f="month",d="quarter",h="year",v="date",m="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,_=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(F){var z=["th","st","nd","rd"],B=F%100;return"["+F+(z[(B-20)%10]||z[B]||z[0])+"]"}},w=function(F,z,B){var Y=String(F);return!Y||Y.length>=z?F:""+Array(z+1-Y.length).join(B)+F},S={s:w,z:function(F){var z=-F.utcOffset(),B=Math.abs(z),Y=Math.floor(B/60),j=B%60;return(z<=0?"+":"-")+w(Y,2,"0")+":"+w(j,2,"0")},m:function F(z,B){if(z.date()1)return F(ge[0])}else{var ve=z.name;T[ve]=z,j=ve}return!Y&&j&&(C=j),j||!Y&&C},R=function(F,z){if(P(F))return F.clone();var B=typeof z=="object"?z:{};return B.date=F,B.args=arguments,new M(B)},O=S;O.l=I,O.i=P,O.w=function(F,z){return R(F,{locale:z.$L,utc:z.$u,x:z.$x,$offset:z.$offset})};var M=function(){function F(B){this.$L=I(B.locale,null,!0),this.parse(B),this.$x=this.$x||B.x||{},this[A]=!0}var z=F.prototype;return z.parse=function(B){this.$d=function(Y){var j=Y.date,se=Y.utc;if(j===null)return new Date(NaN);if(O.u(j))return new Date;if(j instanceof Date)return new Date(j);if(typeof j=="string"&&!/Z$/i.test(j)){var ge=j.match(y);if(ge){var ve=ge[2]-1||0,De=(ge[7]||"0").substring(0,3);return se?new Date(Date.UTC(ge[1],ve,ge[3]||1,ge[4]||0,ge[5]||0,ge[6]||0,De)):new Date(ge[1],ve,ge[3]||1,ge[4]||0,ge[5]||0,ge[6]||0,De)}}return new Date(j)}(B),this.init()},z.init=function(){var B=this.$d;this.$y=B.getFullYear(),this.$M=B.getMonth(),this.$D=B.getDate(),this.$W=B.getDay(),this.$H=B.getHours(),this.$m=B.getMinutes(),this.$s=B.getSeconds(),this.$ms=B.getMilliseconds()},z.$utils=function(){return O},z.isValid=function(){return this.$d.toString()!==m},z.isSame=function(B,Y){var j=R(B);return this.startOf(Y)<=j&&j<=this.endOf(Y)},z.isAfter=function(B,Y){return R(B)=2&&_%10<=4&&(_%100<10||_%100>=20)?b[1]:b[2])}var f=function(v,m){return u.test(m)?o[v.month()]:a[v.month()]};f.s=a,f.f=o;var d=function(v,m){return u.test(m)?s[v.month()]:l[v.month()]};d.s=l,d.f=s;var h={name:"ru",weekdays:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),weekdaysShort:"вск_пнд_втр_срд_чтв_птн_сбт".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),months:f,monthsShort:d,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:c,mm:c,h:"час",hh:c,d:"день",dd:c,M:"месяц",MM:c,y:"год",yy:c},ordinal:function(v){return v},meridiem:function(v){return v<4?"ночи":v<12?"утра":v<17?"дня":"вечера"}};return i.default.locale(h,null,!0),h})}(B0)),B0.exports}hK();var V0={exports:{}},pK=V0.exports,xD;function vK(){return xD||(xD=1,function(e,t){(function(n,r){e.exports=r(KA())})(pK,function(n){function r(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var i=r(n),o={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(a,s){return s==="W"?a+"周":a+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(a,s){var l=100*a+s;return l<600?"凌晨":l<900?"早上":l<1100?"上午":l<1300?"中午":l<1800?"下午":"晚上"}};return i.default.locale(o,null,!0),o})}(V0)),V0.exports}vK();var U0={exports:{}},gK=U0.exports,TD;function mK(){return TD||(TD=1,function(e,t){(function(n,r){e.exports=r()})(gK,function(){return function(n,r,i){n=n||{};var o=r.prototype,a={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function s(u,c,f,d){return o.fromToBase(u,c,f,d)}i.en.relativeTime=a,o.fromToBase=function(u,c,f,d,h){for(var v,m,y,_=f.$locale().relativeTime||a,b=n.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],w=b.length,S=0;S0,T<=C.r||!C.r){T<=1&&S>0&&(C=b[S-1]);var A=_[C.l];h&&(T=h(""+T)),m=typeof A=="string"?A.replace("%d",T):A(T,c,C.l,y);break}}if(c)return m;var P=y?_.future:_.past;return typeof P=="function"?P(m):P.replace("%s",m)},o.to=function(u,c){return s(u,c,this,!0)},o.from=function(u,c){return s(u,c,this)};var l=function(u){return u.$u?i.utc():i()};o.toNow=function(u){return this.to(l(this),u)},o.fromNow=function(u){return this.from(l(this),u)}}})}(U0)),U0.exports}var yK=mK();const _K=Vg(yK);/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Nr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Jt={},Gc=[],Lr=()=>{},xd=()=>!1,Mu=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),lb=e=>e.startsWith("onUpdate:"),Qt=Object.assign,ub=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},bK=Object.prototype.hasOwnProperty,cn=(e,t)=>bK.call(e,t),Je=Array.isArray,zc=e=>Cf(e)==="[object Map]",Lu=e=>Cf(e)==="[object Set]",OC=e=>Cf(e)==="[object Date]",M5=e=>Cf(e)==="[object RegExp]",bt=e=>typeof e=="function",At=e=>typeof e=="string",Pi=e=>typeof e=="symbol",vn=e=>e!==null&&typeof e=="object",cb=e=>(vn(e)||bt(e))&&bt(e.then)&&bt(e.catch),ZA=Object.prototype.toString,Cf=e=>ZA.call(e),L5=e=>Cf(e).slice(8,-1),Ug=e=>Cf(e)==="[object Object]",fb=e=>At(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,el=Nr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),N5=Nr("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),db=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},SK=/-(\w)/g,Bn=db(e=>e.replace(SK,(t,n)=>n?n.toUpperCase():"")),wK=/\B([A-Z])/g,ai=db(e=>e.replace(wK,"-$1").toLowerCase()),Nu=db(e=>e.charAt(0).toUpperCase()+e.slice(1)),Wc=db(e=>e?`on${Nu(e)}`:""),ri=(e,t)=>!Object.is(e,t),jc=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},jv=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Yv=e=>{const t=At(e)?Number(e):NaN;return isNaN(t)?e:t};let CD;const Hg=()=>CD||(CD=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),xK=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;function TK(e){return xK.test(e)?`__props.${e}`:`__props[${JSON.stringify(e)}]`}function CK(e,t){return e+JSON.stringify(t,(n,r)=>typeof r=="function"?r.toString():r)}const EK={TEXT:1,1:"TEXT",CLASS:2,2:"CLASS",STYLE:4,4:"STYLE",PROPS:8,8:"PROPS",FULL_PROPS:16,16:"FULL_PROPS",NEED_HYDRATION:32,32:"NEED_HYDRATION",STABLE_FRAGMENT:64,64:"STABLE_FRAGMENT",KEYED_FRAGMENT:128,128:"KEYED_FRAGMENT",UNKEYED_FRAGMENT:256,256:"UNKEYED_FRAGMENT",NEED_PATCH:512,512:"NEED_PATCH",DYNAMIC_SLOTS:1024,1024:"DYNAMIC_SLOTS",DEV_ROOT_FRAGMENT:2048,2048:"DEV_ROOT_FRAGMENT",CACHED:-1,"-1":"CACHED",BAIL:-2,"-2":"BAIL"},AK={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},IK={ELEMENT:1,1:"ELEMENT",FUNCTIONAL_COMPONENT:2,2:"FUNCTIONAL_COMPONENT",STATEFUL_COMPONENT:4,4:"STATEFUL_COMPONENT",TEXT_CHILDREN:8,8:"TEXT_CHILDREN",ARRAY_CHILDREN:16,16:"ARRAY_CHILDREN",SLOTS_CHILDREN:32,32:"SLOTS_CHILDREN",TELEPORT:64,64:"TELEPORT",SUSPENSE:128,128:"SUSPENSE",COMPONENT_SHOULD_KEEP_ALIVE:256,256:"COMPONENT_SHOULD_KEEP_ALIVE",COMPONENT_KEPT_ALIVE:512,512:"COMPONENT_KEPT_ALIVE",COMPONENT:6,6:"COMPONENT"},RK={STABLE:1,1:"STABLE",DYNAMIC:2,2:"DYNAMIC",FORWARDED:3,3:"FORWARDED"},PK={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},OK="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",JA=Nr(OK),DK=JA,ED=2;function k5(e,t=0,n=e.length){if(t=Math.max(0,Math.min(t,e.length)),n=Math.max(0,Math.min(n,e.length)),t>n)return"";let r=e.split(/(\r?\n)/);const i=r.filter((s,l)=>l%2===1);r=r.filter((s,l)=>l%2===0);let o=0;const a=[];for(let s=0;s=t){for(let l=s-ED;l<=s+ED||n>o;l++){if(l<0||l>=r.length)continue;const u=l+1;a.push(`${u}${" ".repeat(Math.max(3-String(u).length,0))}| ${r[l]}`);const c=r[l].length,f=i[l]&&i[l].length||0;if(l===s){const d=t-(o-(c+f)),h=Math.max(1,n>o?c-d:n-t);a.push(" | "+" ".repeat(d)+"^".repeat(h))}else if(l>s){if(n>o){const d=Math.max(Math.min(n-o,c),1);a.push(" | "+"^".repeat(d))}o+=c+f}}break}return a.join(` +`)}function Gr(e){if(Je(e)){const t={};for(let n=0;n{if(n){const r=n.split(LK);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function kK(e){if(!e)return"";if(At(e))return e;let t="";for(const n in e){const r=e[n];if(At(r)||typeof r=="number"){const i=n.startsWith("--")?n:ai(n);t+=`${i}:${r};`}}return t}function rt(e){let t="";if(At(e))t=e;else if(Je(e))for(let n=0;n/="'\u0009\u000a\u000c\u0020]/,ix={};function GK(e){if(ix.hasOwnProperty(e))return ix[e];const t=HK.test(e);return t&&console.error(`unsafe attribute name: ${e}`),ix[e]=!t}const zK={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},WK=Nr("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),jK=Nr("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan"),YK=Nr("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");function XK(e){if(e==null)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"}const KK=/["'&<>]/;function ZK(e){const t=""+e,n=KK.exec(t);if(!n)return t;let r="",i,o,a=0;for(o=n.index;o||--!>|?@[\\\]^`{|}~]/g;function QK(e,t){return e.replace(z5,n=>t?n==='"'?'\\\\\\"':`\\\\${n}`:`\\${n}`)}function eZ(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&rsl(n,t))}const W5=e=>!!(e&&e.__v_isRef===!0),re=e=>At(e)?e:e==null?"":Je(e)||vn(e)&&(e.toString===ZA||!bt(e.toString))?W5(e)?re(e.value):JSON.stringify(e,j5,2):String(e),j5=(e,t)=>W5(t)?j5(e,t.value):zc(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i],o)=>(n[ox(r,o)+" =>"]=i,n),{})}:Lu(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ox(n))}:Pi(t)?ox(t):vn(t)&&!Je(t)&&!Ug(t)?String(t):t,ox=(e,t="")=>{var n;return Pi(e)?`Symbol(${(n=e.description)!=null?n:t})`:e},tZ=Object.freeze(Object.defineProperty({__proto__:null,EMPTY_ARR:Gc,EMPTY_OBJ:Jt,NO:xd,NOOP:Lr,PatchFlagNames:AK,PatchFlags:EK,ShapeFlags:IK,SlotFlags:RK,camelize:Bn,capitalize:Nu,cssVarNameEscapeSymbolsRE:z5,def:qA,escapeHtml:ZK,escapeHtmlComment:JK,extend:Qt,genCacheKey:CK,genPropsAccessExp:TK,generateCodeFrame:k5,getEscapedCssVarName:QK,getGlobalThis:Hg,hasChanged:ri,hasOwn:cn,hyphenate:ai,includeBooleanAttr:eI,invokeArrayFns:jc,isArray:Je,isBooleanAttr:UK,isBuiltInDirective:N5,isDate:OC,isFunction:bt,isGloballyAllowed:JA,isGloballyWhitelisted:DK,isHTMLTag:$5,isIntegerKey:fb,isKnownHtmlAttr:WK,isKnownMathMLAttr:YK,isKnownSvgAttr:jK,isMap:zc,isMathMLTag:V5,isModelListener:lb,isObject:vn,isOn:Mu,isPlainObject:Ug,isPromise:cb,isRegExp:M5,isRenderableAttrValue:XK,isReservedProp:el,isSSRSafeAttrName:GK,isSVGTag:B5,isSet:Lu,isSpecialBooleanAttr:G5,isString:At,isSymbol:Pi,isVoidTag:U5,looseEqual:sl,looseIndexOf:Gg,looseToNumber:jv,makeMap:Nr,normalizeClass:rt,normalizeProps:F5,normalizeStyle:Gr,objectToString:ZA,parseStringStyle:QA,propsToAttrMap:zK,remove:ub,slotFlagsText:PK,stringifyStyle:kK,toDisplayString:re,toHandlerKey:Wc,toNumber:Yv,toRawType:L5,toTypeString:Cf},Symbol.toStringTag,{value:"Module"}));/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let wi;class tI{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=wi,!t&&wi&&(this.index=(wi.scopes||(wi.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;if(rv){let t=rv;for(rv=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;nv;){let t=nv;for(nv=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Z5(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function q5(e){let t,n=e.depsTail,r=n;for(;r;){const i=r.prevDep;r.version===-1?(r===n&&(n=i),aI(r),nZ(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=i}e.deps=t,e.depsTail=n}function DC(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(J5(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function J5(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Kv))return;e.globalVersion=Kv;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!DC(e)){e.flags&=-3;return}const n=$n,r=Da;$n=e,Da=!0;try{Z5(e);const i=e.fn(e._value);(t.version===0||ri(i,e._value))&&(e._value=i,t.version++)}catch(i){throw t.version++,i}finally{$n=n,Da=r,q5(e),e.flags&=-3}}function aI(e,t=!1){const{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)aI(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function nZ(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function rZ(e,t){e.effect instanceof Xv&&(e=e.effect.fn);const n=new Xv(e);t&&Qt(n,t);try{n.run()}catch(i){throw n.stop(),i}const r=n.run.bind(n);return r.effect=n,r}function iZ(e){e.effect.stop()}let Da=!0;const Q5=[];function ku(){Q5.push(Da),Da=!1}function Fu(){const e=Q5.pop();Da=e===void 0?!0:e}function AD(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=$n;$n=void 0;try{t()}finally{$n=n}}}let Kv=0;class oZ{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class hb{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!$n||!Da||$n===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==$n)n=this.activeLink=new oZ($n,this),$n.deps?(n.prevDep=$n.depsTail,$n.depsTail.nextDep=n,$n.depsTail=n):$n.deps=$n.depsTail=n,e$(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=$n.depsTail,n.nextDep=void 0,$n.depsTail.nextDep=n,$n.depsTail=n,$n.deps===n&&($n.deps=r)}return n}trigger(t){this.version++,Kv++,this.notify(t)}notify(t){iI();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{oI()}}}function e$(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)e$(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Y_=new WeakMap,Yc=Symbol(""),MC=Symbol(""),Zv=Symbol("");function ii(e,t,n){if(Da&&$n){let r=Y_.get(e);r||Y_.set(e,r=new Map);let i=r.get(n);i||(r.set(n,i=new hb),i.map=r,i.key=n),i.track()}}function Ws(e,t,n,r,i,o){const a=Y_.get(e);if(!a){Kv++;return}const s=l=>{l&&l.trigger()};if(iI(),t==="clear")a.forEach(s);else{const l=Je(e),u=l&&fb(n);if(l&&n==="length"){const c=Number(r);a.forEach((f,d)=>{(d==="length"||d===Zv||!Pi(d)&&d>=c)&&s(f)})}else switch((n!==void 0||a.has(void 0))&&s(a.get(n)),u&&s(a.get(Zv)),t){case"add":l?u&&s(a.get("length")):(s(a.get(Yc)),zc(e)&&s(a.get(MC)));break;case"delete":l||(s(a.get(Yc)),zc(e)&&s(a.get(MC)));break;case"set":zc(e)&&s(a.get(Yc));break}}oI()}function aZ(e,t){const n=Y_.get(e);return n&&n.get(t)}function jf(e){const t=sn(e);return t===e?t:(ii(t,"iterate",Zv),Co(e)?t:t.map(oi))}function pb(e){return ii(e=sn(e),"iterate",Zv),e}const sZ={__proto__:null,[Symbol.iterator](){return sx(this,Symbol.iterator,oi)},concat(...e){return jf(this).concat(...e.map(t=>Je(t)?jf(t):t))},entries(){return sx(this,"entries",e=>(e[1]=oi(e[1]),e))},every(e,t){return Ps(this,"every",e,t,void 0,arguments)},filter(e,t){return Ps(this,"filter",e,t,n=>n.map(oi),arguments)},find(e,t){return Ps(this,"find",e,t,oi,arguments)},findIndex(e,t){return Ps(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ps(this,"findLast",e,t,oi,arguments)},findLastIndex(e,t){return Ps(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ps(this,"forEach",e,t,void 0,arguments)},includes(...e){return lx(this,"includes",e)},indexOf(...e){return lx(this,"indexOf",e)},join(e){return jf(this).join(e)},lastIndexOf(...e){return lx(this,"lastIndexOf",e)},map(e,t){return Ps(this,"map",e,t,void 0,arguments)},pop(){return Qh(this,"pop")},push(...e){return Qh(this,"push",e)},reduce(e,...t){return ID(this,"reduce",e,t)},reduceRight(e,...t){return ID(this,"reduceRight",e,t)},shift(){return Qh(this,"shift")},some(e,t){return Ps(this,"some",e,t,void 0,arguments)},splice(...e){return Qh(this,"splice",e)},toReversed(){return jf(this).toReversed()},toSorted(e){return jf(this).toSorted(e)},toSpliced(...e){return jf(this).toSpliced(...e)},unshift(...e){return Qh(this,"unshift",e)},values(){return sx(this,"values",oi)}};function sx(e,t,n){const r=pb(e),i=r[t]();return r!==e&&!Co(e)&&(i._next=i.next,i.next=()=>{const o=i._next();return o.value&&(o.value=n(o.value)),o}),i}const lZ=Array.prototype;function Ps(e,t,n,r,i,o){const a=pb(e),s=a!==e&&!Co(e),l=a[t];if(l!==lZ[t]){const f=l.apply(e,o);return s?oi(f):f}let u=n;a!==e&&(s?u=function(f,d){return n.call(this,oi(f),d,e)}:n.length>2&&(u=function(f,d){return n.call(this,f,d,e)}));const c=l.call(a,u,r);return s&&i?i(c):c}function ID(e,t,n,r){const i=pb(e);let o=n;return i!==e&&(Co(e)?n.length>3&&(o=function(a,s,l){return n.call(this,a,s,l,e)}):o=function(a,s,l){return n.call(this,a,oi(s),l,e)}),i[t](o,...r)}function lx(e,t,n){const r=sn(e);ii(r,"iterate",Zv);const i=r[t](...n);return(i===-1||i===!1)&&mb(n[0])?(n[0]=sn(n[0]),r[t](...n)):i}function Qh(e,t,n=[]){ku(),iI();const r=sn(e)[t].apply(e,n);return oI(),Fu(),r}const uZ=Nr("__proto__,__v_isRef,__isVue"),t$=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Pi));function cZ(e){Pi(e)||(e=String(e));const t=sn(this);return ii(t,"has",e),t.hasOwnProperty(e)}class n${constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const i=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(i?o?l$:s$:o?a$:o$).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const a=Je(t);if(!i){let l;if(a&&(l=sZ[n]))return l;if(n==="hasOwnProperty")return cZ}const s=Reflect.get(t,n,st(t)?t:r);return(Pi(n)?t$.has(n):uZ(n))||(i||ii(t,"get",n),o)?s:st(s)?a&&fb(n)?s:s.value:vn(s)?i?zg(s):Na(s):s}}class r$ extends n${constructor(t=!1){super(!1,t)}set(t,n,r,i){let o=t[n];if(!this._isShallow){const l=xu(o);if(!Co(r)&&!xu(r)&&(o=sn(o),r=sn(r)),!Je(t)&&st(o)&&!st(r))return l?!1:(o.value=r,!0)}const a=Je(t)&&fb(n)?Number(n)e,py=e=>Reflect.getPrototypeOf(e);function vZ(e,t,n){return function(...r){const i=this.__v_raw,o=sn(i),a=zc(o),s=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,u=i[e](...r),c=n?LC:t?NC:oi;return!t&&ii(o,"iterate",l?MC:Yc),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:s?[c(f[0]),c(f[1])]:c(f),done:d}},[Symbol.iterator](){return this}}}}function vy(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function gZ(e,t){const n={get(i){const o=this.__v_raw,a=sn(o),s=sn(i);e||(ri(i,s)&&ii(a,"get",i),ii(a,"get",s));const{has:l}=py(a),u=t?LC:e?NC:oi;if(l.call(a,i))return u(o.get(i));if(l.call(a,s))return u(o.get(s));o!==a&&o.get(i)},get size(){const i=this.__v_raw;return!e&&ii(sn(i),"iterate",Yc),Reflect.get(i,"size",i)},has(i){const o=this.__v_raw,a=sn(o),s=sn(i);return e||(ri(i,s)&&ii(a,"has",i),ii(a,"has",s)),i===s?o.has(i):o.has(i)||o.has(s)},forEach(i,o){const a=this,s=a.__v_raw,l=sn(s),u=t?LC:e?NC:oi;return!e&&ii(l,"iterate",Yc),s.forEach((c,f)=>i.call(o,u(c),u(f),a))}};return Qt(n,e?{add:vy("add"),set:vy("set"),delete:vy("delete"),clear:vy("clear")}:{add(i){!t&&!Co(i)&&!xu(i)&&(i=sn(i));const o=sn(this);return py(o).has.call(o,i)||(o.add(i),Ws(o,"add",i,i)),this},set(i,o){!t&&!Co(o)&&!xu(o)&&(o=sn(o));const a=sn(this),{has:s,get:l}=py(a);let u=s.call(a,i);u||(i=sn(i),u=s.call(a,i));const c=l.call(a,i);return a.set(i,o),u?ri(o,c)&&Ws(a,"set",i,o):Ws(a,"add",i,o),this},delete(i){const o=sn(this),{has:a,get:s}=py(o);let l=a.call(o,i);l||(i=sn(i),l=a.call(o,i)),s&&s.call(o,i);const u=o.delete(i);return l&&Ws(o,"delete",i,void 0),u},clear(){const i=sn(this),o=i.size!==0,a=i.clear();return o&&Ws(i,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=vZ(i,e,t)}),n}function vb(e,t){const n=gZ(e,t);return(r,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(cn(n,i)&&i in r?n:r,i,o)}const mZ={get:vb(!1,!1)},yZ={get:vb(!1,!0)},_Z={get:vb(!0,!1)},bZ={get:vb(!0,!0)},o$=new WeakMap,a$=new WeakMap,s$=new WeakMap,l$=new WeakMap;function SZ(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function wZ(e){return e.__v_skip||!Object.isExtensible(e)?0:SZ(L5(e))}function Na(e){return xu(e)?e:gb(e,!1,fZ,mZ,o$)}function sI(e){return gb(e,!1,hZ,yZ,a$)}function zg(e){return gb(e,!0,dZ,_Z,s$)}function xZ(e){return gb(e,!0,pZ,bZ,l$)}function gb(e,t,n,r,i){if(!vn(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=i.get(e);if(o)return o;const a=wZ(e);if(a===0)return e;const s=new Proxy(e,a===2?r:n);return i.set(e,s),s}function pu(e){return xu(e)?pu(e.__v_raw):!!(e&&e.__v_isReactive)}function xu(e){return!!(e&&e.__v_isReadonly)}function Co(e){return!!(e&&e.__v_isShallow)}function mb(e){return e?!!e.__v_raw:!1}function sn(e){const t=e&&e.__v_raw;return t?sn(t):e}function u$(e){return!cn(e,"__v_skip")&&Object.isExtensible(e)&&qA(e,"__v_skip",!0),e}const oi=e=>vn(e)?Na(e):e,NC=e=>vn(e)?zg(e):e;function st(e){return e?e.__v_isRef===!0:!1}function Fe(e){return c$(e,!1)}function Ef(e){return c$(e,!0)}function c$(e,t){return st(e)?e:new TZ(e,t)}class TZ{constructor(t,n){this.dep=new hb,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:sn(t),this._value=n?t:oi(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Co(t)||xu(t);t=r?t:sn(t),ri(t,n)&&(this._rawValue=t,this._value=r?t:oi(t),this.dep.trigger())}}function kC(e){e.dep&&e.dep.trigger()}function N(e){return st(e)?e.value:e}function CZ(e){return bt(e)?e():N(e)}const EZ={get:(e,t,n)=>t==="__v_raw"?e:N(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return st(i)&&!st(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function lI(e){return pu(e)?e:new Proxy(e,EZ)}class AZ{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new hb,{get:r,set:i}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=i}get value(){return this._value=this._get()}set value(t){this._set(t)}}function uI(e){return new AZ(e)}function IZ(e){const t=Je(e)?new Array(e.length):{};for(const n in e)t[n]=d$(e,n);return t}class RZ{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return aZ(sn(this._object),this._key)}}class PZ{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function f$(e,t,n){return st(e)?e:bt(e)?new PZ(e):vn(e)&&arguments.length>1?d$(e,t,n):Fe(e)}function d$(e,t,n){const r=e[t];return st(r)?r:new RZ(e,t,n)}class OZ{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new hb(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Kv-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&$n!==this)return K5(this,!0),!0}get value(){const t=this.dep.track();return J5(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function DZ(e,t,n=!1){let r,i;return bt(e)?r=e:(r=e.get,i=e.set),new OZ(r,i,n)}const MZ={GET:"get",HAS:"has",ITERATE:"iterate"},LZ={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},gy={},X_=new WeakMap;let Kl;function NZ(){return Kl}function h$(e,t=!1,n=Kl){if(n){let r=X_.get(n);r||X_.set(n,r=[]),r.push(e)}}function kZ(e,t,n=Jt){const{immediate:r,deep:i,once:o,scheduler:a,augmentJob:s,call:l}=n,u=S=>i?S:Co(S)||i===!1||i===0?js(S,1):js(S);let c,f,d,h,v=!1,m=!1;if(st(e)?(f=()=>e.value,v=Co(e)):pu(e)?(f=()=>u(e),v=!0):Je(e)?(m=!0,v=e.some(S=>pu(S)||Co(S)),f=()=>e.map(S=>{if(st(S))return S.value;if(pu(S))return u(S);if(bt(S))return l?l(S,2):S()})):bt(e)?t?f=l?()=>l(e,2):e:f=()=>{if(d){ku();try{d()}finally{Fu()}}const S=Kl;Kl=c;try{return l?l(e,3,[h]):e(h)}finally{Kl=S}}:f=Lr,t&&i){const S=f,C=i===!0?1/0:i;f=()=>js(S(),C)}const y=nI(),_=()=>{c.stop(),y&&y.active&&ub(y.effects,c)};if(o&&t){const S=t;t=(...C)=>{S(...C),_()}}let b=m?new Array(e.length).fill(gy):gy;const w=S=>{if(!(!(c.flags&1)||!c.dirty&&!S))if(t){const C=c.run();if(i||v||(m?C.some((T,A)=>ri(T,b[A])):ri(C,b))){d&&d();const T=Kl;Kl=c;try{const A=[C,b===gy?void 0:m&&b[0]===gy?[]:b,h];l?l(t,3,A):t(...A),b=C}finally{Kl=T}}}else c.run()};return s&&s(w),c=new Xv(f),c.scheduler=a?()=>a(w,!1):w,h=S=>h$(S,!1,c),d=c.onStop=()=>{const S=X_.get(c);if(S){if(l)l(S,4);else for(const C of S)C();X_.delete(c)}},t?r?w(!0):b=c.run():a?a(w.bind(null,!0),!0):c.run(),_.pause=c.pause.bind(c),_.resume=c.resume.bind(c),_.stop=_,_}function js(e,t=1/0,n){if(t<=0||!vn(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,st(e))js(e.value,t,n);else if(Je(e))for(let r=0;r{js(r,t,n)});else if(Ug(e)){for(const r in e)js(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&js(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const p$=[];function FZ(e){p$.push(e)}function $Z(){p$.pop()}function BZ(e,t){}const VZ={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},UZ={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function bh(e,t,n,r){try{return r?e(...r):e()}catch(i){Af(i,t,n)}}function oa(e,t,n,r){if(bt(e)){const i=bh(e,t,n,r);return i&&cb(i)&&i.catch(o=>{Af(o,t,n)}),i}if(Je(e)){const i=[];for(let o=0;o>>1,i=Ti[r],o=Jv(i);o=Jv(n)?Ti.push(e):Ti.splice(GZ(t),0,e),e.flags|=1,g$()}}function g$(){K_||(K_=v$.then(m$))}function qv(e){Je(e)?Dd.push(...e):Zl&&e.id===-1?Zl.splice(pd+1,0,e):e.flags&1||(Dd.push(e),e.flags|=1),g$()}function RD(e,t,n=qa+1){for(;nJv(n)-Jv(r));if(Dd.length=0,Zl){Zl.push(...t);return}for(Zl=t,pd=0;pde.id==null?e.flags&2?-1:1/0:e.id;function m$(e){try{for(qa=0;qavd.emit(i,...o)),my=[]):typeof window<"u"&&window.HTMLElement&&!((r=(n=window.navigator)==null?void 0:n.userAgent)!=null&&r.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(o=>{y$(o,t)}),setTimeout(()=>{vd||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,my=[])},3e3)):my=[]}let Cr=null,yb=null;function Qv(e){const t=Cr;return Cr=e,yb=e&&e.type.__scopeId||null,t}function zZ(e){yb=e}function WZ(){yb=null}const jZ=e=>Mr;function Mr(e,t=Cr,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&zC(-1);const o=Qv(t);let a;try{a=e(...i)}finally{Qv(o),r._d&&zC(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function _t(e,t){if(Cr===null)return e;const n=Xg(Cr),r=e.dirs||(e.dirs=[]);for(let i=0;ie.__isTeleport,iv=e=>e&&(e.disabled||e.disabled===""),PD=e=>e&&(e.defer||e.defer===""),OD=e=>typeof SVGElement<"u"&&e instanceof SVGElement,DD=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,FC=(e,t)=>{const n=e&&e.to;return At(n)?t?t(n):null:n},S$={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,o,a,s,l,u){const{mc:c,pc:f,pbc:d,o:{insert:h,querySelector:v,createText:m,createComment:y}}=u,_=iv(t.props);let{shapeFlag:b,children:w,dynamicChildren:S}=t;if(e==null){const C=t.el=m(""),T=t.anchor=m("");h(C,n,r),h(T,n,r);const A=(I,R)=>{b&16&&(i&&i.isCE&&(i.ce._teleportTarget=I),c(w,I,R,i,o,a,s,l))},P=()=>{const I=t.target=FC(t.props,v),R=w$(I,t,m,h);I&&(a!=="svg"&&OD(I)?a="svg":a!=="mathml"&&DD(I)&&(a="mathml"),_||(A(I,R),H0(t,!1)))};_&&(A(n,T),H0(t,!0)),PD(t.props)?xr(()=>{P(),t.el.__isMounted=!0},o):P()}else{if(PD(t.props)&&!e.el.__isMounted){xr(()=>{S$.process(e,t,n,r,i,o,a,s,l,u),delete e.el.__isMounted},o);return}t.el=e.el,t.targetStart=e.targetStart;const C=t.anchor=e.anchor,T=t.target=e.target,A=t.targetAnchor=e.targetAnchor,P=iv(e.props),I=P?n:T,R=P?C:A;if(a==="svg"||OD(T)?a="svg":(a==="mathml"||DD(T))&&(a="mathml"),S?(d(e.dynamicChildren,S,I,i,o,a,s),SI(e,t,!0)):l||f(e,t,I,R,i,o,a,s,!1),_)P?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):yy(t,n,C,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const O=t.target=FC(t.props,v);O&&yy(t,O,null,u,0)}else P&&yy(t,T,A,u,1);H0(t,_)}},remove(e,t,n,{um:r,o:{remove:i}},o){const{shapeFlag:a,children:s,anchor:l,targetStart:u,targetAnchor:c,target:f,props:d}=e;if(f&&(i(u),i(c)),o&&i(l),a&16){const h=o||!iv(d);for(let v=0;v{e.isMounted=!0}),jg(()=>{e.isUnmounting=!0}),e}const Vo=[Function,Array],dI={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Vo,onEnter:Vo,onAfterEnter:Vo,onEnterCancelled:Vo,onBeforeLeave:Vo,onLeave:Vo,onAfterLeave:Vo,onLeaveCancelled:Vo,onBeforeAppear:Vo,onAppear:Vo,onAfterAppear:Vo,onAppearCancelled:Vo},x$=e=>{const t=e.subTree;return t.component?x$(t.component):t},KZ={name:"BaseTransition",props:dI,setup(e,{slots:t}){const n=br(),r=fI();return()=>{const i=t.default&&_b(t.default(),!0);if(!i||!i.length)return;const o=T$(i),a=sn(e),{mode:s}=a;if(r.isLeaving)return ux(o);const l=MD(o);if(!l)return ux(o);let u=Xd(l,a,r,n,f=>u=f);l.type!==yr&&ll(l,u);let c=n.subTree&&MD(n.subTree);if(c&&c.type!==yr&&!Ia(l,c)&&x$(n).type!==yr){let f=Xd(c,a,r,n);if(ll(c,f),s==="out-in"&&l.type!==yr)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,c=void 0},ux(o);s==="in-out"&&l.type!==yr?f.delayLeave=(d,h,v)=>{const m=E$(r,c);m[String(c.key)]=c,d[ql]=()=>{h(),d[ql]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{v(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function T$(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==yr){t=n;break}}return t}const C$=KZ;function E$(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Xd(e,t,n,r,i){const{appear:o,mode:a,persisted:s=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:d,onLeave:h,onAfterLeave:v,onLeaveCancelled:m,onBeforeAppear:y,onAppear:_,onAfterAppear:b,onAppearCancelled:w}=t,S=String(e.key),C=E$(n,e),T=(I,R)=>{I&&oa(I,r,9,R)},A=(I,R)=>{const O=R[1];T(I,R),Je(I)?I.every(M=>M.length<=1)&&O():I.length<=1&&O()},P={mode:a,persisted:s,beforeEnter(I){let R=l;if(!n.isMounted)if(o)R=y||l;else return;I[ql]&&I[ql](!0);const O=C[S];O&&Ia(e,O)&&O.el[ql]&&O.el[ql](),T(R,[I])},enter(I){let R=u,O=c,M=f;if(!n.isMounted)if(o)R=_||u,O=b||c,M=w||f;else return;let $=!1;const F=I[_y]=z=>{$||($=!0,z?T(M,[I]):T(O,[I]),P.delayedLeave&&P.delayedLeave(),I[_y]=void 0)};R?A(R,[I,F]):F()},leave(I,R){const O=String(e.key);if(I[_y]&&I[_y](!0),n.isUnmounting)return R();T(d,[I]);let M=!1;const $=I[ql]=F=>{M||(M=!0,R(),F?T(m,[I]):T(v,[I]),I[ql]=void 0,C[O]===e&&delete C[O])};C[O]=e,h?A(h,[I,$]):$()},clone(I){const R=Xd(I,t,n,r,i);return i&&i(R),R}};return P}function ux(e){if(Wg(e))return e=us(e),e.children=null,e}function MD(e){if(!Wg(e))return b$(e.type)&&e.children?T$(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&bt(n.default))return n.default()}}function ll(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ll(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 _b(e,t=!1,n){let r=[],i=0;for(let o=0;o1)for(let o=0;on.value,set:o=>n.value=o})}return n}function eg(e,t,n,r,i=!1){if(Je(e)){e.forEach((v,m)=>eg(v,t&&(Je(t)?t[m]:t),n,r,i));return}if(vu(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&eg(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Xg(r.component):r.el,a=i?null:o,{i:s,r:l}=e,u=t&&t.r,c=s.refs===Jt?s.refs={}:s.refs,f=s.setupState,d=sn(f),h=f===Jt?()=>!1:v=>cn(d,v);if(u!=null&&u!==l&&(At(u)?(c[u]=null,h(u)&&(f[u]=null)):st(u)&&(u.value=null)),bt(l))bh(l,s,12,[a,c]);else{const v=At(l),m=st(l);if(v||m){const y=()=>{if(e.f){const _=v?h(l)?f[l]:c[l]:l.value;i?Je(_)&&ub(_,o):Je(_)?_.includes(o)||_.push(o):v?(c[l]=[o],h(l)&&(f[l]=c[l])):(l.value=[o],e.k&&(c[e.k]=l.value))}else v?(c[l]=a,h(l)&&(f[l]=a)):m&&(l.value=a,e.k&&(c[e.k]=a))};a?(y.id=-1,xr(y,n)):y()}}}let LD=!1;const Yf=()=>{LD||(console.error("Hydration completed but contains mismatches."),LD=!0)},JZ=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",QZ=e=>e.namespaceURI.includes("MathML"),by=e=>{if(e.nodeType===1){if(JZ(e))return"svg";if(QZ(e))return"mathml"}},Td=e=>e.nodeType===8;function eq(e){const{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:o,parentNode:a,remove:s,insert:l,createComment:u}}=e,c=(w,S)=>{if(!S.hasChildNodes()){n(null,w,S),Z_(),S._vnode=w;return}f(S.firstChild,w,null,null,null),Z_(),S._vnode=w},f=(w,S,C,T,A,P=!1)=>{P=P||!!S.dynamicChildren;const I=Td(w)&&w.data==="[",R=()=>m(w,S,C,T,A,I),{type:O,ref:M,shapeFlag:$,patchFlag:F}=S;let z=w.nodeType;S.el=w,F===-2&&(P=!1,S.dynamicChildren=null);let B=null;switch(O){case tl:z!==3?S.children===""?(l(S.el=i(""),a(w),w),B=w):B=R():(w.data!==S.children&&(Yf(),w.data=S.children),B=o(w));break;case yr:b(w)?(B=o(w),_(S.el=w.content.firstChild,w,C)):z!==8||I?B=R():B=o(w);break;case Kc:if(I&&(w=o(w),z=w.nodeType),z===1||z===3){B=w;const Y=!S.children.length;for(let j=0;j{P=P||!!S.dynamicChildren;const{type:I,props:R,patchFlag:O,shapeFlag:M,dirs:$,transition:F}=S,z=I==="input"||I==="option";if(z||O!==-1){$&&Ja(S,null,C,"created");let B=!1;if(b(w)){B=q$(null,F)&&C&&C.vnode.props&&C.vnode.props.appear;const j=w.content.firstChild;B&&F.beforeEnter(j),_(j,w,C),S.el=w=j}if(M&16&&!(R&&(R.innerHTML||R.textContent))){let j=h(w.firstChild,S,w,C,T,A,P);for(;j;){Sy(w,1)||Yf();const se=j;j=j.nextSibling,s(se)}}else if(M&8){let j=S.children;j[0]===` +`&&(w.tagName==="PRE"||w.tagName==="TEXTAREA")&&(j=j.slice(1)),w.textContent!==j&&(Sy(w,0)||Yf(),w.textContent=S.children)}if(R){if(z||!P||O&48){const j=w.tagName.includes("-");for(const se in R)(z&&(se.endsWith("value")||se==="indeterminate")||Mu(se)&&!el(se)||se[0]==="."||j)&&r(w,se,null,R[se],void 0,C)}else if(R.onClick)r(w,"onClick",null,R.onClick,void 0,C);else if(O&4&&pu(R.style))for(const j in R.style)R.style[j]}let Y;(Y=R&&R.onVnodeBeforeMount)&&Gi(Y,C,S),$&&Ja(S,null,C,"beforeMount"),((Y=R&&R.onVnodeMounted)||$||B)&&a4(()=>{Y&&Gi(Y,C,S),B&&F.enter(w),$&&Ja(S,null,C,"mounted")},T)}return w.nextSibling},h=(w,S,C,T,A,P,I)=>{I=I||!!S.dynamicChildren;const R=S.children,O=R.length;for(let M=0;M{const{slotScopeIds:I}=S;I&&(A=A?A.concat(I):I);const R=a(w),O=h(o(w),S,R,C,T,A,P);return O&&Td(O)&&O.data==="]"?o(S.anchor=O):(Yf(),l(S.anchor=u("]"),R,O),O)},m=(w,S,C,T,A,P)=>{if(Sy(w.parentElement,1)||Yf(),S.el=null,P){const O=y(w);for(;;){const M=o(w);if(M&&M!==O)s(M);else break}}const I=o(w),R=a(w);return s(w),n(null,S,R,I,C,T,by(R),A),C&&(C.vnode.el=S.el,Tb(C,S.el)),I},y=(w,S="[",C="]")=>{let T=0;for(;w;)if(w=o(w),w&&Td(w)&&(w.data===S&&T++,w.data===C)){if(T===0)return o(w);T--}return w},_=(w,S,C)=>{const T=S.parentNode;T&&T.replaceChild(w,S);let A=C;for(;A;)A.vnode.el===S&&(A.vnode.el=A.subTree.el=w),A=A.parent},b=w=>w.nodeType===1&&w.tagName==="TEMPLATE";return[c,f]}const ND="data-allow-mismatch",tq={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function Sy(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(ND);)e=e.parentElement;const n=e&&e.getAttribute(ND);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(tq[t])}}const nq=Hg().requestIdleCallback||(e=>setTimeout(e,1)),rq=Hg().cancelIdleCallback||(e=>clearTimeout(e)),iq=(e=1e4)=>t=>{const n=nq(t,{timeout:e});return()=>rq(n)};function oq(e){const{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:o,innerWidth:a}=window;return(t>0&&t0&&r0&&n0&&i(t,n)=>{const r=new IntersectionObserver(i=>{for(const o of i)if(o.isIntersecting){r.disconnect(),t();break}},e);return n(i=>{if(i instanceof Element){if(oq(i))return t(),r.disconnect(),!1;r.observe(i)}}),()=>r.disconnect()},sq=e=>t=>{if(e){const n=matchMedia(e);if(n.matches)t();else return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t)}},lq=(e=[])=>(t,n)=>{At(e)&&(e=[e]);let r=!1;const i=a=>{r||(r=!0,o(),t(),a.target.dispatchEvent(new a.constructor(a.type,a)))},o=()=>{n(a=>{for(const s of e)a.removeEventListener(s,i)})};return n(a=>{for(const s of e)a.addEventListener(s,i,{once:!0})}),o};function uq(e,t){if(Td(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Td(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const vu=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function cq(e){bt(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:i=200,hydrate:o,timeout:a,suspensible:s=!0,onError:l}=e;let u=null,c,f=0;const d=()=>(f++,u=null,h()),h=()=>{let v;return u||(v=u=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),l)return new Promise((y,_)=>{l(m,()=>y(d()),()=>_(m),f+1)});throw m}).then(m=>v!==u&&u?u:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),c=m,m)))};return it({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(v,m,y){const _=o?()=>{const b=o(y,w=>uq(v,w));b&&(m.bum||(m.bum=[])).push(b)}:y;c?_():h().then(()=>!m.isUnmounted&&_())},get __asyncResolved(){return c},setup(){const v=Tr;if(hI(v),c)return()=>cx(c,v);const m=w=>{u=null,Af(w,v,13,!r)};if(s&&v.suspense||Kd)return h().then(w=>()=>cx(w,v)).catch(w=>(m(w),()=>r?ye(r,{error:w}):null));const y=Fe(!1),_=Fe(),b=Fe(!!i);return i&&setTimeout(()=>{b.value=!1},i),a!=null&&setTimeout(()=>{if(!y.value&&!_.value){const w=new Error(`Async component timed out after ${a}ms.`);m(w),_.value=w}},a),h().then(()=>{y.value=!0,v.parent&&Wg(v.parent.vnode)&&v.parent.update()}).catch(w=>{m(w),_.value=w}),()=>{if(y.value&&c)return cx(c,v);if(_.value&&r)return ye(r,{error:_.value});if(n&&!b.value)return ye(n)}}})}function cx(e,t){const{ref:n,props:r,children:i,ce:o}=t.vnode,a=ye(e,r,i);return a.ref=n,a.ce=o,delete t.vnode.ce,a}const Wg=e=>e.type.__isKeepAlive,fq={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=br(),r=n.ctx;if(!r.renderer)return()=>{const b=t.default&&t.default();return b&&b.length===1?b[0]:b};const i=new Map,o=new Set;let a=null;const s=n.suspense,{renderer:{p:l,m:u,um:c,o:{createElement:f}}}=r,d=f("div");r.activate=(b,w,S,C,T)=>{const A=b.component;u(b,w,S,0,s),l(A.vnode,b,w,S,A,s,C,b.slotScopeIds,T),xr(()=>{A.isDeactivated=!1,A.a&&jc(A.a);const P=b.props&&b.props.onVnodeMounted;P&&Gi(P,A.parent,b)},s)},r.deactivate=b=>{const w=b.component;J_(w.m),J_(w.a),u(b,d,null,1,s),xr(()=>{w.da&&jc(w.da);const S=b.props&&b.props.onVnodeUnmounted;S&&Gi(S,w.parent,b),w.isDeactivated=!0},s)};function h(b){fx(b),c(b,n,s,!0)}function v(b){i.forEach((w,S)=>{const C=KC(w.type);C&&!b(C)&&m(S)})}function m(b){const w=i.get(b);w&&(!a||!Ia(w,a))?h(w):a&&fx(a),i.delete(b),o.delete(b)}Yt(()=>[e.include,e.exclude],([b,w])=>{b&&v(S=>$p(b,S)),w&&v(S=>!$p(w,S))},{flush:"post",deep:!0});let y=null;const _=()=>{y!=null&&(Q_(n.subTree.type)?xr(()=>{i.set(y,wy(n.subTree))},n.subTree.suspense):i.set(y,wy(n.subTree)))};return lo(_),Sb(_),jg(()=>{i.forEach(b=>{const{subTree:w,suspense:S}=n,C=wy(w);if(b.type===C.type&&b.key===C.key){fx(C);const T=C.component.da;T&&xr(T,S);return}h(b)})}),()=>{if(y=null,!t.default)return a=null;const b=t.default(),w=b[0];if(b.length>1)return a=null,b;if(!ul(w)||!(w.shapeFlag&4)&&!(w.shapeFlag&128))return a=null,w;let S=wy(w);if(S.type===yr)return a=null,S;const C=S.type,T=KC(vu(S)?S.type.__asyncResolved||{}:C),{include:A,exclude:P,max:I}=e;if(A&&(!T||!$p(A,T))||P&&T&&$p(P,T))return S.shapeFlag&=-257,a=S,w;const R=S.key==null?C:S.key,O=i.get(R);return S.el&&(S=us(S),w.shapeFlag&128&&(w.ssContent=S)),y=R,O?(S.el=O.el,S.component=O.component,S.transition&&ll(S,S.transition),S.shapeFlag|=512,o.delete(R),o.add(R)):(o.add(R),I&&o.size>parseInt(I,10)&&m(o.values().next().value)),S.shapeFlag|=256,a=S,Q_(w.type)?w:S}}},dq=fq;function $p(e,t){return Je(e)?e.some(n=>$p(n,t)):At(e)?e.split(",").includes(t):M5(e)?(e.lastIndex=0,e.test(t)):!1}function A$(e,t){R$(e,"a",t)}function I$(e,t){R$(e,"da",t)}function R$(e,t,n=Tr){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(bb(t,r,n),n){let i=n.parent;for(;i&&i.parent;)Wg(i.parent.vnode)&&hq(r,t,n,i),i=i.parent}}function hq(e,t,n,r){const i=bb(t,e,r,!0);Sh(()=>{ub(r[t],i)},n)}function fx(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function wy(e){return e.shapeFlag&128?e.ssContent:e}function bb(e,t,n=Tr,r=!1){if(n){const i=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...a)=>{ku();const s=cf(n),l=oa(t,n,e,a);return s(),Fu(),l});return r?i.unshift(o):i.push(o),o}}const ml=e=>(t,n=Tr)=>{(!Kd||e==="sp")&&bb(e,(...r)=>t(...r),n)},P$=ml("bm"),lo=ml("m"),pI=ml("bu"),Sb=ml("u"),jg=ml("bum"),Sh=ml("um"),O$=ml("sp"),D$=ml("rtg"),M$=ml("rtc");function L$(e,t=Tr){bb("ec",e,t)}const vI="components",pq="directives";function vq(e,t){return gI(vI,e,!0,t)||e}const N$=Symbol.for("v-ndc");function ls(e){return At(e)?gI(vI,e,!1)||e:e||N$}function gq(e){return gI(pq,e)}function gI(e,t,n=!0,r=!1){const i=Cr||Tr;if(i){const o=i.type;if(e===vI){const s=KC(o,!1);if(s&&(s===t||s===Bn(t)||s===Nu(Bn(t))))return o}const a=kD(i[e]||o[e],t)||kD(i.appContext[e],t);return!a&&r?o:a}}function kD(e,t){return e&&(e[t]||e[Bn(t)]||e[Nu(Bn(t))])}function on(e,t,n,r){let i;const o=n&&n[r],a=Je(e);if(a||At(e)){const s=a&&pu(e);let l=!1;s&&(l=!Co(e),e=pb(e)),i=new Array(e.length);for(let u=0,c=e.length;ut(s,l,void 0,o&&o[l]));else{const s=Object.keys(e);i=new Array(s.length);for(let l=0,u=s.length;l{const o=r.fn(...i);return o&&(o.key=r.key),o}:r.fn)}return e}function Md(e,t,n={},r,i){if(Cr.ce||Cr.parent&&vu(Cr.parent)&&Cr.parent.ce)return t!=="default"&&(n.name=t),K(),Ot(Ze,null,[ye("slot",n,r&&r())],64);let o=e[t];o&&o._c&&(o._d=!1),K();const a=o&&mI(o(n)),s=n.key||a&&a.key,l=Ot(Ze,{key:(s&&!Pi(s)?s:`_${t}`)+(!a&&r?"_fb":"")},a||(r?r():[]),a&&e._===1?64:-2);return!i&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function mI(e){return e.some(t=>ul(t)?!(t.type===yr||t.type===Ze&&!mI(t.children)):!0)?e:null}function yq(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:Wc(r)]=e[r];return n}const $C=e=>e?h4(e)?Xg(e):$C(e.parent):null,ov=Qt(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=>$C(e.parent),$root:e=>$C(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>yI(e),$forceUpdate:e=>e.f||(e.f=()=>{cI(e.update)}),$nextTick:e=>e.n||(e.n=gs.bind(e.proxy)),$watch:e=>Xq.bind(e)}),dx=(e,t)=>e!==Jt&&!e.__isScriptSetup&&cn(e,t),BC={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:i,props:o,accessCache:a,type:s,appContext:l}=e;let u;if(t[0]!=="$"){const h=a[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return o[t]}else{if(dx(r,t))return a[t]=1,r[t];if(i!==Jt&&cn(i,t))return a[t]=2,i[t];if((u=e.propsOptions[0])&&cn(u,t))return a[t]=3,o[t];if(n!==Jt&&cn(n,t))return a[t]=4,n[t];VC&&(a[t]=0)}}const c=ov[t];let f,d;if(c)return t==="$attrs"&&ii(e.attrs,"get",""),c(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(n!==Jt&&cn(n,t))return a[t]=4,n[t];if(d=l.config.globalProperties,cn(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:o}=e;return dx(i,t)?(i[t]=n,!0):r!==Jt&&cn(r,t)?(r[t]=n,!0):cn(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:o}},a){let s;return!!n[a]||e!==Jt&&cn(e,a)||dx(t,a)||(s=o[0])&&cn(s,a)||cn(r,a)||cn(ov,a)||cn(i.config.globalProperties,a)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:cn(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},_q=Qt({},BC,{get(e,t){if(t!==Symbol.unscopables)return BC.get(e,t,e)},has(e,t){return t[0]!=="_"&&!JA(t)}});function bq(){return null}function Sq(){return null}function wq(e){}function xq(e){}function Tq(){return null}function Cq(){}function Eq(e,t){return null}function Aq(){return k$().slots}function Iq(){return k$().attrs}function k$(){const e=br();return e.setupContext||(e.setupContext=g4(e))}function tg(e){return Je(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function Rq(e,t){const n=tg(e);for(const r in t){if(r.startsWith("__skip"))continue;let i=n[r];i?Je(i)||bt(i)?i=n[r]={type:i,default:t[r]}:i.default=t[r]:i===null&&(i=n[r]={default:t[r]}),i&&t[`__skip_${r}`]&&(i.skipFactory=!0)}return n}function Pq(e,t){return!e||!t?e||t:Je(e)&&Je(t)?e.concat(t):Qt({},tg(e),tg(t))}function Oq(e,t){const n={};for(const r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}function Dq(e){const t=br();let n=e();return jC(),cb(n)&&(n=n.catch(r=>{throw cf(t),r})),[n,()=>cf(t)]}let VC=!0;function Mq(e){const t=yI(e),n=e.proxy,r=e.ctx;VC=!1,t.beforeCreate&&FD(t.beforeCreate,e,"bc");const{data:i,computed:o,methods:a,watch:s,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:v,activated:m,deactivated:y,beforeDestroy:_,beforeUnmount:b,destroyed:w,unmounted:S,render:C,renderTracked:T,renderTriggered:A,errorCaptured:P,serverPrefetch:I,expose:R,inheritAttrs:O,components:M,directives:$,filters:F}=t;if(u&&Lq(u,r,null),a)for(const Y in a){const j=a[Y];bt(j)&&(r[Y]=j.bind(n))}if(i){const Y=i.call(n,n);vn(Y)&&(e.data=Na(Y))}if(VC=!0,o)for(const Y in o){const j=o[Y],se=bt(j)?j.bind(n,n):bt(j.get)?j.get.bind(n,n):Lr,ge=!bt(j)&&bt(j.set)?j.set.bind(n):Lr,ve=Ve({get:se,set:ge});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>ve.value,set:De=>ve.value=De})}if(s)for(const Y in s)F$(s[Y],r,n,Y);if(l){const Y=bt(l)?l.call(n):l;Reflect.ownKeys(Y).forEach(j=>{av(j,Y[j])})}c&&FD(c,e,"c");function B(Y,j){Je(j)?j.forEach(se=>Y(se.bind(n))):j&&Y(j.bind(n))}if(B(P$,f),B(lo,d),B(pI,h),B(Sb,v),B(A$,m),B(I$,y),B(L$,P),B(M$,T),B(D$,A),B(jg,b),B(Sh,S),B(O$,I),Je(R))if(R.length){const Y=e.exposed||(e.exposed={});R.forEach(j=>{Object.defineProperty(Y,j,{get:()=>n[j],set:se=>n[j]=se})})}else e.exposed||(e.exposed={});C&&e.render===Lr&&(e.render=C),O!=null&&(e.inheritAttrs=O),M&&(e.components=M),$&&(e.directives=$),I&&hI(e)}function Lq(e,t,n=Lr){Je(e)&&(e=UC(e));for(const r in e){const i=e[r];let o;vn(i)?"default"in i?o=Ji(i.from||r,i.default,!0):o=Ji(i.from||r):o=Ji(i),st(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:a=>o.value=a}):t[r]=o}}function FD(e,t,n){oa(Je(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function F$(e,t,n,r){let i=r.includes(".")?n4(n,r):()=>n[r];if(At(e)){const o=t[e];bt(o)&&Yt(i,o)}else if(bt(e))Yt(i,e.bind(n));else if(vn(e))if(Je(e))e.forEach(o=>F$(o,t,n,r));else{const o=bt(e.handler)?e.handler.bind(n):t[e.handler];bt(o)&&Yt(i,o,e)}}function yI(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:o,config:{optionMergeStrategies:a}}=e.appContext,s=o.get(t);let l;return s?l=s:!i.length&&!n&&!r?l=t:(l={},i.length&&i.forEach(u=>q_(l,u,a,!0)),q_(l,t,a)),vn(t)&&o.set(t,l),l}function q_(e,t,n,r=!1){const{mixins:i,extends:o}=t;o&&q_(e,o,n,!0),i&&i.forEach(a=>q_(e,a,n,!0));for(const a in t)if(!(r&&a==="expose")){const s=Nq[a]||n&&n[a];e[a]=s?s(e[a],t[a]):t[a]}return e}const Nq={data:$D,props:BD,emits:BD,methods:Bp,computed:Bp,beforeCreate:_i,created:_i,beforeMount:_i,mounted:_i,beforeUpdate:_i,updated:_i,beforeDestroy:_i,beforeUnmount:_i,destroyed:_i,unmounted:_i,activated:_i,deactivated:_i,errorCaptured:_i,serverPrefetch:_i,components:Bp,directives:Bp,watch:Fq,provide:$D,inject:kq};function $D(e,t){return t?e?function(){return Qt(bt(e)?e.call(this,this):e,bt(t)?t.call(this,this):t)}:t:e}function kq(e,t){return Bp(UC(e),UC(t))}function UC(e){if(Je(e)){const t={};for(let n=0;n1)return n&&bt(t)?t.call(r&&r.proxy):t}}function _I(){return!!(Tr||Cr||Xc)}const B$={},V$=()=>Object.create(B$),U$=e=>Object.getPrototypeOf(e)===B$;function Vq(e,t,n,r=!1){const i={},o=V$();e.propsDefaults=Object.create(null),H$(e,t,i,o);for(const a in e.propsOptions[0])a in i||(i[a]=void 0);n?e.props=r?i:sI(i):e.type.props?e.props=i:e.props=o,e.attrs=o}function Uq(e,t,n,r){const{props:i,attrs:o,vnode:{patchFlag:a}}=e,s=sn(i),[l]=e.propsOptions;let u=!1;if((r||a>0)&&!(a&16)){if(a&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,h]=G$(f,t,!0);Qt(a,d),h&&s.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!l)return vn(e)&&r.set(e,Gc),Gc;if(Je(o))for(let c=0;ce[0]==="_"||e==="$stable",bI=e=>Je(e)?e.map(ji):[ji(e)],Gq=(e,t,n)=>{if(t._n)return t;const r=Mr((...i)=>bI(t(...i)),n);return r._c=!1,r},W$=(e,t,n)=>{const r=e._ctx;for(const i in e){if(z$(i))continue;const o=e[i];if(bt(o))t[i]=Gq(i,o,r);else if(o!=null){const a=bI(o);t[i]=()=>a}}},j$=(e,t)=>{const n=bI(t);e.slots.default=()=>n},Y$=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},zq=(e,t,n)=>{const r=e.slots=V$();if(e.vnode.shapeFlag&32){const i=t._;i?(Y$(r,t,n),n&&qA(r,"_",i,!0)):W$(t,r)}else t&&j$(e,t)},Wq=(e,t,n)=>{const{vnode:r,slots:i}=e;let o=!0,a=Jt;if(r.shapeFlag&32){const s=t._;s?n&&s===1?o=!1:Y$(i,t,n):(o=!t.$stable,W$(t,i)),a=t}else t&&(j$(e,t),a={default:1});if(o)for(const s in i)!z$(s)&&a[s]==null&&delete i[s]},xr=a4;function X$(e){return Z$(e)}function K$(e){return Z$(e,eq)}function Z$(e,t){const n=Hg();n.__VUE__=!0;const{insert:r,remove:i,patchProp:o,createElement:a,createText:s,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=Lr,insertStaticContent:v}=e,m=(H,G,le,we=null,pe=null,U=null,W=void 0,q=null,fe=!!G.dynamicChildren)=>{if(H===G)return;H&&!Ia(H,G)&&(we=ce(H),De(H,pe,U,!0),H=null),G.patchFlag===-2&&(fe=!1,G.dynamicChildren=null);const{type:_e,ref:Pe,shapeFlag:Z}=G;switch(_e){case tl:y(H,G,le,we);break;case yr:_(H,G,le,we);break;case Kc:H==null&&b(G,le,we,W);break;case Ze:M(H,G,le,we,pe,U,W,q,fe);break;default:Z&1?C(H,G,le,we,pe,U,W,q,fe):Z&6?$(H,G,le,we,pe,U,W,q,fe):(Z&64||Z&128)&&_e.process(H,G,le,we,pe,U,W,q,fe,Te)}Pe!=null&&pe&&eg(Pe,H&&H.ref,U,G||H,!G)},y=(H,G,le,we)=>{if(H==null)r(G.el=s(G.children),le,we);else{const pe=G.el=H.el;G.children!==H.children&&u(pe,G.children)}},_=(H,G,le,we)=>{H==null?r(G.el=l(G.children||""),le,we):G.el=H.el},b=(H,G,le,we)=>{[H.el,H.anchor]=v(H.children,G,le,we,H.el,H.anchor)},w=({el:H,anchor:G},le,we)=>{let pe;for(;H&&H!==G;)pe=d(H),r(H,le,we),H=pe;r(G,le,we)},S=({el:H,anchor:G})=>{let le;for(;H&&H!==G;)le=d(H),i(H),H=le;i(G)},C=(H,G,le,we,pe,U,W,q,fe)=>{G.type==="svg"?W="svg":G.type==="math"&&(W="mathml"),H==null?T(G,le,we,pe,U,W,q,fe):I(H,G,pe,U,W,q,fe)},T=(H,G,le,we,pe,U,W,q)=>{let fe,_e;const{props:Pe,shapeFlag:Z,transition:de,dirs:Be}=H;if(fe=H.el=a(H.type,U,Pe&&Pe.is,Pe),Z&8?c(fe,H.children):Z&16&&P(H.children,fe,null,we,pe,hx(H,U),W,q),Be&&Ja(H,null,we,"created"),A(fe,H,H.scopeId,W,we),Pe){for(const ht in Pe)ht!=="value"&&!el(ht)&&o(fe,ht,null,Pe[ht],U,we);"value"in Pe&&o(fe,"value",null,Pe.value,U),(_e=Pe.onVnodeBeforeMount)&&Gi(_e,we,H)}Be&&Ja(H,null,we,"beforeMount");const Xe=q$(pe,de);Xe&&de.beforeEnter(fe),r(fe,G,le),((_e=Pe&&Pe.onVnodeMounted)||Xe||Be)&&xr(()=>{_e&&Gi(_e,we,H),Xe&&de.enter(fe),Be&&Ja(H,null,we,"mounted")},pe)},A=(H,G,le,we,pe)=>{if(le&&h(H,le),we)for(let U=0;U{for(let _e=fe;_e{const q=G.el=H.el;let{patchFlag:fe,dynamicChildren:_e,dirs:Pe}=G;fe|=H.patchFlag&16;const Z=H.props||Jt,de=G.props||Jt;let Be;if(le&&Qu(le,!1),(Be=de.onVnodeBeforeUpdate)&&Gi(Be,le,G,H),Pe&&Ja(G,H,le,"beforeUpdate"),le&&Qu(le,!0),(Z.innerHTML&&de.innerHTML==null||Z.textContent&&de.textContent==null)&&c(q,""),_e?R(H.dynamicChildren,_e,q,le,we,hx(G,pe),U):W||j(H,G,q,null,le,we,hx(G,pe),U,!1),fe>0){if(fe&16)O(q,Z,de,le,pe);else if(fe&2&&Z.class!==de.class&&o(q,"class",null,de.class,pe),fe&4&&o(q,"style",Z.style,de.style,pe),fe&8){const Xe=G.dynamicProps;for(let ht=0;ht{Be&&Gi(Be,le,G,H),Pe&&Ja(G,H,le,"updated")},we)},R=(H,G,le,we,pe,U,W)=>{for(let q=0;q{if(G!==le){if(G!==Jt)for(const U in G)!el(U)&&!(U in le)&&o(H,U,G[U],null,pe,we);for(const U in le){if(el(U))continue;const W=le[U],q=G[U];W!==q&&U!=="value"&&o(H,U,q,W,pe,we)}"value"in le&&o(H,"value",G.value,le.value,pe)}},M=(H,G,le,we,pe,U,W,q,fe)=>{const _e=G.el=H?H.el:s(""),Pe=G.anchor=H?H.anchor:s("");let{patchFlag:Z,dynamicChildren:de,slotScopeIds:Be}=G;Be&&(q=q?q.concat(Be):Be),H==null?(r(_e,le,we),r(Pe,le,we),P(G.children||[],le,Pe,pe,U,W,q,fe)):Z>0&&Z&64&&de&&H.dynamicChildren?(R(H.dynamicChildren,de,le,pe,U,W,q),(G.key!=null||pe&&G===pe.subTree)&&SI(H,G,!0)):j(H,G,le,Pe,pe,U,W,q,fe)},$=(H,G,le,we,pe,U,W,q,fe)=>{G.slotScopeIds=q,H==null?G.shapeFlag&512?pe.ctx.activate(G,le,we,W,fe):F(G,le,we,pe,U,W,fe):z(H,G,fe)},F=(H,G,le,we,pe,U,W)=>{const q=H.component=d4(H,we,pe);if(Wg(H)&&(q.ctx.renderer=Te),p4(q,!1,W),q.asyncDep){if(pe&&pe.registerDep(q,B,W),!H.el){const fe=q.subTree=ye(yr);_(null,fe,G,le)}}else B(q,H,G,le,pe,U,W)},z=(H,G,le)=>{const we=G.component=H.component;if(eJ(H,G,le))if(we.asyncDep&&!we.asyncResolved){Y(we,G,le);return}else we.next=G,we.update();else G.el=H.el,we.vnode=G},B=(H,G,le,we,pe,U,W)=>{const q=()=>{if(H.isMounted){let{next:Z,bu:de,u:Be,parent:Xe,vnode:ht}=H;{const He=J$(H);if(He){Z&&(Z.el=ht.el,Y(H,Z,W)),He.asyncDep.then(()=>{H.isUnmounted||q()});return}}let ee=Z,ie;Qu(H,!1),Z?(Z.el=ht.el,Y(H,Z,W)):Z=ht,de&&jc(de),(ie=Z.props&&Z.props.onVnodeBeforeUpdate)&&Gi(ie,Xe,Z,ht),Qu(H,!0);const he=G0(H),Ce=H.subTree;H.subTree=he,m(Ce,he,f(Ce.el),ce(Ce),H,pe,U),Z.el=he.el,ee===null&&Tb(H,he.el),Be&&xr(Be,pe),(ie=Z.props&&Z.props.onVnodeUpdated)&&xr(()=>Gi(ie,Xe,Z,ht),pe)}else{let Z;const{el:de,props:Be}=G,{bm:Xe,m:ht,parent:ee,root:ie,type:he}=H,Ce=vu(G);if(Qu(H,!1),Xe&&jc(Xe),!Ce&&(Z=Be&&Be.onVnodeBeforeMount)&&Gi(Z,ee,G),Qu(H,!0),de&&$e){const He=()=>{H.subTree=G0(H),$e(de,H.subTree,H,pe,null)};Ce&&he.__asyncHydrate?he.__asyncHydrate(de,H,He):He()}else{ie.ce&&ie.ce._injectChildStyle(he);const He=H.subTree=G0(H);m(null,He,le,we,H,pe,U),G.el=He.el}if(ht&&xr(ht,pe),!Ce&&(Z=Be&&Be.onVnodeMounted)){const He=G;xr(()=>Gi(Z,ee,He),pe)}(G.shapeFlag&256||ee&&vu(ee.vnode)&&ee.vnode.shapeFlag&256)&&H.a&&xr(H.a,pe),H.isMounted=!0,G=le=we=null}};H.scope.on();const fe=H.effect=new Xv(q);H.scope.off();const _e=H.update=fe.run.bind(fe),Pe=H.job=fe.runIfDirty.bind(fe);Pe.i=H,Pe.id=H.uid,fe.scheduler=()=>cI(Pe),Qu(H,!0),_e()},Y=(H,G,le)=>{G.component=H;const we=H.vnode.props;H.vnode=G,H.next=null,Uq(H,G.props,we,le),Wq(H,G.children,le),ku(),RD(H),Fu()},j=(H,G,le,we,pe,U,W,q,fe=!1)=>{const _e=H&&H.children,Pe=H?H.shapeFlag:0,Z=G.children,{patchFlag:de,shapeFlag:Be}=G;if(de>0){if(de&128){ge(_e,Z,le,we,pe,U,W,q,fe);return}else if(de&256){se(_e,Z,le,we,pe,U,W,q,fe);return}}Be&8?(Pe&16&&je(_e,pe,U),Z!==_e&&c(le,Z)):Pe&16?Be&16?ge(_e,Z,le,we,pe,U,W,q,fe):je(_e,pe,U,!0):(Pe&8&&c(le,""),Be&16&&P(Z,le,we,pe,U,W,q,fe))},se=(H,G,le,we,pe,U,W,q,fe)=>{H=H||Gc,G=G||Gc;const _e=H.length,Pe=G.length,Z=Math.min(_e,Pe);let de;for(de=0;dePe?je(H,pe,U,!0,!1,Z):P(G,le,we,pe,U,W,q,fe,Z)},ge=(H,G,le,we,pe,U,W,q,fe)=>{let _e=0;const Pe=G.length;let Z=H.length-1,de=Pe-1;for(;_e<=Z&&_e<=de;){const Be=H[_e],Xe=G[_e]=fe?Jl(G[_e]):ji(G[_e]);if(Ia(Be,Xe))m(Be,Xe,le,null,pe,U,W,q,fe);else break;_e++}for(;_e<=Z&&_e<=de;){const Be=H[Z],Xe=G[de]=fe?Jl(G[de]):ji(G[de]);if(Ia(Be,Xe))m(Be,Xe,le,null,pe,U,W,q,fe);else break;Z--,de--}if(_e>Z){if(_e<=de){const Be=de+1,Xe=Bede)for(;_e<=Z;)De(H[_e],pe,U,!0),_e++;else{const Be=_e,Xe=_e,ht=new Map;for(_e=Xe;_e<=de;_e++){const ke=G[_e]=fe?Jl(G[_e]):ji(G[_e]);ke.key!=null&&ht.set(ke.key,_e)}let ee,ie=0;const he=de-Xe+1;let Ce=!1,He=0;const ne=new Array(he);for(_e=0;_e=he){De(ke,pe,U,!0);continue}let Qe;if(ke.key!=null)Qe=ht.get(ke.key);else for(ee=Xe;ee<=de;ee++)if(ne[ee-Xe]===0&&Ia(ke,G[ee])){Qe=ee;break}Qe===void 0?De(ke,pe,U,!0):(ne[Qe-Xe]=_e+1,Qe>=He?He=Qe:Ce=!0,m(ke,G[Qe],le,null,pe,U,W,q,fe),ie++)}const Ae=Ce?jq(ne):Gc;for(ee=Ae.length-1,_e=he-1;_e>=0;_e--){const ke=Xe+_e,Qe=G[ke],Ge=ke+1{const{el:U,type:W,transition:q,children:fe,shapeFlag:_e}=H;if(_e&6){ve(H.component.subTree,G,le,we);return}if(_e&128){H.suspense.move(G,le,we);return}if(_e&64){W.move(H,G,le,Te);return}if(W===Ze){r(U,G,le);for(let Z=0;Zq.enter(U),pe);else{const{leave:Z,delayLeave:de,afterLeave:Be}=q,Xe=()=>r(U,G,le),ht=()=>{Z(U,()=>{Xe(),Be&&Be()})};de?de(U,Xe,ht):ht()}else r(U,G,le)},De=(H,G,le,we=!1,pe=!1)=>{const{type:U,props:W,ref:q,children:fe,dynamicChildren:_e,shapeFlag:Pe,patchFlag:Z,dirs:de,cacheIndex:Be}=H;if(Z===-2&&(pe=!1),q!=null&&eg(q,null,le,H,!0),Be!=null&&(G.renderCache[Be]=void 0),Pe&256){G.ctx.deactivate(H);return}const Xe=Pe&1&&de,ht=!vu(H);let ee;if(ht&&(ee=W&&W.onVnodeBeforeUnmount)&&Gi(ee,G,H),Pe&6)Me(H.component,le,we);else{if(Pe&128){H.suspense.unmount(le,we);return}Xe&&Ja(H,null,G,"beforeUnmount"),Pe&64?H.type.remove(H,G,le,Te,we):_e&&!_e.hasOnce&&(U!==Ze||Z>0&&Z&64)?je(_e,G,le,!1,!0):(U===Ze&&Z&384||!pe&&Pe&16)&&je(fe,G,le),we&&Ne(H)}(ht&&(ee=W&&W.onVnodeUnmounted)||Xe)&&xr(()=>{ee&&Gi(ee,G,H),Xe&&Ja(H,null,G,"unmounted")},le)},Ne=H=>{const{type:G,el:le,anchor:we,transition:pe}=H;if(G===Ze){ze(le,we);return}if(G===Kc){S(H);return}const U=()=>{i(le),pe&&!pe.persisted&&pe.afterLeave&&pe.afterLeave()};if(H.shapeFlag&1&&pe&&!pe.persisted){const{leave:W,delayLeave:q}=pe,fe=()=>W(le,U);q?q(H.el,U,fe):fe()}else U()},ze=(H,G)=>{let le;for(;H!==G;)le=d(H),i(H),H=le;i(G)},Me=(H,G,le)=>{const{bum:we,scope:pe,job:U,subTree:W,um:q,m:fe,a:_e}=H;J_(fe),J_(_e),we&&jc(we),pe.stop(),U&&(U.flags|=8,De(W,H,G,le)),q&&xr(q,G),xr(()=>{H.isUnmounted=!0},G),G&&G.pendingBranch&&!G.isUnmounted&&H.asyncDep&&!H.asyncResolved&&H.suspenseId===G.pendingId&&(G.deps--,G.deps===0&&G.resolve())},je=(H,G,le,we=!1,pe=!1,U=0)=>{for(let W=U;W{if(H.shapeFlag&6)return ce(H.component.subTree);if(H.shapeFlag&128)return H.suspense.next();const G=d(H.anchor||H.el),le=G&&G[_$];return le?d(le):G};let Ee=!1;const Se=(H,G,le)=>{H==null?G._vnode&&De(G._vnode,null,null,!0):m(G._vnode||null,H,G,null,null,null,le),G._vnode=H,Ee||(Ee=!0,RD(),Z_(),Ee=!1)},Te={p:m,um:De,m:ve,r:Ne,mt:F,mc:P,pc:j,pbc:R,n:ce,o:e};let Oe,$e;return t&&([Oe,$e]=t(Te)),{render:Se,hydrate:Oe,createApp:Bq(Se,Oe)}}function hx({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Qu({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function q$(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function SI(e,t,n=!1){const r=e.children,i=t.children;if(Je(r)&&Je(i))for(let o=0;o>1,e[n[s]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,a=n[o-1];o-- >0;)n[o]=a,a=t[a];return n}function J$(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:J$(t)}function J_(e){if(e)for(let t=0;tJi(Q$);function wb(e,t){return Yg(e,null,t)}function Yq(e,t){return Yg(e,null,{flush:"post"})}function t4(e,t){return Yg(e,null,{flush:"sync"})}function Yt(e,t,n){return Yg(e,t,n)}function Yg(e,t,n=Jt){const{immediate:r,deep:i,flush:o,once:a}=n,s=Qt({},n),l=t&&r||!t&&o!=="post";let u;if(Kd){if(o==="sync"){const h=e4();u=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=Lr,h.resume=Lr,h.pause=Lr,h}}const c=Tr;s.call=(h,v,m)=>oa(h,c,v,m);let f=!1;o==="post"?s.scheduler=h=>{xr(h,c&&c.suspense)}:o!=="sync"&&(f=!0,s.scheduler=(h,v)=>{v?h():cI(h)}),s.augmentJob=h=>{t&&(h.flags|=4),f&&(h.flags|=2,c&&(h.id=c.uid,h.i=c))};const d=kZ(e,t,s);return Kd&&(u?u.push(d):l&&d()),d}function Xq(e,t,n){const r=this.proxy,i=At(e)?e.includes(".")?n4(r,e):()=>r[e]:e.bind(r,r);let o;bt(t)?o=t:(o=t.handler,n=t);const a=cf(this),s=Yg(i,o.bind(r),n);return a(),s}function n4(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i{let c,f=Jt,d;return t4(()=>{const h=e[i];ri(c,h)&&(c=h,u())}),{get(){return l(),n.get?n.get(c):c},set(h){const v=n.set?n.set(h):h;if(!ri(v,c)&&!(f!==Jt&&ri(h,f)))return;const m=r.vnode.props;m&&(t in m||i in m||o in m)&&(`onUpdate:${t}`in m||`onUpdate:${i}`in m||`onUpdate:${o}`in m)||(c=h,u()),r.emit(`update:${t}`,v),ri(h,v)&&ri(h,f)&&!ri(v,d)&&u(),f=h,d=v}}});return s[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?a||Jt:s,done:!1}:{done:!0}}}},s}const r4=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Bn(t)}Modifiers`]||e[`${ai(t)}Modifiers`];function Zq(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||Jt;let i=n;const o=t.startsWith("update:"),a=o&&r4(r,t.slice(7));a&&(a.trim&&(i=n.map(c=>At(c)?c.trim():c)),a.number&&(i=n.map(jv)));let s,l=r[s=Wc(t)]||r[s=Wc(Bn(t))];!l&&o&&(l=r[s=Wc(ai(t))]),l&&oa(l,e,6,i);const u=r[s+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,oa(u,e,6,i)}}function i4(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const o=e.emits;let a={},s=!1;if(!bt(e)){const l=u=>{const c=i4(u,t,!0);c&&(s=!0,Qt(a,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!s?(vn(e)&&r.set(e,null),null):(Je(o)?o.forEach(l=>a[l]=null):Qt(a,o),vn(e)&&r.set(e,a),a)}function xb(e,t){return!e||!Mu(t)?!1:(t=t.slice(2).replace(/Once$/,""),cn(e,t[0].toLowerCase()+t.slice(1))||cn(e,ai(t))||cn(e,t))}function G0(e){const{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[o],slots:a,attrs:s,emit:l,render:u,renderCache:c,props:f,data:d,setupState:h,ctx:v,inheritAttrs:m}=e,y=Qv(e);let _,b;try{if(n.shapeFlag&4){const S=i||r,C=S;_=ji(u.call(C,S,c,f,h,d,v)),b=s}else{const S=t;_=ji(S.length>1?S(f,{attrs:s,slots:a,emit:l}):S(f,null)),b=t.props?s:Jq(s)}}catch(S){sv.length=0,Af(S,e,1),_=ye(yr)}let w=_;if(b&&m!==!1){const S=Object.keys(b),{shapeFlag:C}=w;S.length&&C&7&&(o&&S.some(lb)&&(b=Qq(b,o)),w=us(w,b,!1,!0))}return n.dirs&&(w=us(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&ll(w,n.transition),_=w,Qv(y),_}function qq(e,t=!0){let n;for(let r=0;r{let t;for(const n in e)(n==="class"||n==="style"||Mu(n))&&((t||(t={}))[n]=e[n]);return t},Qq=(e,t)=>{const n={};for(const r in e)(!lb(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function eJ(e,t,n){const{props:r,children:i,component:o}=e,{props:a,children:s,patchFlag:l}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?UD(r,a,u):!!a;if(l&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;let GC=0;const tJ={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,o,a,s,l,u){if(e==null)rJ(t,n,r,i,o,a,s,l,u);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}iJ(e,t,n,r,i,a,s,l,u)}},hydrate:oJ,normalize:aJ},nJ=tJ;function ng(e,t){const n=e.props&&e.props[t];bt(n)&&n()}function rJ(e,t,n,r,i,o,a,s,l){const{p:u,o:{createElement:c}}=l,f=c("div"),d=e.suspense=o4(e,i,r,t,f,n,o,a,s,l);u(null,d.pendingBranch=e.ssContent,f,null,r,d,o,a),d.deps>0?(ng(e,"onPending"),ng(e,"onFallback"),u(null,e.ssFallback,t,n,r,null,o,a),Ld(d,e.ssFallback)):d.resolve(!1,!0)}function iJ(e,t,n,r,i,o,a,s,{p:l,um:u,o:{createElement:c}}){const f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;const d=t.ssContent,h=t.ssFallback,{activeBranch:v,pendingBranch:m,isInFallback:y,isHydrating:_}=f;if(m)f.pendingBranch=d,Ia(d,m)?(l(m,d,f.hiddenContainer,null,i,f,o,a,s),f.deps<=0?f.resolve():y&&(_||(l(v,h,n,r,i,null,o,a,s),Ld(f,h)))):(f.pendingId=GC++,_?(f.isHydrating=!1,f.activeBranch=m):u(m,i,f),f.deps=0,f.effects.length=0,f.hiddenContainer=c("div"),y?(l(null,d,f.hiddenContainer,null,i,f,o,a,s),f.deps<=0?f.resolve():(l(v,h,n,r,i,null,o,a,s),Ld(f,h))):v&&Ia(d,v)?(l(v,d,n,r,i,f,o,a,s),f.resolve(!0)):(l(null,d,f.hiddenContainer,null,i,f,o,a,s),f.deps<=0&&f.resolve()));else if(v&&Ia(d,v))l(v,d,n,r,i,f,o,a,s),Ld(f,d);else if(ng(t,"onPending"),f.pendingBranch=d,d.shapeFlag&512?f.pendingId=d.component.suspenseId:f.pendingId=GC++,l(null,d,f.hiddenContainer,null,i,f,o,a,s),f.deps<=0)f.resolve();else{const{timeout:b,pendingId:w}=f;b>0?setTimeout(()=>{f.pendingId===w&&f.fallback(h)},b):b===0&&f.fallback(h)}}function o4(e,t,n,r,i,o,a,s,l,u,c=!1){const{p:f,m:d,um:h,n:v,o:{parentNode:m,remove:y}}=u;let _;const b=sJ(e);b&&t&&t.pendingBranch&&(_=t.pendingId,t.deps++);const w=e.props?Yv(e.props.timeout):void 0,S=o,C={vnode:e,parent:t,parentComponent:n,namespace:a,container:r,hiddenContainer:i,deps:0,pendingId:GC++,timeout:typeof w=="number"?w:-1,activeBranch:null,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(T=!1,A=!1){const{vnode:P,activeBranch:I,pendingBranch:R,pendingId:O,effects:M,parentComponent:$,container:F}=C;let z=!1;C.isHydrating?C.isHydrating=!1:T||(z=I&&R.transition&&R.transition.mode==="out-in",z&&(I.transition.afterLeave=()=>{O===C.pendingId&&(d(R,F,o===S?v(I):o,0),qv(M))}),I&&(m(I.el)===F&&(o=v(I)),h(I,$,C,!0)),z||d(R,F,o,0)),Ld(C,R),C.pendingBranch=null,C.isInFallback=!1;let B=C.parent,Y=!1;for(;B;){if(B.pendingBranch){B.effects.push(...M),Y=!0;break}B=B.parent}!Y&&!z&&qv(M),C.effects=[],b&&t&&t.pendingBranch&&_===t.pendingId&&(t.deps--,t.deps===0&&!A&&t.resolve()),ng(P,"onResolve")},fallback(T){if(!C.pendingBranch)return;const{vnode:A,activeBranch:P,parentComponent:I,container:R,namespace:O}=C;ng(A,"onFallback");const M=v(P),$=()=>{C.isInFallback&&(f(null,T,R,M,I,null,O,s,l),Ld(C,T))},F=T.transition&&T.transition.mode==="out-in";F&&(P.transition.afterLeave=$),C.isInFallback=!0,h(P,I,null,!0),F||$()},move(T,A,P){C.activeBranch&&d(C.activeBranch,T,A,P),C.container=T},next(){return C.activeBranch&&v(C.activeBranch)},registerDep(T,A,P){const I=!!C.pendingBranch;I&&C.deps++;const R=T.vnode.el;T.asyncDep.catch(O=>{Af(O,T,0)}).then(O=>{if(T.isUnmounted||C.isUnmounted||C.pendingId!==T.suspenseId)return;T.asyncResolved=!0;const{vnode:M}=T;YC(T,O,!1),R&&(M.el=R);const $=!R&&T.subTree.el;A(T,M,m(R||T.subTree.el),R?null:v(T.subTree),C,a,P),$&&y($),Tb(T,M.el),I&&--C.deps===0&&C.resolve()})},unmount(T,A){C.isUnmounted=!0,C.activeBranch&&h(C.activeBranch,n,T,A),C.pendingBranch&&h(C.pendingBranch,n,T,A)}};return C}function oJ(e,t,n,r,i,o,a,s,l){const u=t.suspense=o4(t,r,n,e.parentNode,document.createElement("div"),null,i,o,a,s,!0),c=l(e,u.pendingBranch=t.ssContent,n,u,o,a);return u.deps===0&&u.resolve(!1,!0),c}function aJ(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=HD(r?n.default:n),e.ssFallback=r?HD(n.fallback):ye(yr)}function HD(e){let t;if(bt(e)){const n=uf&&e._c;n&&(e._d=!1,K()),e=e(),n&&(e._d=!0,t=ui,s4())}return Je(e)&&(e=qq(e)),e=ji(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function a4(e,t){t&&t.pendingBranch?Je(e)?t.effects.push(...e):t.effects.push(e):qv(e)}function Ld(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;let i=t.el;for(;!i&&t.component;)t=t.component.subTree,i=t.el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,Tb(r,i))}function sJ(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const Ze=Symbol.for("v-fgt"),tl=Symbol.for("v-txt"),yr=Symbol.for("v-cmt"),Kc=Symbol.for("v-stc"),sv=[];let ui=null;function K(e=!1){sv.push(ui=e?null:[])}function s4(){sv.pop(),ui=sv[sv.length-1]||null}let uf=1;function zC(e,t=!1){uf+=e,e<0&&ui&&t&&(ui.hasOnce=!0)}function l4(e){return e.dynamicChildren=uf>0?ui||Gc:null,s4(),uf>0&&ui&&ui.push(e),e}function ae(e,t,n,r,i,o){return l4(L(e,t,n,r,i,o,!0))}function Ot(e,t,n,r,i){return l4(ye(e,t,n,r,i,!0))}function ul(e){return e?e.__v_isVNode===!0:!1}function Ia(e,t){return e.type===t.type&&e.key===t.key}function lJ(e){}const u4=({key:e})=>e??null,z0=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?At(e)||st(e)||bt(e)?{i:Cr,r:e,k:t,f:!!n}:e:null);function L(e,t=null,n=null,r=0,i=null,o=e===Ze?0:1,a=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&u4(t),ref:t&&z0(t),scopeId:yb,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Cr};return s?(wI(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=At(n)?8:16),uf>0&&!a&&ui&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&ui.push(l),l}const ye=uJ;function uJ(e,t=null,n=null,r=0,i=null,o=!1){if((!e||e===N$)&&(e=yr),ul(e)){const s=us(e,t,!0);return n&&wI(s,n),uf>0&&!o&&ui&&(s.shapeFlag&6?ui[ui.indexOf(e)]=s:ui.push(s)),s.patchFlag=-2,s}if(mJ(e)&&(e=e.__vccOpts),t){t=c4(t);let{class:s,style:l}=t;s&&!At(s)&&(t.class=rt(s)),vn(l)&&(mb(l)&&!Je(l)&&(l=Qt({},l)),t.style=Gr(l))}const a=At(e)?1:Q_(e)?128:b$(e)?64:vn(e)?4:bt(e)?2:0;return L(e,t,n,r,i,a,o,!0)}function c4(e){return e?mb(e)||U$(e)?Qt({},e):e:null}function us(e,t,n=!1,r=!1){const{props:i,ref:o,patchFlag:a,children:s,transition:l}=e,u=t?f4(i||{},t):i,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&u4(u),ref:t&&t.ref?n&&o?Je(o)?o.concat(z0(t)):[o,z0(t)]:z0(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:s,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ze?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&us(e.ssContent),ssFallback:e.ssFallback&&us(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&ll(c,l.clone(c)),c}function ft(e=" ",t=0){return ye(tl,null,e,t)}function cJ(e,t){const n=ye(Kc,null,e);return n.staticCount=t,n}function mt(e="",t=!1){return t?(K(),Ot(yr,null,e)):ye(yr,null,e)}function ji(e){return e==null||typeof e=="boolean"?ye(yr):Je(e)?ye(Ze,null,e.slice()):ul(e)?Jl(e):ye(tl,null,String(e))}function Jl(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:us(e)}function wI(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Je(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),wI(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!U$(t)?t._ctx=Cr:i===3&&Cr&&(Cr.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else bt(t)?(t={default:t,_ctx:Cr},n=32):(t=String(t),r&64?(n=16,t=[ft(t)]):n=8);e.children=t,e.shapeFlag|=n}function f4(...e){const t={};for(let n=0;nTr||Cr;let e1,WC;{const e=Hg(),t=(n,r)=>{let i;return(i=e[n])||(i=e[n]=[]),i.push(r),o=>{i.length>1?i.forEach(a=>a(o)):i[0](o)}};e1=t("__VUE_INSTANCE_SETTERS__",n=>Tr=n),WC=t("__VUE_SSR_SETTERS__",n=>Kd=n)}const cf=e=>{const t=Tr;return e1(e),e.scope.on(),()=>{e.scope.off(),e1(t)}},jC=()=>{Tr&&Tr.scope.off(),e1(null)};function h4(e){return e.vnode.shapeFlag&4}let Kd=!1;function p4(e,t=!1,n=!1){t&&WC(t);const{props:r,children:i}=e.vnode,o=h4(e);Vq(e,r,o,t),zq(e,i,n);const a=o?hJ(e,t):void 0;return t&&WC(!1),a}function hJ(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,BC);const{setup:r}=n;if(r){ku();const i=e.setupContext=r.length>1?g4(e):null,o=cf(e),a=bh(r,e,0,[e.props,i]),s=cb(a);if(Fu(),o(),(s||e.sp)&&!vu(e)&&hI(e),s){if(a.then(jC,jC),t)return a.then(l=>{YC(e,l,t)}).catch(l=>{Af(l,e,0)});e.asyncDep=a}else YC(e,a,t)}else v4(e,t)}function YC(e,t,n){bt(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:vn(t)&&(e.setupState=lI(t)),v4(e,n)}let t1,XC;function pJ(e){t1=e,XC=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,_q))}}const vJ=()=>!t1;function v4(e,t,n){const r=e.type;if(!e.render){if(!t&&t1&&!r.render){const i=r.template||yI(e).template;if(i){const{isCustomElement:o,compilerOptions:a}=e.appContext.config,{delimiters:s,compilerOptions:l}=r,u=Qt(Qt({isCustomElement:o,delimiters:s},a),l);r.render=t1(i,u)}}e.render=r.render||Lr,XC&&XC(e)}{const i=cf(e);ku();try{Mq(e)}finally{Fu(),i()}}}const gJ={get(e,t){return ii(e,"get",""),e[t]}};function g4(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,gJ),slots:e.slots,emit:e.emit,expose:t}}function Xg(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(lI(u$(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ov)return ov[n](e)},has(t,n){return n in t||n in ov}})):e.proxy}function KC(e,t=!0){return bt(e)?e.displayName||e.name:e.name||t&&e.__name}function mJ(e){return bt(e)&&"__vccOpts"in e}const Ve=(e,t)=>DZ(e,t,Kd);function Wi(e,t,n){const r=arguments.length;return r===2?vn(t)&&!Je(t)?ul(t)?ye(e,null,[t]):ye(e,t):ye(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&ul(n)&&(n=[n]),ye(e,t,n))}function yJ(){}function _J(e,t,n,r){const i=n[r];if(i&&m4(i,e))return i;const o=t();return o.memo=e.slice(),o.cacheIndex=r,n[r]=o}function m4(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let r=0;r0&&ui&&ui.push(e),!0}const y4="3.5.13",bJ=Lr,SJ=UZ,wJ=vd,xJ=y$,TJ={createComponentInstance:d4,setupComponent:p4,renderComponentRoot:G0,setCurrentRenderingInstance:Qv,isVNode:ul,normalizeVNode:ji,getComponentPublicInstance:Xg,ensureValidVNode:mI,pushWarningContext:FZ,popWarningContext:$Z},CJ=TJ,EJ=null,AJ=null,IJ=null;/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let ZC;const GD=typeof window<"u"&&window.trustedTypes;if(GD)try{ZC=GD.createPolicy("vue",{createHTML:e=>e})}catch{}const _4=ZC?e=>ZC.createHTML(e):e=>e,RJ="http://www.w3.org/2000/svg",PJ="http://www.w3.org/1998/Math/MathML",Vs=typeof document<"u"?document:null,zD=Vs&&Vs.createElement("template"),OJ={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t==="svg"?Vs.createElementNS(RJ,e):t==="mathml"?Vs.createElementNS(PJ,e):n?Vs.createElement(e,{is:n}):Vs.createElement(e);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>Vs.createTextNode(e),createComment:e=>Vs.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Vs.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,o){const a=n?n.previousSibling:t.lastChild;if(i&&(i===o||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===o||!(i=i.nextSibling)););else{zD.innerHTML=_4(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const s=zD.content;if(r==="svg"||r==="mathml"){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ol="transition",ep="animation",Zd=Symbol("_vtc"),b4={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},S4=Qt({},dI,b4),DJ=e=>(e.displayName="Transition",e.props=S4,e),MJ=DJ((e,{slots:t})=>Wi(C$,w4(e),t)),ec=(e,t=[])=>{Je(e)?e.forEach(n=>n(...t)):e&&e(...t)},WD=e=>e?Je(e)?e.some(t=>t.length>1):e.length>1:!1;function w4(e){const t={};for(const M in e)M in b4||(t[M]=e[M]);if(e.css===!1)return t;const{name:n="v",type:r,duration:i,enterFromClass:o=`${n}-enter-from`,enterActiveClass:a=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:u=a,appearToClass:c=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,v=LJ(i),m=v&&v[0],y=v&&v[1],{onBeforeEnter:_,onEnter:b,onEnterCancelled:w,onLeave:S,onLeaveCancelled:C,onBeforeAppear:T=_,onAppear:A=b,onAppearCancelled:P=w}=t,I=(M,$,F,z)=>{M._enterCancelled=z,jl(M,$?c:s),jl(M,$?u:a),F&&F()},R=(M,$)=>{M._isLeaving=!1,jl(M,f),jl(M,h),jl(M,d),$&&$()},O=M=>($,F)=>{const z=M?A:b,B=()=>I($,M,F);ec(z,[$,B]),jD(()=>{jl($,M?l:o),Za($,M?c:s),WD(z)||YD($,r,m,B)})};return Qt(t,{onBeforeEnter(M){ec(_,[M]),Za(M,o),Za(M,a)},onBeforeAppear(M){ec(T,[M]),Za(M,l),Za(M,u)},onEnter:O(!1),onAppear:O(!0),onLeave(M,$){M._isLeaving=!0;const F=()=>R(M,$);Za(M,f),M._enterCancelled?(Za(M,d),qC()):(qC(),Za(M,d)),jD(()=>{M._isLeaving&&(jl(M,f),Za(M,h),WD(S)||YD(M,r,y,F))}),ec(S,[M,F])},onEnterCancelled(M){I(M,!1,void 0,!0),ec(w,[M])},onAppearCancelled(M){I(M,!0,void 0,!0),ec(P,[M])},onLeaveCancelled(M){R(M),ec(C,[M])}})}function LJ(e){if(e==null)return null;if(vn(e))return[px(e.enter),px(e.leave)];{const t=px(e);return[t,t]}}function px(e){return Yv(e)}function Za(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Zd]||(e[Zd]=new Set)).add(t)}function jl(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Zd];n&&(n.delete(t),n.size||(e[Zd]=void 0))}function jD(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let NJ=0;function YD(e,t,n,r){const i=e._endId=++NJ,o=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:a,timeout:s,propCount:l}=x4(e,t);if(!a)return r();const u=a+"end";let c=0;const f=()=>{e.removeEventListener(u,d),o()},d=h=>{h.target===e&&++c>=l&&f()};setTimeout(()=>{c(n[v]||"").split(", "),i=r(`${Ol}Delay`),o=r(`${Ol}Duration`),a=XD(i,o),s=r(`${ep}Delay`),l=r(`${ep}Duration`),u=XD(s,l);let c=null,f=0,d=0;t===Ol?a>0&&(c=Ol,f=a,d=o.length):t===ep?u>0&&(c=ep,f=u,d=l.length):(f=Math.max(a,u),c=f>0?a>u?Ol:ep:null,d=c?c===Ol?o.length:l.length:0);const h=c===Ol&&/\b(transform|all)(,|$)/.test(r(`${Ol}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function XD(e,t){for(;e.lengthKD(n)+KD(e[r])))}function KD(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function qC(){return document.body.offsetHeight}function kJ(e,t,n){const r=e[Zd];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const n1=Symbol("_vod"),T4=Symbol("_vsh"),xI={beforeMount(e,{value:t},{transition:n}){e[n1]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):tp(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),tp(e,!0),r.enter(e)):r.leave(e,()=>{tp(e,!1)}):tp(e,t))},beforeUnmount(e,{value:t}){tp(e,t)}};function tp(e,t){e.style.display=t?e[n1]:"none",e[T4]=!t}function FJ(){xI.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const C4=Symbol("");function $J(e){const t=br();if(!t)return;const n=t.ut=(i=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(o=>r1(o,i))},r=()=>{const i=e(t.proxy);t.ce?r1(t.ce,i):JC(t.subTree,i),n(i)};pI(()=>{qv(r)}),lo(()=>{Yt(r,Lr,{flush:"post"});const i=new MutationObserver(r);i.observe(t.subTree.el.parentNode,{childList:!0}),Sh(()=>i.disconnect())})}function JC(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{JC(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)r1(e.el,t);else if(e.type===Ze)e.children.forEach(n=>JC(n,t));else if(e.type===Kc){let{el:n,anchor:r}=e;for(;n&&(r1(n,t),n!==r);)n=n.nextSibling}}function r1(e,t){if(e.nodeType===1){const n=e.style;let r="";for(const i in t)n.setProperty(`--${i}`,t[i]),r+=`--${i}: ${t[i]};`;n[C4]=r}}const BJ=/(^|;)\s*display\s*:/;function VJ(e,t,n){const r=e.style,i=At(n);let o=!1;if(n&&!i){if(t)if(At(t))for(const a of t.split(";")){const s=a.slice(0,a.indexOf(":")).trim();n[s]==null&&W0(r,s,"")}else for(const a in t)n[a]==null&&W0(r,a,"");for(const a in n)a==="display"&&(o=!0),W0(r,a,n[a])}else if(i){if(t!==n){const a=r[C4];a&&(n+=";"+a),r.cssText=n,o=BJ.test(n)}}else t&&e.removeAttribute("style");n1 in e&&(e[n1]=o?r.display:"",e[T4]&&(r.display="none"))}const ZD=/\s*!important$/;function W0(e,t,n){if(Je(n))n.forEach(r=>W0(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=UJ(e,t);ZD.test(n)?e.setProperty(ai(r),n.replace(ZD,""),"important"):e[r]=n}}const qD=["Webkit","Moz","ms"],vx={};function UJ(e,t){const n=vx[t];if(n)return n;let r=Bn(t);if(r!=="filter"&&r in e)return vx[t]=r;r=Nu(r);for(let i=0;igx||(WJ.then(()=>gx=0),gx=Date.now());function YJ(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;oa(XJ(r,n.value),t,5,[r])};return n.value=e,n.attached=jJ(),n}function XJ(e,t){if(Je(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const rM=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,KJ=(e,t,n,r,i,o)=>{const a=i==="svg";t==="class"?kJ(e,r,a):t==="style"?VJ(e,n,r):Mu(t)?lb(t)||GJ(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ZJ(e,t,r,a))?(eM(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&QD(e,t,r,a,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!At(r))?eM(e,Bn(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),QD(e,t,r,a))};function ZJ(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&rM(t)&&bt(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return rM(t)&&At(n)?!1:t in e}const iM={};/*! #__NO_SIDE_EFFECTS__ */function E4(e,t,n){const r=it(e,t);Ug(r)&&Qt(r,t);class i extends Cb{constructor(a){super(r,a,n)}}return i.def=r,i}/*! #__NO_SIDE_EFFECTS__ */const qJ=(e,t)=>E4(e,t,$4),JJ=typeof HTMLElement<"u"?HTMLElement:class{};class Cb extends JJ{constructor(t,n={},r=o1){super(),this._def=t,this._props=n,this._createApp=r,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._ob=null,this.shadowRoot&&r!==o1?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow({mode:"open"}),this._root=this.shadowRoot):this._root=this,this._def.__asyncLoader||this._resolveProps(this._def)}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.parentNode||t.host);)if(t instanceof Cb){this._parent=t;break}this._instance||(this._resolved?(this._setParent(),this._update()):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._instance.provides=t._instance.provides)}disconnectedCallback(){this._connected=!1,gs(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null)})}_resolveDef(){if(this._pendingResolve)return;for(let r=0;r{for(const i of r)this._setAttr(i.attributeName)}),this._ob.observe(this,{attributes:!0});const t=(r,i=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:o,styles:a}=r;let s;if(o&&!Je(o))for(const l in o){const u=o[l];(u===Number||u&&u.type===Number)&&(l in this._props&&(this._props[l]=Yv(this._props[l])),(s||(s=Object.create(null)))[Bn(l)]=!0)}this._numberProps=s,i&&this._resolveProps(r),this.shadowRoot&&this._applyStyles(a),this._mount(r)},n=this._def.__asyncLoader;n?this._pendingResolve=n().then(r=>t(this._def=r,!0)):t(this._def)}_mount(t){this._app=this._createApp(t),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const r in n)cn(this,r)||Object.defineProperty(this,r,{get:()=>N(n[r])})}_resolveProps(t){const{props:n}=t,r=Je(n)?n:Object.keys(n||{});for(const i of Object.keys(this))i[0]!=="_"&&r.includes(i)&&this._setProp(i,this[i]);for(const i of r.map(Bn))Object.defineProperty(this,i,{get(){return this._getProp(i)},set(o){this._setProp(i,o,!0,!0)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let r=n?this.getAttribute(t):iM;const i=Bn(t);n&&this._numberProps&&this._numberProps[i]&&(r=Yv(r)),this._setProp(i,r,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,r=!0,i=!1){if(n!==this._props[t]&&(n===iM?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),i&&this._instance&&this._update(),r)){const o=this._ob;o&&o.disconnect(),n===!0?this.setAttribute(ai(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(ai(t),n+""):n||this.removeAttribute(ai(t)),o&&o.observe(this,{attributes:!0})}}_update(){F4(this._createVNode(),this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=ye(this._def,Qt(t,this._props));return this._instance||(n.ce=r=>{this._instance=r,r.ce=this,r.isCE=!0;const i=(o,a)=>{this.dispatchEvent(new CustomEvent(o,Ug(a[0])?Qt({detail:a},a[0]):{detail:a}))};r.emit=(o,...a)=>{i(o,a),ai(o)!==o&&i(ai(o),a)},this._setParent()}),n}_applyStyles(t,n){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const r=this._nonce;for(let i=t.length-1;i>=0;i--){const o=document.createElement("style");r&&o.setAttribute("nonce",r),o.textContent=t[i],this.shadowRoot.prepend(o)}}_parseSlots(){const t=this._slots={};let n;for(;n=this.firstChild;){const r=n.nodeType===1&&n.getAttribute("slot")||"default";(t[r]||(t[r]=[])).push(n),this.removeChild(n)}}_renderSlots(){const t=(this._teleportTarget||this).querySelectorAll("slot"),n=this._instance.type.__scopeId;for(let r=0;r(delete e.props.mode,e),nQ=tQ({name:"TransitionGroup",props:Qt({},S4,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=br(),r=fI();let i,o;return Sb(()=>{if(!i.length)return;const a=e.moveClass||`${e.name||"v"}-move`;if(!sQ(i[0].el,n.vnode.el,a))return;i.forEach(iQ),i.forEach(oQ);const s=i.filter(aQ);qC(),s.forEach(l=>{const u=l.el,c=u.style;Za(u,a),c.transform=c.webkitTransform=c.transitionDuration="";const f=u[i1]=d=>{d&&d.target!==u||(!d||/transform$/.test(d.propertyName))&&(u.removeEventListener("transitionend",f),u[i1]=null,jl(u,a))};u.addEventListener("transitionend",f)})}),()=>{const a=sn(e),s=w4(a);let l=a.tag||Ze;if(i=[],o)for(let u=0;u{s.split(/\s+/).forEach(l=>l&&r.classList.remove(l))}),n.split(/\s+/).forEach(s=>s&&r.classList.add(s)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:a}=x4(r);return o.removeChild(r),a}const Tu=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Je(t)?n=>jc(t,n):t};function lQ(e){e.target.composing=!0}function aM(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ta=Symbol("_assign"),ir={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[ta]=Tu(i);const o=r||i.props&&i.props.type==="number";Ys(e,t?"change":"input",a=>{if(a.target.composing)return;let s=e.value;n&&(s=s.trim()),o&&(s=jv(s)),e[ta](s)}),n&&Ys(e,"change",()=>{e.value=e.value.trim()}),t||(Ys(e,"compositionstart",lQ),Ys(e,"compositionend",aM),Ys(e,"change",aM))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:o}},a){if(e[ta]=Tu(a),e.composing)return;const s=(o||e.type==="number")&&!/^0\d/.test(e.value)?jv(e.value):e.value,l=t??"";s!==l&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||i&&e.value.trim()===l)||(e.value=l))}},gr={deep:!0,created(e,t,n){e[ta]=Tu(n),Ys(e,"change",()=>{const r=e._modelValue,i=qd(e),o=e.checked,a=e[ta];if(Je(r)){const s=Gg(r,i),l=s!==-1;if(o&&!l)a(r.concat(i));else if(!o&&l){const u=[...r];u.splice(s,1),a(u)}}else if(Lu(r)){const s=new Set(r);o?s.add(i):s.delete(i),a(s)}else a(P4(e,o))})},mounted:sM,beforeUpdate(e,t,n){e[ta]=Tu(n),sM(e,t,n)}};function sM(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(Je(t))i=Gg(t,r.props.value)>-1;else if(Lu(t))i=t.has(r.props.value);else{if(t===n)return;i=sl(t,P4(e,!0))}e.checked!==i&&(e.checked=i)}const TI={created(e,{value:t},n){e.checked=sl(t,n.props.value),e[ta]=Tu(n),Ys(e,"change",()=>{e[ta](qd(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[ta]=Tu(r),t!==n&&(e.checked=sl(t,r.props.value))}},hi={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const i=Lu(t);Ys(e,"change",()=>{const o=Array.prototype.filter.call(e.options,a=>a.selected).map(a=>n?jv(qd(a)):qd(a));e[ta](e.multiple?i?new Set(o):o:o[0]),e._assigning=!0,gs(()=>{e._assigning=!1})}),e[ta]=Tu(r)},mounted(e,{value:t}){lM(e,t)},beforeUpdate(e,t,n){e[ta]=Tu(n)},updated(e,{value:t}){e._assigning||lM(e,t)}};function lM(e,t){const n=e.multiple,r=Je(t);if(!(n&&!r&&!Lu(t))){for(let i=0,o=e.options.length;iString(u)===String(s)):a.selected=Gg(t,s)>-1}else a.selected=t.has(s);else if(sl(qd(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function qd(e){return"_value"in e?e._value:e.value}function P4(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const O4={created(e,t,n){xy(e,t,n,null,"created")},mounted(e,t,n){xy(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){xy(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){xy(e,t,n,r,"updated")}};function D4(e,t){switch(e){case"SELECT":return hi;case"TEXTAREA":return ir;default:switch(t){case"checkbox":return gr;case"radio":return TI;default:return ir}}}function xy(e,t,n,r,i){const a=D4(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}function uQ(){ir.getSSRProps=({value:e})=>({value:e}),TI.getSSRProps=({value:e},t)=>{if(t.props&&sl(t.props.value,e))return{checked:!0}},gr.getSSRProps=({value:e},t)=>{if(Je(e)){if(t.props&&Gg(e,t.props.value)>-1)return{checked:!0}}else if(Lu(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},O4.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const n=D4(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)}}const cQ=["ctrl","shift","alt","meta"],fQ={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)=>cQ.some(n=>e[`${n}Key`]&&!t.includes(n))},xo=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(i,...o)=>{for(let a=0;a{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=i=>{if(!("key"in i))return;const o=ai(i.key);if(t.some(a=>a===o||dQ[a]===o))return e(i)})},L4=Qt({patchProp:KJ},OJ);let lv,uM=!1;function N4(){return lv||(lv=X$(L4))}function k4(){return lv=uM?lv:K$(L4),uM=!0,lv}const F4=(...e)=>{N4().render(...e)},hQ=(...e)=>{k4().hydrate(...e)},o1=(...e)=>{const t=N4().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=V4(r);if(!i)return;const o=t._component;!bt(o)&&!o.render&&!o.template&&(o.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const a=n(i,!1,B4(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),a},t},$4=(...e)=>{const t=k4().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=V4(r);if(i)return n(i,!0,B4(i))},t};function B4(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function V4(e){return At(e)?document.querySelector(e):e}let cM=!1;const pQ=()=>{cM||(cM=!0,uQ(),FJ())},vQ=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:C$,BaseTransitionPropsValidators:dI,Comment:yr,DeprecationTypes:IJ,EffectScope:tI,ErrorCodes:VZ,ErrorTypeStrings:SJ,Fragment:Ze,KeepAlive:dq,ReactiveEffect:Xv,Static:Kc,Suspense:nJ,Teleport:XZ,Text:tl,TrackOpTypes:MZ,Transition:MJ,TransitionGroup:rQ,TriggerOpTypes:LZ,VueElement:Cb,assertNumber:BZ,callWithAsyncErrorHandling:oa,callWithErrorHandling:bh,camelize:Bn,capitalize:Nu,cloneVNode:us,compatUtils:AJ,computed:Ve,createApp:o1,createBlock:Ot,createCommentVNode:mt,createElementBlock:ae,createElementVNode:L,createHydrationRenderer:K$,createPropsRestProxy:Oq,createRenderer:X$,createSSRApp:$4,createSlots:mq,createStaticVNode:cJ,createTextVNode:ft,createVNode:ye,customRef:uI,defineAsyncComponent:cq,defineComponent:it,defineCustomElement:E4,defineEmits:Sq,defineExpose:wq,defineModel:Cq,defineOptions:xq,defineProps:bq,defineSSRCustomElement:qJ,defineSlots:Tq,devtools:wJ,effect:rZ,effectScope:Y5,getCurrentInstance:br,getCurrentScope:nI,getCurrentWatcher:NZ,getTransitionRawChildren:_b,guardReactiveProps:c4,h:Wi,handleError:Af,hasInjectionContext:_I,hydrate:hQ,hydrateOnIdle:iq,hydrateOnInteraction:lq,hydrateOnMediaQuery:sq,hydrateOnVisible:aq,initCustomFormatter:yJ,initDirectivesForSSR:pQ,inject:Ji,isMemoSame:m4,isProxy:mb,isReactive:pu,isReadonly:xu,isRef:st,isRuntimeOnly:vJ,isShallow:Co,isVNode:ul,markRaw:u$,mergeDefaults:Rq,mergeModels:Pq,mergeProps:f4,nextTick:gs,normalizeClass:rt,normalizeProps:F5,normalizeStyle:Gr,onActivated:A$,onBeforeMount:P$,onBeforeUnmount:jg,onBeforeUpdate:pI,onDeactivated:I$,onErrorCaptured:L$,onMounted:lo,onRenderTracked:M$,onRenderTriggered:D$,onScopeDispose:rI,onServerPrefetch:O$,onUnmounted:Sh,onUpdated:Sb,onWatcherCleanup:h$,openBlock:K,popScopeId:WZ,provide:av,proxyRefs:lI,pushScopeId:zZ,queuePostFlushCb:qv,reactive:Na,readonly:zg,ref:Fe,registerRuntimeCompiler:pJ,render:F4,renderList:on,renderSlot:Md,resolveComponent:vq,resolveDirective:gq,resolveDynamicComponent:ls,resolveFilter:EJ,resolveTransitionHooks:Xd,setBlockTracking:zC,setDevtoolsHook:xJ,setTransitionHooks:ll,shallowReactive:sI,shallowReadonly:xZ,shallowRef:Ef,ssrContextKey:Q$,ssrUtils:CJ,stop:iZ,toDisplayString:re,toHandlerKey:Wc,toHandlers:yq,toRaw:sn,toRef:f$,toRefs:IZ,toValue:CZ,transformVNodeArgs:lJ,triggerRef:kC,unref:N,useAttrs:Iq,useCssModule:eQ,useCssVars:$J,useHost:A4,useId:ZZ,useModel:Kq,useSSRContext:e4,useShadowRoot:QJ,useSlots:Aq,useTemplateRef:qZ,useTransitionState:fI,vModelCheckbox:gr,vModelDynamic:O4,vModelRadio:TI,vModelSelect:hi,vModelText:ir,vShow:xI,version:y4,warn:bJ,watch:Yt,watchEffect:wb,watchPostEffect:Yq,watchSyncEffect:t4,withAsyncContext:Dq,withCtx:Mr,withDefaults:Eq,withDirectives:_t,withKeys:M4,withMemo:_J,withModifiers:xo,withScopeId:jZ},Symbol.toStringTag,{value:"Module"}));function Eb(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m9 12.75 3 3m0 0 3-3m-3 3v-7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function gQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 13.5 12 21m0 0-7.5-7.5M12 21V3"})])}function mQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m11.25 9-3 3m0 0 3 3m-3-3h7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function U4(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99"})])}function ff(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m12.75 15 3-3m0 0-3-3m3 3h-7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function Kg(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m15 11.25-3-3m0 0-3 3m3-3v7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function yQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4.5 10.5 12 3m0 0 7.5 7.5M12 3v18"})])}function H4(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"})])}function Ab(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"})])}function _Q(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z"}),L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})])}function bQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z"})])}function fM(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 7.5-2.25-1.313M21 7.5v2.25m0-2.25-2.25 1.313M3 7.5l2.25-1.313M3 7.5l2.25 1.313M3 7.5v2.25m9 3 2.25-1.313M12 12.75l-2.25-1.313M12 12.75V15m0 6.75 2.25-1.313M12 21.75V19.5m0 2.25-2.25-1.313m0-16.875L12 2.25l2.25 1.313M21 14.25v2.25l-2.25 1.313m-13.5 0L3 16.5v-2.25"})])}function SQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"})])}function wQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418"})])}function G4(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"})])}function dM(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607ZM13.5 10.5h-6"})])}function hM(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607ZM10.5 7.5v6m3-3h-6"})])}function CI(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function xQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.25 9v6m-4.5 0V9M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function z4(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 5.25v13.5m-7.5-13.5v13.5"})])}function TQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"})])}function W4(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"})])}function CQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function j4(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 4.5v15m7.5-7.5h-15"})])}function Y4(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"})])}function EQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4.098 19.902a3.75 3.75 0 0 0 5.304 0l6.401-6.402M6.75 21A3.75 3.75 0 0 1 3 17.25V4.125C3 3.504 3.504 3 4.125 3h5.25c.621 0 1.125.504 1.125 1.125v4.072M6.75 21a3.75 3.75 0 0 0 3.75-3.75V8.197M6.75 21h13.125c.621 0 1.125-.504 1.125-1.125v-5.25c0-.621-.504-1.125-1.125-1.125h-4.072M10.5 8.197l2.88-2.88c.438-.439 1.15-.439 1.59 0l3.712 3.713c.44.44.44 1.152 0 1.59l-2.879 2.88M6.75 17.25h.008v.008H6.75v-.008Z"})])}function AQ(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m9.75 9.75 4.5 4.5m0-4.5-4.5 4.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function Ib(e,t){return K(),ae("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[L("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18 18 6M6 6l12 12"})])}/*! + * vue-router v4.5.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const gd=typeof document<"u";function X4(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function IQ(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&X4(e.default)}const yn=Object.assign;function mx(e,t){const n={};for(const r in t){const i=t[r];n[r]=ka(i)?i.map(e):e(i)}return n}const uv=()=>{},ka=Array.isArray,K4=/#/g,RQ=/&/g,PQ=/\//g,OQ=/=/g,DQ=/\?/g,Z4=/\+/g,MQ=/%5B/g,LQ=/%5D/g,q4=/%5E/g,NQ=/%60/g,J4=/%7B/g,kQ=/%7C/g,Q4=/%7D/g,FQ=/%20/g;function EI(e){return encodeURI(""+e).replace(kQ,"|").replace(MQ,"[").replace(LQ,"]")}function $Q(e){return EI(e).replace(J4,"{").replace(Q4,"}").replace(q4,"^")}function QC(e){return EI(e).replace(Z4,"%2B").replace(FQ,"+").replace(K4,"%23").replace(RQ,"%26").replace(NQ,"`").replace(J4,"{").replace(Q4,"}").replace(q4,"^")}function BQ(e){return QC(e).replace(OQ,"%3D")}function VQ(e){return EI(e).replace(K4,"%23").replace(DQ,"%3F")}function UQ(e){return e==null?"":VQ(e).replace(PQ,"%2F")}function rg(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const HQ=/\/$/,GQ=e=>e.replace(HQ,"");function yx(e,t,n="/"){let r,i={},o="",a="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(r=t.slice(0,l),o=t.slice(l+1,s>-1?s:t.length),i=e(o)),s>-1&&(r=r||t.slice(0,s),a=t.slice(s,t.length)),r=YQ(r??t,n),{fullPath:r+(o&&"?")+o+a,path:r,query:i,hash:rg(a)}}function zQ(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function pM(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function WQ(e,t,n){const r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Jd(t.matched[r],n.matched[i])&&eB(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Jd(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function eB(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!jQ(e[n],t[n]))return!1;return!0}function jQ(e,t){return ka(e)?vM(e,t):ka(t)?vM(t,e):e===t}function vM(e,t){return ka(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function YQ(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),i=r[r.length-1];(i===".."||i===".")&&r.push("");let o=n.length-1,a,s;for(a=0;a1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(a).join("/")}const Dl={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var ig;(function(e){e.pop="pop",e.push="push"})(ig||(ig={}));var cv;(function(e){e.back="back",e.forward="forward",e.unknown=""})(cv||(cv={}));function XQ(e){if(!e)if(gd){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),GQ(e)}const KQ=/^[^#]+#/;function ZQ(e,t){return e.replace(KQ,"#")+t}function qQ(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Rb=()=>({left:window.scrollX,top:window.scrollY});function JQ(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),i=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=qQ(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function gM(e,t){return(history.state?history.state.position-t:-1)+e}const eE=new Map;function QQ(e,t){eE.set(e,t)}function eee(e){const t=eE.get(e);return eE.delete(e),t}let tee=()=>location.protocol+"//"+location.host;function tB(e,t){const{pathname:n,search:r,hash:i}=t,o=e.indexOf("#");if(o>-1){let s=i.includes(e.slice(o))?e.slice(o).length:1,l=i.slice(s);return l[0]!=="/"&&(l="/"+l),pM(l,"")}return pM(n,e)+r+i}function nee(e,t,n,r){let i=[],o=[],a=null;const s=({state:d})=>{const h=tB(e,location),v=n.value,m=t.value;let y=0;if(d){if(n.value=h,t.value=d,a&&a===v){a=null;return}y=m?d.position-m.position:0}else r(h);i.forEach(_=>{_(n.value,v,{delta:y,type:ig.pop,direction:y?y>0?cv.forward:cv.back:cv.unknown})})};function l(){a=n.value}function u(d){i.push(d);const h=()=>{const v=i.indexOf(d);v>-1&&i.splice(v,1)};return o.push(h),h}function c(){const{history:d}=window;d.state&&d.replaceState(yn({},d.state,{scroll:Rb()}),"")}function f(){for(const d of o)d();o=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:l,listen:u,destroy:f}}function mM(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Rb():null}}function ree(e){const{history:t,location:n}=window,r={value:tB(e,n)},i={value:t.state};i.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:tee()+e+l;try{t[c?"replaceState":"pushState"](u,"",d),i.value=u}catch(h){console.error(h),n[c?"replace":"assign"](d)}}function a(l,u){const c=yn({},t.state,mM(i.value.back,l,i.value.forward,!0),u,{position:i.value.position});o(l,c,!0),r.value=l}function s(l,u){const c=yn({},i.value,t.state,{forward:l,scroll:Rb()});o(c.current,c,!0);const f=yn({},mM(r.value,l,null),{position:c.position+1},u);o(l,f,!1),r.value=l}return{location:r,state:i,push:s,replace:a}}function iee(e){e=XQ(e);const t=ree(e),n=nee(e,t.state,t.location,t.replace);function r(o,a=!0){a||n.pauseListeners(),history.go(o)}const i=yn({location:"",base:e,go:r,createHref:ZQ.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function oee(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),iee(e)}function aee(e){return typeof e=="string"||e&&typeof e=="object"}function nB(e){return typeof e=="string"||typeof e=="symbol"}const rB=Symbol("");var yM;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(yM||(yM={}));function Qd(e,t){return yn(new Error,{type:e,[rB]:!0},t)}function Os(e,t){return e instanceof Error&&rB in e&&(t==null||!!(e.type&t))}const _M="[^/]+?",see={sensitive:!1,strict:!1,start:!0,end:!0},lee=/[.+*?^${}()[\]/\\]/g;function uee(e,t){const n=yn({},see,t),r=[];let i=n.start?"^":"";const o=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(i+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function iB(e,t){let n=0;const r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}const fee={type:0,value:""},dee=/[a-zA-Z0-9_]/;function hee(e){if(!e)return[[]];if(e==="/")return[[fee]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${u}": ${h}`)}let n=0,r=n;const i=[];let o;function a(){o&&i.push(o),o=[]}let s=0,l,u="",c="";function f(){u&&(n===0?o.push({type:0,value:u}):n===1||n===2||n===3?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;s{a(w)}:uv}function a(f){if(nB(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(a),d.alias.forEach(a))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(a),f.alias.forEach(a))}}function s(){return n}function l(f){const d=yee(f,n);n.splice(d,0,f),f.record.name&&!xM(f)&&r.set(f.record.name,f)}function u(f,d){let h,v={},m,y;if("name"in f&&f.name){if(h=r.get(f.name),!h)throw Qd(1,{location:f});y=h.record.name,v=yn(SM(d.params,h.keys.filter(w=>!w.optional).concat(h.parent?h.parent.keys.filter(w=>w.optional):[]).map(w=>w.name)),f.params&&SM(f.params,h.keys.map(w=>w.name))),m=h.stringify(v)}else if(f.path!=null)m=f.path,h=n.find(w=>w.re.test(m)),h&&(v=h.parse(m),y=h.record.name);else{if(h=d.name?r.get(d.name):n.find(w=>w.re.test(d.path)),!h)throw Qd(1,{location:f,currentLocation:d});y=h.record.name,v=yn({},d.params,f.params),m=h.stringify(v)}const _=[];let b=h;for(;b;)_.unshift(b.record),b=b.parent;return{name:y,path:m,params:v,matched:_,meta:mee(_)}}e.forEach(f=>o(f));function c(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:a,clearRoutes:c,getRoutes:s,getRecordMatcher:i}}function SM(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function wM(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:gee(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function gee(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function xM(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function mee(e){return e.reduce((t,n)=>yn(t,n.meta),{})}function TM(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function yee(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;iB(e,t[o])<0?r=o:n=o+1}const i=_ee(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function _ee(e){let t=e;for(;t=t.parent;)if(oB(t)&&iB(e,t)===0)return t}function oB({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function bee(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;io&&QC(o)):[r&&QC(r)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function See(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=ka(r)?r.map(i=>i==null?null:""+i):r==null?r:""+r)}return t}const wee=Symbol(""),EM=Symbol(""),Pb=Symbol(""),AI=Symbol(""),tE=Symbol("");function np(){let e=[];function t(r){return e.push(r),()=>{const i=e.indexOf(r);i>-1&&e.splice(i,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ql(e,t,n,r,i,o=a=>a()){const a=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,l)=>{const u=d=>{d===!1?l(Qd(4,{from:n,to:t})):d instanceof Error?l(d):aee(d)?l(Qd(2,{from:t,to:d})):(a&&r.enterCallbacks[i]===a&&typeof d=="function"&&a.push(d),s())},c=o(()=>e.call(r&&r.instances[i],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(d=>l(d))})}function _x(e,t,n,r,i=o=>o()){const o=[];for(const a of e)for(const s in a.components){let l=a.components[s];if(!(t!=="beforeRouteEnter"&&!a.instances[s]))if(X4(l)){const c=(l.__vccOpts||l)[t];c&&o.push(Ql(c,n,r,a,s,i))}else{let u=l();o.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${s}" at "${a.path}"`);const f=IQ(c)?c.default:c;a.mods[s]=c,a.components[s]=f;const h=(f.__vccOpts||f)[t];return h&&Ql(h,n,r,a,s,i)()}))}}return o}function AM(e){const t=Ji(Pb),n=Ji(AI),r=Ve(()=>{const l=N(e.to);return t.resolve(l)}),i=Ve(()=>{const{matched:l}=r.value,{length:u}=l,c=l[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(Jd.bind(null,c));if(d>-1)return d;const h=IM(l[u-2]);return u>1&&IM(c)===h&&f[f.length-1].path!==h?f.findIndex(Jd.bind(null,l[u-2])):d}),o=Ve(()=>i.value>-1&&Aee(n.params,r.value.params)),a=Ve(()=>i.value>-1&&i.value===n.matched.length-1&&eB(n.params,r.value.params));function s(l={}){if(Eee(l)){const u=t[N(e.replace)?"replace":"push"](N(e.to)).catch(uv);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Ve(()=>r.value.href),isActive:o,isExactActive:a,navigate:s}}function xee(e){return e.length===1?e[0]:e}const Tee=it({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:AM,setup(e,{slots:t}){const n=Na(AM(e)),{options:r}=Ji(Pb),i=Ve(()=>({[RM(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[RM(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&xee(t.default(n));return e.custom?o:Wi("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},o)}}}),Cee=Tee;function Eee(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Aee(e,t){for(const n in t){const r=t[n],i=e[n];if(typeof r=="string"){if(r!==i)return!1}else if(!ka(i)||i.length!==r.length||r.some((o,a)=>o!==i[a]))return!1}return!0}function IM(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const RM=(e,t,n)=>e??t??n,Iee=it({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ji(tE),i=Ve(()=>e.route||r.value),o=Ji(EM,0),a=Ve(()=>{let u=N(o);const{matched:c}=i.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),s=Ve(()=>i.value.matched[a.value]);av(EM,Ve(()=>a.value+1)),av(wee,s),av(tE,i);const l=Fe();return Yt(()=>[l.value,s.value,e.name],([u,c,f],[d,h,v])=>{c&&(c.instances[f]=u,h&&h!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!Jd(c,h)||!d)&&(c.enterCallbacks[f]||[]).forEach(m=>m(u))},{flush:"post"}),()=>{const u=i.value,c=e.name,f=s.value,d=f&&f.components[c];if(!d)return PM(n.default,{Component:d,route:u});const h=f.props[c],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,y=Wi(d,yn({},v,t,{onVnodeUnmounted:_=>{_.component.isUnmounted&&(f.instances[c]=null)},ref:l}));return PM(n.default,{Component:y,route:u})||y}}});function PM(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const II=Iee;function Ree(e){const t=vee(e.routes,e),n=e.parseQuery||bee,r=e.stringifyQuery||CM,i=e.history,o=np(),a=np(),s=np(),l=Ef(Dl);let u=Dl;gd&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=mx.bind(null,ce=>""+ce),f=mx.bind(null,UQ),d=mx.bind(null,rg);function h(ce,Ee){let Se,Te;return nB(ce)?(Se=t.getRecordMatcher(ce),Te=Ee):Te=ce,t.addRoute(Te,Se)}function v(ce){const Ee=t.getRecordMatcher(ce);Ee&&t.removeRoute(Ee)}function m(){return t.getRoutes().map(ce=>ce.record)}function y(ce){return!!t.getRecordMatcher(ce)}function _(ce,Ee){if(Ee=yn({},Ee||l.value),typeof ce=="string"){const G=yx(n,ce,Ee.path),le=t.resolve({path:G.path},Ee),we=i.createHref(G.fullPath);return yn(G,le,{params:d(le.params),hash:rg(G.hash),redirectedFrom:void 0,href:we})}let Se;if(ce.path!=null)Se=yn({},ce,{path:yx(n,ce.path,Ee.path).path});else{const G=yn({},ce.params);for(const le in G)G[le]==null&&delete G[le];Se=yn({},ce,{params:f(G)}),Ee.params=f(Ee.params)}const Te=t.resolve(Se,Ee),Oe=ce.hash||"";Te.params=c(d(Te.params));const $e=zQ(r,yn({},ce,{hash:$Q(Oe),path:Te.path})),H=i.createHref($e);return yn({fullPath:$e,hash:Oe,query:r===CM?See(ce.query):ce.query||{}},Te,{redirectedFrom:void 0,href:H})}function b(ce){return typeof ce=="string"?yx(n,ce,l.value.path):yn({},ce)}function w(ce,Ee){if(u!==ce)return Qd(8,{from:Ee,to:ce})}function S(ce){return A(ce)}function C(ce){return S(yn(b(ce),{replace:!0}))}function T(ce){const Ee=ce.matched[ce.matched.length-1];if(Ee&&Ee.redirect){const{redirect:Se}=Ee;let Te=typeof Se=="function"?Se(ce):Se;return typeof Te=="string"&&(Te=Te.includes("?")||Te.includes("#")?Te=b(Te):{path:Te},Te.params={}),yn({query:ce.query,hash:ce.hash,params:Te.path!=null?{}:ce.params},Te)}}function A(ce,Ee){const Se=u=_(ce),Te=l.value,Oe=ce.state,$e=ce.force,H=ce.replace===!0,G=T(Se);if(G)return A(yn(b(G),{state:typeof G=="object"?yn({},Oe,G.state):Oe,force:$e,replace:H}),Ee||Se);const le=Se;le.redirectedFrom=Ee;let we;return!$e&&WQ(r,Te,Se)&&(we=Qd(16,{to:le,from:Te}),ve(Te,Te,!0,!1)),(we?Promise.resolve(we):R(le,Te)).catch(pe=>Os(pe)?Os(pe,2)?pe:ge(pe):j(pe,le,Te)).then(pe=>{if(pe){if(Os(pe,2))return A(yn({replace:H},b(pe.to),{state:typeof pe.to=="object"?yn({},Oe,pe.to.state):Oe,force:$e}),Ee||le)}else pe=M(le,Te,!0,H,Oe);return O(le,Te,pe),pe})}function P(ce,Ee){const Se=w(ce,Ee);return Se?Promise.reject(Se):Promise.resolve()}function I(ce){const Ee=ze.values().next().value;return Ee&&typeof Ee.runWithContext=="function"?Ee.runWithContext(ce):ce()}function R(ce,Ee){let Se;const[Te,Oe,$e]=Pee(ce,Ee);Se=_x(Te.reverse(),"beforeRouteLeave",ce,Ee);for(const G of Te)G.leaveGuards.forEach(le=>{Se.push(Ql(le,ce,Ee))});const H=P.bind(null,ce,Ee);return Se.push(H),je(Se).then(()=>{Se=[];for(const G of o.list())Se.push(Ql(G,ce,Ee));return Se.push(H),je(Se)}).then(()=>{Se=_x(Oe,"beforeRouteUpdate",ce,Ee);for(const G of Oe)G.updateGuards.forEach(le=>{Se.push(Ql(le,ce,Ee))});return Se.push(H),je(Se)}).then(()=>{Se=[];for(const G of $e)if(G.beforeEnter)if(ka(G.beforeEnter))for(const le of G.beforeEnter)Se.push(Ql(le,ce,Ee));else Se.push(Ql(G.beforeEnter,ce,Ee));return Se.push(H),je(Se)}).then(()=>(ce.matched.forEach(G=>G.enterCallbacks={}),Se=_x($e,"beforeRouteEnter",ce,Ee,I),Se.push(H),je(Se))).then(()=>{Se=[];for(const G of a.list())Se.push(Ql(G,ce,Ee));return Se.push(H),je(Se)}).catch(G=>Os(G,8)?G:Promise.reject(G))}function O(ce,Ee,Se){s.list().forEach(Te=>I(()=>Te(ce,Ee,Se)))}function M(ce,Ee,Se,Te,Oe){const $e=w(ce,Ee);if($e)return $e;const H=Ee===Dl,G=gd?history.state:{};Se&&(Te||H?i.replace(ce.fullPath,yn({scroll:H&&G&&G.scroll},Oe)):i.push(ce.fullPath,Oe)),l.value=ce,ve(ce,Ee,Se,H),ge()}let $;function F(){$||($=i.listen((ce,Ee,Se)=>{if(!Me.listening)return;const Te=_(ce),Oe=T(Te);if(Oe){A(yn(Oe,{replace:!0,force:!0}),Te).catch(uv);return}u=Te;const $e=l.value;gd&&QQ(gM($e.fullPath,Se.delta),Rb()),R(Te,$e).catch(H=>Os(H,12)?H:Os(H,2)?(A(yn(b(H.to),{force:!0}),Te).then(G=>{Os(G,20)&&!Se.delta&&Se.type===ig.pop&&i.go(-1,!1)}).catch(uv),Promise.reject()):(Se.delta&&i.go(-Se.delta,!1),j(H,Te,$e))).then(H=>{H=H||M(Te,$e,!1),H&&(Se.delta&&!Os(H,8)?i.go(-Se.delta,!1):Se.type===ig.pop&&Os(H,20)&&i.go(-1,!1)),O(Te,$e,H)}).catch(uv)}))}let z=np(),B=np(),Y;function j(ce,Ee,Se){ge(ce);const Te=B.list();return Te.length?Te.forEach(Oe=>Oe(ce,Ee,Se)):console.error(ce),Promise.reject(ce)}function se(){return Y&&l.value!==Dl?Promise.resolve():new Promise((ce,Ee)=>{z.add([ce,Ee])})}function ge(ce){return Y||(Y=!ce,F(),z.list().forEach(([Ee,Se])=>ce?Se(ce):Ee()),z.reset()),ce}function ve(ce,Ee,Se,Te){const{scrollBehavior:Oe}=e;if(!gd||!Oe)return Promise.resolve();const $e=!Se&&eee(gM(ce.fullPath,0))||(Te||!Se)&&history.state&&history.state.scroll||null;return gs().then(()=>Oe(ce,Ee,$e)).then(H=>H&&JQ(H)).catch(H=>j(H,ce,Ee))}const De=ce=>i.go(ce);let Ne;const ze=new Set,Me={currentRoute:l,listening:!0,addRoute:h,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:y,getRoutes:m,resolve:_,options:e,push:S,replace:C,go:De,back:()=>De(-1),forward:()=>De(1),beforeEach:o.add,beforeResolve:a.add,afterEach:s.add,onError:B.add,isReady:se,install(ce){const Ee=this;ce.component("RouterLink",Cee),ce.component("RouterView",II),ce.config.globalProperties.$router=Ee,Object.defineProperty(ce.config.globalProperties,"$route",{enumerable:!0,get:()=>N(l)}),gd&&!Ne&&l.value===Dl&&(Ne=!0,S(i.location).catch(Oe=>{}));const Se={};for(const Oe in Dl)Object.defineProperty(Se,Oe,{get:()=>l.value[Oe],enumerable:!0});ce.provide(Pb,Ee),ce.provide(AI,sI(Se)),ce.provide(tE,l);const Te=ce.unmount;ze.add(ce),ce.unmount=function(){ze.delete(ce),ze.size<1&&(u=Dl,$&&$(),$=null,l.value=Dl,Ne=!1,Y=!1),Te()}}};function je(ce){return ce.reduce((Ee,Se)=>Ee.then(()=>I(Se)),Promise.resolve())}return Me}function Pee(e,t){const n=[],r=[],i=[],o=Math.max(t.matched.length,e.matched.length);for(let a=0;aJd(u,s))?r.push(s):n.push(s));const l=e.matched[a];l&&(t.matched.find(u=>Jd(u,l))||i.push(l))}return[n,r,i]}function Oee(){return Ji(Pb)}function aB(e){return Ji(AI)}/*! + * shared v10.0.5 + * (c) 2024 kazuya kawaguchi + * Released under the MIT License. + */const a1=typeof window<"u",$u=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Dee=(e,t,n)=>Mee({l:e,k:t,s:n}),Mee=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),hr=e=>typeof e=="number"&&isFinite(e),Lee=e=>RI(e)==="[object Date]",eh=e=>RI(e)==="[object RegExp]",Ob=e=>jt(e)&&Object.keys(e).length===0,Er=Object.assign,Nee=Object.create,Rn=(e=null)=>Nee(e);let OM;const Mc=()=>OM||(OM=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Rn());function DM(e){return e.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const kee=Object.prototype.hasOwnProperty;function Ra(e,t){return kee.call(e,t)}const ar=Array.isArray,Hn=e=>typeof e=="function",tt=e=>typeof e=="string",fn=e=>typeof e=="boolean",pn=e=>e!==null&&typeof e=="object",Fee=e=>pn(e)&&Hn(e.then)&&Hn(e.catch),sB=Object.prototype.toString,RI=e=>sB.call(e),jt=e=>RI(e)==="[object Object]",$ee=e=>e==null?"":ar(e)||jt(e)&&e.toString===sB?JSON.stringify(e,null,2):String(e);function PI(e,t=""){return e.reduce((n,r,i)=>i===0?n+r:n+t+r,"")}function Bee(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Ty=e=>!pn(e)||ar(e);function j0(e,t){if(Ty(e)||Ty(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:i}=n.pop();Object.keys(r).forEach(o=>{o!=="__proto__"&&(pn(r[o])&&!pn(i[o])&&(i[o]=Array.isArray(r[o])?[]:Rn()),Ty(i[o])||Ty(r[o])?i[o]=r[o]:n.push({src:r[o],des:i[o]}))})}}/*! + * message-compiler v10.0.5 + * (c) 2024 kazuya kawaguchi + * Released under the MIT License. + */function Vee(e,t,n){return{line:e,column:t,offset:n}}function nE(e,t,n){return{start:e,end:t}}const xn={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16},Uee=17;function Db(e,t,n={}){const{domain:r,messages:i,args:o}=n,a=e,s=new SyntaxError(String(a));return s.code=e,t&&(s.location=t),s.domain=r,s}function Hee(e){throw e}const Ds=" ",Gee="\r",Si=` +`,zee="\u2028",Wee="\u2029";function jee(e){const t=e;let n=0,r=1,i=1,o=0;const a=A=>t[A]===Gee&&t[A+1]===Si,s=A=>t[A]===Si,l=A=>t[A]===Wee,u=A=>t[A]===zee,c=A=>a(A)||s(A)||l(A)||u(A),f=()=>n,d=()=>r,h=()=>i,v=()=>o,m=A=>a(A)||l(A)||u(A)?Si:t[A],y=()=>m(n),_=()=>m(n+o);function b(){return o=0,c(n)&&(r++,i=0),a(n)&&n++,n++,i++,t[n]}function w(){return a(n+o)&&o++,o++,t[n+o]}function S(){n=0,r=1,i=1,o=0}function C(A=0){o=A}function T(){const A=n+o;for(;A!==n;)b();o=0}return{index:f,line:d,column:h,peekOffset:v,charAt:m,currentChar:y,currentPeek:_,next:b,peek:w,reset:S,resetPeek:C,skipToPeek:T}}const Ml=void 0,Yee=".",MM="'",Xee="tokenizer";function Kee(e,t={}){const n=t.location!==!1,r=jee(e),i=()=>r.index(),o=()=>Vee(r.line(),r.column(),r.index()),a=o(),s=i(),l={currentType:13,offset:s,startLoc:a,endLoc:a,lastType:13,lastOffset:s,lastStartLoc:a,lastEndLoc:a,braceNest:0,inLinked:!1,text:""},u=()=>l,{onError:c}=t;function f(U,W,q,...fe){const _e=u();if(W.column+=q,W.offset+=q,c){const Pe=n?nE(_e.startLoc,W):null,Z=Db(U,Pe,{domain:Xee,args:fe});c(Z)}}function d(U,W,q){U.endLoc=o(),U.currentType=W;const fe={type:W};return n&&(fe.loc=nE(U.startLoc,U.endLoc)),q!=null&&(fe.value=q),fe}const h=U=>d(U,13);function v(U,W){return U.currentChar()===W?(U.next(),W):(f(xn.EXPECTED_TOKEN,o(),0,W),"")}function m(U){let W="";for(;U.currentPeek()===Ds||U.currentPeek()===Si;)W+=U.currentPeek(),U.peek();return W}function y(U){const W=m(U);return U.skipToPeek(),W}function _(U){if(U===Ml)return!1;const W=U.charCodeAt(0);return W>=97&&W<=122||W>=65&&W<=90||W===95}function b(U){if(U===Ml)return!1;const W=U.charCodeAt(0);return W>=48&&W<=57}function w(U,W){const{currentType:q}=W;if(q!==2)return!1;m(U);const fe=_(U.currentPeek());return U.resetPeek(),fe}function S(U,W){const{currentType:q}=W;if(q!==2)return!1;m(U);const fe=U.currentPeek()==="-"?U.peek():U.currentPeek(),_e=b(fe);return U.resetPeek(),_e}function C(U,W){const{currentType:q}=W;if(q!==2)return!1;m(U);const fe=U.currentPeek()===MM;return U.resetPeek(),fe}function T(U,W){const{currentType:q}=W;if(q!==7)return!1;m(U);const fe=U.currentPeek()===".";return U.resetPeek(),fe}function A(U,W){const{currentType:q}=W;if(q!==8)return!1;m(U);const fe=_(U.currentPeek());return U.resetPeek(),fe}function P(U,W){const{currentType:q}=W;if(!(q===7||q===11))return!1;m(U);const fe=U.currentPeek()===":";return U.resetPeek(),fe}function I(U,W){const{currentType:q}=W;if(q!==9)return!1;const fe=()=>{const Pe=U.currentPeek();return Pe==="{"?_(U.peek()):Pe==="@"||Pe==="|"||Pe===":"||Pe==="."||Pe===Ds||!Pe?!1:Pe===Si?(U.peek(),fe()):O(U,!1)},_e=fe();return U.resetPeek(),_e}function R(U){m(U);const W=U.currentPeek()==="|";return U.resetPeek(),W}function O(U,W=!0){const q=(_e=!1,Pe="")=>{const Z=U.currentPeek();return Z==="{"||Z==="@"||!Z?_e:Z==="|"?!(Pe===Ds||Pe===Si):Z===Ds?(U.peek(),q(!0,Ds)):Z===Si?(U.peek(),q(!0,Si)):!0},fe=q();return W&&U.resetPeek(),fe}function M(U,W){const q=U.currentChar();return q===Ml?Ml:W(q)?(U.next(),q):null}function $(U){const W=U.charCodeAt(0);return W>=97&&W<=122||W>=65&&W<=90||W>=48&&W<=57||W===95||W===36}function F(U){return M(U,$)}function z(U){const W=U.charCodeAt(0);return W>=97&&W<=122||W>=65&&W<=90||W>=48&&W<=57||W===95||W===36||W===45}function B(U){return M(U,z)}function Y(U){const W=U.charCodeAt(0);return W>=48&&W<=57}function j(U){return M(U,Y)}function se(U){const W=U.charCodeAt(0);return W>=48&&W<=57||W>=65&&W<=70||W>=97&&W<=102}function ge(U){return M(U,se)}function ve(U){let W="",q="";for(;W=j(U);)q+=W;return q}function De(U){let W="";for(;;){const q=U.currentChar();if(q==="{"||q==="}"||q==="@"||q==="|"||!q)break;if(q===Ds||q===Si)if(O(U))W+=q,U.next();else{if(R(U))break;W+=q,U.next()}else W+=q,U.next()}return W}function Ne(U){y(U);let W="",q="";for(;W=B(U);)q+=W;return U.currentChar()===Ml&&f(xn.UNTERMINATED_CLOSING_BRACE,o(),0),q}function ze(U){y(U);let W="";return U.currentChar()==="-"?(U.next(),W+=`-${ve(U)}`):W+=ve(U),U.currentChar()===Ml&&f(xn.UNTERMINATED_CLOSING_BRACE,o(),0),W}function Me(U){return U!==MM&&U!==Si}function je(U){y(U),v(U,"'");let W="",q="";for(;W=M(U,Me);)W==="\\"?q+=ce(U):q+=W;const fe=U.currentChar();return fe===Si||fe===Ml?(f(xn.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),fe===Si&&(U.next(),v(U,"'")),q):(v(U,"'"),q)}function ce(U){const W=U.currentChar();switch(W){case"\\":case"'":return U.next(),`\\${W}`;case"u":return Ee(U,W,4);case"U":return Ee(U,W,6);default:return f(xn.UNKNOWN_ESCAPE_SEQUENCE,o(),0,W),""}}function Ee(U,W,q){v(U,W);let fe="";for(let _e=0;_e{const fe=U.currentChar();return fe==="{"||fe==="@"||fe==="|"||fe==="("||fe===")"||!fe||fe===Ds?q:(q+=fe,U.next(),W(q))};return W("")}function H(U){y(U);const W=v(U,"|");return y(U),W}function G(U,W){let q=null;switch(U.currentChar()){case"{":return W.braceNest>=1&&f(xn.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),U.next(),q=d(W,2,"{"),y(U),W.braceNest++,q;case"}":return W.braceNest>0&&W.currentType===2&&f(xn.EMPTY_PLACEHOLDER,o(),0),U.next(),q=d(W,3,"}"),W.braceNest--,W.braceNest>0&&y(U),W.inLinked&&W.braceNest===0&&(W.inLinked=!1),q;case"@":return W.braceNest>0&&f(xn.UNTERMINATED_CLOSING_BRACE,o(),0),q=le(U,W)||h(W),W.braceNest=0,q;default:{let _e=!0,Pe=!0,Z=!0;if(R(U))return W.braceNest>0&&f(xn.UNTERMINATED_CLOSING_BRACE,o(),0),q=d(W,1,H(U)),W.braceNest=0,W.inLinked=!1,q;if(W.braceNest>0&&(W.currentType===4||W.currentType===5||W.currentType===6))return f(xn.UNTERMINATED_CLOSING_BRACE,o(),0),W.braceNest=0,we(U,W);if(_e=w(U,W))return q=d(W,4,Ne(U)),y(U),q;if(Pe=S(U,W))return q=d(W,5,ze(U)),y(U),q;if(Z=C(U,W))return q=d(W,6,je(U)),y(U),q;if(!_e&&!Pe&&!Z)return q=d(W,12,Te(U)),f(xn.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,q.value),y(U),q;break}}return q}function le(U,W){const{currentType:q}=W;let fe=null;const _e=U.currentChar();switch((q===7||q===8||q===11||q===9)&&(_e===Si||_e===Ds)&&f(xn.INVALID_LINKED_FORMAT,o(),0),_e){case"@":return U.next(),fe=d(W,7,"@"),W.inLinked=!0,fe;case".":return y(U),U.next(),d(W,8,".");case":":return y(U),U.next(),d(W,9,":");default:return R(U)?(fe=d(W,1,H(U)),W.braceNest=0,W.inLinked=!1,fe):T(U,W)||P(U,W)?(y(U),le(U,W)):A(U,W)?(y(U),d(W,11,Oe(U))):I(U,W)?(y(U),_e==="{"?G(U,W)||fe:d(W,10,$e(U))):(q===7&&f(xn.INVALID_LINKED_FORMAT,o(),0),W.braceNest=0,W.inLinked=!1,we(U,W))}}function we(U,W){let q={type:13};if(W.braceNest>0)return G(U,W)||h(W);if(W.inLinked)return le(U,W)||h(W);switch(U.currentChar()){case"{":return G(U,W)||h(W);case"}":return f(xn.UNBALANCED_CLOSING_BRACE,o(),0),U.next(),d(W,3,"}");case"@":return le(U,W)||h(W);default:{if(R(U))return q=d(W,1,H(U)),W.braceNest=0,W.inLinked=!1,q;if(O(U))return d(W,0,De(U));break}}return q}function pe(){const{currentType:U,offset:W,startLoc:q,endLoc:fe}=l;return l.lastType=U,l.lastOffset=W,l.lastStartLoc=q,l.lastEndLoc=fe,l.offset=i(),l.startLoc=o(),r.currentChar()===Ml?d(l,13):we(r,l)}return{nextToken:pe,currentOffset:i,currentPosition:o,context:u}}const Zee="parser",qee=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Jee(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function Qee(e={}){const t=e.location!==!1,{onError:n}=e;function r(_,b,w,S,...C){const T=_.currentPosition();if(T.offset+=S,T.column+=S,n){const A=t?nE(w,T):null,P=Db(b,A,{domain:Zee,args:C});n(P)}}function i(_,b,w){const S={type:_};return t&&(S.start=b,S.end=b,S.loc={start:w,end:w}),S}function o(_,b,w,S){t&&(_.end=b,_.loc&&(_.loc.end=w))}function a(_,b){const w=_.context(),S=i(3,w.offset,w.startLoc);return S.value=b,o(S,_.currentOffset(),_.currentPosition()),S}function s(_,b){const w=_.context(),{lastOffset:S,lastStartLoc:C}=w,T=i(5,S,C);return T.index=parseInt(b,10),_.nextToken(),o(T,_.currentOffset(),_.currentPosition()),T}function l(_,b){const w=_.context(),{lastOffset:S,lastStartLoc:C}=w,T=i(4,S,C);return T.key=b,_.nextToken(),o(T,_.currentOffset(),_.currentPosition()),T}function u(_,b){const w=_.context(),{lastOffset:S,lastStartLoc:C}=w,T=i(9,S,C);return T.value=b.replace(qee,Jee),_.nextToken(),o(T,_.currentOffset(),_.currentPosition()),T}function c(_){const b=_.nextToken(),w=_.context(),{lastOffset:S,lastStartLoc:C}=w,T=i(8,S,C);return b.type!==11?(r(_,xn.UNEXPECTED_EMPTY_LINKED_MODIFIER,w.lastStartLoc,0),T.value="",o(T,S,C),{nextConsumeToken:b,node:T}):(b.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,za(b)),T.value=b.value||"",o(T,_.currentOffset(),_.currentPosition()),{node:T})}function f(_,b){const w=_.context(),S=i(7,w.offset,w.startLoc);return S.value=b,o(S,_.currentOffset(),_.currentPosition()),S}function d(_){const b=_.context(),w=i(6,b.offset,b.startLoc);let S=_.nextToken();if(S.type===8){const C=c(_);w.modifier=C.node,S=C.nextConsumeToken||_.nextToken()}switch(S.type!==9&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(S)),S=_.nextToken(),S.type===2&&(S=_.nextToken()),S.type){case 10:S.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(S)),w.key=f(_,S.value||"");break;case 4:S.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(S)),w.key=l(_,S.value||"");break;case 5:S.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(S)),w.key=s(_,S.value||"");break;case 6:S.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(S)),w.key=u(_,S.value||"");break;default:{r(_,xn.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const C=_.context(),T=i(7,C.offset,C.startLoc);return T.value="",o(T,C.offset,C.startLoc),w.key=T,o(w,C.offset,C.startLoc),{nextConsumeToken:S,node:w}}}return o(w,_.currentOffset(),_.currentPosition()),{node:w}}function h(_){const b=_.context(),w=b.currentType===1?_.currentOffset():b.offset,S=b.currentType===1?b.endLoc:b.startLoc,C=i(2,w,S);C.items=[];let T=null;do{const I=T||_.nextToken();switch(T=null,I.type){case 0:I.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(I)),C.items.push(a(_,I.value||""));break;case 5:I.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(I)),C.items.push(s(_,I.value||""));break;case 4:I.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(I)),C.items.push(l(_,I.value||""));break;case 6:I.value==null&&r(_,xn.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,za(I)),C.items.push(u(_,I.value||""));break;case 7:{const R=d(_);C.items.push(R.node),T=R.nextConsumeToken||null;break}}}while(b.currentType!==13&&b.currentType!==1);const A=b.currentType===1?b.lastOffset:_.currentOffset(),P=b.currentType===1?b.lastEndLoc:_.currentPosition();return o(C,A,P),C}function v(_,b,w,S){const C=_.context();let T=S.items.length===0;const A=i(1,b,w);A.cases=[],A.cases.push(S);do{const P=h(_);T||(T=P.items.length===0),A.cases.push(P)}while(C.currentType!==13);return T&&r(_,xn.MUST_HAVE_MESSAGES_IN_PLURAL,w,0),o(A,_.currentOffset(),_.currentPosition()),A}function m(_){const b=_.context(),{offset:w,startLoc:S}=b,C=h(_);return b.currentType===13?C:v(_,w,S,C)}function y(_){const b=Kee(_,Er({},e)),w=b.context(),S=i(0,w.offset,w.startLoc);return t&&S.loc&&(S.loc.source=_),S.body=m(b),e.onCacheKey&&(S.cacheKey=e.onCacheKey(_)),w.currentType!==13&&r(b,xn.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,_[w.offset]||""),o(S,b.currentOffset(),b.currentPosition()),S}return{parse:y}}function za(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function ete(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function LM(e,t){for(let n=0;nNM(n)),e}function NM(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;ns;function u(y,_){s.code+=y}function c(y,_=!0){const b=_?i:"";u(o?b+" ".repeat(y):b)}function f(y=!0){const _=++s.indentLevel;y&&c(_)}function d(y=!0){const _=--s.indentLevel;y&&c(_)}function h(){c(s.indentLevel)}return{context:l,push:u,indent:f,deindent:d,newline:h,helper:y=>`_${y}`,needIndent:()=>s.needIndent}}function ite(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),th(e,t.key),t.modifier?(e.push(", "),th(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function ote(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const i=t.items.length;for(let o=0;o1){e.push(`${n("plural")}([`),e.indent(r());const i=t.cases.length;for(let o=0;o{const n=tt(t.mode)?t.mode:"normal",r=tt(t.filename)?t.filename:"message.intl",i=!!t.sourceMap,o=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` +`,a=t.needIndent?t.needIndent:n!=="arrow",s=e.helpers||[],l=rte(e,{mode:n,filename:r,sourceMap:i,breakLineCode:o,needIndent:a});l.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(a),s.length>0&&(l.push(`const { ${PI(s.map(f=>`${f}: _${f}`),", ")} } = ctx`),l.newline()),l.push("return "),th(l,e),l.deindent(a),l.push("}"),delete e.helpers;const{code:u,map:c}=l.context();return{ast:e,code:u,map:c?c.toJSON():void 0}};function ute(e,t={}){const n=Er({},t),r=!!n.jit,i=!!n.minify,o=n.optimize==null?!0:n.optimize,s=Qee(n).parse(e);return r?(o&&nte(s),i&&md(s),{ast:s,code:""}):(tte(s,n),lte(s,n))}/*! + * core-base v10.0.5 + * (c) 2024 kazuya kawaguchi + * Released under the MIT License. + */function cte(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Mc().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Mc().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function bx(e){return n=>fte(n,e)}function fte(e,t){const n=hte(t);if(n==null)throw og(0);if(DI(n)===1){const o=vte(n);return e.plural(o.reduce((a,s)=>[...a,kM(e,s)],[]))}else return kM(e,n)}const dte=["b","body"];function hte(e){return Bu(e,dte)}const pte=["c","cases"];function vte(e){return Bu(e,pte,[])}function kM(e,t){const n=mte(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const r=_te(t).reduce((i,o)=>[...i,rE(e,o)],[]);return e.normalize(r)}}const gte=["s","static"];function mte(e){return Bu(e,gte)}const yte=["i","items"];function _te(e){return Bu(e,yte,[])}function rE(e,t){const n=DI(t);switch(n){case 3:return Cy(t,n);case 9:return Cy(t,n);case 4:{const r=t;if(Ra(r,"k")&&r.k)return e.interpolate(e.named(r.k));if(Ra(r,"key")&&r.key)return e.interpolate(e.named(r.key));throw og(n)}case 5:{const r=t;if(Ra(r,"i")&&hr(r.i))return e.interpolate(e.list(r.i));if(Ra(r,"index")&&hr(r.index))return e.interpolate(e.list(r.index));throw og(n)}case 6:{const r=t,i=xte(r),o=Cte(r);return e.linked(rE(e,o),i?rE(e,i):void 0,e.type)}case 7:return Cy(t,n);case 8:return Cy(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const bte=["t","type"];function DI(e){return Bu(e,bte)}const Ste=["v","value"];function Cy(e,t){const n=Bu(e,Ste);if(n)return n;throw og(t)}const wte=["m","modifier"];function xte(e){return Bu(e,wte)}const Tte=["k","key"];function Cte(e){const t=Bu(e,Tte);if(t)return t;throw og(6)}function Bu(e,t,n){for(let r=0;re;let Ey=Rn();function nh(e){return pn(e)&&DI(e)===0&&(Ra(e,"b")||Ra(e,"body"))}function Ate(e,t={}){let n=!1;const r=t.onError||Hee;return t.onError=i=>{n=!0,r(i)},{...ute(e,t),detectError:n}}function Ite(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&tt(e)){fn(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||Ete)(e),i=Ey[r];if(i)return i;const{ast:o,detectError:a}=Ate(e,{...t,location:!1,jit:!0}),s=bx(o);return a?s:Ey[r]=s}else{const n=e.cacheKey;if(n){const r=Ey[n];return r||(Ey[n]=bx(e))}else return bx(e)}}let ag=null;function Rte(e){ag=e}function Pte(e,t,n){ag&&ag.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Ote=Dte("function:translate");function Dte(e){return t=>ag&&ag.emit(e,t)}const Zs={INVALID_ARGUMENT:Uee,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_NON_STRING_MESSAGE:20,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},Mte=24;function qs(e){return Db(e,null,void 0)}function MI(e,t){return t.locale!=null?FM(t.locale):FM(e.locale)}let Sx;function FM(e){if(tt(e))return e;if(Hn(e)){if(e.resolvedOnce&&Sx!=null)return Sx;if(e.constructor.name==="Function"){const t=e();if(Fee(t))throw qs(Zs.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Sx=t}else throw qs(Zs.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw qs(Zs.NOT_SUPPORT_LOCALE_TYPE)}function Lte(e,t,n){return[...new Set([n,...ar(t)?t:pn(t)?Object.keys(t):tt(t)?[t]:[n]])]}function lB(e,t,n){const r=tt(n)?n:sg,i=e;i.__localeChainCache||(i.__localeChainCache=new Map);let o=i.__localeChainCache.get(r);if(!o){o=[];let a=[n];for(;ar(a);)a=$M(o,a,t);const s=ar(t)||!jt(t)?t:t.default?t.default:null;a=tt(s)?[s]:s,ar(a)&&$M(o,a,!1),i.__localeChainCache.set(r,o)}return o}function $M(e,t,n){let r=!0;for(let i=0;i{a===void 0?a=s:a+=s},d[1]=()=>{a!==void 0&&(t.push(a),a=void 0)},d[2]=()=>{d[0](),i++},d[3]=()=>{if(i>0)i--,r=4,d[0]();else{if(i=0,a===void 0||(a=Ute(a),a===!1))return!1;d[1]()}};function h(){const v=e[n+1];if(r===5&&v==="'"||r===6&&v==='"')return n++,s="\\"+v,d[0](),!0}for(;r!==null;)if(n++,o=e[n],!(o==="\\"&&h())){if(l=Vte(o),f=Vu[r],u=f[l]||f.l||8,u===8||(r=u[0],u[1]!==void 0&&(c=d[u[1]],c&&(s=o,c()===!1))))return;if(r===7)return t}}const BM=new Map;function Gte(e,t){return pn(e)?e[t]:null}function zte(e,t){if(!pn(e))return null;let n=BM.get(t);if(n||(n=Hte(t),n&&BM.set(t,n)),!n)return null;const r=n.length;let i=e,o=0;for(;o`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function jte(){return{upper:(e,t)=>t==="text"&&tt(e)?e.toUpperCase():t==="vnode"&&pn(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&tt(e)?e.toLowerCase():t==="vnode"&&pn(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&tt(e)?UM(e):t==="vnode"&&pn(e)&&"__v_isVNode"in e?UM(e.children):e}}let uB;function Yte(e){uB=e}let cB;function Xte(e){cB=e}let fB;function Kte(e){fB=e}let dB=null;const Zte=e=>{dB=e},qte=()=>dB;let hB=null;const HM=e=>{hB=e},Jte=()=>hB;let GM=0;function Qte(e={}){const t=Hn(e.onWarn)?e.onWarn:Bee,n=tt(e.version)?e.version:Wte,r=tt(e.locale)||Hn(e.locale)?e.locale:sg,i=Hn(r)?sg:r,o=ar(e.fallbackLocale)||jt(e.fallbackLocale)||tt(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:i,a=jt(e.messages)?e.messages:xx(i),s=jt(e.datetimeFormats)?e.datetimeFormats:xx(i),l=jt(e.numberFormats)?e.numberFormats:xx(i),u=Er(Rn(),e.modifiers,jte()),c=e.pluralRules||Rn(),f=Hn(e.missing)?e.missing:null,d=fn(e.missingWarn)||eh(e.missingWarn)?e.missingWarn:!0,h=fn(e.fallbackWarn)||eh(e.fallbackWarn)?e.fallbackWarn:!0,v=!!e.fallbackFormat,m=!!e.unresolving,y=Hn(e.postTranslation)?e.postTranslation:null,_=jt(e.processor)?e.processor:null,b=fn(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter,S=Hn(e.messageCompiler)?e.messageCompiler:uB,C=Hn(e.messageResolver)?e.messageResolver:cB||Gte,T=Hn(e.localeFallbacker)?e.localeFallbacker:fB||Lte,A=pn(e.fallbackContext)?e.fallbackContext:void 0,P=e,I=pn(P.__datetimeFormatters)?P.__datetimeFormatters:new Map,R=pn(P.__numberFormatters)?P.__numberFormatters:new Map,O=pn(P.__meta)?P.__meta:{};GM++;const M={version:n,cid:GM,locale:r,fallbackLocale:o,messages:a,modifiers:u,pluralRules:c,missing:f,missingWarn:d,fallbackWarn:h,fallbackFormat:v,unresolving:m,postTranslation:y,processor:_,warnHtmlMessage:b,escapeParameter:w,messageCompiler:S,messageResolver:C,localeFallbacker:T,fallbackContext:A,onWarn:t,__meta:O};return M.datetimeFormats=s,M.numberFormats=l,M.__datetimeFormatters=I,M.__numberFormatters=R,__INTLIFY_PROD_DEVTOOLS__&&Pte(M,n,O),M}const xx=e=>({[e]:Rn()});function LI(e,t,n,r,i){const{missing:o,onWarn:a}=e;if(o!==null){const s=o(e,n,t,i);return tt(s)?s:t}else return t}function rp(e,t,n){const r=e;r.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function ene(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function tne(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;r{pB.includes(l)?a[l]=n[l]:o[l]=n[l]}),tt(r)?o.locale=r:jt(r)&&(a=r),jt(i)&&(a=i),[o.key||"",s,o,a]}function WM(e,t,n){const r=e;for(const i in n){const o=`${t}__${i}`;r.__datetimeFormatters.has(o)&&r.__datetimeFormatters.delete(o)}}function jM(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:i,onWarn:o,localeFallbacker:a}=e,{__numberFormatters:s}=e,[l,u,c,f]=oE(...t),d=fn(c.missingWarn)?c.missingWarn:e.missingWarn;fn(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const h=!!c.part,v=MI(e,c),m=a(e,i,v);if(!tt(l)||l==="")return new Intl.NumberFormat(v,f).format(u);let y={},_,b=null;const w="number format";for(let T=0;T{vB.includes(l)?a[l]=n[l]:o[l]=n[l]}),tt(r)?o.locale=r:jt(r)&&(a=r),jt(i)&&(a=i),[o.key||"",s,o,a]}function YM(e,t,n){const r=e;for(const i in n){const o=`${t}__${i}`;r.__numberFormatters.has(o)&&r.__numberFormatters.delete(o)}}const nne=e=>e,rne=e=>"",ine="text",one=e=>e.length===0?"":PI(e),ane=$ee;function XM(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function sne(e){const t=hr(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(hr(e.named.count)||hr(e.named.n))?hr(e.named.count)?e.named.count:hr(e.named.n)?e.named.n:t:t}function lne(e,t){t.count||(t.count=e),t.n||(t.n=e)}function une(e={}){const t=e.locale,n=sne(e),r=pn(e.pluralRules)&&tt(t)&&Hn(e.pluralRules[t])?e.pluralRules[t]:XM,i=pn(e.pluralRules)&&tt(t)&&Hn(e.pluralRules[t])?XM:void 0,o=_=>_[r(n,_.length,i)],a=e.list||[],s=_=>a[_],l=e.named||Rn();hr(e.pluralIndex)&&lne(n,l);const u=_=>l[_];function c(_,b){const w=Hn(e.messages)?e.messages(_,!!b):pn(e.messages)?e.messages[_]:!1;return w||(e.parent?e.parent.message(_):rne)}const f=_=>e.modifiers?e.modifiers[_]:nne,d=jt(e.processor)&&Hn(e.processor.normalize)?e.processor.normalize:one,h=jt(e.processor)&&Hn(e.processor.interpolate)?e.processor.interpolate:ane,v=jt(e.processor)&&tt(e.processor.type)?e.processor.type:ine,y={list:s,named:u,plural:o,linked:(_,...b)=>{const[w,S]=b;let C="text",T="";b.length===1?pn(w)?(T=w.modifier||T,C=w.type||C):tt(w)&&(T=w||T):b.length===2&&(tt(w)&&(T=w||T),tt(S)&&(C=S||C));const A=c(_,!0)(y),P=C==="vnode"&&ar(A)&&T?A[0]:A;return T?f(T)(P,C):P},message:c,type:v,interpolate:h,normalize:d,values:Er(Rn(),a,l)};return y}const KM=()=>"",Xo=e=>Hn(e);function ZM(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:i,messageCompiler:o,fallbackLocale:a,messages:s}=e,[l,u]=aE(...t),c=fn(u.missingWarn)?u.missingWarn:e.missingWarn,f=fn(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,d=fn(u.escapeParameter)?u.escapeParameter:e.escapeParameter,h=!!u.resolvedMessage,v=tt(u.default)||fn(u.default)?fn(u.default)?o?l:()=>l:u.default:n?o?l:()=>l:null,m=n||v!=null&&(tt(v)||Hn(v)),y=MI(e,u);d&&cne(u);let[_,b,w]=h?[l,y,s[y]||Rn()]:gB(e,l,y,a,f,c),S=_,C=l;if(!h&&!(tt(S)||nh(S)||Xo(S))&&m&&(S=v,C=S),!h&&(!(tt(S)||nh(S)||Xo(S))||!tt(b)))return i?Mb:l;let T=!1;const A=()=>{T=!0},P=Xo(S)?S:mB(e,l,b,S,C,A);if(T)return S;const I=hne(e,b,w,u),R=une(I),O=fne(e,P,R),M=r?r(O,l):O;if(__INTLIFY_PROD_DEVTOOLS__){const $={timestamp:Date.now(),key:tt(l)?l:Xo(S)?S.key:"",locale:b||(Xo(S)?S.locale:""),format:tt(S)?S:Xo(S)?S.source:"",message:M};$.meta=Er({},e.__meta,qte()||{}),Ote($)}return M}function cne(e){ar(e.list)?e.list=e.list.map(t=>tt(t)?DM(t):t):pn(e.named)&&Object.keys(e.named).forEach(t=>{tt(e.named[t])&&(e.named[t]=DM(e.named[t]))})}function gB(e,t,n,r,i,o){const{messages:a,onWarn:s,messageResolver:l,localeFallbacker:u}=e,c=u(e,r,n);let f=Rn(),d,h=null;const v="translate";for(let m=0;mr;return u.locale=n,u.key=t,u}const l=a(r,dne(e,n,i,r,s,o));return l.locale=n,l.key=t,l.source=r,l}function fne(e,t,n){return t(n)}function aE(...e){const[t,n,r]=e,i=Rn();if(!tt(t)&&!hr(t)&&!Xo(t)&&!nh(t))throw qs(Zs.INVALID_ARGUMENT);const o=hr(t)?String(t):(Xo(t),t);return hr(n)?i.plural=n:tt(n)?i.default=n:jt(n)&&!Ob(n)?i.named=n:ar(n)&&(i.list=n),hr(r)?i.plural=r:tt(r)?i.default=r:jt(r)&&Er(i,r),[o,i]}function dne(e,t,n,r,i,o){return{locale:t,key:n,warnHtmlMessage:i,onError:a=>{throw o&&o(a),a},onCacheKey:a=>Dee(t,n,a)}}function hne(e,t,n,r){const{modifiers:i,pluralRules:o,messageResolver:a,fallbackLocale:s,fallbackWarn:l,missingWarn:u,fallbackContext:c}=e,d={locale:t,modifiers:i,pluralRules:o,messages:(h,v)=>{let m=a(n,h);if(m==null&&(c||v)){const[,,y]=gB(c||e,h,t,s,l,u);m=a(y,h)}if(tt(m)||nh(m)){let y=!1;const b=mB(e,h,t,m,h,()=>{y=!0});return y?KM:b}else return Xo(m)?m:KM}};return e.processor&&(d.processor=e.processor),r.list&&(d.list=r.list),r.named&&(d.named=r.named),hr(r.plural)&&(d.pluralIndex=r.plural),d}cte();/*! + * vue-i18n v10.0.5 + * (c) 2024 kazuya kawaguchi + * Released under the MIT License. + */const pne="10.0.5";function vne(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Mc().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Mc().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Mc().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Mc().__INTLIFY_PROD_DEVTOOLS__=!1)}const Oi={UNEXPECTED_RETURN_TYPE:Mte,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:30,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32,NOT_COMPATIBLE_LEGACY_VUE_I18N:33,NOT_AVAILABLE_COMPOSITION_IN_LEGACY:34};function ro(e,...t){return Db(e,null,void 0)}const sE=$u("__translateVNode"),lE=$u("__datetimeParts"),uE=$u("__numberParts"),yB=$u("__setPluralRules"),_B=$u("__injectWithOption"),cE=$u("__dispose");function lg(e){if(!pn(e))return e;for(const t in e)if(Ra(e,t))if(!t.includes("."))pn(e[t])&&lg(e[t]);else{const n=t.split("."),r=n.length-1;let i=e,o=!1;for(let a=0;a{if("locale"in s&&"resource"in s){const{locale:l,resource:u}=s;l?(a[l]=a[l]||Rn(),j0(u,a[l])):j0(u,a)}else tt(s)&&j0(JSON.parse(s),a)}),i==null&&o)for(const s in a)Ra(a,s)&&lg(a[s]);return a}function bB(e){return e.type}function SB(e,t,n){let r=pn(t.messages)?t.messages:Rn();"__i18nGlobal"in n&&(r=NI(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const i=Object.keys(r);i.length&&i.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(pn(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(a=>{e.mergeDateTimeFormat(a,t.datetimeFormats[a])})}if(pn(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(a=>{e.mergeNumberFormat(a,t.numberFormats[a])})}}}function qM(e){return ye(tl,null,e,0)}const JM="__INTLIFY_META__",QM=()=>[],gne=()=>!1;let eL=0;function tL(e){return(t,n,r,i)=>e(n,r,br()||void 0,i)}const mne=()=>{const e=br();let t=null;return e&&(t=bB(e)[JM])?{[JM]:t}:null};function kI(e={}){const{__root:t,__injectWithOption:n}=e,r=t===void 0,i=e.flatJson,o=a1?Fe:Ef;let a=fn(e.inheritLocale)?e.inheritLocale:!0;const s=o(t&&a?t.locale.value:tt(e.locale)?e.locale:sg),l=o(t&&a?t.fallbackLocale.value:tt(e.fallbackLocale)||ar(e.fallbackLocale)||jt(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s.value),u=o(NI(s.value,e)),c=o(jt(e.datetimeFormats)?e.datetimeFormats:{[s.value]:{}}),f=o(jt(e.numberFormats)?e.numberFormats:{[s.value]:{}});let d=t?t.missingWarn:fn(e.missingWarn)||eh(e.missingWarn)?e.missingWarn:!0,h=t?t.fallbackWarn:fn(e.fallbackWarn)||eh(e.fallbackWarn)?e.fallbackWarn:!0,v=t?t.fallbackRoot:fn(e.fallbackRoot)?e.fallbackRoot:!0,m=!!e.fallbackFormat,y=Hn(e.missing)?e.missing:null,_=Hn(e.missing)?tL(e.missing):null,b=Hn(e.postTranslation)?e.postTranslation:null,w=t?t.warnHtmlMessage:fn(e.warnHtmlMessage)?e.warnHtmlMessage:!0,S=!!e.escapeParameter;const C=t?t.modifiers:jt(e.modifiers)?e.modifiers:{};let T=e.pluralRules||t&&t.pluralRules,A;A=(()=>{r&&HM(null);const Z={version:pne,locale:s.value,fallbackLocale:l.value,messages:u.value,modifiers:C,pluralRules:T,missing:_===null?void 0:_,missingWarn:d,fallbackWarn:h,fallbackFormat:m,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:w,escapeParameter:S,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};Z.datetimeFormats=c.value,Z.numberFormats=f.value,Z.__datetimeFormatters=jt(A)?A.__datetimeFormatters:void 0,Z.__numberFormatters=jt(A)?A.__numberFormatters:void 0;const de=Qte(Z);return r&&HM(de),de})(),rp(A,s.value,l.value);function I(){return[s.value,l.value,u.value,c.value,f.value]}const R=Ve({get:()=>s.value,set:Z=>{s.value=Z,A.locale=s.value}}),O=Ve({get:()=>l.value,set:Z=>{l.value=Z,A.fallbackLocale=l.value,rp(A,s.value,Z)}}),M=Ve(()=>u.value),$=Ve(()=>c.value),F=Ve(()=>f.value);function z(){return Hn(b)?b:null}function B(Z){b=Z,A.postTranslation=Z}function Y(){return y}function j(Z){Z!==null&&(_=tL(Z)),y=Z,A.missing=_}const se=(Z,de,Be,Xe,ht,ee)=>{I();let ie;try{__INTLIFY_PROD_DEVTOOLS__,r||(A.fallbackContext=t?Jte():void 0),ie=Z(A)}finally{__INTLIFY_PROD_DEVTOOLS__,r||(A.fallbackContext=void 0)}if(Be!=="translate exists"&&hr(ie)&&ie===Mb||Be==="translate exists"&&!ie){const[he,Ce]=de();return t&&v?Xe(t):ht(he)}else{if(ee(ie))return ie;throw ro(Oi.UNEXPECTED_RETURN_TYPE)}};function ge(...Z){return se(de=>Reflect.apply(ZM,null,[de,...Z]),()=>aE(...Z),"translate",de=>Reflect.apply(de.t,de,[...Z]),de=>de,de=>tt(de))}function ve(...Z){const[de,Be,Xe]=Z;if(Xe&&!pn(Xe))throw ro(Oi.INVALID_ARGUMENT);return ge(de,Be,Er({resolvedMessage:!0},Xe||{}))}function De(...Z){return se(de=>Reflect.apply(zM,null,[de,...Z]),()=>iE(...Z),"datetime format",de=>Reflect.apply(de.d,de,[...Z]),()=>VM,de=>tt(de))}function Ne(...Z){return se(de=>Reflect.apply(jM,null,[de,...Z]),()=>oE(...Z),"number format",de=>Reflect.apply(de.n,de,[...Z]),()=>VM,de=>tt(de))}function ze(Z){return Z.map(de=>tt(de)||hr(de)||fn(de)?qM(String(de)):de)}const je={normalize:ze,interpolate:Z=>Z,type:"vnode"};function ce(...Z){return se(de=>{let Be;const Xe=de;try{Xe.processor=je,Be=Reflect.apply(ZM,null,[Xe,...Z])}finally{Xe.processor=null}return Be},()=>aE(...Z),"translate",de=>de[sE](...Z),de=>[qM(de)],de=>ar(de))}function Ee(...Z){return se(de=>Reflect.apply(jM,null,[de,...Z]),()=>oE(...Z),"number format",de=>de[uE](...Z),QM,de=>tt(de)||ar(de))}function Se(...Z){return se(de=>Reflect.apply(zM,null,[de,...Z]),()=>iE(...Z),"datetime format",de=>de[lE](...Z),QM,de=>tt(de)||ar(de))}function Te(Z){T=Z,A.pluralRules=T}function Oe(Z,de){return se(()=>{if(!Z)return!1;const Be=tt(de)?de:s.value,Xe=G(Be),ht=A.messageResolver(Xe,Z);return nh(ht)||Xo(ht)||tt(ht)},()=>[Z],"translate exists",Be=>Reflect.apply(Be.te,Be,[Z,de]),gne,Be=>fn(Be))}function $e(Z){let de=null;const Be=lB(A,l.value,s.value);for(let Xe=0;Xe{a&&(s.value=Z,A.locale=Z,rp(A,s.value,l.value))}),Yt(t.fallbackLocale,Z=>{a&&(l.value=Z,A.fallbackLocale=Z,rp(A,s.value,l.value))}));const Pe={id:eL,locale:R,fallbackLocale:O,get inheritLocale(){return a},set inheritLocale(Z){a=Z,Z&&t&&(s.value=t.locale.value,l.value=t.fallbackLocale.value,rp(A,s.value,l.value))},get availableLocales(){return Object.keys(u.value).sort()},messages:M,get modifiers(){return C},get pluralRules(){return T||{}},get isGlobal(){return r},get missingWarn(){return d},set missingWarn(Z){d=Z,A.missingWarn=d},get fallbackWarn(){return h},set fallbackWarn(Z){h=Z,A.fallbackWarn=h},get fallbackRoot(){return v},set fallbackRoot(Z){v=Z},get fallbackFormat(){return m},set fallbackFormat(Z){m=Z,A.fallbackFormat=m},get warnHtmlMessage(){return w},set warnHtmlMessage(Z){w=Z,A.warnHtmlMessage=Z},get escapeParameter(){return S},set escapeParameter(Z){S=Z,A.escapeParameter=Z},t:ge,getLocaleMessage:G,setLocaleMessage:le,mergeLocaleMessage:we,getPostTranslationHandler:z,setPostTranslationHandler:B,getMissingHandler:Y,setMissingHandler:j,[yB]:Te};return Pe.datetimeFormats=$,Pe.numberFormats=F,Pe.rt=ve,Pe.te=Oe,Pe.tm=H,Pe.d=De,Pe.n=Ne,Pe.getDateTimeFormat=pe,Pe.setDateTimeFormat=U,Pe.mergeDateTimeFormat=W,Pe.getNumberFormat=q,Pe.setNumberFormat=fe,Pe.mergeNumberFormat=_e,Pe[_B]=n,Pe[sE]=ce,Pe[lE]=Se,Pe[uE]=Ee,Pe}function yne(e){const t=tt(e.locale)?e.locale:sg,n=tt(e.fallbackLocale)||ar(e.fallbackLocale)||jt(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Hn(e.missing)?e.missing:void 0,i=fn(e.silentTranslationWarn)||eh(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,o=fn(e.silentFallbackWarn)||eh(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,a=fn(e.fallbackRoot)?e.fallbackRoot:!0,s=!!e.formatFallbackMessages,l=jt(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,c=Hn(e.postTranslation)?e.postTranslation:void 0,f=tt(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,d=!!e.escapeParameterHtml,h=fn(e.sync)?e.sync:!0;let v=e.messages;if(jt(e.sharedMessages)){const C=e.sharedMessages;v=Object.keys(C).reduce((A,P)=>{const I=A[P]||(A[P]={});return Er(I,C[P]),A},v||{})}const{__i18n:m,__root:y,__injectWithOption:_}=e,b=e.datetimeFormats,w=e.numberFormats,S=e.flatJson;return{locale:t,fallbackLocale:n,messages:v,flatJson:S,datetimeFormats:b,numberFormats:w,missing:r,missingWarn:i,fallbackWarn:o,fallbackRoot:a,fallbackFormat:s,modifiers:l,pluralRules:u,postTranslation:c,warnHtmlMessage:f,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:h,__i18n:m,__root:y,__injectWithOption:_}}function fE(e={}){const t=kI(yne(e)),{__extender:n}=e,r={id:t.id,get locale(){return t.locale.value},set locale(i){t.locale.value=i},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(i){t.fallbackLocale.value=i},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(i){t.setMissingHandler(i)},get silentTranslationWarn(){return fn(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(i){t.missingWarn=fn(i)?!i:i},get silentFallbackWarn(){return fn(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(i){t.fallbackWarn=fn(i)?!i:i},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(i){t.fallbackFormat=i},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(i){t.setPostTranslationHandler(i)},get sync(){return t.inheritLocale},set sync(i){t.inheritLocale=i},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(i){t.warnHtmlMessage=i!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(i){t.escapeParameter=i},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...i){return Reflect.apply(t.t,t,[...i])},rt(...i){return Reflect.apply(t.rt,t,[...i])},tc(...i){const[o,a,s]=i,l={plural:1};let u=null,c=null;if(!tt(o))throw ro(Oi.INVALID_ARGUMENT);const f=o;return tt(a)?l.locale=a:hr(a)?l.plural=a:ar(a)?u=a:jt(a)&&(c=a),tt(s)?l.locale=s:ar(s)?u=s:jt(s)&&(c=s),Reflect.apply(t.t,t,[f,u||c||{},l])},te(i,o){return t.te(i,o)},tm(i){return t.tm(i)},getLocaleMessage(i){return t.getLocaleMessage(i)},setLocaleMessage(i,o){t.setLocaleMessage(i,o)},mergeLocaleMessage(i,o){t.mergeLocaleMessage(i,o)},d(...i){return Reflect.apply(t.d,t,[...i])},getDateTimeFormat(i){return t.getDateTimeFormat(i)},setDateTimeFormat(i,o){t.setDateTimeFormat(i,o)},mergeDateTimeFormat(i,o){t.mergeDateTimeFormat(i,o)},n(...i){return Reflect.apply(t.n,t,[...i])},getNumberFormat(i){return t.getNumberFormat(i)},setNumberFormat(i,o){t.setNumberFormat(i,o)},mergeNumberFormat(i,o){t.mergeNumberFormat(i,o)}};return r.__extender=n,r}function _ne(e,t,n){return{beforeCreate(){const r=br();if(!r)throw ro(Oi.UNEXPECTED_ERROR);const i=this.$options;if(i.i18n){const o=i.i18n;if(i.__i18n&&(o.__i18n=i.__i18n),o.__root=t,this===this.$root)this.$i18n=nL(e,o);else{o.__injectWithOption=!0,o.__extender=n.__vueI18nExtend,this.$i18n=fE(o);const a=this.$i18n;a.__extender&&(a.__disposer=a.__extender(this.$i18n))}}else if(i.__i18n)if(this===this.$root)this.$i18n=nL(e,i);else{this.$i18n=fE({__i18n:i.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=e;i.__i18nGlobal&&SB(t,i,i),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$tc=(...o)=>this.$i18n.tc(...o),this.$te=(o,a)=>this.$i18n.te(o,a),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=br();if(!r)throw ro(Oi.UNEXPECTED_ERROR);const i=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,i.__disposer&&(i.__disposer(),delete i.__disposer,delete i.__extender),n.__deleteInstance(r),delete this.$i18n}}}function nL(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[yB](t.pluralizationRules||e.pluralizationRules);const n=NI(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const FI={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function bne({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,i)=>[...r,...i.type===Ze?i.children:[i]],[]):t.reduce((n,r)=>{const i=e[r];return i&&(n[r]=i()),n},Rn())}function wB(){return Ze}const Sne=it({name:"i18n-t",props:Er({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>hr(e)||!isNaN(e)}},FI),setup(e,t){const{slots:n,attrs:r}=t,i=e.i18n||cs({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter(f=>f!=="_"),a=Rn();e.locale&&(a.locale=e.locale),e.plural!==void 0&&(a.plural=tt(e.plural)?+e.plural:e.plural);const s=bne(t,o),l=i[sE](e.keypath,s,a),u=Er(Rn(),r),c=tt(e.tag)||pn(e.tag)?e.tag:wB();return Wi(c,u,l)}}}),rL=Sne;function wne(e){return ar(e)&&!tt(e[0])}function xB(e,t,n,r){const{slots:i,attrs:o}=t;return()=>{const a={part:!0};let s=Rn();e.locale&&(a.locale=e.locale),tt(e.format)?a.key=e.format:pn(e.format)&&(tt(e.format.key)&&(a.key=e.format.key),s=Object.keys(e.format).reduce((d,h)=>n.includes(h)?Er(Rn(),d,{[h]:e.format[h]}):d,Rn()));const l=r(e.value,a,s);let u=[a.key];ar(l)?u=l.map((d,h)=>{const v=i[d.type],m=v?v({[d.type]:d.value,index:h,parts:l}):[d.value];return wne(m)&&(m[0].key=`${d.type}-${h}`),m}):tt(l)&&(u=[l]);const c=Er(Rn(),o),f=tt(e.tag)||pn(e.tag)?e.tag:wB();return Wi(f,c,u)}}const xne=it({name:"i18n-n",props:Er({value:{type:Number,required:!0},format:{type:[String,Object]}},FI),setup(e,t){const n=e.i18n||cs({useScope:e.scope,__useComponent:!0});return xB(e,t,vB,(...r)=>n[uE](...r))}}),iL=xne,Tne=it({name:"i18n-d",props:Er({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},FI),setup(e,t){const n=e.i18n||cs({useScope:e.scope,__useComponent:!0});return xB(e,t,pB,(...r)=>n[lE](...r))}}),oL=Tne;function Cne(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function Ene(e){const t=a=>{const{instance:s,value:l}=a;if(!s||!s.$)throw ro(Oi.UNEXPECTED_ERROR);const u=Cne(e,s.$),c=aL(l);return[Reflect.apply(u.t,u,[...sL(c)]),u]};return{created:(a,s)=>{const[l,u]=t(s);a1&&e.global===u&&(a.__i18nWatcher=Yt(u.locale,()=>{s.instance&&s.instance.$forceUpdate()})),a.__composer=u,a.textContent=l},unmounted:a=>{a1&&a.__i18nWatcher&&(a.__i18nWatcher(),a.__i18nWatcher=void 0,delete a.__i18nWatcher),a.__composer&&(a.__composer=void 0,delete a.__composer)},beforeUpdate:(a,{value:s})=>{if(a.__composer){const l=a.__composer,u=aL(s);a.textContent=Reflect.apply(l.t,l,[...sL(u)])}},getSSRProps:a=>{const[s]=t(a);return{textContent:s}}}}function aL(e){if(tt(e))return{path:e};if(jt(e)){if(!("path"in e))throw ro(Oi.REQUIRED_VALUE,"path");return e}else throw ro(Oi.INVALID_VALUE)}function sL(e){const{path:t,locale:n,args:r,choice:i,plural:o}=e,a={},s=r||{};return tt(n)&&(a.locale=n),hr(i)&&(a.plural=i),hr(o)&&(a.plural=o),[t,s,a]}function Ane(e,t,...n){const r=jt(n[0])?n[0]:{};(fn(r.globalInstall)?r.globalInstall:!0)&&([rL.name,"I18nT"].forEach(o=>e.component(o,rL)),[iL.name,"I18nN"].forEach(o=>e.component(o,iL)),[oL.name,"I18nD"].forEach(o=>e.component(o,oL))),e.directive("t",Ene(t))}const Ine=$u("global-vue-i18n");function Rne(e={},t){const n=__VUE_I18N_LEGACY_API__&&fn(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,r=fn(e.globalInjection)?e.globalInjection:!0,i=new Map,[o,a]=Pne(e,n),s=$u("");function l(d){return i.get(d)||null}function u(d,h){i.set(d,h)}function c(d){i.delete(d)}const f={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},async install(d,...h){if(d.__VUE_I18N_SYMBOL__=s,d.provide(d.__VUE_I18N_SYMBOL__,f),jt(h[0])){const y=h[0];f.__composerExtend=y.__composerExtend,f.__vueI18nExtend=y.__vueI18nExtend}let v=null;!n&&r&&(v=$ne(d,f.global)),__VUE_I18N_FULL_INSTALL__&&Ane(d,f,...h),__VUE_I18N_LEGACY_API__&&n&&d.mixin(_ne(a,a.__composer,f));const m=d.unmount;d.unmount=()=>{v&&v(),f.dispose(),m()}},get global(){return a},dispose(){o.stop()},__instances:i,__getInstance:l,__setInstance:u,__deleteInstance:c};return f}function cs(e={}){const t=br();if(t==null)throw ro(Oi.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ro(Oi.NOT_INSTALLED);const n=One(t),r=Mne(n),i=bB(t),o=Dne(e,i);if(o==="global")return SB(r,e,i),r;if(o==="parent"){let l=Lne(n,t,e.__useComponent);return l==null&&(l=r),l}const a=n;let s=a.__getInstance(t);if(s==null){const l=Er({},e);"__i18n"in i&&(l.__i18n=i.__i18n),r&&(l.__root=r),s=kI(l),a.__composerExtend&&(s[cE]=a.__composerExtend(s)),kne(a,t,s),a.__setInstance(t,s)}return s}function Pne(e,t,n){const r=Y5(),i=__VUE_I18N_LEGACY_API__&&t?r.run(()=>fE(e)):r.run(()=>kI(e));if(i==null)throw ro(Oi.UNEXPECTED_ERROR);return[r,i]}function One(e){const t=Ji(e.isCE?Ine:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ro(e.isCE?Oi.NOT_INSTALLED_WITH_PROVIDE:Oi.UNEXPECTED_ERROR);return t}function Dne(e,t){return Ob(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Mne(e){return e.mode==="composition"?e.global:e.global.__composer}function Lne(e,t,n=!1){let r=null;const i=t.root;let o=Nne(t,n);for(;o!=null;){const a=e;if(e.mode==="composition")r=a.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const s=a.__getInstance(o);s!=null&&(r=s.__composer,n&&r&&!r[_B]&&(r=null))}if(r!=null||i===o)break;o=o.parent}return r}function Nne(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function kne(e,t,n){lo(()=>{},t),Sh(()=>{const r=n;e.__deleteInstance(t);const i=r[cE];i&&(i(),delete r[cE])},t)}const Fne=["locale","fallbackLocale","availableLocales"],lL=["t","rt","d","n","tm","te"];function $ne(e,t){const n=Object.create(null);return Fne.forEach(i=>{const o=Object.getOwnPropertyDescriptor(t,i);if(!o)throw ro(Oi.UNEXPECTED_ERROR);const a=st(o.value)?{get(){return o.value.value},set(s){o.value.value=s}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,i,a)}),e.config.globalProperties.$i18n=n,lL.forEach(i=>{const o=Object.getOwnPropertyDescriptor(t,i);if(!o||!o.value)throw ro(Oi.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${i}`,o)}),()=>{delete e.config.globalProperties.$i18n,lL.forEach(i=>{delete e.config.globalProperties[`$${i}`]})}}vne();Yte(Ite);Xte(zte);Kte(lB);if(__INTLIFY_PROD_DEVTOOLS__){const e=Mc();e.__INTLIFY__=!0,Rte(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Tx=Fe(!1),uL=Fe(),Lb=()=>{const{t:e}=cs();return{showTip:(n,r={})=>{Tx.value=!0,uL.value=e(n,r),setTimeout(()=>{Tx.value=!1},1e4)},tipShowModel:Tx,tipContent:uL}},$I="https://ipv6.google.com/generate_204",Jo=0;var ts=(e=>(e.EN_US="en-US",e.ZH_CN="zh-CN",e.RU_RU="ru-RU",e))(ts||{}),nu=(e=>(e.MI_SANS="MiSans",e.SARASA_UI="SarasaUi",e.PING_FANG="PingFang",e.FIRA_SANS="FiraSans",e.SYSTEM_UI="SystemUI",e))(nu||{}),vt=(e=>(e.Details="details",e.Close="close",e.Type="type",e.Process="process",e.Host="host",e.Rule="rule",e.Chains="chains",e.DlSpeed="dlSpeed",e.UlSpeed="ulSpeed",e.Download="dl",e.Upload="ul",e.ConnectTime="connectTime",e.SourceIP="sourceIP",e.SourcePort="sourcePort",e.Destination="destination",e))(vt||{}),ru=(e=>(e.DEFAULT="defaultsort",e.NAME_ASC="nameasc",e.NAME_DESC="namedesc",e.LATENCY_ASC="latencyasc",e.LATENCY_DESC="latencydesc",e))(ru||{}),ug=(e=>(e.AUTO="auto",e.DOTS="dots",e.BAR="bar",e))(ug||{}),rh=(e=>(e.RULES="rules",e.PROVIDER="ruleProvider",e))(rh||{}),df=(e=>(e.PROXIES="proxies",e.PROVIDER="proxyProvider",e))(df||{}),zi=(e=>(e.HOST="host",e.CHAINS="chains",e.RULE="rule",e.TYPE="type",e.CONNECT_TIME="connectTime",e.DOWNLOAD="download",e.DOWNLOAD_SPEED="downloadSpeed",e.UPLOAD="upload",e.UPLOAD_SPEED="uploadSpeed",e.SOURCE_IP="sourceIP",e))(zi||{}),Lc=(e=>(e.ASC="asc",e.DESC="desc",e))(Lc||{}),zs=(e=>(e.ACTIVE="active",e.CLOSED="closed",e))(zs||{}),Nc=(e=>(e.Info="info",e.Error="error",e.Warning="warning",e.Debug="debug",e.Silent="silent",e))(Nc||{}),un=(e=>(e.overview="overview",e.proxies="proxies",e.connections="connections",e.logs="logs",e.rules="rules",e.settings="settings",e.setup="setup",e))(un||{});const TB={overview:fM,proxies:wQ,connections:H4,rules:EQ,logs:SQ,settings:_Q,setup:fM};var cg=(e=>(e.SMALL="small",e.LARGE="large",e))(cg||{}),Zg=(e=>(e.SMALL="small",e.LARGE="large",e))(Zg||{}),qg=(e=>(e.NORMAL="normal",e.REVERSE="reverse",e))(qg||{});function Nb(e){return nI()?(rI(e),!0):!1}const Cx=new WeakMap,Bne=(...e)=>{var t;const n=e[0],r=(t=br())==null?void 0:t.proxy;if(r==null&&!_I())throw new Error("injectLocal must be called in setup");return r&&Cx.has(r)&&n in Cx.get(r)?Cx.get(r)[n]:Ji(...e)};function Cu(e){return typeof e=="function"?e():N(e)}const CB=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Vne=e=>e!=null,Une=Object.prototype.toString,Hne=e=>Une.call(e)==="[object Object]",s1=()=>{};function Gne(e,t){function n(...r){return new Promise((i,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(i).catch(o)})}return n}const EB=e=>e();function zne(e=EB){const t=Fe(!0);function n(){t.value=!1}function r(){t.value=!0}const i=(...o)=>{t.value&&e(...o)};return{isActive:zg(t),pause:n,resume:r,eventFilter:i}}function cL(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function AB(e){return br()}function Wne(...e){if(e.length!==1)return f$(...e);const t=e[0];return typeof t=="function"?zg(uI(()=>({get:t,set:s1}))):Fe(t)}function jne(e,t,n={}){const{eventFilter:r=EB,...i}=n;return Yt(e,Gne(r,t),i)}function Yne(e,t,n={}){const{eventFilter:r,...i}=n,{eventFilter:o,pause:a,resume:s,isActive:l}=zne(r);return{stop:jne(e,t,{...i,eventFilter:o}),pause:a,resume:s,isActive:l}}function Xne(e,t){AB()&&jg(e,t)}function BI(e,t=!0,n){AB()?lo(e,n):t?e():gs(e)}const cl=CB?window:void 0,IB=CB?window.document:void 0;function au(e){var t;const n=Cu(e);return(t=n==null?void 0:n.$el)!=null?t:n}function gu(...e){let t,n,r,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,i]=e,t=cl):[t,n,r,i]=e,!t)return s1;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],a=()=>{o.forEach(c=>c()),o.length=0},s=(c,f,d,h)=>(c.addEventListener(f,d,h),()=>c.removeEventListener(f,d,h)),l=Yt(()=>[au(t),Cu(i)],([c,f])=>{if(a(),!c)return;const d=Hne(f)?{...f}:f;o.push(...n.flatMap(h=>r.map(v=>s(c,h,v,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),a()};return Nb(u),u}function Kne(){const e=Fe(!1),t=br();return t&&lo(()=>{e.value=!0},t),e}function VI(e){const t=Kne();return Ve(()=>(t.value,!!e()))}function Zne(e,t,n={}){const{window:r=cl,...i}=n;let o;const a=VI(()=>r&&"MutationObserver"in r),s=()=>{o&&(o.disconnect(),o=void 0)},l=Ve(()=>{const d=Cu(e),h=(Array.isArray(d)?d:[d]).map(au).filter(Vne);return new Set(h)}),u=Yt(()=>l.value,d=>{s(),a.value&&d.size&&(o=new MutationObserver(t),d.forEach(h=>o.observe(h,i)))},{immediate:!0,flush:"post"}),c=()=>o==null?void 0:o.takeRecords(),f=()=>{u(),s()};return Nb(f),{isSupported:a,stop:f,takeRecords:c}}const qne=Symbol("vueuse-ssr-width");function Jne(){const e=_I()?Bne(qne,null):null;return typeof e=="number"?e:void 0}function Qne(e,t={}){const{window:n=cl,ssrWidth:r=Jne()}=t,i=VI(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),o=Fe(typeof r=="number");let a;const s=Fe(!1),l=f=>{s.value=f.matches},u=()=>{a&&("removeEventListener"in a?a.removeEventListener("change",l):a.removeListener(l))},c=wb(()=>{if(o.value){o.value=!i.value;const f=Cu(e).split(",");s.value=f.some(d=>{const h=d.includes("not all"),v=d.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),m=d.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let y=!!(v||m);return v&&y&&(y=r>=cL(v[1])),m&&y&&(y=r<=cL(m[1])),h?!y:y});return}i.value&&(u(),a=n.matchMedia(Cu(e)),"addEventListener"in a?a.addEventListener("change",l):a.addListener(l),s.value=a.matches)});return Nb(()=>{c(),u(),a=void 0}),Ve(()=>s.value)}const Ay=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Iy="__vueuse_ssr_handlers__",ere=tre();function tre(){return Iy in Ay||(Ay[Iy]=Ay[Iy]||{}),Ay[Iy]}function nre(e,t){return ere[e]||t}function rre(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ire={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},fL="vueuse-storage";function Mt(e,t,n,r={}){var i;const{flush:o="pre",deep:a=!0,listenToStorageChanges:s=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=cl,eventFilter:d,onError:h=R=>{console.error(R)},initOnMounted:v}=r,m=(c?Ef:Fe)(typeof t=="function"?t():t);if(!n)try{n=nre("getDefaultStorage",()=>{var R;return(R=cl)==null?void 0:R.localStorage})()}catch(R){h(R)}if(!n)return m;const y=Cu(t),_=rre(y),b=(i=r.serializer)!=null?i:ire[_],{pause:w,resume:S}=Yne(m,()=>T(m.value),{flush:o,deep:a,eventFilter:d});f&&s&&BI(()=>{n instanceof Storage?gu(f,"storage",P):gu(f,fL,I),v&&P()}),v||P();function C(R,O){if(f){const M={key:e,oldValue:R,newValue:O,storageArea:n};f.dispatchEvent(n instanceof Storage?new StorageEvent("storage",M):new CustomEvent(fL,{detail:M}))}}function T(R){try{const O=n.getItem(e);if(R==null)C(O,null),n.removeItem(e);else{const M=b.write(R);O!==M&&(n.setItem(e,M),C(O,M))}}catch(O){h(O)}}function A(R){const O=R?R.newValue:n.getItem(e);if(O==null)return l&&y!=null&&n.setItem(e,b.write(y)),y;if(!R&&u){const M=b.read(O);return typeof u=="function"?u(M,y):_==="object"&&!Array.isArray(M)?{...y,...M}:M}else return typeof O!="string"?O:b.read(O)}function P(R){if(!(R&&R.storageArea!==n)){if(R&&R.key==null){m.value=y;return}if(!(R&&R.key!==e)){w();try{(R==null?void 0:R.newValue)!==b.write(m.value)&&(m.value=A(R))}catch(O){h(O)}finally{R?gs(S):S()}}}}function I(R){P(R.detail)}return m}function ore(e={}){const{document:t=IB}=e;if(!t)return Fe("visible");const n=Fe(t.visibilityState);return gu(t,"visibilitychange",()=>{n.value=t.visibilityState}),n}function are(e,t,n={}){const{window:r=cl,...i}=n;let o;const a=VI(()=>r&&"ResizeObserver"in r),s=()=>{o&&(o.disconnect(),o=void 0)},l=Ve(()=>{const f=Cu(e);return Array.isArray(f)?f.map(d=>au(d)):[au(f)]}),u=Yt(l,f=>{if(s(),a.value&&r){o=new ResizeObserver(t);for(const d of f)d&&o.observe(d,i)}},{immediate:!0,flush:"post"}),c=()=>{s(),u()};return Nb(c),{isSupported:a,stop:c}}function sre(e,t={width:0,height:0},n={}){const{window:r=cl,box:i="content-box"}=n,o=Ve(()=>{var f,d;return(d=(f=au(e))==null?void 0:f.namespaceURI)==null?void 0:d.includes("svg")}),a=Fe(t.width),s=Fe(t.height),{stop:l}=are(e,([f])=>{const d=i==="border-box"?f.borderBoxSize:i==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(r&&o.value){const h=au(e);if(h){const v=h.getBoundingClientRect();a.value=v.width,s.value=v.height}}else if(d){const h=Array.isArray(d)?d:[d];a.value=h.reduce((v,{inlineSize:m})=>v+m,0),s.value=h.reduce((v,{blockSize:m})=>v+m,0)}else a.value=f.contentRect.width,s.value=f.contentRect.height},n);BI(()=>{const f=au(e);f&&(a.value="offsetWidth"in f?f.offsetWidth:t.width,s.value="offsetHeight"in f?f.offsetHeight:t.height)});const u=Yt(()=>au(e),f=>{a.value=f?t.width:0,s.value=f?t.height:0});function c(){l(),u()}return{width:a,height:s,stop:c}}function lre(e,t={}){const{threshold:n=50,onSwipe:r,onSwipeEnd:i,onSwipeStart:o,passive:a=!0,window:s=cl}=t,l=Na({x:0,y:0}),u=Na({x:0,y:0}),c=Ve(()=>l.x-u.x),f=Ve(()=>l.y-u.y),{max:d,abs:h}=Math,v=Ve(()=>d(h(c.value),h(f.value))>=n),m=Fe(!1),y=Ve(()=>v.value?h(c.value)>h(f.value)?c.value>0?"left":"right":f.value>0?"up":"down":"none"),_=I=>[I.touches[0].clientX,I.touches[0].clientY],b=(I,R)=>{l.x=I,l.y=R},w=(I,R)=>{u.x=I,u.y=R};let S;const C=ure(s==null?void 0:s.document);a?S=C?{passive:!0}:{capture:!1}:S=C?{passive:!1,capture:!0}:{capture:!0};const T=I=>{m.value&&(i==null||i(I,y.value)),m.value=!1},A=[gu(e,"touchstart",I=>{if(I.touches.length!==1)return;const[R,O]=_(I);b(R,O),w(R,O),o==null||o(I)},S),gu(e,"touchmove",I=>{if(I.touches.length!==1)return;const[R,O]=_(I);w(R,O),S.capture&&!S.passive&&Math.abs(c.value)>Math.abs(f.value)&&I.preventDefault(),!m.value&&v.value&&(m.value=!0),m.value&&(r==null||r(I))},S),gu(e,["touchend","touchcancel"],T,S)];return{isPassiveEventSupported:C,isSwiping:m,direction:y,coordsStart:l,coordsEnd:u,lengthX:c,lengthY:f,stop:()=>A.forEach(I=>I())}}function ure(e){if(!e)return!1;let t=!1;const n={get passive(){return t=!0,!1}};return e.addEventListener("x",s1,n),e.removeEventListener("x",s1),t}function cre(e=null,t={}){var n,r,i;const{document:o=IB,restoreOnUnmount:a=f=>f}=t,s=(n=o==null?void 0:o.title)!=null?n:"",l=Wne((r=e??(o==null?void 0:o.title))!=null?r:null),u=e&&typeof e=="function";function c(f){if(!("titleTemplate"in t))return f;const d=t.titleTemplate||"%s";return typeof d=="function"?d(f):Cu(d).replace(/%s/g,f)}return Yt(l,(f,d)=>{f!==d&&o&&(o.title=c(typeof f=="string"?f:""))},{immediate:!0}),t.observe&&!t.titleTemplate&&o&&!u&&Zne((i=o.head)==null?void 0:i.querySelector("title"),()=>{o&&o.title!==l.value&&(l.value=c(o.title))},{childList:!0}),Xne(()=>{if(a){const f=a(s,l.value||"");f!=null&&o&&(o.title=f)}}),l}function fre(e={}){const{window:t=cl,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:i=!0,includeScrollbar:o=!0,type:a="inner"}=e,s=Fe(n),l=Fe(r),u=()=>{if(t)if(a==="outer")s.value=t.outerWidth,l.value=t.outerHeight;else if(a==="visual"&&t.visualViewport){const{width:c,height:f,scale:d}=t.visualViewport;s.value=Math.round(c*d),l.value=Math.round(f*d)}else o?(s.value=t.innerWidth,l.value=t.innerHeight):(s.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight)};if(u(),BI(u),gu("resize",u,{passive:!0}),t&&a==="visual"&&t.visualViewport&&gu(t.visualViewport,"resize",u,{passive:!0}),i){const c=Qne("(orientation: portrait)");Yt(c,()=>u())}return{width:s,height:l}}const RB=fre(),dre=Ve(()=>RB.width.value>1280),hre=Ve(()=>RB.width.value<768),PB="background-image",l1="local-image",OB=e=>{const t=new Map,r=new Promise((f,d)=>{const h=indexedDB.open(e,1);h.onupgradeneeded=()=>{const v=h.result;v.objectStoreNames.contains(e)||v.createObjectStore(e,{keyPath:"key"})},h.onsuccess=()=>{const y=h.result.transaction(e,"readonly").objectStore(e).openCursor();y.onsuccess=_=>{const b=_.target.result;b?(t.set(b.key,b.value.value),b.continue()):f(h.result)},y.onerror=()=>d(y.error)},h.onerror=()=>d(h.error)}),i=async(f,d)=>{const h=await r;return new Promise((v,m)=>{const _=h.transaction(e,f).objectStore(e),b=d(_);b.onsuccess=()=>v(b.result),b.onerror=()=>m(b.error)})};return{put:async(f,d)=>(t.set(f,d),i("readwrite",h=>h.put({key:f,value:d}))),get:async f=>(await r,t.get(f)),del:async f=>(t.delete(f),i("readwrite",d=>d.delete(f))),getAllKeys:async()=>(await r,Array.from(t.keys())),isExists:async f=>(await r,t.has(f)),clear:async()=>(t.clear(),i("readwrite",f=>f.clear()))}},UI=OB("base64"),pre=e=>UI.put(PB,e),vre=()=>UI.get(PB),gre=()=>UI.clear(),Jg=OB("iconCache"),mre=Jg.put,yre=e=>Jg.get(e),_re=()=>Jg.clear(),bre=()=>Jg.getAllKeys(),Sre=e=>Jg.del(e),Nd=Mt("config/theme","default"),su=Mt("config/language",Object.values(ts).includes(navigator.language)?navigator.language:ts.EN_US),dL=Mt("config/is-sidebar-collapsed",!0),mu=Ve({get:()=>hre.value?!0:dL.value,set:e=>{dL.value=e}}),fv=Mt("config/font",nu.MI_SANS),Aa=Mt("config/custom-background-image",""),Y0=Mt("config/dashboard-transparent",90),X0=Mt("config/auto-upgrade",!1),K0=Mt("config/auto-upgrade-core",!1),yd=Mt("config/split-overview-page",!1),ip=Mt("config/show-ip-and-connection-info",!0),Z0=Mt("config/auto-ip-check",!0),q0=Mt("config/auto-connection-check",!0),J0=Mt("config/show-global-proxy",!0),Ex=Mt("config/collapse-group-map",{}),dv=Mt("config/two-columns",!0),hv=Mt("config/speedtest-url","http://www.gstatic.com/generate_204"),pv=Mt("config/speedtest-timeout",5e3),Q0=Mt("config/proxy-sort-type",ru.DEFAULT),e_=Mt("config/automatic-disconnection",!0),vv=Mt("config/truncate-proxy-name",!0),gv=Mt("config/proxy-preview-type",ug.AUTO),t_=Mt("config/hide-unavailable-proxies",!1),lu=Mt("config/low-latency",400),Xs=Mt("config/medium-latency",800),Zc=Mt("config/ipv6-test",!1),mv=Mt("config/proxy-card-size",Zg.LARGE),n_=Mt("config/show-hidden-group",!1),yv=Mt("config/icon-size",16),r_=Mt("config/icon-margin-right",4),kc=Mt("config/use-connecticon-card",window.innerWidth<640),_v=Mt("config/proxy-chain-direction",qg.NORMAL),i_=Mt("config/connecticon-table-size",cg.SMALL),Cd=Mt("config/connection-table-columns",[vt.Close,vt.Host,vt.Type,vt.Rule,vt.Chains,vt.DlSpeed,vt.UlSpeed,vt.Download,vt.Upload,vt.ConnectTime]),Fs=Mt("config/connection-card-lines",[[vt.Host,vt.DlSpeed],[vt.Chains,vt.ConnectTime,vt.Details,vt.Close]]),So=Mt("config/source-ip-label-map",{}),o_=Mt("config/log-retention-limit",1e3),wre={key:0,class:"toast-sm toast toast-start toast-top z-50 max-w-64 whitespace-normal text-sm"},xre={class:"breaks-all alert alert-warning flex w-72 whitespace-normal p-2"},Tre={href:"https://github.com/Zephyruso/zashboard/blob/main/README.md",target:"_blank",class:"flex-1"},Cre=it({__name:"App",setup(e){const t=Fe(),{tipContent:n,tipShowModel:r}=Lb(),i={[nu.MI_SANS]:"font-MiSans",[nu.SARASA_UI]:"font-SarasaUI",[nu.PING_FANG]:"font-PingFang",[nu.FIRA_SANS]:"font-FiraSans",[nu.SYSTEM_UI]:"font-SystemUI"},o=Ve(()=>i[fv.value]),a=La().format("YYYY-MM-DD"),s=Fe(""),l=async()=>{s.value=await vre()||""};Yt(()=>Aa.value,()=>{Aa.value.includes(l1)&&l()},{immediate:!0});const u=Ve(()=>Aa.value.includes(l1)?s.value:Aa.value+`?v=${a}`),c=()=>{const f=getComputedStyle(t.value).getPropertyValue("background-color").trim(),d=document.querySelector('meta[name="theme-color"]');d&&d.setAttribute("content",f)};return lo(()=>{Yt(Nd,()=>{document.body.setAttribute("data-theme",Nd.value),c()},{immediate:!0})}),(f,d)=>(K(),ae("div",{ref_key:"app",ref:t,class:rt(`flex h-dvh w-screen overflow-x-hidden bg-base-100 ${o.value} custom-background-${N(Y0)} ${N(Aa)&&"custom-background bg-cover"}`),style:Gr(`background-image: url('${u.value}');`)},[ye(N(II)),N(r)?(K(),ae("div",wre,[L("div",xre,[L("a",Tre,re(f.$t(N(n))),1),L("button",{class:"btn btn-circle btn-ghost btn-sm",onClick:d[0]||(d[0]=h=>r.value=!1)},[ye(N(AQ),{class:"w-4 cursor-pointer"})])])])):mt("",!0)],6))}}),Ere={setup:"Setup",overview:"Overview",proxies:"Proxies",rules:"Rules",connections:"Connections",logs:"Logs",protocol:"Protocol",host:"Host",port:"Port",password:"Password",submit:"Submit",cancel:"Cancel",download:"Download",upload:"Upload",downloadSpeed:"Download Speed",uploadSpeed:"Upload Speed",memoryUsage:"Memory",version:"Version",quickFilter:"Quick Filter",noContent:"No Content",flushFakeIP:"Flush Fake IP",chains:"Chains",sortBy:"Sort By",rule:"Rule",sourceIP:"Source IP",activeConnections:"Active Conns",closedConnections:"Closed Conns",logLevel:"Log Level",twoColumnProxyGroup:"Two Column Proxy Group",type:"Type",process:"Process",connectTime:"Time",sourcePort:"Source Port",destination:"Destination",inboundUser:"Inbound User",dl:"DL",ul:"UL",dlSpeed:"DL Speed",ulSpeed:"UL Speed",settings:"Settings",speedtestUrl:"Speedtest URL",speedtestTimeout:"Speedtest Timeout",connectionStyle:"Connection Style",card:"Card",table:"Table",customTableColumns:"Custom Table Columns",customCardLines:"Custom Card Lines",close:"Close",details:"Details",showGlobalProxy:"Show Global Proxy Node",theme:"Theme",proxyProvider:"Proxy Provider",ruleProvider:"Rule Provider",expire:"Expire",noExpire:"Null",updated:"Updated",upgradeUI:"Upgrade Dashboard",updateAllProviders:"Upgrade All Providers",reloadConfigs:"Reload Configs",mode:"Mode",proxySortType:"Proxy Sort Type",defaultsort:"By Configs",nameasc:"Name Asc",namedesc:"Name Desc",latencydesc:"Latency Desc",latencyasc:"Latency Asc",language:"Language",automaticDisconnection:"Automatic Disconnection",backend:"Backend",tunMode:"Tun Mode",upgradeCore:"Upgrade Core",truncateProxyName:"Truncate Proxy Name",sourceIPLabels:"Source IP Labels",proxyPreviewType:"Proxy Preview Type",auto:"Auto",dots:"Dots",bar:"Bar",exportSettings:"Export Settings",importSettings:"Import Settings",clearIconCache:"Clear Icon Cache",hideUnavailable:"Hide Unavail",protocolTips:"You are trying to connect a http backend but the zashboard is served by https. This may cause connection error. Please allow the insecure content in your browser settings. The settings is on the left of the browser address bar.",global:"Global",direct:"Direct",quickFilterTip:"Quick filtering allows one-click exclusion of connections matching proxy chains, host, or destination IPs using regular expressions.",lowLatencyDesc:"Yellow threshold",mediumLatencyDesc:"Red threshold",fonts:"Fonts",unauthorizedTip:"Unauthorized, please login again.",restartCore:"Restart Core",autoUpgrade:"Auto Upgrade",secondaryPath:"Secondary Path",secondaryPathTip:'If present, start with a "/", otherwise leave it empty.',logRetentionLimit:"Log Retention Limit",DNSQuery:"DNS Query",currentBackendUnavailable:"Current backend is unavailable. Try to switch to another backend?",confirm:"Confirm",backendSwitchTo:"Automatic Switch to {backend}",ipv6Test:"IPv6 Test",socksPort:"Socks Port",httpPort:"HTTP Port",mixedPort:"Mixed Port",redirPort:"Redir Port",tproxyPort:"TProxy Port",tableSize:"Table Size",proxyCardSize:"Proxy Card Size",small:"Small",normal:"Normal",large:"Large",autoIPCheckWhenStart:"Auto Check IP When Start",autoConnectionCheckWhenStart:"Auto Check Connection When Start",chinaIP:"China IP",globalIP:"Global IP",networkInfo:"Network Info",autoSwitch:"Auto Switch",customBackgroundURL:"Custom Background URL",splitOverviewPage:"Split Overview Page",showHiddenGroup:"Show Hidden Group",showIPAndConnectionInfo:"Show IP and Connection Info",transparent:"Transparent",iconSize:"Icon Size",iconMarginRight:"Icon Margin Right",allowLan:"Allow Lan",proxyChainDirection:"Proxy Chain Direction",reverse:"Reverse"},Are={setup:"Настройка",overview:"Обзор",proxies:"Прокси",rules:"Правила",connections:"Подключения",logs:"Журнал",protocol:"Протокол",host:"Хост",port:"Порт",password:"Пароль",submit:"Отправить",cancel:"Отмена",download:"Загружено",upload:"Отправлено",downloadSpeed:"Скорость загрузки",uploadSpeed:"Скорость отдачи",memoryUsage:"Память",version:"Версия",quickFilter:"Быстрый фильтр",noContent:"Нет содержимого",flushFakeIP:"Очистить Fake IP",chains:"Цепочки",sortBy:"Сортировать по",rule:"Правило",sourceIP:"Исходный IP",activeConnections:"Активные",closedConnections:"Закрытые",logLevel:"Уровень журнала",twoColumnProxyGroup:"Группа прокси в два столбца",type:"Тип",process:"Процесс",connectTime:"Время",sourcePort:"Исходный порт",destination:"Назначение",inboundUser:"Входящий пользователь",dl:"Загр",ul:"Отдч",dlSpeed:"Загрузка",ulSpeed:"Отдача",settings:"Настройки",speedtestUrl:"URL теста скорости",speedtestTimeout:"Таймаут теста скорости",connectionStyle:"Стиль подключения",card:"Карточка",table:"Таблица",customTableColumns:"Пользовательские столбцы таблицы",customCardLines:"Пользовательские строчки карточки",close:"Закрыть",details:"Детали",showGlobalProxy:"Показать глобальный прокси-узел",theme:"Тема",proxyProvider:"Провайдер прокси",ruleProvider:"Провайдер правил",expire:"Истекает",noExpire:"Нет",updated:"Обновлено",upgradeUI:"Обновить панель",updateAllProviders:"Обновить все провайдеры",reloadConfigs:"Перезагрузить конфигурации",mode:"Режим",proxySortType:"Тип сортировки прокси",defaultsort:"По конфигурациям",nameasc:"Имя по возрастанию",namedesc:"Имя по убыванию",latencydesc:"Задержка по убыванию",latencyasc:"Задержка по возрастанию",language:"Язык",automaticDisconnection:"Автоматическое отключение",backend:"Бэкенд",tunMode:"Режим Tun",upgradeCore:"Обновить ядро",truncateProxyName:"Усечение имени прокси",sourceIPLabels:"Метки исходного IP",proxyPreviewType:"Тип предварительного просмотра прокси",auto:"Авто",dots:"Точки",bar:"Полоса",exportSettings:"Экспорт настроек",importSettings:"Импорт настроек",clearIconCache:"Очистить кэш иконок",hideUnavailable:"Скрыть недоступные",protocolTips:"Вы пытаетесь подключиться к http-бэкенду, но панель управления обслуживается через https. Это может вызвать ошибку подключения. Пожалуйста, разрешите небезопасный контент в настройках браузера. Настройки находятся слева от адресной строки.",global:"Глобальный",direct:"Прямой",quickFilterTip:"Быстрая фильтрация позволяет одним щелчком исключать подключения, соответствующие цепочкам прокси, хосту или IP-адресам назначения с использованием регулярных выражений.",lowLatencyDesc:"Желтый порог",mediumLatencyDesc:"Красный порог",fonts:"Шрифты",unauthorizedTip:"Не авторизован, пожалуйста, войдите снова.",restartCore:"Перезапустить ядро",autoUpgrade:"Автоматическое обновление",secondaryPath:"Дополнительный путь",secondaryPathTip:'Если присутствует, начните с "/", в противном случае оставьте пустым.',logRetentionLimit:"Лимит хранения журнала",DNSQuery:"DNS-запрос",currentBackendUnavailable:"Текущий бэкенд недоступен. Попробуйте переключиться на другой бэкенд?",confirm:"Подтвердить",backendSwitchTo:"Автоматическое переключение на {backend}",ipv6Test:"IPv6-тест",socksPort:"Порт Socks",httpPort:"Порт HTTP",mixedPort:"Порт Mixed",redirPort:"Порт Redir",tproxyPort:"Порт TProxy",tableSize:"Размер таблицы",proxyCardSize:"Размер карточки прокси",small:"Маленький",normal:"Нормальный",large:"Большой",autoIPCheckWhenStart:"Автоматическая проверка IP при запуске",autoConnectionCheckWhenStart:"Автоматическая проверка соединений при запуске",chinaIP:"IP для Китая",globalIP:"Мировой IP",networkInfo:"Информация о сети",autoSwitch:"Автоматическое",customBackgroundURL:"Пользовательский URL фона",splitOverviewPage:"Разделить страницу с обзором",showHiddenGroup:"Показать скрытые группы",showIPAndConnectionInfo:"Показать IP и информацию о соединениях",transparent:"Прозрачность",iconSize:"Размер иконки",iconMarginRight:"Отступ правой иконки",allowLan:"Разрешить локальную сеть",proxyChainDirection:"Направление цепочки прокси",reverse:"Обратное"},Ire={setup:"配置",overview:"概览",proxies:"代理",rules:"规则",connections:"连接",logs:"日志",protocol:"协议",host:"主机",port:"端口",password:"密码",submit:"提交",cancel:"取消",download:"下载",upload:"上传",downloadSpeed:"下载速度",uploadSpeed:"上传速度",memoryUsage:"内存使用",version:"版本",quickFilter:"快速过滤",noContent:"无内容",flushFakeIP:"清空Fake IP",chains:"代理链",sortBy:"排序方式",rule:"规则",sourceIP:"源IP",activeConnections:"活跃连接",closedConnections:"已关闭连接",logLevel:"日志等级",twoColumnProxyGroup:"双列显示代理组",type:"类型",process:"进程",connectTime:"连接时间",sourcePort:"源端口",destination:"目标",inboundUser:"入站用户",dl:"下载",ul:"上传",dlSpeed:"下载速度",ulSpeed:"上传速度",settings:"设置",speedtestUrl:"测速地址",speedtestTimeout:"测速超时",connectionStyle:"连接样式",card:"卡片",table:"表格",customTableColumns:"自定义表格列",customCardLines:"自定义卡片行",close:"关闭",details:"详情",showGlobalProxy:"显示全局代理节点",theme:"主题",proxyProvider:"代理提供商",ruleProvider:"规则提供商",expire:"到期时间",noExpire:"不限时",updated:"更新于",upgradeUI:"更新面板",updateAllProviders:"更新所有提供商",reloadConfigs:"重载配置",mode:"模式",proxySortType:"代理排序方式",defaultsort:"按配置排序",nameasc:"按名称升序",namedesc:"按名称降序",latencydesc:"按延迟降序",latencyasc:"按延迟升序",language:"语言",automaticDisconnection:"自动断开连接",backend:"后端",upgradeCore:"更新核心",tunMode:"Tun 模式",truncateProxyName:"截断代理名称",sourceIPLabels:"源IP标签",proxyPreviewType:"代理预览类型",auto:"自动",dots:"点",bar:"条",exportSettings:"导出设置",importSettings:"导入设置",clearIconCache:"清空图标缓存",hideUnavailable:"隐藏不可用",protocolTips:"您正在尝试连接一个http后端但zashboard是通过https提供的,这可能会导致连接错误,请在浏览器设置中允许不安全的内容,设置在浏览器地址栏左侧。",global:"全局",direct:"直连",quickFilterTip:"快速过滤使用正则表达式进行匹配,支持一键排除符合代理链、主机或目标 IP 的连接。",lowLatencyDesc:"黄色的阈值",mediumLatencyDesc:"红色的阈值",fonts:"字体",unauthorizedTip:"未授权,请重新登录",restartCore:"重启核心",autoUpgrade:"自动更新",secondaryPath:"二级路径",secondaryPathTip:"如果有的话以/开头,没有则留空不填",logRetentionLimit:"日志保留条数",DNSQuery:"DNS 查询",currentBackendUnavailable:"当前后端不可用,尝试切换到其他后端?",confirm:"确定",backendSwitchTo:"自动切换到{backend}",ipv6Test:"IPv6 测试",socksPort:"Socks 端口",httpPort:"HTTP 端口",mixedPort:"Mixed 端口",redirPort:"Redir 端口",tproxyPort:"TProxy 端口",tableSize:"表格尺寸",proxyCardSize:"节点卡片尺寸",small:"小",normal:"正常",large:"大",autoIPCheckWhenStart:"自动检查 IP",autoConnectionCheckWhenStart:"自动检查连接",chinaIP:"中国大陆 IP",globalIP:"全球 IP",networkInfo:"网络信息",autoSwitch:"自动切换",customBackgroundURL:"自定义背景 URL",splitOverviewPage:"分离概览页",showHiddenGroup:"显示隐藏分组",showIPAndConnectionInfo:"显示 IP 和连接信息",transparent:"透明度",iconSize:"图标尺寸",iconMarginRight:"图标间距",allowLan:"允许局域网",proxyChainDirection:"代理链方向",reverse:"反向"},HI=Rne({locale:su.value,messages:{[ts.EN_US]:Ere,[ts.ZH_CN]:Ire,[ts.RU_RU]:Are}});var Vp={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */var Rre=Vp.exports,hL;function Pre(){return hL||(hL=1,function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",u=500,c="__lodash_placeholder__",f=1,d=2,h=4,v=1,m=2,y=1,_=2,b=4,w=8,S=16,C=32,T=64,A=128,P=256,I=512,R=30,O="...",M=800,$=16,F=1,z=2,B=3,Y=1/0,j=9007199254740991,se=17976931348623157e292,ge=NaN,ve=4294967295,De=ve-1,Ne=ve>>>1,ze=[["ary",A],["bind",y],["bindKey",_],["curry",w],["curryRight",S],["flip",I],["partial",C],["partialRight",T],["rearg",P]],Me="[object Arguments]",je="[object Array]",ce="[object AsyncFunction]",Ee="[object Boolean]",Se="[object Date]",Te="[object DOMException]",Oe="[object Error]",$e="[object Function]",H="[object GeneratorFunction]",G="[object Map]",le="[object Number]",we="[object Null]",pe="[object Object]",U="[object Promise]",W="[object Proxy]",q="[object RegExp]",fe="[object Set]",_e="[object String]",Pe="[object Symbol]",Z="[object Undefined]",de="[object WeakMap]",Be="[object WeakSet]",Xe="[object ArrayBuffer]",ht="[object DataView]",ee="[object Float32Array]",ie="[object Float64Array]",he="[object Int8Array]",Ce="[object Int16Array]",He="[object Int32Array]",ne="[object Uint8Array]",Ae="[object Uint8ClampedArray]",ke="[object Uint16Array]",Qe="[object Uint32Array]",Ge=/\b__p \+= '';/g,We=/\b(__p \+=) '' \+/g,et=/(__e\(.*?\)|\b__t\)) \+\n'';/g,It=/&(?:amp|lt|gt|quot|#39);/g,Pt=/[&<>"']/g,Nn=RegExp(It.source),fa=RegExp(Pt.source),Pn=/<%-([\s\S]+?)%>/g,pr=/<%([\s\S]+?)%>/g,Rf=/<%=([\s\S]+?)%>/g,Sl=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Va=/^\w*$/,bm=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pf=/[\\^$.*+?()[\]{}|]/g,jS=RegExp(Pf.source),Mi=/^\s+/,Of=/\s/,Sm=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,wm=/\{\n\/\* \[wrapped with (.+)\] \*/,Lh=/,? & /,xm=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,da=/[()=,{}\[\]\/\s]/,Tm=/\\(\\)?/g,Cm=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nh=/\w*$/,Em=/^[-+]0x[0-9a-f]+$/i,YS=/^0b[01]+$/i,pt=/^\[object .+?Constructor\]$/,te=/^0o[0-7]+$/i,Ue=/^(?:0|[1-9]\d*)$/,at=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Sn=/($^)/,Rr=/['\n\r\u2028\u2029\\]/g,Qn="\\ud800-\\udfff",Wr="\\u0300-\\u036f",Oo="\\ufe20-\\ufe2f",Gu="\\u20d0-\\u20ff",Pr=Wr+Oo+Gu,kh="\\u2700-\\u27bf",Fh="a-z\\xdf-\\xf6\\xf8-\\xff",az="\\xac\\xb1\\xd7\\xf7",sz="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",lz="\\u2000-\\u206f",uz=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",QP="A-Z\\xc0-\\xd6\\xd8-\\xde",eO="\\ufe0e\\ufe0f",tO=az+sz+lz+uz,XS="['’]",cz="["+Qn+"]",nO="["+tO+"]",Am="["+Pr+"]",rO="\\d+",fz="["+kh+"]",iO="["+Fh+"]",oO="[^"+Qn+tO+rO+kh+Fh+QP+"]",KS="\\ud83c[\\udffb-\\udfff]",dz="(?:"+Am+"|"+KS+")",aO="[^"+Qn+"]",ZS="(?:\\ud83c[\\udde6-\\uddff]){2}",qS="[\\ud800-\\udbff][\\udc00-\\udfff]",Df="["+QP+"]",sO="\\u200d",lO="(?:"+iO+"|"+oO+")",hz="(?:"+Df+"|"+oO+")",uO="(?:"+XS+"(?:d|ll|m|re|s|t|ve))?",cO="(?:"+XS+"(?:D|LL|M|RE|S|T|VE))?",fO=dz+"?",dO="["+eO+"]?",pz="(?:"+sO+"(?:"+[aO,ZS,qS].join("|")+")"+dO+fO+")*",vz="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",gz="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",hO=dO+fO+pz,mz="(?:"+[fz,ZS,qS].join("|")+")"+hO,yz="(?:"+[aO+Am+"?",Am,ZS,qS,cz].join("|")+")",_z=RegExp(XS,"g"),bz=RegExp(Am,"g"),JS=RegExp(KS+"(?="+KS+")|"+yz+hO,"g"),Sz=RegExp([Df+"?"+iO+"+"+uO+"(?="+[nO,Df,"$"].join("|")+")",hz+"+"+cO+"(?="+[nO,Df+lO,"$"].join("|")+")",Df+"?"+lO+"+"+uO,Df+"+"+cO,gz,vz,rO,mz].join("|"),"g"),wz=RegExp("["+sO+Qn+Pr+eO+"]"),xz=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Tz=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Cz=-1,Vn={};Vn[ee]=Vn[ie]=Vn[he]=Vn[Ce]=Vn[He]=Vn[ne]=Vn[Ae]=Vn[ke]=Vn[Qe]=!0,Vn[Me]=Vn[je]=Vn[Xe]=Vn[Ee]=Vn[ht]=Vn[Se]=Vn[Oe]=Vn[$e]=Vn[G]=Vn[le]=Vn[pe]=Vn[q]=Vn[fe]=Vn[_e]=Vn[de]=!1;var kn={};kn[Me]=kn[je]=kn[Xe]=kn[ht]=kn[Ee]=kn[Se]=kn[ee]=kn[ie]=kn[he]=kn[Ce]=kn[He]=kn[G]=kn[le]=kn[pe]=kn[q]=kn[fe]=kn[_e]=kn[Pe]=kn[ne]=kn[Ae]=kn[ke]=kn[Qe]=!0,kn[Oe]=kn[$e]=kn[de]=!1;var Ez={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Az={"&":"&","<":"<",">":">",'"':""","'":"'"},Iz={"&":"&","<":"<",">":">",""":'"',"'":"'"},Rz={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Pz=parseFloat,Oz=parseInt,pO=typeof hy=="object"&&hy&&hy.Object===Object&&hy,Dz=typeof self=="object"&&self&&self.Object===Object&&self,kr=pO||Dz||Function("return this")(),QS=t&&!t.nodeType&&t,zu=QS&&!0&&e&&!e.nodeType&&e,vO=zu&&zu.exports===QS,ew=vO&&pO.process,Do=function(){try{var oe=zu&&zu.require&&zu.require("util").types;return oe||ew&&ew.binding&&ew.binding("util")}catch{}}(),gO=Do&&Do.isArrayBuffer,mO=Do&&Do.isDate,yO=Do&&Do.isMap,_O=Do&&Do.isRegExp,bO=Do&&Do.isSet,SO=Do&&Do.isTypedArray;function uo(oe,xe,me){switch(me.length){case 0:return oe.call(xe);case 1:return oe.call(xe,me[0]);case 2:return oe.call(xe,me[0],me[1]);case 3:return oe.call(xe,me[0],me[1],me[2])}return oe.apply(xe,me)}function Mz(oe,xe,me,nt){for(var Lt=-1,dn=oe==null?0:oe.length;++Lt-1}function tw(oe,xe,me){for(var nt=-1,Lt=oe==null?0:oe.length;++nt-1;);return me}function RO(oe,xe){for(var me=oe.length;me--&&Mf(xe,oe[me],0)>-1;);return me}function Hz(oe,xe){for(var me=oe.length,nt=0;me--;)oe[me]===xe&&++nt;return nt}var Gz=ow(Ez),zz=ow(Az);function Wz(oe){return"\\"+Rz[oe]}function jz(oe,xe){return oe==null?n:oe[xe]}function Lf(oe){return wz.test(oe)}function Yz(oe){return xz.test(oe)}function Xz(oe){for(var xe,me=[];!(xe=oe.next()).done;)me.push(xe.value);return me}function uw(oe){var xe=-1,me=Array(oe.size);return oe.forEach(function(nt,Lt){me[++xe]=[Lt,nt]}),me}function PO(oe,xe){return function(me){return oe(xe(me))}}function Tl(oe,xe){for(var me=-1,nt=oe.length,Lt=0,dn=[];++me-1}function NW(p,g){var x=this.__data__,E=Wm(x,p);return E<0?(++this.size,x.push([p,g])):x[E][1]=g,this}Ss.prototype.clear=OW,Ss.prototype.delete=DW,Ss.prototype.get=MW,Ss.prototype.has=LW,Ss.prototype.set=NW;function ws(p){var g=-1,x=p==null?0:p.length;for(this.clear();++g=g?p:g)),p}function ko(p,g,x,E,D,V){var X,J=g&f,ue=g&d,Ie=g&h;if(x&&(X=D?x(p,E,D,V):x(p)),X!==n)return X;if(!qn(p))return p;var Re=Ft(p);if(Re){if(X=B9(p),!J)return Li(p,X)}else{var Le=Yr(p),qe=Le==$e||Le==H;if(Pl(p))return d2(p,J);if(Le==pe||Le==Me||qe&&!D){if(X=ue||qe?{}:O2(p),!J)return ue?I9(p,qW(X,p)):A9(p,HO(X,p))}else{if(!kn[Le])return D?p:{};X=V9(p,Le,J)}}V||(V=new pa);var ct=V.get(p);if(ct)return ct;V.set(p,X),aD(p)?p.forEach(function(wt){X.add(ko(wt,g,x,wt,p,V))}):iD(p)&&p.forEach(function(wt,Zt){X.set(Zt,ko(wt,g,x,Zt,p,V))});var St=Ie?ue?Nw:Lw:ue?ki:Or,zt=Re?n:St(p);return Mo(zt||p,function(wt,Zt){zt&&(Zt=wt,wt=p[Zt]),zh(X,Zt,ko(wt,g,x,Zt,p,V))}),X}function JW(p){var g=Or(p);return function(x){return GO(x,p,g)}}function GO(p,g,x){var E=x.length;if(p==null)return!E;for(p=On(p);E--;){var D=x[E],V=g[D],X=p[D];if(X===n&&!(D in p)||!V(X))return!1}return!0}function zO(p,g,x){if(typeof p!="function")throw new Lo(a);return qh(function(){p.apply(n,x)},g)}function Wh(p,g,x,E){var D=-1,V=Im,X=!0,J=p.length,ue=[],Ie=g.length;if(!J)return ue;x&&(g=zn(g,co(x))),E?(V=tw,X=!1):g.length>=i&&(V=$h,X=!1,g=new Yu(g));e:for(;++DD?0:D+x),E=E===n||E>D?D:Ut(E),E<0&&(E+=D),E=x>E?0:lD(E);x0&&x(J)?g>1?Fr(J,g-1,x,E,D):xl(D,J):E||(D[D.length]=J)}return D}var gw=y2(),YO=y2(!0);function Ua(p,g){return p&&gw(p,g,Or)}function mw(p,g){return p&&YO(p,g,Or)}function Ym(p,g){return wl(g,function(x){return As(p[x])})}function Ku(p,g){g=Il(g,p);for(var x=0,E=g.length;p!=null&&xg}function t9(p,g){return p!=null&&wn.call(p,g)}function n9(p,g){return p!=null&&g in On(p)}function r9(p,g,x){return p>=jr(g,x)&&p=120&&Re.length>=120)?new Yu(X&&Re):n}Re=p[0];var Le=-1,qe=J[0];e:for(;++Le-1;)J!==p&&$m.call(J,ue,1),$m.call(p,ue,1);return p}function i2(p,g){for(var x=p?g.length:0,E=x-1;x--;){var D=g[x];if(x==E||D!==V){var V=D;Es(D)?$m.call(p,D,1):Aw(p,D)}}return p}function Tw(p,g){return p+Um($O()*(g-p+1))}function g9(p,g,x,E){for(var D=-1,V=wr(Vm((g-p)/(x||1)),0),X=me(V);V--;)X[E?V:++D]=p,p+=x;return X}function Cw(p,g){var x="";if(!p||g<1||g>j)return x;do g%2&&(x+=p),g=Um(g/2),g&&(p+=p);while(g);return x}function Wt(p,g){return Hw(L2(p,g,Fi),p+"")}function m9(p){return UO(Wf(p))}function y9(p,g){var x=Wf(p);return iy(x,Xu(g,0,x.length))}function Xh(p,g,x,E){if(!qn(p))return p;g=Il(g,p);for(var D=-1,V=g.length,X=V-1,J=p;J!=null&&++DD?0:D+g),x=x>D?D:x,x<0&&(x+=D),D=g>x?0:x-g>>>0,g>>>=0;for(var V=me(D);++E>>1,X=p[V];X!==null&&!ho(X)&&(x?X<=g:X=i){var Ie=g?null:D9(p);if(Ie)return Pm(Ie);X=!1,D=$h,ue=new Yu}else ue=g?[]:J;e:for(;++E=E?p:Fo(p,g,x)}var f2=uW||function(p){return kr.clearTimeout(p)};function d2(p,g){if(g)return p.slice();var x=p.length,E=MO?MO(x):new p.constructor(x);return p.copy(E),E}function Ow(p){var g=new p.constructor(p.byteLength);return new km(g).set(new km(p)),g}function x9(p,g){var x=g?Ow(p.buffer):p.buffer;return new p.constructor(x,p.byteOffset,p.byteLength)}function T9(p){var g=new p.constructor(p.source,Nh.exec(p));return g.lastIndex=p.lastIndex,g}function C9(p){return Gh?On(Gh.call(p)):{}}function h2(p,g){var x=g?Ow(p.buffer):p.buffer;return new p.constructor(x,p.byteOffset,p.length)}function p2(p,g){if(p!==g){var x=p!==n,E=p===null,D=p===p,V=ho(p),X=g!==n,J=g===null,ue=g===g,Ie=ho(g);if(!J&&!Ie&&!V&&p>g||V&&X&&ue&&!J&&!Ie||E&&X&&ue||!x&&ue||!D)return 1;if(!E&&!V&&!Ie&&p=J)return ue;var Ie=x[E];return ue*(Ie=="desc"?-1:1)}}return p.index-g.index}function v2(p,g,x,E){for(var D=-1,V=p.length,X=x.length,J=-1,ue=g.length,Ie=wr(V-X,0),Re=me(ue+Ie),Le=!E;++J1?x[D-1]:n,X=D>2?x[2]:n;for(V=p.length>3&&typeof V=="function"?(D--,V):n,X&&gi(x[0],x[1],X)&&(V=D<3?n:V,D=1),g=On(g);++E-1?D[V?g[X]:X]:n}}function S2(p){return Cs(function(g){var x=g.length,E=x,D=No.prototype.thru;for(p&&g.reverse();E--;){var V=g[E];if(typeof V!="function")throw new Lo(a);if(D&&!X&&ny(V)=="wrapper")var X=new No([],!0)}for(E=X?E:x;++E1&&rn.reverse(),Re&&ueJ))return!1;var Ie=V.get(p),Re=V.get(g);if(Ie&&Re)return Ie==g&&Re==p;var Le=-1,qe=!0,ct=x&m?new Yu:n;for(V.set(p,g),V.set(g,p);++Le1?"& ":"")+g[E],g=g.join(x>2?", ":" "),p.replace(Sm,`{ +/* [wrapped with `+g+`] */ +`)}function H9(p){return Ft(p)||Ju(p)||!!(kO&&p&&p[kO])}function Es(p,g){var x=typeof p;return g=g??j,!!g&&(x=="number"||x!="symbol"&&Ue.test(p))&&p>-1&&p%1==0&&p0){if(++g>=M)return arguments[0]}else g=0;return p.apply(n,arguments)}}function iy(p,g){var x=-1,E=p.length,D=E-1;for(g=g===n?E:g;++x1?p[g-1]:n;return x=typeof x=="function"?(p.pop(),x):n,j2(p,x)});function Y2(p){var g=k(p);return g.__chain__=!0,g}function Q7(p,g){return g(p),p}function oy(p,g){return g(p)}var ej=Cs(function(p){var g=p.length,x=g?p[0]:0,E=this.__wrapped__,D=function(V){return vw(V,p)};return g>1||this.__actions__.length||!(E instanceof en)||!Es(x)?this.thru(D):(E=E.slice(x,+x+(g?1:0)),E.__actions__.push({func:oy,args:[D],thisArg:n}),new No(E,this.__chain__).thru(function(V){return g&&!V.length&&V.push(n),V}))});function tj(){return Y2(this)}function nj(){return new No(this.value(),this.__chain__)}function rj(){this.__values__===n&&(this.__values__=sD(this.value()));var p=this.__index__>=this.__values__.length,g=p?n:this.__values__[this.__index__++];return{done:p,value:g}}function ij(){return this}function oj(p){for(var g,x=this;x instanceof zm;){var E=V2(x);E.__index__=0,E.__values__=n,g?D.__wrapped__=E:g=E;var D=E;x=x.__wrapped__}return D.__wrapped__=p,g}function aj(){var p=this.__wrapped__;if(p instanceof en){var g=p;return this.__actions__.length&&(g=new en(this)),g=g.reverse(),g.__actions__.push({func:oy,args:[Gw],thisArg:n}),new No(g,this.__chain__)}return this.thru(Gw)}function sj(){return u2(this.__wrapped__,this.__actions__)}var lj=qm(function(p,g,x){wn.call(p,x)?++p[x]:xs(p,x,1)});function uj(p,g,x){var E=Ft(p)?wO:QW;return x&&gi(p,g,x)&&(g=n),E(p,yt(g,3))}function cj(p,g){var x=Ft(p)?wl:jO;return x(p,yt(g,3))}var fj=b2(U2),dj=b2(H2);function hj(p,g){return Fr(ay(p,g),1)}function pj(p,g){return Fr(ay(p,g),Y)}function vj(p,g,x){return x=x===n?1:Ut(x),Fr(ay(p,g),x)}function X2(p,g){var x=Ft(p)?Mo:El;return x(p,yt(g,3))}function K2(p,g){var x=Ft(p)?Lz:WO;return x(p,yt(g,3))}var gj=qm(function(p,g,x){wn.call(p,x)?p[x].push(g):xs(p,x,[g])});function mj(p,g,x,E){p=Ni(p)?p:Wf(p),x=x&&!E?Ut(x):0;var D=p.length;return x<0&&(x=wr(D+x,0)),fy(p)?x<=D&&p.indexOf(g,x)>-1:!!D&&Mf(p,g,x)>-1}var yj=Wt(function(p,g,x){var E=-1,D=typeof g=="function",V=Ni(p)?me(p.length):[];return El(p,function(X){V[++E]=D?uo(g,X,x):jh(X,g,x)}),V}),_j=qm(function(p,g,x){xs(p,x,g)});function ay(p,g){var x=Ft(p)?zn:JO;return x(p,yt(g,3))}function bj(p,g,x,E){return p==null?[]:(Ft(g)||(g=g==null?[]:[g]),x=E?n:x,Ft(x)||(x=x==null?[]:[x]),n2(p,g,x))}var Sj=qm(function(p,g,x){p[x?0:1].push(g)},function(){return[[],[]]});function wj(p,g,x){var E=Ft(p)?nw:EO,D=arguments.length<3;return E(p,yt(g,4),x,D,El)}function xj(p,g,x){var E=Ft(p)?Nz:EO,D=arguments.length<3;return E(p,yt(g,4),x,D,WO)}function Tj(p,g){var x=Ft(p)?wl:jO;return x(p,uy(yt(g,3)))}function Cj(p){var g=Ft(p)?UO:m9;return g(p)}function Ej(p,g,x){(x?gi(p,g,x):g===n)?g=1:g=Ut(g);var E=Ft(p)?XW:y9;return E(p,g)}function Aj(p){var g=Ft(p)?KW:b9;return g(p)}function Ij(p){if(p==null)return 0;if(Ni(p))return fy(p)?Nf(p):p.length;var g=Yr(p);return g==G||g==fe?p.size:Sw(p).length}function Rj(p,g,x){var E=Ft(p)?rw:S9;return x&&gi(p,g,x)&&(g=n),E(p,yt(g,3))}var Pj=Wt(function(p,g){if(p==null)return[];var x=g.length;return x>1&&gi(p,g[0],g[1])?g=[]:x>2&&gi(g[0],g[1],g[2])&&(g=[g[0]]),n2(p,Fr(g,1),[])}),sy=cW||function(){return kr.Date.now()};function Oj(p,g){if(typeof g!="function")throw new Lo(a);return p=Ut(p),function(){if(--p<1)return g.apply(this,arguments)}}function Z2(p,g,x){return g=x?n:g,g=p&&g==null?p.length:g,Ts(p,A,n,n,n,n,g)}function q2(p,g){var x;if(typeof g!="function")throw new Lo(a);return p=Ut(p),function(){return--p>0&&(x=g.apply(this,arguments)),p<=1&&(g=n),x}}var Ww=Wt(function(p,g,x){var E=y;if(x.length){var D=Tl(x,Gf(Ww));E|=C}return Ts(p,E,g,x,D)}),J2=Wt(function(p,g,x){var E=y|_;if(x.length){var D=Tl(x,Gf(J2));E|=C}return Ts(g,E,p,x,D)});function Q2(p,g,x){g=x?n:g;var E=Ts(p,w,n,n,n,n,n,g);return E.placeholder=Q2.placeholder,E}function eD(p,g,x){g=x?n:g;var E=Ts(p,S,n,n,n,n,n,g);return E.placeholder=eD.placeholder,E}function tD(p,g,x){var E,D,V,X,J,ue,Ie=0,Re=!1,Le=!1,qe=!0;if(typeof p!="function")throw new Lo(a);g=Bo(g)||0,qn(x)&&(Re=!!x.leading,Le="maxWait"in x,V=Le?wr(Bo(x.maxWait)||0,g):V,qe="trailing"in x?!!x.trailing:qe);function ct(cr){var ga=E,Rs=D;return E=D=n,Ie=cr,X=p.apply(Rs,ga),X}function St(cr){return Ie=cr,J=qh(Zt,g),Re?ct(cr):X}function zt(cr){var ga=cr-ue,Rs=cr-Ie,bD=g-ga;return Le?jr(bD,V-Rs):bD}function wt(cr){var ga=cr-ue,Rs=cr-Ie;return ue===n||ga>=g||ga<0||Le&&Rs>=V}function Zt(){var cr=sy();if(wt(cr))return rn(cr);J=qh(Zt,zt(cr))}function rn(cr){return J=n,qe&&E?ct(cr):(E=D=n,X)}function po(){J!==n&&f2(J),Ie=0,E=ue=D=J=n}function mi(){return J===n?X:rn(sy())}function vo(){var cr=sy(),ga=wt(cr);if(E=arguments,D=this,ue=cr,ga){if(J===n)return St(ue);if(Le)return f2(J),J=qh(Zt,g),ct(ue)}return J===n&&(J=qh(Zt,g)),X}return vo.cancel=po,vo.flush=mi,vo}var Dj=Wt(function(p,g){return zO(p,1,g)}),Mj=Wt(function(p,g,x){return zO(p,Bo(g)||0,x)});function Lj(p){return Ts(p,I)}function ly(p,g){if(typeof p!="function"||g!=null&&typeof g!="function")throw new Lo(a);var x=function(){var E=arguments,D=g?g.apply(this,E):E[0],V=x.cache;if(V.has(D))return V.get(D);var X=p.apply(this,E);return x.cache=V.set(D,X)||V,X};return x.cache=new(ly.Cache||ws),x}ly.Cache=ws;function uy(p){if(typeof p!="function")throw new Lo(a);return function(){var g=arguments;switch(g.length){case 0:return!p.call(this);case 1:return!p.call(this,g[0]);case 2:return!p.call(this,g[0],g[1]);case 3:return!p.call(this,g[0],g[1],g[2])}return!p.apply(this,g)}}function Nj(p){return q2(2,p)}var kj=w9(function(p,g){g=g.length==1&&Ft(g[0])?zn(g[0],co(yt())):zn(Fr(g,1),co(yt()));var x=g.length;return Wt(function(E){for(var D=-1,V=jr(E.length,x);++D=g}),Ju=KO(function(){return arguments}())?KO:function(p){return er(p)&&wn.call(p,"callee")&&!NO.call(p,"callee")},Ft=me.isArray,qj=gO?co(gO):o9;function Ni(p){return p!=null&&cy(p.length)&&!As(p)}function ur(p){return er(p)&&Ni(p)}function Jj(p){return p===!0||p===!1||er(p)&&vi(p)==Ee}var Pl=dW||rx,Qj=mO?co(mO):a9;function eY(p){return er(p)&&p.nodeType===1&&!Jh(p)}function tY(p){if(p==null)return!0;if(Ni(p)&&(Ft(p)||typeof p=="string"||typeof p.splice=="function"||Pl(p)||zf(p)||Ju(p)))return!p.length;var g=Yr(p);if(g==G||g==fe)return!p.size;if(Zh(p))return!Sw(p).length;for(var x in p)if(wn.call(p,x))return!1;return!0}function nY(p,g){return Yh(p,g)}function rY(p,g,x){x=typeof x=="function"?x:n;var E=x?x(p,g):n;return E===n?Yh(p,g,n,x):!!E}function Yw(p){if(!er(p))return!1;var g=vi(p);return g==Oe||g==Te||typeof p.message=="string"&&typeof p.name=="string"&&!Jh(p)}function iY(p){return typeof p=="number"&&FO(p)}function As(p){if(!qn(p))return!1;var g=vi(p);return g==$e||g==H||g==ce||g==W}function rD(p){return typeof p=="number"&&p==Ut(p)}function cy(p){return typeof p=="number"&&p>-1&&p%1==0&&p<=j}function qn(p){var g=typeof p;return p!=null&&(g=="object"||g=="function")}function er(p){return p!=null&&typeof p=="object"}var iD=yO?co(yO):l9;function oY(p,g){return p===g||bw(p,g,Fw(g))}function aY(p,g,x){return x=typeof x=="function"?x:n,bw(p,g,Fw(g),x)}function sY(p){return oD(p)&&p!=+p}function lY(p){if(W9(p))throw new Lt(o);return ZO(p)}function uY(p){return p===null}function cY(p){return p==null}function oD(p){return typeof p=="number"||er(p)&&vi(p)==le}function Jh(p){if(!er(p)||vi(p)!=pe)return!1;var g=Fm(p);if(g===null)return!0;var x=wn.call(g,"constructor")&&g.constructor;return typeof x=="function"&&x instanceof x&&Mm.call(x)==aW}var Xw=_O?co(_O):u9;function fY(p){return rD(p)&&p>=-j&&p<=j}var aD=bO?co(bO):c9;function fy(p){return typeof p=="string"||!Ft(p)&&er(p)&&vi(p)==_e}function ho(p){return typeof p=="symbol"||er(p)&&vi(p)==Pe}var zf=SO?co(SO):f9;function dY(p){return p===n}function hY(p){return er(p)&&Yr(p)==de}function pY(p){return er(p)&&vi(p)==Be}var vY=ty(ww),gY=ty(function(p,g){return p<=g});function sD(p){if(!p)return[];if(Ni(p))return fy(p)?ha(p):Li(p);if(Bh&&p[Bh])return Xz(p[Bh]());var g=Yr(p),x=g==G?uw:g==fe?Pm:Wf;return x(p)}function Is(p){if(!p)return p===0?p:0;if(p=Bo(p),p===Y||p===-Y){var g=p<0?-1:1;return g*se}return p===p?p:0}function Ut(p){var g=Is(p),x=g%1;return g===g?x?g-x:g:0}function lD(p){return p?Xu(Ut(p),0,ve):0}function Bo(p){if(typeof p=="number")return p;if(ho(p))return ge;if(qn(p)){var g=typeof p.valueOf=="function"?p.valueOf():p;p=qn(g)?g+"":g}if(typeof p!="string")return p===0?p:+p;p=AO(p);var x=YS.test(p);return x||te.test(p)?Oz(p.slice(2),x?2:8):Em.test(p)?ge:+p}function uD(p){return Ha(p,ki(p))}function mY(p){return p?Xu(Ut(p),-j,j):p===0?p:0}function gn(p){return p==null?"":fo(p)}var yY=Uf(function(p,g){if(Zh(g)||Ni(g)){Ha(g,Or(g),p);return}for(var x in g)wn.call(g,x)&&zh(p,x,g[x])}),cD=Uf(function(p,g){Ha(g,ki(g),p)}),dy=Uf(function(p,g,x,E){Ha(g,ki(g),p,E)}),_Y=Uf(function(p,g,x,E){Ha(g,Or(g),p,E)}),bY=Cs(vw);function SY(p,g){var x=Vf(p);return g==null?x:HO(x,g)}var wY=Wt(function(p,g){p=On(p);var x=-1,E=g.length,D=E>2?g[2]:n;for(D&&gi(g[0],g[1],D)&&(E=1);++x1),V}),Ha(p,Nw(p),x),E&&(x=ko(x,f|d|h,M9));for(var D=g.length;D--;)Aw(x,g[D]);return x});function VY(p,g){return dD(p,uy(yt(g)))}var UY=Cs(function(p,g){return p==null?{}:p9(p,g)});function dD(p,g){if(p==null)return{};var x=zn(Nw(p),function(E){return[E]});return g=yt(g),r2(p,x,function(E,D){return g(E,D[0])})}function HY(p,g,x){g=Il(g,p);var E=-1,D=g.length;for(D||(D=1,p=n);++Eg){var E=p;p=g,g=E}if(x||p%1||g%1){var D=$O();return jr(p+D*(g-p+Pz("1e-"+((D+"").length-1))),g)}return Tw(p,g)}var QY=Hf(function(p,g,x){return g=g.toLowerCase(),p+(x?vD(g):g)});function vD(p){return qw(gn(p).toLowerCase())}function gD(p){return p=gn(p),p&&p.replace(at,Gz).replace(bz,"")}function eX(p,g,x){p=gn(p),g=fo(g);var E=p.length;x=x===n?E:Xu(Ut(x),0,E);var D=x;return x-=g.length,x>=0&&p.slice(x,D)==g}function tX(p){return p=gn(p),p&&fa.test(p)?p.replace(Pt,zz):p}function nX(p){return p=gn(p),p&&jS.test(p)?p.replace(Pf,"\\$&"):p}var rX=Hf(function(p,g,x){return p+(x?"-":"")+g.toLowerCase()}),iX=Hf(function(p,g,x){return p+(x?" ":"")+g.toLowerCase()}),oX=_2("toLowerCase");function aX(p,g,x){p=gn(p),g=Ut(g);var E=g?Nf(p):0;if(!g||E>=g)return p;var D=(g-E)/2;return ey(Um(D),x)+p+ey(Vm(D),x)}function sX(p,g,x){p=gn(p),g=Ut(g);var E=g?Nf(p):0;return g&&E>>0,x?(p=gn(p),p&&(typeof g=="string"||g!=null&&!Xw(g))&&(g=fo(g),!g&&Lf(p))?Rl(ha(p),0,x):p.split(g,x)):[]}var pX=Hf(function(p,g,x){return p+(x?" ":"")+qw(g)});function vX(p,g,x){return p=gn(p),x=x==null?0:Xu(Ut(x),0,p.length),g=fo(g),p.slice(x,x+g.length)==g}function gX(p,g,x){var E=k.templateSettings;x&&gi(p,g,x)&&(g=n),p=gn(p),g=dy({},g,E,E2);var D=dy({},g.imports,E.imports,E2),V=Or(D),X=lw(D,V),J,ue,Ie=0,Re=g.interpolate||Sn,Le="__p += '",qe=cw((g.escape||Sn).source+"|"+Re.source+"|"+(Re===Rf?Cm:Sn).source+"|"+(g.evaluate||Sn).source+"|$","g"),ct="//# sourceURL="+(wn.call(g,"sourceURL")?(g.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Cz+"]")+` +`;p.replace(qe,function(wt,Zt,rn,po,mi,vo){return rn||(rn=po),Le+=p.slice(Ie,vo).replace(Rr,Wz),Zt&&(J=!0,Le+=`' + +__e(`+Zt+`) + +'`),mi&&(ue=!0,Le+=`'; +`+mi+`; +__p += '`),rn&&(Le+=`' + +((__t = (`+rn+`)) == null ? '' : __t) + +'`),Ie=vo+wt.length,wt}),Le+=`'; +`;var St=wn.call(g,"variable")&&g.variable;if(!St)Le=`with (obj) { +`+Le+` +} +`;else if(da.test(St))throw new Lt(s);Le=(ue?Le.replace(Ge,""):Le).replace(We,"$1").replace(et,"$1;"),Le="function("+(St||"obj")+`) { +`+(St?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(J?", __e = _.escape":"")+(ue?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Le+`return __p +}`;var zt=yD(function(){return dn(V,ct+"return "+Le).apply(n,X)});if(zt.source=Le,Yw(zt))throw zt;return zt}function mX(p){return gn(p).toLowerCase()}function yX(p){return gn(p).toUpperCase()}function _X(p,g,x){if(p=gn(p),p&&(x||g===n))return AO(p);if(!p||!(g=fo(g)))return p;var E=ha(p),D=ha(g),V=IO(E,D),X=RO(E,D)+1;return Rl(E,V,X).join("")}function bX(p,g,x){if(p=gn(p),p&&(x||g===n))return p.slice(0,OO(p)+1);if(!p||!(g=fo(g)))return p;var E=ha(p),D=RO(E,ha(g))+1;return Rl(E,0,D).join("")}function SX(p,g,x){if(p=gn(p),p&&(x||g===n))return p.replace(Mi,"");if(!p||!(g=fo(g)))return p;var E=ha(p),D=IO(E,ha(g));return Rl(E,D).join("")}function wX(p,g){var x=R,E=O;if(qn(g)){var D="separator"in g?g.separator:D;x="length"in g?Ut(g.length):x,E="omission"in g?fo(g.omission):E}p=gn(p);var V=p.length;if(Lf(p)){var X=ha(p);V=X.length}if(x>=V)return p;var J=x-Nf(E);if(J<1)return E;var ue=X?Rl(X,0,J).join(""):p.slice(0,J);if(D===n)return ue+E;if(X&&(J+=ue.length-J),Xw(D)){if(p.slice(J).search(D)){var Ie,Re=ue;for(D.global||(D=cw(D.source,gn(Nh.exec(D))+"g")),D.lastIndex=0;Ie=D.exec(Re);)var Le=Ie.index;ue=ue.slice(0,Le===n?J:Le)}}else if(p.indexOf(fo(D),J)!=J){var qe=ue.lastIndexOf(D);qe>-1&&(ue=ue.slice(0,qe))}return ue+E}function xX(p){return p=gn(p),p&&Nn.test(p)?p.replace(It,Jz):p}var TX=Hf(function(p,g,x){return p+(x?" ":"")+g.toUpperCase()}),qw=_2("toUpperCase");function mD(p,g,x){return p=gn(p),g=x?n:g,g===n?Yz(p)?tW(p):$z(p):p.match(g)||[]}var yD=Wt(function(p,g){try{return uo(p,n,g)}catch(x){return Yw(x)?x:new Lt(x)}}),CX=Cs(function(p,g){return Mo(g,function(x){x=Ga(x),xs(p,x,Ww(p[x],p))}),p});function EX(p){var g=p==null?0:p.length,x=yt();return p=g?zn(p,function(E){if(typeof E[1]!="function")throw new Lo(a);return[x(E[0]),E[1]]}):[],Wt(function(E){for(var D=-1;++Dj)return[];var x=ve,E=jr(p,ve);g=yt(g),p-=ve;for(var D=sw(E,g);++x0||g<0)?new en(x):(p<0?x=x.takeRight(-p):p&&(x=x.drop(p)),g!==n&&(g=Ut(g),x=g<0?x.dropRight(-g):x.take(g-p)),x)},en.prototype.takeRightWhile=function(p){return this.reverse().takeWhile(p).reverse()},en.prototype.toArray=function(){return this.take(ve)},Ua(en.prototype,function(p,g){var x=/^(?:filter|find|map|reject)|While$/.test(g),E=/^(?:head|last)$/.test(g),D=k[E?"take"+(g=="last"?"Right":""):g],V=E||/^find/.test(g);D&&(k.prototype[g]=function(){var X=this.__wrapped__,J=E?[1]:arguments,ue=X instanceof en,Ie=J[0],Re=ue||Ft(X),Le=function(Zt){var rn=D.apply(k,xl([Zt],J));return E&&qe?rn[0]:rn};Re&&x&&typeof Ie=="function"&&Ie.length!=1&&(ue=Re=!1);var qe=this.__chain__,ct=!!this.__actions__.length,St=V&&!qe,zt=ue&&!ct;if(!V&&Re){X=zt?X:new en(this);var wt=p.apply(X,J);return wt.__actions__.push({func:oy,args:[Le],thisArg:n}),new No(wt,qe)}return St&&zt?p.apply(this,J):(wt=this.thru(Le),St?E?wt.value()[0]:wt.value():wt)})}),Mo(["pop","push","shift","sort","splice","unshift"],function(p){var g=Om[p],x=/^(?:push|sort|unshift)$/.test(p)?"tap":"thru",E=/^(?:pop|shift)$/.test(p);k.prototype[p]=function(){var D=arguments;if(E&&!this.__chain__){var V=this.value();return g.apply(Ft(V)?V:[],D)}return this[x](function(X){return g.apply(Ft(X)?X:[],D)})}}),Ua(en.prototype,function(p,g){var x=k[g];if(x){var E=x.name+"";wn.call(Bf,E)||(Bf[E]=[]),Bf[E].push({name:g,func:x})}}),Bf[Jm(n,_).name]=[{name:"wrapper",func:n}],en.prototype.clone=xW,en.prototype.reverse=TW,en.prototype.value=CW,k.prototype.at=ej,k.prototype.chain=tj,k.prototype.commit=nj,k.prototype.next=rj,k.prototype.plant=oj,k.prototype.reverse=aj,k.prototype.toJSON=k.prototype.valueOf=k.prototype.value=sj,k.prototype.first=k.prototype.head,Bh&&(k.prototype[Bh]=ij),k},kf=nW();zu?((zu.exports=kf)._=kf,QS._=kf):kr._=kf}).call(Rre)}(Vp,Vp.exports)),Vp.exports}var Ai=Pre();const Ore=Vg(Ai),$r=[];for(let e=0;e<256;++e)$r.push((e+256).toString(16).slice(1));function Dre(e,t=0){return($r[e[t+0]]+$r[e[t+1]]+$r[e[t+2]]+$r[e[t+3]]+"-"+$r[e[t+4]]+$r[e[t+5]]+"-"+$r[e[t+6]]+$r[e[t+7]]+"-"+$r[e[t+8]]+$r[e[t+9]]+"-"+$r[e[t+10]]+$r[e[t+11]]+$r[e[t+12]]+$r[e[t+13]]+$r[e[t+14]]+$r[e[t+15]]).toLowerCase()}let Ax;const Mre=new Uint8Array(16);function Lre(){if(!Ax){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ax=crypto.getRandomValues.bind(crypto)}return Ax(Mre)}const Nre=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),pL={randomUUID:Nre};function kre(e,t,n){if(pL.randomUUID&&!t&&!e)return pL.randomUUID();e=e||{};const r=e.random||(e.rng||Lre)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,Dre(r)}const fs=Mt("setup/api-list",[]),ci=Mt("setup/active-uuid",""),fl=Ve(()=>fs.value.find(e=>e.uuid===ci.value)),Fre=e=>{const t=fs.value.find(r=>Ai.isEqual(Ai.omit(r,"uuid"),e));if(t){ci.value=t.uuid;return}const n=kre();fs.value.push({...e,uuid:n}),ci.value=n},DB=e=>{fs.value=fs.value.filter(t=>t.uuid!==e)},Fc=60,qc=new Array(Fc).fill(0).map((e,t)=>({name:t,value:e})),kb=Fe(0),Up=Fe([...qc]),a_=Fe([...qc]),Fb=Fe(0),$b=Fe(0),Hp=Fe([...qc]),Gp=Fe([...qc]);let Ry;const $re=()=>{Ry==null||Ry(),Hp.value=[...qc],Gp.value=[...qc],Up.value=[...qc];const{data:e,close:t}=Goe(),n=Yt(()=>e.value,a=>{if(!a)return;const s=Date.now().valueOf();kb.value=a.inuse,Up.value.push({value:a.inuse,name:s}),a_.value.push({value:ea.value.length,name:s}),Up.value=Up.value.slice(-1*Fc),a_.value=a_.value.slice(-1*Fc)}),{data:r,close:i}=zoe(),o=Yt(()=>r.value,a=>{if(!a)return;const s=Date.now().valueOf();Fb.value=a.down,$b.value=a.up,Hp.value.push({value:a.down,name:s}),Gp.value.push({value:a.up,name:s}),Hp.value=Hp.value.slice(-1*Fc),Gp.value=Gp.value.slice(-1*Fc)});Ry=()=>{t(),i(),n(),o()}},Oc="GLOBAL",dE=Fe([]),fi=Fe({}),GI=Fe({}),ih=Mt("config/ipv6-map",{}),kd=Fe([]),Qg=e=>GI.value[Jc(e)],Bre=e=>ih.value[Jc(e)],dl=async()=>{const{data:e}=await Poe(),{data:t}=await Doe(),n=e.proxies[Oc].all??[];fi.value=e.proxies,dE.value=Object.values(e.proxies).filter(r=>{var i;return((i=r.all)==null?void 0:i.length)&&r.name!==Oc}).sort((r,i)=>n.indexOf(r.name)-n.indexOf(i.name)).map(r=>r.name),GI.value=Object.fromEntries(Object.entries(e.proxies).map(([r,i])=>(Zc.value&&Gre(i)&&(ih.value[r]=!0),[r,Hre(i)]))),kd.value=Object.values(t.providers).filter(r=>r.name!=="default"&&r.vehicleType!=="Compatible")},vL=async(e,t)=>{await Ooe(e,t),fi.value[e].now=t,e_.value&&ea.value.filter(n=>n.chains.includes(e)).forEach(n=>jb(n.id)),dl()},Vre=async e=>{if(Zc.value)try{const{data:n}=await ML(e,$I,4e3);ih.value[Jc(e)]=n.delay>Jo}catch{ih.value[Jc(e)]=!1}const{data:t}=await ML(e,hv.value,pv.value);GI.value[Jc(e)]=t.delay},Ure=async e=>{var t,n;if(Zc.value)try{const{data:r}=await LL(e,$I,4e3);(t=fi.value[e].all)==null||t.forEach(i=>{ih.value[Jc(i)]=r[i]>Jo})}catch{(n=fi.value[e].all)==null||n.forEach(r=>{ih.value[Jc(r)]=!1})}await LL(e,hv.value,pv.value),await dl()},Hre=e=>{var t;return((t=Ai.last(e.history))==null?void 0:t.delay)??0},Gre=e=>{var n,r,i;const t=(r=(n=e.extra)==null?void 0:n[$I])==null?void 0:r.history;return(((i=Ai.last(t))==null?void 0:i.delay)??0)>Jo},Jc=e=>{let t=fi.value[e];if(!e||!t)return e;for(;t.now&&t.now!==t.name;){const n=fi.value[t.now];if(!n)return t.name;t=n}return t.name},zre=Ve(()=>Ai.compact(Object.values(fi.value).map(e=>e.icon)));Yt(zre,async e=>{const t=await bre();Ai.difference(t,e).forEach(n=>{Sre(n)})});const Wre=["B","kB","MB","GB","TB","PB","EB","ZB","YB"],jre=["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],Yre=["b","kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],Xre=["b","kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],gL=(e,t,n)=>{let r=e;return typeof t=="string"||Array.isArray(t)?r=e.toLocaleString(t,n):(t===!0||n!==void 0)&&(r=e.toLocaleString(void 0,n)),r};function Kre(e,t){if(!Number.isFinite(e))throw new TypeError(`Expected a finite number, got ${typeof e}: ${e}`);t={bits:!1,binary:!1,space:!0,...t};const n=t.bits?t.binary?Xre:Yre:t.binary?jre:Wre,r=t.space?" ":"";if(t.signed&&e===0)return` 0${r}${n[0]}`;const i=e<0,o=i?"-":t.signed?"+":"";i&&(e=-e);let a;if(t.minimumFractionDigits!==void 0&&(a={minimumFractionDigits:t.minimumFractionDigits}),t.maximumFractionDigits!==void 0&&(a={maximumFractionDigits:t.maximumFractionDigits,...a}),e<1){const c=gL(e,t.locale,a);return o+c+r+n[0]}const s=Math.min(Math.floor(t.binary?Math.log(e)/Math.log(1024):Math.log10(e)/3),n.length-1);e/=(t.binary?1024:1e3)**s,a||(e=e.toPrecision(3));const l=gL(Number(e),t.locale,a),u=n[s];return o+l+r+u}const Tn=(e,t)=>Kre(e,{binary:!1,...t}),Bb=e=>La(e).locale(su.value).fromNow(),MB=e=>{const t=fi.value[e];return t?["direct","reject","reject-drop","pass"].includes(t.type.toLowerCase())||!!t.all:!1},Py=e=>{if(MB(e))return-1;const t=Qg(e);return t===0?1/0:t},LB=e=>{switch(e=[...e],t_.value&&(e=e.filter(t=>MB(t)||Qg(t)>0)),Q0.value){case ru.DEFAULT:return e;case ru.NAME_ASC:return e.sort((t,n)=>t.localeCompare(n));case ru.NAME_DESC:return e.sort((t,n)=>n.localeCompare(t));case ru.LATENCY_ASC:return e.sort((t,n)=>Py(t)-Py(n));case ru.LATENCY_DESC:return e.sort((t,n)=>Py(n)-Py(t))}},u1=e=>{if(e===null)return"";if(e==="")return"Inner";const t=e.includes(":");for(const n in So.value)if(n.startsWith("/")){if(new RegExp(n,"i").test(e))return So.value[n]}else if(e===n||t&&e.endsWith(n))return So.value[n];return e},NB=e=>e.metadata.process||e.metadata.processPath.replace(/^.*[/\\](.*)$/,"$1")||"-",kB=e=>e.metadata.remoteDestination||e.metadata.destinationIP||e.metadata.host,FB=e=>`${e.metadata.type} | ${e.metadata.network}`,$B=(e,t)=>{const{suffix:n="",binary:r=!1}=t;return e.data.name +

+ ${e.seriesName} + (${La(e.data.name).format("HH:mm:ss")}): ${Tn(e.data.value,{binary:r})}${n} + `},mL=()=>{const e={};for(const i in localStorage)(i.startsWith("config/")||i.startsWith("setup/"))&&(e[i]=localStorage.getItem(i));const t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download="zashboard-settings",r.click(),URL.revokeObjectURL(n)},c1=()=>{const e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=async()=>{var r;const t=(r=e.files)==null?void 0:r[0];if(!t)return;const n=new FileReader;n.onload=async()=>{const i=JSON.parse(n.result);for(const o in i)localStorage.setItem(o,i[o]);location.reload()},n.readAsText(t)},e.click()},Eu=e=>`${e.protocol}://${e.host}:${e.port}${e.secondaryPath||""}`,iu=e=>e===Jo?"":eObject.values(un).filter(e=>![un.setup,!yd.value&&un.overview].includes(e)));function BB(e,t){return function(){return e.apply(t,arguments)}}const{toString:Zre}=Object.prototype,{getPrototypeOf:zI}=Object,Vb=(e=>t=>{const n=Zre.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),$a=e=>(e=e.toLowerCase(),t=>Vb(t)===e),Ub=e=>t=>typeof t===e,{isArray:wh}=Array,fg=Ub("undefined");function qre(e){return e!==null&&!fg(e)&&e.constructor!==null&&!fg(e.constructor)&&Eo(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const VB=$a("ArrayBuffer");function Jre(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&VB(e.buffer),t}const Qre=Ub("string"),Eo=Ub("function"),UB=Ub("number"),Hb=e=>e!==null&&typeof e=="object",eie=e=>e===!0||e===!1,s_=e=>{if(Vb(e)!=="object")return!1;const t=zI(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},tie=$a("Date"),nie=$a("File"),rie=$a("Blob"),iie=$a("FileList"),oie=e=>Hb(e)&&Eo(e.pipe),aie=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Eo(e.append)&&((t=Vb(e))==="formdata"||t==="object"&&Eo(e.toString)&&e.toString()==="[object FormData]"))},sie=$a("URLSearchParams"),[lie,uie,cie,fie]=["ReadableStream","Request","Response","Headers"].map($a),die=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function em(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),wh(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const $c=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,GB=e=>!fg(e)&&e!==$c;function hE(){const{caseless:e}=GB(this)&&this||{},t={},n=(r,i)=>{const o=e&&HB(t,i)||i;s_(t[o])&&s_(r)?t[o]=hE(t[o],r):s_(r)?t[o]=hE({},r):wh(r)?t[o]=r.slice():t[o]=r};for(let r=0,i=arguments.length;r(em(t,(i,o)=>{n&&Eo(i)?e[o]=BB(i,n):e[o]=i},{allOwnKeys:r}),e),pie=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),vie=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},gie=(e,t,n,r)=>{let i,o,a;const s={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),o=i.length;o-- >0;)a=i[o],(!r||r(a,e,t))&&!s[a]&&(t[a]=e[a],s[a]=!0);e=n!==!1&&zI(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},mie=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},yie=e=>{if(!e)return null;if(wh(e))return e;let t=e.length;if(!UB(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},_ie=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&zI(Uint8Array)),bie=(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let i;for(;(i=r.next())&&!i.done;){const o=i.value;t.call(e,o[0],o[1])}},Sie=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},wie=$a("HTMLFormElement"),xie=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),yL=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Tie=$a("RegExp"),zB=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};em(n,(i,o)=>{let a;(a=t(i,o,e))!==!1&&(r[o]=a||i)}),Object.defineProperties(e,r)},Cie=e=>{zB(e,(t,n)=>{if(Eo(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Eo(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Eie=(e,t)=>{const n={},r=i=>{i.forEach(o=>{n[o]=!0})};return wh(e)?r(e):r(String(e).split(t)),n},Aie=()=>{},Iie=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,Ix="abcdefghijklmnopqrstuvwxyz",_L="0123456789",WB={DIGIT:_L,ALPHA:Ix,ALPHA_DIGIT:Ix+Ix.toUpperCase()+_L},Rie=(e=16,t=WB.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n};function Pie(e){return!!(e&&Eo(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const Oie=e=>{const t=new Array(10),n=(r,i)=>{if(Hb(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[i]=r;const o=wh(r)?[]:{};return em(r,(a,s)=>{const l=n(a,i+1);!fg(l)&&(o[s]=l)}),t[i]=void 0,o}}return r};return n(e,0)},Die=$a("AsyncFunction"),Mie=e=>e&&(Hb(e)||Eo(e))&&Eo(e.then)&&Eo(e.catch),jB=((e,t)=>e?setImmediate:t?((n,r)=>($c.addEventListener("message",({source:i,data:o})=>{i===$c&&o===n&&r.length&&r.shift()()},!1),i=>{r.push(i),$c.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Eo($c.postMessage)),Lie=typeof queueMicrotask<"u"?queueMicrotask.bind($c):typeof process<"u"&&process.nextTick||jB,be={isArray:wh,isArrayBuffer:VB,isBuffer:qre,isFormData:aie,isArrayBufferView:Jre,isString:Qre,isNumber:UB,isBoolean:eie,isObject:Hb,isPlainObject:s_,isReadableStream:lie,isRequest:uie,isResponse:cie,isHeaders:fie,isUndefined:fg,isDate:tie,isFile:nie,isBlob:rie,isRegExp:Tie,isFunction:Eo,isStream:oie,isURLSearchParams:sie,isTypedArray:_ie,isFileList:iie,forEach:em,merge:hE,extend:hie,trim:die,stripBOM:pie,inherits:vie,toFlatObject:gie,kindOf:Vb,kindOfTest:$a,endsWith:mie,toArray:yie,forEachEntry:bie,matchAll:Sie,isHTMLForm:wie,hasOwnProperty:yL,hasOwnProp:yL,reduceDescriptors:zB,freezeMethods:Cie,toObjectSet:Eie,toCamelCase:xie,noop:Aie,toFiniteNumber:Iie,findKey:HB,global:$c,isContextDefined:GB,ALPHABET:WB,generateString:Rie,isSpecCompliantForm:Pie,toJSONObject:Oie,isAsyncFn:Die,isThenable:Mie,setImmediate:jB,asap:Lie};function Bt(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}be.inherits(Bt,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:be.toJSONObject(this.config),code:this.code,status:this.status}}});const YB=Bt.prototype,XB={};["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","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{XB[e]={value:e}});Object.defineProperties(Bt,XB);Object.defineProperty(YB,"isAxiosError",{value:!0});Bt.from=(e,t,n,r,i,o)=>{const a=Object.create(YB);return be.toFlatObject(e,a,function(l){return l!==Error.prototype},s=>s!=="isAxiosError"),Bt.call(a,e.message,t,n,r,i),a.cause=e,a.name=e.name,o&&Object.assign(a,o),a};const Nie=null;function pE(e){return be.isPlainObject(e)||be.isArray(e)}function KB(e){return be.endsWith(e,"[]")?e.slice(0,-2):e}function bL(e,t,n){return e?e.concat(t).map(function(i,o){return i=KB(i),!n&&o?"["+i+"]":i}).join(n?".":""):t}function kie(e){return be.isArray(e)&&!e.some(pE)}const Fie=be.toFlatObject(be,{},null,function(t){return/^is[A-Z]/.test(t)});function Gb(e,t,n){if(!be.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=be.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,y){return!be.isUndefined(y[m])});const r=n.metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&be.isSpecCompliantForm(t);if(!be.isFunction(i))throw new TypeError("visitor must be a function");function u(v){if(v===null)return"";if(be.isDate(v))return v.toISOString();if(!l&&be.isBlob(v))throw new Bt("Blob is not supported. Use a Buffer instead.");return be.isArrayBuffer(v)||be.isTypedArray(v)?l&&typeof Blob=="function"?new Blob([v]):Buffer.from(v):v}function c(v,m,y){let _=v;if(v&&!y&&typeof v=="object"){if(be.endsWith(m,"{}"))m=r?m:m.slice(0,-2),v=JSON.stringify(v);else if(be.isArray(v)&&kie(v)||(be.isFileList(v)||be.endsWith(m,"[]"))&&(_=be.toArray(v)))return m=KB(m),_.forEach(function(w,S){!(be.isUndefined(w)||w===null)&&t.append(a===!0?bL([m],S,o):a===null?m:m+"[]",u(w))}),!1}return pE(v)?!0:(t.append(bL(y,m,o),u(v)),!1)}const f=[],d=Object.assign(Fie,{defaultVisitor:c,convertValue:u,isVisitable:pE});function h(v,m){if(!be.isUndefined(v)){if(f.indexOf(v)!==-1)throw Error("Circular reference detected in "+m.join("."));f.push(v),be.forEach(v,function(_,b){(!(be.isUndefined(_)||_===null)&&i.call(t,_,be.isString(b)?b.trim():b,m,d))===!0&&h(_,m?m.concat(b):[b])}),f.pop()}}if(!be.isObject(e))throw new TypeError("data must be an object");return h(e),t}function SL(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function WI(e,t){this._pairs=[],e&&Gb(e,this,t)}const ZB=WI.prototype;ZB.append=function(t,n){this._pairs.push([t,n])};ZB.toString=function(t){const n=t?function(r){return t.call(this,r,SL)}:SL;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function $ie(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function qB(e,t,n){if(!t)return e;const r=n&&n.encode||$ie;be.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let o;if(i?o=i(t,n):o=be.isURLSearchParams(t)?t.toString():new WI(t,n).toString(r),o){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class wL{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){be.forEach(this.handlers,function(r){r!==null&&t(r)})}}const JB={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Bie=typeof URLSearchParams<"u"?URLSearchParams:WI,Vie=typeof FormData<"u"?FormData:null,Uie=typeof Blob<"u"?Blob:null,Hie={isBrowser:!0,classes:{URLSearchParams:Bie,FormData:Vie,Blob:Uie},protocols:["http","https","file","blob","url","data"]},jI=typeof window<"u"&&typeof document<"u",vE=typeof navigator=="object"&&navigator||void 0,Gie=jI&&(!vE||["ReactNative","NativeScript","NS"].indexOf(vE.product)<0),zie=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Wie=jI&&window.location.href||"http://localhost",jie=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:jI,hasStandardBrowserEnv:Gie,hasStandardBrowserWebWorkerEnv:zie,navigator:vE,origin:Wie},Symbol.toStringTag,{value:"Module"})),si={...jie,...Hie};function Yie(e,t){return Gb(e,new si.classes.URLSearchParams,Object.assign({visitor:function(n,r,i,o){return si.isNode&&be.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}function Xie(e){return be.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Kie(e){const t={},n=Object.keys(e);let r;const i=n.length;let o;for(r=0;r=n.length;return a=!a&&be.isArray(i)?i.length:a,l?(be.hasOwnProp(i,a)?i[a]=[i[a],r]:i[a]=r,!s):((!i[a]||!be.isObject(i[a]))&&(i[a]=[]),t(n,r,i[a],o)&&be.isArray(i[a])&&(i[a]=Kie(i[a])),!s)}if(be.isFormData(e)&&be.isFunction(e.entries)){const n={};return be.forEachEntry(e,(r,i)=>{t(Xie(r),i,n,0)}),n}return null}function Zie(e,t,n){if(be.isString(e))try{return(t||JSON.parse)(e),be.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(0,JSON.stringify)(e)}const tm={transitional:JB,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=be.isObject(t);if(o&&be.isHTMLForm(t)&&(t=new FormData(t)),be.isFormData(t))return i?JSON.stringify(QB(t)):t;if(be.isArrayBuffer(t)||be.isBuffer(t)||be.isStream(t)||be.isFile(t)||be.isBlob(t)||be.isReadableStream(t))return t;if(be.isArrayBufferView(t))return t.buffer;if(be.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return Yie(t,this.formSerializer).toString();if((s=be.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Gb(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||i?(n.setContentType("application/json",!1),Zie(t)):t}],transformResponse:[function(t){const n=this.transitional||tm.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(be.isResponse(t)||be.isReadableStream(t))return t;if(t&&be.isString(t)&&(r&&!this.responseType||i)){const a=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(s){if(a)throw s.name==="SyntaxError"?Bt.from(s,Bt.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:si.classes.FormData,Blob:si.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};be.forEach(["delete","get","head","post","put","patch"],e=>{tm.headers[e]={}});const qie=be.toObjectSet(["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"]),Jie=e=>{const t={};let n,r,i;return e&&e.split(` +`).forEach(function(a){i=a.indexOf(":"),n=a.substring(0,i).trim().toLowerCase(),r=a.substring(i+1).trim(),!(!n||t[n]&&qie[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},xL=Symbol("internals");function op(e){return e&&String(e).trim().toLowerCase()}function l_(e){return e===!1||e==null?e:be.isArray(e)?e.map(l_):String(e)}function Qie(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const eoe=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Rx(e,t,n,r,i){if(be.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!be.isString(t)){if(be.isString(r))return t.indexOf(r)!==-1;if(be.isRegExp(r))return r.test(t)}}function toe(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function noe(e,t){const n=be.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(i,o,a){return this[r].call(this,t,i,o,a)},configurable:!0})})}class Qi{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function o(s,l,u){const c=op(l);if(!c)throw new Error("header name must be a non-empty string");const f=be.findKey(i,c);(!f||i[f]===void 0||u===!0||u===void 0&&i[f]!==!1)&&(i[f||l]=l_(s))}const a=(s,l)=>be.forEach(s,(u,c)=>o(u,c,l));if(be.isPlainObject(t)||t instanceof this.constructor)a(t,n);else if(be.isString(t)&&(t=t.trim())&&!eoe(t))a(Jie(t),n);else if(be.isHeaders(t))for(const[s,l]of t.entries())o(l,s,r);else t!=null&&o(n,t,r);return this}get(t,n){if(t=op(t),t){const r=be.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return Qie(i);if(be.isFunction(n))return n.call(this,i,r);if(be.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=op(t),t){const r=be.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Rx(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function o(a){if(a=op(a),a){const s=be.findKey(r,a);s&&(!n||Rx(r,r[s],s,n))&&(delete r[s],i=!0)}}return be.isArray(t)?t.forEach(o):o(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const o=n[r];(!t||Rx(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const n=this,r={};return be.forEach(this,(i,o)=>{const a=be.findKey(r,o);if(a){n[a]=l_(i),delete n[o];return}const s=t?toe(o):String(o).trim();s!==o&&delete n[o],n[s]=l_(i),r[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return be.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&be.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[xL]=this[xL]={accessors:{}}).accessors,i=this.prototype;function o(a){const s=op(a);r[s]||(noe(i,a),r[s]=!0)}return be.isArray(t)?t.forEach(o):o(t),this}}Qi.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);be.reduceDescriptors(Qi.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});be.freezeMethods(Qi);function Px(e,t){const n=this||tm,r=t||n,i=Qi.from(r.headers);let o=r.data;return be.forEach(e,function(s){o=s.call(n,o,i.normalize(),t?t.status:void 0)}),i.normalize(),o}function eV(e){return!!(e&&e.__CANCEL__)}function xh(e,t,n){Bt.call(this,e??"canceled",Bt.ERR_CANCELED,t,n),this.name="CanceledError"}be.inherits(xh,Bt,{__CANCEL__:!0});function tV(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Bt("Request failed with status code "+n.status,[Bt.ERR_BAD_REQUEST,Bt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function roe(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function ioe(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,o=0,a;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),c=r[o];a||(a=u),n[i]=l,r[i]=u;let f=o,d=0;for(;f!==i;)d+=n[f++],f=f%e;if(i=(i+1)%e,i===o&&(o=(o+1)%e),u-a{n=c,i=null,o&&(clearTimeout(o),o=null),e.apply(null,u)};return[(...u)=>{const c=Date.now(),f=c-n;f>=r?a(u,c):(i=u,o||(o=setTimeout(()=>{o=null,a(i)},r-f)))},()=>i&&a(i)]}const f1=(e,t,n=3)=>{let r=0;const i=ioe(50,250);return ooe(o=>{const a=o.loaded,s=o.lengthComputable?o.total:void 0,l=a-r,u=i(l),c=a<=s;r=a;const f={loaded:a,total:s,progress:s?a/s:void 0,bytes:l,rate:u||void 0,estimated:u&&s&&c?(s-a)/u:void 0,event:o,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(f)},n)},TL=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},CL=e=>(...t)=>be.asap(()=>e(...t)),aoe=si.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,si.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(si.origin),si.navigator&&/(msie|trident)/i.test(si.navigator.userAgent)):()=>!0,soe=si.hasStandardBrowserEnv?{write(e,t,n,r,i,o){const a=[e+"="+encodeURIComponent(t)];be.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),be.isString(r)&&a.push("path="+r),be.isString(i)&&a.push("domain="+i),o===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function loe(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function uoe(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function nV(e,t){return e&&!loe(t)?uoe(e,t):t}const EL=e=>e instanceof Qi?{...e}:e;function hf(e,t){t=t||{};const n={};function r(u,c,f,d){return be.isPlainObject(u)&&be.isPlainObject(c)?be.merge.call({caseless:d},u,c):be.isPlainObject(c)?be.merge({},c):be.isArray(c)?c.slice():c}function i(u,c,f,d){if(be.isUndefined(c)){if(!be.isUndefined(u))return r(void 0,u,f,d)}else return r(u,c,f,d)}function o(u,c){if(!be.isUndefined(c))return r(void 0,c)}function a(u,c){if(be.isUndefined(c)){if(!be.isUndefined(u))return r(void 0,u)}else return r(void 0,c)}function s(u,c,f){if(f in t)return r(u,c);if(f in e)return r(void 0,u)}const l={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(u,c,f)=>i(EL(u),EL(c),f,!0)};return be.forEach(Object.keys(Object.assign({},e,t)),function(c){const f=l[c]||i,d=f(e[c],t[c],c);be.isUndefined(d)&&f!==s||(n[c]=d)}),n}const rV=e=>{const t=hf({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:o,headers:a,auth:s}=t;t.headers=a=Qi.from(a),t.url=qB(nV(t.baseURL,t.url),e.params,e.paramsSerializer),s&&a.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let l;if(be.isFormData(n)){if(si.hasStandardBrowserEnv||si.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((l=a.getContentType())!==!1){const[u,...c]=l?l.split(";").map(f=>f.trim()).filter(Boolean):[];a.setContentType([u||"multipart/form-data",...c].join("; "))}}if(si.hasStandardBrowserEnv&&(r&&be.isFunction(r)&&(r=r(t)),r||r!==!1&&aoe(t.url))){const u=i&&o&&soe.read(o);u&&a.set(i,u)}return t},coe=typeof XMLHttpRequest<"u",foe=coe&&function(e){return new Promise(function(n,r){const i=rV(e);let o=i.data;const a=Qi.from(i.headers).normalize();let{responseType:s,onUploadProgress:l,onDownloadProgress:u}=i,c,f,d,h,v;function m(){h&&h(),v&&v(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let y=new XMLHttpRequest;y.open(i.method.toUpperCase(),i.url,!0),y.timeout=i.timeout;function _(){if(!y)return;const w=Qi.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders()),C={data:!s||s==="text"||s==="json"?y.responseText:y.response,status:y.status,statusText:y.statusText,headers:w,config:e,request:y};tV(function(A){n(A),m()},function(A){r(A),m()},C),y=null}"onloadend"in y?y.onloadend=_:y.onreadystatechange=function(){!y||y.readyState!==4||y.status===0&&!(y.responseURL&&y.responseURL.indexOf("file:")===0)||setTimeout(_)},y.onabort=function(){y&&(r(new Bt("Request aborted",Bt.ECONNABORTED,e,y)),y=null)},y.onerror=function(){r(new Bt("Network Error",Bt.ERR_NETWORK,e,y)),y=null},y.ontimeout=function(){let S=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const C=i.transitional||JB;i.timeoutErrorMessage&&(S=i.timeoutErrorMessage),r(new Bt(S,C.clarifyTimeoutError?Bt.ETIMEDOUT:Bt.ECONNABORTED,e,y)),y=null},o===void 0&&a.setContentType(null),"setRequestHeader"in y&&be.forEach(a.toJSON(),function(S,C){y.setRequestHeader(C,S)}),be.isUndefined(i.withCredentials)||(y.withCredentials=!!i.withCredentials),s&&s!=="json"&&(y.responseType=i.responseType),u&&([d,v]=f1(u,!0),y.addEventListener("progress",d)),l&&y.upload&&([f,h]=f1(l),y.upload.addEventListener("progress",f),y.upload.addEventListener("loadend",h)),(i.cancelToken||i.signal)&&(c=w=>{y&&(r(!w||w.type?new xh(null,e,y):w),y.abort(),y=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const b=roe(i.url);if(b&&si.protocols.indexOf(b)===-1){r(new Bt("Unsupported protocol "+b+":",Bt.ERR_BAD_REQUEST,e));return}y.send(o||null)})},doe=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,i;const o=function(u){if(!i){i=!0,s();const c=u instanceof Error?u:this.reason;r.abort(c instanceof Bt?c:new xh(c instanceof Error?c.message:c))}};let a=t&&setTimeout(()=>{a=null,o(new Bt(`timeout ${t} of ms exceeded`,Bt.ETIMEDOUT))},t);const s=()=>{e&&(a&&clearTimeout(a),a=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(o):u.removeEventListener("abort",o)}),e=null)};e.forEach(u=>u.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>be.asap(s),l}},hoe=function*(e,t){let n=e.byteLength;if(n{const i=poe(e,t);let o=0,a,s=l=>{a||(a=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:u,value:c}=await i.next();if(u){s(),l.close();return}let f=c.byteLength;if(n){let d=o+=f;n(d)}l.enqueue(new Uint8Array(c))}catch(u){throw s(u),u}},cancel(l){return s(l),i.return()}},{highWaterMark:2})},zb=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",iV=zb&&typeof ReadableStream=="function",goe=zb&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),oV=(e,...t)=>{try{return!!e(...t)}catch{return!1}},moe=iV&&oV(()=>{let e=!1;const t=new Request(si.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),IL=64*1024,gE=iV&&oV(()=>be.isReadableStream(new Response("").body)),d1={stream:gE&&(e=>e.body)};zb&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!d1[t]&&(d1[t]=be.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new Bt(`Response type '${t}' is not supported`,Bt.ERR_NOT_SUPPORT,r)})})})(new Response);const yoe=async e=>{if(e==null)return 0;if(be.isBlob(e))return e.size;if(be.isSpecCompliantForm(e))return(await new Request(si.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(be.isArrayBufferView(e)||be.isArrayBuffer(e))return e.byteLength;if(be.isURLSearchParams(e)&&(e=e+""),be.isString(e))return(await goe(e)).byteLength},_oe=async(e,t)=>{const n=be.toFiniteNumber(e.getContentLength());return n??yoe(t)},boe=zb&&(async e=>{let{url:t,method:n,data:r,signal:i,cancelToken:o,timeout:a,onDownloadProgress:s,onUploadProgress:l,responseType:u,headers:c,withCredentials:f="same-origin",fetchOptions:d}=rV(e);u=u?(u+"").toLowerCase():"text";let h=doe([i,o&&o.toAbortSignal()],a),v;const m=h&&h.unsubscribe&&(()=>{h.unsubscribe()});let y;try{if(l&&moe&&n!=="get"&&n!=="head"&&(y=await _oe(c,r))!==0){let C=new Request(t,{method:"POST",body:r,duplex:"half"}),T;if(be.isFormData(r)&&(T=C.headers.get("content-type"))&&c.setContentType(T),C.body){const[A,P]=TL(y,f1(CL(l)));r=AL(C.body,IL,A,P)}}be.isString(f)||(f=f?"include":"omit");const _="credentials"in Request.prototype;v=new Request(t,{...d,signal:h,method:n.toUpperCase(),headers:c.normalize().toJSON(),body:r,duplex:"half",credentials:_?f:void 0});let b=await fetch(v);const w=gE&&(u==="stream"||u==="response");if(gE&&(s||w&&m)){const C={};["status","statusText","headers"].forEach(I=>{C[I]=b[I]});const T=be.toFiniteNumber(b.headers.get("content-length")),[A,P]=s&&TL(T,f1(CL(s),!0))||[];b=new Response(AL(b.body,IL,A,()=>{P&&P(),m&&m()}),C)}u=u||"text";let S=await d1[be.findKey(d1,u)||"text"](b,e);return!w&&m&&m(),await new Promise((C,T)=>{tV(C,T,{data:S,headers:Qi.from(b.headers),status:b.status,statusText:b.statusText,config:e,request:v})})}catch(_){throw m&&m(),_&&_.name==="TypeError"&&/fetch/i.test(_.message)?Object.assign(new Bt("Network Error",Bt.ERR_NETWORK,e,v),{cause:_.cause||_}):Bt.from(_,_&&_.code,e,v)}}),mE={http:Nie,xhr:foe,fetch:boe};be.forEach(mE,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const RL=e=>`- ${e}`,Soe=e=>be.isFunction(e)||e===null||e===!1,aV={getAdapter:e=>{e=be.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let o=0;o`adapter ${s} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=t?o.length>1?`since : +`+o.map(RL).join(` +`):" "+RL(o[0]):"as no adapter specified";throw new Bt("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return r},adapters:mE};function Ox(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new xh(null,e)}function PL(e){return Ox(e),e.headers=Qi.from(e.headers),e.data=Px.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),aV.getAdapter(e.adapter||tm.adapter)(e).then(function(r){return Ox(e),r.data=Px.call(e,e.transformResponse,r),r.headers=Qi.from(r.headers),r},function(r){return eV(r)||(Ox(e),r&&r.response&&(r.response.data=Px.call(e,e.transformResponse,r.response),r.response.headers=Qi.from(r.response.headers))),Promise.reject(r)})}const sV="1.7.9",Wb={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Wb[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const OL={};Wb.transitional=function(t,n,r){function i(o,a){return"[Axios v"+sV+"] Transitional option '"+o+"'"+a+(r?". "+r:"")}return(o,a,s)=>{if(t===!1)throw new Bt(i(a," has been removed"+(n?" in "+n:"")),Bt.ERR_DEPRECATED);return n&&!OL[a]&&(OL[a]=!0,console.warn(i(a," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,a,s):!0}};Wb.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function woe(e,t,n){if(typeof e!="object")throw new Bt("options must be an object",Bt.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const o=r[i],a=t[o];if(a){const s=e[o],l=s===void 0||a(s,o,e);if(l!==!0)throw new Bt("option "+o+" must be "+l,Bt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Bt("Unknown option "+o,Bt.ERR_BAD_OPTION)}}const u_={assertOptions:woe,validators:Wb},Wa=u_.validators;class Qc{constructor(t){this.defaults=t,this.interceptors={request:new wL,response:new wL}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=i.stack?i.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=hf(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&u_.assertOptions(r,{silentJSONParsing:Wa.transitional(Wa.boolean),forcedJSONParsing:Wa.transitional(Wa.boolean),clarifyTimeoutError:Wa.transitional(Wa.boolean)},!1),i!=null&&(be.isFunction(i)?n.paramsSerializer={serialize:i}:u_.assertOptions(i,{encode:Wa.function,serialize:Wa.function},!0)),u_.assertOptions(n,{baseUrl:Wa.spelling("baseURL"),withXsrfToken:Wa.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let a=o&&be.merge(o.common,o[n.method]);o&&be.forEach(["delete","get","head","post","put","patch","common"],v=>{delete o[v]}),n.headers=Qi.concat(a,o);const s=[];let l=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(n)===!1||(l=l&&m.synchronous,s.unshift(m.fulfilled,m.rejected))});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let c,f=0,d;if(!l){const v=[PL.bind(this),void 0];for(v.unshift.apply(v,s),v.push.apply(v,u),d=v.length,c=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](i);r._listeners=null}),this.promise.then=i=>{let o;const a=new Promise(s=>{r.subscribe(s),o=s}).then(i);return a.cancel=function(){r.unsubscribe(o)},a},t(function(o,a,s){r.reason||(r.reason=new xh(o,a,s),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new YI(function(i){t=i}),cancel:t}}}function xoe(e){return function(n){return e.apply(null,n)}}function Toe(e){return be.isObject(e)&&e.isAxiosError===!0}const yE={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(yE).forEach(([e,t])=>{yE[t]=e});function lV(e){const t=new Qc(e),n=BB(Qc.prototype.request,t);return be.extend(n,Qc.prototype,t,{allOwnKeys:!0}),be.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return lV(hf(e,i))},n}const Gt=lV(tm);Gt.Axios=Qc;Gt.CanceledError=xh;Gt.CancelToken=YI;Gt.isCancel=eV;Gt.VERSION=sV;Gt.toFormData=Gb;Gt.AxiosError=Bt;Gt.Cancel=Gt.CanceledError;Gt.all=function(t){return Promise.all(t)};Gt.spread=xoe;Gt.isAxiosError=Toe;Gt.mergeConfig=hf;Gt.AxiosHeaders=Qi;Gt.formToJSON=e=>QB(be.isHTMLForm(e)?new FormData(e):e);Gt.getAdapter=aV.getAdapter;Gt.HttpStatusCode=yE;Gt.default=Gt;var c_={exports:{}},Coe=c_.exports,DL;function Eoe(){return DL||(DL=1,function(e){(function(t,n){e.exports?e.exports=n():t.ReconnectingWebSocket=n()})(Coe,function(){if(!("WebSocket"in window))return;function t(n,r,i){var o={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3,maxReconnectAttempts:null};i||(i={});for(var a in o)typeof i[a]<"u"?this[a]=i[a]:this[a]=o[a];this.url=n,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var s=this,l,u=!1,c=!1,f=document.createElement("div");f.addEventListener("open",function(h){s.onopen(h)}),f.addEventListener("close",function(h){s.onclose(h)}),f.addEventListener("connecting",function(h){s.onconnecting(h)}),f.addEventListener("message",function(h){s.onmessage(h)}),f.addEventListener("error",function(h){s.onerror(h)}),this.addEventListener=f.addEventListener.bind(f),this.removeEventListener=f.removeEventListener.bind(f),this.dispatchEvent=f.dispatchEvent.bind(f);function d(h,v){var m=document.createEvent("CustomEvent");return m.initCustomEvent(h,!1,!1,v),m}this.open=function(h){if(l=new WebSocket(s.url,r||[]),h){if(this.maxReconnectAttempts&&this.reconnectAttempts>this.maxReconnectAttempts)return}else f.dispatchEvent(d("connecting")),this.reconnectAttempts=0;(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",s.url);var v=l,m=setTimeout(function(){(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",s.url),c=!0,v.close(),c=!1},s.timeoutInterval);l.onopen=function(y){clearTimeout(m),(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","onopen",s.url),s.protocol=l.protocol,s.readyState=WebSocket.OPEN,s.reconnectAttempts=0;var _=d("open");_.isReconnect=h,h=!1,f.dispatchEvent(_)},l.onclose=function(y){if(clearTimeout(b),l=null,u)s.readyState=WebSocket.CLOSED,f.dispatchEvent(d("close"));else{s.readyState=WebSocket.CONNECTING;var _=d("connecting");_.code=y.code,_.reason=y.reason,_.wasClean=y.wasClean,f.dispatchEvent(_),!h&&!c&&((s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","onclose",s.url),f.dispatchEvent(d("close")));var b=s.reconnectInterval*Math.pow(s.reconnectDecay,s.reconnectAttempts);setTimeout(function(){s.reconnectAttempts++,s.open(!0)},b>s.maxReconnectInterval?s.maxReconnectInterval:b)}},l.onmessage=function(y){(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",s.url,y.data);var _=d("message");_.data=y.data,f.dispatchEvent(_)},l.onerror=function(y){(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","onerror",s.url,y),f.dispatchEvent(d("error"))}},this.automaticOpen==!0&&this.open(!1),this.send=function(h){if(l)return(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","send",s.url,h),l.send(h);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(h,v){typeof h>"u"&&(h=1e3),u=!0,l&&l.close(h,v)},this.refresh=function(){l&&l.close()}}return t.prototype.onopen=function(n){},t.prototype.onclose=function(n){},t.prototype.onconnecting=function(n){},t.prototype.onmessage=function(n){},t.prototype.onerror=function(n){},t.debugAll=!1,t.CONNECTING=WebSocket.CONNECTING,t.OPEN=WebSocket.OPEN,t.CLOSING=WebSocket.CLOSING,t.CLOSED=WebSocket.CLOSED,t})}(c_)),c_.exports}var Aoe=Eoe();const Ioe=Vg(Aoe);Gt.interceptors.request.use(e=>{var t;return e.baseURL=Eu(fl.value),e.headers.Authorization="Bearer "+((t=fl.value)==null?void 0:t.password),e});Gt.interceptors.response.use(null,e=>(e.status===401&&ci.value?(DB(ci.value),ci.value=null,Fa.push({name:un.setup}),gs(()=>{const{showTip:t}=Lb();t("unauthorizedTip")})):e.status===404&&(ci.value=null,Fa.push({name:un.setup})),e));const dg=Fe(),_E=Fe(!1),Roe=()=>Gt.get("/version"),hl=Ve(()=>{var e;return(e=dg.value)==null?void 0:e.includes("sing-box")}),uV=Fe("1.48.0");Yt(fl,async e=>{if(e){const{data:t}=await Roe();if(dg.value=t.version,hl.value)return;_E.value=await joe(),_E.value&&K0.value&&hV()}},{immediate:!0});const Poe=()=>Gt.get("/proxies"),Ooe=(e,t)=>Gt.put(`/proxies/${encodeURIComponent(e)}`,{name:t}),ML=(e,t,n)=>Gt.get(`/proxies/${encodeURIComponent(e)}/delay`,{params:{url:t,timeout:n}}),LL=(e,t,n)=>Gt.get(`/group/${encodeURIComponent(e)}/delay`,{params:{url:t,timeout:n}}),Doe=()=>Gt.get("/providers/proxies"),cV=e=>Gt.put(`/providers/proxies/${encodeURIComponent(e)}`),Moe=e=>Gt.get(`/providers/proxies/${encodeURIComponent(e)}/healthcheck`,{timeout:15e3}),Loe=()=>Gt.get("/rules"),Noe=()=>Gt.get("/providers/rules"),fV=e=>Gt.put(`/providers/rules/${encodeURIComponent(e)}`),jb=e=>Gt.delete(`/connections/${e}`),koe=()=>Gt.get("/configs"),Foe=e=>Gt.patch("/configs",e),NL=()=>Gt.post("/cache/fakeip/flush"),$oe=()=>Gt.put("/configs?reload=true",{path:"",payload:""}),dV=()=>Gt.post("/upgrade/ui"),hV=()=>Gt.post("/upgrade"),Boe=()=>Gt.post("/restart"),Voe=e=>Gt.get("/dns/query",{params:e}),Yb=(e,t)=>{const n=fl.value,r=new URL(`${Eu(n).replace("http","ws")}/${e}`);r.searchParams.append("token",(n==null?void 0:n.password)||""),t&&Object.entries(t).forEach(([s,l])=>{r.searchParams.append(s,l)});const i=Fe(),o=new Ioe(r.toString()),a=()=>{o.close()};return o.onmessage=({data:s})=>{i.value=JSON.parse(s)},{data:i,close:a}},Uoe=()=>Yb("connections"),Hoe=(e={})=>Yb("logs",e),Goe=()=>Yb("memory"),zoe=()=>Yb("traffic"),kL=async(e,t=1e4)=>{const n=new AbortController,r=setTimeout(()=>n.abort(),t);try{return(await fetch(`${Eu(e)}/version`,{method:"GET",headers:{Authorization:`Bearer ${e.password}`},signal:n.signal})).ok}catch{return!1}finally{clearTimeout(r)}},Woe=async()=>{const e=await fetch("https://api.github.com/repos/Zephyruso/zashboard/releases/latest"),{tag_name:t}=await e.json();return t&&t!==`v${uV.value}`},FL=async(e,t)=>{const n=await fetch(`https://api.github.com/repos/MetaCubeX/mihomo${e}`),{assets:r}=await n.json();return!r.some(({name:o})=>o.includes(t))},joe=async()=>{const e=/(alpha|beta|meta)-?(\w+)/.exec(dg.value);if(!e){const r=await fetch("https://api.github.com/repos/MetaCubeX/mihomo/releases/latest"),{tag_name:i}=await r.json();return i&&!i.endsWith(dg.value)}const t=e[1],n=e[2];return t==="meta"?await FL("/releases/latest",n):t==="alpha"?await FL("/releases/tags/Prerelease-Alpha",n):!1},Yoe=()=>fetch("https://api-v3.speedtest.cn/ip"),pV=async(e="")=>await(await fetch("https://api.ip.sb/geoip"+(e?`/${e}`:""))).json(),nm=e=>new Promise(t=>{const n=performance.now(),r=document.createElement("img");r.src=e+"?_="+new Date().getTime(),r.style.display="none",r.onload=()=>{const i=performance.now();r.remove(),t(i-n)},r.onerror=()=>{r.remove(),t(0)},document.body.appendChild(r)}),Xoe=()=>nm("https://www.cloudflare.com/favicon.ico"),Koe=()=>nm("https://yt3.ggpht.com/favicon.ico"),Zoe=()=>nm("https://github.githubassets.com/favicon.ico"),qoe=()=>nm("https://openai.com/favicon.ico"),Joe=()=>nm("https://apps.bdimg.com/favicon.ico"),ea=Fe([]),f_=Fe([]),hg=Fe(0),pg=Fe(0);let Oy;const Qoe=()=>{Oy==null||Oy(),ea.value=[],f_.value=[],hg.value=0,pg.value=0;const e=Uoe(),t=Yt(e.data,n=>{var r;n&&(hg.value=n.downloadTotal,pg.value=n.uploadTotal,!v_.value&&(f_.value=[...f_.value,...Ai.differenceWith(ea.value,n.connections,(i,o)=>i.id===o.id)].slice(-500),ea.value=((r=n.connections)==null?void 0:r.map(i=>{const o=ea.value.find(a=>a.id===i.id);return(i.metadata.destinationPort==="443"||i.metadata.sniffHost)&&i.metadata.network==="udp"&&(i.metadata.network="quic"),o?{...i,downloadSpeed:i.download-o.download,uploadSpeed:i.upload-o.upload}:{...i,downloadSpeed:0,uploadSpeed:0}}))??[]))});Oy=()=>{t(),e.close()}},bv=Mt("config/quick-filter-regex","direct|dns-out"),d_=Mt("config/quick-filter-enabled",!1),Cc=Fe(zs.ACTIVE),eae=Ve(()=>p_.value===Lc.DESC),$L={[zi.HOST]:(e,t)=>(e.metadata.host||e.metadata.destinationIP).localeCompare(t.metadata.host||t.metadata.destinationIP),[zi.RULE]:(e,t)=>e.rule.localeCompare(t.rule),[zi.CHAINS]:(e,t)=>e.chains.join("").localeCompare(t.chains.join("")),[zi.DOWNLOAD]:(e,t)=>e.download-t.download,[zi.DOWNLOAD_SPEED]:(e,t)=>e.downloadSpeed-t.downloadSpeed,[zi.UPLOAD]:(e,t)=>e.upload-t.upload,[zi.UPLOAD_SPEED]:(e,t)=>e.uploadSpeed-t.uploadSpeed,[zi.SOURCE_IP]:(e,t)=>e.metadata.sourceIP.localeCompare(t.metadata.sourceIP),[zi.TYPE]:(e,t)=>(e.metadata.type+e.metadata.network).localeCompare(t.metadata.type+t.metadata.network),[zi.CONNECT_TIME]:(e,t)=>La(e.start).valueOf()-La(t.start).valueOf()},h_=Mt("config/connection-sort-type",zi.HOST),p_=Mt("config/connection-sort-direction",Lc.ASC),Sv=Fe(""),v_=Fe(!1),Fd=Ve(()=>{let e=null;return d_.value&&bv.value&&(e=new RegExp(bv.value,"i")),(Cc.value===zs.ACTIVE?ea.value:f_.value).filter(t=>e&&(e.test(t.chains.join(""))||e.test(t.metadata.host)||e.test(t.metadata.destinationIP))||Us.value!==null&&t.metadata.sourceIP!==Us.value?!1:Sv.value?[t.metadata.host,t.metadata.destinationIP,t.metadata.destinationPort,t.metadata.sourceIP,t.metadata.sourcePort,t.metadata.processPath,t.metadata.type,t.metadata.network,t.chains.join(""),t.rule,t.rulePayload].some(n=>n==null?void 0:n.includes(Sv.value)):!0).sort((t,n)=>{eae.value&&([t,n]=[n,t]);const r=kc.value?$L[h_.value](t,n):$L[zi.HOST](t,n);return r===0?t.id.localeCompare(n.id):r})}),Us=Fe(null),tae=Ve(()=>Ore.uniq(ea.value.map(e=>e.metadata.sourceIP)).sort());function Xf(e,t,n){let r=n.initialDeps??[],i;return()=>{var o,a,s,l;let u;n.key&&((o=n.debug)!=null&&o.call(n))&&(u=Date.now());const c=e();if(!(c.length!==r.length||c.some((h,v)=>r[v]!==h)))return i;r=c;let d;if(n.key&&((a=n.debug)!=null&&a.call(n))&&(d=Date.now()),i=t(...c),n.key&&((s=n.debug)!=null&&s.call(n))){const h=Math.round((Date.now()-u)*100)/100,v=Math.round((Date.now()-d)*100)/100,m=v/16,y=(_,b)=>{for(_=String(_);_.lengthMath.abs(e-t)<1,rae=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},iae=e=>e,oae=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let i=t;i<=n;i++)r.push(i);return r},aae=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const i=a=>{const{width:s,height:l}=a;t({width:Math.round(s),height:Math.round(l)})};if(i(n.getBoundingClientRect()),!r.ResizeObserver)return()=>{};const o=new r.ResizeObserver(a=>{const s=a[0];if(s!=null&&s.borderBoxSize){const l=s.borderBoxSize[0];if(l){i({width:l.inlineSize,height:l.blockSize});return}}i(n.getBoundingClientRect())});return o.observe(n,{box:"border-box"}),()=>{o.unobserve(n)}},BL={passive:!0},sae=typeof window>"u"?!0:"onscrollend"in window,lae=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let i=0;const o=e.options.useScrollendEvent&&sae?()=>{}:rae(r,()=>{t(i,!1)},e.options.isScrollingResetDelay),a=u=>()=>{const{horizontal:c,isRtl:f}=e.options;i=c?n.scrollLeft*(f&&-1||1):n.scrollTop,o(),t(i,u)},s=a(!0),l=a(!1);return l(),n.addEventListener("scroll",s,BL),n.addEventListener("scrollend",l,BL),()=>{n.removeEventListener("scroll",s),n.removeEventListener("scrollend",l)}},uae=(e,t,n)=>{if(t!=null&&t.borderBoxSize){const r=t.borderBoxSize[0];if(r)return Math.round(r[n.options.horizontal?"inlineSize":"blockSize"])}return Math.round(e.getBoundingClientRect()[n.options.horizontal?"width":"height"])},cae=(e,{adjustments:t=0,behavior:n},r)=>{var i,o;const a=e+t;(o=(i=r.scrollElement)==null?void 0:i.scrollTo)==null||o.call(i,{[r.options.horizontal?"left":"top"]:a,behavior:n})};class fae{constructor(t){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let n=null;const r=()=>n||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:n=new this.targetWindow.ResizeObserver(i=>{i.forEach(o=>{this._measureElement(o.target,o)})}));return{disconnect:()=>{var i;(i=r())==null||i.disconnect(),n=null},observe:i=>{var o;return(o=r())==null?void 0:o.observe(i,{box:"border-box"})},unobserve:i=>{var o;return(o=r())==null?void 0:o.unobserve(i)}}})(),this.range=null,this.setOptions=n=>{Object.entries(n).forEach(([r,i])=>{typeof i>"u"&&delete n[r]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:iae,rangeExtractor:oae,onChange:()=>{},measureElement:uae,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!0,...n}},this.notify=n=>{var r,i;(i=(r=this.options).onChange)==null||i.call(r,this,n)},this.maybeNotify=Xf(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),n=>{this.notify(n)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(n=>n()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var n;const r=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==r){if(this.cleanup(),!r){this.maybeNotify();return}this.scrollElement=r,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((n=this.scrollElement)==null?void 0:n.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,o)=>{this.scrollAdjustments=0,this.scrollDirection=o?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(n,r)=>{const i=new Map,o=new Map;for(let a=r-1;a>=0;a--){const s=n[a];if(i.has(s.lane))continue;const l=o.get(s.lane);if(l==null||s.end>l.end?o.set(s.lane,s):s.enda.end===s.end?a.index-s.index:a.end-s.end)[0]:void 0},this.getMeasurementOptions=Xf(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(n,r,i,o,a)=>(this.pendingMeasuredCacheIndexes=[],{count:n,paddingStart:r,scrollMargin:i,getItemKey:o,enabled:a}),{key:!1}),this.getMeasurements=Xf(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:n,paddingStart:r,scrollMargin:i,getItemKey:o,enabled:a},s)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),[];this.measurementsCache.length===0&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(c=>{this.itemSizeCache.set(c.key,c.size)}));const l=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const u=this.measurementsCache.slice(0,l);for(let c=l;cthis.options.debug}),this.calculateRange=Xf(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset()],(n,r,i)=>this.range=n.length>0&&r>0?dae({measurements:n,outerSize:r,scrollOffset:i}):null,{key:!1,debug:()=>this.options.debug}),this.getIndexes=Xf(()=>[this.options.rangeExtractor,this.calculateRange(),this.options.overscan,this.options.count],(n,r,i,o)=>r===null?[]:n({startIndex:r.startIndex,endIndex:r.endIndex,overscan:i,count:o}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=n=>{const r=this.options.indexAttribute,i=n.getAttribute(r);return i?parseInt(i,10):(console.warn(`Missing attribute name '${r}={index}' on measured element.`),-1)},this._measureElement=(n,r)=>{const i=this.indexFromElement(n),o=this.measurementsCache[i];if(!o)return;const a=o.key,s=this.elementsCache.get(a);s!==n&&(s&&this.observer.unobserve(s),this.observer.observe(n),this.elementsCache.set(a,n)),n.isConnected&&this.resizeItem(i,this.options.measureElement(n,r,this))},this.resizeItem=(n,r)=>{const i=this.measurementsCache[n];if(!i)return;const o=this.itemSizeCache.get(i.key)??i.size,a=r-o;a!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(i,a,this):i.start{if(!n){this.elementsCache.forEach((r,i)=>{r.isConnected||(this.observer.unobserve(r),this.elementsCache.delete(i))});return}this._measureElement(n,void 0)},this.getVirtualItems=Xf(()=>[this.getIndexes(),this.getMeasurements()],(n,r)=>{const i=[];for(let o=0,a=n.length;othis.options.debug}),this.getVirtualItemForOffset=n=>{const r=this.getMeasurements();if(r.length!==0)return Dx(r[vV(0,r.length-1,i=>Dx(r[i]).start,n)])},this.getOffsetForAlignment=(n,r)=>{const i=this.getSize(),o=this.getScrollOffset();r==="auto"&&n>=o+i&&(r="end"),r==="end"&&(n-=i);const a=this.options.horizontal?"scrollWidth":"scrollHeight",l=(this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[a]:this.scrollElement[a]:0)-i;return Math.max(Math.min(l,n),0)},this.getOffsetForIndex=(n,r="auto")=>{n=Math.max(0,Math.min(n,this.options.count-1));const i=this.measurementsCache[n];if(!i)return;const o=this.getSize(),a=this.getScrollOffset();if(r==="auto")if(i.end>=a+o-this.options.scrollPaddingEnd)r="end";else if(i.start<=a+this.options.scrollPaddingStart)r="start";else return[a,r];const s=i.start-this.options.scrollPaddingStart+(i.size-o)/2;switch(r){case"center":return[this.getOffsetForAlignment(s,r),r];case"end":return[this.getOffsetForAlignment(i.end+this.options.scrollPaddingEnd,r),r];default:return[this.getOffsetForAlignment(i.start-this.options.scrollPaddingStart,r),r]}},this.isDynamicMode=()=>this.elementsCache.size>0,this.cancelScrollToIndex=()=>{this.scrollToIndexTimeoutId!==null&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=(n,{align:r="start",behavior:i}={})=>{this.cancelScrollToIndex(),i==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(n,r),{adjustments:void 0,behavior:i})},this.scrollToIndex=(n,{align:r="auto",behavior:i}={})=>{n=Math.max(0,Math.min(n,this.options.count-1)),this.cancelScrollToIndex(),i==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");const o=this.getOffsetForIndex(n,r);if(!o)return;const[a,s]=o;this._scrollToOffset(a,{adjustments:void 0,behavior:i}),i!=="smooth"&&this.isDynamicMode()&&this.targetWindow&&(this.scrollToIndexTimeoutId=this.targetWindow.setTimeout(()=>{if(this.scrollToIndexTimeoutId=null,this.elementsCache.has(this.options.getItemKey(n))){const[u]=Dx(this.getOffsetForIndex(n,s));nae(u,this.getScrollOffset())||this.scrollToIndex(n,{align:s,behavior:i})}else this.scrollToIndex(n,{align:s,behavior:i})}))},this.scrollBy=(n,{behavior:r}={})=>{this.cancelScrollToIndex(),r==="smooth"&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+n,{adjustments:void 0,behavior:r})},this.getTotalSize=()=>{var n;const r=this.getMeasurements();let i;return r.length===0?i=this.options.paddingStart:i=this.options.lanes===1?((n=r[r.length-1])==null?void 0:n.end)??0:Math.max(...r.slice(-this.options.lanes).map(o=>o.end)),Math.max(i-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(n,{adjustments:r,behavior:i})=>{this.options.scrollToFn(n,{behavior:i,adjustments:r},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(t)}}const vV=(e,t,n,r)=>{for(;e<=t;){const i=(e+t)/2|0,o=n(i);if(or)t=i-1;else return i}return e>0?e-1:0};function dae({measurements:e,outerSize:t,scrollOffset:n}){const r=e.length-1,o=vV(0,r,s=>e[s].start,n);let a=o;for(;aN(e).getScrollElement(),i=>{i&&t._willUpdate()},{immediate:!0}),Yt(()=>N(e),i=>{t.setOptions({...i,onChange:(o,a)=>{var s;kC(n),(s=i.onChange)==null||s.call(i,o,a)}}),t._willUpdate(),kC(n)},{immediate:!0}),rI(r),n}function gV(e){return hae(Ve(()=>({observeElementRect:aae,observeElementOffset:lae,scrollToFn:cae,...N(e)})))}const pae=["data-index"],XI=it({__name:"VirtualScroller",props:{data:{}},setup(e){const t=Fe(null),n=e,r=Ve(()=>({count:n.data.length,getScrollElement:()=>t.value,estimateSize:()=>55,overscan:24})),i=gV(r),o=Ve(()=>i.value.getVirtualItems()),a=Ve(()=>i.value.getTotalSize()),s=l=>{l&&i.value.measureElement(l)};return(l,u)=>{var c;return K(),ae("div",{ref_key:"parentRef",ref:t,class:"flex h-full w-full overflow-y-auto p-2"},[L("div",{style:Gr({height:`${a.value}px`}),class:"relative w-full max-sm:min-h-[calc(100%+1px)]"},[L("div",{class:"absolute left-0 top-0 w-full",style:Gr({transform:`translateY(${((c=o.value[0])==null?void 0:c.start)??0}px)`})},[(K(!0),ae(Ze,null,on(o.value,f=>(K(),ae("div",{key:f.key.toString(),"data-index":f.index,ref_for:!0,ref:s},[Md(l.$slots,"default",{item:l.data[f.index],index:f.index})],8,pae))),128))],4)],4)],512)}}}),VL=Fe(),UL=Fe(),KI=()=>({infoConn:VL,modalRef:UL,handlerInfo:t=>{var n;VL.value=t,(n=UL.value)==null||n.showModal()}}),vae=it({props:{conn:Object},name:"ConnectionCard",setup(e){const{handlerInfo:t}=KI();return()=>{const n={[vt.Host]:ye("span",{class:"w-80 grow break-all text-primary/80"},[e.conn.metadata.host||e.conn.metadata.destinationIP]),[vt.Destination]:ye("span",{class:"w-80 grow break-all"},[kB(e.conn)]),[vt.SourceIP]:ye("span",{class:"w-80 grow break-all"},[u1(e.conn.metadata.sourceIP)]),[vt.SourcePort]:ye("span",{class:"w-80 grow break-all"},[e.conn.metadata.sourcePort]),[vt.Type]:ye("span",{class:"w-80 grow break-all"},[FB(e.conn)]),[vt.Rule]:ye("span",{class:"w-80 grow break-all"},[e.conn.rule,e.conn.rulePayload&&ye(Ze,null,[ft(": "),e.conn.rulePayload])]),[vt.Process]:ye("span",{class:"w-80 grow break-all"},[NB(e.conn)]),[vt.Chains]:ye("span",{class:["flex w-80 grow items-center gap-1 break-all",_v.value===qg.REVERSE&&"flex-row-reverse justify-end"]},[Ai.last(e.conn.chains),Ai.last(e.conn.chains)!==Ai.first(e.conn.chains)&&ye(Ze,null,[ye(ff,{class:"h-4 w-4"},null),Ai.first(e.conn.chains)])]),[vt.Download]:ye("div",{class:"flex items-center gap-1 whitespace-nowrap"},[Tn(e.conn.download),ye(gQ,{class:"h-4 w-4"},null)]),[vt.Upload]:ye("div",{class:"flex items-center gap-1 whitespace-nowrap"},[Tn(e.conn.upload),ye(yQ,{class:"h-4 w-4"},null)]),[vt.DlSpeed]:ye("div",{class:"flex items-center gap-1 whitespace-nowrap"},[Tn(e.conn.downloadSpeed),ft("/s"),ye(Eb,{class:"h-4 w-4"},null)]),[vt.UlSpeed]:ye("div",{class:"flex items-center gap-1 whitespace-nowrap"},[Tn(e.conn.uploadSpeed),ft("/s"),ye(Kg,{class:"h-4 w-4"},null)]),[vt.ConnectTime]:ye("div",{class:"gap-1 whitespace-nowrap"},[Bb(e.conn.start)]),[vt.Details]:ye("button",{class:"btn btn-circle btn-xs",onClick:()=>t(e.conn)},[ye(G4,{class:"h-4 w-4"},null)]),[vt.Close]:ye("button",{class:"btn btn-circle btn-xs",onClick:()=>jb(e.conn.id)},[ye(Ib,{class:"h-4 w-4"},null)])};return ye("div",{class:"card gap-1 p-1"},[Fs.value.map(r=>ye("div",{class:"flex items-center gap-1 text-sm"},[r.map(i=>n[i])]))])}}}),gae={key:0,class:"card m-2 flex-row p-2 text-sm"},mae=it({__name:"ConnectionCardList",setup(e){return(t,n)=>N(Fd).length?(K(),Ot(XI,{key:1,data:N(Fd)},{default:Mr(({item:r})=>[ye(N(vae),{class:"mb-1",conn:r},null,8,["conn"])]),_:1},8,["data"])):(K(),ae("div",gae,re(t.$t("noContent")),1))}});/** + * table-core + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function uu(e,t){return typeof e=="function"?e(t):e}function Io(e,t){return n=>{t.setState(r=>({...r,[e]:uu(n,r[e])}))}}function ef(e){return e instanceof Function}function yae(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function mV(e,t){const n=[],r=i=>{i.forEach(o=>{n.push(o);const a=t(o);a!=null&&a.length&&r(a)})};return r(e),n}function xt(e,t,n){let r=[],i;return o=>{let a;n.key&&n.debug&&(a=Date.now());const s=e(o);if(!(s.length!==r.length||s.some((c,f)=>r[f]!==c)))return i;r=s;let u;if(n.key&&n.debug&&(u=Date.now()),i=t(...s),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){const c=Math.round((Date.now()-a)*100)/100,f=Math.round((Date.now()-u)*100)/100,d=f/16,h=(v,m)=>{for(v=String(v);v.length{var i;return(i=e==null?void 0:e.debugAll)!=null?i:e[t]},key:!1,onChange:r}}function _ae(e,t,n,r){const i=()=>{var a;return(a=o.getValue())!=null?a:e.options.renderFallbackValue},o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:i,getContext:xt(()=>[e,n,t,o],(a,s,l,u)=>({table:a,column:s,row:l,cell:u,getValue:u.getValue,renderValue:u.renderValue}),Tt(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(o,n,t,e)},{}),o}function bae(e,t,n,r){var i,o;const s={...e._getDefaultColumnDef(),...t},l=s.accessorKey;let u=(i=(o=s.id)!=null?o:l?typeof String.prototype.replaceAll=="function"?l.replaceAll(".","_"):l.replace(/\./g,"_"):void 0)!=null?i:typeof s.header=="string"?s.header:void 0,c;if(s.accessorFn?c=s.accessorFn:l&&(l.includes(".")?c=d=>{let h=d;for(const m of l.split(".")){var v;h=(v=h)==null?void 0:v[m]}return h}:c=d=>d[s.accessorKey]),!u)throw new Error;let f={id:`${String(u)}`,accessorFn:c,parent:r,depth:n,columnDef:s,columns:[],getFlatColumns:xt(()=>[!0],()=>{var d;return[f,...(d=f.columns)==null?void 0:d.flatMap(h=>h.getFlatColumns())]},Tt(e.options,"debugColumns")),getLeafColumns:xt(()=>[e._getOrderColumnsFn()],d=>{var h;if((h=f.columns)!=null&&h.length){let v=f.columns.flatMap(m=>m.getLeafColumns());return d(v)}return[f]},Tt(e.options,"debugColumns"))};for(const d of e._features)d.createColumn==null||d.createColumn(f,e);return f}const Xr="debugHeaders";function HL(e,t,n){var r;let o={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],s=l=>{l.subHeaders&&l.subHeaders.length&&l.subHeaders.map(s),a.push(l)};return s(o),a},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(o,e)}),o}const Sae={createTable:e=>{e.getHeaderGroups=xt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{var o,a;const s=(o=r==null?void 0:r.map(f=>n.find(d=>d.id===f)).filter(Boolean))!=null?o:[],l=(a=i==null?void 0:i.map(f=>n.find(d=>d.id===f)).filter(Boolean))!=null?a:[],u=n.filter(f=>!(r!=null&&r.includes(f.id))&&!(i!=null&&i.includes(f.id)));return Dy(t,[...s,...u,...l],e)},Tt(e.options,Xr)),e.getCenterHeaderGroups=xt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(o=>!(r!=null&&r.includes(o.id))&&!(i!=null&&i.includes(o.id))),Dy(t,n,e,"center")),Tt(e.options,Xr)),e.getLeftHeaderGroups=xt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var i;const o=(i=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?i:[];return Dy(t,o,e,"left")},Tt(e.options,Xr)),e.getRightHeaderGroups=xt(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var i;const o=(i=r==null?void 0:r.map(a=>n.find(s=>s.id===a)).filter(Boolean))!=null?i:[];return Dy(t,o,e,"right")},Tt(e.options,Xr)),e.getFooterGroups=xt(()=>[e.getHeaderGroups()],t=>[...t].reverse(),Tt(e.options,Xr)),e.getLeftFooterGroups=xt(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),Tt(e.options,Xr)),e.getCenterFooterGroups=xt(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),Tt(e.options,Xr)),e.getRightFooterGroups=xt(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),Tt(e.options,Xr)),e.getFlatHeaders=xt(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),Tt(e.options,Xr)),e.getLeftFlatHeaders=xt(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),Tt(e.options,Xr)),e.getCenterFlatHeaders=xt(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),Tt(e.options,Xr)),e.getRightFlatHeaders=xt(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),Tt(e.options,Xr)),e.getCenterLeafHeaders=xt(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Tt(e.options,Xr)),e.getLeftLeafHeaders=xt(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Tt(e.options,Xr)),e.getRightLeafHeaders=xt(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),Tt(e.options,Xr)),e.getLeafHeaders=xt(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var i,o,a,s,l,u;return[...(i=(o=t[0])==null?void 0:o.headers)!=null?i:[],...(a=(s=n[0])==null?void 0:s.headers)!=null?a:[],...(l=(u=r[0])==null?void 0:u.headers)!=null?l:[]].map(c=>c.getLeafHeaders()).flat()},Tt(e.options,Xr))}};function Dy(e,t,n,r){var i,o;let a=0;const s=function(d,h){h===void 0&&(h=1),a=Math.max(a,h),d.filter(v=>v.getIsVisible()).forEach(v=>{var m;(m=v.columns)!=null&&m.length&&s(v.columns,h+1)},0)};s(e);let l=[];const u=(d,h)=>{const v={depth:h,id:[r,`${h}`].filter(Boolean).join("_"),headers:[]},m=[];d.forEach(y=>{const _=[...m].reverse()[0],b=y.column.depth===v.depth;let w,S=!1;if(b&&y.column.parent?w=y.column.parent:(w=y.column,S=!0),_&&(_==null?void 0:_.column)===w)_.subHeaders.push(y);else{const C=HL(n,w,{id:[r,h,w.id,y==null?void 0:y.id].filter(Boolean).join("_"),isPlaceholder:S,placeholderId:S?`${m.filter(T=>T.column===w).length}`:void 0,depth:h,index:m.length});C.subHeaders.push(y),m.push(C)}v.headers.push(y),y.headerGroup=v}),l.push(v),h>0&&u(m,h-1)},c=t.map((d,h)=>HL(n,d,{depth:a,index:h}));u(c,a-1),l.reverse();const f=d=>d.filter(v=>v.column.getIsVisible()).map(v=>{let m=0,y=0,_=[0];v.subHeaders&&v.subHeaders.length?(_=[],f(v.subHeaders).forEach(w=>{let{colSpan:S,rowSpan:C}=w;m+=S,_.push(C)})):m=1;const b=Math.min(..._);return y=y+b,v.colSpan=m,v.rowSpan=y,{colSpan:m,rowSpan:y}});return f((i=(o=l[0])==null?void 0:o.headers)!=null?i:[]),l}const yV=(e,t,n,r,i,o,a)=>{let s={id:t,index:r,original:n,depth:i,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:l=>{if(s._valuesCache.hasOwnProperty(l))return s._valuesCache[l];const u=e.getColumn(l);if(u!=null&&u.accessorFn)return s._valuesCache[l]=u.accessorFn(s.original,r),s._valuesCache[l]},getUniqueValues:l=>{if(s._uniqueValuesCache.hasOwnProperty(l))return s._uniqueValuesCache[l];const u=e.getColumn(l);if(u!=null&&u.accessorFn)return u.columnDef.getUniqueValues?(s._uniqueValuesCache[l]=u.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[l]):(s._uniqueValuesCache[l]=[s.getValue(l)],s._uniqueValuesCache[l])},renderValue:l=>{var u;return(u=s.getValue(l))!=null?u:e.options.renderFallbackValue},subRows:[],getLeafRows:()=>mV(s.subRows,l=>l.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let l=[],u=s;for(;;){const c=u.getParentRow();if(!c)break;l.push(c),u=c}return l.reverse()},getAllCells:xt(()=>[e.getAllLeafColumns()],l=>l.map(u=>_ae(e,s,u,u.id)),Tt(e.options,"debugRows")),_getAllCellsByColumnId:xt(()=>[s.getAllCells()],l=>l.reduce((u,c)=>(u[c.column.id]=c,u),{}),Tt(e.options,"debugRows"))};for(let l=0;l{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},_V=(e,t,n)=>{var r,i;const o=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((i=e.getValue(t))==null||(i=i.toString())==null||(i=i.toLowerCase())==null)&&i.includes(o))};_V.autoRemove=e=>Ma(e);const bV=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};bV.autoRemove=e=>Ma(e);const SV=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===(n==null?void 0:n.toLowerCase())};SV.autoRemove=e=>Ma(e);const wV=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};wV.autoRemove=e=>Ma(e)||!(e!=null&&e.length);const xV=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});xV.autoRemove=e=>Ma(e)||!(e!=null&&e.length);const TV=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});TV.autoRemove=e=>Ma(e)||!(e!=null&&e.length);const CV=(e,t,n)=>e.getValue(t)===n;CV.autoRemove=e=>Ma(e);const EV=(e,t,n)=>e.getValue(t)==n;EV.autoRemove=e=>Ma(e);const ZI=(e,t,n)=>{let[r,i]=n;const o=e.getValue(t);return o>=r&&o<=i};ZI.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,i=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(i)?1/0:i;if(o>a){const s=o;o=a,a=s}return[o,a]};ZI.autoRemove=e=>Ma(e)||Ma(e[0])&&Ma(e[1]);const Hs={includesString:_V,includesStringSensitive:bV,equalsString:SV,arrIncludes:wV,arrIncludesAll:xV,arrIncludesSome:TV,equals:CV,weakEquals:EV,inNumberRange:ZI};function Ma(e){return e==null||e===""}const xae={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:Io("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?Hs.includesString:typeof r=="number"?Hs.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?Hs.equals:Array.isArray(r)?Hs.arrIncludes:Hs.weakEquals},e.getFilterFn=()=>{var n,r;return ef(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:Hs[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,i;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const i=e.getFilterFn(),o=r==null?void 0:r.find(c=>c.id===e.id),a=uu(n,o?o.value:void 0);if(GL(i,a,e)){var s;return(s=r==null?void 0:r.filter(c=>c.id!==e.id))!=null?s:[]}const l={id:e.id,value:a};if(o){var u;return(u=r==null?void 0:r.map(c=>c.id===e.id?l:c))!=null?u:[]}return r!=null&&r.length?[...r,l]:[l]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=i=>{var o;return(o=uu(t,i))==null?void 0:o.filter(a=>{const s=n.find(l=>l.id===a.id);if(s){const l=s.getFilterFn();if(GL(l,a.value,s))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function GL(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const Tae=(e,t,n)=>n.reduce((r,i)=>{const o=i.getValue(e);return r+(typeof o=="number"?o:0)},0),Cae=(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}),r},Eae=(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r=o)&&(r=o)}),r},Aae=(e,t,n)=>{let r,i;return n.forEach(o=>{const a=o.getValue(e);a!=null&&(r===void 0?a>=a&&(r=i=a):(r>a&&(r=a),i{let n=0,r=0;if(t.forEach(i=>{let o=i.getValue(e);o!=null&&(o=+o)>=o&&(++n,r+=o)}),n)return r/n},Rae=(e,t)=>{if(!t.length)return;const n=t.map(o=>o.getValue(e));if(!yae(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),i=n.sort((o,a)=>o-a);return n.length%2!==0?i[r]:(i[r-1]+i[r])/2},Pae=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),Oae=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,Dae=(e,t)=>t.length,Mx={sum:Tae,min:Cae,max:Eae,extent:Aae,mean:Iae,median:Rae,unique:Pae,uniqueCount:Oae,count:Dae},Mae={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:Io("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r;return((n=e.columnDef.enableGrouping)!=null?n:!0)&&((r=t.options.enableGrouping)!=null?r:!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue)},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return Mx.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Mx.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return ef(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:Mx[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var i;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((i=n.subRows)!=null&&i.length)}}};function Lae(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(o=>!t.includes(o.id));return n==="remove"?r:[...t.map(o=>e.find(a=>a.id===o)).filter(Boolean),...r]}const Nae={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:Io("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=xt(n=>[wv(t,n)],n=>n.findIndex(r=>r.id===e.id),Tt(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=wv(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const i=wv(t,n);return((r=i[i.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=xt(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>i=>{let o=[];if(!(t!=null&&t.length))o=i;else{const a=[...t],s=[...i];for(;s.length&&a.length;){const l=a.shift(),u=s.findIndex(c=>c.id===l);u>-1&&o.push(s.splice(u,1)[0])}o=[...o,...s]}return Lae(o,n,r)},Tt(e.options,"debugTable"))}},Lx=()=>({left:[],right:[]}),kae={getInitialState:e=>({columnPinning:Lx(),...e}),getDefaultOptions:e=>({onColumnPinningChange:Io("columnPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(i=>i.id).filter(Boolean);t.setColumnPinning(i=>{var o,a;if(n==="right"){var s,l;return{left:((s=i==null?void 0:i.left)!=null?s:[]).filter(f=>!(r!=null&&r.includes(f))),right:[...((l=i==null?void 0:i.right)!=null?l:[]).filter(f=>!(r!=null&&r.includes(f))),...r]}}if(n==="left"){var u,c;return{left:[...((u=i==null?void 0:i.left)!=null?u:[]).filter(f=>!(r!=null&&r.includes(f))),...r],right:((c=i==null?void 0:i.right)!=null?c:[]).filter(f=>!(r!=null&&r.includes(f)))}}return{left:((o=i==null?void 0:i.left)!=null?o:[]).filter(f=>!(r!=null&&r.includes(f))),right:((a=i==null?void 0:i.right)!=null?a:[]).filter(f=>!(r!=null&&r.includes(f)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var i,o,a;return((i=r.columnDef.enablePinning)!=null?i:!0)&&((o=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?o:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(s=>s.id),{left:r,right:i}=t.getState().columnPinning,o=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>i==null?void 0:i.includes(s));return o?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const i=e.getIsPinned();return i?(n=(r=t.getState().columnPinning)==null||(r=r[i])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=xt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,i)=>{const o=[...r??[],...i??[]];return n.filter(a=>!o.includes(a.column.id))},Tt(t.options,"debugRows")),e.getLeftVisibleCells=xt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(n,r)=>(r??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),Tt(t.options,"debugRows")),e.getRightVisibleCells=xt(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(o=>n.find(a=>a.column.id===o)).filter(Boolean).map(o=>({...o,position:"right"})),Tt(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?Lx():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Lx())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var i,o;return!!((i=r.left)!=null&&i.length||(o=r.right)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=xt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),Tt(e.options,"debugColumns")),e.getRightLeafColumns=xt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),Tt(e.options,"debugColumns")),e.getCenterLeafColumns=xt(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const i=[...n??[],...r??[]];return t.filter(o=>!i.includes(o.id))},Tt(e.options,"debugColumns"))}},My={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Nx=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),Fae={getDefaultColumnDef:()=>My,getInitialState:e=>({columnSizing:{},columnSizingInfo:Nx(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:Io("columnSizing",e),onColumnSizingInfoChange:Io("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,i;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:My.minSize,(r=o??e.columnDef.size)!=null?r:My.size),(i=e.columnDef.maxSize)!=null?i:My.maxSize)},e.getStart=xt(n=>[n,wv(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((i,o)=>i+o.getSize(),0),Tt(t.options,"debugColumns")),e.getAfter=xt(n=>[n,wv(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((i,o)=>i+o.getSize(),0),Tt(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...i}=n;return i})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=i=>{if(i.subHeaders.length)i.subHeaders.forEach(r);else{var o;n+=(o=i.column.getSize())!=null?o:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),i=r==null?void 0:r.getCanResize();return o=>{if(!r||!i||(o.persist==null||o.persist(),kx(o)&&o.touches&&o.touches.length>1))return;const a=e.getSize(),s=e?e.getLeafHeaders().map(_=>[_.column.id,_.column.getSize()]):[[r.id,r.getSize()]],l=kx(o)?Math.round(o.touches[0].clientX):o.clientX,u={},c=(_,b)=>{typeof b=="number"&&(t.setColumnSizingInfo(w=>{var S,C;const T=t.options.columnResizeDirection==="rtl"?-1:1,A=(b-((S=w==null?void 0:w.startOffset)!=null?S:0))*T,P=Math.max(A/((C=w==null?void 0:w.startSize)!=null?C:0),-.999999);return w.columnSizingStart.forEach(I=>{let[R,O]=I;u[R]=Math.round(Math.max(O+O*P,0)*100)/100}),{...w,deltaOffset:A,deltaPercentage:P}}),(t.options.columnResizeMode==="onChange"||_==="end")&&t.setColumnSizing(w=>({...w,...u})))},f=_=>c("move",_),d=_=>{c("end",_),t.setColumnSizingInfo(b=>({...b,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},h=n||typeof document<"u"?document:null,v={moveHandler:_=>f(_.clientX),upHandler:_=>{h==null||h.removeEventListener("mousemove",v.moveHandler),h==null||h.removeEventListener("mouseup",v.upHandler),d(_.clientX)}},m={moveHandler:_=>(_.cancelable&&(_.preventDefault(),_.stopPropagation()),f(_.touches[0].clientX),!1),upHandler:_=>{var b;h==null||h.removeEventListener("touchmove",m.moveHandler),h==null||h.removeEventListener("touchend",m.upHandler),_.cancelable&&(_.preventDefault(),_.stopPropagation()),d((b=_.touches[0])==null?void 0:b.clientX)}},y=$ae()?{passive:!1}:!1;kx(o)?(h==null||h.addEventListener("touchmove",m.moveHandler,y),h==null||h.addEventListener("touchend",m.upHandler,y)):(h==null||h.addEventListener("mousemove",v.moveHandler,y),h==null||h.addEventListener("mouseup",v.upHandler,y)),t.setColumnSizingInfo(_=>({..._,startOffset:l,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Nx():(n=e.initialState.columnSizingInfo)!=null?n:Nx())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0}}};let Ly=null;function $ae(){if(typeof Ly=="boolean")return Ly;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return Ly=e,Ly}function kx(e){return e.type==="touchstart"}const Bae={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:Io("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;const i=e.columns;return(n=i.length?i.some(o=>o.getIsVisible()):(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=xt(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),Tt(t.options,"debugRows")),e.getVisibleCells=xt(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,i)=>[...n,...r,...i],Tt(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>xt(()=>[r(),r().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),Tt(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((i,o)=>({...i,[o.id]:n||!(o.getCanHide!=null&&o.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function wv(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const Vae={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},Uae={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:Io("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>{var n,r,i,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Hs.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return ef(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:Hs[r]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},Hae={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:Io("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var i,o;e.setExpanded(r?{}:(i=(o=e.initialState)==null?void 0:o.expanded)!=null?i:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(i=>!i.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const a=o.split(".");r=Math.max(r,a.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var i;const o=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(s=>{a[s]=!0}):a=r,n=(i=n)!=null?i:!o,!o&&n)return{...a,[e.id]:!0};if(o&&!n){const{[e.id]:s,...l}=a;return l}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r!=null&&r[e.id])},e.getCanExpand=()=>{var n,r,i;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((i=e.subRows)!=null&&i.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},bE=0,SE=10,Fx=()=>({pageIndex:bE,pageSize:SE}),Gae={getInitialState:e=>({...e,pagination:{...Fx(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:Io("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const i=o=>uu(r,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},e.resetPagination=r=>{var i;e.setPagination(r?Fx():(i=e.initialState.pagination)!=null?i:Fx())},e.setPageIndex=r=>{e.setPagination(i=>{let o=uu(r,i.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.max(0,Math.min(o,a)),{...i,pageIndex:o}})},e.resetPageIndex=r=>{var i,o;e.setPageIndex(r?bE:(i=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageIndex)!=null?i:bE)},e.resetPageSize=r=>{var i,o;e.setPageSize(r?SE:(i=(o=e.initialState)==null||(o=o.pagination)==null?void 0:o.pageSize)!=null?i:SE)},e.setPageSize=r=>{e.setPagination(i=>{const o=Math.max(1,uu(r,i.pageSize)),a=i.pageSize*i.pageIndex,s=Math.floor(a/o);return{...i,pageIndex:s,pageSize:o}})},e.setPageCount=r=>e.setPagination(i=>{var o;let a=uu(r,(o=e.options.pageCount)!=null?o:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...i,pageCount:a}}),e.getPageOptions=xt(()=>[e.getPageCount()],r=>{let i=[];return r&&r>0&&(i=[...new Array(r)].fill(null).map((o,a)=>a)),i},Tt(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,i=e.getPageCount();return i===-1?!0:i===0?!1:re.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getRowCount()/e.getState().pagination.pageSize)},e.getRowCount=()=>{var r;return(r=e.options.rowCount)!=null?r:e.getPrePaginationRowModel().rows.length}}},$x=()=>({top:[],bottom:[]}),zae={getInitialState:e=>({rowPinning:$x(),...e}),getDefaultOptions:e=>({onRowPinningChange:Io("rowPinning",e)}),createRow:(e,t)=>{e.pin=(n,r,i)=>{const o=r?e.getLeafRows().map(l=>{let{id:u}=l;return u}):[],a=i?e.getParentRows().map(l=>{let{id:u}=l;return u}):[],s=new Set([...a,e.id,...o]);t.setRowPinning(l=>{var u,c;if(n==="bottom"){var f,d;return{top:((f=l==null?void 0:l.top)!=null?f:[]).filter(m=>!(s!=null&&s.has(m))),bottom:[...((d=l==null?void 0:l.bottom)!=null?d:[]).filter(m=>!(s!=null&&s.has(m))),...Array.from(s)]}}if(n==="top"){var h,v;return{top:[...((h=l==null?void 0:l.top)!=null?h:[]).filter(m=>!(s!=null&&s.has(m))),...Array.from(s)],bottom:((v=l==null?void 0:l.bottom)!=null?v:[]).filter(m=>!(s!=null&&s.has(m)))}}return{top:((u=l==null?void 0:l.top)!=null?u:[]).filter(m=>!(s!=null&&s.has(m))),bottom:((c=l==null?void 0:l.bottom)!=null?c:[]).filter(m=>!(s!=null&&s.has(m)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:i}=t.options;return typeof r=="function"?r(e):(n=r??i)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:i}=t.getState().rowPinning,o=n.some(s=>r==null?void 0:r.includes(s)),a=n.some(s=>i==null?void 0:i.includes(s));return o?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const i=e.getIsPinned();if(!i)return-1;const o=(n=i==="top"?t.getTopRows():t.getBottomRows())==null?void 0:n.map(a=>{let{id:s}=a;return s});return(r=o==null?void 0:o.indexOf(e.id))!=null?r:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?$x():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:$x())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var i,o;return!!((i=r.top)!=null&&i.length||(o=r.bottom)!=null&&o.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=(t,n,r)=>{var i;return((i=e.options.keepPinnedRows)==null||i?(n??[]).map(a=>{const s=e.getRow(a,!0);return s.getIsAllParentsExpanded()?s:null}):(n??[]).map(a=>t.find(s=>s.id===a))).filter(Boolean).map(a=>({...a,position:r}))},e.getTopRows=xt(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,"top"),Tt(e.options,"debugRows")),e.getBottomRows=xt(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,"bottom"),Tt(e.options,"debugRows")),e.getCenterRows=xt(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const i=new Set([...n??[],...r??[]]);return t.filter(o=>!i.has(o.id))},Tt(e.options,"debugRows"))}},Wae={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:Io("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(o=>{o.getCanSelect()&&(r[o.id]=!0)}):i.forEach(o=>{delete r[o.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),i={...n};return e.getRowModel().rows.forEach(o=>{wE(i,o.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=xt(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Bx(e,n):{rows:[],flatRows:[],rowsById:{}},Tt(e.options,"debugTable")),e.getFilteredSelectedRowModel=xt(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Bx(e,n):{rows:[],flatRows:[],rowsById:{}},Tt(e.options,"debugTable")),e.getGroupedSelectedRowModel=xt(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Bx(e,n):{rows:[],flatRows:[],rowsById:{}},Tt(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(i=>i.getCanSelect()&&!n[i.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(i=>i.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(i=>!n[i.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const i=e.getIsSelected();t.setRowSelection(o=>{var a;if(n=typeof n<"u"?n:!i,e.getCanSelect()&&i===n)return o;const s={...o};return wE(s,e.id,n,(a=r==null?void 0:r.selectChildren)!=null?a:!0,t),s})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return qI(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return xE(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return xE(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var i;n&&e.toggleSelected((i=r.target)==null?void 0:i.checked)}}}},wE=(e,t,n,r,i)=>{var o;const a=i.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(s=>delete e[s]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(o=a.subRows)!=null&&o.length&&a.getCanSelectSubRows()&&a.subRows.forEach(s=>wE(e,s.id,n,r,i))};function Bx(e,t){const n=e.getState().rowSelection,r=[],i={},o=function(a,s){return a.map(l=>{var u;const c=qI(l,n);if(c&&(r.push(l),i[l.id]=l),(u=l.subRows)!=null&&u.length&&(l={...l,subRows:o(l.subRows)}),c)return l}).filter(Boolean)};return{rows:o(t.rows),flatRows:r,rowsById:i}}function qI(e,t){var n;return(n=t[e.id])!=null?n:!1}function xE(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let i=!0,o=!1;return e.subRows.forEach(a=>{if(!(o&&!i)&&(a.getCanSelect()&&(qI(a,t)?o=!0:i=!1),a.subRows&&a.subRows.length)){const s=xE(a,t);s==="all"?o=!0:(s==="some"&&(o=!0),i=!1)}}),i?"all":o?"some":!1}const TE=/([0-9]+)/gm,jae=(e,t,n)=>AV(Au(e.getValue(n)).toLowerCase(),Au(t.getValue(n)).toLowerCase()),Yae=(e,t,n)=>AV(Au(e.getValue(n)),Au(t.getValue(n))),Xae=(e,t,n)=>JI(Au(e.getValue(n)).toLowerCase(),Au(t.getValue(n)).toLowerCase()),Kae=(e,t,n)=>JI(Au(e.getValue(n)),Au(t.getValue(n))),Zae=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:rJI(e.getValue(n),t.getValue(n));function JI(e,t){return e===t?0:e>t?1:-1}function Au(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function AV(e,t){const n=e.split(TE).filter(Boolean),r=t.split(TE).filter(Boolean);for(;n.length&&r.length;){const i=n.shift(),o=r.shift(),a=parseInt(i,10),s=parseInt(o,10),l=[a,s].sort();if(isNaN(l[0])){if(i>o)return 1;if(o>i)return-1;continue}if(isNaN(l[1]))return isNaN(a)?-1:1;if(a>s)return 1;if(s>a)return-1}return n.length-r.length}const ap={alphanumeric:jae,alphanumericCaseSensitive:Yae,text:Xae,textCaseSensitive:Kae,datetime:Zae,basic:qae},Jae={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:Io("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const i of n){const o=i==null?void 0:i.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return ap.datetime;if(typeof o=="string"&&(r=!0,o.split(TE).length>1))return ap.alphanumeric}return r?ap.text:ap.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return ef(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:ap[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const i=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(a=>{const s=a==null?void 0:a.find(h=>h.id===e.id),l=a==null?void 0:a.findIndex(h=>h.id===e.id);let u=[],c,f=o?n:i==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?s?c="toggle":c="add":a!=null&&a.length&&l!==a.length-1?c="replace":s?c="toggle":c="replace",c==="toggle"&&(o||i||(c="remove")),c==="add"){var d;u=[...a,{id:e.id,desc:f}],u.splice(0,u.length-((d=t.options.maxMultiSortColCount)!=null?d:Number.MAX_SAFE_INTEGER))}else c==="toggle"?u=a.map(h=>h.id===e.id?{...h,desc:f}:h):c==="remove"?u=a.filter(h=>h.id!==e.id):u=[{id:e.id,desc:f}];return u})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,i;const o=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==o&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(i=t.options.enableMultiRemove)!=null)||i)?!1:a==="desc"?"asc":"desc":o},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(i=>i.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},Qae=[Sae,Bae,Nae,kae,wae,xae,Vae,Uae,Jae,Mae,Hae,Gae,zae,Wae,Fae];function ese(e){var t,n;const r=[...Qae,...(t=e._features)!=null?t:[]];let i={_features:r};const o=i._features.reduce((d,h)=>Object.assign(d,h.getDefaultOptions==null?void 0:h.getDefaultOptions(i)),{}),a=d=>i.options.mergeOptions?i.options.mergeOptions(o,d):{...o,...d};let l={...{},...(n=e.initialState)!=null?n:{}};i._features.forEach(d=>{var h;l=(h=d.getInitialState==null?void 0:d.getInitialState(l))!=null?h:l});const u=[];let c=!1;const f={_features:r,options:{...o,...e},initialState:l,_queue:d=>{u.push(d),c||(c=!0,Promise.resolve().then(()=>{for(;u.length;)u.shift()();c=!1}).catch(h=>setTimeout(()=>{throw h})))},reset:()=>{i.setState(i.initialState)},setOptions:d=>{const h=uu(d,i.options);i.options=a(h)},getState:()=>i.options.state,setState:d=>{i.options.onStateChange==null||i.options.onStateChange(d)},_getRowId:(d,h,v)=>{var m;return(m=i.options.getRowId==null?void 0:i.options.getRowId(d,h,v))!=null?m:`${v?[v.id,h].join("."):h}`},getCoreRowModel:()=>(i._getCoreRowModel||(i._getCoreRowModel=i.options.getCoreRowModel(i)),i._getCoreRowModel()),getRowModel:()=>i.getPaginationRowModel(),getRow:(d,h)=>{let v=(h?i.getPrePaginationRowModel():i.getRowModel()).rowsById[d];if(!v&&(v=i.getCoreRowModel().rowsById[d],!v))throw new Error;return v},_getDefaultColumnDef:xt(()=>[i.options.defaultColumn],d=>{var h;return d=(h=d)!=null?h:{},{header:v=>{const m=v.header.column.columnDef;return m.accessorKey?m.accessorKey:m.accessorFn?m.id:null},cell:v=>{var m,y;return(m=(y=v.renderValue())==null||y.toString==null?void 0:y.toString())!=null?m:null},...i._features.reduce((v,m)=>Object.assign(v,m.getDefaultColumnDef==null?void 0:m.getDefaultColumnDef()),{}),...d}},Tt(e,"debugColumns")),_getColumnDefs:()=>i.options.columns,getAllColumns:xt(()=>[i._getColumnDefs()],d=>{const h=function(v,m,y){return y===void 0&&(y=0),v.map(_=>{const b=bae(i,_,y,m),w=_;return b.columns=w.columns?h(w.columns,b,y+1):[],b})};return h(d)},Tt(e,"debugColumns")),getAllFlatColumns:xt(()=>[i.getAllColumns()],d=>d.flatMap(h=>h.getFlatColumns()),Tt(e,"debugColumns")),_getAllFlatColumnsById:xt(()=>[i.getAllFlatColumns()],d=>d.reduce((h,v)=>(h[v.id]=v,h),{}),Tt(e,"debugColumns")),getAllLeafColumns:xt(()=>[i.getAllColumns(),i._getOrderColumnsFn()],(d,h)=>{let v=d.flatMap(m=>m.getLeafColumns());return h(v)},Tt(e,"debugColumns")),getColumn:d=>i._getAllFlatColumnsById()[d]};Object.assign(i,f);for(let d=0;dxt(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(i,o,a){o===void 0&&(o=0);const s=[];for(let u=0;ue._autoResetPageIndex()))}function nse(){return e=>xt(()=>[e.getState().expanded,e.getPreExpandedRowModel(),e.options.paginateExpandedRows],(t,n,r)=>!n.rows.length||t!==!0&&!Object.keys(t??{}).length||!r?n:rse(n),Tt(e.options,"debugTable"))}function rse(e){const t=[],n=r=>{var i;t.push(r),(i=r.subRows)!=null&&i.length&&r.getIsExpanded()&&r.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function ise(){return e=>xt(()=>[e.getState().grouping,e.getPreGroupedRowModel()],(t,n)=>{if(!n.rows.length||!t.length)return n.rows.forEach(l=>{l.depth=0,l.parentId=void 0}),n;const r=t.filter(l=>e.getColumn(l)),i=[],o={},a=function(l,u,c){if(u===void 0&&(u=0),u>=r.length)return l.map(v=>(v.depth=u,i.push(v),o[v.id]=v,v.subRows&&(v.subRows=a(v.subRows,u+1,v.id)),v));const f=r[u],d=ose(l,f);return Array.from(d.entries()).map((v,m)=>{let[y,_]=v,b=`${f}:${y}`;b=c?`${c}>${b}`:b;const w=a(_,u+1,b);w.forEach(T=>{T.parentId=b});const S=u?mV(_,T=>T.subRows):_,C=yV(e,b,S[0].original,m,u,void 0,c);return Object.assign(C,{groupingColumnId:f,groupingValue:y,subRows:w,leafRows:S,getValue:T=>{if(r.includes(T)){if(C._valuesCache.hasOwnProperty(T))return C._valuesCache[T];if(_[0]){var A;C._valuesCache[T]=(A=_[0].getValue(T))!=null?A:void 0}return C._valuesCache[T]}if(C._groupingValuesCache.hasOwnProperty(T))return C._groupingValuesCache[T];const P=e.getColumn(T),I=P==null?void 0:P.getAggregationFn();if(I)return C._groupingValuesCache[T]=I(T,S,_),C._groupingValuesCache[T]}}),w.forEach(T=>{i.push(T),o[T.id]=T}),C})},s=a(n.rows,0);return s.forEach(l=>{i.push(l),o[l.id]=l}),{rows:s,flatRows:i,rowsById:o}},Tt(e.options,"debugTable","getGroupedRowModel",()=>{e._queue(()=>{e._autoResetExpanded(),e._autoResetPageIndex()})}))}function ose(e,t){const n=new Map;return e.reduce((r,i)=>{const o=`${i.getGroupingValue(t)}`,a=r.get(o);return a?a.push(i):r.set(o,[i]),r},n)}function ase(){return e=>xt(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,i=[],o=r.filter(l=>{var u;return(u=e.getColumn(l.id))==null?void 0:u.getCanSort()}),a={};o.forEach(l=>{const u=e.getColumn(l.id);u&&(a[l.id]={sortUndefined:u.columnDef.sortUndefined,invertSorting:u.columnDef.invertSorting,sortingFn:u.getSortingFn()})});const s=l=>{const u=l.map(c=>({...c}));return u.sort((c,f)=>{for(let h=0;h{var f;i.push(c),(f=c.subRows)!=null&&f.length&&(c.subRows=s(c.subRows))}),u};return{rows:s(n.rows),flatRows:i,rowsById:n.rowsById}},Tt(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** + * vue-table + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Ny(){return!0}const sse=Symbol("merge-proxy"),lse={get(e,t,n){return t===sse?n:e.get(t)},has(e,t){return e.has(t)},set:Ny,deleteProperty:Ny,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Ny,deleteProperty:Ny}},ownKeys(e){return e.keys()}};function Vx(e){return"value"in e?e.value:e}function zp(){for(var e=arguments.length,t=new Array(e),n=0;n=0;i--){const o=Vx(t[i])[r];if(o!==void 0)return o}},has(r){for(let i=t.length-1;i>=0;i--)if(r in Vx(t[i]))return!0;return!1},keys(){const r=[];for(let i=0;i()=>typeof e.render=="function"||typeof e.render=="object"?Wi(e.render,e.props):e.render});function zL(e){return zp(e,{data:N(e.data)})}function use(e){const t=st(e.data),n=zp({state:{},onStateChange:()=>{},renderFallbackValue:null,mergeOptions(o,a){return t?{...o,...a}:zp(o,a)}},t?zL(e):e),r=ese(n);if(t){const o=Ef(e.data);Yt(o,()=>{r.setState(a=>({...a,data:o.value}))},{immediate:!0})}const i=Fe(r.initialState);return wb(()=>{r.setOptions(o=>{var a;const s=new Proxy({},{get:(l,u)=>i.value[u]});return zp(o,t?zL(e):e,{state:zp(s,(a=e.state)!=null?a:{}),onStateChange:l=>{l instanceof Function?i.value=l(i.value):i.value=l,e.onStateChange==null||e.onStateChange(l)}})})}),r}const QI="-",cse=e=>{const t=dse(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{const s=a.split(QI);return s[0]===""&&s.length!==1&&s.shift(),IV(s,t)||fse(a)},getConflictingClassGroupIds:(a,s)=>{const l=n[a]||[];return s&&r[a]?[...l,...r[a]]:l}}},IV=(e,t)=>{var a;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),i=r?IV(e.slice(1),r):void 0;if(i)return i;if(t.validators.length===0)return;const o=e.join(QI);return(a=t.validators.find(({validator:s})=>s(o)))==null?void 0:a.classGroupId},WL=/^\[(.+)\]$/,fse=e=>{if(WL.test(e)){const t=WL.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},dse=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return pse(Object.entries(e.classGroups),n).forEach(([o,a])=>{CE(a,r,o,t)}),r},CE=(e,t,n,r)=>{e.forEach(i=>{if(typeof i=="string"){const o=i===""?t:jL(t,i);o.classGroupId=n;return}if(typeof i=="function"){if(hse(i)){CE(i(r),t,n,r);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([o,a])=>{CE(a,jL(t,o),n,r)})})},jL=(e,t)=>{let n=e;return t.split(QI).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},hse=e=>e.isThemeGetter,pse=(e,t)=>t?e.map(([n,r])=>{const i=r.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([a,s])=>[t+a,s])):o);return[n,i]}):e,vse=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const i=(o,a)=>{n.set(o,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(o){let a=n.get(o);if(a!==void 0)return a;if((a=r.get(o))!==void 0)return i(o,a),a},set(o,a){n.has(o)?n.set(o,a):i(o,a)}}},RV="!",gse=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,i=t[0],o=t.length,a=s=>{const l=[];let u=0,c=0,f;for(let y=0;yc?f-c:void 0;return{modifiers:l,hasImportantModifier:h,baseClassName:v,maybePostfixModifierPosition:m}};return n?s=>n({className:s,parseClassName:a}):a},mse=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},yse=e=>({cache:vse(e.cacheSize),parseClassName:gse(e),...cse(e)}),_se=/\s+/,bse=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i}=t,o=[],a=e.trim().split(_se);let s="";for(let l=a.length-1;l>=0;l-=1){const u=a[l],{modifiers:c,hasImportantModifier:f,baseClassName:d,maybePostfixModifierPosition:h}=n(u);let v=!!h,m=r(v?d.substring(0,h):d);if(!m){if(!v){s=u+(s.length>0?" "+s:s);continue}if(m=r(d),!m){s=u+(s.length>0?" "+s:s);continue}v=!1}const y=mse(c).join(":"),_=f?y+RV:y,b=_+m;if(o.includes(b))continue;o.push(b);const w=i(m,v);for(let S=0;S0?" "+s:s)}return s};function Sse(){let e=0,t,n,r="";for(;e{if(typeof e=="string")return e;let t,n="";for(let r=0;rf(c),e());return n=yse(u),r=n.cache.get,i=n.cache.set,o=s,s(l)}function s(l){const u=r(l);if(u)return u;const c=bse(l,n);return i(l,c),c}return function(){return o(Sse.apply(null,arguments))}}const Un=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},OV=/^\[(?:([a-z-]+):)?(.+)\]$/i,xse=/^\d+\/\d+$/,Tse=new Set(["px","full","screen"]),Cse=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ese=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ase=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,Ise=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Rse=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ms=e=>$d(e)||Tse.has(e)||xse.test(e),Ll=e=>Th(e,"length",Fse),$d=e=>!!e&&!Number.isNaN(Number(e)),Hx=e=>Th(e,"number",$d),sp=e=>!!e&&Number.isInteger(Number(e)),Pse=e=>e.endsWith("%")&&$d(e.slice(0,-1)),Ht=e=>OV.test(e),Nl=e=>Cse.test(e),Ose=new Set(["length","size","percentage"]),Dse=e=>Th(e,Ose,DV),Mse=e=>Th(e,"position",DV),Lse=new Set(["image","url"]),Nse=e=>Th(e,Lse,Bse),kse=e=>Th(e,"",$se),lp=()=>!0,Th=(e,t,n)=>{const r=OV.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},Fse=e=>Ese.test(e)&&!Ase.test(e),DV=()=>!1,$se=e=>Ise.test(e),Bse=e=>Rse.test(e),Vse=()=>{const e=Un("colors"),t=Un("spacing"),n=Un("blur"),r=Un("brightness"),i=Un("borderColor"),o=Un("borderRadius"),a=Un("borderSpacing"),s=Un("borderWidth"),l=Un("contrast"),u=Un("grayscale"),c=Un("hueRotate"),f=Un("invert"),d=Un("gap"),h=Un("gradientColorStops"),v=Un("gradientColorStopPositions"),m=Un("inset"),y=Un("margin"),_=Un("opacity"),b=Un("padding"),w=Un("saturate"),S=Un("scale"),C=Un("sepia"),T=Un("skew"),A=Un("space"),P=Un("translate"),I=()=>["auto","contain","none"],R=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto",Ht,t],M=()=>[Ht,t],$=()=>["",Ms,Ll],F=()=>["auto",$d,Ht],z=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],B=()=>["solid","dashed","dotted","double","none"],Y=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],j=()=>["start","end","center","between","around","evenly","stretch"],se=()=>["","0",Ht],ge=()=>["auto","avoid","all","avoid-page","page","left","right","column"],ve=()=>[$d,Ht];return{cacheSize:500,separator:":",theme:{colors:[lp],spacing:[Ms,Ll],blur:["none","",Nl,Ht],brightness:ve(),borderColor:[e],borderRadius:["none","","full",Nl,Ht],borderSpacing:M(),borderWidth:$(),contrast:ve(),grayscale:se(),hueRotate:ve(),invert:se(),gap:M(),gradientColorStops:[e],gradientColorStopPositions:[Pse,Ll],inset:O(),margin:O(),opacity:ve(),padding:M(),saturate:ve(),scale:ve(),sepia:se(),skew:ve(),space:M(),translate:M()},classGroups:{aspect:[{aspect:["auto","square","video",Ht]}],container:["container"],columns:[{columns:[Nl]}],"break-after":[{"break-after":ge()}],"break-before":[{"break-before":ge()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...z(),Ht]}],overflow:[{overflow:R()}],"overflow-x":[{"overflow-x":R()}],"overflow-y":[{"overflow-y":R()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[m]}],"inset-x":[{"inset-x":[m]}],"inset-y":[{"inset-y":[m]}],start:[{start:[m]}],end:[{end:[m]}],top:[{top:[m]}],right:[{right:[m]}],bottom:[{bottom:[m]}],left:[{left:[m]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",sp,Ht]}],basis:[{basis:O()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Ht]}],grow:[{grow:se()}],shrink:[{shrink:se()}],order:[{order:["first","last","none",sp,Ht]}],"grid-cols":[{"grid-cols":[lp]}],"col-start-end":[{col:["auto",{span:["full",sp,Ht]},Ht]}],"col-start":[{"col-start":F()}],"col-end":[{"col-end":F()}],"grid-rows":[{"grid-rows":[lp]}],"row-start-end":[{row:["auto",{span:[sp,Ht]},Ht]}],"row-start":[{"row-start":F()}],"row-end":[{"row-end":F()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Ht]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Ht]}],gap:[{gap:[d]}],"gap-x":[{"gap-x":[d]}],"gap-y":[{"gap-y":[d]}],"justify-content":[{justify:["normal",...j()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...j(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...j(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[b]}],px:[{px:[b]}],py:[{py:[b]}],ps:[{ps:[b]}],pe:[{pe:[b]}],pt:[{pt:[b]}],pr:[{pr:[b]}],pb:[{pb:[b]}],pl:[{pl:[b]}],m:[{m:[y]}],mx:[{mx:[y]}],my:[{my:[y]}],ms:[{ms:[y]}],me:[{me:[y]}],mt:[{mt:[y]}],mr:[{mr:[y]}],mb:[{mb:[y]}],ml:[{ml:[y]}],"space-x":[{"space-x":[A]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[A]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Ht,t]}],"min-w":[{"min-w":[Ht,t,"min","max","fit"]}],"max-w":[{"max-w":[Ht,t,"none","full","min","max","fit","prose",{screen:[Nl]},Nl]}],h:[{h:[Ht,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Ht,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Ht,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Ht,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Nl,Ll]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Hx]}],"font-family":[{font:[lp]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Ht]}],"line-clamp":[{"line-clamp":["none",$d,Hx]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Ms,Ht]}],"list-image":[{"list-image":["none",Ht]}],"list-style-type":[{list:["none","disc","decimal",Ht]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[_]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[_]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...B(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Ms,Ll]}],"underline-offset":[{"underline-offset":["auto",Ms,Ht]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ht]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ht]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[_]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...z(),Mse]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Dse]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Nse]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[v]}],"gradient-via-pos":[{via:[v]}],"gradient-to-pos":[{to:[v]}],"gradient-from":[{from:[h]}],"gradient-via":[{via:[h]}],"gradient-to":[{to:[h]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[_]}],"border-style":[{border:[...B(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[_]}],"divide-style":[{divide:B()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...B()]}],"outline-offset":[{"outline-offset":[Ms,Ht]}],"outline-w":[{outline:[Ms,Ll]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:$()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[_]}],"ring-offset-w":[{"ring-offset":[Ms,Ll]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Nl,kse]}],"shadow-color":[{shadow:[lp]}],opacity:[{opacity:[_]}],"mix-blend":[{"mix-blend":[...Y(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Y()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",Nl,Ht]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[c]}],invert:[{invert:[f]}],saturate:[{saturate:[w]}],sepia:[{sepia:[C]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[c]}],"backdrop-invert":[{"backdrop-invert":[f]}],"backdrop-opacity":[{"backdrop-opacity":[_]}],"backdrop-saturate":[{"backdrop-saturate":[w]}],"backdrop-sepia":[{"backdrop-sepia":[C]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Ht]}],duration:[{duration:ve()}],ease:[{ease:["linear","in","out","in-out",Ht]}],delay:[{delay:ve()}],animate:[{animate:["none","spin","ping","pulse","bounce",Ht]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[sp,Ht]}],"translate-x":[{"translate-x":[P]}],"translate-y":[{"translate-y":[P]}],"skew-x":[{"skew-x":[T]}],"skew-y":[{"skew-y":[T]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Ht]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ht]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ht]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Ms,Ll,Hx]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},Cn=wse(Vse),Use={class:"sticky -top-2 z-10 bg-base-100"},Hse=["colSpan","onClick"],Gse={class:"flex items-center gap-1"},zse=["onClick"],Wse=["onClick"],jse=it({__name:"ConnectionTable",setup(e){const{handlerInfo:t}=KI(),{t:n}=cs(),r=[{header:()=>n("details"),enableSorting:!1,id:vt.Details,cell:({row:y})=>Wi("button",{class:"btn btn-xs btn-circle",onClick:()=>{const _=y.original;t(_)}},[Wi(G4,{class:"h-4 w-4"})])},{header:()=>n("close"),enableSorting:!1,id:vt.Close,cell:({row:y})=>Wi("button",{class:"btn btn-xs btn-circle",onClick:()=>{const _=y.original;jb(_.id)}},[Wi(Ib,{class:"h-4 w-4"})])},{header:()=>n("type"),id:vt.Type,accessorFn:y=>FB(y)},{header:()=>n("process"),id:vt.Process,accessorFn:y=>NB(y)},{header:()=>n("host"),id:vt.Host,accessorFn:y=>`${y.metadata.host?y.metadata.host:y.metadata.destinationIP}:${y.metadata.destinationPort}`},{header:()=>n("rule"),id:vt.Rule,accessorFn:y=>y.rulePayload?`${y.rule}: ${y.rulePayload}`:y.rule},{header:()=>n("chains"),id:vt.Chains,accessorFn:y=>y.chains.join(","),cell:({row:y})=>{const _=[];return y.original.chains.forEach((b,w)=>{_.unshift(Wi("span",b)),wn("connectTime"),enableGrouping:!1,id:vt.ConnectTime,accessorFn:y=>Bb(y.start),sortingFn:(y,_)=>La(_.original.start).valueOf()-La(y.original.start).valueOf()},{header:()=>n("dlSpeed"),enableGrouping:!1,enableSorting:!0,id:vt.DlSpeed,accessorFn:y=>`${Tn(y.downloadSpeed)}/s`,sortingFn:(y,_)=>y.original.downloadSpeed-_.original.downloadSpeed},{header:()=>n("ulSpeed"),enableGrouping:!1,id:vt.UlSpeed,accessorFn:y=>`${Tn(y.uploadSpeed)}/s`,sortingFn:(y,_)=>y.original.uploadSpeed-_.original.uploadSpeed},{header:()=>n("dl"),enableGrouping:!1,id:vt.Download,accessorFn:y=>Tn(y.download),sortingFn:(y,_)=>y.original.download-_.original.download},{header:()=>n("ul"),enableGrouping:!1,id:vt.Upload,accessorFn:y=>Tn(y.upload),sortingFn:(y,_)=>y.original.upload-_.original.upload},{header:()=>n("sourceIP"),id:vt.SourceIP,accessorFn:y=>u1(y.metadata.sourceIP)},{header:()=>n("sourcePort"),id:vt.SourcePort,accessorFn:y=>y.metadata.sourcePort},{header:()=>n("destination"),id:vt.Destination,accessorFn:kB}],i=Fe([]),o=Fe({}),a=Mt("config/table-sorting",[]),s=use({get data(){return Fd.value},columns:r,state:{get columnOrder(){return Cd.value},get columnVisibility(){return{...Object.fromEntries(Object.values(vt).map(y=>[y,!1])),...Object.fromEntries(Cd.value.map(y=>[y,!0]))}},get grouping(){return i.value},get expanded(){return o.value},get sorting(){return a.value}},onGroupingChange:y=>{ef(y)?i.value=y(i.value):i.value=y},onExpandedChange:y=>{ef(y)&&(o.value=y(o.value))},onSortingChange:y=>{ef(y)?a.value=y(a.value):a.value=y},getSortedRowModel:ase(),getGroupedRowModel:ise(),getExpandedRowModel:nse(),getCoreRowModel:tse()}),l=Ve(()=>s.getRowModel().rows),u=Fe(null),c=Ve(()=>({count:l.value.length,getScrollElement:()=>u.value,estimateSize:()=>36,overscan:48})),f=gV(c),d=Ve(()=>f.value.getVirtualItems()),h=Ve(()=>f.value.getTotalSize()+24),v={[cg.SMALL]:"table-xs",[cg.LARGE]:"table-sm"},m=Ve(()=>v[i_.value]);return(y,_)=>(K(),ae("div",{ref_key:"parentRef",ref:u,class:"h-full overflow-y-auto p-2",onTouchstart:_[0]||(_[0]=xo(()=>{},["stop"])),onTouchmove:_[1]||(_[1]=xo(()=>{},["stop"])),onTouchend:_[2]||(_[2]=xo(()=>{},["stop"]))},[L("div",{style:Gr({height:`${h.value}px`})},[L("table",{class:rt(`table table-zebra ${m.value} rounded-none shadow-md`)},[L("thead",Use,[(K(!0),ae(Ze,null,on(N(s).getHeaderGroups(),b=>(K(),ae("tr",{key:b.id},[(K(!0),ae(Ze,null,on(b.headers,w=>(K(),ae("th",{key:w.id,colSpan:w.colSpan,class:rt(w.column.getCanSort()?"cursor-pointer select-none":""),onClick:S=>{var C;return(C=w.column.getToggleSortingHandler())==null?void 0:C(S)}},[L("div",Gse,[w.column.getCanGroup()?(K(),ae("button",{key:0,class:"cursor-pointer",onClick:xo(()=>w.column.getToggleGroupingHandler()(),["stop"])},[w.column.getIsGrouped()?(K(),Ot(N(dM),{key:0,class:"h-4 w-4"})):(K(),Ot(N(hM),{key:1,class:"h-4 w-4"}))],8,zse)):mt("",!0),w.isPlaceholder?mt("",!0):(K(),Ot(N(Ux),{key:1,render:w.column.columnDef.header,props:w.getContext()},null,8,["render","props"])),w.column.getIsSorted()==="asc"?(K(),Ot(N(Kg),{key:2,class:"h-4 w-4"})):mt("",!0),w.column.getIsSorted()==="desc"?(K(),Ot(N(Eb),{key:3,class:"h-4 w-4"})):mt("",!0)])],10,Hse))),128))]))),128))]),L("tbody",null,[(K(!0),ae(Ze,null,on(d.value,(b,w)=>(K(),ae("tr",{key:b.key.toString(),style:Gr({height:`${b.size}px`,transform:`translateY(${b.start-w*b.size}px)`}),class:"bg-base-100 hover:!bg-primary hover:text-primary-content"},[(K(!0),ae(Ze,null,on(l.value[b.index].getVisibleCells(),S=>(K(),ae("td",{key:S.id,class:rt(N(Cn)("whitespace-nowrap text-sm",[N(vt).Download,N(vt).DlSpeed,N(vt).Upload,N(vt).UlSpeed].includes(S.column.id)&&"min-w-20",[N(vt).Host].includes(S.column.id)&&"max-w-[32rem] truncate"))},[S.column.getIsGrouped()?(K(),ae(Ze,{key:0},[l.value[b.index].getCanExpand()?(K(),ae(Ze,{key:0},[L("button",{onClick:()=>l.value[b.index].getToggleExpandedHandler()(),class:"relative top-1 cursor-pointer"},[l.value[b.index].getIsExpanded()?(K(),Ot(N(dM),{key:0,class:"h-4 w-4"})):(K(),Ot(N(hM),{key:1,class:"h-4 w-4"}))],8,Wse),ye(N(Ux),{render:S.column.columnDef.cell,props:S.getContext()},null,8,["render","props"]),L("span",null," ("+re(l.value[b.index].subRows.length)+") ",1)],64)):mt("",!0)],64)):(K(),Ot(N(Ux),{key:1,render:S.getIsAggregated()?S.column.columnDef.aggregatedCell:S.column.columnDef.cell,props:S.getContext()},null,8,["render","props"]))],2))),128))],4))),128))])],2)],4)],544))}});var h1={d:(e,t)=>{for(var n in t)h1.o(t,n)&&!h1.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},MV={};function EE(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);nqse});const gt=(YL={computed:()=>Ve,createTextVNode:()=>ft,createVNode:()=>ye,defineComponent:()=>it,reactive:()=>Na,ref:()=>Fe,watch:()=>Yt,watchEffect:()=>wb},Gx={},h1.d(Gx,YL),Gx),Yse=(0,gt.defineComponent)({props:{data:{required:!0,type:String},onClick:Function},render:function(){var e=this.data,t=this.onClick;return(0,gt.createVNode)("span",{class:"vjs-tree-brackets",onClick:t},[e])}}),Xse=(0,gt.defineComponent)({emits:["change","update:modelValue"],props:{checked:{type:Boolean,default:!1},isMultiple:Boolean,onChange:Function},setup:function(e,t){var n=t.emit;return{uiType:(0,gt.computed)(function(){return e.isMultiple?"checkbox":"radio"}),model:(0,gt.computed)({get:function(){return e.checked},set:function(r){return n("update:modelValue",r)}})}},render:function(){var e=this.uiType,t=this.model,n=this.$emit;return(0,gt.createVNode)("label",{class:["vjs-check-controller",t?"is-checked":""],onClick:function(r){return r.stopPropagation()}},[(0,gt.createVNode)("span",{class:"vjs-check-controller-inner is-".concat(e)},null),(0,gt.createVNode)("input",{checked:t,class:"vjs-check-controller-original is-".concat(e),type:e,onChange:function(){return n("change",t)}},null)])}}),Kse=(0,gt.defineComponent)({props:{nodeType:{required:!0,type:String},onClick:Function},render:function(){var e=this.nodeType,t=this.onClick,n=e==="objectStart"||e==="arrayStart";return n||e==="objectCollapsed"||e==="arrayCollapsed"?(0,gt.createVNode)("span",{class:"vjs-carets vjs-carets-".concat(n?"open":"close"),onClick:t},[(0,gt.createVNode)("svg",{viewBox:"0 0 1024 1024",focusable:"false","data-icon":"caret-down",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},[(0,gt.createVNode)("path",{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"},null)])]):null}});var YL,Gx;function AE(e){return AE=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},AE(e)}function NV(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function Ec(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"root",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0,i=r||{},o=i.key,a=i.index,s=i.type,l=s===void 0?"content":s,u=i.showComma,c=u!==void 0&&u,f=i.length,d=f===void 0?1:f,h=NV(e);if(h==="array"){var v=XL(e.map(function(_,b,w){return Ec(_,"".concat(t,"[").concat(b,"]"),n+1,{index:b,showComma:b!==w.length-1,length:d,type:l})}));return[Ec("[",t,n,{showComma:!1,key:o,length:e.length,type:"arrayStart"})[0]].concat(v,Ec("]",t,n,{showComma:c,length:e.length,type:"arrayEnd"})[0])}if(h==="object"){var m=Object.keys(e),y=XL(m.map(function(_,b,w){return Ec(e[_],/^[a-zA-Z_]\w*$/.test(_)?"".concat(t,".").concat(_):"".concat(t,'["').concat(_,'"]'),n+1,{key:_,showComma:b!==w.length-1,length:d,type:l})}));return[Ec("{",t,n,{showComma:!1,key:o,index:a,length:m.length,type:"objectStart"})[0]].concat(y,Ec("}",t,n,{showComma:c,length:m.length,type:"objectEnd"})[0])}return[{content:e,level:n,key:o,index:a,path:t,showComma:c,length:d,type:l}]}function XL(e){if(typeof Array.prototype.flat=="function")return e.flat();for(var t=p1(e),n=[];t.length;){var r=t.shift();Array.isArray(r)?t.unshift.apply(t,p1(r)):n.push(r)}return n}function IE(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new WeakMap;if(e==null)return e;if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);if(AE(e)!=="object")return e;if(t.get(e))return t.get(e);if(Array.isArray(e)){var n=e.map(function(o){return IE(o,t)});return t.set(e,n),n}var r={};for(var i in e)r[i]=IE(e[i],t);return t.set(e,r),r}function KL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ZL(e){for(var t=1;t=w||T.length>=S,I=(A=e.pathCollapsible)===null||A===void 0?void 0:A.call(e,T);return T.type!=="objectStart"&&T.type!=="arrayStart"||!P&&!I?C:go(go({},C),{},v1({},T.path,1))},{})},s=(0,gt.reactive)({translateY:0,visibleData:null,hiddenPaths:a(e.deep,e.collapsedNodeLength)}),l=(0,gt.computed)(function(){for(var w=null,S=[],C=o.value.length,T=0;Tw.length?w.length-C:A;P<0&&(P=0);var I=P+C;s.translateY=P*e.itemHeight,s.visibleData=w.filter(function(R,O){return O>=P&&O(K(),ae(Ze,null,[N(kc)?(K(),Ot(mae,{key:0})):(K(),Ot(jse,{key:1})),L("dialog",{ref_key:"modalRef",ref:n,class:"modal"},[L("div",Qse,[ye(N(Jse),{data:N(t)},null,8,["data"])]),i[0]||(i[0]=L("form",{method:"dialog",class:"modal-backdrop"},[L("button",null,"close")],-1))],512)],64))}}),tle={class:"relative w-full flex-1"},rm=it({__name:"TextInput",props:{label:{type:String,required:!1},modelValue:{type:String,required:!0}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,r=t,i=Ve({get:()=>n.modelValue,set:a=>r("update:modelValue",a)}),o=()=>{i.value=""};return(a,s)=>(K(),ae("div",tle,[_t(L("input",{"onUpdate:modelValue":s[0]||(s[0]=l=>i.value=l),type:"text",class:"input input-sm join-item input-bordered w-full"},null,512),[[ir,i.value]]),ye(N(Ib),{class:"absolute right-2 top-1/2 h-3 w-3 -translate-y-1/2 cursor-pointer",onClick:o})]))}}),nle=["value"],rle=["value"],JL=it({__name:"SourceIPFilter",props:{horizontal:{type:Boolean}},setup(e){const t=Ve(()=>tae.value.map(n=>({label:u1(n),value:n})));return(n,r)=>n.horizontal?mt("",!0):_t((K(),ae("select",{key:0,class:"join-item select select-bordered select-sm","onUpdate:modelValue":r[0]||(r[0]=i=>st(Us)?Us.value=i:null)},[r[1]||(r[1]=L("option",{value:null},"all",-1)),t.value.every(i=>i.value!==N(Us))&&N(Us)!==null?(K(),ae("option",{key:0,value:N(Us)},re(N(u1)(N(Us))),9,nle)):mt("",!0),(K(!0),ae(Ze,null,on(t.value,i=>(K(),ae("option",{key:i.value,value:i.value},re(i.label),9,rle))),128))],512)),[[hi,N(Us)]])}}),ile={class:"tabs-boxed tabs tabs-sm"},ole={class:"shrink-0"},ale={class:"join flex-1"},sle=["value"],lle={class:"shrink-0"},ule=["data-tip"],cle={class:"flex flex-1 items-center gap-2"},fle={class:"join flex-1"},dle=it({__name:"ConnectionCtrl",props:{horizontal:{type:Boolean}},setup(e){const t=()=>{Fd.value.forEach(n=>{jb(n.id)})};return(n,r)=>(K(),ae("div",{class:rt(N(Cn)("flex flex-col gap-2 p-2 text-sm",n.horizontal&&"flex-row flex-wrap"))},[L("div",ile,[L("a",{role:"tab",class:rt(N(Cn)("tab",N(Cc)===N(zs).ACTIVE&&"tab-active")),onClick:r[0]||(r[0]=()=>Cc.value=N(zs).ACTIVE)},[ft(re(n.$t("activeConnections"))+" ",1),N(Cc)===N(zs).ACTIVE?(K(),ae(Ze,{key:0},[ft(" ("+re(N(Fd).length)+") ",1)],64)):mt("",!0)],2),L("a",{role:"tab",class:rt(N(Cn)("tab",N(Cc)===N(zs).CLOSED&&"tab-active")),onClick:r[1]||(r[1]=()=>Cc.value=N(zs).CLOSED)},[ft(re(n.$t("closedConnections"))+" ",1),N(Cc)===N(zs).CLOSED?(K(),ae(Ze,{key:0},[ft(" ("+re(N(Fd).length)+") ",1)],64)):mt("",!0)],2)]),N(kc)?(K(),ae("div",{key:0,class:rt(N(Cn)("flex w-full items-center gap-2",n.horizontal&&"md:w-auto"))},[L("span",ole,re(n.$t("sortBy"))+":",1),L("div",ale,[_t(L("select",{class:"join-item select select-bordered select-sm block flex-1","onUpdate:modelValue":r[2]||(r[2]=i=>st(h_)?h_.value=i:null)},[(K(!0),ae(Ze,null,on(Object.values(N(zi)),i=>(K(),ae("option",{key:i,value:i},re(n.$t(i)||i),9,sle))),128))],512),[[hi,N(h_)]]),L("button",{class:"btn join-item btn-sm w-12",onClick:r[3]||(r[3]=i=>p_.value=N(p_)===N(Lc).ASC?N(Lc).DESC:N(Lc).ASC)},[N(p_)===N(Lc).ASC?(K(),Ot(N(Kg),{key:0,class:"h-4 w-4"})):(K(),Ot(N(Eb),{key:1,class:"h-4 w-4"}))])])],2)):mt("",!0),L("div",{class:rt(N(Cn)("flex w-full items-center gap-2",n.horizontal&&"md:w-auto"))},[L("span",lle,re(n.$t("quickFilter"))+": ",1),_t(L("input",{type:"text",class:rt(["input input-sm join-item input-bordered w-0 flex-1",n.horizontal&&"md:w-48"]),"onUpdate:modelValue":r[4]||(r[4]=i=>st(bv)?bv.value=i:null)},null,2),[[ir,N(bv)]]),_t(L("input",{type:"checkbox",class:"toggle","onUpdate:modelValue":r[5]||(r[5]=i=>st(d_)?d_.value=i:null)},null,512),[[gr,N(d_)]]),L("div",{class:rt(`tooltip ${n.horizontal?"tooltip-left md:tooltip-bottom":"tooltip-left"}`),"data-tip":n.$t("quickFilterTip")},[ye(N(Y4),{class:"h-4 w-4"})],10,ule)],2),n.horizontal?mt("",!0):(K(),Ot(JL,{key:1})),L("div",cle,[L("div",fle,[n.horizontal?(K(),Ot(JL,{key:0,class:"w-40"})):mt("",!0),ye(rm,{modelValue:N(Sv),"onUpdate:modelValue":r[6]||(r[6]=i=>st(Sv)?Sv.value=i:null),class:"join-item min-w-32"},null,8,["modelValue"]),L("button",{class:"btn join-item btn-sm",onClick:r[7]||(r[7]=i=>v_.value=!N(v_))},[(K(),Ot(ls(N(v_)?N(W4):N(z4)),{class:"h-4 w-4"}))])]),L("button",{class:"btn btn-circle btn-sm",onClick:t},[ye(N(Ib),{class:"h-4 w-4"})])])],2))}}),Xb=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n},FV=Xb(dle,[["__scopeId","data-v-2a3f5508"]]),g1=Fe([]),Bd=Fe(""),g_=Fe(!1),m_=Mt("config/log-level",Nc.Info);let ky,m1=[];const hle=Ai.throttle(()=>{g1.value=m1.concat(g1.value).slice(0,o_.value),m1=[]},500),RE=[],ple=()=>{RE.length=0;for(const e in So.value){if(e.startsWith("/"))continue;const t=new RegExp(e+":","ig");RE.push([t,`${e} (${So.value[e]}) :`])}};Yt(So,()=>{ple()},{immediate:!0});const PE=()=>{ky==null||ky(),g1.value=[],m1=[];let e=1;const t=Hoe({level:m_.value}),n=Yt(t.data,r=>{if(r){if(g_.value){e++;return}for(const[i,o]of RE)r.payload=r.payload.replace(i,o);m1.unshift({...r,time:new Date().valueOf(),seq:e++}),hle()}});ky=()=>{n(),t.close()}},vle=["value"],$V=it({__name:"LogsCtrl",props:{horizontal:{type:Boolean}},setup(e){return(t,n)=>(K(),ae("div",null,[L("div",{class:rt(N(Cn)("join w-full p-2",t.horizontal&&"max-w-96"))},[_t(L("select",{class:"join-item select select-bordered select-sm","onUpdate:modelValue":n[0]||(n[0]=r=>st(m_)?m_.value=r:null),onChange:n[1]||(n[1]=(...r)=>N(PE)&&N(PE)(...r))},[(K(!0),ae(Ze,null,on(Object.values(N(Nc)),r=>(K(),ae("option",{key:r,value:r},re(r),9,vle))),128))],544),[[hi,N(m_)]]),ye(rm,{type:"text",modelValue:N(Bd),"onUpdate:modelValue":n[2]||(n[2]=r=>st(Bd)?Bd.value=r:null)},null,8,["modelValue"]),L("button",{class:"btn-bordered btn join-item btn-sm",onClick:n[3]||(n[3]=r=>g_.value=!N(g_))},[(K(),Ot(ls(N(g_)?N(W4):N(z4)),{class:"h-4 w-4"}))])],2)]))}}),ei=Fe({port:0,"socks-port":0,"redir-port":0,"tproxy-port":0,"mixed-port":0,"allow-lan":!1,"bind-address":"",mode:"","mode-list":[],modes:[],"log-level":"",ipv6:!1,tun:{enable:!1}}),eR=async()=>{ei.value=(await koe()).data},y_=async e=>{await Foe(e),eR()},BV=Fe(df.PROXIES),VV=Ve(()=>{var t;if(BV.value===df.PROVIDER)return kd.value.map(n=>n.name);const e=n_.value?dE.value:dE.value.filter(n=>{var r;return((r=fi.value[n])==null?void 0:r.hidden)!==!0});return hl.value&&J0.value&&fi.value[Oc]?[...e,Oc]:!hl.value&&((t=ei.value)==null?void 0:t.mode.toLocaleUpperCase())===Oc&&fi.value[Oc]?[Oc]:e}),gle=Ve(()=>dv.value&&VV.value.length>1),Kb=()=>({proxiesTabShow:BV,renderGroups:VV,hasTwoColumns:gle}),mle={key:0,role:"tablist",class:"tabs-boxed tabs tabs-sm"},yle=["onClick"],_le={key:1,class:"flex flex-col gap-2"},ble=["value"],Sle=["value"],wle=["value"],xle={class:"shrink-0"},UV=it({__name:"ProxiesCtrl",props:{horizontal:{type:Boolean}},setup(e){const{proxiesTabShow:t}=Kb(),n=Fe(!1),r=async()=>{if(!n.value){n.value=!0;try{await Promise.all(kd.value.map(a=>cV(a.name))),await dl(),n.value=!1}catch{await dl(),n.value=!1}}},i=Ve(()=>{var a,s;return((a=ei.value)==null?void 0:a["mode-list"])||((s=ei.value)==null?void 0:s.modes)||["direct","rule","global"]}),o=a=>{const s=a.target.value;y_({mode:s})};return(a,s)=>N(ei)?(K(),ae("div",{key:0,class:rt(N(Cn)("flex flex-col gap-1 p-2 text-sm sm:gap-2",a.horizontal&&"flex-row flex-wrap"))},[N(kd).length?(K(),ae("div",{key:0,class:rt(N(Cn)("flex flex-col-reverse gap-2",a.horizontal&&"flex-row"))},[N(kd).length?(K(),ae("div",mle,[(K(!0),ae(Ze,null,on(N(df),l=>(K(),ae("a",{role:"tab",class:rt(["tab",{"tab-active":N(t)===l}]),key:l,onClick:u=>t.value=l},re(a.$t(l)),11,yle))),128))])):mt("",!0),N(t)===N(df).PROVIDER?(K(),ae("div",_le,[L("button",{class:rt(N(Cn)("btn btn-sm",n.value?"animate-pulse":"")),onClick:r},re(a.$t("updateAllProviders")),3)])):mt("",!0)],2)):mt("",!0),s[2]||(s[2]=L("div",{class:"w-full sm:hidden"},null,-1)),L("div",{class:rt(N(Cn)("flex w-full items-center gap-2",a.horizontal&&"w-24"))},[L("select",{class:"select select-bordered select-sm w-1/2 flex-1",value:N(ei).mode,onChange:o},[(K(!0),ae(Ze,null,on(i.value,l=>(K(),ae("option",{key:l,value:l},re(a.$t(l.toLowerCase())||l),9,Sle))),128))],40,ble)],2),L("div",{class:rt(N(Cn)("flex w-full items-center gap-2",a.horizontal&&"w-72 max-sm:flex-1"))},[_t(L("select",{class:"select select-bordered select-sm w-1/2 flex-1","onUpdate:modelValue":s[0]||(s[0]=l=>st(Q0)?Q0.value=l:null)},[(K(!0),ae(Ze,null,on(Object.values(N(ru)),l=>(K(),ae("option",{key:l,value:l},re(a.$t(l)),9,wle))),128))],512),[[hi,N(Q0)]]),L("span",xle,re(a.$t("hideUnavailable"))+": ",1),_t(L("input",{class:"toggle",type:"checkbox","onUpdate:modelValue":s[1]||(s[1]=l=>st(t_)?t_.value=l:null)},null,512),[[gr,N(t_)]])],2)],2)):mt("",!0)}}),xv=Fe(rh.RULES),y1=Fe([]),vg=Fe([]),tf=Fe(""),Tle=Ve(()=>tf.value===""?y1.value:y1.value.filter(e=>[e.type.toLowerCase(),e.payload.toLowerCase(),e.proxy.toLowerCase()].some(t=>t.includes(tf.value.toLowerCase())))),Cle=Ve(()=>tf.value===""?vg.value:vg.value.filter(e=>[e.name.toLowerCase(),e.behavior.toLowerCase(),e.vehicleType.toLowerCase()].some(t=>t.includes(tf.value.toLowerCase())))),gg=async()=>{const{data:e}=await Loe(),{data:t}=await Noe();y1.value=e.rules,vg.value=Object.values(t.providers)},Ele={role:"tablist",class:"tabs-boxed tabs tabs-sm"},Ale=["onClick"],Ile={key:0,class:"flex flex-col gap-2"},HV=it({__name:"RulesCtrl",props:{horizontal:{type:Boolean}},setup(e){const t=Fe(!1),n=async()=>{if(!t.value){t.value=!0;try{await Promise.all(vg.value.map(r=>fV(r.name))),await gg(),t.value=!1}catch{await gg(),t.value=!1}}};return(r,i)=>(K(),ae("div",{class:rt(N(Cn)("flex flex-col gap-2 p-2",`${r.horizontal&&"flex-row"}`))},[N(vg).length?(K(),ae("div",{key:0,class:rt(N(Cn)("flex flex-col-reverse gap-2",r.horizontal&&"flex-row"))},[L("div",Ele,[(K(!0),ae(Ze,null,on(N(rh),o=>(K(),ae("a",{role:"tab",class:rt(["tab",{"tab-active":N(xv)===o}]),key:o,onClick:a=>xv.value=o},re(r.$t(o)),11,Ale))),128))]),N(xv)===N(rh).PROVIDER?(K(),ae("div",Ile,[L("button",{class:rt(N(Cn)("btn btn-sm",t.value?"animate-pulse":"")),onClick:n},re(r.$t("updateAllProviders")),3)])):mt("",!0)],2)):mt("",!0),ye(rm,{class:"w-full max-w-96",modelValue:N(tf),"onUpdate:modelValue":i[0]||(i[0]=o=>st(tf)?tf.value=o:null)},null,8,["modelValue"])],2))}}),Rle=""+new URL("metacubex-BlQkOUXT.jpg",import.meta.url).href,Ple="data:image/svg+xml,%3csvg%20width='1027'%20height='1109'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20overflow='hidden'%3e%3cdefs%3e%3cfilter%20id='fx0'%20x='-10%25'%20y='-10%25'%20width='120%25'%20height='120%25'%20filterUnits='userSpaceOnUse'%20primitiveUnits='userSpaceOnUse'%3e%3cfeComponentTransfer%20color-interpolation-filters='sRGB'%3e%3cfeFuncR%20type='discrete'%20tableValues='0%200'%20/%3e%3cfeFuncG%20type='discrete'%20tableValues='0%200'%20/%3e%3cfeFuncB%20type='discrete'%20tableValues='0%200'%20/%3e%3cfeFuncA%20type='linear'%20slope='0.4'%20intercept='0'%20/%3e%3c/feComponentTransfer%3e%3cfeGaussianBlur%20stdDeviation='4.58333%204.58333'%20/%3e%3c/filter%3e%3cclipPath%20id='clip1'%3e%3crect%20x='692'%20y='855'%20width='1027'%20height='1109'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clip2'%3e%3crect%20x='-2'%20y='-2'%20width='541'%20height='786'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clip3'%3e%3crect%20x='0'%20y='0'%20width='535'%20height='782'%20/%3e%3c/clipPath%3e%3c/defs%3e%3cg%20clip-path='url(%23clip1)'%20transform='translate(-692%20-855)'%3e%3cpath%20d='M692%201191%20692%201575.69C692%201640.41%20731.499%201651.19%20731.499%201651.19L1148.03%201931.62C1212.66%201974.77%201194.71%201881.29%201194.71%201881.29L1194.71%201528.96%20692%201191Z'%20fill='%2337474F'%20fill-rule='evenodd'%20/%3e%3cg%20clip-path='url(%23clip2)'%20filter='url(%23fx0)'%20transform='translate(1184%201182)'%3e%3cg%20clip-path='url(%23clip3)'%3e%3cpath%20d='M520.482%2015.4819%20520.482%20400.176C520.482%20464.89%20480.983%20475.676%20480.983%20475.676%20480.983%20475.676%20129.086%20712.963%2064.4523%20756.106-0.181814%20799.25%2017.7721%20705.773%2017.7721%20705.773L17.7721%20353.437%20520.482%2015.4819Z'%20fill='%23455A64'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/g%3e%3cpath%20d='M1698%201191%201698%201575.69C1698%201640.41%201658.5%201651.19%201658.5%201651.19%201658.5%201651.19%201306.6%201888.48%201241.97%201931.62%201177.34%201974.77%201195.29%201881.29%201195.29%201881.29L1195.29%201528.96%201698%201191Z'%20fill='%23455A64'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M1241.71%20868.473C1212.96%20850.509%201169.85%20850.509%201144.7%20868.473L713.557%201163.07C684.814%201181.04%20684.814%201213.37%20713.557%201231.33L1144.7%201529.53C1173.44%201547.49%201216.56%201547.49%201241.71%201529.53L1676.44%201227.74C1705.19%201209.78%201705.19%201177.44%201676.44%201159.48L1241.71%20868.473Z'%20fill='%23546E7A'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M1195%201949C1173.4%201949%201159%201935.19%201159%201917.92L1159%201531.08C1159%201513.82%201173.4%201500%201195%201500%201216.6%201500%201231%201513.82%201231%201531.08L1231%201914.46C1231%201935.19%201216.6%201949%201195%201949Z'%20fill='%23546E7A'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M1553.92%201435.92C1553.92%201471.89%201557.5%201486.27%201518.03%201511.45L1428.32%201568.99C1388.85%201594.17%201374.5%201572.59%201374.5%201540.22L1374.5%201446.71C1374.5%201439.52%201374.5%201435.92%201363.73%201428.73%201270.43%201363.99%20911.591%201115.84%20847%201069.09L1012.07%20954C1058.72%20982.772%201399.61%201209.35%201539.56%201306.45%201546.74%201310.05%201550.33%201317.24%201550.33%201320.84L1550.33%201435.92Z'%20fill='%2399AAB5'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M1543.41%201310.21C1399.82%201213.17%201058.79%20986.752%201015.72%20958L951.103%20997.534%20847%201069.41C911.615%201116.14%201270.59%201360.53%201363.92%201425.22%201371.1%201428.81%201371.1%201432.41%201371.1%201436L1547%201313.8C1547%201313.8%201547%201310.21%201543.41%201310.21Z'%20fill='%23CCD6DD'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M1554.9%201435.48%201554.9%201324.19C1554.9%201317.01%201551.3%201313.42%201544.11%201309.83%201400.28%201212.89%201058.67%20986.721%201015.51%20958L940%201008.26C1062.26%201090.83%201389.49%201306.24%201475.79%201367.27%201486.58%201374.45%201486.58%201381.63%201486.58%201385.22L1486.58%201536%201522.54%201510.87C1558.5%201485.74%201554.9%201467.79%201554.9%201435.48Z'%20fill='%23CCD6DD'%20fill-rule='evenodd'%20/%3e%3cpath%20d='M1543.23%201309.95C1399.6%201212.98%201058.49%20986.731%201015.4%20958L940%201008.28C1062.08%201090.88%201388.83%201306.36%201475.01%201367.41%201475.01%201367.41%201478.6%201371%201478.6%201371L1554%201317.13C1546.82%201313.54%201546.82%201309.95%201543.23%201309.95Z'%20fill='%23E1E8ED'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/svg%3e",Ole={class:"flex items-center gap-1"},Dle=["src"],tR=it({__name:"BackendVersion",setup(e){return(t,n)=>(K(),ae("div",Ole,[ft(re(t.$t("version"))+": ",1),L("img",{src:N(hl)?N(Ple):N(Rle),class:"h-4 w-4 rounded-sm"},null,8,Dle),ft(" "+re(N(dg)),1)]))}}),Mle={class:"join flex"},Lle=["value"],GV=it({__name:"BackendSwitch",setup(e){const t=Ve(()=>fs.value.map(r=>({label:Eu(r),value:r.uuid}))),n=()=>{ci.value=null,Fa.push({name:un.setup})};return(r,i)=>(K(),ae("div",Mle,[_t(L("select",{class:"join-item select select-bordered select-sm w-56","onUpdate:modelValue":i[0]||(i[0]=o=>st(ci)?ci.value=o:null)},[(K(!0),ae(Ze,null,on(t.value,o=>(K(),ae("option",{key:o.value,value:o.value},re(o.label),9,Lle))),128))],512),[[hi,N(ci)]]),L("button",{class:"btn join-item btn-sm",onClick:n},[ye(N(j4),{class:"h-4 w-4"})])]))}}),Nle={class:"grid w-full grid-cols-2 gap-1 rounded-lg"},zV=it({__name:"StatisticsInfo",setup(e){return(t,n)=>(K(),ae("div",Nle,[L("div",null,re(t.$t("connections"))+": "+re(N(ea).length),1),L("div",null,re(t.$t("memoryUsage"))+": "+re(N(Tn)(N(kb),{binary:!0})),1),L("div",null,re(t.$t("download"))+": "+re(N(Tn)(N(hg))),1),L("div",null,re(t.$t("dlSpeed"))+": "+re(N(Tn)(N(Fb)))+"/s",1),L("div",null,re(t.$t("upload"))+": "+re(N(Tn)(N(pg))),1),L("div",null,re(t.$t("ulSpeed"))+": "+re(N(Tn)(N($b)))+"/s",1)]))}}),kle={class:"flex flex-col gap-2 p-2 text-sm"},Fle={class:"flex"},$le=it({__name:"CommonCtrl",setup(e){return(t,n)=>(K(),ae("div",kle,[ye(zV),ye(tR),L("div",Fle,[L("button",{class:"btn btn-circle btn-sm",onClick:n[0]||(n[0]=r=>mu.value=!0)},[ye(N(mQ),{class:"h-5 w-5"})]),n[1]||(n[1]=L("div",{class:"flex-1"},null,-1)),ye(GV)])]))}});/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var OE=function(e,t){return OE=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},OE(e,t)};function ot(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");OE(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var nR=12,Ble="sans-serif",pf=nR+"px "+Ble,Vle=20,Ule=100,Hle="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function Gle(e){var t={};if(typeof JSON>"u")return t;for(var n=0;n=0)s=a*n.length;else for(var l=0;l"u"&&typeof self<"u"?Dt.worker=!0:!Dt.hasGlobalWindow||"Deno"in window?(Dt.node=!0,Dt.svgSupported=!0):oue(navigator.userAgent,Dt);function oue(e,t){var n=t.browser,r=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),o=e.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(e);r&&(n.firefox=!0,n.version=r[1]),i&&(n.ie=!0,n.version=i[1]),o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18),a&&(n.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,t.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),t.domSupported=typeof document<"u";var s=document.documentElement.style;t.transform3dSupported=(n.ie&&"transition"in s||n.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),t.transformSupported=t.transform3dSupported||n.ie&&+n.version>=9}var aue=".",tc="___EC__COMPONENT__CONTAINER___",JV="___EC__EXTENDED_CLASS___";function rs(e){var t={main:"",sub:""};if(e){var n=e.split(aue);t.main=n[0]||"",t.sub=n[1]||""}return t}function sue(e){pl(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e),'componentType "'+e+'" illegal')}function lue(e){return!!(e&&e[JV])}function sR(e,t){e.$constructor=e,e.extend=function(n){var r=this,i;return uue(r)?i=function(o){ot(a,o);function a(){return o.apply(this,arguments)||this}return a}(r):(i=function(){(n.$constructor||r).apply(this,arguments)},Kle(i,this)),Ke(i.prototype,n),i[JV]=!0,i.extend=this.extend,i.superCall=due,i.superApply=hue,i.superClass=r,i}}function uue(e){return Vt(e)&&/^class\s/.test(Function.prototype.toString.call(e))}function QV(e,t){e.extend=t.extend}var cue=Math.round(Math.random()*10);function fue(e){var t=["__\0is_clz",cue++].join("_");e.prototype[t]=!0,e.isInstance=function(n){return!!(n&&n[t])}}function due(e,t){for(var n=[],r=2;r=0||o&&In(o,l)<0)){var u=r.getShallow(l,t);u!=null&&(a[e[s][0]]=u)}}return a}}var pue=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],vue=_g(pue),gue=function(){function e(){}return e.prototype.getAreaStyle=function(t,n){return vue(this,t,n)},e}(),eU=function(){function e(t){this.value=t}return e}(),mue=function(){function e(){this._len=0}return e.prototype.insert=function(t){var n=new eU(t);return this.insertEntry(n),n},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var n=t.prev,r=t.next;n?n.next=r:this.head=r,r?r.prev=n:this.tail=n,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),om=function(){function e(t){this._list=new mue,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,n){var r=this._list,i=this._map,o=null;if(i[t]==null){var a=r.len(),s=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var l=r.head;r.remove(l),delete i[l.key],o=l.value,this._lastRemovedEntry=l}s?s.value=n:s=new eU(n),s.key=t,r.insertEntry(s),i[t]=s}return o},e.prototype.get=function(t){var n=this._map[t],r=this._list;if(n!=null)return n!==r.tail&&(r.remove(n),r.insertEntry(n)),n.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),LE=new om(50);function yue(e){if(typeof e=="string"){var t=LE.get(e);return t&&t.image}else return e}function tU(e,t,n,r,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!n)return t;var o=LE.get(e),a={hostEl:n,cb:r,cbPayload:i};return o?(t=o.image,!eS(t)&&o.pending.push(a)):(t=Ch.loadImage(e,tN,tN),t.__zrImageSrc=e,LE.put(e,t.__cachedImgObj={image:t,pending:[a]})),t}else return e;else return t}function tN(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;tv&&(v=w,mv&&(v=S,_=r.x&&t<=r.x+r.width&&n>=r.y&&n<=r.y+r.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,n){t.x=n.x,t.y=n.y,t.width=n.width,t.height=n.height},e.applyTransform=function(t,n,r){if(!r){t!==n&&e.copy(t,n);return}if(r[1]<1e-5&&r[1]>-1e-5&&r[2]<1e-5&&r[2]>-1e-5){var i=r[0],o=r[3],a=r[4],s=r[5];t.x=n.x*i+a,t.y=n.y*o+s,t.width=n.width*i,t.height=n.height*o,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}nc.x=ic.x=n.x,nc.y=oc.y=n.y,rc.x=oc.x=n.x+n.width,rc.y=ic.y=n.y+n.height,nc.transform(r),oc.transform(r),rc.transform(r),ic.transform(r),t.x=$y(nc.x,rc.x,ic.x,oc.x),t.y=$y(nc.y,rc.y,ic.y,oc.y);var l=By(nc.x,rc.x,ic.x,oc.x),u=By(nc.y,rc.y,ic.y,oc.y);t.width=l-t.x,t.height=u-t.y},e}(),nN={};function Ao(e,t){t=t||pf;var n=nN[t];n||(n=nN[t]=new om(500));var r=n.get(e);return r==null&&(r=Ch.measureText(e,t).width,n.put(e,r)),r}function rN(e,t,n,r){var i=Ao(e,t),o=dR(t),a=Wp(0,i,n),s=_d(0,o,r),l=new bn(a,s,i,o);return l}function fR(e,t,n,r){var i=((e||"")+"").split(` +`),o=i.length;if(o===1)return rN(i[0],t,n,r);for(var a=new bn(0,0,0,0),s=0;s=0?parseFloat(e)/100*t:parseFloat(e):e}function nU(e,t,n){var r=t.position||"inside",i=t.distance!=null?t.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,c="left",f="top";if(r instanceof Array)l+=gf(r[0],n.width),u+=gf(r[1],n.height),c=null,f=null;else switch(r){case"left":l-=i,u+=s,c="right",f="middle";break;case"right":l+=i+a,u+=s,f="middle";break;case"top":l+=a/2,u-=i,c="center",f="bottom";break;case"bottom":l+=a/2,u+=o+i,c="center";break;case"inside":l+=a/2,u+=s,c="center",f="middle";break;case"insideLeft":l+=i,u+=s,f="middle";break;case"insideRight":l+=a-i,u+=s,c="right",f="middle";break;case"insideTop":l+=a/2,u+=i,c="center";break;case"insideBottom":l+=a/2,u+=o-i,c="center",f="bottom";break;case"insideTopLeft":l+=i,u+=i;break;case"insideTopRight":l+=a-i,u+=i,c="right";break;case"insideBottomLeft":l+=i,u+=o-i,f="bottom";break;case"insideBottomRight":l+=a-i,u+=o-i,c="right",f="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=c,e.verticalAlign=f,e}var zx=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function Sue(e,t,n,r,i,o){if(!n){e.text="",e.isTruncated=!1;return}var a=(t+"").split(` +`);o=rU(n,r,i,o);for(var s=!1,l={},u=0,c=a.length;u=a;l++)s-=a;var u=Ao(n,t);return u>s&&(n="",u=0),s=e-u,i.ellipsis=n,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=e,i}function iU(e,t,n){var r=n.containerWidth,i=n.font,o=n.contentWidth;if(!r){e.textLine="",e.isTruncated=!1;return}var a=Ao(t,i);if(a<=r){e.textLine=t,e.isTruncated=!1;return}for(var s=0;;s++){if(a<=o||s>=n.maxIterations){t+=n.ellipsis;break}var l=s===0?wue(t,o,n.ascCharWidth,n.cnCharWidth):a>0?Math.floor(t.length*o/a):0;t=t.substr(0,l),a=Ao(t,i)}t===""&&(t=n.placeholder),e.textLine=t,e.isTruncated=!0}function wue(e,t,n,r){for(var i=0,o=0,a=e.length;ov&&u){var m=Math.floor(v/s);c=c||d.length>m,d=d.slice(0,m)}if(e&&o&&f!=null)for(var y=rU(f,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),_={},b=0;bs&&Wx(n,e.substring(s,u),t,a),Wx(n,l[2],t,a,l[1]),s=zx.lastIndex}si){var $=n.lines.length;T>0?(w.tokens=w.tokens.slice(0,T),_(w,C,S),n.lines=n.lines.slice(0,b+1)):n.lines=n.lines.slice(0,b),n.isTruncated=n.isTruncated||n.lines.length<$;break e}var F=P.width,z=F==null||F==="auto";if(typeof F=="string"&&F.charAt(F.length-1)==="%")A.percentWidth=F,c.push(A),A.contentWidth=Ao(A.text,O);else{if(z){var B=P.backgroundColor,Y=B&&B.image;Y&&(Y=yue(Y),eS(Y)&&(A.width=Math.max(A.width,Y.width*M/Y.height)))}var j=v&&r!=null?r-C:null;j!=null&&j0&&v+r.accumWidth>r.width&&(c=t.split(` +`),u=!0),r.accumWidth=v}else{var m=oU(t,l,r.width,r.breakAll,r.accumWidth);r.accumWidth=m.accumWidth+h,f=m.linesWidths,c=m.lines}}else c=t.split(` +`);for(var y=0;y=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var Iue=Eh(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function Rue(e){return Aue(e)?!!Iue[e]:!0}function oU(e,t,n,r,i){for(var o=[],a=[],s="",l="",u=0,c=0,f=0;fn:i+c+h>n){c?(s||l)&&(v?(s||(s=l,l="",u=0,c=u),o.push(s),a.push(c-u),l+=d,u+=h,s="",c=u):(l&&(s+=l,l="",u=0),o.push(s),a.push(c),s=d,c=h)):v?(o.push(l),a.push(u),l=d,u=h):(o.push(d),a.push(h));continue}c+=h,v?(l+=d,u+=h):(l&&(s+=l,l="",u=0),s+=d)}return!o.length&&!s&&(s=e,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(c)),o.length===1&&(c+=i),{accumWidth:c,lines:o,linesWidths:a}}function Ah(e,t){return e==null&&(e=0),t==null&&(t=0),[e,t]}function Pue(e){return[e[0],e[1]]}function oN(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function Oue(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function Due(e){return Math.sqrt(Mue(e))}function Mue(e){return e[0]*e[0]+e[1]*e[1]}function jx(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function Lue(e,t){var n=Due(t);return n===0?(e[0]=0,e[1]=0):(e[0]=t[0]/n,e[1]=t[1]/n),e}function kE(e,t){return Math.sqrt((e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1]))}var Nue=kE;function kue(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}var Hd=kue;function na(e,t,n){var r=t[0],i=t[1];return e[0]=n[0]*r+n[2]*i+n[4],e[1]=n[1]*r+n[3]*i+n[5],e}function Ed(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e}function Ad(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e}var aN=lR,sN=5e-5;function ac(e){return e>sN||e<-sN}var sc=[],Kf=[],Yx=Vd(),Xx=Math.abs,hR=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return ac(this.rotation)||ac(this.x)||ac(this.y)||ac(this.scaleX-1)||ac(this.scaleY-1)||ac(this.skewX)||ac(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,n=this.needLocalTransform(),r=this.transform;if(!(n||t)){r&&(aN(r),this.invTransform=null);return}r=r||Vd(),n?this.getLocalTransform(r):aN(r),t&&(n?Ud(r,t,r):_ue(r,t)),this.transform=r,this._resolveGlobalScaleRatio(r)},e.prototype._resolveGlobalScaleRatio=function(t){var n=this.globalScaleRatio;if(n!=null&&n!==1){this.getGlobalScale(sc);var r=sc[0]<0?-1:1,i=sc[1]<0?-1:1,o=((sc[0]-r)*n+r)/sc[0]||0,a=((sc[1]-i)*n+i)/sc[1]||0;t[0]*=o,t[1]*=o,t[2]*=a,t[3]*=a}this.invTransform=this.invTransform||Vd(),cR(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,n=[];t;)n.push(t),t=t.parent;for(;t=n.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var n=t[0]*t[0]+t[1]*t[1],r=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),o=Math.PI/2+i-Math.atan2(t[3],t[2]);r=Math.sqrt(r)*Math.cos(o),n=Math.sqrt(n),this.skewX=o,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=n,this.scaleY=r,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,n=this.transform;t&&t.transform&&(t.invTransform=t.invTransform||Vd(),Ud(Kf,t.invTransform,n),n=Kf);var r=this.originX,i=this.originY;(r||i)&&(Yx[4]=r,Yx[5]=i,Ud(Kf,n,Yx),Kf[4]-=r,Kf[5]-=i,n=Kf),this.setLocalTransform(n)}},e.prototype.getGlobalScale=function(t){var n=this.transform;return t=t||[],n?(t[0]=Math.sqrt(n[0]*n[0]+n[1]*n[1]),t[1]=Math.sqrt(n[2]*n[2]+n[3]*n[3]),n[0]<0&&(t[0]=-t[0]),n[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,n){var r=[t,n],i=this.invTransform;return i&&na(r,r,i),r},e.prototype.transformCoordToGlobal=function(t,n){var r=[t,n],i=this.transform;return i&&na(r,r,i),r},e.prototype.getLineScale=function(){var t=this.transform;return t&&Xx(t[0]-1)>1e-10&&Xx(t[3]-1)>1e-10?Math.sqrt(Xx(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){Fue(this,t)},e.getLocalTransform=function(t,n){n=n||[];var r=t.originX||0,i=t.originY||0,o=t.scaleX,a=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,c=t.x,f=t.y,d=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(r||i||s||l){var v=r+s,m=i+l;n[4]=-v*o-d*m*a,n[5]=-m*a-h*v*o}else n[4]=n[5]=0;return n[0]=o,n[3]=a,n[1]=h*o,n[2]=d*a,u&&uR(n,n,u),n[4]+=r+c,n[5]+=i+f,n},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),bg=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function Fue(e,t){for(var n=0;n-b1&&eb1||e<-b1}function Hr(e,t,n,r,i){var o=1-i;return o*o*(o*e+3*i*t)+i*i*(i*r+3*o*n)}function uN(e,t,n,r,i){var o=1-i;return 3*(((t-e)*o+2*(n-t)*i)*o+(r-n)*i*i)}function S1(e,t,n,r,i,o){var a=r+3*(t-n)-e,s=3*(n-t*2+e),l=3*(t-e),u=e-i,c=s*s-3*a*l,f=s*l-9*a*u,d=l*l-3*s*u,h=0;if(cu(c)&&cu(f))if(cu(s))o[0]=0;else{var v=-l/s;v>=0&&v<=1&&(o[h++]=v)}else{var m=f*f-4*c*d;if(cu(m)){var y=f/c,v=-s/a+y,_=-y/2;v>=0&&v<=1&&(o[h++]=v),_>=0&&_<=1&&(o[h++]=_)}else if(m>0){var b=yu(m),w=c*s+1.5*a*(-f+b),S=c*s+1.5*a*(-f-b);w<0?w=-Vy(-w,Uy):w=Vy(w,Uy),S<0?S=-Vy(-S,Uy):S=Vy(S,Uy);var v=(-s-(w+S))/(3*a);v>=0&&v<=1&&(o[h++]=v)}else{var C=(2*c*s-3*a*f)/(2*yu(c*c*c)),T=Math.acos(C)/3,A=yu(c),P=Math.cos(T),v=(-s-2*A*P)/(3*a),_=(-s+A*(P+lN*Math.sin(T)))/(3*a),I=(-s+A*(P-lN*Math.sin(T)))/(3*a);v>=0&&v<=1&&(o[h++]=v),_>=0&&_<=1&&(o[h++]=_),I>=0&&I<=1&&(o[h++]=I)}}return h}function lU(e,t,n,r,i){var o=6*n-12*t+6*e,a=9*t+3*r-3*e-9*n,s=3*t-3*e,l=0;if(cu(a)){if(sU(o)){var u=-s/o;u>=0&&u<=1&&(i[l++]=u)}}else{var c=o*o-4*a*s;if(cu(c))i[0]=-o/(2*a);else if(c>0){var f=yu(c),u=(-o+f)/(2*a),d=(-o-f)/(2*a);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function w1(e,t,n,r,i,o){var a=(t-e)*i+e,s=(n-t)*i+t,l=(r-n)*i+n,u=(s-a)*i+a,c=(l-s)*i+s,f=(c-u)*i+u;o[0]=e,o[1]=a,o[2]=u,o[3]=f,o[4]=f,o[5]=c,o[6]=l,o[7]=r}function $ue(e,t,n,r,i,o,a,s,l,u,c){var f,d=.005,h=1/0,v,m,y,_;es[0]=l,es[1]=u;for(var b=0;b<1;b+=.05)Ko[0]=Hr(e,n,i,a,b),Ko[1]=Hr(t,r,o,s,b),y=Hd(es,Ko),y=0&&y=0&&u<=1&&(i[l++]=u)}}else{var c=a*a-4*o*s;if(cu(c)){var u=-a/(2*o);u>=0&&u<=1&&(i[l++]=u)}else if(c>0){var f=yu(c),u=(-a+f)/(2*o),d=(-a-f)/(2*o);u>=0&&u<=1&&(i[l++]=u),d>=0&&d<=1&&(i[l++]=d)}}return l}function uU(e,t,n){var r=e+n-2*t;return r===0?.5:(e-t)/r}function x1(e,t,n,r,i){var o=(t-e)*r+e,a=(n-t)*r+t,s=(a-o)*r+o;i[0]=e,i[1]=o,i[2]=s,i[3]=s,i[4]=a,i[5]=n}function Uue(e,t,n,r,i,o,a,s,l){var u,c=.005,f=1/0;es[0]=a,es[1]=s;for(var d=0;d<1;d+=.05){Ko[0]=Yi(e,n,i,d),Ko[1]=Yi(t,r,o,d);var h=Hd(es,Ko);h=0&&h=1?1:S1(0,r,o,1,l,s)&&Hr(0,i,a,1,s[0])}}}var zue=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||eo,this.ondestroy=t.ondestroy||eo,this.onrestart=t.onrestart||eo,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,n){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=n;return}var r=this._life,i=t-this._startTime-this._pausedTime,o=i/r;o<0&&(o=0),o=Math.min(o,1);var a=this.easingFunc,s=a?a(o):o;if(this.onframe(s),o===1)if(this.loop){var l=i%r;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Vt(t)?t:Cv[t]||cU(t)},e}(),fN={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function _u(e){return e=Math.round(e),e<0?0:e>255?255:e}function FE(e){return e<0?0:e>1?1:e}function Kx(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?_u(parseFloat(t)/100*255):_u(parseInt(t,10))}function Ev(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?FE(parseFloat(t)/100):FE(parseFloat(t))}function Zx(e,t,n){return n<0?n+=1:n>1&&(n-=1),n*6<1?e+(t-e)*n*6:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function Hy(e,t,n){return e+(t-e)*n}function zo(e,t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e}function $E(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var fU=new om(20),Gy=null;function Zf(e,t){Gy&&$E(Gy,t),Gy=fU.put(e,Gy||t.slice())}function nl(e,t){if(e){t=t||[];var n=fU.get(e);if(n)return $E(t,n);e=e+"";var r=e.replace(/ /g,"").toLowerCase();if(r in fN)return $E(t,fN[r]),Zf(e,t),t;var i=r.length;if(r.charAt(0)==="#"){if(i===4||i===5){var o=parseInt(r.slice(1,4),16);if(!(o>=0&&o<=4095)){zo(t,0,0,0,1);return}return zo(t,(o&3840)>>4|(o&3840)>>8,o&240|(o&240)>>4,o&15|(o&15)<<4,i===5?parseInt(r.slice(4),16)/15:1),Zf(e,t),t}else if(i===7||i===9){var o=parseInt(r.slice(1,7),16);if(!(o>=0&&o<=16777215)){zo(t,0,0,0,1);return}return zo(t,(o&16711680)>>16,(o&65280)>>8,o&255,i===9?parseInt(r.slice(7),16)/255:1),Zf(e,t),t}return}var a=r.indexOf("("),s=r.indexOf(")");if(a!==-1&&s+1===i){var l=r.substr(0,a),u=r.substr(a+1,s-(a+1)).split(","),c=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?zo(t,+u[0],+u[1],+u[2],1):zo(t,0,0,0,1);c=Ev(u.pop());case"rgb":if(u.length>=3)return zo(t,Kx(u[0]),Kx(u[1]),Kx(u[2]),u.length===3?c:Ev(u[3])),Zf(e,t),t;zo(t,0,0,0,1);return;case"hsla":if(u.length!==4){zo(t,0,0,0,1);return}return u[3]=Ev(u[3]),dN(u,t),Zf(e,t),t;case"hsl":if(u.length!==3){zo(t,0,0,0,1);return}return dN(u,t),Zf(e,t),t;default:return}}zo(t,0,0,0,1)}}function dN(e,t){var n=(parseFloat(e[0])%360+360)%360/360,r=Ev(e[1]),i=Ev(e[2]),o=i<=.5?i*(r+1):i+r-i*r,a=i*2-o;return t=t||[],zo(t,_u(Zx(a,o,n+1/3)*255),_u(Zx(a,o,n)*255),_u(Zx(a,o,n-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function hN(e,t){var n=nl(e);if(n){for(var r=0;r<3;r++)n[r]=n[r]*(1-t)|0,n[r]>255?n[r]=255:n[r]<0&&(n[r]=0);return tS(n,n.length===4?"rgba":"rgb")}}function Wue(e,t,n){if(!(!(t&&t.length)||!(e>=0&&e<=1))){var r=e*(t.length-1),i=Math.floor(r),o=Math.ceil(r),a=nl(t[i]),s=nl(t[o]),l=r-i,u=tS([_u(Hy(a[0],s[0],l)),_u(Hy(a[1],s[1],l)),_u(Hy(a[2],s[2],l)),FE(Hy(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:i,rightIndex:o,value:r}:u}}function tS(e,t){if(!(!e||!e.length)){var n=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(n+=","+e[3]),t+"("+n+")"}}function T1(e,t){var n=nl(e);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*t:0}var pN=new om(100);function vN(e){if(dt(e)){var t=pN.get(e);return t||(t=hN(e,-.1),pN.put(e,t)),t}else if(qb(e)){var n=Ke({},e);return n.colorStops=Rt(e.colorStops,function(r){return{offset:r.offset,color:hN(r.color,-.1)}}),n}return e}function jue(e){return e.type==="linear"}function Yue(e){return e.type==="radial"}(function(){return Dt.hasGlobalWindow&&Vt(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<"u"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var BE=Array.prototype.slice;function Gs(e,t,n){return(t-e)*n+e}function qx(e,t,n,r){for(var i=t.length,o=0;or?t:e,o=Math.min(n,r),a=i[o-1]||{color:[0,0,0,0],offset:0},s=o;sa;if(s)r.length=a;else for(var l=o;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,n,r){this._needsSort=!0;var i=this.keyframes,o=i.length,a=!1,s=mN,l=n;if(io(n)){var u=que(n);s=u,(u===1&&!Zn(n[0])||u===2&&!Zn(n[0][0]))&&(a=!0)}else if(Zn(n)&&!_1(n))s=Wy;else if(dt(n))if(!isNaN(+n))s=Wy;else{var c=nl(n);c&&(l=c,s=jp)}else if(qb(n)){var f=Ke({},l);f.colorStops=Rt(n.colorStops,function(h){return{offset:h.offset,color:nl(h.color)}}),jue(n)?s=VE:Yue(n)&&(s=UE),l=f}o===0?this.valType=s:(s!==this.valType||s===mN)&&(a=!0),this.discrete=this.discrete||a;var d={time:t,value:l,rawValue:n,percent:0};return r&&(d.easing=r,d.easingFunc=Vt(r)?r:Cv[r]||cU(r)),i.push(d),d},e.prototype.prepare=function(t,n){var r=this.keyframes;this._needsSort&&r.sort(function(m,y){return m.time-y.time});for(var i=this.valType,o=r.length,a=r[o-1],s=this.discrete,l=jy(i),u=yN(i),c=0;c=0&&!(a[c].percent<=n);c--);c=d(c,s-2)}else{for(c=f;cn);c++);c=d(c-1,s-2)}v=a[c+1],h=a[c]}if(h&&v){this._lastFr=c,this._lastFrP=n;var y=v.percent-h.percent,_=y===0?1:d((n-h.percent)/y,1);v.easingFunc&&(_=v.easingFunc(_));var b=r?this._additiveValue:u?fp:t[l];if((jy(o)||u)&&!b&&(b=this._additiveValue=[]),this.discrete)t[l]=_<1?h.rawValue:v.rawValue;else if(jy(o))o===w_?qx(b,h[i],v[i],_):Xue(b,h[i],v[i],_);else if(yN(o)){var w=h[i],S=v[i],C=o===VE;t[l]={type:C?"linear":"radial",x:Gs(w.x,S.x,_),y:Gs(w.y,S.y,_),colorStops:Rt(w.colorStops,function(A,P){var I=S.colorStops[P];return{offset:Gs(A.offset,I.offset,_),color:S_(qx([],A.color,I.color,_))}}),global:S.global},C?(t[l].x2=Gs(w.x2,S.x2,_),t[l].y2=Gs(w.y2,S.y2,_)):t[l].r=Gs(w.r,S.r,_)}else if(u)qx(b,h[i],v[i],_),r||(t[l]=S_(b));else{var T=Gs(h[i],v[i],_);r?this._additiveValue=T:t[l]=T}r&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var n=this.valType,r=this.propName,i=this._additiveValue;n===Wy?t[r]=t[r]+i:n===jp?(nl(t[r],fp),zy(fp,fp,i,1),t[r]=S_(fp)):n===w_?zy(t[r],t[r],i,1):n===dU&&gN(t[r],t[r],i,1)},e}(),pR=function(){function e(t,n,r,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=n,n&&i){oR("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=r}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,n,r){return this.whenWithKeys(t,n,Kn(n),r)},e.prototype.whenWithKeys=function(t,n,r,i){for(var o=this._tracks,a=0;a0&&l.addKeyframe(0,b_(u),i),this._trackKeys.push(s)}l.addKeyframe(t,b_(n[s]),i)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var n=t.length,r=0;r0)){this._started=1;for(var n=this,r=[],i=this._maxTime||0,o=0;o1){var s=a.pop();o.addKeyframe(s.time,t[i]),o.prepare(this._maxTime,o.getAdditiveTrack())}}}},e}(),ys=function(){function e(t){t&&(this._$eventProcessor=t)}return e.prototype.on=function(t,n,r,i){this._$handlers||(this._$handlers={});var o=this._$handlers;if(typeof n=="function"&&(i=r,r=n,n=null),!r||!t)return this;var a=this._$eventProcessor;n!=null&&a&&a.normalizeQuery&&(n=a.normalizeQuery(n)),o[t]||(o[t]=[]);for(var s=0;s=0:r.inside,y=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),_=void 0,b=void 0,w=void 0;m&&this.canBeInsideText()?(_=r.insideFill,b=r.insideStroke,(_==null||_==="auto")&&(_=this.getInsideTextFill()),(b==null||b==="auto")&&(b=this.getInsideTextStroke(_),w=!0)):(_=r.outsideFill,b=r.outsideStroke,(_==null||_==="auto")&&(_=this.getOutsideFill()),(b==null||b==="auto")&&(b=this.getOutsideStroke(_),w=!0)),_=_||"#000",(_!==y.fill||b!==y.stroke||w!==y.autoStroke||a!==y.align||s!==y.verticalAlign)&&(l=!0,y.fill=_,y.stroke=b,y.autoStroke=w,y.align=a,y.verticalAlign=s,n.setDefaultTextStyle(y)),n.__dirty|=wo,l&&n.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?zE:GE},e.prototype.getOutsideStroke=function(t){var n=this.__zr&&this.__zr.getBackgroundColor(),r=typeof n=="string"&&nl(n);r||(r=[255,255,255,1]);for(var i=r[3],o=this.__zr.isDarkMode(),a=0;a<3;a++)r[a]=r[a]*i+(o?0:255)*(1-i);return r[3]=1,tS(r,"rgba")},e.prototype.traverse=function(t,n){},e.prototype.attrKV=function(t,n){t==="textConfig"?this.setTextConfig(n):t==="textContent"?this.setTextContent(n):t==="clipPath"?this.setClipPath(n):t==="extra"?(this.extra=this.extra||{},Ke(this.extra,n)):this[t]=n},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,n){if(typeof t=="string")this.attrKV(t,n);else if(Ct(t))for(var r=t,i=Kn(r),o=0;o0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var n=this.states;return n[t]||(n[t]={}),n[t]},e.prototype.clearStates=function(t){this.useState(Jx,!1,t)},e.prototype.useState=function(t,n,r,i){var o=t===Jx,a=this.hasState();if(!(!a&&o)){var s=this.currentStates,l=this.stateTransition;if(!(In(s,t)>=0&&(n||s.length===1))){var u;if(this.stateProxy&&!o&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!o){oR("State "+t+" not exists.");return}o||this.saveCurrentToNormalState(u);var c=!!(u&&u.hoverLayer||i);c&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,n,!r&&!this.__inHover&&l&&l.duration>0,l);var f=this._textContent,d=this._textGuide;return f&&f.useState(t,n,r,c),d&&d.useState(t,n,r,c),o?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~wo),u}}},e.prototype.useStates=function(t,n,r){if(!t.length)this.clearStates();else{var i=[],o=this.currentStates,a=t.length,s=a===o.length;if(s){for(var l=0;l0,v);var m=this._textContent,y=this._textGuide;m&&m.useStates(t,n,d),y&&y.useStates(t,n,d),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!d&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~wo)}},e.prototype.isSilent=function(){for(var t=this.silent,n=this.parent;!t&&n;){if(n.silent){t=!0;break}n=n.parent}return t},e.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var r=this.currentStates.slice();r.splice(n,1),this.useStates(r)}},e.prototype.replaceState=function(t,n,r){var i=this.currentStates.slice(),o=In(i,t),a=In(i,n)>=0;o>=0?a?i.splice(o,1):i[o]=n:r&&!a&&i.push(n),this.useStates(i)},e.prototype.toggleState=function(t,n){n?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var n={},r,i=0;i=0&&o.splice(a,1)}),this.animators.push(t),r&&r.animation.addAnimator(t),r&&r.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,n){for(var r=this.animators,i=r.length,o=[],a=0;a0&&n.during&&o[0].during(function(v,m){n.during(m)});for(var d=0;d0||i.force&&!a.length){var P=void 0,I=void 0,R=void 0;if(s){I={},d&&(P={});for(var S=0;S1e-4){s[0]=e-n,s[1]=t-r,l[0]=e+n,l[1]=t+r;return}if(Yy[0]=oT(i)*n+e,Yy[1]=iT(i)*r+t,Xy[0]=oT(o)*n+e,Xy[1]=iT(o)*r+t,u(s,Yy,Xy),c(l,Yy,Xy),i=i%lc,i<0&&(i=i+lc),o=o%lc,o<0&&(o=o+lc),i>o&&!a?o+=lc:ii&&(Ky[0]=oT(h)*n+e,Ky[1]=iT(h)*r+t,u(s,Ky,s),c(l,Ky,l))}var mn={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},uc=[],cc=[],ja=[],kl=[],Ya=[],Xa=[],aT=Math.min,sT=Math.max,fc=Math.cos,dc=Math.sin,Ls=Math.abs,jE=Math.PI,Yl=jE*2,lT=typeof Float32Array<"u",dp=[];function uT(e){var t=Math.round(e/jE*1e8)/1e8;return t%2*jE}function fce(e,t){var n=uT(e[0]);n<0&&(n+=Yl);var r=n-e[0],i=e[1];i+=r,!t&&i-n>=Yl?i=n+Yl:t&&n-i>=Yl?i=n-Yl:!t&&n>i?i=n+(Yl-uT(n-i)):t&&n0&&(this._ux=Ls(r/C1/t)||0,this._uy=Ls(r/C1/n)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,n){return this._drawPendingPt(),this.addData(mn.M,t,n),this._ctx&&this._ctx.moveTo(t,n),this._x0=t,this._y0=n,this._xi=t,this._yi=n,this},e.prototype.lineTo=function(t,n){var r=Ls(t-this._xi),i=Ls(n-this._yi),o=r>this._ux||i>this._uy;if(this.addData(mn.L,t,n),this._ctx&&o&&this._ctx.lineTo(t,n),o)this._xi=t,this._yi=n,this._pendingPtDist=0;else{var a=r*r+i*i;a>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=n,this._pendingPtDist=a)}return this},e.prototype.bezierCurveTo=function(t,n,r,i,o,a){return this._drawPendingPt(),this.addData(mn.C,t,n,r,i,o,a),this._ctx&&this._ctx.bezierCurveTo(t,n,r,i,o,a),this._xi=o,this._yi=a,this},e.prototype.quadraticCurveTo=function(t,n,r,i){return this._drawPendingPt(),this.addData(mn.Q,t,n,r,i),this._ctx&&this._ctx.quadraticCurveTo(t,n,r,i),this._xi=r,this._yi=i,this},e.prototype.arc=function(t,n,r,i,o,a){this._drawPendingPt(),dp[0]=i,dp[1]=o,fce(dp,a),i=dp[0],o=dp[1];var s=o-i;return this.addData(mn.A,t,n,r,r,i,s,0,a?0:1),this._ctx&&this._ctx.arc(t,n,r,i,o,a),this._xi=fc(o)*r+t,this._yi=dc(o)*r+n,this},e.prototype.arcTo=function(t,n,r,i,o){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,n,r,i,o),this},e.prototype.rect=function(t,n,r,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,n,r,i),this.addData(mn.R,t,n,r,i),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(mn.Z);var t=this._ctx,n=this._x0,r=this._y0;return t&&t.closePath(),this._xi=n,this._yi=r,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var n=t.length;!(this.data&&this.data.length===n)&&lT&&(this.data=new Float32Array(n));for(var r=0;rc.length&&(this._expandData(),c=this.data);for(var f=0;f0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],n=0;n11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){ja[0]=ja[1]=Ya[0]=Ya[1]=Number.MAX_VALUE,kl[0]=kl[1]=Xa[0]=Xa[1]=-Number.MAX_VALUE;var t=this.data,n=0,r=0,i=0,o=0,a;for(a=0;ar||Ls(w)>i||d===n-1)&&(m=Math.sqrt(b*b+w*w),o=y,a=_);break}case mn.C:{var S=t[d++],C=t[d++],y=t[d++],_=t[d++],T=t[d++],A=t[d++];m=Bue(o,a,S,C,y,_,T,A,10),o=T,a=A;break}case mn.Q:{var S=t[d++],C=t[d++],y=t[d++],_=t[d++];m=Hue(o,a,S,C,y,_,10),o=y,a=_;break}case mn.A:var P=t[d++],I=t[d++],R=t[d++],O=t[d++],M=t[d++],$=t[d++],F=$+M;d+=1,v&&(s=fc(M)*R+P,l=dc(M)*O+I),m=sT(R,O)*aT(Yl,Math.abs($)),o=fc(F)*R+P,a=dc(F)*O+I;break;case mn.R:{s=o=t[d++],l=a=t[d++];var z=t[d++],B=t[d++];m=z*2+B*2;break}case mn.Z:{var b=s-o,w=l-a;m=Math.sqrt(b*b+w*w),o=s,a=l;break}}m>=0&&(u[f++]=m,c+=m)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,n){var r=this.data,i=this._ux,o=this._uy,a=this._len,s,l,u,c,f,d,h=n<1,v,m,y=0,_=0,b,w=0,S,C;if(!(h&&(this._pathSegLen||this._calculateLength(),v=this._pathSegLen,m=this._pathLen,b=n*m,!b)))e:for(var T=0;T0&&(t.lineTo(S,C),w=0),A){case mn.M:s=u=r[T++],l=c=r[T++],t.moveTo(u,c);break;case mn.L:{f=r[T++],d=r[T++];var I=Ls(f-u),R=Ls(d-c);if(I>i||R>o){if(h){var O=v[_++];if(y+O>b){var M=(b-y)/O;t.lineTo(u*(1-M)+f*M,c*(1-M)+d*M);break e}y+=O}t.lineTo(f,d),u=f,c=d,w=0}else{var $=I*I+R*R;$>w&&(S=f,C=d,w=$)}break}case mn.C:{var F=r[T++],z=r[T++],B=r[T++],Y=r[T++],j=r[T++],se=r[T++];if(h){var O=v[_++];if(y+O>b){var M=(b-y)/O;w1(u,F,B,j,M,uc),w1(c,z,Y,se,M,cc),t.bezierCurveTo(uc[1],cc[1],uc[2],cc[2],uc[3],cc[3]);break e}y+=O}t.bezierCurveTo(F,z,B,Y,j,se),u=j,c=se;break}case mn.Q:{var F=r[T++],z=r[T++],B=r[T++],Y=r[T++];if(h){var O=v[_++];if(y+O>b){var M=(b-y)/O;x1(u,F,B,M,uc),x1(c,z,Y,M,cc),t.quadraticCurveTo(uc[1],cc[1],uc[2],cc[2]);break e}y+=O}t.quadraticCurveTo(F,z,B,Y),u=B,c=Y;break}case mn.A:var ge=r[T++],ve=r[T++],De=r[T++],Ne=r[T++],ze=r[T++],Me=r[T++],je=r[T++],ce=!r[T++],Ee=De>Ne?De:Ne,Se=Ls(De-Ne)>.001,Te=ze+Me,Oe=!1;if(h){var O=v[_++];y+O>b&&(Te=ze+Me*(b-y)/O,Oe=!0),y+=O}if(Se&&t.ellipse?t.ellipse(ge,ve,De,Ne,je,ze,Te,ce):t.arc(ge,ve,Ee,ze,Te,ce),Oe)break e;P&&(s=fc(ze)*De+ge,l=dc(ze)*Ne+ve),u=fc(Te)*De+ge,c=dc(Te)*Ne+ve;break;case mn.R:s=u=r[T],l=c=r[T+1],f=r[T++],d=r[T++];var $e=r[T++],H=r[T++];if(h){var O=v[_++];if(y+O>b){var G=b-y;t.moveTo(f,d),t.lineTo(f+aT(G,$e),d),G-=$e,G>0&&t.lineTo(f+$e,d+aT(G,H)),G-=H,G>0&&t.lineTo(f+sT($e-G,0),d+H),G-=$e,G>0&&t.lineTo(f,d+sT(H-G,0));break e}y+=O}t.rect(f,d,$e,H);break;case mn.Z:if(h){var O=v[_++];if(y+O>b){var M=(b-y)/O;t.lineTo(u*(1-M)+s*M,c*(1-M)+l*M);break e}y+=O}t.closePath(),u=s,c=l}}},e.prototype.clone=function(){var t=new e,n=this.data;return t.data=n.slice?n.slice():Array.prototype.slice.call(n),t._len=this._len,t},e.CMD=mn,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();function Jf(e,t,n,r,i,o,a){if(i===0)return!1;var s=i,l=0,u=e;if(a>t+s&&a>r+s||ae+s&&o>n+s||ot+f&&c>r+f&&c>o+f&&c>s+f||ce+f&&u>n+f&&u>i+f&&u>a+f||ut+u&&l>r+u&&l>o+u||le+u&&s>n+u&&s>i+u||sn||c+ui&&(i+=hp);var d=Math.atan2(l,s);return d<0&&(d+=hp),d>=r&&d<=i||d+hp>=r&&d+hp<=i}function hc(e,t,n,r,i,o){if(o>t&&o>r||oi?s:0}var Fl=mf.CMD,pc=Math.PI*2,vce=1e-4;function gce(e,t){return Math.abs(e-t)t&&u>r&&u>o&&u>s||u1&&mce(),h=Hr(t,r,o,s,Yo[0]),d>1&&(v=Hr(t,r,o,s,Yo[1]))),d===2?yt&&s>r&&s>o||s=0&&u<=1){for(var c=0,f=Yi(t,r,o,u),d=0;dn||s<-n)return 0;var l=Math.sqrt(n*n-s*s);xi[0]=-l,xi[1]=l;var u=Math.abs(r-i);if(u<1e-4)return 0;if(u>=pc-1e-4){r=0,i=pc;var c=o?1:-1;return a>=xi[0]+e&&a<=xi[1]+e?c:0}if(r>i){var f=r;r=i,i=f}r<0&&(r+=pc,i+=pc);for(var d=0,h=0;h<2;h++){var v=xi[h];if(v+e>a){var m=Math.atan2(s,v),c=o?1:-1;m<0&&(m=pc+m),(m>=r&&m<=i||m+pc>=r&&m+pc<=i)&&(m>Math.PI/2&&m1&&(n||(s+=hc(l,u,c,f,r,i))),y&&(l=o[v],u=o[v+1],c=l,f=u),m){case Fl.M:c=o[v++],f=o[v++],l=c,u=f;break;case Fl.L:if(n){if(Jf(l,u,o[v],o[v+1],t,r,i))return!0}else s+=hc(l,u,o[v],o[v+1],r,i)||0;l=o[v++],u=o[v++];break;case Fl.C:if(n){if(dce(l,u,o[v++],o[v++],o[v++],o[v++],o[v],o[v+1],t,r,i))return!0}else s+=yce(l,u,o[v++],o[v++],o[v++],o[v++],o[v],o[v+1],r,i)||0;l=o[v++],u=o[v++];break;case Fl.Q:if(n){if(hce(l,u,o[v++],o[v++],o[v],o[v+1],t,r,i))return!0}else s+=_ce(l,u,o[v++],o[v++],o[v],o[v+1],r,i)||0;l=o[v++],u=o[v++];break;case Fl.A:var _=o[v++],b=o[v++],w=o[v++],S=o[v++],C=o[v++],T=o[v++];v+=1;var A=!!(1-o[v++]);d=Math.cos(C)*w+_,h=Math.sin(C)*S+b,y?(c=d,f=h):s+=hc(l,u,d,h,r,i);var P=(r-_)*S/w+_;if(n){if(pce(_,b,S,C,C+T,A,t,P,i))return!0}else s+=bce(_,b,S,C,C+T,A,P,i);l=Math.cos(C+T)*w+_,u=Math.sin(C+T)*S+b;break;case Fl.R:c=l=o[v++],f=u=o[v++];var I=o[v++],R=o[v++];if(d=c+I,h=f+R,n){if(Jf(c,f,d,f,t,r,i)||Jf(d,f,d,h,t,r,i)||Jf(d,h,c,h,t,r,i)||Jf(c,h,c,f,t,r,i))return!0}else s+=hc(d,f,d,h,r,i),s+=hc(c,h,c,f,r,i);break;case Fl.Z:if(n){if(Jf(l,u,c,f,t,r,i))return!0}else s+=hc(l,u,c,f,r,i);l=c,u=f;break}}return!n&&!gce(u,f)&&(s+=hc(l,u,c,f,r,i)||0),s!==0}function Sce(e,t,n){return vU(e,0,!1,t,n)}function wce(e,t,n,r){return vU(e,t,!0,n,r)}var gU=En({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},nf),xce={style:En({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},rS.style)},cT=bg.concat(["invisible","culling","z","z2","zlevel","parent"]),Ln=function(e){ot(t,e);function t(n){return e.call(this,n)||this}return t.prototype.update=function(){var n=this;e.prototype.update.call(this);var r=this.style;if(r.decal){var i=this._decalEl=this._decalEl||new t;i.buildPath===t.prototype.buildPath&&(i.buildPath=function(l){n.buildPath(l,n.shape)}),i.silent=!0;var o=i.style;for(var a in r)o[a]!==r[a]&&(o[a]=r[a]);o.fill=r.fill?r.decal:null,o.decal=null,o.shadowColor=null,r.strokeFirst&&(o.stroke=null);for(var s=0;s.5?GE:r>.2?Que:zE}else if(n)return zE}return GE},t.prototype.getInsideTextStroke=function(n){var r=this.style.fill;if(dt(r)){var i=this.__zr,o=!!(i&&i.isDarkMode()),a=T1(n,0)0))},t.prototype.hasFill=function(){var n=this.style,r=n.fill;return r!=null&&r!=="none"},t.prototype.getBoundingRect=function(){var n=this._rect,r=this.style,i=!n;if(i){var o=!1;this.path||(o=!0,this.createPathProxy());var a=this.path;(o||this.__dirty&bd)&&(a.beginPath(),this.buildPath(a,this.shape,!1),this.pathUpdated()),n=a.getBoundingRect()}if(this._rect=n,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=n.clone());if(this.__dirty||i){s.copy(n);var l=r.strokeNoScale?this.getLineScale():1,u=r.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return n},t.prototype.contain=function(n,r){var i=this.transformCoordToLocal(n,r),o=this.getBoundingRect(),a=this.style;if(n=i[0],r=i[1],o.contain(n,r)){var s=this.path;if(this.hasStroke()){var l=a.lineWidth,u=a.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),wce(s,l/u,n,r)))return!0}if(this.hasFill())return Sce(s,n,r)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=bd,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(n){return this.animate("shape",n)},t.prototype.updateDuringAnimation=function(n){n==="style"?this.dirtyStyle():n==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(n,r){n==="shape"?this.setShape(r):e.prototype.attrKV.call(this,n,r)},t.prototype.setShape=function(n,r){var i=this.shape;return i||(i=this.shape={}),typeof n=="string"?i[n]=r:Ke(i,n),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&bd)},t.prototype.createStyle=function(n){return Jb(gU,n)},t.prototype._innerSaveToNormal=function(n){e.prototype._innerSaveToNormal.call(this,n);var r=this._normalState;n.shape&&!r.shape&&(r.shape=Ke({},this.shape))},t.prototype._applyStateObj=function(n,r,i,o,a,s){e.prototype._applyStateObj.call(this,n,r,i,o,a,s);var l=!(r&&o),u;if(r&&r.shape?a?o?u=r.shape:(u=Ke({},i.shape),Ke(u,r.shape)):(u=Ke({},o?this.shape:i.shape),Ke(u,r.shape)):l&&(u=i.shape),u)if(a){this.shape=Ke({},this.shape);for(var c={},f=Kn(u),d=0;d0},t.prototype.hasFill=function(){var n=this.style,r=n.fill;return r!=null&&r!=="none"},t.prototype.createStyle=function(n){return Jb(Tce,n)},t.prototype.setBoundingRect=function(n){this._rect=n},t.prototype.getBoundingRect=function(){var n=this.style;if(!this._rect){var r=n.text;r!=null?r+="":r="";var i=fR(r,n.font,n.textAlign,n.textBaseline);if(i.x+=n.x||0,i.y+=n.y||0,this.hasStroke()){var o=n.lineWidth;i.x-=o/2,i.y-=o/2,i.width+=o,i.height+=o}this._rect=i}return this._rect},t.initDefaultProps=function(){var n=t.prototype;n.dirtyRectTolerance=10}(),t}(am);E1.prototype.type="tspan";var Cce=En({x:0,y:0},nf),Ece={style:En({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},rS.style)};function Ace(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var Uu=function(e){ot(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(n){return Jb(Cce,n)},t.prototype._getSize=function(n){var r=this.style,i=r[n];if(i!=null)return i;var o=Ace(r.image)?r.image:this.__image;if(!o)return 0;var a=n==="width"?"height":"width",s=r[a];return s==null?o[n]:o[n]/o[a]*s},t.prototype.getWidth=function(){return this._getSize("width")},t.prototype.getHeight=function(){return this._getSize("height")},t.prototype.getAnimationStyleProps=function(){return Ece},t.prototype.getBoundingRect=function(){var n=this.style;return this._rect||(this._rect=new bn(n.x||0,n.y||0,this.getWidth(),this.getHeight())),this._rect},t}(am);Uu.prototype.type="image";function Ice(e,t){var n=t.x,r=t.y,i=t.width,o=t.height,a=t.r,s,l,u,c;i<0&&(n=n+i,i=-i),o<0&&(r=r+o,o=-o),typeof a=="number"?s=l=u=c=a:a instanceof Array?a.length===1?s=l=u=c=a[0]:a.length===2?(s=u=a[0],l=c=a[1]):a.length===3?(s=a[0],l=c=a[1],u=a[2]):(s=a[0],l=a[1],u=a[2],c=a[3]):s=l=u=c=0;var f;s+l>i&&(f=s+l,s*=i/f,l*=i/f),u+c>i&&(f=u+c,u*=i/f,c*=i/f),l+u>o&&(f=l+u,l*=o/f,u*=o/f),s+c>o&&(f=s+c,s*=o/f,c*=o/f),e.moveTo(n+s,r),e.lineTo(n+i-l,r),l!==0&&e.arc(n+i-l,r+l,l,-Math.PI/2,0),e.lineTo(n+i,r+o-u),u!==0&&e.arc(n+i-u,r+o-u,u,0,Math.PI/2),e.lineTo(n+c,r+o),c!==0&&e.arc(n+c,r+o-c,c,Math.PI/2,Math.PI),e.lineTo(n,r+s),s!==0&&e.arc(n+s,r+s,s,Math.PI,Math.PI*1.5)}var Id=Math.round;function mU(e,t,n){if(t){var r=t.x1,i=t.x2,o=t.y1,a=t.y2;e.x1=r,e.x2=i,e.y1=o,e.y2=a;var s=n&&n.lineWidth;return s&&(Id(r*2)===Id(i*2)&&(e.x1=e.x2=Bc(r,s,!0)),Id(o*2)===Id(a*2)&&(e.y1=e.y2=Bc(o,s,!0))),e}}function yU(e,t,n){if(t){var r=t.x,i=t.y,o=t.width,a=t.height;e.x=r,e.y=i,e.width=o,e.height=a;var s=n&&n.lineWidth;return s&&(e.x=Bc(r,s,!0),e.y=Bc(i,s,!0),e.width=Math.max(Bc(r+o,s,!1)-e.x,o===0?0:1),e.height=Math.max(Bc(i+a,s,!1)-e.y,a===0?0:1)),e}}function Bc(e,t,n){if(!t)return e;var r=Id(e*2);return(r+Id(t))%2===0?r/2:(r+(n?1:-1))/2}var Rce=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),Pce={},zr=function(e){ot(t,e);function t(n){return e.call(this,n)||this}return t.prototype.getDefaultShape=function(){return new Rce},t.prototype.buildPath=function(n,r){var i,o,a,s;if(this.subPixelOptimize){var l=yU(Pce,r,this.style);i=l.x,o=l.y,a=l.width,s=l.height,l.r=r.r,r=l}else i=r.x,o=r.y,a=r.width,s=r.height;r.r?Ice(n,r):n.rect(i,o,a,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(Ln);zr.prototype.type="rect";var TN={fill:"#000"},CN=2,Oce={style:En({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},rS.style)},ao=function(e){ot(t,e);function t(n){var r=e.call(this)||this;return r.type="text",r._children=[],r._defaultStyle=TN,r.attr(n),r}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var n=0;n0,M=n.width!=null&&(n.overflow==="truncate"||n.overflow==="break"||n.overflow==="breakAll"),$=a.calculatedLineHeight,F=0;F=0&&(F=T[$],F.align==="right");)this._placeToken(F,n,P,_,M,"right",w),I-=F.width,M-=F.width,$--;for(O+=(o-(O-y)-(b-M)-I)/2;R<=$;)F=T[R],this._placeToken(F,n,P,_,O+F.width/2,"center",w),O+=F.width,R++;_+=P}},t.prototype._placeToken=function(n,r,i,o,a,s,l){var u=r.rich[n.styleName]||{};u.text=n.text;var c=n.verticalAlign,f=o+i/2;c==="top"?f=o+n.height/2:c==="bottom"&&(f=o+i-n.height/2);var d=!n.isLineHolder&&fT(u);d&&this._renderBackground(u,r,s==="right"?a-n.width:s==="center"?a-n.width/2:a,f-n.height/2,n.width,n.height);var h=!!u.backgroundColor,v=n.textPadding;v&&(a=ON(a,s,v),f-=n.height/2-v[0]-n.innerHeight/2);var m=this._getOrCreateChild(E1),y=m.createStyle();m.useStyle(y);var _=this._defaultStyle,b=!1,w=0,S=PN("fill"in u?u.fill:"fill"in r?r.fill:(b=!0,_.fill)),C=RN("stroke"in u?u.stroke:"stroke"in r?r.stroke:!h&&!l&&(!_.autoStroke||b)?(w=CN,_.stroke):null),T=u.textShadowBlur>0||r.textShadowBlur>0;y.text=n.text,y.x=a,y.y=f,T&&(y.shadowBlur=u.textShadowBlur||r.textShadowBlur||0,y.shadowColor=u.textShadowColor||r.textShadowColor||"transparent",y.shadowOffsetX=u.textShadowOffsetX||r.textShadowOffsetX||0,y.shadowOffsetY=u.textShadowOffsetY||r.textShadowOffsetY||0),y.textAlign=s,y.textBaseline="middle",y.font=n.font||pf,y.opacity=__(u.opacity,r.opacity,1),AN(y,u),C&&(y.lineWidth=__(u.lineWidth,r.lineWidth,w),y.lineDash=nn(u.lineDash,r.lineDash),y.lineDashOffset=r.lineDashOffset||0,y.stroke=C),S&&(y.fill=S);var A=n.contentWidth,P=n.contentHeight;m.setBoundingRect(new bn(Wp(y.x,A,y.textAlign),_d(y.y,P,y.textBaseline),A,P))},t.prototype._renderBackground=function(n,r,i,o,a,s){var l=n.backgroundColor,u=n.borderWidth,c=n.borderColor,f=l&&l.image,d=l&&!f,h=n.borderRadius,v=this,m,y;if(d||n.lineHeight||u&&c){m=this._getOrCreateChild(zr),m.useStyle(m.createStyle()),m.style.fill=null;var _=m.shape;_.x=i,_.y=o,_.width=a,_.height=s,_.r=h,m.dirtyShape()}if(d){var b=m.style;b.fill=l||null,b.fillOpacity=nn(n.fillOpacity,1)}else if(f){y=this._getOrCreateChild(Uu),y.onload=function(){v.dirtyStyle()};var w=y.style;w.image=l.image,w.x=i,w.y=o,w.width=a,w.height=s}if(u&&c){var b=m.style;b.lineWidth=u,b.stroke=c,b.strokeOpacity=nn(n.strokeOpacity,1),b.lineDash=n.borderDash,b.lineDashOffset=n.borderDashOffset||0,m.strokeContainThreshold=0,m.hasFill()&&m.hasStroke()&&(b.strokeFirst=!0,b.lineWidth*=2)}var S=(m||y).style;S.shadowBlur=n.shadowBlur||0,S.shadowColor=n.shadowColor||"transparent",S.shadowOffsetX=n.shadowOffsetX||0,S.shadowOffsetY=n.shadowOffsetY||0,S.opacity=__(n.opacity,r.opacity,1)},t.makeFont=function(n){var r="";return Nce(n)&&(r=[n.fontStyle,n.fontWeight,Lce(n.fontSize),n.fontFamily||"sans-serif"].join(" ")),r&&ns(r)||n.textFont||n.font},t}(am),Dce={left:!0,right:1,center:1},Mce={top:1,bottom:1,middle:1},EN=["fontStyle","fontWeight","fontSize","fontFamily"];function Lce(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?nR+"px":e+"px"}function AN(e,t){for(var n=0;n0){if(e<=i)return a;if(e>=o)return s}else{if(e>=i)return a;if(e<=o)return s}else{if(e===i)return a;if(e===o)return s}return(e-i)/l*u+a}function Ci(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return dt(e)?Fce(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function _r(e,t,n){return t==null&&(t=10),t=Math.min(Math.max(0,t),_U),e=(+e).toFixed(t),n?e:+e}function Js(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,n=0;n<15;n++,t*=10)if(Math.round(e*t)/t===e)return n}return $ce(e)}function $ce(e){var t=e.toString().toLowerCase(),n=t.indexOf("e"),r=n>0?+t.slice(n+1):0,i=n>0?n:t.length,o=t.indexOf("."),a=o<0?0:i-1-o;return Math.max(0,a-r)}function Bce(e,t){var n=Math.log,r=Math.LN10,i=Math.floor(n(e[1]-e[0])/r),o=Math.round(n(Math.abs(t[1]-t[0]))/r),a=Math.min(Math.max(-i+o,0),20);return isFinite(a)?a:20}function Vce(e,t){var n=Math.max(Js(e),Js(t)),r=e+t;return n>_U?r:_r(r,n)}function bU(e){var t=Math.PI*2;return(e%t+t)%t}function A1(e){return e>-MN&&e=10&&t++,t}function SU(e,t){var n=vR(e),r=Math.pow(10,n),i=e/r,o;return i<1.5?o=1:i<2.5?o=2:i<4?o=3:i<7?o=5:o=10,e=o*r,n>=-20?+e.toFixed(n<0?-n:0):e}function I1(e){var t=parseFloat(e);return t==e&&(t!==0||!dt(e)||e.indexOf("x")<=0)?t:NaN}function Gce(e){return!isNaN(I1(e))}function wU(){return Math.round(Math.random()*9)}function xU(e,t){return t===0?e:xU(t,e%t)}function NN(e,t){return e==null?t:t==null?e:e*t/xU(e,t)}function Xi(e){throw new Error(e)}function kN(e,t,n){return(t-e)*n+e}var TU="series\0",zce="\0_ec_\0";function Ri(e){return e instanceof Array?e:e==null?[]:[e]}function FN(e,t,n){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var r=0,i=n.length;r=0,o=!1;if(e instanceof Ln){var a=AU(e),s=i&&a.selectFill||a.normalFill,l=i&&a.selectStroke||a.normalStroke;if(Qf(s)||Qf(l)){r=r||{};var u=r.style||{};u.fill==="inherit"?(o=!0,r=Ke({},r),u=Ke({},u),u.fill=s):!Qf(u.fill)&&Qf(s)?(o=!0,r=Ke({},r),u=Ke({},u),u.fill=vN(s)):!Qf(u.stroke)&&Qf(l)&&(o||(r=Ke({},r),u=Ke({},u)),u.stroke=vN(l)),r.style=u}}if(r&&r.z2==null){o||(r=Ke({},r));var c=e.z2EmphasisLift;r.z2=e.z2+(c??afe)}return r}function dfe(e,t,n){if(n&&n.z2==null){n=Ke({},n);var r=e.z2SelectLift;n.z2=e.z2+(r??sfe)}return n}function hfe(e,t,n){var r=In(e.currentStates,t)>=0,i=e.style.opacity,o=r?null:cfe(e,["opacity"],t,{opacity:1});n=n||{};var a=n.style||{};return a.opacity==null&&(n=Ke({},n),a=Ke({opacity:r?i:o.opacity*.1},a),n.style=a),n}function hT(e,t){var n=this.states[e];if(this.style){if(e==="emphasis")return ffe(this,e,t,n);if(e==="blur")return hfe(this,e,n);if(e==="select")return dfe(this,e,n)}return n}function pfe(e){e.stateProxy=hT;var t=e.getTextContent(),n=e.getTextGuideLine();t&&(t.stateProxy=hT),n&&(n.stateProxy=hT)}function zN(e,t){!LU(e,t)&&!e.__highByOuter&&yl(e,IU)}function WN(e,t){!LU(e,t)&&!e.__highByOuter&&yl(e,RU)}function R1(e,t){e.__highByOuter|=1<<(t||0),yl(e,IU)}function P1(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&yl(e,RU)}function vfe(e){yl(e,bR)}function OU(e){yl(e,PU)}function DU(e){yl(e,lfe)}function MU(e){yl(e,ufe)}function LU(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function NU(e){var t=e.getModel(),n=[],r=[];t.eachComponent(function(i,o){var a=yR(o),s=i==="series",l=s?e.getViewOfSeriesModel(o):e.getViewOfComponentModel(o);!s&&r.push(l),a.isBlured&&(l.group.traverse(function(u){PU(u)}),s&&n.push(o)),a.isBlured=!1}),Q(r,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(n,!1,t)})}function YE(e,t,n,r){var i=r.getModel();n=n||"coordinateSystem";function o(u,c){for(var f=0;f0){var s={dataIndex:a,seriesIndex:n.seriesIndex};o!=null&&(s.dataType=o),t.push(s)}})}),t}function KE(e,t,n){kU(e,!0),yl(e,pfe),wfe(e,t,n)}function Sfe(e){kU(e,!1)}function ZE(e,t,n,r){r?Sfe(e):KE(e,t,n)}function wfe(e,t,n){var r=Mn(e);t!=null?(r.focus=t,r.blurScope=n):r.focus&&(r.focus=null)}var YN=["emphasis","blur","select"],xfe={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function XN(e,t,n,r){n=n||"itemStyle";for(var i=0;i1&&(a*=pT(v),s*=pT(v));var m=(i===o?-1:1)*pT((a*a*(s*s)-a*a*(h*h)-s*s*(d*d))/(a*a*(h*h)+s*s*(d*d)))||0,y=m*a*h/s,_=m*-s*d/a,b=(e+n)/2+Jy(f)*y-qy(f)*_,w=(t+r)/2+qy(f)*y+Jy(f)*_,S=JN([1,0],[(d-y)/a,(h-_)/s]),C=[(d-y)/a,(h-_)/s],T=[(-1*d-y)/a,(-1*h-_)/s],A=JN(C,T);if(QE(C,T)<=-1&&(A=pp),QE(C,T)>=1&&(A=0),A<0){var P=Math.round(A/pp*1e6)/1e6;A=pp*2+P%2*pp}c.addData(u,b,w,a,s,S,A,f,o)}var Rfe=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,Pfe=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function Ofe(e){var t=new mf;if(!e)return t;var n=0,r=0,i=n,o=r,a,s=mf.CMD,l=e.match(Rfe);if(!l)return t;for(var u=0;u=0&&(i.splice(o,0,n),this._doAdd(n))}return this},t.prototype.replace=function(n,r){var i=In(this._children,n);return i>=0&&this.replaceAt(r,i),this},t.prototype.replaceAt=function(n,r){var i=this._children,o=i[r];if(n&&n!==this&&n.parent!==this&&n!==o){i[r]=n,o.parent=null;var a=this.__zr;a&&o.removeSelfFromZr(a),this._doAdd(n)}return this},t.prototype._doAdd=function(n){n.parent&&n.parent.remove(n),n.parent=this;var r=this.__zr;r&&r!==n.__zr&&n.addSelfToZr(r),r&&r.refresh()},t.prototype.remove=function(n){var r=this.__zr,i=this._children,o=In(i,n);return o<0?this:(i.splice(o,1),n.parent=null,r&&n.removeSelfFromZr(r),r&&r.refresh(),this)},t.prototype.removeAll=function(){for(var n=this._children,r=this.__zr,i=0;iF*F+z*z&&(P=R,I=O),{cx:P,cy:I,x0:-c,y0:-f,x1:P*(i/C-1),y1:I*(i/C-1)}}function Bfe(e){var t;if(lt(e)){var n=e.length;if(!n)return e;n===1?t=[e[0],e[0],0,0]:n===2?t=[e[0],e[0],e[1],e[1]]:n===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function Vfe(e,t){var n,r=Xp(t.r,0),i=Xp(t.r0||0,0),o=r>0,a=i>0;if(!(!o&&!a)){if(o||(r=i,i=0),i>r){var s=r;r=i,i=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var c=t.cx,f=t.cy,d=!!t.clockwise,h=ek(u-l),v=h>vT&&h%vT;if(v>Sa&&(h=v),!(r>Sa))e.moveTo(c,f);else if(h>vT-Sa)e.moveTo(c+r*td(l),f+r*vc(l)),e.arc(c,f,r,l,u,!d),i>Sa&&(e.moveTo(c+i*td(u),f+i*vc(u)),e.arc(c,f,i,u,l,d));else{var m=void 0,y=void 0,_=void 0,b=void 0,w=void 0,S=void 0,C=void 0,T=void 0,A=void 0,P=void 0,I=void 0,R=void 0,O=void 0,M=void 0,$=void 0,F=void 0,z=r*td(l),B=r*vc(l),Y=i*td(u),j=i*vc(u),se=h>Sa;if(se){var ge=t.cornerRadius;ge&&(n=Bfe(ge),m=n[0],y=n[1],_=n[2],b=n[3]);var ve=ek(r-i)/2;if(w=Ka(ve,_),S=Ka(ve,b),C=Ka(ve,m),T=Ka(ve,y),I=A=Xp(w,S),R=P=Xp(C,T),(A>Sa||P>Sa)&&(O=r*td(u),M=r*vc(u),$=i*td(l),F=i*vc(l),hSa){var Se=Ka(_,I),Te=Ka(b,I),Oe=Qy($,F,z,B,r,Se,d),$e=Qy(O,M,Y,j,r,Te,d);e.moveTo(c+Oe.cx+Oe.x0,f+Oe.cy+Oe.y0),I0&&e.arc(c+Oe.cx,f+Oe.cy,Se,Kr(Oe.y0,Oe.x0),Kr(Oe.y1,Oe.x1),!d),e.arc(c,f,r,Kr(Oe.cy+Oe.y1,Oe.cx+Oe.x1),Kr($e.cy+$e.y1,$e.cx+$e.x1),!d),Te>0&&e.arc(c+$e.cx,f+$e.cy,Te,Kr($e.y1,$e.x1),Kr($e.y0,$e.x0),!d))}else e.moveTo(c+z,f+B),e.arc(c,f,r,l,u,!d);if(!(i>Sa)||!se)e.lineTo(c+Y,f+j);else if(R>Sa){var Se=Ka(m,R),Te=Ka(y,R),Oe=Qy(Y,j,O,M,i,-Te,d),$e=Qy(z,B,$,F,i,-Se,d);e.lineTo(c+Oe.cx+Oe.x0,f+Oe.cy+Oe.y0),R0&&e.arc(c+Oe.cx,f+Oe.cy,Te,Kr(Oe.y0,Oe.x0),Kr(Oe.y1,Oe.x1),!d),e.arc(c,f,i,Kr(Oe.cy+Oe.y1,Oe.cx+Oe.x1),Kr($e.cy+$e.y1,$e.cx+$e.x1),d),Se>0&&e.arc(c+$e.cx,f+$e.cy,Se,Kr($e.y1,$e.x1),Kr($e.y0,$e.x0),!d))}else e.lineTo(c+Y,f+j),e.arc(c,f,i,u,l,d)}e.closePath()}}}var Ufe=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),lS=function(e){ot(t,e);function t(n){return e.call(this,n)||this}return t.prototype.getDefaultShape=function(){return new Ufe},t.prototype.buildPath=function(n,r){Vfe(n,r)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(Ln);lS.prototype.type="sector";var Hfe=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),xR=function(e){ot(t,e);function t(n){return e.call(this,n)||this}return t.prototype.getDefaultShape=function(){return new Hfe},t.prototype.buildPath=function(n,r){var i=r.cx,o=r.cy,a=Math.PI*2;n.moveTo(i+r.r,o),n.arc(i,o,r.r,0,a,!1),n.moveTo(i+r.r0,o),n.arc(i,o,r.r0,0,a,!0)},t}(Ln);xR.prototype.type="ring";function Gfe(e,t,n,r){var i=[],o=[],a=[],s=[],l,u,c,f;if(r){c=[1/0,1/0],f=[-1/0,-1/0];for(var d=0,h=e.length;d=2){if(r){var o=Gfe(i,r,n,t.smoothConstraint);e.moveTo(i[0][0],i[0][1]);for(var a=i.length,s=0;s<(n?a:a-1);s++){var l=o[s*2],u=o[s*2+1],c=i[(s+1)%a];e.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(i[0][0],i[0][1]);for(var s=1,f=i.length;smc[1]){if(s=!1,o)return s;var c=Math.abs(mc[0]-gc[1]),f=Math.abs(gc[0]-mc[1]);Math.min(c,f)>i.len()&&(c0){var f=c.duration,d=c.delay,h=c.easing,v={duration:f,delay:d||0,easing:h,done:o,force:!!o||!!a,setToFinal:!u,scope:e,during:a};s?t.animateFrom(n,v):t.animateTo(n,v)}else t.stopAnimation(),!s&&t.attr(n),a&&a(1),o&&o()}function Ru(e,t,n,r,i,o){IR("update",e,t,n,r,i,o)}function um(e,t,n,r,i,o){IR("enter",e,t,n,r,i,o)}function Ov(e){if(!e.__zr)return!0;for(var t=0;tMath.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function rk(e){return!e.isGroup}function hde(e){return e.shape!=null}function jU(e,t,n){if(!e||!t)return;function r(a){var s={};return a.traverse(function(l){rk(l)&&l.anid&&(s[l.anid]=l)}),s}function i(a){var s={x:a.x,y:a.y,rotation:a.rotation};return hde(a)&&(s.shape=Ke({},a.shape)),s}var o=r(e);t.traverse(function(a){if(rk(a)&&a.anid){var s=o[a.anid];if(s){var l=i(a);a.attr(i(s)),Ru(a,l,n,Mn(a).dataIndex)}}})}function pde(e,t){return Rt(e,function(n){var r=n[0];r=M1(r,t.x),r=L1(r,t.x+t.width);var i=n[1];return i=M1(i,t.y),i=L1(i,t.y+t.height),[r,i]})}function vde(e,t){var n=M1(e.x,t.x),r=L1(e.x+e.width,t.x+t.width),i=M1(e.y,t.y),o=L1(e.y+e.height,t.y+t.height);if(r>=n&&o>=i)return{x:n,y:i,width:r-n,height:o-i}}function OR(e,t,n){var r=Ke({rectHover:!0},t),i=r.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(i.image=e.slice(8),En(i,n),new Uu(r)):RR(e.replace("path://",""),r,n,"center")}function gde(e,t,n,r,i){for(var o=0,a=i[i.length-1];o1)return!1;var y=gT(h,v,c,f)/d;return!(y<0||y>1)}function gT(e,t,n,r){return e*r-n*t}function mde(e){return e<=1e-6&&e>=-1e-6}function cS(e){var t=e.itemTooltipOption,n=e.componentModel,r=e.itemName,i=dt(t)?{formatter:t}:t,o=n.mainType,a=n.componentIndex,s={componentType:o,name:r,$vars:["name"]};s[o+"Index"]=a;var l=e.formatterParamsExtra;l&&Q(Kn(l),function(c){vf(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=Mn(e.el);u.componentMainType=o,u.componentIndex=a,u.tooltipConfig={name:r,option:En({content:r,encodeHTMLContent:!0,formatterParams:s},i)}}function ik(e,t){var n;e.isGroup&&(n=t(e)),n||e.traverse(t)}function DR(e,t){if(e)if(lt(e))for(var n=0;n1){var c=l.shift();l.length===1&&(r[s]=l[0]),this._update&&this._update(c,a)}else u===1?(r[s]=null,this._update&&this._update(l,a)):this._remove&&this._remove(a)}this._performRestAdd(o,r)},e.prototype._executeMultiple=function(){var t=this._old,n=this._new,r={},i={},o=[],a=[];this._initIndexMap(t,r,o,"_oldKeyGetter"),this._initIndexMap(n,i,a,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(c,u),i[l]=null;else if(f===1&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),i[l]=null;else if(f===1&&d===1)this._update&&this._update(c,u),i[l]=null;else if(f>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),i[l]=null;else if(f>1)for(var h=0;h1)for(var s=0;sm&&(m=w)}h[0]=v,h[1]=m}},i=function(){return this._data?this._data.length/this._dimSize:0};pk=(t={},t[so+"_"+rl]={pure:!0,appendData:o},t[so+"_"+Ih]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[_s]={pure:!0,appendData:o},t[_l]={pure:!0,appendData:function(a){var s=this._data;Q(a,function(l,u){for(var c=s[u]||(s[u]=[]),f=0;f<(l||[]).length;f++)c.push(l[f])})}},t[ca]={appendData:o},t[bu]={persistent:!1,pure:!0,appendData:function(a){this._data=a},clean:function(){this._offset+=this.count(),this._data=null}},t);function o(a){for(var s=0;si?-this._resultLT:0},e}(),hS="undefined",Wde=typeof Uint32Array===hS?Array:Uint32Array,jde=typeof Uint16Array===hS?Array:Uint16Array,uH=typeof Int32Array===hS?Array:Int32Array,yk=typeof Float64Array===hS?Array:Float64Array,cH={float:yk,int:uH,ordinal:Array,number:Array,time:yk},ST;function nd(e){return e>65535?Wde:jde}function rd(){return[1/0,-1/0]}function Yde(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function _k(e,t,n,r,i){var o=cH[n||"float"];if(i){var a=e[t],s=a&&a.length;if(s!==r){for(var l=new o(r),u=0;uy[1]&&(y[1]=m)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,n,r){for(var i=this._provider,o=this._chunks,a=this._dimensions,s=a.length,l=this._rawExtent,u=Rt(a,function(b){return b.property}),c=0;c_[1]&&(_[1]=y)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=n,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,n){if(!(n>=0&&n=0&&n=this._rawCount||t<0)return-1;if(!this._indices)return t;var n=this._indices,r=n[t];if(r!=null&&rt)o=a-1;else return a}return-1},e.prototype.indicesOfNearest=function(t,n,r){var i=this._chunks,o=i[t],a=[];if(!o)return a;r==null&&(r=1/0);for(var s=1/0,l=-1,u=0,c=0,f=this.count();c=0&&l<0)&&(s=v,l=h,u=0),h===l&&(a[u++]=c))}return a.length=u,a},e.prototype.getIndices=function(){var t,n=this._indices;if(n){var r=n.constructor,i=this._count;if(r===Array){t=new r(i);for(var o=0;o=f&&b<=d||isNaN(b))&&(l[u++]=m),m++}v=!0}else if(o===2){for(var y=h[i[0]],w=h[i[1]],S=t[i[1]][0],C=t[i[1]][1],_=0;_=f&&b<=d||isNaN(b))&&(T>=S&&T<=C||isNaN(T))&&(l[u++]=m),m++}v=!0}}if(!v)if(o===1)for(var _=0;_=f&&b<=d||isNaN(b))&&(l[u++]=A)}else for(var _=0;_t[R][1])&&(P=!1)}P&&(l[u++]=n.getRawIndex(_))}return u_[1]&&(_[1]=y)}}}},e.prototype.lttbDownSample=function(t,n){var r=this.clone([t],!0),i=r._chunks,o=i[t],a=this.count(),s=0,l=Math.floor(1/n),u=this.getRawIndex(0),c,f,d,h=new(nd(this._rawCount))(Math.min((Math.ceil(a/l)+2)*2,a));h[s++]=u;for(var v=1;vc&&(c=f,d=S)}O>0&&Os&&(m=s-c);for(var y=0;yv&&(v=b,h=c+y)}var w=this.getRawIndex(f),S=this.getRawIndex(h);fc-v&&(l=c-v,s.length=l);for(var m=0;mf[1]&&(f[1]=_),d[h++]=b}return o._count=h,o._indices=d,o._updateGetRawIdx(),o},e.prototype.each=function(t,n){if(this._count)for(var r=t.length,i=this._chunks,o=0,a=this.count();ol&&(l=f)}return a=[s,l],this._extent[t]=a,a},e.prototype.getRawDataItem=function(t){var n=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(n);for(var r=[],i=this._chunks,o=0;o=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(n,r,i,o){return E_(n[o],this._dimensions[o])}ST={arrayRows:t,objectRows:function(n,r,i,o){return E_(n[r],this._dimensions[o])},keyedColumns:t,original:function(n,r,i,o){var a=n&&(n.value==null?n:n.value);return E_(a instanceof Array?a[o]:a,this._dimensions[o])},typedArray:function(n,r,i,o){return n[o]}}}(),e}(),Xde=Ar(),Kde={float:"f",int:"i",ordinal:"o",number:"n",time:"t"},fH=function(){function e(t){this.dimensions=t.dimensions,this._dimOmitted=t.dimensionOmitted,this.source=t.source,this._fullDimCount=t.fullDimensionCount,this._updateDimOmitted(t.dimensionOmitted)}return e.prototype.isDimensionOmitted=function(){return this._dimOmitted},e.prototype._updateDimOmitted=function(t){this._dimOmitted=t,t&&(this._dimNameMap||(this._dimNameMap=pH(this.source)))},e.prototype.getSourceDimensionIndex=function(t){return nn(this._dimNameMap.get(t),-1)},e.prototype.getSourceDimension=function(t){var n=this.source.dimensionsDefine;if(n)return n[t]},e.prototype.makeStoreSchema=function(){for(var t=this._fullDimCount,n=iH(this.source),r=!vH(t),i="",o=[],a=0,s=0;a30}var gp=Ct,$l=Rt,Zde=typeof Int32Array>"u"?Array:Int32Array,qde="e\0\0",bk=-1,Jde=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],Qde=["_approximateExtent"],Sk,n0,mp,yp,wT,_p,xT,ehe=function(){function e(t,n){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","minmaxDownSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","minmaxDownSample","lttbDownSample"];var r,i=!1;dH(t)?(r=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,r=t),r=r||["x","y"];for(var o={},a=[],s={},l=!1,u={},c=0;c=n)){var r=this._store,i=r.getProvider();this._updateOrdinalMeta();var o=this._nameList,a=this._idList,s=i.getSource().sourceFormat,l=s===ca;if(l&&!i.pure)for(var u=[],c=t;c0},e.prototype.ensureUniqueItemVisual=function(t,n){var r=this._itemVisuals,i=r[t];i||(i=r[t]={});var o=i[n];return o==null&&(o=this.getVisual(n),lt(o)?o=o.slice():gp(o)&&(o=Ke({},o)),i[n]=o),o},e.prototype.setItemVisual=function(t,n,r){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,gp(n)?Ke(i,n):i[n]=r},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,n){gp(t)?Ke(this._layout,t):this._layout[t]=n},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,n,r){this._itemLayouts[t]=r?Ke(this._itemLayouts[t]||{},n):n},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,n){var r=this.hostModel&&this.hostModel.seriesIndex;ofe(r,this.dataType,t,n),this._graphicEls[t]=n},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,n){Q(this._graphicEls,function(r,i){r&&t&&t.call(n,r,i)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:$l(this.dimensions,this._getDimInfo,this),this.hostModel)),wT(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,n){var r=this[t];Vt(r)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=r.apply(this,arguments);return n.apply(this,[i].concat(aR(arguments)))})},e.internalField=function(){Sk=function(t){var n=t._invertedIndicesMap;Q(n,function(r,i){var o=t._dimInfos[i],a=o.ordinalMeta,s=t._store;if(a){r=n[i]=new Zde(a.categories.length);for(var l=0;l1&&(l+="__ec__"+c),i[n]=l}}}(),e}();function the(e,t){NR(e)||(e=nH(e)),t=t||{};var n=t.coordDimensions||[],r=t.dimensionsDefine||e.dimensionsDefine||[],i=Kt(),o=[],a=rhe(e,n,r,t.dimensionsCount),s=t.canOmitUnusedDimensions&&vH(a),l=r===e.dimensionsDefine,u=l?pH(e):hH(r),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,a));for(var f=Kt(c),d=new uH(a),h=0;h0&&(r.name=i+(o-1)),o++,t.set(i,o)}}function rhe(e,t,n,r){var i=Math.max(e.dimensionsDetectedCount||1,t.length,n.length,r||0);return Q(t,function(o){var a;Ct(o)&&(a=o.dimsDef)&&(i=Math.max(i,a.length))}),i}function ihe(e,t,n){if(n||t.hasKey(e)){for(var r=0;t.hasKey(e+r);)r++;e+=r}return t.set(e,!0),e}var TT={},FR=function(){function e(){this._coordinateSystems=[]}return e.prototype.create=function(t,n){var r=[];Q(TT,function(i,o){var a=i.create(t,n);r=r.concat(a||[])}),this._coordinateSystems=r},e.prototype.update=function(t,n){Q(this._coordinateSystems,function(r){r.update&&r.update(t,n)})},e.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},e.register=function(t,n){TT[t]=n},e.get=function(t){return TT[t]},e}(),ohe=function(){function e(t){this.coordSysDims=[],this.axisMap=Kt(),this.categoryAxisMap=Kt(),this.coordSysName=t}return e}();function ahe(e){var t=e.get("coordinateSystem"),n=new ohe(t),r=she[t];if(r)return r(e,n,n.axisMap,n.categoryAxisMap),n}var she={cartesian2d:function(e,t,n,r){var i=e.getReferringComponents("xAxis",Pa).models[0],o=e.getReferringComponents("yAxis",Pa).models[0];t.coordSysDims=["x","y"],n.set("x",i),n.set("y",o),id(i)&&(r.set("x",i),t.firstCategoryDimIndex=0),id(o)&&(r.set("y",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,n,r){var i=e.getReferringComponents("singleAxis",Pa).models[0];t.coordSysDims=["single"],n.set("single",i),id(i)&&(r.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,n,r){var i=e.getReferringComponents("polar",Pa).models[0],o=i.findAxisModel("radiusAxis"),a=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),id(o)&&(r.set("radius",o),t.firstCategoryDimIndex=0),id(a)&&(r.set("angle",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,n,r){t.coordSysDims=["lng","lat"]},parallel:function(e,t,n,r){var i=e.ecModel,o=i.getComponent("parallel",e.get("parallelIndex")),a=t.coordSysDims=o.dimensions.slice();Q(o.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),c=a[l];n.set(c,u),id(u)&&(r.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function id(e){return e.get("type")==="category"}function lhe(e,t,n){n=n||{};var r=n.byIndex,i=n.stackedCoordDimension,o,a,s;uhe(t)?o=t:(a=t.schema,o=a.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,f,d;if(Q(o,function(b,w){dt(b)&&(o[w]=b={name:b}),l&&!b.isExtraCoord&&(!r&&!u&&b.ordinalMeta&&(u=b),!c&&b.type!=="ordinal"&&b.type!=="time"&&(!i||i===b.coordDim)&&(c=b))}),c&&!r&&!u&&(r=!0),c){f="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=c.coordDim,v=c.type,m=0;Q(o,function(b){b.coordDim===h&&m++});var y={name:f,coordDim:h,coordDimIndex:m,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:o.length},_={name:d,coordDim:d,coordDimIndex:m+1,type:v,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:o.length+1};a?(s&&(y.storeDimIndex=s.ensureCalculationDimension(d,v),_.storeDimIndex=s.ensureCalculationDimension(f,v)),a.appendCalculationDimension(y),a.appendCalculationDimension(_)):(o.push(y),o.push(_))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:r,stackedOverDimension:d,stackResultDimension:f}}function uhe(e){return!dH(e.schema)}function xg(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function che(e,t){return xg(e,t)?e.getCalculationInfo("stackResultDimension"):t}function fhe(e,t){var n=e.get("coordinateSystem"),r=FR.get(n),i;return t&&t.coordSysDims&&(i=Rt(t.coordSysDims,function(o){var a={name:o},s=t.axisMap.get(o);if(s){var l=s.get("type");a.type=Hde(l)}return a})),i||(i=r&&(r.getDimensionsInfo?r.getDimensionsInfo():r.dimensions.slice())||["x","y"]),i}function dhe(e,t,n){var r,i;return n&&Q(e,function(o,a){var s=o.coordDim,l=n.categoryAxisMap.get(s);l&&(r==null&&(r=a),o.ordinalMeta=l.getOrdinalMeta(),t&&(o.createInvertedIndices=!0)),o.otherDims.itemName!=null&&(i=!0)}),!i&&r!=null&&(e[r].otherDims.itemName=0),r}function hhe(e,t,n){n=n||{};var r=t.getSourceManager(),i,o=!1;i=r.getSource(),o=i.sourceFormat===ca;var a=ahe(t),s=fhe(t,a),l=n.useEncodeDefaulter,u=Vt(l)?l:l?Dr(Ode,s,t):null,c={coordDimensions:s,generateCoord:n.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!o},f=the(i,c),d=dhe(f.dimensions,n.createInvertedIndices,a),h=o?null:r.getSharedDataStore(f),v=lhe(t,{schema:f,store:h}),m=new ehe(f,t);m.setCalculationInfo(v);var y=d!=null&&phe(i)?function(_,b,w,S){return S===d?w:this.defaultDimValueGetter(_,b,w,S)}:null;return m.hasItemOption=!1,m.initData(o?i:h,null,y),m}function phe(e){if(e.sourceFormat===ca){var t=vhe(e.data||[]);return!lt(sm(t))}}function vhe(e){for(var t=0;t=0&&s.push(l)}),s}}function _he(e,t){return _n(_n({},e,!0),t,!0)}var bhe=Math.log(2);function rA(e,t,n,r,i,o){var a=r+"-"+i,s=e.length;if(o.hasOwnProperty(a))return o[a];if(t===1){var l=Math.round(Math.log((1<>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",r[l]+":0",i[u]+":0",r[1-l]+":auto",i[1-u]+":auto",""].join("!important;"),e.appendChild(a),n.push(a)}return n}function xhe(e,t,n){for(var r=n?"invTrans":"trans",i=t[r],o=t.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),f=2*u,d=c.left,h=c.top;a.push(d,h),l=l&&o&&d===o[f]&&h===o[f+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=a,t[r]=n?wk(s,a):wk(a,s))}function gH(e){return e.nodeName.toUpperCase()==="CANVAS"}var The=/([&<>"'])/g,Che={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ki(e){return e==null?"":(e+"").replace(The,function(t,n){return Che[n]})}const Ehe={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst",custom:"Custom chart",chart:"Chart"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},Ahe={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图",custom:"自定义图表",chart:"图表"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var N1="ZH",$R="EN",zd=$R,A_={},BR={},mH=Dt.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage||zd).toUpperCase();return e.indexOf(N1)>-1?N1:zd}():zd;function yH(e,t){e=e.toUpperCase(),BR[e]=new sr(t),A_[e]=t}function Ihe(e){if(dt(e)){var t=A_[e.toUpperCase()]||{};return e===N1||e===$R?ln(t):_n(ln(t),ln(A_[zd]),!1)}else return _n(ln(e),ln(A_[zd]),!1)}function Rhe(e){return BR[e]}function Phe(){return BR[zd]}yH($R,Ehe);yH(N1,Ahe);var VR=1e3,UR=VR*60,Dv=UR*60,Qo=Dv*24,Tk=Qo*365,Kp={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},r0="{yyyy}-{MM}-{dd}",Ck={year:"{yyyy}",month:"{yyyy}-{MM}",day:r0,hour:r0+" "+Kp.hour,minute:r0+" "+Kp.minute,second:r0+" "+Kp.second,millisecond:Kp.none},ET=["year","month","day","hour","minute","second","millisecond"],_H=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Bl(e,t){return e+="","0000".substr(0,t-e.length)+e}function Wd(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Ohe(e){return e===Wd(e)}function Dhe(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function vS(e,t,n,r){var i=vl(e),o=i[HR(n)](),a=i[jd(n)]()+1,s=Math.floor((a-1)/3)+1,l=i[gS(n)](),u=i["get"+(n?"UTC":"")+"Day"](),c=i[Tg(n)](),f=(c-1)%12+1,d=i[mS(n)](),h=i[yS(n)](),v=i[_S(n)](),m=c>=12?"pm":"am",y=m.toUpperCase(),_=r instanceof sr?r:Rhe(r||mH)||Phe(),b=_.getModel("time"),w=b.get("month"),S=b.get("monthAbbr"),C=b.get("dayOfWeek"),T=b.get("dayOfWeekAbbr");return(t||"").replace(/{a}/g,m+"").replace(/{A}/g,y+"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,Bl(o%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,w[a-1]).replace(/{MMM}/g,S[a-1]).replace(/{MM}/g,Bl(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,Bl(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,C[u]).replace(/{ee}/g,T[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Bl(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,Bl(f+"",2)).replace(/{h}/g,f+"").replace(/{mm}/g,Bl(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,Bl(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,Bl(v,3)).replace(/{S}/g,v+"")}function Mhe(e,t,n,r,i){var o=null;if(dt(n))o=n;else if(Vt(n))o=n(e.value,t,{level:e.level});else{var a=Ke({},Kp);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(lt(o)){var f=e.level==null?0:e.level>=0?e.level:o.length+e.level;f=Math.min(f,o.length-1),o=o[f]}}return vS(new Date(e.value),o,i,r)}function bH(e,t){var n=vl(e),r=n[jd(t)]()+1,i=n[gS(t)](),o=n[Tg(t)](),a=n[mS(t)](),s=n[yS(t)](),l=n[_S(t)](),u=l===0,c=u&&s===0,f=c&&a===0,d=f&&o===0,h=d&&i===1,v=h&&r===1;return v?"year":h?"month":d?"day":f?"hour":c?"minute":u?"second":"millisecond"}function Ek(e,t,n){var r=Zn(e)?vl(e):e;switch(t=t||bH(e,n),t){case"year":return r[HR(n)]();case"half-year":return r[jd(n)]()>=6?1:0;case"quarter":return Math.floor((r[jd(n)]()+1)/4);case"month":return r[jd(n)]();case"day":return r[gS(n)]();case"half-day":return r[Tg(n)]()/24;case"hour":return r[Tg(n)]();case"minute":return r[mS(n)]();case"second":return r[yS(n)]();case"millisecond":return r[_S(n)]()}}function HR(e){return e?"getUTCFullYear":"getFullYear"}function jd(e){return e?"getUTCMonth":"getMonth"}function gS(e){return e?"getUTCDate":"getDate"}function Tg(e){return e?"getUTCHours":"getHours"}function mS(e){return e?"getUTCMinutes":"getMinutes"}function yS(e){return e?"getUTCSeconds":"getSeconds"}function _S(e){return e?"getUTCMilliseconds":"getMilliseconds"}function Lhe(e){return e?"setUTCFullYear":"setFullYear"}function SH(e){return e?"setUTCMonth":"setMonth"}function wH(e){return e?"setUTCDate":"setDate"}function xH(e){return e?"setUTCHours":"setHours"}function TH(e){return e?"setUTCMinutes":"setMinutes"}function CH(e){return e?"setUTCSeconds":"setSeconds"}function EH(e){return e?"setUTCMilliseconds":"setMilliseconds"}function AH(e){if(!Gce(e))return dt(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function IH(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(n,r){return r.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var bS=XV;function oA(e,t,n){var r="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(c){return c&&ns(c)?c:"-"}function o(c){return!!(c!=null&&!isNaN(c)&&isFinite(c))}var a=t==="time",s=e instanceof Date;if(a||s){var l=a?vl(e):e;if(isNaN(+l)){if(s)return"-"}else return vS(l,r,n)}if(t==="ordinal")return DE(e)?i(e):Zn(e)&&o(e)?e+"":"-";var u=I1(e);return o(u)?AH(u):DE(e)?i(e):typeof e=="boolean"?e+"":"-"}var Ak=["a","b","c","d","e","f","g"],AT=function(e,t){return"{"+e+(t??"")+"}"};function RH(e,t,n){lt(t)||(t=[t]);var r=t.length;if(!r)return"";for(var i=t[0].$vars||[],o=0;o':'';var a=n.markerId||"markerX";return{renderMode:o,content:"{"+a+"|} ",style:i==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:r}:{width:10,height:10,borderRadius:5,backgroundColor:r}}}function _f(e,t){return t=t||"transparent",dt(e)?e:Ct(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}var I_=Q,khe=["left","right","top","bottom","width","height"],i0=[["width","left","right"],["height","top","bottom"]];function GR(e,t,n,r,i){var o=0,a=0;r==null&&(r=1/0),i==null&&(i=1/0);var s=0;t.eachChild(function(l,u){var c=l.getBoundingRect(),f=t.childAt(u+1),d=f&&f.getBoundingRect(),h,v;if(e==="horizontal"){var m=c.width+(d?-d.x+c.x:0);h=o+m,h>r||l.newline?(o=0,h=m,a+=s+n,s=c.height):s=Math.max(s,c.height)}else{var y=c.height+(d?-d.y+c.y:0);v=a+y,v>i||l.newline?(o+=s+n,a=0,v=y,s=c.width):s=Math.max(s,c.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),e==="horizontal"?o=h+n:a=v+n)})}var Mv=GR;Dr(GR,"vertical");Dr(GR,"horizontal");function k1(e,t,n){n=bS(n||0);var r=t.width,i=t.height,o=Ci(e.left,r),a=Ci(e.top,i),s=Ci(e.right,r),l=Ci(e.bottom,i),u=Ci(e.width,r),c=Ci(e.height,i),f=n[2]+n[0],d=n[1]+n[3],h=e.aspect;switch(isNaN(u)&&(u=r-s-d-o),isNaN(c)&&(c=i-l-f-a),h!=null&&(isNaN(u)&&isNaN(c)&&(h>r/i?u=r*.8:c=i*.8),isNaN(u)&&(u=h*c),isNaN(c)&&(c=u/h)),isNaN(o)&&(o=r-s-u-d),isNaN(a)&&(a=i-l-c-f),e.left||e.right){case"center":o=r/2-u/2-n[3];break;case"right":o=r-u-d;break}switch(e.top||e.bottom){case"middle":case"center":a=i/2-c/2-n[0];break;case"bottom":a=i-c-f;break}o=o||0,a=a||0,isNaN(u)&&(u=r-d-o-(s||0)),isNaN(c)&&(c=i-f-a-(l||0));var v=new bn(o+n[3],a+n[0],u,c);return v.margin=n,v}function Cg(e){var t=e.layoutMode||e.constructor.layoutMode;return Ct(t)?t:t?{type:t}:null}function sh(e,t,n){var r=n&&n.ignoreSize;!lt(r)&&(r=[r,r]);var i=a(i0[0],0),o=a(i0[1],1);u(i0[0],e,i),u(i0[1],e,o);function a(c,f){var d={},h=0,v={},m=0,y=2;if(I_(c,function(w){v[w]=e[w]}),I_(c,function(w){s(t,w)&&(d[w]=v[w]=t[w]),l(d,w)&&h++,l(v,w)&&m++}),r[f])return l(t,c[1])?v[c[2]]=null:l(t,c[2])&&(v[c[1]]=null),v;if(m===y||!h)return v;if(h>=y)return d;for(var _=0;_=0;l--)s=_n(s,i[l],!0);r.defaultOption=s}return r.defaultOption},t.prototype.getReferringComponents=function(n,r){var i=n+"Index",o=n+"Id";return lm(this.ecModel,n,{index:this.get(i,!0),id:this.get(o,!0)},r)},t.prototype.getBoxLayoutParams=function(){var n=this;return{left:n.get("left"),top:n.get("top"),right:n.get("right"),bottom:n.get("bottom"),width:n.get("width"),height:n.get("height")}},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(n){this.option.zlevel=n},t.protoInitialize=function(){var n=t.prototype;n.type="component",n.id="",n.name="",n.mainType="",n.subType="",n.componentIndex=0}(),t}(sr);QV(An,sr);Qb(An);mhe(An);yhe(An,Bhe);function Bhe(e){var t=[];return Q(An.getClassesByMainType(e),function(n){t=t.concat(n.dependencies||n.prototype.dependencies||[])}),t=Rt(t,function(n){return rs(n).main}),e!=="dataset"&&In(t,"dataset")<=0&&t.unshift("dataset"),t}var Ik=Ar();Ar();var zR=function(){function e(){}return e.prototype.getColorFromPalette=function(t,n,r){var i=Ri(this.get("color",!0)),o=this.get("colorLayer",!0);return Uhe(this,Ik,i,o,t,n,r)},e.prototype.clearColorPalette=function(){Hhe(this,Ik)},e}();function Vhe(e,t){for(var n=e.length,r=0;rt)return e[r];return e[n-1]}function Uhe(e,t,n,r,i,o,a){o=o||e;var s=t(o),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var c=a==null||!r?n:Vhe(r,a);if(c=c||n,!(!c||!c.length)){var f=c[l];return i&&(u[i]=f),s.paletteIdx=(l+1)%c.length,f}}function Hhe(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Ghe=/\{@(.+?)\}/g,zhe=function(){function e(){}return e.prototype.getDataParams=function(t,n){var r=this.getData(n),i=this.getRawValue(t,n),o=r.getRawIndex(t),a=r.getName(t),s=r.getRawDataItem(t),l=r.getItemVisual(t,"style"),u=l&&l[r.getItemVisual(t,"drawType")||"fill"],c=l&&l.stroke,f=this.mainType,d=f==="series",h=r.userOutput&&r.userOutput.get();return{componentType:f,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:d?this.subType:null,seriesIndex:this.seriesIndex,seriesId:d?this.id:null,seriesName:d?this.name:null,name:a,dataIndex:o,data:s,dataType:n,value:i,color:u,borderColor:c,dimensionNames:h?h.fullDimensions:null,encode:h?h.encode:null,$vars:["seriesName","name","value"]}},e.prototype.getFormattedLabel=function(t,n,r,i,o,a){n=n||"normal";var s=this.getData(r),l=this.getDataParams(t,r);if(a&&(l.value=a.interpolatedValue),i!=null&<(l.value)&&(l.value=l.value[i]),!o){var u=s.getItemModel(t);o=u.get(n==="normal"?["label","formatter"]:[n,"label","formatter"])}if(Vt(o))return l.status=n,l.dimensionIndex=i,o(l);if(dt(o)){var c=RH(o,l);return c.replace(Ghe,function(f,d){var h=d.length,v=d;v.charAt(0)==="["&&v.charAt(h-1)==="]"&&(v=+v.slice(1,h-1));var m=ah(s,t,v);if(a&<(a.interpolatedValue)){var y=s.getDimensionIndex(v);y>=0&&(m=a.interpolatedValue[y])}return m!=null?m+"":""})}},e.prototype.getRawValue=function(t,n){return ah(this.getData(n),t)},e.prototype.formatTooltip=function(t,n,r){},e}();function Rk(e){var t,n;return Ct(e)?e.type&&(n=e):t=e,{text:t,frag:n}}function Lv(e){return new Whe(e)}var Whe=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var n=this._upstream,r=t&&t.skip;if(this._dirty&&n){var i=this.context;i.data=i.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var o;this._plan&&!r&&(o=this._plan(this.context));var a=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;(a!==l||s!==u)&&(o="reset");function c(b){return!(b>=1)&&(b=1),b}var f;(this._dirty||o==="reset")&&(this._dirty=!1,f=this._doReset(r)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(n?this._dueEnd=n._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,v=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!r&&(f||h1&&r>0?s:a}};return o;function a(){return t=e?null:l9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,n=this._getUpstreamSourceManagers(),r=!!n.length,i,o;if(o0(t)){var a=t,s=void 0,l=void 0,u=void 0;if(r){var c=n[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,o=[c._getVersionSign()]}else s=a.get("data",!0),l=oo(s)?bu:ca,o=[];var f=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},h=nn(f.seriesLayoutBy,d.seriesLayoutBy)||null,v=nn(f.sourceHeader,d.sourceHeader),m=nn(f.dimensions,d.dimensions),y=h!==d.seriesLayoutBy||!!v!=!!d.sourceHeader||m;i=y?[tA(s,{seriesLayoutBy:h,sourceHeader:v,dimensions:m},l)]:[]}else{var _=t;if(r){var b=this._applyTransform(n);i=b.sourceList,o=b.upstreamSignList}else{var w=_.get("source",!0);i=[tA(w,this._getSourceMetaRawOption(),null)],o=[]}}this._setLocalSource(i,o)},e.prototype._applyTransform=function(t){var n=this._sourceHost,r=n.get("transform",!0),i=n.get("fromTransformResult",!0);if(i!=null){var o="";t.length!==1&&Ok(o)}var a,s=[],l=[];return Q(t,function(u){u.prepareSource();var c=u.getSource(i||0),f="";i!=null&&!c&&Ok(f),s.push(c),l.push(u._getVersionSign())}),r?a=Qhe(r,s,{datasetIndex:n.componentIndex}):i!=null&&(a=[Lde(s[0])]),{sourceList:a,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),n=0;n1||n>0&&!e.noHeader;return Q(e.blocks,function(i){var o=LH(i);o>=t&&(t=o+ +(r&&(!o||aA(i)&&!i.noHeader)))}),t}return 0}function ope(e,t,n,r){var i=t.noHeader,o=spe(LH(t)),a=[],s=t.blocks||[];pl(!s||lt(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(vf(u,l)){var c=new zde(u[l],null);s.sort(function(m,y){return c.evaluate(m.sortParam,y.sortParam)})}else l==="seriesDesc"&&s.reverse()}Q(s,function(m,y){var _=t.valueFormatter,b=MH(m)(_?Ke(Ke({},e),{valueFormatter:_}):e,m,y>0?o.html:0,r);b!=null&&a.push(b)});var f=e.renderMode==="richText"?a.join(o.richText):sA(r,a.join(""),i?n:o.html);if(i)return f;var d=oA(t.header,"ordinal",e.useUTC),h=DH(r,e.renderMode).nameStyle,v=OH(r);return e.renderMode==="richText"?NH(e,d,h)+o.richText+f:sA(r,'
'+Ki(d)+"
"+f,n)}function ape(e,t,n,r){var i=e.renderMode,o=t.noName,a=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(S){return S=lt(S)?S:[S],Rt(S,function(C,T){return oA(C,lt(h)?h[T]:h,u)})};if(!(o&&a)){var f=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),d=o?"":oA(l,"ordinal",u),h=t.valueType,v=a?[]:c(t.value,t.dataIndex),m=!s||!o,y=!s&&o,_=DH(r,i),b=_.nameStyle,w=_.valueStyle;return i==="richText"?(s?"":f)+(o?"":NH(e,d,b))+(a?"":cpe(e,v,m,y,w)):sA(r,(s?"":f)+(o?"":lpe(d,!s,b))+(a?"":upe(v,m,y,w)),n)}}function Dk(e,t,n,r,i,o){if(e){var a=MH(e),s={useUTC:i,renderMode:n,orderMode:r,markupStyleCreator:t,valueFormatter:e.valueFormatter};return a(s,e,0,o)}}function spe(e){return{html:rpe[e],richText:ipe[e]}}function sA(e,t,n){var r='
',i="margin: "+n+"px 0 0",o=OH(e);return'
'+t+r+"
"}function lpe(e,t,n){var r=t?"margin-left:2px":"";return''+Ki(e)+""}function upe(e,t,n,r){var i=n?"10px":"20px",o=t?"float:right;margin-left:"+i:"";return e=lt(e)?e:[e],''+Rt(e,function(a){return Ki(a)}).join("  ")+""}function NH(e,t,n){return e.markupStyleCreator.wrapRichTextStyle(t,n)}function cpe(e,t,n,r,i){var o=[i],a=r?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(lt(t)?t.join(" "):t,o)}function fpe(e,t){var n=e.getData().getItemVisual(t,"style"),r=n[e.visualDrawType];return _f(r)}function kH(e,t){var n=e.get("padding");return n??(t==="richText"?[8,10]:10)}var IT=function(){function e(){this.richTextStyles={},this._nextStyleNameId=wU()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,n,r){var i=r==="richText"?this._generateStyleName():null,o=Nhe({color:n,type:t,renderMode:r,markerId:i});return dt(o)?o:(this.richTextStyles[i]=o.style,o.content)},e.prototype.wrapRichTextStyle=function(t,n){var r={};lt(n)?Q(n,function(o){return Ke(r,o)}):Ke(r,n);var i=this._generateStyleName();return this.richTextStyles[i]=r,"{"+i+"|"+t+"}"},e}();function dpe(e){var t=e.series,n=e.dataIndex,r=e.multipleSeries,i=t.getData(),o=i.mapDimensionsAll("defaultedTooltip"),a=o.length,s=t.getRawValue(n),l=lt(s),u=fpe(t,n),c,f,d,h;if(a>1||l&&!a){var v=hpe(s,t,n,o,u);c=v.inlineValues,f=v.inlineValueTypes,d=v.blocks,h=v.inlineValues[0]}else if(a){var m=i.getDimensionInfo(o[0]);h=c=ah(i,n,o[0]),f=m.type}else h=c=l?s[0]:s;var y=gR(t),_=y&&t.name||"",b=i.getName(n),w=r?_:b;return Eg("section",{header:_,noHeader:r||!y,sortParam:h,blocks:[Eg("nameValue",{markerType:"item",markerColor:u,name:w,noName:!ns(w),value:c,valueType:f,dataIndex:n})].concat(d||[])})}function hpe(e,t,n,r,i){var o=t.getData(),a=Eh(e,function(f,d,h){var v=o.getDimensionInfo(h);return f=f||v&&v.tooltip!==!1&&v.displayName!=null},!1),s=[],l=[],u=[];r.length?Q(r,function(f){c(ah(o,n,f),f)}):Q(e,c);function c(f,d){var h=o.getDimensionInfo(d);!h||h.otherDims.tooltip===!1||(a?u.push(Eg("nameValue",{markerType:"subItem",markerColor:i,name:h.displayName,value:f,valueType:h.type})):(s.push(f),l.push(h.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var Vl=Ar();function a0(e,t){return e.getName(t)||e.getId(t)}var ppe="__universalTransitionEnabled",Pu=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n._selectedDataIndicesMap={},n}return t.prototype.init=function(n,r,i){this.seriesIndex=this.componentIndex,this.dataTask=Lv({count:gpe,reset:mpe}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(n,i);var o=Vl(this).sourceManager=new tpe(this);o.prepareSource();var a=this.getInitialData(n,i);Lk(a,this),this.dataTask.context.data=a,Vl(this).dataBeforeProcessed=a,Mk(this),this._initSelectedMapFromData(a)},t.prototype.mergeDefaultAndTheme=function(n,r){var i=Cg(this),o=i?SS(n):{},a=this.subType;An.hasClass(a)&&(a+="Series"),_n(n,r.getTheme().get(this.subType)),_n(n,this.getDefaultOption()),FN(n,"label",["show"]),this.fillDataTextStyle(n.data),i&&sh(n,o,i)},t.prototype.mergeOption=function(n,r){n=_n(this.option,n,!0),this.fillDataTextStyle(n.data);var i=Cg(this);i&&sh(this.option,n,i);var o=Vl(this).sourceManager;o.dirty(),o.prepareSource();var a=this.getInitialData(n,r);Lk(a,this),this.dataTask.dirty(),this.dataTask.context.data=a,Vl(this).dataBeforeProcessed=a,Mk(this),this._initSelectedMapFromData(a)},t.prototype.fillDataTextStyle=function(n){if(n&&!oo(n))for(var r=["show"],i=0;ithis.getShallow("animationThreshold")&&(r=!1),!!r},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(n,r,i){var o=this.ecModel,a=zR.prototype.getColorFromPalette.call(this,n,r,i);return a||(a=o.getColorFromPalette(n,r,i)),a},t.prototype.coordDimToDataDim=function(n){return this.getRawData().mapDimensionsAll(n)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(n,r){this._innerSelect(this.getData(r),n)},t.prototype.unselect=function(n,r){var i=this.option.selectedMap;if(i){var o=this.option.selectedMode,a=this.getData(r);if(o==="series"||i==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&i.push(a)}return i},t.prototype.isSelected=function(n,r){var i=this.option.selectedMap;if(!i)return!1;var o=this.getData(r);return(i==="all"||i[a0(o,n)])&&!o.getItemModel(n).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[ppe])return!0;var n=this.option.universalTransition;return n?n===!0?!0:n&&n.enabled:!1},t.prototype._innerSelect=function(n,r){var i,o,a=this.option,s=a.selectedMode,l=r.length;if(!(!s||!l)){if(s==="series")a.selectedMap="all";else if(s==="multiple"){Ct(a.selectedMap)||(a.selectedMap={});for(var u=a.selectedMap,c=0;c0&&this._innerSelect(n,r)}},t.registerClass=function(n){return An.registerClass(n)},t.protoInitialize=function(){var n=t.prototype;n.type="series.__base__",n.seriesIndex=0,n.ignoreStyleOnData=!1,n.hasSymbolVisual=!1,n.defaultSymbol="circle",n.visualStyleAccessPath="itemStyle",n.visualDrawType="fill"}(),t}(An);ms(Pu,zhe);ms(Pu,zR);QV(Pu,An);function Mk(e){var t=e.name;gR(e)||(e.name=vpe(e)||t)}function vpe(e){var t=e.getRawData(),n=t.mapDimensionsAll("seriesName"),r=[];return Q(n,function(i){var o=t.getDimensionInfo(i);o.displayName&&r.push(o.displayName)}),r.join(" ")}function gpe(e){return e.model.getRawData().count()}function mpe(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),ype}function ype(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function Lk(e,t){Q(tue(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(n){e.wrapMethod(n,Dr(_pe,t))})}function _pe(e,t){var n=lA(e);return n&&n.setOutputEnd((t||this).count()),t}function lA(e){var t=(e.ecModel||{}).scheduler,n=t&&t.getPipeline(e.uid);if(n){var r=n.currentTask;if(r){var i=r.agentStubMap;i&&(r=i.get(e.uid))}return r}}var bpe=Ln.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var n=t.cx,r=t.cy,i=t.width/2,o=t.height/2;e.moveTo(n,r-o),e.lineTo(n+i,r+o),e.lineTo(n-i,r+o),e.closePath()}}),Spe=Ln.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var n=t.cx,r=t.cy,i=t.width/2,o=t.height/2;e.moveTo(n,r-o),e.lineTo(n+i,r),e.lineTo(n,r+o),e.lineTo(n-i,r),e.closePath()}}),wpe=Ln.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.x,r=t.y,i=t.width/5*3,o=Math.max(i,t.height),a=i/2,s=a*a/(o-a),l=r-o+a+s,u=Math.asin(s/a),c=Math.cos(u)*a,f=Math.sin(u),d=Math.cos(u),h=a*.6,v=a*.7;e.moveTo(n-c,l+s),e.arc(n,l,a,Math.PI-u,Math.PI*2+u),e.bezierCurveTo(n+c-f*h,l+s+d*h,n,r-v,n,r),e.bezierCurveTo(n,r-v,n-c+f*h,l+s+d*h,n-c,l+s),e.closePath()}}),xpe=Ln.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.height,r=t.width,i=t.x,o=t.y,a=r/3*2;e.moveTo(i,o),e.lineTo(i+a,o+n),e.lineTo(i,o+n/4*3),e.lineTo(i-a,o+n),e.lineTo(i,o),e.closePath()}}),Tpe={line:Iu,rect:zr,roundRect:zr,square:zr,circle:sS,diamond:Spe,pin:wpe,arrow:xpe,triangle:bpe},Cpe={line:function(e,t,n,r,i){i.x1=e,i.y1=t+r/2,i.x2=e+n,i.y2=t+r/2},rect:function(e,t,n,r,i){i.x=e,i.y=t,i.width=n,i.height=r},roundRect:function(e,t,n,r,i){i.x=e,i.y=t,i.width=n,i.height=r,i.r=Math.min(n,r)/4},square:function(e,t,n,r,i){var o=Math.min(n,r);i.x=e,i.y=t,i.width=o,i.height=o},circle:function(e,t,n,r,i){i.cx=e+n/2,i.cy=t+r/2,i.r=Math.min(n,r)/2},diamond:function(e,t,n,r,i){i.cx=e+n/2,i.cy=t+r/2,i.width=n,i.height=r},pin:function(e,t,n,r,i){i.x=e+n/2,i.y=t+r/2,i.width=n,i.height=r},arrow:function(e,t,n,r,i){i.x=e+n/2,i.y=t+r/2,i.width=n,i.height=r},triangle:function(e,t,n,r,i){i.cx=e+n/2,i.cy=t+r/2,i.width=n,i.height=r}},uA={};Q(Tpe,function(e,t){uA[t]=new e});var Epe=Ln.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(e,t,n){var r=nU(e,t,n),i=this.shape;return i&&i.symbolType==="pin"&&t.position==="inside"&&(r.y=n.y+n.height*.4),r},buildPath:function(e,t,n){var r=t.symbolType;if(r!=="none"){var i=uA[r];i||(r="rect",i=uA[r]),Cpe[r](t.x,t.y,t.width,t.height,i.shape),i.buildPath(e,i.shape,n)}}});function Ape(e,t){if(this.type!=="image"){var n=this.style;this.__isEmptyBrush?(n.stroke=e,n.fill=t||"#fff",n.lineWidth=2):this.shape.symbolType==="line"?n.stroke=e:n.fill=e,this.markRedraw()}}function lh(e,t,n,r,i,o,a){var s=e.indexOf("empty")===0;s&&(e=e.substr(5,1).toLowerCase()+e.substr(6));var l;return e.indexOf("image://")===0?l=GU(e.slice(8),new bn(t,n,r,i),a?"center":"cover"):e.indexOf("path://")===0?l=RR(e.slice(7),{},new bn(t,n,r,i),a?"center":"cover"):l=new Epe({shape:{symbolType:e,x:t,y:n,width:r,height:i}}),l.__isEmptyBrush=s,l.setColor=Ape,o&&l.setColor(o),l}function Ipe(e){return lt(e)||(e=[+e,+e]),[e[0]||0,e[1]||0]}function FH(e,t){if(e!=null)return lt(e)||(e=[e,e]),[Ci(e[0],t[0])||0,Ci(nn(e[1],e[0]),t[1])||0]}var Rpe=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.hasSymbolVisual=!0,n}return t.prototype.getInitialData=function(n){return hhe(null,this,{useEncodeDefaulter:!0})},t.prototype.getLegendIcon=function(n){var r=new pi,i=lh("line",0,n.itemHeight/2,n.itemWidth,0,n.lineStyle.stroke,!1);r.add(i),i.setStyle(n.lineStyle);var o=this.getData().getVisual("symbol"),a=this.getData().getVisual("symbolRotate"),s=o==="none"?"circle":o,l=n.itemHeight*.8,u=lh(s,(n.itemWidth-l)/2,(n.itemHeight-l)/2,l,l,n.itemStyle.fill);r.add(u),u.setStyle(n.itemStyle);var c=n.iconRotate==="inherit"?a:n.iconRotate||0;return u.rotation=c*Math.PI/180,u.setOrigin([n.itemWidth/2,n.itemHeight/2]),s.indexOf("empty")>-1&&(u.style.stroke=u.style.fill,u.style.fill="#fff",u.style.lineWidth=2),r},t.type="series.line",t.dependencies=["grid","polar"],t.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},t}(Pu);function $H(e,t){var n=e.mapDimensionsAll("defaultedLabel"),r=n.length;if(r===1){var i=ah(e,t,n[0]);return i!=null?i+"":null}else if(r){for(var o=[],a=0;a=0&&r.push(t[o])}return r.join(" ")}var jR=function(e){ot(t,e);function t(n,r,i,o){var a=e.call(this)||this;return a.updateData(n,r,i,o),a}return t.prototype._createSymbol=function(n,r,i,o,a){this.removeAll();var s=lh(n,-1,-1,2,2,null,a);s.attr({z2:100,culling:!0,scaleX:o[0]/2,scaleY:o[1]/2}),s.drift=Ope,this._symbolType=n,this.add(s)},t.prototype.stopSymbolAnimation=function(n){this.childAt(0).stopAnimation(null,n)},t.prototype.getSymbolType=function(){return this._symbolType},t.prototype.getSymbolPath=function(){return this.childAt(0)},t.prototype.highlight=function(){R1(this.childAt(0))},t.prototype.downplay=function(){P1(this.childAt(0))},t.prototype.setZ=function(n,r){var i=this.childAt(0);i.zlevel=n,i.z=r},t.prototype.setDraggable=function(n,r){var i=this.childAt(0);i.draggable=n,i.cursor=!r&&n?"move":i.cursor},t.prototype.updateData=function(n,r,i,o){this.silent=!1;var a=n.getItemVisual(r,"symbol")||"circle",s=n.hostModel,l=t.getSymbolSize(n,r),u=a!==this._symbolType,c=o&&o.disableAnimation;if(u){var f=n.getItemVisual(r,"symbolKeepAspect");this._createSymbol(a,n,r,l,f)}else{var d=this.childAt(0);d.silent=!1;var h={scaleX:l[0]/2,scaleY:l[1]/2};c?d.attr(h):Ru(d,h,s,r),rde(d)}if(this._updateCommon(n,r,l,i,o),u){var d=this.childAt(0);if(!c){var h={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:d.style.opacity}};d.scaleX=d.scaleY=0,d.style.opacity=0,um(d,h,s,r)}}c&&this.childAt(0).stopAnimation("leave")},t.prototype._updateCommon=function(n,r,i,o,a){var s=this.childAt(0),l=n.hostModel,u,c,f,d,h,v,m,y,_;if(o&&(u=o.emphasisItemStyle,c=o.blurItemStyle,f=o.selectItemStyle,d=o.focus,h=o.blurScope,m=o.labelStatesModels,y=o.hoverScale,_=o.cursorStyle,v=o.emphasisDisabled),!o||n.hasItemOption){var b=o&&o.itemModel?o.itemModel:n.getItemModel(r),w=b.getModel("emphasis");u=w.getModel("itemStyle").getItemStyle(),f=b.getModel(["select","itemStyle"]).getItemStyle(),c=b.getModel(["blur","itemStyle"]).getItemStyle(),d=w.get("focus"),h=w.get("blurScope"),v=w.get("disabled"),m=LR(b),y=w.getShallow("scale"),_=b.getShallow("cursor")}var S=n.getItemVisual(r,"symbolRotate");s.attr("rotation",(S||0)*Math.PI/180||0);var C=FH(n.getItemVisual(r,"symbolOffset"),i);C&&(s.x=C[0],s.y=C[1]),_&&s.attr("cursor",_);var T=n.getItemVisual(r,"style"),A=T.fill;if(s instanceof Uu){var P=s.style;s.useStyle(Ke({image:P.image,x:P.x,y:P.y,width:P.width,height:P.height},T))}else s.__isEmptyBrush?s.useStyle(Ke({},T)):s.useStyle(T),s.style.decal=null,s.setColor(A,a&&a.symbolInnerColor),s.style.strokeNoScale=!0;var I=n.getItemVisual(r,"liftZ"),R=this._z2;I!=null?R==null&&(this._z2=s.z2,s.z2+=I):R!=null&&(s.z2=R,this._z2=null);var O=a&&a.useNameLabel;MR(s,m,{labelFetcher:l,labelDataIndex:r,defaultText:M,inheritColor:A,defaultOpacity:T.opacity});function M(z){return O?n.getName(z):$H(n,z)}this._sizeX=i[0]/2,this._sizeY=i[1]/2;var $=s.ensureState("emphasis");$.style=u,s.ensureState("select").style=f,s.ensureState("blur").style=c;var F=y==null||y===!0?Math.max(1.1,3/this._sizeY):isFinite(y)&&y>0?+y:1;$.scaleX=this._sizeX*F,$.scaleY=this._sizeY*F,this.setSymbolScale(1),ZE(this,d,h,v)},t.prototype.setSymbolScale=function(n){this.scaleX=this.scaleY=n},t.prototype.fadeOut=function(n,r,i){var o=this.childAt(0),a=Mn(this).dataIndex,s=i&&i.animation;if(this.silent=o.silent=!0,i&&i.fadeLabel){var l=o.getTextContent();l&&D1(l,{style:{opacity:0}},r,{dataIndex:a,removeOpt:s,cb:function(){o.removeTextContent()}})}else o.removeTextContent();D1(o,{style:{opacity:0},scaleX:0,scaleY:0},r,{dataIndex:a,cb:n,removeOpt:s})},t.getSymbolSize=function(n,r){return Ipe(n.getItemVisual(r,"symbolSize"))},t}(pi);function Ope(e,t){this.parent.drift(e,t)}function RT(e,t,n,r){return t&&!isNaN(t[0])&&!isNaN(t[1])&&!(r.isIgnore&&r.isIgnore(n))&&!(r.clipShape&&!r.clipShape.contain(t[0],t[1]))&&e.getItemVisual(n,"symbol")!=="none"}function Nk(e){return e!=null&&!Ct(e)&&(e={isIgnore:e}),e||{}}function kk(e){var t=e.hostModel,n=t.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:t.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:t.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),emphasisDisabled:n.get("disabled"),hoverScale:n.get("scale"),labelStatesModels:LR(t),cursorStyle:t.get("cursor")}}var Dpe=function(){function e(t){this.group=new pi,this._SymbolCtor=t||jR}return e.prototype.updateData=function(t,n){this._progressiveEls=null,n=Nk(n);var r=this.group,i=t.hostModel,o=this._data,a=this._SymbolCtor,s=n.disableAnimation,l=kk(t),u={disableAnimation:s},c=n.getSymbolPoint||function(f){return t.getItemLayout(f)};o||r.removeAll(),t.diff(o).add(function(f){var d=c(f);if(RT(t,d,f,n)){var h=new a(t,f,l,u);h.setPosition(d),t.setItemGraphicEl(f,h),r.add(h)}}).update(function(f,d){var h=o.getItemGraphicEl(d),v=c(f);if(!RT(t,v,f,n)){r.remove(h);return}var m=t.getItemVisual(f,"symbol")||"circle",y=h&&h.getSymbolType&&h.getSymbolType();if(!h||y&&y!==m)r.remove(h),h=new a(t,f,l,u),h.setPosition(v);else{h.updateData(t,f,l,u);var _={x:v[0],y:v[1]};s?h.attr(_):Ru(h,_,i)}r.add(h),t.setItemGraphicEl(f,h)}).remove(function(f){var d=o.getItemGraphicEl(f);d&&d.fadeOut(function(){r.remove(d)},i)}).execute(),this._getSymbolPoint=c,this._data=t},e.prototype.updateLayout=function(){var t=this,n=this._data;n&&n.eachItemGraphicEl(function(r,i){var o=t._getSymbolPoint(i);r.setPosition(o),r.markRedraw()})},e.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=kk(t),this._data=null,this.group.removeAll()},e.prototype.incrementalUpdate=function(t,n,r){this._progressiveEls=[],r=Nk(r);function i(l){l.isGroup||(l.incremental=!0,l.ensureState("emphasis").hoverLayer=!0)}for(var o=t.start;o0?n=r[0]:r[1]<0&&(n=r[1]),n}function VH(e,t,n,r){var i=NaN;e.stacked&&(i=n.get(n.getCalculationInfo("stackedOverDimension"),r)),isNaN(i)&&(i=e.valueStart);var o=e.baseDataOffset,a=[];return a[o]=n.get(e.baseDim,r),a[1-o]=i,t.dataToPoint(a)}var UH=typeof Float32Array<"u",Lpe=UH?Float32Array:Array;function Rd(e){return lt(e)?UH?new Float32Array(e):e:new Lpe(e)}function Npe(e,t){var n=[];return t.diff(e).add(function(r){n.push({cmd:"+",idx:r})}).update(function(r,i){n.push({cmd:"=",idx:i,idx1:r})}).remove(function(r){n.push({cmd:"-",idx:r})}).execute(),n}function kpe(e,t,n,r,i,o,a,s){for(var l=Npe(e,t),u=[],c=[],f=[],d=[],h=[],v=[],m=[],y=BH(i,t,a),_=e.getLayout("points")||[],b=t.getLayout("points")||[],w=0;w=i||m<0)break;if(of(_,b)){if(l){m+=o;continue}break}if(m===n)e[o>0?"moveTo":"lineTo"](_,b),f=_,d=b;else{var w=_-u,S=b-c;if(w*w+S*S<.5){m+=o;continue}if(a>0){for(var C=m+o,T=t[C*2],A=t[C*2+1];T===_&&A===b&&y=r||of(T,A))h=_,v=b;else{R=T-u,O=A-c;var F=_-u,z=T-_,B=b-c,Y=A-b,j=void 0,se=void 0;if(s==="x"){j=Math.abs(F),se=Math.abs(z);var ge=R>0?1:-1;h=_-ge*j*a,v=b,M=_+ge*se*a,$=b}else if(s==="y"){j=Math.abs(B),se=Math.abs(Y);var ve=O>0?1:-1;h=_,v=b-ve*j*a,M=_,$=b+ve*se*a}else j=Math.sqrt(F*F+B*B),se=Math.sqrt(z*z+Y*Y),I=se/(se+j),h=_-R*a*(1-I),v=b-O*a*(1-I),M=_+R*a*I,$=b+O*a*I,M=Ul(M,Hl(T,_)),$=Ul($,Hl(A,b)),M=Hl(M,Ul(T,_)),$=Hl($,Ul(A,b)),R=M-_,O=$-b,h=_-R*j/se,v=b-O*j/se,h=Ul(h,Hl(u,_)),v=Ul(v,Hl(c,b)),h=Hl(h,Ul(u,_)),v=Hl(v,Ul(c,b)),R=_-h,O=b-v,M=_+R*se/j,$=b+O*se/j}e.bezierCurveTo(f,d,h,v,_,b),f=M,d=$}else e.lineTo(_,b)}u=_,c=b,m+=o}return y}var HH=function(){function e(){this.smooth=0,this.smoothConstraint=!0}return e}(),Fpe=function(e){ot(t,e);function t(n){var r=e.call(this,n)||this;return r.type="ec-polyline",r}return t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new HH},t.prototype.buildPath=function(n,r){var i=r.points,o=0,a=i.length/2;if(r.connectNulls){for(;a>0&&of(i[a*2-2],i[a*2-1]);a--);for(;o=0){var S=u?(v-l)*w+l:(h-s)*w+s;return u?[n,S]:[S,n]}s=h,l=v;break;case a.C:h=o[f++],v=o[f++],m=o[f++],y=o[f++],_=o[f++],b=o[f++];var C=u?S1(s,h,m,_,n,c):S1(l,v,y,b,n,c);if(C>0)for(var T=0;T=0){var S=u?Hr(l,v,y,b,A):Hr(s,h,m,_,A);return u?[n,S]:[S,n]}}s=_,l=b;break}}},t}(Ln),$pe=function(e){ot(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(HH),Bpe=function(e){ot(t,e);function t(n){var r=e.call(this,n)||this;return r.type="ec-polygon",r}return t.prototype.getDefaultShape=function(){return new $pe},t.prototype.buildPath=function(n,r){var i=r.points,o=r.stackedOnPoints,a=0,s=i.length/2,l=r.smoothMonotone;if(r.connectNulls){for(;s>0&&of(i[s*2-2],i[s*2-1]);s--);for(;at){o?n.push(a(o,l,t)):i&&n.push(a(i,l,0),a(i,l,t));break}else i&&(n.push(a(i,l,0)),i=null),n.push(l),o=l}return n}function Kpe(e,t,n){var r=e.getVisual("visualMeta");if(!(!r||!r.length||!e.count())&&t.type==="cartesian2d"){for(var i,o,a=r.length-1;a>=0;a--){var s=e.getDimensionInfo(r[a].dimension);if(i=s&&s.coordDim,i==="x"||i==="y"){o=r[a];break}}if(o){var l=t.getAxis(i),u=Rt(o.stops,function(w){return{coord:l.toGlobalCoord(l.dataToCoord(w.value)),color:w.color}}),c=u.length,f=o.outerColors.slice();c&&u[0].coord>u[c-1].coord&&(u.reverse(),f.reverse());var d=Xpe(u,i==="x"?n.getWidth():n.getHeight()),h=d.length;if(!h&&c)return u[0].coord<0?f[1]?f[1]:u[c-1].color:f[0]?f[0]:u[0].color;var v=10,m=d[0].coord-v,y=d[h-1].coord+v,_=y-m;if(_<.001)return"transparent";Q(d,function(w){w.offset=(w.coord-m)/_}),d.push({offset:h?d[h-1].offset:.5,color:f[1]||"transparent"}),d.unshift({offset:h?d[0].offset:.5,color:f[0]||"transparent"});var b=new AR(0,0,0,0,d,!0);return b[i]=m,b[i+"2"]=y,b}}}function Zpe(e,t,n){var r=e.get("showAllSymbol"),i=r==="auto";if(!(r&&!i)){var o=n.getAxesByScale("ordinal")[0];if(o&&!(i&&qpe(o,t))){var a=t.mapDimension(o.dim),s={};return Q(o.getViewLabels(),function(l){var u=o.scale.getRawOrdinalNumber(l.tickValue);s[u]=1}),function(l){return!s.hasOwnProperty(t.get(a,l))}}}}function qpe(e,t){var n=e.getExtent(),r=Math.abs(n[1]-n[0])/e.scale.count();isNaN(r)&&(r=0);for(var i=t.count(),o=Math.max(1,Math.round(i/5)),a=0;ar)return!1;return!0}function Jpe(e,t){return isNaN(e)||isNaN(t)}function Qpe(e){for(var t=e.length/2;t>0&&Jpe(e[t*2-2],e[t*2-1]);t--);return t-1}function Gk(e,t){return[e[t*2],e[t*2+1]]}function eve(e,t,n){for(var r=e.length/2,i=n==="x"?0:1,o,a,s=0,l=-1,u=0;u=t||o>=t&&a<=t){l=u;break}s=u,o=a}return{range:[s,l],t:(t-o)/(a-o)}}function WH(e){if(e.get(["endLabel","show"]))return!0;for(var t=0;t0&&n.get(["emphasis","lineStyle","width"])==="bolder"){var se=v.getState("emphasis").style;se.lineWidth=+v.style.lineWidth+1}Mn(v).seriesIndex=n.seriesIndex,ZE(v,B,Y,j);var ge=Hk(n.get("smooth")),ve=n.get("smoothMonotone");if(v.setShape({smooth:ge,smoothMonotone:ve,connectNulls:A}),m){var De=s.getCalculationInfo("stackedOnSeries"),Ne=0;m.useStyle(En(u.getAreaStyle(),{fill:M,opacity:.7,lineJoin:"bevel",decal:s.getVisual("style").decal})),De&&(Ne=Hk(De.get("smooth"))),m.setShape({smooth:ge,stackedOnSmooth:Ne,smoothMonotone:ve,connectNulls:A}),XN(m,n,"areaStyle"),Mn(m).seriesIndex=n.seriesIndex,ZE(m,B,Y,j)}var ze=this._changePolyState;s.eachItemGraphicEl(function(Me){Me&&(Me.onHoverStateChange=ze)}),this._polyline.onHoverStateChange=ze,this._data=s,this._coordSys=o,this._stackedOnPoints=C,this._points=c,this._step=R,this._valueOrigin=w,n.get("triggerLineEvent")&&(this.packEventData(n,v),m&&this.packEventData(n,m))},t.prototype.packEventData=function(n,r){Mn(r).eventData={componentType:"series",componentSubType:"line",componentIndex:n.componentIndex,seriesIndex:n.seriesIndex,seriesName:n.name,seriesType:"line"}},t.prototype.highlight=function(n,r,i,o){var a=n.getData(),s=yf(a,o);if(this._changePolyState("emphasis"),!(s instanceof Array)&&s!=null&&s>=0){var l=a.getLayout("points"),u=a.getItemGraphicEl(s);if(!u){var c=l[s*2],f=l[s*2+1];if(isNaN(c)||isNaN(f)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(c,f))return;var d=n.get("zlevel")||0,h=n.get("z")||0;u=new jR(a,s),u.x=c,u.y=f,u.setZ(d,h);var v=u.getSymbolPath().getTextContent();v&&(v.zlevel=d,v.z=h,v.z2=this._polyline.z2+1),u.__temp=!0,a.setItemGraphicEl(s,u),u.stopSymbolAnimation(!0),this.group.add(u)}u.highlight()}else os.prototype.highlight.call(this,n,r,i,o)},t.prototype.downplay=function(n,r,i,o){var a=n.getData(),s=yf(a,o);if(this._changePolyState("normal"),s!=null&&s>=0){var l=a.getItemGraphicEl(s);l&&(l.__temp?(a.setItemGraphicEl(s,null),this.group.remove(l)):l.downplay())}else os.prototype.downplay.call(this,n,r,i,o)},t.prototype._changePolyState=function(n){var r=this._polygon;GN(this._polyline,n),r&&GN(r,n)},t.prototype._newPolyline=function(n){var r=this._polyline;return r&&this._lineGroup.remove(r),r=new Fpe({shape:{points:n},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(r),this._polyline=r,r},t.prototype._newPolygon=function(n,r){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new Bpe({shape:{points:n,stackedOnPoints:r},segmentIgnoreThreshold:2}),this._lineGroup.add(i),this._polygon=i,i},t.prototype._initSymbolLabelAnimation=function(n,r,i){var o,a,s=r.getBaseAxis(),l=s.inverse;r.type==="cartesian2d"?(o=s.isHorizontal(),a=!1):r.type==="polar"&&(o=s.dim==="angle",a=!0);var u=n.hostModel,c=u.get("animationDuration");Vt(c)&&(c=c(null));var f=u.get("animationDelay")||0,d=Vt(f)?f(null):f;n.eachItemGraphicEl(function(h,v){var m=h;if(m){var y=[h.x,h.y],_=void 0,b=void 0,w=void 0;if(i)if(a){var S=i,C=r.pointToCoord(y);o?(_=S.startAngle,b=S.endAngle,w=-C[1]/180*Math.PI):(_=S.r0,b=S.r,w=C[0])}else{var T=i;o?(_=T.x,b=T.x+T.width,w=h.x):(_=T.y+T.height,b=T.y,w=h.y)}var A=b===_?0:(w-_)/(b-_);l&&(A=1-A);var P=Vt(f)?f(v):c*A+d,I=m.getSymbolPath(),R=I.getTextContent();m.attr({scaleX:0,scaleY:0}),m.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:P}),R&&R.animateFrom({style:{opacity:0}},{duration:300,delay:P}),I.disableLabelAnimation=!0}})},t.prototype._initOrUpdateEndLabel=function(n,r,i){var o=n.getModel("endLabel");if(WH(n)){var a=n.getData(),s=this._polyline,l=a.getLayout("points");if(!l){s.removeTextContent(),this._endLabel=null;return}var u=this._endLabel;u||(u=this._endLabel=new ao({z2:200}),u.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var c=Qpe(l);c>=0&&(MR(s,LR(n,"endLabel"),{inheritColor:i,labelFetcher:n,labelDataIndex:c,defaultText:function(f,d,h){return h!=null?Ppe(a,h):$H(a,f)},enableTextSetter:!0},tve(o,r)),s.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},t.prototype._endLabelOnDuring=function(n,r,i,o,a,s,l){var u=this._endLabel,c=this._polyline;if(u){n<1&&o.originalX==null&&(o.originalX=u.x,o.originalY=u.y);var f=i.getLayout("points"),d=i.hostModel,h=d.get("connectNulls"),v=s.get("precision"),m=s.get("distance")||0,y=l.getBaseAxis(),_=y.isHorizontal(),b=y.inverse,w=r.shape,S=b?_?w.x:w.y+w.height:_?w.x+w.width:w.y,C=(_?m:0)*(b?-1:1),T=(_?0:-m)*(b?-1:1),A=_?"x":"y",P=eve(f,S,A),I=P.range,R=I[1]-I[0],O=void 0;if(R>=1){if(R>1&&!h){var M=Gk(f,I[0]);u.attr({x:M[0]+C,y:M[1]+T}),a&&(O=d.getRawValue(I[0]))}else{var M=c.getPointOn(S,A);M&&u.attr({x:M[0]+C,y:M[1]+T});var $=d.getRawValue(I[0]),F=d.getRawValue(I[1]);a&&(O=ife(i,v,$,F,P.t))}o.lastFrameIndex=I[0]}else{var z=n===1||o.lastFrameIndex>0?I[0]:0,M=Gk(f,z);a&&(O=d.getRawValue(z)),u.attr({x:M[0]+C,y:M[1]+T})}if(a){var B=XU(u);typeof B.setLabelText=="function"&&B.setLabelText(O)}}},t.prototype._doUpdateAnimation=function(n,r,i,o,a,s,l){var u=this._polyline,c=this._polygon,f=n.hostModel,d=kpe(this._data,n,this._stackedOnPoints,r,this._coordSys,i,this._valueOrigin),h=d.current,v=d.stackedOnCurrent,m=d.next,y=d.stackedOnNext;if(a&&(v=Gl(d.stackedOnCurrent,d.current,i,a,l),h=Gl(d.current,null,i,a,l),y=Gl(d.stackedOnNext,d.next,i,a,l),m=Gl(d.next,null,i,a,l)),Uk(h,m)>3e3||c&&Uk(v,y)>3e3){u.stopAnimation(),u.setShape({points:m}),c&&(c.stopAnimation(),c.setShape({points:m,stackedOnPoints:y}));return}u.shape.__points=d.current,u.shape.points=h;var _={shape:{points:m}};d.current!==h&&(_.shape.__points=d.next),u.stopAnimation(),Ru(u,_,f),c&&(c.setShape({points:h,stackedOnPoints:v}),c.stopAnimation(),Ru(c,{shape:{stackedOnPoints:y}},f),u.shape.points!==c.shape.points&&(c.shape.points=u.shape.points));for(var b=[],w=d.status,S=0;St&&(t=e[n]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,n=0;n10&&a.type==="cartesian2d"&&o){var l=a.getBaseAxis(),u=a.getOtherAxis(l),c=l.getExtent(),f=r.getDevicePixelRatio(),d=Math.abs(c[1]-c[0])*(f||1),h=Math.round(s/d);if(isFinite(h)&&h>1){o==="lttb"?t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h)):o==="minmax"&&t.setData(i.minmaxDownSample(i.mapDimension(u.dim),1/h));var v=void 0;dt(o)?v=ive[o]:Vt(o)&&(v=o),v&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,v,ove))}}}}}function sve(e){e.registerChartView(nve),e.registerSeriesModel(Rpe),e.registerLayout(rve("line")),e.registerVisual({seriesType:"line",reset:function(t){var n=t.getData(),r=t.getModel("lineStyle").getLineStyle();r&&!r.stroke&&(r.stroke=n.getVisual("style").fill),n.setVisual("legendLineStyle",r)}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,ave("line"))}var lve="__ec_stack_";function uve(e){return e.get("stack")||lve+e.seriesIndex}function jH(e){return e.dim+e.index}function cve(e,t){var n=[];return t.eachSeriesByType(e,function(r){vve(r)&&n.push(r)}),n}function fve(e){var t={};Q(e,function(l){var u=l.coordinateSystem,c=u.getBaseAxis();if(!(c.type!=="time"&&c.type!=="value"))for(var f=l.getData(),d=c.dim+"_"+c.index,h=f.getDimensionIndex(f.mapDimension(c.dim)),v=f.getStore(),m=0,y=v.count();m0&&(o=o===null?s:Math.min(o,s))}n[r]=o}}return n}function dve(e){var t=fve(e),n=[];return Q(e,function(r){var i=r.coordinateSystem,o=i.getBaseAxis(),a=o.getExtent(),s;if(o.type==="category")s=o.getBandWidth();else if(o.type==="value"||o.type==="time"){var l=o.dim+"_"+o.index,u=t[l],c=Math.abs(a[1]-a[0]),f=o.scale.getExtent(),d=Math.abs(f[1]-f[0]);s=u?c/d*u:c}else{var h=r.getData();s=Math.abs(a[1]-a[0])/h.count()}var v=Ci(r.get("barWidth"),s),m=Ci(r.get("barMaxWidth"),s),y=Ci(r.get("barMinWidth")||(gve(r)?.5:1),s),_=r.get("barGap"),b=r.get("barCategoryGap");n.push({bandWidth:s,barWidth:v,barMaxWidth:m,barMinWidth:y,barGap:_,barCategoryGap:b,axisKey:jH(o),stackId:uve(r)})}),hve(n)}function hve(e){var t={};Q(e,function(r,i){var o=r.axisKey,a=r.bandWidth,s=t[o]||{bandWidth:a,remainedWidth:a,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},l=s.stacks;t[o]=s;var u=r.stackId;l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var c=r.barWidth;c&&!l[u].width&&(l[u].width=c,c=Math.min(s.remainedWidth,c),s.remainedWidth-=c);var f=r.barMaxWidth;f&&(l[u].maxWidth=f);var d=r.barMinWidth;d&&(l[u].minWidth=d);var h=r.barGap;h!=null&&(s.gap=h);var v=r.barCategoryGap;v!=null&&(s.categoryGap=v)});var n={};return Q(t,function(r,i){n[i]={};var o=r.stacks,a=r.bandWidth,s=r.categoryGap;if(s==null){var l=Kn(o).length;s=Math.max(35-l*4,15)+"%"}var u=Ci(s,a),c=Ci(r.gap,1),f=r.remainedWidth,d=r.autoWidthCount,h=(f-u)/(d+(d-1)*c);h=Math.max(h,0),Q(o,function(_){var b=_.maxWidth,w=_.minWidth;if(_.width){var S=_.width;b&&(S=Math.min(S,b)),w&&(S=Math.max(S,w)),_.width=S,f-=S+c*S,d--}else{var S=h;b&&bS&&(S=w),S!==h&&(_.width=S,f-=S+c*S,d--)}}),h=(f-u)/(d+(d-1)*c),h=Math.max(h,0);var v=0,m;Q(o,function(_,b){_.width||(_.width=h),m=_,v+=_.width*(1+c)}),m&&(v-=m.width*c);var y=-v/2;Q(o,function(_,b){n[i][b]=n[i][b]||{bandWidth:a,offset:y,width:_.width},y+=_.width*(1+c)})}),n}function pve(e,t,n){if(e&&t){var r=e[jH(t)];return r}}function vve(e){return e.coordinateSystem&&e.coordinateSystem.type==="cartesian2d"}function gve(e){return e.pipelineContext&&e.pipelineContext.large}var F1="\0__throttleOriginMethod",zk="\0__throttleRate",Wk="\0__throttleType";function YH(e,t,n){var r,i=0,o=0,a=null,s,l,u,c;t=t||0;function f(){o=new Date().getTime(),a=null,e.apply(l,u||[])}var d=function(){for(var h=[],v=0;v=0?f():a=setTimeout(f,-s),i=r};return d.clear=function(){a&&(clearTimeout(a),a=null)},d.debounceNextCall=function(h){c=h},d}function XH(e,t,n,r){var i=e[t];if(i){var o=i[F1]||i,a=i[Wk],s=i[zk];if(s!==n||a!==r){if(n==null||!r)return e[t]=o;i=e[t]=YH(o,n,r==="debounce"),i[F1]=o,i[Wk]=r,i[zk]=n}return i}}function fA(e,t){var n=e[t];n&&n[F1]&&(n.clear&&n.clear(),e[t]=n[F1])}function od(e,t,n,r,i){var o=e+t;n.isSilent(o)||r.eachComponent({mainType:"series",subType:"pie"},function(a){for(var s=a.seriesIndex,l=a.option.selectedMap,u=i.selected,c=0;c=0;if(i){var a=r!=="touchend"?t.targetTouches[0]:t.changedTouches[0];a&&dA(e,a,t,n)}else{dA(e,t,t,n);var o=xve(t);t.zrDelta=o?o/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&Sve.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function xve(e){var t=e.wheelDelta;if(t)return t;var n=e.deltaX,r=e.deltaY;if(n==null||r==null)return t;var i=Math.abs(r!==0?r:n),o=r>0?-1:r<0?1:n>0?-1:1;return 3*i*o}function Tve(e,t,n,r){e.addEventListener(t,n,r)}function Cve(e,t,n,r){e.removeEventListener(t,n,r)}var KH=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},Eve=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,n,r){return this._doTrack(t,n,r),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,n,r){var i=t.touches;if(i){for(var o={points:[],touches:[],target:n,event:t},a=0,s=i.length;a1&&r&&r.length>1){var o=Yk(r)/Yk(i);!isFinite(o)&&(o=1),t.pinchScale=o;var a=Ave(r);return t.pinchX=a[0],t.pinchY=a[1],{type:"pinch",target:e[0].target,event:t}}}}},ZH="silent";function Ive(e,t,n){return{type:e,event:n,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:Rve}}function Rve(){KH(this.event)}var Pve=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.handler=null,n}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(ys),bp=function(){function e(t,n){this.x=t,this.y=n}return e}(),Ove=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],MT=new bn(0,0,0,0),qH=function(e){ot(t,e);function t(n,r,i,o,a){var s=e.call(this)||this;return s._hovered=new bp(0,0),s.storage=n,s.painter=r,s.painterRoot=o,s._pointerSize=a,i=i||new Pve,s.proxy=null,s.setHandlerProxy(i),s._draggingMgr=new bve(s),s}return t.prototype.setHandlerProxy=function(n){this.proxy&&this.proxy.dispose(),n&&(Q(Ove,function(r){n.on&&n.on(r,this[r],this)},this),n.handler=this),this.proxy=n},t.prototype.mousemove=function(n){var r=n.zrX,i=n.zrY,o=JH(this,r,i),a=this._hovered,s=a.target;s&&!s.__zr&&(a=this.findHover(a.x,a.y),s=a.target);var l=this._hovered=o?new bp(r,i):this.findHover(r,i),u=l.target,c=this.proxy;c.setCursor&&c.setCursor(u?u.cursor:"default"),s&&u!==s&&this.dispatchToElement(a,"mouseout",n),this.dispatchToElement(l,"mousemove",n),u&&u!==s&&this.dispatchToElement(l,"mouseover",n)},t.prototype.mouseout=function(n){var r=n.zrEventControl;r!=="only_globalout"&&this.dispatchToElement(this._hovered,"mouseout",n),r!=="no_globalout"&&this.trigger("globalout",{type:"globalout",event:n})},t.prototype.resize=function(){this._hovered=new bp(0,0)},t.prototype.dispatch=function(n,r){var i=this[n];i&&i.call(this,r)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(n){var r=this.proxy;r.setCursor&&r.setCursor(n)},t.prototype.dispatchToElement=function(n,r,i){n=n||{};var o=n.target;if(!(o&&o.silent)){for(var a="on"+r,s=Ive(r,n,i);o&&(o[a]&&(s.cancelBubble=!!o[a].call(o,s)),o.trigger(r,s),o=o.__hostTarget?o.__hostTarget:o.parent,!s.cancelBubble););s.cancelBubble||(this.trigger(r,s),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(l){typeof l[a]=="function"&&l[a].call(l,s),l.trigger&&l.trigger(r,s)}))}},t.prototype.findHover=function(n,r,i){var o=this.storage.getDisplayList(),a=new bp(n,r);if(Xk(o,a,n,r,i),this._pointerSize&&!a.target){for(var s=[],l=this._pointerSize,u=l/2,c=new bn(n-u,r-u,l,l),f=o.length-1;f>=0;f--){var d=o[f];d!==i&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(MT.copy(d.getBoundingRect()),d.transform&&MT.applyTransform(d.transform),MT.intersect(c)&&s.push(d))}if(s.length)for(var h=4,v=Math.PI/12,m=Math.PI*2,y=0;y4)return;this._downPoint=null}this.dispatchToElement(o,e,t)}});function Dve(e,t,n){if(e[e.rectHover?"rectContain":"contain"](t,n)){for(var r=e,i=void 0,o=!1;r;){if(r.ignoreClip&&(o=!0),!o){var a=r.getClipPath();if(a&&!a.contain(t,n))return!1}r.silent&&(i=!0);var s=r.__hostTarget;r=s||r.parent}return i?ZH:!0}return!1}function Xk(e,t,n,r,i){for(var o=e.length-1;o>=0;o--){var a=e[o],s=void 0;if(a!==i&&!a.ignore&&(s=Dve(a,n,r))&&(!t.topTarget&&(t.topTarget=a),s!==ZH)){t.target=a;break}}}function JH(e,t,n){var r=e.painter;return t<0||t>r.getWidth()||n<0||n>r.getHeight()}var QH=32,Sp=7;function Mve(e){for(var t=0;e>=QH;)t|=e&1,e>>=1;return e+t}function Kk(e,t,n,r){var i=t+1;if(i===n)return 1;if(r(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function Lve(e,t,n){for(n--;t>>1,i(o,e[l])<0?s=l:a=l+1;var u=r-a;switch(u){case 3:e[a+3]=e[a+2];case 2:e[a+2]=e[a+1];case 1:e[a+1]=e[a];break;default:for(;u>0;)e[a+u]=e[a+u-1],u--}e[a]=o}}function LT(e,t,n,r,i,o){var a=0,s=0,l=1;if(o(e,t[n+i])>0){for(s=r-i;l0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),a+=i,l+=i}else{for(s=i+1;ls&&(l=s);var u=a;a=i-l,l=i-u}for(a++;a>>1);o(e,t[n+c])>0?a=c+1:l=c}return l}function NT(e,t,n,r,i,o){var a=0,s=0,l=1;if(o(e,t[n+i])<0){for(s=i+1;ls&&(l=s);var u=a;a=i-l,l=i-u}else{for(s=r-i;l=0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),a+=i,l+=i}for(a++;a>>1);o(e,t[n+c])<0?l=c:a=c+1}return l}function Nve(e,t){var n=Sp,r,i,o=0,a=[];r=[],i=[];function s(h,v){r[o]=h,i[o]=v,o+=1}function l(){for(;o>1;){var h=o-2;if(h>=1&&i[h-1]<=i[h]+i[h+1]||h>=2&&i[h-2]<=i[h]+i[h-1])i[h-1]i[h+1])break;c(h)}}function u(){for(;o>1;){var h=o-2;h>0&&i[h-1]=Sp||A>=Sp);if(P)break;C<0&&(C=0),C+=2}if(n=C,n<1&&(n=1),v===1){for(_=0;_=0;_--)e[T+_]=e[C+_];e[S]=a[w];return}for(var A=n;;){var P=0,I=0,R=!1;do if(t(a[w],e[b])<0){if(e[S--]=e[b--],P++,I=0,--v===0){R=!0;break}}else if(e[S--]=a[w--],I++,P=0,--y===1){R=!0;break}while((P|I)=0;_--)e[T+_]=e[C+_];if(v===0){R=!0;break}}if(e[S--]=a[w--],--y===1){R=!0;break}if(I=y-LT(e[b],a,0,y,y-1,t),I!==0){for(S-=I,w-=I,y-=I,T=S+1,C=w+1,_=0;_=Sp||I>=Sp);if(R)break;A<0&&(A=0),A+=2}if(n=A,n<1&&(n=1),y===1){for(S-=v,b-=v,T=S+1,C=b+1,_=v-1;_>=0;_--)e[T+_]=e[C+_];e[S]=a[w]}else{if(y===0)throw new Error;for(C=S-(y-1),_=0;_s&&(l=s),Zk(e,n,n+l,n+o,t),o=l}a.pushRun(n,o),a.mergeRuns(),i-=o,n+=o}while(i!==0);a.forceMergeRuns()}}var qk=!1;function kT(){qk||(qk=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function Jk(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var kve=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=Jk}return e.prototype.traverse=function(t,n){for(var r=0;r0&&(c.__clipPaths=[]),isNaN(c.z)&&(kT(),c.z=0),isNaN(c.z2)&&(kT(),c.z2=0),isNaN(c.zlevel)&&(kT(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var f=t.getDecalElement&&t.getDecalElement();f&&this._updateAndAddDisplayable(f,n,r);var d=t.getTextGuideLine();d&&this._updateAndAddDisplayable(d,n,r);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,n,r)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var n=0,r=t.length;n=0&&this._roots.splice(i,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),$1;$1=Dt.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};function Pd(){return new Date().getTime()}var Fve=function(e){ot(t,e);function t(n){var r=e.call(this)||this;return r._running=!1,r._time=0,r._pausedTime=0,r._pauseStart=0,r._paused=!1,n=n||{},r.stage=n.stage||{},r}return t.prototype.addClip=function(n){n.animation&&this.removeClip(n),this._head?(this._tail.next=n,n.prev=this._tail,n.next=null,this._tail=n):this._head=this._tail=n,n.animation=this},t.prototype.addAnimator=function(n){n.animation=this;var r=n.getClip();r&&this.addClip(r)},t.prototype.removeClip=function(n){if(n.animation){var r=n.prev,i=n.next;r?r.next=i:this._head=i,i?i.prev=r:this._tail=r,n.next=n.prev=n.animation=null}},t.prototype.removeAnimator=function(n){var r=n.getClip();r&&this.removeClip(r),n.animation=null},t.prototype.update=function(n){for(var r=Pd()-this._pausedTime,i=r-this._time,o=this._head;o;){var a=o.next,s=o.step(r,i);s&&(o.ondestroy(),this.removeClip(o)),o=a}this._time=r,n||(this.trigger("frame",i),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var n=this;this._running=!0;function r(){n._running&&($1(r),!n._paused&&n.update())}$1(r)},t.prototype.start=function(){this._running||(this._time=Pd(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=Pd(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=Pd()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var n=this._head;n;){var r=n.next;n.prev=n.next=n.animation=null,n=r}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(n,r){r=r||{},this.start();var i=new pR(n,r.loop);return this.addAnimator(i),i},t}(ys),$ve=300,FT=Dt.domSupported,$T=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],n={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},r=Rt(e,function(i){var o=i.replace("mouse","pointer");return n.hasOwnProperty(o)?o:i});return{mouse:e,touch:t,pointer:r}}(),Qk={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},eF=!1;function hA(e){var t=e.pointerType;return t==="pen"||t==="touch"}function Bve(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function BT(e){e&&(e.zrByTouch=!0)}function Vve(e,t){return Wo(e.dom,new Uve(e,t),!0)}function e6(e,t){for(var n=t,r=!1;n&&n.nodeType!==9&&!(r=n.domBelongToZr||n!==t&&n===e.painterRoot);)n=n.parentNode;return r}var Uve=function(){function e(t,n){this.stopPropagation=eo,this.stopImmediatePropagation=eo,this.preventDefault=eo,this.type=n.type,this.target=this.currentTarget=t.dom,this.pointerType=n.pointerType,this.clientX=n.clientX,this.clientY=n.clientY}return e}(),xa={mousedown:function(e){e=Wo(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Wo(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Wo(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Wo(this.dom,e);var t=e.toElement||e.relatedTarget;e6(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){eF=!0,e=Wo(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){eF||(e=Wo(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Wo(this.dom,e),BT(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),xa.mousemove.call(this,e),xa.mousedown.call(this,e)},touchmove:function(e){e=Wo(this.dom,e),BT(e),this.handler.processGesture(e,"change"),xa.mousemove.call(this,e)},touchend:function(e){e=Wo(this.dom,e),BT(e),this.handler.processGesture(e,"end"),xa.mouseup.call(this,e),+new Date-+this.__lastTouchMoment<$ve&&xa.click.call(this,e)},pointerdown:function(e){xa.mousedown.call(this,e)},pointermove:function(e){hA(e)||xa.mousemove.call(this,e)},pointerup:function(e){xa.mouseup.call(this,e)},pointerout:function(e){hA(e)||xa.mouseout.call(this,e)}};Q(["click","dblclick","contextmenu"],function(e){xa[e]=function(t){t=Wo(this.dom,t),this.trigger(e,t)}});var pA={pointermove:function(e){hA(e)||pA.mousemove.call(this,e)},pointerup:function(e){pA.mouseup.call(this,e)},mousemove:function(e){this.trigger("mousemove",e)},mouseup:function(e){var t=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",e),t&&(e.zrEventControl="only_globalout",this.trigger("mouseout",e))}};function Hve(e,t){var n=t.domHandlers;Dt.pointerEventsSupported?Q($T.pointer,function(r){P_(t,r,function(i){n[r].call(e,i)})}):(Dt.touchEventsSupported&&Q($T.touch,function(r){P_(t,r,function(i){n[r].call(e,i),Bve(t)})}),Q($T.mouse,function(r){P_(t,r,function(i){i=YR(i),t.touching||n[r].call(e,i)})}))}function Gve(e,t){Dt.pointerEventsSupported?Q(Qk.pointer,n):Dt.touchEventsSupported||Q(Qk.mouse,n);function n(r){function i(o){o=YR(o),e6(e,o.target)||(o=Vve(e,o),t.domHandlers[r].call(e,o))}P_(t,r,i,{capture:!0})}}function P_(e,t,n,r){e.mounted[t]=n,e.listenerOpts[t]=r,Tve(e.domTarget,t,n,r)}function VT(e){var t=e.mounted;for(var n in t)t.hasOwnProperty(n)&&Cve(e.domTarget,n,t[n],e.listenerOpts[n]);e.mounted={}}var tF=function(){function e(t,n){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=n}return e}(),zve=function(e){ot(t,e);function t(n,r){var i=e.call(this)||this;return i.__pointerCapturing=!1,i.dom=n,i.painterRoot=r,i._localHandlerScope=new tF(n,xa),FT&&(i._globalHandlerScope=new tF(document,pA)),Hve(i,i._localHandlerScope),i}return t.prototype.dispose=function(){VT(this._localHandlerScope),FT&&VT(this._globalHandlerScope)},t.prototype.setCursor=function(n){this.dom.style&&(this.dom.style.cursor=n||"default")},t.prototype.__togglePointerCapture=function(n){if(this.__mayPointerCapture=null,FT&&+this.__pointerCapturing^+n){this.__pointerCapturing=n;var r=this._globalHandlerScope;n?Gve(this,r):VT(r)}},t}(ys);/*! +* ZRender, a high performance 2d drawing library. +* +* Copyright (c) 2013, Baidu Inc. +* All rights reserved. +* +* LICENSE +* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt +*/var O_={},t6={};function Wve(e){delete t6[e]}function jve(e){if(!e)return!1;if(typeof e=="string")return T1(e,1)0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._disposed||(this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()==="canvas"&&this.painter.refreshHover())},e.prototype.resize=function(t){this._disposed||(t=t||{},this.painter.resize(t.width,t.height),this.handler.resize())},e.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},e.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},e.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this._disposed||this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,n){if(!this._disposed)return this.handler.findHover(t,n)},e.prototype.on=function(t,n,r){return this._disposed||this.handler.on(t,n,r),this},e.prototype.off=function(t,n){this._disposed||this.handler.off(t,n)},e.prototype.trigger=function(t,n){this._disposed||this.handler.trigger(t,n)},e.prototype.clear=function(){if(!this._disposed){for(var t=this.storage.getRoots(),n=0;n=0;l--)o[l]&&!Sg(o[l])?s=!0:(o[l]=null,!s&&a--);o.length=a,n[i]=o}}),delete n[iF],n},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(n){this._payload=n},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(n,r){var i=this._componentsMap.get(n);if(i){var o=i[r||0];if(o)return o;if(r==null){for(var a=0;a=t:n==="max"?e<=t:e===t}function sge(e,t){return e.join(",")===t.join(",")}var ma=Q,Ag=Ct,lF=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function UT(e){var t=e&&e.itemStyle;if(t)for(var n=0,r=lF.length;n=0;y--){var _=e[y];if(s||(v=_.data.rawIndexOf(_.stackedByDimension,h)),v>=0){var b=_.data.getByRawIndex(_.stackResultDimension,v);if(l==="all"||l==="positive"&&b>0||l==="negative"&&b<0||l==="samesign"&&d>=0&&b>0||l==="samesign"&&d<=0&&b<0){d=Vce(d,b),m=b;break}}}return r[0]=d,r[1]=m,r})})}var hs=function(){function e(){this.group=new pi,this.uid=pS("viewComponent")}return e.prototype.init=function(t,n){},e.prototype.render=function(t,n,r,i){},e.prototype.dispose=function(t,n){},e.prototype.updateView=function(t,n,r,i){},e.prototype.updateLayout=function(t,n,r,i){},e.prototype.updateVisual=function(t,n,r,i){},e.prototype.toggleBlurSeries=function(t,n,r){},e.prototype.eachRendered=function(t){var n=this.group;n&&n.traverse(t)},e}();sR(hs);Qb(hs);var hF=Ar(),pF={itemStyle:_g(ZU,!0),lineStyle:_g(KU,!0)},mge={lineStyle:"stroke",itemStyle:"fill"};function a6(e,t){var n=e.visualStyleMapper||pF[t];return n||(console.warn("Unknown style type '"+t+"'."),pF.itemStyle)}function s6(e,t){var n=e.visualDrawType||mge[t];return n||(console.warn("Unknown style type '"+t+"'."),"fill")}var yge={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var n=e.getData(),r=e.visualStyleAccessPath||"itemStyle",i=e.getModel(r),o=a6(e,r),a=o(i),s=i.getShallow("decal");s&&(n.setVisual("decal",s),s.dirty=!0);var l=s6(e,r),u=a[l],c=Vt(u)?u:null,f=a.fill==="auto"||a.stroke==="auto";if(!a[l]||c||f){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());a[l]||(a[l]=d,n.setVisual("colorFromPalette",!0)),a.fill=a.fill==="auto"||Vt(a.fill)?d:a.fill,a.stroke=a.stroke==="auto"||Vt(a.stroke)?d:a.stroke}if(n.setVisual("style",a),n.setVisual("drawType",l),!t.isSeriesFiltered(e)&&c)return n.setVisual("colorFromPalette",!1),{dataEach:function(h,v){var m=e.getDataParams(v),y=Ke({},a);y[l]=c(m),h.setItemVisual(v,"style",y)}}}},Tp=new sr,_ge={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var n=e.getData(),r=e.visualStyleAccessPath||"itemStyle",i=a6(e,r),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(a,s){var l=a.getRawDataItem(s);if(l&&l[r]){Tp.option=l[r];var u=i(Tp),c=a.ensureUniqueItemVisual(s,"style");Ke(c,u),Tp.option.decal&&(a.setItemVisual(s,"decal",Tp.option.decal),Tp.option.decal.dirty=!0),o in u&&a.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},bge={performRawSeries:!0,overallReset:function(e){var t=Kt();e.eachSeries(function(n){var r=n.getColorBy();if(!n.isColorBySeries()){var i=n.type+"-"+r,o=t.get(i);o||(o={},t.set(i,o)),hF(n).scope=o}}),e.eachSeries(function(n){if(!(n.isColorBySeries()||e.isSeriesFiltered(n))){var r=n.getRawData(),i={},o=n.getData(),a=hF(n).scope,s=n.visualStyleAccessPath||"itemStyle",l=s6(n,s);o.each(function(u){var c=o.getRawIndex(u);i[c]=u}),r.each(function(u){var c=i[u],f=o.getItemVisual(c,"colorFromPalette");if(f){var d=o.ensureUniqueItemVisual(c,"style"),h=r.getName(u)||u+"",v=r.count();d[l]=n.getColorFromPalette(h,a,v)}})}})}},l0=Math.PI;function Sge(e,t){t=t||{},En(t,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new pi,r=new zr({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});n.add(r);var i=new ao({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),o=new zr({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});n.add(o);var a;return t.showSpinner&&(a=new uS({shape:{startAngle:-l0/2,endAngle:-l0/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),a.animateShape(!0).when(1e3,{endAngle:l0*3/2}).start("circularInOut"),a.animateShape(!0).when(1e3,{startAngle:l0*3/2}).delay(300).start("circularInOut"),n.add(a)),n.resize=function(){var s=i.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),c=e.getHeight()/2;t.showSpinner&&a.setShape({cx:u,cy:c}),o.setShape({x:u-l,y:c-l,width:l*2,height:l*2}),r.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},n.resize(),n}var l6=function(){function e(t,n,r,i){this._stageTaskMap=Kt(),this.ecInstance=t,this.api=n,r=this._dataProcessorHandlers=r.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=r.concat(i)}return e.prototype.restoreData=function(t,n){t.restoreData(n),this._stageTaskMap.each(function(r){var i=r.overallTask;i&&i.dirty()})},e.prototype.getPerformArgs=function(t,n){if(t.__pipeline){var r=this._pipelineMap.get(t.__pipeline.id),i=r.context,o=!n&&r.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>r.blockIndex,a=o?r.step:null,s=i&&i.modDataCount,l=s!=null?Math.ceil(s/a):null;return{step:a,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,n){var r=this._pipelineMap.get(t.uid),i=t.getData(),o=i.count(),a=r.progressiveEnabled&&n.incrementalPrepareRender&&o>=r.threshold,s=t.get("large")&&o>=t.get("largeThreshold"),l=t.get("progressiveChunkMode")==="mod"?o:null;t.pipelineContext=r.context={progressiveRender:a,modDataCount:l,large:s}},e.prototype.restorePipelines=function(t){var n=this,r=n._pipelineMap=Kt();t.eachSeries(function(i){var o=i.getProgressive(),a=i.uid;r.set(a,{id:a,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:o&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(o||700),count:0}),n._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,n=this.api.getModel(),r=this.api;Q(this._allHandlers,function(i){var o=t.get(i.uid)||t.set(i.uid,{}),a="";pl(!(i.reset&&i.overallReset),a),i.reset&&this._createSeriesStageTask(i,o,n,r),i.overallReset&&this._createOverallStageTask(i,o,n,r)},this)},e.prototype.prepareView=function(t,n,r,i){var o=t.renderTask,a=o.context;a.model=n,a.ecModel=r,a.api=i,o.__block=!t.incrementalPrepareRender,this._pipe(n,o)},e.prototype.performDataProcessorTasks=function(t,n){this._performStageTasks(this._dataProcessorHandlers,t,n,{block:!0})},e.prototype.performVisualTasks=function(t,n,r){this._performStageTasks(this._visualHandlers,t,n,r)},e.prototype._performStageTasks=function(t,n,r,i){i=i||{};var o=!1,a=this;Q(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var c=a._stageTaskMap.get(l.uid),f=c.seriesTaskMap,d=c.overallTask;if(d){var h,v=d.agentStubMap;v.each(function(y){s(i,y)&&(y.dirty(),h=!0)}),h&&d.dirty(),a.updatePayload(d,r);var m=a.getPerformArgs(d,i.block);v.each(function(y){y.perform(m)}),d.perform(m)&&(o=!0)}else f&&f.each(function(y,_){s(i,y)&&y.dirty();var b=a.getPerformArgs(y,i.block);b.skip=!l.performRawSeries&&n.isSeriesFiltered(y.context.model),a.updatePayload(y,r),y.perform(b)&&(o=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=o||this.unfinished},e.prototype.performSeriesTasks=function(t){var n;t.eachSeries(function(r){n=r.dataTask.perform()||n}),this.unfinished=n||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var n=t.tail;do{if(n.__block){t.blockIndex=n.__idxInPipeline;break}n=n.getUpstream()}while(n)})},e.prototype.updatePayload=function(t,n){n!=="remain"&&(t.context.payload=n)},e.prototype._createSeriesStageTask=function(t,n,r,i){var o=this,a=n.seriesTaskMap,s=n.seriesTaskMap=Kt(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?r.eachRawSeries(c):l?r.eachRawSeriesByType(l,c):u&&u(r,i).each(c);function c(f){var d=f.uid,h=s.set(d,a&&a.get(d)||Lv({plan:Ege,reset:Age,count:Rge}));h.context={model:f,ecModel:r,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:o},o._pipe(f,h)}},e.prototype._createOverallStageTask=function(t,n,r,i){var o=this,a=n.overallTask=n.overallTask||Lv({reset:wge});a.context={ecModel:r,api:i,overallReset:t.overallReset,scheduler:o};var s=a.agentStubMap,l=a.agentStubMap=Kt(),u=t.seriesType,c=t.getTargetSeries,f=!0,d=!1,h="";pl(!t.createOnAllSeries,h),u?r.eachRawSeriesByType(u,v):c?c(r,i).each(v):(f=!1,Q(r.getSeries(),v));function v(m){var y=m.uid,_=l.set(y,s&&s.get(y)||(d=!0,Lv({reset:xge,onDirty:Cge})));_.context={model:m,overallProgress:f},_.agent=a,_.__block=f,o._pipe(m,_)}d&&a.dirty()},e.prototype._pipe=function(t,n){var r=t.uid,i=this._pipelineMap.get(r);!i.head&&(i.head=n),i.tail&&i.tail.pipe(n),i.tail=n,n.__idxInPipeline=i.count++,n.__pipeline=i},e.wrapStageHandler=function(t,n){return Vt(t)&&(t={overallReset:t,seriesType:Pge(t)}),t.uid=pS("stageHandler"),n&&(t.visualType=n),t},e}();function wge(e){e.overallReset(e.ecModel,e.api,e.payload)}function xge(e){return e.overallProgress&&Tge}function Tge(){this.agent.dirty(),this.getDownstream().dirty()}function Cge(){this.agent&&this.agent.dirty()}function Ege(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function Age(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=Ri(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?Rt(t,function(n,r){return u6(r)}):Ige}var Ige=u6(0);function u6(e){return function(t,n){var r=n.data,i=n.resetDefines[e];if(i&&i.dataEach)for(var o=t.start;o0&&h===u.length-d.length){var v=u.slice(0,h);v!=="data"&&(n.mainType=v,n[d.toLowerCase()]=l,c=!0)}}s.hasOwnProperty(u)&&(r[u]=l,c=!0),c||(i[u]=l)})}return{cptQuery:n,dataQuery:r,otherQuery:i}},e.prototype.filter=function(t,n){var r=this.eventInfo;if(!r)return!0;var i=r.targetEl,o=r.packedEvent,a=r.model,s=r.view;if(!a||!s)return!0;var l=n.cptQuery,u=n.dataQuery;return c(l,a,"mainType")&&c(l,a,"subType")&&c(l,a,"index","componentIndex")&&c(l,a,"name")&&c(l,a,"id")&&c(u,o,"name")&&c(u,o,"dataIndex")&&c(u,o,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,n.otherQuery,i,o));function c(f,d,h,v){return f[h]==null||d[v||h]===f[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),vA=["symbol","symbolSize","symbolRotate","symbolOffset"],yF=vA.concat(["symbolKeepAspect"]),Mge={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var n=e.getData();if(e.legendIcon&&n.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var r={},i={},o=!1,a=0;a=0&&Vc(l)?l:.5;var u=e.createRadialGradient(a,s,0,a,s,l);return u}function gA(e,t,n){for(var r=t.type==="radial"?Uge(e,t,n):Vge(e,t,n),i=t.colorStops,o=0;o0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:Zn(e)?[e]:lt(e)?e:null}function h6(e){var t=e.style,n=t.lineDash&&t.lineWidth>0&&Gge(t.lineDash,t.lineWidth),r=t.lineDashOffset;if(n){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(n=Rt(n,function(o){return o/i}),r/=i)}return[n,r]}var zge=new mf(!0);function V1(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function _F(e){return typeof e=="string"&&e!=="none"}function U1(e){var t=e.fill;return t!=null&&t!=="none"}function bF(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var n=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=n}else e.fill()}function SF(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var n=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=n}else e.stroke()}function mA(e,t,n){var r=tU(t.image,t.__image,n);if(eS(r)){var i=e.createPattern(r,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var o=new DOMMatrix;o.translateSelf(t.x||0,t.y||0),o.rotateSelf(0,0,(t.rotation||0)*nue),o.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(o)}return i}}function Wge(e,t,n,r){var i,o=V1(n),a=U1(n),s=n.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var c=t.path||zge,f=t.__dirty;if(!r){var d=n.fill,h=n.stroke,v=a&&!!d.colorStops,m=o&&!!h.colorStops,y=a&&!!d.image,_=o&&!!h.image,b=void 0,w=void 0,S=void 0,C=void 0,T=void 0;(v||m)&&(T=t.getBoundingRect()),v&&(b=f?gA(e,d,T):t.__canvasFillGradient,t.__canvasFillGradient=b),m&&(w=f?gA(e,h,T):t.__canvasStrokeGradient,t.__canvasStrokeGradient=w),y&&(S=f||!t.__canvasFillPattern?mA(e,d,t):t.__canvasFillPattern,t.__canvasFillPattern=S),_&&(C=f||!t.__canvasStrokePattern?mA(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=S),v?e.fillStyle=b:y&&(S?e.fillStyle=S:a=!1),m?e.strokeStyle=w:_&&(C?e.strokeStyle=C:o=!1)}var A=t.getGlobalScale();c.setScale(A[0],A[1],t.segmentIgnoreThreshold);var P,I;e.setLineDash&&n.lineDash&&(i=h6(t),P=i[0],I=i[1]);var R=!0;(u||f&bd)&&(c.setDPR(e.dpr),l?c.setContext(null):(c.setContext(e),R=!1),c.reset(),t.buildPath(c,t.shape,r),c.toStatic(),t.pathUpdated()),R&&c.rebuildPath(e,l?s:1),P&&(e.setLineDash(P),e.lineDashOffset=I),r||(n.strokeFirst?(o&&SF(e,n),a&&bF(e,n)):(a&&bF(e,n),o&&SF(e,n))),P&&e.setLineDash([])}function jge(e,t,n){var r=t.__image=tU(n.image,t.__image,t,t.onload);if(!(!r||!eS(r))){var i=n.x||0,o=n.y||0,a=t.getWidth(),s=t.getHeight(),l=r.width/r.height;if(a==null&&s!=null?a=s*l:s==null&&a!=null?s=a/l:a==null&&s==null&&(a=r.width,s=r.height),n.sWidth&&n.sHeight){var u=n.sx||0,c=n.sy||0;e.drawImage(r,u,c,n.sWidth,n.sHeight,i,o,a,s)}else if(n.sx&&n.sy){var u=n.sx,c=n.sy,f=a-u,d=s-c;e.drawImage(r,u,c,f,d,i,o,a,s)}else e.drawImage(r,i,o,a,s)}}function Yge(e,t,n){var r,i=n.text;if(i!=null&&(i+=""),i){e.font=n.font||pf,e.textAlign=n.textAlign,e.textBaseline=n.textBaseline;var o=void 0,a=void 0;e.setLineDash&&n.lineDash&&(r=h6(t),o=r[0],a=r[1]),o&&(e.setLineDash(o),e.lineDashOffset=a),n.strokeFirst?(V1(n)&&e.strokeText(i,n.x,n.y),U1(n)&&e.fillText(i,n.x,n.y)):(U1(n)&&e.fillText(i,n.x,n.y),V1(n)&&e.strokeText(i,n.x,n.y)),o&&e.setLineDash([])}}var wF=["shadowBlur","shadowOffsetX","shadowOffsetY"],xF=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function p6(e,t,n,r,i){var o=!1;if(!r&&(n=n||{},t===n))return!1;if(r||t.opacity!==n.opacity){Zi(e,i),o=!0;var a=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(a)?nf.opacity:a}(r||t.blend!==n.blend)&&(o||(Zi(e,i),o=!0),e.globalCompositeOperation=t.blend||nf.blend);for(var s=0;s0&&n.unfinished);n.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(n,r,i){if(!this[Zr]){if(this._disposed){this.id;return}var o,a,s;if(Ct(r)&&(i=r.lazyUpdate,o=r.silent,a=r.replaceMerge,s=r.transition,r=r.notMerge),this[Zr]=!0,!this._model||r){var l=new rge(this._api),u=this._theme,c=this._model=new XR;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(n,{replaceMerge:a},bA);var f={seriesTransition:s,optionChanged:!0};if(i)this[Bi]={silent:o,updateParams:f},this[Zr]=!1,this.getZr().wakeUp();else{try{ld(this),zl.update.call(this,null,f)}catch(d){throw this[Bi]=null,this[Zr]=!1,d}this._ssr||this._zr.flush(),this[Bi]=null,this[Zr]=!1,Cp.call(this,o),Ep.call(this,o)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Dt.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(n){return this.renderToCanvas(n)},t.prototype.renderToCanvas=function(n){n=n||{};var r=this._zr.painter;return r.getRenderedCanvas({backgroundColor:n.backgroundColor||this._model.get("backgroundColor"),pixelRatio:n.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(n){n=n||{};var r=this._zr.painter;return r.renderToString({useViewBox:n.useViewBox})},t.prototype.getSvgDataURL=function(){if(Dt.svgSupported){var n=this._zr,r=n.storage.getDisplayList();return Q(r,function(i){i.stopAnimation(null,!0)}),n.painter.toDataURL()}},t.prototype.getDataURL=function(n){if(this._disposed){this.id;return}n=n||{};var r=n.excludeComponents,i=this._model,o=[],a=this;Q(r,function(l){i.eachComponent({mainType:l},function(u){var c=a._componentsMap[u.__viewId];c.group.ignore||(o.push(c),c.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(n).toDataURL("image/"+(n&&n.type||"png"));return Q(o,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(n){if(this._disposed){this.id;return}var r=n.type==="svg",i=this.group,o=Math.min,a=Math.max,s=1/0;if($F[i]){var l=s,u=s,c=-s,f=-s,d=[],h=n&&n.pixelRatio||this.getDevicePixelRatio();Q(kv,function(w,S){if(w.group===i){var C=r?w.getZr().painter.getSvgDom().innerHTML:w.renderToCanvas(ln(n)),T=w.getDom().getBoundingClientRect();l=o(T.left,l),u=o(T.top,u),c=a(T.right,c),f=a(T.bottom,f),d.push({dom:C,left:T.left,top:T.top})}}),l*=h,u*=h,c*=h,f*=h;var v=c-l,m=f-u,y=Ch.createCanvas(),_=nF(y,{renderer:r?"svg":"canvas"});if(_.resize({width:v,height:m}),r){var b="";return Q(d,function(w){var S=w.left-l,C=w.top-u;b+=''+w.dom+""}),_.painter.getSvgRoot().innerHTML=b,n.connectedBackgroundColor&&_.painter.setBackgroundColor(n.connectedBackgroundColor),_.refreshImmediately(),_.painter.toDataURL()}else return n.connectedBackgroundColor&&_.add(new zr({shape:{x:0,y:0,width:v,height:m},style:{fill:n.connectedBackgroundColor}})),Q(d,function(w){var S=new Uu({style:{x:w.left*h-l,y:w.top*h-u,image:w.dom}});_.add(S)}),_.refreshImmediately(),y.toDataURL("image/"+(n&&n.type||"png"))}else return this.getDataURL(n)},t.prototype.convertToPixel=function(n,r){return YT(this,"convertToPixel",n,r)},t.prototype.convertFromPixel=function(n,r){return YT(this,"convertFromPixel",n,r)},t.prototype.containPixel=function(n,r){if(this._disposed){this.id;return}var i=this._model,o,a=dT(i,n);return Q(a,function(s,l){l.indexOf("Models")>=0&&Q(s,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)o=o||!!c.containPoint(r);else if(l==="seriesModels"){var f=this._chartsMap[u.__viewId];f&&f.containPoint&&(o=o||f.containPoint(r,u))}},this)},this),!!o},t.prototype.getVisual=function(n,r){var i=this._model,o=dT(i,n,{defaultMainType:"series"}),a=o.seriesModel,s=a.getData(),l=o.hasOwnProperty("dataIndexInside")?o.dataIndexInside:o.hasOwnProperty("dataIndex")?s.indexOfRawIndex(o.dataIndex):null;return l!=null?Nge(s,l,r):kge(s,r)},t.prototype.getViewOfComponentModel=function(n){return this._componentsMap[n.__viewId]},t.prototype.getViewOfSeriesModel=function(n){return this._chartsMap[n.__viewId]},t.prototype._initEvents=function(){var n=this;Q(yme,function(r){var i=function(o){var a=n.getModel(),s=o.target,l,u=r==="globalout";if(u?l={}:s&&qp(s,function(v){var m=Mn(v);if(m&&m.dataIndex!=null){var y=m.dataModel||a.getSeriesByIndex(m.seriesIndex);return l=y&&y.getDataParams(m.dataIndex,m.dataType,s)||{},!0}else if(m.eventData)return l=Ke({},m.eventData),!0},!0),l){var c=l.componentType,f=l.componentIndex;(c==="markLine"||c==="markPoint"||c==="markArea")&&(c="series",f=l.seriesIndex);var d=c&&f!=null&&a.getComponent(c,f),h=d&&n[d.mainType==="series"?"_chartsMap":"_componentsMap"][d.__viewId];l.event=o,l.type=r,n._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:d,view:h},n.trigger(r,l)}};i.zrEventfulCallAtLast=!0,n._zr.on(r,i,n)}),Q(Nv,function(r,i){n._messageCenter.on(i,function(o){this.trigger(i,o)},n)}),Q(["selectchanged"],function(r){n._messageCenter.on(r,function(i){this.trigger(r,i)},n)}),mve(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var n=this.getDom();n&&EU(this.getDom(),qR,"");var r=this,i=r._api,o=r._model;Q(r._componentsViews,function(a){a.dispose(o,i)}),Q(r._chartsViews,function(a){a.dispose(o,i)}),r._zr.dispose(),r._dom=r._model=r._chartsMap=r._componentsMap=r._chartsViews=r._componentsViews=r._scheduler=r._api=r._zr=r._throttledZrFlush=r._theme=r._coordSysMgr=r._messageCenter=null,delete kv[r.id]},t.prototype.resize=function(n){if(!this[Zr]){if(this._disposed){this.id;return}this._zr.resize(n);var r=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!r){var i=r.resetOption("media"),o=n&&n.silent;this[Bi]&&(o==null&&(o=this[Bi].silent),i=!0,this[Bi]=null),this[Zr]=!0;try{i&&ld(this),zl.update.call(this,{type:"resize",animation:Ke({duration:0},n&&n.animation)})}catch(a){throw this[Zr]=!1,a}this[Zr]=!1,Cp.call(this,o),Ep.call(this,o)}}},t.prototype.showLoading=function(n,r){if(this._disposed){this.id;return}if(Ct(n)&&(r=n,n=""),n=n||"default",this.hideLoading(),!!SA[n]){var i=SA[n](this._api,r),o=this._zr;this._loadingFX=i,o.add(i)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(n){var r=Ke({},n);return r.type=Nv[n.type],r},t.prototype.dispatchAction=function(n,r){if(this._disposed){this.id;return}if(Ct(r)||(r={silent:!!r}),!!H1[n.type]&&this._model){if(this[Zr]){this._pendingActions.push(n);return}var i=r.silent;KT.call(this,n,i);var o=r.flush;o?this._zr.flush():o!==!1&&Dt.browser.weChat&&this._throttledZrFlush(),Cp.call(this,i),Ep.call(this,i)}},t.prototype.updateLabelLayout=function(){Ta.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(n){if(this._disposed){this.id;return}var r=n.seriesIndex,i=this.getModel(),o=i.getSeriesByIndex(r);o.appendData(n),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){ld=function(f){var d=f._scheduler;d.restorePipelines(f._model),d.prepareStageTasks(),jT(f,!0),jT(f,!1),d.plan()},jT=function(f,d){for(var h=f._model,v=f._scheduler,m=d?f._componentsViews:f._chartsViews,y=d?f._componentsMap:f._chartsMap,_=f._zr,b=f._api,w=0;wd.get("hoverLayerThreshold")&&!Dt.node&&!Dt.worker&&d.eachSeries(function(y){if(!y.preventUsingHoverLayer){var _=f._chartsMap[y.__viewId];_.__alive&&_.eachRendered(function(b){b.states.emphasis&&(b.states.emphasis.hoverLayer=!0)})}})}function a(f,d){var h=f.get("blendMode")||null;d.eachRendered(function(v){v.isGroup||(v.style.blend=h)})}function s(f,d){if(!f.preventAutoZ){var h=f.get("z")||0,v=f.get("zlevel")||0;d.eachRendered(function(m){return l(m,h,v,-1/0),!0})}}function l(f,d,h,v){var m=f.getTextContent(),y=f.getTextGuideLine(),_=f.isGroup;if(_)for(var b=f.childrenRef(),w=0;w0?{duration:m,delay:h.get("delay"),easing:h.get("easing")}:null;d.eachRendered(function(_){if(_.states&&_.states.emphasis){if(Ov(_))return;if(_ instanceof Ln&&Cfe(_),_.__dirty){var b=_.prevStates;b&&_.useStates(b)}if(v){_.stateTransition=y;var w=_.getTextContent(),S=_.getTextGuideLine();w&&(w.stateTransition=y),S&&(S.stateTransition=y)}_.__dirty&&i(_)}})}kF=function(f){return new(function(d){ot(h,d);function h(){return d!==null&&d.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return f._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(v){for(;v;){var m=v.__ecComponentInfo;if(m!=null)return f._model.getComponent(m.mainType,m.index);v=v.parent}},h.prototype.enterEmphasis=function(v,m){R1(v,m),Uo(f)},h.prototype.leaveEmphasis=function(v,m){P1(v,m),Uo(f)},h.prototype.enterBlur=function(v){vfe(v),Uo(f)},h.prototype.leaveBlur=function(v){OU(v),Uo(f)},h.prototype.enterSelect=function(v){DU(v),Uo(f)},h.prototype.leaveSelect=function(v){MU(v),Uo(f)},h.prototype.getModel=function(){return f.getModel()},h.prototype.getViewOfComponentModel=function(v){return f.getViewOfComponentModel(v)},h.prototype.getViewOfSeriesModel=function(v){return f.getViewOfSeriesModel(v)},h}(r6))(f)},R6=function(f){function d(h,v){for(var m=0;m=0)){BF.push(n);var o=l6.wrapStageHandler(n,i);o.__prio=t,o.__raw=n,e.push(o)}}function N6(e,t){SA[e]=t}function Eme(e,t,n){var r=rme("registerMap");r&&r(e,t,n)}var Ame=Jhe;If(KR,yge);If(wS,_ge);If(wS,bge);If(KR,Mge);If(wS,Lge);If(x6,tme);M6(o6);L6(ame,vge);N6("default",Sge);Rh({type:rf,event:rf,update:rf},eo);Rh({type:x_,event:x_,update:x_},eo);Rh({type:Iv,event:Iv,update:Iv},eo);Rh({type:T_,event:T_,update:T_},eo);Rh({type:Rv,event:Rv,update:Rv},eo);D6("light",Oge);D6("dark",d6);var VF=[],Ime={registerPreprocessor:M6,registerProcessor:L6,registerPostInit:wme,registerPostUpdate:xme,registerUpdateLifecycle:JR,registerAction:Rh,registerCoordinateSystem:Tme,registerLayout:Cme,registerVisual:If,registerTransform:Ame,registerLoading:N6,registerMap:Eme,registerImpl:nme,PRIORITY:vme,ComponentModel:An,ComponentView:hs,SeriesModel:Pu,ChartView:os,registerComponentModel:function(e){An.registerClass(e)},registerComponentView:function(e){hs.registerClass(e)},registerSeriesModel:function(e){Pu.registerClass(e)},registerChartView:function(e){os.registerClass(e)},registerSubTypeDefaulter:function(e,t){An.registerSubTypeDefaulter(e,t)},registerPainter:function(e,t){Xve(e,t)}};function Ou(e){if(lt(e)){Q(e,function(t){Ou(t)});return}In(VF,e)>=0||(VF.push(e),Vt(e)&&(e={install:e}),e.install(Ime))}var Rme=function(e){ot(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},t}(An),Pme=function(){function e(){}return e.prototype.getNeedCrossZero=function(){var t=this.option;return!t.scale},e.prototype.getCoordSysModel=function(){},e}(),wA=function(e){ot(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Pa).models[0]},t.type="cartesian2dAxis",t}(An);ms(wA,Pme);var k6={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,showMinLine:!0,showMaxLine:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},Ome=_n({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},k6),eP=_n({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},k6),Dme=_n({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},eP),Mme=En({logBase:10},eP);const Lme={category:Ome,value:eP,time:Dme,log:Mme};var Nme=0,xA=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++Nme}return e.createByAxisModel=function(t){var n=t.option,r=n.data,i=r&&Rt(r,kme);return new e({categories:i,needCollect:!i,deduplication:n.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var n,r=this._needCollect;if(!dt(t)&&!r)return t;if(r&&!this._deduplication)return n=this.categories.length,this.categories[n]=t,n;var i=this._getOrCreateMap();return n=i.get(t),n==null&&(r?(n=this.categories.length,this.categories[n]=t,i.set(t,n)):n=NaN),n},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Kt(this.categories))},e}();function kme(e){return Ct(e)&&e.value!=null?e.value:e+""}var Fme={value:1,category:1,time:1,log:1};function UF(e,t,n,r){Q(Fme,function(i,o){var a=_n(_n({},Lme[o],!0),r,!0),s=function(l){ot(u,l);function u(){var c=l!==null&&l.apply(this,arguments)||this;return c.type=t+"Axis."+o,c}return u.prototype.mergeDefaultAndTheme=function(c,f){var d=Cg(this),h=d?SS(c):{},v=f.getTheme();_n(c,v.get(o+"Axis")),_n(c,this.getDefaultOption()),c.type=HF(c),d&&sh(c,h,d)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=xA.createByAxisModel(this))},u.prototype.getCategories=function(c){var f=this.option;if(f.type==="category")return c?f.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+"Axis."+o,u.defaultOption=a,u}(n);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",HF)}function HF(e){return e.type||(e.data?"category":"value")}var bs=function(){function e(t){this._setting=t||{},this._extent=[1/0,-1/0]}return e.prototype.getSetting=function(t){return this._setting[t]},e.prototype.unionExtent=function(t){var n=this._extent;t[0]n[1]&&(n[1]=t[1])},e.prototype.unionExtentFromData=function(t,n){this.unionExtent(t.getApproximateExtent(n))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,n){var r=this._extent;isNaN(t)||(r[0]=t),isNaN(n)||(r[1]=n)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();Qb(bs);function TA(e){return e.type==="interval"||e.type==="log"}function $me(e,t,n,r){var i={},o=e[1]-e[0],a=i.interval=SU(o/t);n!=null&&ar&&(a=i.interval=r);var s=i.intervalPrecision=F6(a),l=i.niceTickExtent=[_r(Math.ceil(e[0]/a)*a,s),_r(Math.floor(e[1]/a)*a,s)];return Bme(l,e),i}function qT(e){var t=Math.pow(10,vR(e)),n=e/t;return n?n===2?n=3:n===3?n=5:n*=2:n=1,_r(n*t)}function F6(e){return Js(e)+2}function GF(e,t,n){e[t]=Math.max(Math.min(e[t],n[1]),n[0])}function Bme(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),GF(e,0,t),GF(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function xS(e,t){return e>=t[0]&&e<=t[1]}function TS(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function CS(e,t){return e*(t[1]-t[0])+t[0]}var tP=function(e){ot(t,e);function t(n){var r=e.call(this,n)||this;r.type="ordinal";var i=r.getSetting("ordinalMeta");return i||(i=new xA({})),lt(i)&&(i=new xA({categories:Rt(i,function(o){return Ct(o)?o.value:o})})),r._ordinalMeta=i,r._extent=r.getSetting("extent")||[0,i.categories.length-1],r}return t.prototype.parse=function(n){return n==null?NaN:dt(n)?this._ordinalMeta.getOrdinal(n):Math.round(n)},t.prototype.contain=function(n){return n=this.parse(n),xS(n,this._extent)&&this._ordinalMeta.categories[n]!=null},t.prototype.normalize=function(n){return n=this._getTickNumber(this.parse(n)),TS(n,this._extent)},t.prototype.scale=function(n){return n=Math.round(CS(n,this._extent)),this.getRawOrdinalNumber(n)},t.prototype.getTicks=function(){for(var n=[],r=this._extent,i=r[0];i<=r[1];)n.push({value:i}),i++;return n},t.prototype.getMinorTicks=function(n){},t.prototype.setSortInfo=function(n){if(n==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var r=n.ordinalNumbers,i=this._ordinalNumbersByTick=[],o=this._ticksByOrdinalNumber=[],a=0,s=this._ordinalMeta.categories.length,l=Math.min(s,r.length);a=0&&n=0&&n=n},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type="ordinal",t}(bs);bs.registerClass(tP);var Sc=_r,Ph=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type="interval",n._interval=0,n._intervalPrecision=2,n}return t.prototype.parse=function(n){return n},t.prototype.contain=function(n){return xS(n,this._extent)},t.prototype.normalize=function(n){return TS(n,this._extent)},t.prototype.scale=function(n){return CS(n,this._extent)},t.prototype.setExtent=function(n,r){var i=this._extent;isNaN(n)||(i[0]=parseFloat(n)),isNaN(r)||(i[1]=parseFloat(r))},t.prototype.unionExtent=function(n){var r=this._extent;n[0]r[1]&&(r[1]=n[1]),this.setExtent(r[0],r[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(n){this._interval=n,this._niceExtent=this._extent.slice(),this._intervalPrecision=F6(n)},t.prototype.getTicks=function(n){var r=this._interval,i=this._extent,o=this._niceExtent,a=this._intervalPrecision,s=[];if(!r)return s;var l=1e4;i[0]l)return[];var c=s.length?s[s.length-1].value:o[1];return i[1]>c&&(n?s.push({value:Sc(c+r,a)}):s.push({value:i[1]})),s},t.prototype.getMinorTicks=function(n){for(var r=this.getTicks(!0),i=[],o=this.getExtent(),a=1;ao[0]&&h>>1;e[i][1]i&&(this._approxInterval=i);var s=p0.length,l=Math.min(Vme(p0,this._approxInterval,0,s),s-1);this._interval=p0[l][1],this._minLevelUnit=p0[Math.max(l-1,0)][0]},t.prototype.parse=function(n){return Zn(n)?n:+vl(n)},t.prototype.contain=function(n){return xS(this.parse(n),this._extent)},t.prototype.normalize=function(n){return TS(this.parse(n),this._extent)},t.prototype.scale=function(n){return CS(n,this._extent)},t.type="time",t}(Ph),p0=[["second",VR],["minute",UR],["hour",Dv],["quarter-day",Dv*6],["half-day",Dv*12],["day",Qo*1.2],["half-week",Qo*3.5],["week",Qo*7],["month",Qo*31],["quarter",Qo*95],["half-year",Tk/2],["year",Tk]];function Ume(e,t,n,r){var i=vl(t),o=vl(n),a=function(v){return Ek(i,v,r)===Ek(o,v,r)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},c=function(){return u()&&a("hour")},f=function(){return c()&&a("minute")},d=function(){return f()&&a("second")},h=function(){return d()&&a("millisecond")};switch(e){case"year":return s();case"month":return l();case"day":return u();case"hour":return c();case"minute":return f();case"second":return d();case"millisecond":return h()}}function Hme(e,t){return e/=Qo,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function Gme(e){var t=30*Qo;return e/=t,e>6?6:e>3?3:e>2?2:1}function zme(e){return e/=Dv,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function zF(e,t){return e/=t?UR:VR,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function Wme(e){return SU(e)}function jme(e,t,n){var r=new Date(e);switch(Wd(t)){case"year":case"month":r[SH(n)](0);case"day":r[wH(n)](1);case"hour":r[xH(n)](0);case"minute":r[TH(n)](0);case"second":r[CH(n)](0),r[EH(n)](0)}return r.getTime()}function Yme(e,t,n,r){var i=1e4,o=_H,a=0;function s(R,O,M,$,F,z,B){for(var Y=new Date(O),j=O,se=Y[$]();j1&&z===0&&M.unshift({value:M[0].value-j})}}for(var z=0;z<$.length;z++)M.push($[z]);return $}}for(var u=[],c=[],f=0,d=0,h=0;h=r[0]&&b<=r[1]&&f++)}var w=(r[1]-r[0])/t;if(f>w*1.5&&d>w/1.5||(u.push(y),f>w||e===o[h]))break}c=[]}}}for(var S=Ur(Rt(u,function(R){return Ur(R,function(O){return O.value>=r[0]&&O.value<=r[1]&&!O.notAdd})}),function(R){return R.length>0}),C=[],T=S.length-1,h=0;h0;)o*=10;var s=[_r(Zme(r[0]/o)*o),_r(Kme(r[1]/o)*o)];this._interval=o,this._niceExtent=s}},t.prototype.calcNiceExtent=function(n){Fv.calcNiceExtent.call(this,n),this._fixMin=n.fixMin,this._fixMax=n.fixMax},t.prototype.parse=function(n){return n},t.prototype.contain=function(n){return n=ya(n)/ya(this.base),xS(n,this._extent)},t.prototype.normalize=function(n){return n=ya(n)/ya(this.base),TS(n,this._extent)},t.prototype.scale=function(n){return n=CS(n,this._extent),v0(this.base,n)},t.type="log",t}(bs),B6=nP.prototype;B6.getMinorTicks=Fv.getMinorTicks;B6.getLabel=Fv.getLabel;function g0(e,t){return Xme(e,Js(t))}bs.registerClass(nP);var qme=function(){function e(t,n,r){this._prepareParams(t,n,r)}return e.prototype._prepareParams=function(t,n,r){r[1]0&&l>0&&!u&&(s=0),s<0&&l<0&&!c&&(l=0));var d=this._determinedMin,h=this._determinedMax;return d!=null&&(s=d,u=!0),h!=null&&(l=h,c=!0),{min:s,max:l,minFixed:u,maxFixed:c,isBlank:f}},e.prototype.modifyDataMinMax=function(t,n){this[Qme[t]]=n},e.prototype.setDeterminedMinMax=function(t,n){var r=Jme[t];this[r]=n},e.prototype.freeze=function(){this.frozen=!0},e}(),Jme={min:"_determinedMin",max:"_determinedMax"},Qme={min:"_dataMin",max:"_dataMax"};function eye(e,t,n){var r=e.rawExtentInfo;return r||(r=new qme(e,t,n),e.rawExtentInfo=r,r)}function m0(e,t){return t==null?null:_1(t)?NaN:e.parse(t)}function V6(e,t){var n=e.type,r=eye(e,t,e.getExtent()).calculate();e.setBlank(r.isBlank);var i=r.min,o=r.max,a=t.ecModel;if(a&&n==="time"){var s=cve("bar",a),l=!1;if(Q(s,function(f){l=l||f.getBaseAxis()===t.axis}),l){var u=dve(s),c=tye(i,o,t,u);i=c.min,o=c.max}}return{extent:[i,o],fixMin:r.minFixed,fixMax:r.maxFixed}}function tye(e,t,n,r){var i=n.axis.getExtent(),o=Math.abs(i[1]-i[0]),a=pve(r,n.axis);if(a===void 0)return{min:e,max:t};var s=1/0;Q(a,function(h){s=Math.min(h.offset,s)});var l=-1/0;Q(a,function(h){l=Math.max(h.offset+h.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,c=t-e,f=1-(s+l)/o,d=c/f-c;return t+=d*(l/u),e-=d*(s/u),{min:e,max:t}}function jF(e,t){var n=t,r=V6(e,n),i=r.extent,o=n.get("splitNumber");e instanceof nP&&(e.base=n.get("logBase"));var a=e.type,s=n.get("interval"),l=a==="interval"||a==="time";e.setExtent(i[0],i[1]),e.calcNiceExtent({splitNumber:o,fixMin:r.fixMin,fixMax:r.fixMax,minInterval:l?n.get("minInterval"):null,maxInterval:l?n.get("maxInterval"):null}),s!=null&&e.setInterval&&e.setInterval(s)}function nye(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new tP({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new $6({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(bs.getClass(t)||Ph)}}function rye(e){var t=e.scale.getExtent(),n=t[0],r=t[1];return!(n>0&&r>0||n<0&&r<0)}function Oh(e){var t=e.getLabelModel().get("formatter"),n=e.type==="category"?e.scale.getExtent()[0]:null;return e.scale.type==="time"?function(r){return function(i,o){return e.scale.getFormattedLabel(i,o,r)}}(t):dt(t)?function(r){return function(i){var o=e.scale.getLabel(i),a=r.replace("{value}",o??"");return a}}(t):Vt(t)?function(r){return function(i,o){return n!=null&&(o=i.value-n),r(rP(e,i),o,i.level!=null?{level:i.level}:null)}}(t):function(r){return e.scale.getLabel(r)}}function rP(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function iye(e){var t=e.model,n=e.scale;if(!(!t.get(["axisLabel","show"])||n.isBlank())){var r,i,o=n.getExtent();n instanceof tP?i=n.count():(r=n.getTicks(),i=r.length);var a=e.getLabelModel(),s=Oh(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var c=0;c0&&(n.sort(),n.unshift(n[0]),n.push(n[n.length-1])),n}function uye(e){var t=e.getLabelModel().get("customValues");if(t){var n=Oh(e),r=e.scale.getExtent(),i=H6(e,t),o=Ur(i,function(a){return a>=r[0]&&a<=r[1]});return{labels:Rt(o,function(a){var s={value:a};return{formattedLabel:n(s),rawLabel:e.scale.getLabel(s),tickValue:a}})}}return e.type==="category"?fye(e):hye(e)}function cye(e,t){var n=e.getTickModel().get("customValues");if(n){var r=e.scale.getExtent(),i=H6(e,n);return{ticks:Ur(i,function(o){return o>=r[0]&&o<=r[1]})}}return e.type==="category"?dye(e,t):{ticks:Rt(e.scale.getTicks(),function(o){return o.value})}}function fye(e){var t=e.getLabelModel(),n=G6(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}function G6(e,t){var n=z6(e,"labels"),r=iP(t),i=W6(n,r);if(i)return i;var o,a;return Vt(r)?o=X6(e,r):(a=r==="auto"?pye(e):r,o=Y6(e,a)),j6(n,r,{labels:o,labelCategoryInterval:a})}function dye(e,t){var n=z6(e,"ticks"),r=iP(t),i=W6(n,r);if(i)return i;var o,a;if((!t.get("show")||e.scale.isBlank())&&(o=[]),Vt(r))o=X6(e,r,!0);else if(r==="auto"){var s=G6(e,e.getLabelModel());a=s.labelCategoryInterval,o=Rt(s.labels,function(l){return l.tickValue})}else a=r,o=Y6(e,a,!0);return j6(n,r,{ticks:o,tickCategoryInterval:a})}function hye(e){var t=e.scale.getTicks(),n=Oh(e);return{labels:Rt(t,function(r,i){return{level:r.level,formattedLabel:n(r,i),rawLabel:e.scale.getLabel(r),tickValue:r.value}})}}function z6(e,t){return Pg(e)[t]||(Pg(e)[t]=[])}function W6(e,t){for(var n=0;n40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=e.dataToCoord(l+1)-e.dataToCoord(l),c=Math.abs(u*Math.cos(r)),f=Math.abs(u*Math.sin(r)),d=0,h=0;l<=o[1];l+=s){var v=0,m=0,y=fR(n({value:l}),t.font,"center","top");v=y.width*1.3,m=y.height*1.3,d=Math.max(d,v,7),h=Math.max(h,m,7)}var _=d/c,b=h/f;isNaN(_)&&(_=1/0),isNaN(b)&&(b=1/0);var w=Math.max(0,Math.floor(Math.min(_,b))),S=Pg(e.model),C=e.getExtent(),T=S.lastAutoInterval,A=S.lastTickCount;return T!=null&&A!=null&&Math.abs(T-w)<=1&&Math.abs(A-a)<=1&&T>w&&S.axisExtent0===C[0]&&S.axisExtent1===C[1]?w=T:(S.lastTickCount=a,S.lastAutoInterval=w,S.axisExtent0=C[0],S.axisExtent1=C[1]),w}function gye(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function Y6(e,t,n){var r=Oh(e),i=e.scale,o=i.getExtent(),a=e.getLabelModel(),s=[],l=Math.max((t||0)+1,1),u=o[0],c=i.count();u!==0&&l>1&&c/l>2&&(u=Math.round(Math.ceil(u/l)*l));var f=U6(e),d=a.get("showMinLabel")||f,h=a.get("showMaxLabel")||f;d&&u!==o[0]&&m(o[0]);for(var v=u;v<=o[1];v+=l)m(v);h&&v-l!==o[1]&&m(o[1]);function m(y){var _={value:y};s.push(n?y:{formattedLabel:r(_),rawLabel:i.getLabel(_),tickValue:y})}return s}function X6(e,t,n){var r=e.scale,i=Oh(e),o=[];return Q(r.getTicks(),function(a){var s=r.getLabel(a),l=a.value;t(a.value,s)&&o.push(n?l:{formattedLabel:i(a),rawLabel:s,tickValue:l})}),o}var XF=[0,1],mye=function(){function e(t,n,r){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=n,this._extent=r||[0,0]}return e.prototype.contain=function(t){var n=this._extent,r=Math.min(n[0],n[1]),i=Math.max(n[0],n[1]);return t>=r&&t<=i},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return Bce(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,n){var r=this._extent;r[0]=t,r[1]=n},e.prototype.dataToCoord=function(t,n){var r=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&i.type==="ordinal"&&(r=r.slice(),KF(r,i.count())),LN(t,XF,r,n)},e.prototype.coordToData=function(t,n){var r=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(r=r.slice(),KF(r,i.count()));var o=LN(t,r,XF,n);return this.scale.scale(o)},e.prototype.pointToData=function(t,n){},e.prototype.getTicksCoords=function(t){t=t||{};var n=t.tickModel||this.getTickModel(),r=cye(this,n),i=r.ticks,o=Rt(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),a=n.get("alignWithLabel");return yye(this,o,a,t.clamp),o},e.prototype.getMinorTicksCoords=function(){if(this.scale.type==="ordinal")return[];var t=this.model.getModel("minorTick"),n=t.get("splitNumber");n>0&&n<100||(n=5);var r=this.scale.getMinorTicks(n),i=Rt(r,function(o){return Rt(o,function(a){return{coord:this.dataToCoord(a),tickValue:a}},this)},this);return i},e.prototype.getViewLabels=function(){return uye(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){var t=this._extent,n=this.scale.getExtent(),r=n[1]-n[0]+(this.onBand?1:0);r===0&&(r=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/r},e.prototype.calculateCategoryInterval=function(){return vye(this)},e}();function KF(e,t){var n=e[1]-e[0],r=t,i=n/r/2;e[0]+=i,e[1]-=i}function yye(e,t,n,r){var i=t.length;if(!e.onBand||n||!i)return;var o=e.getExtent(),a,s;if(i===1)t[0].coord=o[0],a=t[1]={coord:o[1],tickValue:t[0].tickValue};else{var l=t[i-1].tickValue-t[0].tickValue,u=(t[i-1].coord-t[0].coord)/l;Q(t,function(h){h.coord-=u/2});var c=e.scale.getExtent();s=1+c[1]-t[i-1].tickValue,a={coord:t[i-1].coord+u*s,tickValue:c[1]+1},t.push(a)}var f=o[0]>o[1];d(t[0].coord,o[0])&&(r?t[0].coord=o[0]:t.shift()),r&&d(o[0],t[0].coord)&&t.unshift({coord:o[0]}),d(o[1],a.coord)&&(r?a.coord=o[1]:t.pop()),r&&d(a.coord,o[1])&&t.push({coord:o[1]});function d(h,v){return h=_r(h),v=_r(v),f?h>v:hr[1]&&r.reverse(),r},t.prototype.pointToData=function(n,r){return this.coordToData(this.toLocalCoord(n[this.dim==="x"?0:1]),r)},t.prototype.setCategorySortInfo=function(n){if(this.type!=="category")return!1;this.model.option.categorySortInfo=n,this.scale.setSortInfo(n)},t}(mye);function EA(e,t,n){n=n||{};var r=e.coordinateSystem,i=t.axis,o={},a=i.getAxesOnZeroOf()[0],s=i.position,l=a?"onZero":s,u=i.dim,c=r.getRect(),f=[c.x,c.x+c.width,c.y,c.y+c.height],d={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,v=u==="x"?[f[2]-h,f[3]+h]:[f[0]-h,f[1]+h];if(a){var m=a.toGlobalCoord(a.dataToCoord(0));v[d.onZero]=Math.max(Math.min(m,v[1]),v[0])}o.position=[u==="y"?v[d[l]]:f[0],u==="x"?v[d[l]]:f[3]],o.rotation=Math.PI/2*(u==="x"?0:1);var y={top:-1,bottom:1,left:-1,right:1};o.labelDirection=o.tickDirection=o.nameDirection=y[s],o.labelOffset=a?v[d[s]]-v[d.onZero]:0,t.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),yg(n.labelInside,t.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var _=t.get(["axisLabel","rotate"]);return o.labelRotate=l==="top"?-_:_,o.z2=1,o}function ZF(e){return e.get("coordinateSystem")==="cartesian2d"}function qF(e){var t={xAxisModel:null,yAxisModel:null};return Q(t,function(n,r){var i=r.replace(/Model$/,""),o=e.getReferringComponents(i,Pa).models[0];t[r]=o}),t}var JT=Math.log;function bye(e,t,n){var r=Ph.prototype,i=r.getTicks.call(n),o=r.getTicks.call(n,!0),a=i.length-1,s=r.getInterval.call(n),l=V6(e,t),u=l.extent,c=l.fixMin,f=l.fixMax;if(e.type==="log"){var d=JT(e.base);u=[JT(u[0])/d,JT(u[1])/d]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:a,fixMin:c,fixMax:f});var h=r.getExtent.call(e);c&&(u[0]=h[0]),f&&(u[1]=h[1]);var v=r.getInterval.call(e),m=u[0],y=u[1];if(c&&f)v=(y-m)/a;else if(c)for(y=u[0]+v*a;yu[0]&&isFinite(m)&&isFinite(u[0]);)v=qT(v),m=u[1]-v*a;else{var _=e.getTicks().length-1;_>a&&(v=qT(v));var b=v*a;y=Math.ceil(u[1]/v)*v,m=_r(y-b),m<0&&u[0]>=0?(m=0,y=_r(b)):y>0&&u[1]<=0&&(y=0,m=-_r(b))}var w=(i[0].value-o[0].value)/s,S=(i[a].value-o[a].value)/s;r.setExtent.call(e,m+v*w,y+v*S),r.setInterval.call(e,v),(w||S)&&r.setNiceExtent.call(e,m+v,y-v)}var Sye=function(){function e(t,n,r){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=CA,this._initCartesian(t,n,r),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,n){var r=this._axesMap;this._updateScale(t,this.model);function i(a){var s,l=Kn(a),u=l.length;if(u){for(var c=[],f=u-1;f>=0;f--){var d=+l[f],h=a[d],v=h.model,m=h.scale;TA(m)&&v.get("alignTicks")&&v.get("interval")==null?c.push(h):(jF(m,v),TA(m)&&(s=h))}c.length&&(s||(s=c.pop(),jF(s.scale,s.model)),Q(c,function(y){bye(y.scale,y.model,s.scale)}))}}i(r.x),i(r.y);var o={};Q(r.x,function(a){JF(r,"y",a,o)}),Q(r.y,function(a){JF(r,"x",a,o)}),this.resize(this.model,n)},e.prototype.resize=function(t,n,r){var i=t.getBoxLayoutParams(),o=!r&&t.get("containLabel"),a=k1(i,{width:n.getWidth(),height:n.getHeight()});this._rect=a;var s=this._axesList;l(),o&&(Q(s,function(u){if(!u.model.get(["axisLabel","inside"])){var c=iye(u);if(c){var f=u.isHorizontal()?"height":"width",d=u.model.get(["axisLabel","margin"]);a[f]-=c[f]+d,u.position==="top"?a.y+=c.height+d:u.position==="left"&&(a.x+=c.width+d)}}}),l()),Q(this._coordsList,function(u){u.calcAffineTransform()});function l(){Q(s,function(u){var c=u.isHorizontal(),f=c?[0,a.width]:[0,a.height],d=u.inverse?1:0;u.setExtent(f[d],f[1-d]),wye(u,c?a.x:a.y)})}},e.prototype.getAxis=function(t,n){var r=this._axesMap[t];if(r!=null)return r[n||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,n){if(t!=null&&n!=null){var r="x"+t+"y"+n;return this._coordsMap[r]}Ct(t)&&(n=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,o=this._coordsList;i0?"top":"bottom",o="center"):A1(i-fu)?(a=r>0?"bottom":"top",o="center"):(a="middle",i>0&&i0?"right":"left":o=r>0?"left":"right"),{rotation:i,textAlign:o,textVerticalAlign:a}},e.makeAxisEventDataBase=function(t){var n={componentType:t.mainType,componentIndex:t.componentIndex};return n[t.mainType+"Index"]=t.componentIndex,n},e.isLabelSilent=function(t){var n=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||n&&n.show)},e}(),e3={axisLine:function(e,t,n,r){var i=t.get(["axisLine","show"]);if(i==="auto"&&e.handleAutoShown&&(i=e.handleAutoShown("axisLine")),!!i){var o=t.axis.getExtent(),a=r.transform,s=[o[0],0],l=[o[1],0],u=s[0]>l[0];a&&(na(s,s,a),na(l,l,a));var c=Ke({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),f=new Iu({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});wg(f.shape,f.style.lineWidth),f.anid="line",n.add(f);var d=t.get(["axisLine","symbol"]);if(d!=null){var h=t.get(["axisLine","symbolSize"]);dt(d)&&(d=[d,d]),(dt(h)||Zn(h))&&(h=[h,h]);var v=FH(t.get(["axisLine","symbolOffset"])||0,h),m=h[0],y=h[1];Q([{rotate:e.rotation+Math.PI/2,offset:v[0],r:0},{rotate:e.rotation-Math.PI/2,offset:v[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(_,b){if(d[b]!=="none"&&d[b]!=null){var w=lh(d[b],-m/2,-y/2,m,y,c.stroke,!0),S=_.r+_.offset,C=u?l:s;w.attr({rotation:_.rotate,x:C[0]+S*Math.cos(e.rotation),y:C[1]-S*Math.sin(e.rotation),silent:!0,z2:11}),n.add(w)}})}}},axisTickLabel:function(e,t,n,r){var i=Cye(n,r,t,e),o=Aye(n,r,t,e);if(Tye(t,o,i),Eye(n,r,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var a=yve(Rt(o,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));_ve(a)}},axisName:function(e,t,n,r){var i=yg(e.axisName,t.get("name"));if(i){var o=t.get("nameLocation"),a=e.nameDirection,s=t.getModel("nameTextStyle"),l=t.get("nameGap")||0,u=t.axis.getExtent(),c=u[0]>u[1]?-1:1,f=[o==="start"?u[0]-c*l:o==="end"?u[1]+c*l:(u[0]+u[1])/2,n3(o)?e.labelOffset+a*l:0],d,h=t.get("nameRotate");h!=null&&(h=h*fu/180);var v;n3(o)?d=Su.innerTextLayout(e.rotation,h??e.rotation,a):(d=xye(e.rotation,o,h||0,u),v=e.axisNameAvailableWidth,v!=null&&(v=Math.abs(v/Math.sin(d.rotation)),!isFinite(v)&&(v=null)));var m=s.getFont(),y=t.get("nameTruncate",!0)||{},_=y.ellipsis,b=yg(e.nameTruncateMaxWidth,y.maxWidth,v),w=new ao({x:f[0],y:f[1],rotation:d.rotation,silent:Su.isLabelSilent(t),style:oh(s,{text:i,font:m,overflow:"truncate",width:b,ellipsis:_,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||d.textAlign,verticalAlign:s.get("verticalAlign")||d.textVerticalAlign}),z2:1});if(cS({el:w,componentModel:t,itemName:i}),w.__fullText=i,w.anid="name",t.get("triggerEvent")){var S=Su.makeAxisEventDataBase(t);S.targetType="axisName",S.name=i,Mn(w).eventData=S}r.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function xye(e,t,n,r){var i=bU(n-e),o,a,s=r[0]>r[1],l=t==="start"&&!s||t!=="start"&&s;return A1(i-fu/2)?(a=l?"bottom":"top",o="center"):A1(i-fu*1.5)?(a=l?"top":"bottom",o="center"):(a="middle",ifu/2?o=l?"left":"right":o=l?"right":"left"),{rotation:i,textAlign:o,textVerticalAlign:a}}function Tye(e,t,n){if(!U6(e.axis)){var r=e.get(["axisLabel","showMinLabel"]),i=e.get(["axisLabel","showMaxLabel"]);t=t||[],n=n||[];var o=t[0],a=t[1],s=t[t.length-1],l=t[t.length-2],u=n[0],c=n[1],f=n[n.length-1],d=n[n.length-2];r===!1?(Ho(o),Ho(u)):t3(o,a)&&(r?(Ho(a),Ho(c)):(Ho(o),Ho(u))),i===!1?(Ho(s),Ho(f)):t3(l,s)&&(i?(Ho(l),Ho(d)):(Ho(s),Ho(f)))}}function Ho(e){e&&(e.ignore=!0)}function t3(e,t){var n=e&&e.getBoundingRect().clone(),r=t&&t.getBoundingRect().clone();if(!(!n||!r)){var i=lR([]);return uR(i,i,-e.rotation),n.applyTransform(Ud([],i,e.getLocalTransform())),r.applyTransform(Ud([],i,t.getLocalTransform())),n.intersect(r)}}function n3(e){return e==="middle"||e==="center"}function K6(e,t,n,r,i){for(var o=[],a=[],s=[],l=0;l=0||e===t}function Mye(e){var t=oP(e);if(t){var n=t.axisPointerModel,r=t.axis.scale,i=n.option,o=n.get("status"),a=n.get("value");a!=null&&(a=r.parse(a));var s=AA(n);o==null&&(i.status=s?"show":"hide");var l=r.getExtent().slice();l[0]>l[1]&&l.reverse(),(a==null||a>l[1])&&(a=l[1]),as)return!0;if(a){var l=oP(t).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return r===!0},e.prototype.makeElOption=function(t,n,r,i,o){},e.prototype.createPointerEl=function(t,n,r,i){var o=n.pointer;if(o){var a=Dc(t).pointerEl=new yde[o.type](o3(n.pointer));t.add(a)}},e.prototype.createLabelEl=function(t,n,r,i){if(n.label){var o=Dc(t).labelEl=new ao(o3(n.label));t.add(o),s3(o,i)}},e.prototype.updatePointerEl=function(t,n,r){var i=Dc(t).pointerEl;i&&n.pointer&&(i.setStyle(n.pointer.style),r(i,{shape:n.pointer.shape}))},e.prototype.updateLabelEl=function(t,n,r,i){var o=Dc(t).labelEl;o&&(o.setStyle(n.label.style),r(o,{x:n.label.x,y:n.label.y}),s3(o,i))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var n=this._axisPointerModel,r=this._api.getZr(),i=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||a==="hide"){i&&r.remove(i),this._handle=null;return}var s;this._handle||(s=!0,i=this._handle=OR(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){KH(u.event)},onmousedown:tC(this._onHandleDragMove,this,0,0),drift:tC(this._onHandleDragMove,this),ondragend:tC(this._onHandleDragEnd,this)}),r.add(i)),l3(i,n,!1),i.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=o.get("size");lt(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,XH(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,n){a3(this._axisPointerModel,!n&&this._moveAnimation,this._handle,nC(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,n){var r=this._handle;if(r){this._dragging=!0;var i=this.updateHandleTransform(nC(r),[t,n],this._axisModel,this._axisPointerModel);this._payloadInfo=i,r.stopAnimation(),r.attr(nC(i)),Dc(r).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var n=this._payloadInfo,r=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:n.cursorPoint[0],y:n.cursorPoint[1],tooltipOption:n.tooltipOption,axesInfo:[{axisDim:r.axis.dim,axisIndex:r.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var n=this._axisPointerModel.get("value");this._moveHandleToValue(n),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var n=t.getZr(),r=this._group,i=this._handle;n&&r&&(this._lastGraphicKey=null,r&&n.remove(r),i&&n.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),fA(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,n,r){return r=r||0,{x:t[r],y:t[1-r],width:n[r],height:n[1-r]}},e}();function a3(e,t,n,r){Q6(Dc(n).lastProp,r)||(Dc(n).lastProp=r,t?Ru(n,r,e):(n.stopAnimation(),n.attr(r)))}function Q6(e,t){if(Ct(e)&&Ct(t)){var n=!0;return Q(t,function(r,i){n=n&&Q6(e[i],r)}),!!n}else return e===t}function s3(e,t){e[t.get(["label","show"])?"show":"hide"]()}function nC(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function l3(e,t,n){var r=t.get("z"),i=t.get("zlevel");e&&e.traverse(function(o){o.type!=="group"&&(r!=null&&(o.z=r),i!=null&&(o.zlevel=i),o.silent=n)})}function zye(e){var t=e.get("type"),n=e.getModel(t+"Style"),r;return t==="line"?(r=n.getLineStyle(),r.fill=null):t==="shadow"&&(r=n.getAreaStyle(),r.stroke=null),r}function Wye(e,t,n,r,i){var o=n.get("value"),a=e8(o,t.axis,t.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),s=n.getModel("label"),l=bS(s.get("padding")||0),u=s.getFont(),c=fR(a,u),f=i.position,d=c.width+l[1]+l[3],h=c.height+l[0]+l[2],v=i.align;v==="right"&&(f[0]-=d),v==="center"&&(f[0]-=d/2);var m=i.verticalAlign;m==="bottom"&&(f[1]-=h),m==="middle"&&(f[1]-=h/2),jye(f,d,h,r);var y=s.get("backgroundColor");(!y||y==="auto")&&(y=t.get(["axisLine","lineStyle","color"])),e.label={x:f[0],y:f[1],style:oh(s,{text:a,font:u,fill:s.getTextColor(),padding:l,backgroundColor:y}),z2:10}}function jye(e,t,n,r){var i=r.getWidth(),o=r.getHeight();e[0]=Math.min(e[0]+t,i)-t,e[1]=Math.min(e[1]+n,o)-n,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function e8(e,t,n,r,i){e=t.scale.parse(e);var o=t.scale.getLabel({value:e},{precision:i.precision}),a=i.formatter;if(a){var s={value:rP(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};Q(r,function(l){var u=n.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,f=u&&u.getDataParams(c);f&&s.seriesData.push(f)}),dt(a)?o=a.replace("{value}",o):Vt(a)&&(o=a(s))}return o}function t8(e,t,n){var r=Vd();return uR(r,r,n.rotation),NE(r,r,n.position),PR([e.dataToCoord(t),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],r)}function Yye(e,t,n,r,i,o){var a=Su.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=i.get(["label","margin"]),Wye(t,r,i,o,{position:t8(r.axis,e,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function Xye(e,t,n){return n=n||0,{x1:e[n],y1:e[1-n],x2:t[n],y2:t[1-n]}}function Kye(e,t,n){return n=n||0,{x:e[n],y:e[1-n],width:t[n],height:t[1-n]}}var Zye=function(e){ot(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(n,r,i,o,a){var s=i.axis,l=s.grid,u=o.get("type"),c=u3(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(r,!0));if(u&&u!=="none"){var d=zye(o),h=qye[u](s,f,c);h.style=d,n.graphicKey=h.type,n.pointer=h}var v=EA(l.model,i);Yye(r,n,v,i,o,a)},t.prototype.getHandleTransform=function(n,r,i){var o=EA(r.axis.grid.model,r,{labelInside:!1});o.labelMargin=i.get(["handle","margin"]);var a=t8(r.axis,n,o);return{x:a[0],y:a[1],rotation:o.rotation+(o.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(n,r,i,o){var a=i.axis,s=a.grid,l=a.getGlobalExtent(!0),u=u3(s,a).getOtherAxis(a).getGlobalExtent(),c=a.dim==="x"?0:1,f=[n.x,n.y];f[c]+=r[c],f[c]=Math.min(l[1],f[c]),f[c]=Math.max(l[0],f[c]);var d=(u[1]+u[0])/2,h=[d,d];h[c]=f[c];var v=[{verticalAlign:"middle"},{align:"center"}];return{x:f[0],y:f[1],rotation:n.rotation,cursorPoint:h,tooltipOption:v[c]}},t}(Gye);function u3(e,t){var n={};return n[t.dim+"AxisIndex"]=t.index,e.getCartesian(n)}var qye={line:function(e,t,n){var r=Xye([t,n[0]],[t,n[1]],c3(e));return{type:"Line",subPixelOptimize:!0,shape:r}},shadow:function(e,t,n){var r=Math.max(1,e.getBandWidth()),i=n[1]-n[0];return{type:"Rect",shape:Kye([t-r/2,n[0]],[r,i],c3(e))}}};function c3(e){return e.dim==="x"?0:1}var Jye=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(An),Qs=Ar(),Qye=Q;function n8(e,t,n){if(!Dt.node){var r=t.getZr();Qs(r).records||(Qs(r).records={}),e0e(r,t);var i=Qs(r).records[e]||(Qs(r).records[e]={});i.handler=n}}function e0e(e,t){if(Qs(e).initialized)return;Qs(e).initialized=!0,n("click",Dr(f3,"click")),n("mousemove",Dr(f3,"mousemove")),n("globalout",n0e);function n(r,i){e.on(r,function(o){var a=r0e(t);Qye(Qs(e).records,function(s){s&&i(s,o,a.dispatchAction)}),t0e(a.pendings,t)})}}function t0e(e,t){var n=e.showTip.length,r=e.hideTip.length,i;n?i=e.showTip[n-1]:r&&(i=e.hideTip[r-1]),i&&(i.dispatchAction=null,t.dispatchAction(i))}function n0e(e,t,n){e.handler("leave",null,n)}function f3(e,t,n,r){t.handler(e,n,r)}function r0e(e){var t={showTip:[],hideTip:[]},n=function(r){var i=t[r.type];i?i.push(r):(r.dispatchAction=n,e.dispatchAction(r))};return{dispatchAction:n,pendings:t}}function RA(e,t){if(!Dt.node){var n=t.getZr(),r=(Qs(n).records||{})[e];r&&(Qs(n).records[e]=null)}}var i0e=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.render=function(n,r,i){var o=r.getComponent("tooltip"),a=n.get("triggerOn")||o&&o.get("triggerOn")||"mousemove|click";n8("axisPointer",i,function(s,l,u){a!=="none"&&(s==="leave"||a.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(n,r){RA("axisPointer",r)},t.prototype.dispose=function(n,r){RA("axisPointer",r)},t.type="axisPointer",t}(hs);function r8(e,t){var n=[],r=e.seriesIndex,i;if(r==null||!(i=t.getSeriesByIndex(r)))return{point:[]};var o=i.getData(),a=yf(o,e);if(a==null||a<0||lt(a))return{point:[]};var s=o.getItemGraphicEl(a),l=i.coordinateSystem;if(i.getTooltipPosition)n=i.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),f=c.dim,d=u.dim,h=f==="x"||f==="radius"?1:0,v=o.mapDimension(d),m=[];m[h]=o.get(v,a),m[1-h]=o.get(o.getCalculationInfo("stackResultDimension"),a),n=l.dataToPoint(m)||[]}else n=l.dataToPoint(o.getValues(Rt(l.dimensions,function(_){return o.mapDimension(_)}),a))||[];else if(s){var y=s.getBoundingRect().clone();y.applyTransform(s.transform),n=[y.x+y.width/2,y.y+y.height/2]}return{point:n,el:s}}var d3=Ar();function o0e(e,t,n){var r=e.currTrigger,i=[e.x,e.y],o=e,a=e.dispatchAction||Xn(n.dispatchAction,n),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){D_(i)&&(i=r8({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},t).point);var l=D_(i),u=o.axesInfo,c=s.axesInfo,f=r==="leave"||D_(i),d={},h={},v={list:[],map:{}},m={showPointer:Dr(s0e,h),showTooltip:Dr(l0e,v)};Q(s.coordSysMap,function(_,b){var w=l||_.containPoint(i);Q(s.coordSysAxesInfo[b],function(S,C){var T=S.axis,A=d0e(u,S);if(!f&&w&&(!u||A)){var P=A&&A.value;P==null&&!l&&(P=T.pointToData(i)),P!=null&&h3(S,P,m,!1,d)}})});var y={};return Q(c,function(_,b){var w=_.linkGroup;w&&!h[b]&&Q(w.axesInfo,function(S,C){var T=h[C];if(S!==_&&T){var A=T.value;w.mapper&&(A=_.axis.scale.parse(w.mapper(A,p3(S),p3(_)))),y[_.key]=A}})}),Q(y,function(_,b){h3(c[b],_,m,!0,d)}),u0e(h,c,d),c0e(v,i,e,a),f0e(c,a,n),d}}function h3(e,t,n,r,i){var o=e.axis;if(!(o.scale.isBlank()||!o.containData(t))){if(!e.involveSeries){n.showPointer(e,t);return}var a=a0e(t,e),s=a.payloadBatch,l=a.snapToValue;s[0]&&i.seriesIndex==null&&Ke(i,s[0]),!r&&e.snap&&o.containData(l)&&l!=null&&(t=l),n.showPointer(e,t,s),n.showTooltip(e,a,l)}}function a0e(e,t){var n=t.axis,r=n.dim,i=e,o=[],a=Number.MAX_VALUE,s=-1;return Q(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(r),f,d;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(c,e,n);d=h.dataIndices,f=h.nestestValue}else{if(d=l.getData().indicesOfNearest(c[0],e,n.type==="category"?.5:null),!d.length)return;f=l.getData().get(c[0],d[0])}if(!(f==null||!isFinite(f))){var v=e-f,m=Math.abs(v);m<=a&&((m=0&&s<0)&&(a=m,s=v,i=f,o.length=0),Q(d,function(y){o.push({seriesIndex:l.seriesIndex,dataIndexInside:y,dataIndex:l.getData().getRawIndex(y)})}))}}),{payloadBatch:o,snapToValue:i}}function s0e(e,t,n,r){e[t.key]={value:n,payloadBatch:r}}function l0e(e,t,n,r){var i=n.payloadBatch,o=t.axis,a=o.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!i.length)){var l=t.coordSys.model,u=Og(l),c=e.map[u];c||(c=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:r,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:i.slice()})}}function u0e(e,t,n){var r=n.axesInfo=[];Q(t,function(i,o){var a=i.axisPointerModel.option,s=e[o];s?(!i.useHandle&&(a.status="show"),a.value=s.value,a.seriesDataIndices=(s.payloadBatch||[]).slice()):!i.useHandle&&(a.status="hide"),a.status==="show"&&r.push({axisDim:i.axis.dim,axisIndex:i.axis.model.componentIndex,value:a.value})})}function c0e(e,t,n,r){if(D_(t)||!e.list.length){r({type:"hideTip"});return}var i=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};r({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:e.list})}function f0e(e,t,n){var r=n.getZr(),i="axisPointerLastHighlights",o=d3(r)[i]||{},a=d3(r)[i]={};Q(e,function(u,c){var f=u.axisPointerModel.option;f.status==="show"&&u.triggerEmphasis&&Q(f.seriesDataIndices,function(d){var h=d.seriesIndex+" | "+d.dataIndex;a[h]=d})});var s=[],l=[];Q(o,function(u,c){!a[c]&&l.push(u)}),Q(a,function(u,c){!o[c]&&s.push(u)}),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function d0e(e,t){for(var n=0;n<(e||[]).length;n++){var r=e[n];if(t.axis.dim===r.axisDim&&t.axis.model.componentIndex===r.axisIndex)return r}}function p3(e){var t=e.axis.model,n={},r=n.axisDim=e.axis.dim;return n.axisIndex=n[r+"AxisIndex"]=t.componentIndex,n.axisName=n[r+"AxisName"]=t.name,n.axisId=n[r+"AxisId"]=t.id,n}function D_(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function i8(e){Z6.registerAxisPointerClass("CartesianAxisPointer",Zye),e.registerComponentModel(Jye),e.registerComponentView(i0e),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var n=t.axisPointer.link;n&&!lt(n)&&(t.axisPointer.link=[n])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,n){t.getComponent("axisPointer").coordSysAxesInfo=Iye(t,n)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},o0e)}function h0e(e){Ou(Hye),Ou(i8)}function p0e(e,t){var n=bS(t.get("padding")),r=t.getItemStyle(["color","opacity"]);return r.fill=t.get("backgroundColor"),e=new zr({shape:{x:e.x-n[3],y:e.y-n[0],width:e.width+n[1]+n[3],height:e.height+n[0]+n[2],r:t.get("borderRadius")},style:r,silent:!0,z2:-1}),e}var v0e=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},t}(An);function o8(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function a8(e){if(Dt.domSupported){for(var t=document.documentElement.style,n=0,r=e.length;n-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=o==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=o==="top"?225:45)+"deg)");var c=u*Math.PI/180,f=a+i,d=f*Math.abs(Math.cos(c))+f*Math.abs(Math.sin(c)),h=Math.round(((d-Math.SQRT2*i)/2+Math.SQRT2*i-(d-f)/2)*100)/100;s+=";"+o+":-"+h+"px";var v=t+" solid "+i+"px;",m=["position:absolute;width:"+a+"px;height:"+a+"px;z-index:-1;",s+";"+l+";","border-bottom:"+v,"border-right:"+v,"background-color:"+r+";"];return'
'}function w0e(e,t){var n="cubic-bezier(0.23,1,0.32,1)",r=" "+e/2+"s "+n,i="opacity"+r+",visibility"+r;return t||(r=" "+e+"s "+n,i+=Dt.transformSupported?","+aP+r:",left"+r+",top"+r),y0e+":"+i}function v3(e,t,n){var r=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!Dt.transformSupported)return n?"top:"+i+";left:"+r+";":[["top",i],["left",r]];var o=Dt.transform3dSupported,a="translate"+(o?"3d":"")+"("+r+","+i+(o?",0":"")+")";return n?"top:0;left:0;"+aP+":"+a+";":[["top",0],["left",0],[s8,a]]}function x0e(e){var t=[],n=e.get("fontSize"),r=e.getTextColor();r&&t.push("color:"+r),t.push("font:"+e.getFont());var i=nn(e.get("lineHeight"),Math.round(n*3/2));n&&t.push("line-height:"+i+"px");var o=e.get("textShadowColor"),a=e.get("textShadowBlur")||0,s=e.get("textShadowOffsetX")||0,l=e.get("textShadowOffsetY")||0;return o&&a&&t.push("text-shadow:"+s+"px "+l+"px "+a+"px "+o),Q(["decoration","align"],function(u){var c=e.get(u);c&&t.push("text-"+u+":"+c)}),t.join(";")}function T0e(e,t,n){var r=[],i=e.get("transitionDuration"),o=e.get("backgroundColor"),a=e.get("shadowBlur"),s=e.get("shadowColor"),l=e.get("shadowOffsetX"),u=e.get("shadowOffsetY"),c=e.getModel("textStyle"),f=kH(e,"html"),d=l+"px "+u+"px "+a+"px "+s;return r.push("box-shadow:"+d),t&&i&&r.push(w0e(i,n)),o&&r.push("background-color:"+o),Q(["width","color","radius"],function(h){var v="border-"+h,m=IH(v),y=e.get(m);y!=null&&r.push(v+":"+y+(h==="color"?"":"px"))}),r.push(x0e(c)),f!=null&&r.push("padding:"+bS(f).join("px ")+"px"),r.join(";")+";"}function g3(e,t,n,r,i){var o=t&&t.painter;if(n){var a=o&&o.getViewportRoot();a&&She(e,a,n,r,i)}else{e[0]=r,e[1]=i;var s=o&&o.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var C0e=function(){function e(t,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,Dt.wxa)return null;var r=document.createElement("div");r.domBelongToZr=!0,this.el=r;var i=this._zr=t.getZr(),o=n.appendTo,a=o&&(dt(o)?document.querySelector(o):mg(o)?o:Vt(o)&&o(t.getDom()));g3(this._styleCoord,i,a,t.getWidth()/2,t.getHeight()/2),(a||t.getDom()).appendChild(r),this._api=t,this._container=a;var s=this;r.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},r.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=i.handler,c=i.painter.getViewportRoot();Wo(c,l,!0),u.dispatch("mousemove",l)}},r.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){if(!this._container){var n=this._api.getDom(),r=m0e(n,"position"),i=n.style;i.position!=="absolute"&&r!=="absolute"&&(i.position="relative")}var o=t.get("alwaysShowContent");o&&this._moveIfResized(),this._alwaysShowContent=o,this.el.className=t.get("className")||""},e.prototype.show=function(t,n){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var r=this.el,i=r.style,o=this._styleCoord;r.innerHTML?i.cssText=_0e+T0e(t,!this._firstShow,this._longHide)+v3(o[0],o[1],!0)+("border-color:"+_f(n)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,n,r,i,o){var a=this.el;if(t==null){a.innerHTML="";return}var s="";if(dt(o)&&r.get("trigger")==="item"&&!o8(r)&&(s=S0e(r,i,o)),dt(t))a.innerHTML=t+s;else if(t){a.innerHTML="",lt(t)||(t=[t]);for(var l=0;l=0?this._tryShow(o,a):i==="leave"&&this._hide(a))},this))},t.prototype._keepShow=function(){var n=this._tooltipModel,r=this._ecModel,i=this._api,o=n.get("triggerOn");if(this._lastX!=null&&this._lastY!=null&&o!=="none"&&o!=="click"){var a=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&a.manuallyShowTip(n,r,i,{x:a._lastX,y:a._lastY,dataByCoordSys:a._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(n,r,i,o){if(!(o.from===this.uid||Dt.node||!i.getDom())){var a=_3(o,i);this._ticket="";var s=o.dataByCoordSys,l=D0e(o,r,i);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:o.position,positionDefault:"bottom"},a)}else if(o.tooltip&&o.x!=null&&o.y!=null){var c=A0e;c.x=o.x,c.y=o.y,c.update(),Mn(c).tooltipConfig={name:null,option:o.tooltip},this._tryShow({offsetX:o.x,offsetY:o.y,target:c},a)}else if(s)this._tryShow({offsetX:o.x,offsetY:o.y,position:o.position,dataByCoordSys:s,tooltipOption:o.tooltipOption},a);else if(o.seriesIndex!=null){if(this._manuallyAxisShowTip(n,r,i,o))return;var f=r8(o,r),d=f.point[0],h=f.point[1];d!=null&&h!=null&&this._tryShow({offsetX:d,offsetY:h,target:f.el,position:o.position,positionDefault:"bottom"},a)}else o.x!=null&&o.y!=null&&(i.dispatchAction({type:"updateAxisPointer",x:o.x,y:o.y}),this._tryShow({offsetX:o.x,offsetY:o.y,position:o.position,target:i.getZr().findHover(o.x,o.y).target},a))}},t.prototype.manuallyHideTip=function(n,r,i,o){var a=this._tooltipContent;this._tooltipModel&&a.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,o.from!==this.uid&&this._hide(_3(o,i))},t.prototype._manuallyAxisShowTip=function(n,r,i,o){var a=o.seriesIndex,s=o.dataIndex,l=r.getComponent("axisPointer").coordSysAxesInfo;if(!(a==null||s==null||l==null)){var u=r.getSeriesByIndex(a);if(u){var c=u.getData(),f=Ap([c.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(f.get("trigger")==="axis")return i.dispatchAction({type:"updateAxisPointer",seriesIndex:a,dataIndex:s,position:o.position}),!0}}},t.prototype._tryShow=function(n,r){var i=n.target,o=this._tooltipModel;if(o){this._lastX=n.offsetX,this._lastY=n.offsetY;var a=n.dataByCoordSys;if(a&&a.length)this._showAxisTooltip(a,n);else if(i){var s=Mn(i);if(s.ssrType==="legend")return;this._lastDataByCoordSys=null;var l,u;qp(i,function(c){if(Mn(c).dataIndex!=null)return l=c,!0;if(Mn(c).tooltipConfig!=null)return u=c,!0},!0),l?this._showSeriesItemTooltip(n,l,r):u?this._showComponentItemTooltip(n,u,r):this._hide(r)}else this._lastDataByCoordSys=null,this._hide(r)}},t.prototype._showOrMove=function(n,r){var i=n.get("showDelay");r=Xn(r,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(r,i):r()},t.prototype._showAxisTooltip=function(n,r){var i=this._ecModel,o=this._tooltipModel,a=[r.offsetX,r.offsetY],s=Ap([r.tooltipOption],o),l=this._renderMode,u=[],c=Eg("section",{blocks:[],noHeader:!0}),f=[],d=new IT;Q(n,function(b){Q(b.dataByAxis,function(w){var S=i.getComponent(w.axisDim+"Axis",w.axisIndex),C=w.value;if(!(!S||C==null)){var T=e8(C,S.axis,i,w.seriesDataIndices,w.valueLabelOpt),A=Eg("section",{header:T,noHeader:!ns(T),sortBlocks:!0,blocks:[]});c.blocks.push(A),Q(w.seriesDataIndices,function(P){var I=i.getSeriesByIndex(P.seriesIndex),R=P.dataIndexInside,O=I.getDataParams(R);if(!(O.dataIndex<0)){O.axisDim=w.axisDim,O.axisIndex=w.axisIndex,O.axisType=w.axisType,O.axisId=w.axisId,O.axisValue=rP(S.axis,{value:C}),O.axisValueLabel=T,O.marker=d.makeTooltipMarker("item",_f(O.color),l);var M=Rk(I.formatTooltip(R,!0,null)),$=M.frag;if($){var F=Ap([I],o).get("valueFormatter");A.blocks.push(F?Ke({valueFormatter:F},$):$)}M.text&&f.push(M.text),u.push(O)}})}})}),c.blocks.reverse(),f.reverse();var h=r.position,v=s.get("order"),m=Dk(c,d,l,v,i.get("useUTC"),s.get("textStyle"));m&&f.unshift(m);var y=l==="richText"?` + +`:"
",_=f.join(y);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(n,u)?this._updatePosition(s,h,a[0],a[1],this._tooltipContent,u):this._showTooltipContent(s,_,u,Math.random()+"",a[0],a[1],h,null,d)})},t.prototype._showSeriesItemTooltip=function(n,r,i){var o=this._ecModel,a=Mn(r),s=a.seriesIndex,l=o.getSeriesByIndex(s),u=a.dataModel||l,c=a.dataIndex,f=a.dataType,d=u.getData(f),h=this._renderMode,v=n.positionDefault,m=Ap([d.getItemModel(c),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,v?{position:v}:null),y=m.get("trigger");if(!(y!=null&&y!=="item")){var _=u.getDataParams(c,f),b=new IT;_.marker=b.makeTooltipMarker("item",_f(_.color),h);var w=Rk(u.formatTooltip(c,!1,f)),S=m.get("order"),C=m.get("valueFormatter"),T=w.frag,A=T?Dk(C?Ke({valueFormatter:C},T):T,b,h,S,o.get("useUTC"),m.get("textStyle")):w.text,P="item_"+u.name+"_"+c;this._showOrMove(m,function(){this._showTooltipContent(m,A,_,P,n.offsetX,n.offsetY,n.position,n.target,b)}),i({type:"showTip",dataIndexInside:c,dataIndex:d.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(n,r,i){var o=this._renderMode==="html",a=Mn(r),s=a.tooltipConfig,l=s.option||{},u=l.encodeHTMLContent;if(dt(l)){var c=l;l={content:c,formatter:c},u=!0}u&&o&&l.content&&(l=ln(l),l.content=Ki(l.content));var f=[l],d=this._ecModel.getComponent(a.componentMainType,a.componentIndex);d&&f.push(d),f.push({formatter:l.content});var h=n.positionDefault,v=Ap(f,this._tooltipModel,h?{position:h}:null),m=v.get("content"),y=Math.random()+"",_=new IT;this._showOrMove(v,function(){var b=ln(v.get("formatterParams")||{});this._showTooltipContent(v,m,b,y,n.offsetX,n.offsetY,n.position,r,_)}),i({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(n,r,i,o,a,s,l,u,c){if(this._ticket="",!(!n.get("showContent")||!n.get("show"))){var f=this._tooltipContent;f.setEnterable(n.get("enterable"));var d=n.get("formatter");l=l||n.get("position");var h=r,v=this._getNearestPoint([a,s],i,n.get("trigger"),n.get("borderColor")),m=v.color;if(d)if(dt(d)){var y=n.ecModel.get("useUTC"),_=lt(i)?i[0]:i,b=_&&_.axisType&&_.axisType.indexOf("time")>=0;h=d,b&&(h=vS(_.axisValue,h,y)),h=RH(h,i,!0)}else if(Vt(d)){var w=Xn(function(S,C){S===this._ticket&&(f.setContent(C,c,n,m,l),this._updatePosition(n,l,a,s,f,i,u))},this);this._ticket=o,h=d(i,o,w)}else h=d;f.setContent(h,c,n,m,l),f.show(n,m),this._updatePosition(n,l,a,s,f,i,u)}},t.prototype._getNearestPoint=function(n,r,i,o){if(i==="axis"||lt(r))return{color:o||(this._renderMode==="html"?"#fff":"none")};if(!lt(r))return{color:o||r.color||r.borderColor}},t.prototype._updatePosition=function(n,r,i,o,a,s,l){var u=this._api.getWidth(),c=this._api.getHeight();r=r||n.get("position");var f=a.getSize(),d=n.get("align"),h=n.get("verticalAlign"),v=l&&l.getBoundingRect().clone();if(l&&v.applyTransform(l.transform),Vt(r)&&(r=r([i,o],s,a.el,v,{viewSize:[u,c],contentSize:f.slice()})),lt(r))i=Ci(r[0],u),o=Ci(r[1],c);else if(Ct(r)){var m=r;m.width=f[0],m.height=f[1];var y=k1(m,{width:u,height:c});i=y.x,o=y.y,d=null,h=null}else if(dt(r)&&l){var _=O0e(r,v,f,n.get("borderWidth"));i=_[0],o=_[1]}else{var _=R0e(i,o,a,u,c,d?null:20,h?null:20);i=_[0],o=_[1]}if(d&&(i-=b3(d)?f[0]/2:d==="right"?f[0]:0),h&&(o-=b3(h)?f[1]/2:h==="bottom"?f[1]:0),o8(n)){var _=P0e(i,o,a,u,c);i=_[0],o=_[1]}a.moveTo(i,o)},t.prototype._updateContentNotChangedOnAxis=function(n,r){var i=this._lastDataByCoordSys,o=this._cbParamsList,a=!!i&&i.length===n.length;return a&&Q(i,function(s,l){var u=s.dataByAxis||[],c=n[l]||{},f=c.dataByAxis||[];a=a&&u.length===f.length,a&&Q(u,function(d,h){var v=f[h]||{},m=d.seriesDataIndices||[],y=v.seriesDataIndices||[];a=a&&d.value===v.value&&d.axisType===v.axisType&&d.axisId===v.axisId&&m.length===y.length,a&&Q(m,function(_,b){var w=y[b];a=a&&_.seriesIndex===w.seriesIndex&&_.dataIndex===w.dataIndex}),o&&Q(d.seriesDataIndices,function(_){var b=_.seriesIndex,w=r[b],S=o[b];w&&S&&S.data!==w.data&&(a=!1)})})}),this._lastDataByCoordSys=n,this._cbParamsList=r,!!a},t.prototype._hide=function(n){this._lastDataByCoordSys=null,n({type:"hideTip",from:this.uid})},t.prototype.dispose=function(n,r){Dt.node||!r.getDom()||(fA(this,"_updatePosition"),this._tooltipContent.dispose(),RA("itemTooltip",r))},t.type="tooltip",t}(hs);function Ap(e,t,n){var r=t.ecModel,i;n?(i=new sr(n,r,r),i=new sr(t.option,i,r)):i=t;for(var o=e.length-1;o>=0;o--){var a=e[o];a&&(a instanceof sr&&(a=a.get("tooltip",!0)),dt(a)&&(a={formatter:a}),a&&(i=new sr(a,i,r)))}return i}function _3(e,t){return e.dispatchAction||Xn(t.dispatchAction,t)}function R0e(e,t,n,r,i,o,a){var s=n.getSize(),l=s[0],u=s[1];return o!=null&&(e+l+o+2>r?e-=l+o:e+=o),a!=null&&(t+u+a>i?t-=u+a:t+=a),[e,t]}function P0e(e,t,n,r,i){var o=n.getSize(),a=o[0],s=o[1];return e=Math.min(e+a,r)-a,t=Math.min(t+s,i)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function O0e(e,t,n,r){var i=n[0],o=n[1],a=Math.ceil(Math.SQRT2*r)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-i/2,l=t.y+c/2-o/2;break;case"top":s=t.x+u/2-i/2,l=t.y-o-a;break;case"bottom":s=t.x+u/2-i/2,l=t.y+c+a;break;case"left":s=t.x-i-a,l=t.y+c/2-o/2;break;case"right":s=t.x+u+a,l=t.y+c/2-o/2}return[s,l]}function b3(e){return e==="center"||e==="middle"}function D0e(e,t,n){var r=mR(e).queryOptionMap,i=r.keys()[0];if(!(!i||i==="series")){var o=lm(t,i,r.get(i),{useDefault:!1,enableAll:!1,enableNone:!1}),a=o.models[0];if(a){var s=n.getViewOfComponentModel(a),l;if(s.group.traverse(function(u){var c=Mn(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:a.componentIndex,el:l}}}}function M0e(e){Ou(i8),e.registerComponentModel(v0e),e.registerComponentView(I0e),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},eo),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},eo)}var L0e=function(e,t){if(t==="all")return{type:"all",title:e.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:e.getLocaleModel().get(["legend","selector","inverse"])}},PA=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.layoutMode={type:"box",ignoreSize:!0},n}return t.prototype.init=function(n,r,i){this.mergeDefaultAndTheme(n,i),n.selected=n.selected||{},this._updateSelector(n)},t.prototype.mergeOption=function(n,r){e.prototype.mergeOption.call(this,n,r),this._updateSelector(n)},t.prototype._updateSelector=function(n){var r=n.selector,i=this.ecModel;r===!0&&(r=n.selector=["all","inverse"]),lt(r)&&Q(r,function(o,a){dt(o)&&(o={type:o}),r[a]=_n(o,L0e(i,o.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var n=this._data;if(n[0]&&this.get("selectedMode")==="single"){for(var r=!1,i=0;i=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(An),ud=Dr,OA=Q,y0=pi,u8=function(e){ot(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.newlineDisabled=!1,n}return t.prototype.init=function(){this.group.add(this._contentGroup=new y0),this.group.add(this._selectorGroup=new y0),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(n,r,i){var o=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!n.get("show",!0)){var a=n.get("align"),s=n.get("orient");(!a||a==="auto")&&(a=n.get("left")==="right"&&s==="vertical"?"right":"left");var l=n.get("selector",!0),u=n.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(a,n,r,i,l,s,u);var c=n.getBoxLayoutParams(),f={width:i.getWidth(),height:i.getHeight()},d=n.get("padding"),h=k1(c,f,d),v=this.layoutInner(n,a,h,o,l,u),m=k1(En({width:v.width,height:v.height},c),f,d);this.group.x=m.x-v.x,this.group.y=m.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=p0e(v,n))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(n,r,i,o,a,s,l){var u=this.getContentGroup(),c=Kt(),f=r.get("selectedMode"),d=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&d.push(h.id)}),OA(r.getData(),function(h,v){var m=h.get("name");if(!this.newlineDisabled&&(m===""||m===` +`)){var y=new y0;y.newline=!0,u.add(y);return}var _=i.getSeriesByName(m)[0];if(!c.get(m))if(_){var b=_.getData(),w=b.getVisual("legendLineStyle")||{},S=b.getVisual("legendIcon"),C=b.getVisual("style"),T=this._createItem(_,m,v,h,r,n,w,C,S,f,o);T.on("click",ud(S3,m,null,o,d)).on("mouseover",ud(DA,_.name,null,o,d)).on("mouseout",ud(MA,_.name,null,o,d)),i.ssr&&T.eachChild(function(A){var P=Mn(A);P.seriesIndex=_.seriesIndex,P.dataIndex=v,P.ssrType="legend"}),c.set(m,!0)}else i.eachRawSeries(function(A){if(!c.get(m)&&A.legendVisualProvider){var P=A.legendVisualProvider;if(!P.containName(m))return;var I=P.indexOfName(m),R=P.getItemVisual(I,"style"),O=P.getItemVisual(I,"legendIcon"),M=nl(R.fill);M&&M[3]===0&&(M[3]=.2,R=Ke(Ke({},R),{fill:tS(M,"rgba")}));var $=this._createItem(A,m,v,h,r,n,{},R,O,f,o);$.on("click",ud(S3,null,m,o,d)).on("mouseover",ud(DA,null,m,o,d)).on("mouseout",ud(MA,null,m,o,d)),i.ssr&&$.eachChild(function(F){var z=Mn(F);z.seriesIndex=A.seriesIndex,z.dataIndex=v,z.ssrType="legend"}),c.set(m,!0)}},this)},this),a&&this._createSelector(a,r,o,s,l)},t.prototype._createSelector=function(n,r,i,o,a){var s=this.getSelectorGroup();OA(n,function(u){var c=u.type,f=new ao({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:c==="all"?"legendAllSelect":"legendInverseSelect",legendId:r.id})}});s.add(f);var d=r.getModel("selectorLabel"),h=r.getModel(["emphasis","selectorLabel"]);MR(f,{normal:d,emphasis:h},{defaultText:u.title}),KE(f)})},t.prototype._createItem=function(n,r,i,o,a,s,l,u,c,f,d){var h=n.visualDrawType,v=a.get("itemWidth"),m=a.get("itemHeight"),y=a.isSelected(r),_=o.get("symbolRotate"),b=o.get("symbolKeepAspect"),w=o.get("icon");c=w||c||"roundRect";var S=N0e(c,o,l,u,h,y,d),C=new y0,T=o.getModel("textStyle");if(Vt(n.getLegendIcon)&&(!w||w==="inherit"))C.add(n.getLegendIcon({itemWidth:v,itemHeight:m,icon:c,iconRotate:_,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:b}));else{var A=w==="inherit"&&n.getData().getVisual("symbol")?_==="inherit"?n.getData().getVisual("symbolRotate"):_:0;C.add(k0e({itemWidth:v,itemHeight:m,icon:c,iconRotate:A,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:b}))}var P=s==="left"?v+5:-5,I=s,R=a.get("formatter"),O=r;dt(R)&&R?O=R.replace("{name}",r??""):Vt(R)&&(O=R(r));var M=y?T.getTextColor():o.get("inactiveColor");C.add(new ao({style:oh(T,{text:O,x:P,y:m/2,fill:M,align:I,verticalAlign:"middle"},{inheritColor:M})}));var $=new zr({shape:C.getBoundingRect(),style:{fill:"transparent"}}),F=o.getModel("tooltip");return F.get("show")&&cS({el:$,componentModel:a,itemName:r,itemTooltipOption:F.option}),C.add($),C.eachChild(function(z){z.silent=!0}),$.silent=!f,this.getContentGroup().add(C),KE(C),C.__legendDataIndex=i,C},t.prototype.layoutInner=function(n,r,i,o,a,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Mv(n.get("orient"),l,n.get("itemGap"),i.width,i.height);var c=l.getBoundingRect(),f=[-c.x,-c.y];if(u.markRedraw(),l.markRedraw(),a){Mv("horizontal",u,n.get("selectorItemGap",!0));var d=u.getBoundingRect(),h=[-d.x,-d.y],v=n.get("selectorButtonGap",!0),m=n.getOrient().index,y=m===0?"width":"height",_=m===0?"height":"width",b=m===0?"y":"x";s==="end"?h[m]+=c[y]+v:f[m]+=d[y]+v,h[1-m]+=c[_]/2-d[_]/2,u.x=h[0],u.y=h[1],l.x=f[0],l.y=f[1];var w={x:0,y:0};return w[y]=c[y]+v+d[y],w[_]=Math.max(c[_],d[_]),w[b]=Math.min(0,d[b]+h[1-m]),w}else return l.x=f[0],l.y=f[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(hs);function N0e(e,t,n,r,i,o,a){function s(y,_){y.lineWidth==="auto"&&(y.lineWidth=_.lineWidth>0?2:0),OA(y,function(b,w){y[w]==="inherit"&&(y[w]=_[w])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=e.lastIndexOf("empty",0)===0?"fill":"stroke",f=l.getShallow("decal");u.decal=!f||f==="inherit"?r.decal:yA(f,a),u.fill==="inherit"&&(u.fill=r[i]),u.stroke==="inherit"&&(u.stroke=r[c]),u.opacity==="inherit"&&(u.opacity=(i==="fill"?r:n).opacity),s(u,r);var d=t.getModel("lineStyle"),h=d.getLineStyle();if(s(h,n),u.fill==="auto"&&(u.fill=r.fill),u.stroke==="auto"&&(u.stroke=r.fill),h.stroke==="auto"&&(h.stroke=r.fill),!o){var v=t.get("inactiveBorderWidth"),m=u[c];u.lineWidth=v==="auto"?r.lineWidth>0&&m?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),h.stroke=d.get("inactiveColor"),h.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function k0e(e){var t=e.icon||"roundRect",n=lh(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return n.setStyle(e.itemStyle),n.rotation=(e.iconRotate||0)*Math.PI/180,n.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n}function S3(e,t,n,r){MA(e,t,n,r),n.dispatchAction({type:"legendToggleSelect",name:e??t}),DA(e,t,n,r)}function c8(e){for(var t=e.getZr().storage.getDisplayList(),n,r=0,i=t.length;ri[a],y=[-h.x,-h.y];r||(y[o]=c[u]);var _=[0,0],b=[-v.x,-v.y],w=nn(n.get("pageButtonGap",!0),n.get("itemGap",!0));if(m){var S=n.get("pageButtonPosition",!0);S==="end"?b[o]+=i[a]-v[a]:_[o]+=v[a]+w}b[1-o]+=h[s]/2-v[s]/2,c.setPosition(y),f.setPosition(_),d.setPosition(b);var C={x:0,y:0};if(C[a]=m?i[a]:h[a],C[s]=Math.max(h[s],v[s]),C[l]=Math.min(0,v[l]+b[1-o]),f.__rectSize=i[a],m){var T={x:0,y:0};T[a]=Math.max(i[a]-v[a]-w,0),T[s]=C[s],f.setClipPath(new zr({shape:T})),f.__rectSize=T[a]}else d.eachChild(function(P){P.attr({invisible:!0,silent:!0})});var A=this._getPageInfo(n);return A.pageIndex!=null&&Ru(c,{x:A.contentPosition[0],y:A.contentPosition[1]},m?n:null),this._updatePageInfoView(n,A),C},t.prototype._pageGo=function(n,r,i){var o=this._getPageInfo(r)[n];o!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:o,legendId:r.id})},t.prototype._updatePageInfoView=function(n,r){var i=this._controllerGroup;Q(["pagePrev","pageNext"],function(c){var f=c+"DataIndex",d=r[f]!=null,h=i.childOfName(c);h&&(h.setStyle("fill",d?n.get("pageIconColor",!0):n.get("pageIconInactiveColor",!0)),h.cursor=d?"pointer":"default")});var o=i.childOfName("pageText"),a=n.get("pageFormatter"),s=r.pageIndex,l=s!=null?s+1:0,u=r.pageCount;o&&a&&o.setStyle("text",dt(a)?a.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):a({current:l,total:u}))},t.prototype._getPageInfo=function(n){var r=n.get("scrollDataIndex",!0),i=this.getContentGroup(),o=this._containerGroup.__rectSize,a=n.getOrient().index,s=rC[a],l=iC[a],u=this._findTargetItemIndex(r),c=i.children(),f=c[u],d=c.length,h=d?1:0,v={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!f)return v;var m=S(f);v.contentPosition[a]=-m.s;for(var y=u+1,_=m,b=m,w=null;y<=d;++y)w=S(c[y]),(!w&&b.e>_.s+o||w&&!C(w,_.s))&&(b.i>_.i?_=b:_=w,_&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=_.i),++v.pageCount)),b=w;for(var y=u-1,_=m,b=m,w=null;y>=-1;--y)w=S(c[y]),(!w||!C(b,w.s))&&_.i=A&&T.s<=A+o}},t.prototype._findTargetItemIndex=function(n){if(!this._showController)return 0;var r,i=this.getContentGroup(),o;return i.eachChild(function(a,s){var l=a.__legendDataIndex;o==null&&l!=null&&(o=s),l===n&&(r=s)}),r??o},t.type="legend.scroll",t}(u8);function U0e(e){e.registerAction("legendScroll","legendscroll",function(t,n){var r=t.scrollDataIndex;r!=null&&n.eachComponent({mainType:"legend",subType:"scroll",query:t},function(i){i.setScrollDataIndex(r)})})}function H0e(e){Ou(f8),e.registerComponentModel(B0e),e.registerComponentView(V0e),U0e(e)}function G0e(e){Ou(f8),Ou(H0e)}function C3(e,t,n){var r=Ch.createCanvas(),i=t.getWidth(),o=t.getHeight(),a=r.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=i+"px",a.height=o+"px",r.setAttribute("data-zr-dom-id",e)),r.width=i*n,r.height=o*n,r}var oC=function(e){ot(t,e);function t(n,r,i){var o=e.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null;var a;i=i||C1,typeof n=="string"?a=C3(n,r,i):Ct(n)&&(a=n,n=a.id),o.id=n,o.dom=a;var s=a.style;return s&&(qV(a),a.onselectstart=function(){return!1},s.padding="0",s.margin="0",s.borderWidth="0"),o.painter=r,o.dpr=i,o}return t.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},t.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},t.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},t.prototype.setUnpainted=function(){this.__firstTimePaint=!0},t.prototype.createBackBuffer=function(){var n=this.dpr;this.domBack=C3("back-"+this.id,this.painter,n),this.ctxBack=this.domBack.getContext("2d"),n!==1&&this.ctxBack.scale(n,n)},t.prototype.createRepaintRects=function(n,r,i,o){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var a=[],s=this.maxRepaintRectCount,l=!1,u=new bn(0,0,0,0);function c(b){if(!(!b.isFinite()||b.isZero()))if(a.length===0){var w=new bn(0,0,0,0);w.copy(b),a.push(w)}else{for(var S=!1,C=1/0,T=0,A=0;A=s)}}for(var f=this.__startIndex;f15)break}}F.prevElClipPaths&&_.restore()};if(b)if(b.length===0)P=y.__endIndex;else for(var R=h.dpr,O=0;O0&&t>i[0]){for(l=0;lt);l++);s=r[i[l]]}if(i.splice(l+1,0,t),r[t]=n,!n.virtual)if(s){var u=s.dom;u.nextSibling?a.insertBefore(n.dom,u.nextSibling):a.appendChild(n.dom)}else a.firstChild?a.insertBefore(n.dom,a.firstChild):a.appendChild(n.dom);n.painter||(n.painter=this)}},e.prototype.eachLayer=function(t,n){for(var r=this._zlevelList,i=0;i0?_0:0),this._needsManuallyCompositing),c.__builtin__||oR("ZLevel "+u+" has been used by unkown layer "+c.id),c!==o&&(c.__used=!0,c.__startIndex!==l&&(c.__dirty=!0),c.__startIndex=l,c.incremental?c.__drawIndex=-1:c.__drawIndex=l,n(l),o=c),i.__dirty&wo&&!i.__inHover&&(c.__dirty=!0,c.incremental&&c.__drawIndex<0&&(c.__drawIndex=l))}n(l),this.eachBuiltinLayer(function(f,d){!f.__used&&f.getElementCount()>0&&(f.__dirty=!0,f.__startIndex=f.__endIndex=f.__drawIndex=0),f.__dirty&&f.__drawIndex<0&&(f.__drawIndex=f.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,Q(this._layers,function(n){n.setUnpainted()})},e.prototype.configLayer=function(t,n){if(n){var r=this._layerConfig;r[t]?_n(r[t],n,!0):r[t]=n;for(var i=0;i{const a=getComputedStyle(n.value),s=getComputedStyle(r.value);let l=a.color,u=a.backgroundColor,c=a.borderColor,f=a.fontFamily,d=s.color,h=s.backgroundColor,v=s.borderBottomColor,m=s.borderTopColor;Yt(()=>Nd.value,()=>{const S=getComputedStyle(n.value),C=getComputedStyle(r.value);l=S.color,u=S.backgroundColor,c=S.borderColor,d=C.color,h=C.backgroundColor,v=C.borderBottomColor,m=C.borderTopColor}),Yt(()=>fv.value,()=>{f=getComputedStyle(n.value).fontFamily});const y=Ve(()=>({legend:{bottom:0,data:t.data.map(S=>S.name),textStyle:{color:l,fontFamily:f}},grid:{left:60,top:15,right:10,bottom:25},tooltip:{show:!0,trigger:"axis",backgroundColor:u,borderColor:u,confine:!0,padding:[0,5],textStyle:{color:l,fontFamily:f},formatter:t.toolTipFormatter},xAxis:{type:"category",axisLine:{show:!1},axisLabel:{show:!1},splitLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",splitNumber:4,max:S=>Math.max(S.max,t.min),axisLine:{show:!1},splitLine:{show:!0,lineStyle:{type:"dashed",color:c}},axisLabel:{align:"left",padding:[0,0,0,-45],formatter:t.labelFormatter,color:l,fontFamily:f}},series:t.data.map((S,C)=>{const T=C===t.data.length-1?d:h,A=C===t.data.length-1?v:m;return{name:S.name,symbol:"none",emphasis:{disabled:!0},lineStyle:{width:1},data:S.data,areaStyle:{color:new AR(0,0,0,1,[{offset:0,color:T},{offset:1,color:A}])},type:"line",color:T,smooth:!0}})})),_=bme(o.value);_.setOption(y.value),Yt(y,()=>{i.value||_==null||_.setOption(y.value)});const{width:b}=sre(o),w=Ai.debounce(()=>{_.resize()},100);Yt(()=>b.value,()=>{w()})}),(a,s)=>(K(),ae("div",K0e,[L("div",{ref_key:"chart",ref:o,class:"h-full w-full"},null,512),L("span",{class:"hidden border-base-content/10 bg-base-100/70 text-base-content",ref_key:"baseColorRef",ref:n},null,512),L("span",{class:"hidden border-b-primary/30 border-t-info/30 bg-info/60 text-primary/60",ref_key:"themeColorRef",ref:r},null,512),L("button",{class:"btn btn-ghost btn-xs absolute bottom-0 right-1",onClick:s[0]||(s[0]=l=>i.value=!i.value)},[(K(),Ot(ls(i.value?N(TQ):N(xQ)),{class:"h-4 w-4"}))])]))}}),lP=it({__name:"ConnectionsCharts",setup(e){const{t}=cs(),n=Ve(()=>[{name:t("connections"),data:a_.value}]),r=o=>` ${o}`,i=o=>o.map(a=>{if(!(a.data.name +
+ ${a.seriesName} + (${La(a.data.name).format("HH:mm:ss")}): ${a.data.value} + `}).join(` +`);return(o,a)=>(K(),Ot(sP,{data:n.value,"label-formatter":r,"tool-tip-formatter":i,min:100},null,8,["data"]))}}),uP=it({__name:"MemoryCharts",setup(e){const{t}=cs(),n=Ve(()=>[{name:t("memoryUsage"),data:Up.value}]),r=o=>`${Tn(o,{maximumFractionDigits:1,binary:!0})}`,i=o=>$B(o[0],{binary:!0,suffix:""});return(o,a)=>(K(),Ot(sP,{data:n.value,"label-formatter":r,"tool-tip-formatter":i,min:100*1024*1024},null,8,["data"]))}}),cP=it({__name:"SpeedCharts",setup(e){const t=Fe(),{t:n}=cs(),r=Ve(()=>[{name:n("ulSpeed"),data:Gp.value},{name:n("dlSpeed"),data:Hp.value}]),i=a=>`${Tn(a,{maximumFractionDigits:1,binary:!1})}/s`,o=a=>a.map(s=>$B(s,{binary:!1,suffix:"/s"})).join("");return(a,s)=>(K(),Ot(sP,{ref_key:"chartRef",ref:t,data:r.value,"label-formatter":i,"tool-tip-formatter":o,min:60*1e3},null,8,["data"]))}}),Z0e={class:"card carousel carousel-vertical h-28 shrink-0 overflow-x-hidden text-sm hover:scrollbar-thin"},q0e=it({__name:"OverviewCarousel",setup(e){return(t,n)=>(K(),ae("div",Z0e,[ye(cP,{class:"carousel-item box-border"}),ye(uP,{class:"carousel-item box-border"}),ye(lP,{class:"carousel-item box-border"})]))}}),J0e={class:"card mx-1 flex flex-col gap-4 py-2 text-xs"},Q0e={class:"flex flex-col items-center justify-center"},e_e={class:"flex flex-col items-center justify-center"},t_e={class:"flex flex-col items-center justify-center"},n_e={class:"flex flex-col items-center justify-center"},r_e={class:"flex flex-col items-center justify-center"},i_e=it({__name:"VerticalInfos",setup(e){return(t,n)=>(K(),ae("div",J0e,[L("div",Q0e,[ye(N(H4),{class:"h-4 w-4"}),ft(" "+re(N(ea).length),1)]),L("div",e_e,[ye(N(Eb),{class:"h-4 w-4"}),ft(" "+re(N(Tn)(N(hg)))+" ",1),L("span",null,re(N(Tn)(N(Fb)))+"/s ",1)]),L("div",t_e,[ye(N(Kg),{class:"h-4 w-4"}),ft(" "+re(N(Tn)(N(pg)))+" ",1),L("span",null,re(N(Tn)(N($b)))+"/s ",1)]),L("div",n_e,[ye(N(bQ),{class:"h-4 w-4"}),ft(" "+re(N(Tn)(N(kb),{binary:!0})),1)]),L("div",r_e,[L("button",{class:"btn btn-circle btn-sm",onClick:n[0]||(n[0]=r=>mu.value=!1)},[ye(N(ff),{class:"h-5 w-5"})])])]))}}),o_e={class:"drawer-side z-30 bg-base-200 max-md:hidden"},a_e={class:"menu flex-1"},s_e=["onClick"],l_e={class:"card"},u_e=it({__name:"SideBar",setup(e){const t={[un.connections]:FV,[un.logs]:$V,[un.proxies]:UV,[un.rules]:HV},n=Ve(()=>r.name?t[r.name]:null),r=aB();return(i,o)=>(K(),ae("div",o_e,[o[0]||(o[0]=L("label",{for:"sidebar","aria-label":"close sidebar",class:"drawer-overlay"},null,-1)),L("div",{class:rt(N(Cn)("scrollbar-hidden flex h-full flex-col gap-2 overflow-x-hidden p-2 text-base-content !transition-all duration-500",N(mu)?"w-18 px-0":"w-[21rem]"))},[L("ul",a_e,[(K(!0),ae(Ze,null,on(N($s),a=>(K(),ae("li",{key:a},[L("a",{class:rt(a===N(r).name?"active":"inactive"),onClick:()=>N(Fa).push({name:a})},[(K(),Ot(ls(N(TB)[a]),{class:"h-5 w-5"})),N(mu)?mt("",!0):(K(),ae(Ze,{key:0},[ft(re(i.$t(a)),1)],64))],10,s_e)]))),128))]),N(mu)?(K(),Ot(i_e,{key:0})):(K(),ae(Ze,{key:1},[N(r).name!==N(un).overview?(K(),Ot(q0e,{key:0})):mt("",!0),L("div",l_e,[n.value?(K(),Ot(ls(n.value),{key:0})):mt("",!0),ye($le)])],64))],2)]))}}),aC=Fe(!1),d8=()=>({isUIUpdateAvailable:aC,checkUIUpdate:async()=>{aC.value=await Woe(),aC.value&&X0.value&&dV()}}),c_e={class:"w-128 drawer md:drawer-open"},f_e={class:"drawer-content fixed bottom-0 flex h-full w-full flex-col overflow-hidden bg-base-200/40 md:relative md:w-auto"},d_e={class:"relative h-0 flex-1"},h_e={class:"absolute flex h-full w-full flex-col overflow-y-auto"},p_e=["onClick"],v_e={class:"text-xs"},g_e={class:"modal-box"},m_e={class:"text-lg font-bold"},y_e={class:"flex justify-end gap-2"},__e=it({__name:"HomePage",setup(e){const t=Fe(null),n=window.matchMedia("(display-mode: standalone)").matches||navigator.standalone,r={[un.connections]:FV,[un.logs]:$V,[un.proxies]:UV,[un.rules]:HV},i=Oee(),o=aB(),a=Ve(()=>r[o.name]),s=Fe(),{direction:l}=lre(s,{threshold:15}),u=()=>{const _=o.name;return _===un.setup?un.proxies:$s.value[($s.value.indexOf(_)+1)%$s.value.length]},c=()=>{const _=o.name;return _===un.setup?un.proxies:$s.value[($s.value.indexOf(_)-1+$s.value.length)%$s.value.length]};Yt(l,()=>{l.value==="right"?i.push({name:c()}):l.value==="left"&&i.push({name:u()})});const{proxiesTabShow:f}=Kb(),{checkUIUpdate:d}=d8();Yt(ci,()=>{ci.value&&(xv.value=rh.RULES,f.value=df.PROXIES,eR(),dl(),gg(),Qoe(),PE(),$re(),d())},{immediate:!0});const h=()=>{var _;(_=t.value)==null||_.close()},{showTip:v}=Lb(),m=async()=>{const _=fs.value.filter(w=>w.uuid!==ci.value);h();const b=(await Promise.all(_.map(async w=>await kL(w)?w:null))).filter(w=>w!==null);b.length>0&&(ci.value=b[0].uuid,v("backendSwitchTo",{backend:Eu(b[0])}))},y=ore();return Yt(y,async()=>{var _,b;if(!(!fl.value||fs.value.length===0||y.value!=="visible"))try{await kL(fl.value)||(_=t.value)==null||_.showModal()}catch{(b=t.value)==null||b.showModal()}},{immediate:!0}),(_,b)=>(K(),ae("div",c_e,[b[0]||(b[0]=L("input",{id:"sidebar",type:"checkbox",class:"drawer-toggle"},null,-1)),ye(u_e),L("div",f_e,[a.value&&N(mu)?(K(),Ot(ls(a.value),{key:0,class:"w-full bg-base-100",horizontal:!0})):mt("",!0),L("div",d_e,[L("div",h_e,[ye(N(II)),L("div",{class:rt(["shrink-0 md:hidden",N(n)?"max-md:h-[5.5rem]":"max-md:h-14"])},null,2)])]),L("div",{class:rt(`btm-nav glass z-30 bg-none md:hidden ${N(n)?"h-[5.5rem] pb-8":"h-14"}`),ref_key:"swiperRef",ref:s},[(K(!0),ae(Ze,null,on(N($s),w=>(K(),ae("button",{key:w,onClick:S=>N(i).push({name:w}),class:rt(w===N(o).name?"active bg-inherit":"")},[(K(),Ot(ls(N(TB)[w]),{class:"h-5 w-5"})),L("span",v_e,re(_.$t(w)),1)],10,p_e))),128))],2)]),L("dialog",{id:"autoSwitchBackend",ref_key:"modalRef",ref:t,class:"modal"},[L("div",g_e,[L("h3",m_e,re(_.$t("currentBackendUnavailable")),1),L("div",y_e,[L("button",{class:"btn btn-sm",onClick:h},re(_.$t("cancel")),1),L("button",{class:"btn btn-primary btn-sm",onClick:m},re(_.$t("confirm")),1)])])],512)]))}}),b_e={key:0,class:"card m-2 flex-row p-2 text-sm"},S_e={class:"card mb-1 block p-2 text-sm"},w_e={class:"mx-2 text-primary"},x_e={class:"ml-2"},T_e=it({__name:"LogsPage",setup(e){const t={[Nc.Error]:"text-error",[Nc.Warning]:"text-warning",[Nc.Info]:"text-info",[Nc.Debug]:"text-accent"},n=Ve(()=>g1.value.filter(r=>Bd.value?r.payload.includes(Bd.value)||r.type.includes(Bd.value):!0));return(r,i)=>(K(),ae(Ze,null,[n.value.length?mt("",!0):(K(),ae("div",b_e,re(r.$t("noContent")),1)),ye(XI,{data:n.value},{default:Mr(({item:o})=>[L("div",S_e,[L("span",null,re(o.seq),1),L("span",w_e,re(N(La)(o.time).locale(N(su)).format("HH:mm:ss")),1),L("span",{class:rt(t[o.type])},re(o.type),3),L("span",x_e,re(o.payload),1)])]),_:1},8,["data"])],64))}}),C_e={class:"grid grid-cols-2 gap-2 rounded-lg bg-base-200/40 py-2 lg:grid-cols-6"},E_e={class:"flex h-14 flex-col items-center justify-center gap-2 md:h-24"},A_e={class:"text-sm font-bold md:text-lg"},I_e={class:"text-base md:text-xl"},R_e={class:"flex h-14 flex-col items-center justify-center gap-2 md:h-24"},P_e={class:"text-sm font-bold md:text-lg"},O_e={class:"text-base md:text-xl"},D_e={class:"flex h-14 flex-col items-center justify-center gap-2 md:h-24"},M_e={class:"text-sm font-bold md:text-lg"},L_e={class:"text-base md:text-xl"},N_e={class:"flex h-14 flex-col items-center justify-center gap-2 md:h-24"},k_e={class:"text-sm font-bold md:text-lg"},F_e={class:"text-base md:text-xl"},$_e={class:"flex h-14 flex-col items-center justify-center gap-2 md:h-24"},B_e={class:"text-sm font-bold md:text-lg"},V_e={class:"text-base md:text-xl"},U_e={class:"flex h-14 flex-col items-center justify-center gap-2 md:h-24"},H_e={class:"text-sm font-bold md:text-lg"},G_e={class:"text-base md:text-xl"},z_e=it({__name:"StatisticsStats",setup(e){return(t,n)=>(K(),ae("div",C_e,[L("div",E_e,[L("div",A_e,re(t.$t("connections")),1),L("div",I_e,re(N(ea).length),1)]),L("div",R_e,[L("div",P_e,re(t.$t("memoryUsage")),1),L("div",O_e,re(N(Tn)(N(kb),{binary:!0})),1)]),L("div",D_e,[L("div",M_e,re(t.$t("download")),1),L("div",L_e,re(N(Tn)(N(hg))),1)]),L("div",N_e,[L("div",k_e,re(t.$t("dlSpeed")),1),L("div",F_e,re(N(Tn)(N(Fb)))+"/s",1)]),L("div",$_e,[L("div",B_e,re(t.$t("upload")),1),L("div",V_e,re(N(Tn)(N(pg))),1)]),L("div",U_e,[L("div",H_e,re(t.$t("ulSpeed")),1),L("div",G_e,re(N(Tn)(N($b)))+"/s",1)])]))}}),W_e={class:"card card-compact w-full"},j_e={class:"card-title px-4 pt-4"},Y_e={class:"card-body gap-4"},X_e={class:"grid grid-cols-1 gap-2 xl:grid-cols-3"},K_e=it({__name:"ChartsCard",setup(e){return(t,n)=>(K(),ae("div",W_e,[L("div",j_e,re(t.$t("overview")),1),L("div",Y_e,[ye(z_e),L("div",X_e,[ye(cP,{class:"xl:h-64"}),ye(uP,{class:"xl:h-64"}),ye(lP,{class:"xl:h-64"})])])]))}}),sC=Fe(""),lC=Fe(""),b0=Fe(""),S0=Fe(""),w0=Fe(""),x0=Fe(""),T0=Fe(""),Z_e={class:"relative h-28 rounded-lg bg-base-200/40 p-2 text-sm"},q_e={class:"flex flex-col"},h8=it({__name:"ConnectionStatus",setup(e){const t=async()=>{Joe().then(n=>{b0.value=n.toFixed(0)}),Xoe().then(n=>{T0.value=n.toFixed(0)}),qoe().then(n=>{S0.value=n.toFixed(0)}),Zoe().then(n=>{w0.value=n.toFixed(0)}),Koe().then(n=>{x0.value=n.toFixed(0)})};return lo(()=>{q0.value&&[b0,T0,S0,w0,x0].some(n=>n.value==="")&&t()}),(n,r)=>(K(),ae("div",Z_e,[L("div",q_e,[L("div",null,[r[0]||(r[0]=L("span",{class:"inline-block w-28"},"Baidu ",-1)),r[1]||(r[1]=ft(" : ")),L("span",{class:rt(N(iu)(Number(N(b0))))},re(N(b0))+"ms ",3)]),L("div",null,[r[2]||(r[2]=L("span",{class:"inline-block w-28"},"Cloudflare ",-1)),r[3]||(r[3]=ft(" : ")),L("span",{class:rt(N(iu)(Number(N(T0))))},re(N(T0))+"ms ",3)]),L("div",null,[r[4]||(r[4]=L("span",{class:"inline-block w-28"},"OpenAI CDN",-1)),r[5]||(r[5]=ft(" : ")),L("span",{class:rt(N(iu)(Number(N(S0))))},re(N(S0))+"ms ",3)]),L("div",null,[r[6]||(r[6]=L("span",{class:"inline-block w-28"},"Github ",-1)),r[7]||(r[7]=ft(" : ")),L("span",{class:rt(N(iu)(Number(N(w0))))},re(N(w0))+"ms ",3)]),L("div",null,[r[8]||(r[8]=L("span",{class:"inline-block w-28"},"YouTube ",-1)),r[9]||(r[9]=ft(" : ")),L("span",{class:rt(N(iu)(Number(N(x0))))},re(N(x0))+"ms ",3)])]),L("button",{class:"btn btn-circle btn-sm absolute bottom-2 right-2",onClick:t},[ye(N(Ab),{class:"h-4 w-4"})])]))}}),J_e={class:"relative flex h-28 flex-col gap-1 rounded-lg bg-base-200/40 p-2"},Q_e={class:"tooltip tooltip-bottom inline-block w-24 text-left","data-tip":"api-v3.speedtest.cn"},e1e={class:"tooltip tooltip-bottom inline-block w-24 text-left","data-tip":"api.ip.sb"},p8=it({__name:"IPCheck",setup(e){const t=()=>{Yoe().then(n=>n.json()).then(n=>{sC.value=`${n.data.operator} (${n.data.country}) ${n.data.ip}`}),pV().then(n=>{lC.value=`${n.asn_organization} (${n.country}) ${n.ip}`})};return lo(()=>{Z0.value&&[sC,lC].some(n=>n.value==="")&&t()}),(n,r)=>(K(),ae("div",J_e,[L("div",null,[L("span",Q_e,re(n.$t("chinaIP")),1),ft(" : "+re(N(sC)),1)]),L("div",null,[L("span",e1e,re(n.$t("globalIP")),1),ft(" : "+re(N(lC)),1)]),L("button",{class:"btn btn-circle btn-sm absolute bottom-2 right-2",onClick:t},[ye(N(Ab),{class:"h-4 w-4"})])]))}}),t1e={class:"card card-compact w-full"},n1e={class:"card-title px-4 pt-4"},r1e={class:"card-body gap-4"},i1e={class:"grid grid-cols-1 gap-2 lg:grid-cols-2"},o1e=it({__name:"NetworkCard",setup(e){return(t,n)=>(K(),ae("div",t1e,[L("div",n1e,re(t.$t("networkInfo")),1),L("div",r1e,[L("div",i1e,[ye(p8),ye(h8)])])]))}}),a1e={class:"flex flex-col gap-2 p-2"},s1e={class:"card items-center justify-center gap-2 p-2 sm:flex-row"},l1e=it({__name:"OverviewPage",setup(e){return(t,n)=>(K(),ae("div",a1e,[ye(K_e),ye(o1e),n[0]||(n[0]=L("div",{class:"flex-1"},null,-1)),L("div",s1e,[ft(re(N(Eu)(N(fl)))+" ",1),ye(tR)])]))}}),v8=it({__name:"CollapseCard",props:{name:{}},setup(e){const t=e,n=Ve({get(){return Ex.value[t.name]},set(s){s?(i.value=!1,r.value=!0,gs(()=>{Ex.value[t.name]=!0})):Ex.value[t.name]=!1}}),r=Fe(n.value),i=Fe(!n.value),o=()=>{n.value||setTimeout(()=>{i.value=!n.value},50)},a=()=>{n.value||(r.value=!1)};return(s,l)=>(K(),ae("div",{class:rt(`collapse collapse-arrow ${n.value?"collapse-open":"collapse-close"}`)},[L("div",{class:"collapse-title cursor-pointer select-none pr-4",onClick:l[0]||(l[0]=u=>n.value=!n.value)},[Md(s.$slots,"title"),i.value?Md(s.$slots,"preview",{key:0}):mt("",!0)]),L("div",{class:"collapse-content flex flex-col gap-2 max-sm:px-2",onTransitionstart:o,onTransitionend:a},[r.value?Md(s.$slots,"content",{key:0}):mt("",!0)],32)],2))}});var z1=function(){return z1=Object.assign||function(e){for(var t,n=1,r=arguments.length;ni.endVal;i.frameVal=s?i.endVal:i.frameVal,i.frameVal=Number(i.frameVal.toFixed(i.options.decimalPlaces)),i.printValue(i.frameVal),a1?i.options.decimal+f[1]:"",i.options.useGrouping){u="";for(var d=3,h=0,v=0,m=s.length;vwindow.scrollY&&t.paused?(t.paused=!1,setTimeout(function(){return t.start()},t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):(window.scrollY>o||i>n)&&!t.paused&&t.reset()}},e.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var n=t-this.startVal;if(Math.abs(n)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var r=this.countDown?1:-1;this.endVal=t+r*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;this.finalEndVal!==null?this.useEasing=!1:this.useEasing=this.options.useEasing},e.prototype.start=function(t){this.error||(this.options.onStartCallback&&this.options.onStartCallback(),t&&(this.options.onCompleteCallback=t),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},e.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},e.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},e.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,this.finalEndVal==null&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},e.prototype.printValue=function(t){var n;if(this.el){var r=this.formattingFn(t);!((n=this.options.plugin)===null||n===void 0)&&n.render?this.options.plugin.render(this.el,r):this.el.tagName==="INPUT"?this.el.value=r:this.el.tagName==="text"||this.el.tagName==="tspan"?this.el.textContent=r:this.el.innerHTML=r}},e.prototype.ensureNumber=function(t){return typeof t=="number"&&!isNaN(t)},e.prototype.validateValue=function(t){var n=Number(t);return this.ensureNumber(n)?n:(this.error="[CountUp] invalid start or end value: ".concat(t),null)},e.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},e}();const g8=it({__name:"LatencyTag",props:{name:{}},setup(e){const t=e,n=Fe(),r=Ve(()=>Qg(t.name??""));let i=null;lo(()=>{Yt(r,(a,s)=>{i?i==null||i.update(a):gs(()=>{i=new u1e(n.value,r.value,{duration:1,separator:"",enableScrollSpy:!1,startVal:s}),i==null||i.update(a)})})}),Sh(()=>{i=null});const o=Ve(()=>iu(r.value));return(a,s)=>(K(),ae("div",{class:rt(N(Cn)("flex h-5 w-10 items-center justify-center rounded-xl bg-base-100 text-xs hover:bg-base-200",o.value))},[r.value===N(Jo)||!r.value?(K(),Ot(N(Ab),{key:0,class:"h-3 w-3 text-base-content"})):mt("",!0),_t(L("div",{ref_key:"latencyRef",ref:n},re(r.value),513),[[xI,r.value!==N(Jo)]])],2))}});/*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */const{entries:m8,setPrototypeOf:A3,isFrozen:c1e,getPrototypeOf:f1e,getOwnPropertyDescriptor:d1e}=Object;let{freeze:Di,seal:aa,create:y8}=Object,{apply:LA,construct:NA}=typeof Reflect<"u"&&Reflect;Di||(Di=function(t){return t});aa||(aa=function(t){return t});LA||(LA=function(t,n,r){return t.apply(n,r)});NA||(NA=function(t,n){return new t(...n)});const C0=Ro(Array.prototype.forEach),I3=Ro(Array.prototype.pop),Rp=Ro(Array.prototype.push),M_=Ro(String.prototype.toLowerCase),uC=Ro(String.prototype.toString),R3=Ro(String.prototype.match),Pp=Ro(String.prototype.replace),h1e=Ro(String.prototype.indexOf),p1e=Ro(String.prototype.trim),Ca=Ro(Object.prototype.hasOwnProperty),yi=Ro(RegExp.prototype.test),Op=v1e(TypeError);function Ro(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:M_;A3&&A3(e,null);let r=t.length;for(;r--;){let i=t[r];if(typeof i=="string"){const o=n(i);o!==i&&(c1e(t)||(t[r]=o),i=o)}e[i]=!0}return e}function g1e(e){for(let t=0;t/gm),S1e=aa(/\$\{[\w\W]*}/gm),w1e=aa(/^data-[\-\w.\u00B7-\uFFFF]+$/),x1e=aa(/^aria-[\-\w]+$/),_8=aa(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),T1e=aa(/^(?:\w+script|data):/i),C1e=aa(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),b8=aa(/^html$/i),E1e=aa(/^[a-z][.\w]*(-[.\w]+)+$/i);var L3=Object.freeze({__proto__:null,ARIA_ATTR:x1e,ATTR_WHITESPACE:C1e,CUSTOM_ELEMENT:E1e,DATA_ATTR:w1e,DOCTYPE_NAME:b8,ERB_EXPR:b1e,IS_ALLOWED_URI:_8,IS_SCRIPT_OR_DATA:T1e,MUSTACHE_EXPR:_1e,TMPLIT_EXPR:S1e});const Mp={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},A1e=function(){return typeof window>"u"?null:window},I1e=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null;const i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));const o="dompurify"+(r?"#"+r:"");try{return t.createPolicy(o,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},N3=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function S8(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:A1e();const t=pt=>S8(pt);if(t.version="3.2.3",t.removed=[],!e||!e.document||e.document.nodeType!==Mp.document)return t.isSupported=!1,t;let{document:n}=e;const r=n,i=r.currentScript,{DocumentFragment:o,HTMLTemplateElement:a,Node:s,Element:l,NodeFilter:u,NamedNodeMap:c=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:f,DOMParser:d,trustedTypes:h}=e,v=l.prototype,m=Dp(v,"cloneNode"),y=Dp(v,"remove"),_=Dp(v,"nextSibling"),b=Dp(v,"childNodes"),w=Dp(v,"parentNode");if(typeof a=="function"){const pt=n.createElement("template");pt.content&&pt.content.ownerDocument&&(n=pt.content.ownerDocument)}let S,C="";const{implementation:T,createNodeIterator:A,createDocumentFragment:P,getElementsByTagName:I}=n,{importNode:R}=r;let O=N3();t.isSupported=typeof m8=="function"&&typeof w=="function"&&T&&T.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:M,ERB_EXPR:$,TMPLIT_EXPR:F,DATA_ATTR:z,ARIA_ATTR:B,IS_SCRIPT_OR_DATA:Y,ATTR_WHITESPACE:j,CUSTOM_ELEMENT:se}=L3;let{IS_ALLOWED_URI:ge}=L3,ve=null;const De=qt({},[...P3,...cC,...fC,...dC,...O3]);let Ne=null;const ze=qt({},[...D3,...hC,...M3,...E0]);let Me=Object.seal(y8(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),je=null,ce=null,Ee=!0,Se=!0,Te=!1,Oe=!0,$e=!1,H=!0,G=!1,le=!1,we=!1,pe=!1,U=!1,W=!1,q=!0,fe=!1;const _e="user-content-";let Pe=!0,Z=!1,de={},Be=null;const Xe=qt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let ht=null;const ee=qt({},["audio","video","img","source","image","track"]);let ie=null;const he=qt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ce="http://www.w3.org/1998/Math/MathML",He="http://www.w3.org/2000/svg",ne="http://www.w3.org/1999/xhtml";let Ae=ne,ke=!1,Qe=null;const Ge=qt({},[Ce,He,ne],uC);let We=qt({},["mi","mo","mn","ms","mtext"]),et=qt({},["annotation-xml"]);const It=qt({},["title","style","font","a","script"]);let Pt=null;const Nn=["application/xhtml+xml","text/html"],fa="text/html";let Pn=null,pr=null;const Rf=n.createElement("form"),Sl=function(te){return te instanceof RegExp||te instanceof Function},Va=function(){let te=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(pr&&pr===te)){if((!te||typeof te!="object")&&(te={}),te=Ac(te),Pt=Nn.indexOf(te.PARSER_MEDIA_TYPE)===-1?fa:te.PARSER_MEDIA_TYPE,Pn=Pt==="application/xhtml+xml"?uC:M_,ve=Ca(te,"ALLOWED_TAGS")?qt({},te.ALLOWED_TAGS,Pn):De,Ne=Ca(te,"ALLOWED_ATTR")?qt({},te.ALLOWED_ATTR,Pn):ze,Qe=Ca(te,"ALLOWED_NAMESPACES")?qt({},te.ALLOWED_NAMESPACES,uC):Ge,ie=Ca(te,"ADD_URI_SAFE_ATTR")?qt(Ac(he),te.ADD_URI_SAFE_ATTR,Pn):he,ht=Ca(te,"ADD_DATA_URI_TAGS")?qt(Ac(ee),te.ADD_DATA_URI_TAGS,Pn):ee,Be=Ca(te,"FORBID_CONTENTS")?qt({},te.FORBID_CONTENTS,Pn):Xe,je=Ca(te,"FORBID_TAGS")?qt({},te.FORBID_TAGS,Pn):{},ce=Ca(te,"FORBID_ATTR")?qt({},te.FORBID_ATTR,Pn):{},de=Ca(te,"USE_PROFILES")?te.USE_PROFILES:!1,Ee=te.ALLOW_ARIA_ATTR!==!1,Se=te.ALLOW_DATA_ATTR!==!1,Te=te.ALLOW_UNKNOWN_PROTOCOLS||!1,Oe=te.ALLOW_SELF_CLOSE_IN_ATTR!==!1,$e=te.SAFE_FOR_TEMPLATES||!1,H=te.SAFE_FOR_XML!==!1,G=te.WHOLE_DOCUMENT||!1,pe=te.RETURN_DOM||!1,U=te.RETURN_DOM_FRAGMENT||!1,W=te.RETURN_TRUSTED_TYPE||!1,we=te.FORCE_BODY||!1,q=te.SANITIZE_DOM!==!1,fe=te.SANITIZE_NAMED_PROPS||!1,Pe=te.KEEP_CONTENT!==!1,Z=te.IN_PLACE||!1,ge=te.ALLOWED_URI_REGEXP||_8,Ae=te.NAMESPACE||ne,We=te.MATHML_TEXT_INTEGRATION_POINTS||We,et=te.HTML_INTEGRATION_POINTS||et,Me=te.CUSTOM_ELEMENT_HANDLING||{},te.CUSTOM_ELEMENT_HANDLING&&Sl(te.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Me.tagNameCheck=te.CUSTOM_ELEMENT_HANDLING.tagNameCheck),te.CUSTOM_ELEMENT_HANDLING&&Sl(te.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Me.attributeNameCheck=te.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),te.CUSTOM_ELEMENT_HANDLING&&typeof te.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Me.allowCustomizedBuiltInElements=te.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),$e&&(Se=!1),U&&(pe=!0),de&&(ve=qt({},O3),Ne=[],de.html===!0&&(qt(ve,P3),qt(Ne,D3)),de.svg===!0&&(qt(ve,cC),qt(Ne,hC),qt(Ne,E0)),de.svgFilters===!0&&(qt(ve,fC),qt(Ne,hC),qt(Ne,E0)),de.mathMl===!0&&(qt(ve,dC),qt(Ne,M3),qt(Ne,E0))),te.ADD_TAGS&&(ve===De&&(ve=Ac(ve)),qt(ve,te.ADD_TAGS,Pn)),te.ADD_ATTR&&(Ne===ze&&(Ne=Ac(Ne)),qt(Ne,te.ADD_ATTR,Pn)),te.ADD_URI_SAFE_ATTR&&qt(ie,te.ADD_URI_SAFE_ATTR,Pn),te.FORBID_CONTENTS&&(Be===Xe&&(Be=Ac(Be)),qt(Be,te.FORBID_CONTENTS,Pn)),Pe&&(ve["#text"]=!0),G&&qt(ve,["html","head","body"]),ve.table&&(qt(ve,["tbody"]),delete je.tbody),te.TRUSTED_TYPES_POLICY){if(typeof te.TRUSTED_TYPES_POLICY.createHTML!="function")throw Op('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof te.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Op('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');S=te.TRUSTED_TYPES_POLICY,C=S.createHTML("")}else S===void 0&&(S=I1e(h,i)),S!==null&&typeof C=="string"&&(C=S.createHTML(""));Di&&Di(te),pr=te}},bm=qt({},[...cC,...fC,...m1e]),Pf=qt({},[...dC,...y1e]),jS=function(te){let Ue=w(te);(!Ue||!Ue.tagName)&&(Ue={namespaceURI:Ae,tagName:"template"});const at=M_(te.tagName),Sn=M_(Ue.tagName);return Qe[te.namespaceURI]?te.namespaceURI===He?Ue.namespaceURI===ne?at==="svg":Ue.namespaceURI===Ce?at==="svg"&&(Sn==="annotation-xml"||We[Sn]):!!bm[at]:te.namespaceURI===Ce?Ue.namespaceURI===ne?at==="math":Ue.namespaceURI===He?at==="math"&&et[Sn]:!!Pf[at]:te.namespaceURI===ne?Ue.namespaceURI===He&&!et[Sn]||Ue.namespaceURI===Ce&&!We[Sn]?!1:!Pf[at]&&(It[at]||!bm[at]):!!(Pt==="application/xhtml+xml"&&Qe[te.namespaceURI]):!1},Mi=function(te){Rp(t.removed,{element:te});try{w(te).removeChild(te)}catch{y(te)}},Of=function(te,Ue){try{Rp(t.removed,{attribute:Ue.getAttributeNode(te),from:Ue})}catch{Rp(t.removed,{attribute:null,from:Ue})}if(Ue.removeAttribute(te),te==="is")if(pe||U)try{Mi(Ue)}catch{}else try{Ue.setAttribute(te,"")}catch{}},Sm=function(te){let Ue=null,at=null;if(we)te=""+te;else{const Qn=R3(te,/^[\r\n\t ]+/);at=Qn&&Qn[0]}Pt==="application/xhtml+xml"&&Ae===ne&&(te=''+te+"");const Sn=S?S.createHTML(te):te;if(Ae===ne)try{Ue=new d().parseFromString(Sn,Pt)}catch{}if(!Ue||!Ue.documentElement){Ue=T.createDocument(Ae,"template",null);try{Ue.documentElement.innerHTML=ke?C:Sn}catch{}}const Rr=Ue.body||Ue.documentElement;return te&&at&&Rr.insertBefore(n.createTextNode(at),Rr.childNodes[0]||null),Ae===ne?I.call(Ue,G?"html":"body")[0]:G?Ue.documentElement:Rr},wm=function(te){return A.call(te.ownerDocument||te,te,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Lh=function(te){return te instanceof f&&(typeof te.nodeName!="string"||typeof te.textContent!="string"||typeof te.removeChild!="function"||!(te.attributes instanceof c)||typeof te.removeAttribute!="function"||typeof te.setAttribute!="function"||typeof te.namespaceURI!="string"||typeof te.insertBefore!="function"||typeof te.hasChildNodes!="function")},xm=function(te){return typeof s=="function"&&te instanceof s};function da(pt,te,Ue){C0(pt,at=>{at.call(t,te,Ue,pr)})}const Tm=function(te){let Ue=null;if(da(O.beforeSanitizeElements,te,null),Lh(te))return Mi(te),!0;const at=Pn(te.nodeName);if(da(O.uponSanitizeElement,te,{tagName:at,allowedTags:ve}),te.hasChildNodes()&&!xm(te.firstElementChild)&&yi(/<[/\w]/g,te.innerHTML)&&yi(/<[/\w]/g,te.textContent)||te.nodeType===Mp.progressingInstruction||H&&te.nodeType===Mp.comment&&yi(/<[/\w]/g,te.data))return Mi(te),!0;if(!ve[at]||je[at]){if(!je[at]&&Nh(at)&&(Me.tagNameCheck instanceof RegExp&&yi(Me.tagNameCheck,at)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(at)))return!1;if(Pe&&!Be[at]){const Sn=w(te)||te.parentNode,Rr=b(te)||te.childNodes;if(Rr&&Sn){const Qn=Rr.length;for(let Wr=Qn-1;Wr>=0;--Wr){const Oo=m(Rr[Wr],!0);Oo.__removalCount=(te.__removalCount||0)+1,Sn.insertBefore(Oo,_(te))}}}return Mi(te),!0}return te instanceof l&&!jS(te)||(at==="noscript"||at==="noembed"||at==="noframes")&&yi(/<\/no(script|embed|frames)/i,te.innerHTML)?(Mi(te),!0):($e&&te.nodeType===Mp.text&&(Ue=te.textContent,C0([M,$,F],Sn=>{Ue=Pp(Ue,Sn," ")}),te.textContent!==Ue&&(Rp(t.removed,{element:te.cloneNode()}),te.textContent=Ue)),da(O.afterSanitizeElements,te,null),!1)},Cm=function(te,Ue,at){if(q&&(Ue==="id"||Ue==="name")&&(at in n||at in Rf))return!1;if(!(Se&&!ce[Ue]&&yi(z,Ue))){if(!(Ee&&yi(B,Ue))){if(!Ne[Ue]||ce[Ue]){if(!(Nh(te)&&(Me.tagNameCheck instanceof RegExp&&yi(Me.tagNameCheck,te)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(te))&&(Me.attributeNameCheck instanceof RegExp&&yi(Me.attributeNameCheck,Ue)||Me.attributeNameCheck instanceof Function&&Me.attributeNameCheck(Ue))||Ue==="is"&&Me.allowCustomizedBuiltInElements&&(Me.tagNameCheck instanceof RegExp&&yi(Me.tagNameCheck,at)||Me.tagNameCheck instanceof Function&&Me.tagNameCheck(at))))return!1}else if(!ie[Ue]){if(!yi(ge,Pp(at,j,""))){if(!((Ue==="src"||Ue==="xlink:href"||Ue==="href")&&te!=="script"&&h1e(at,"data:")===0&&ht[te])){if(!(Te&&!yi(Y,Pp(at,j,"")))){if(at)return!1}}}}}}return!0},Nh=function(te){return te!=="annotation-xml"&&R3(te,se)},Em=function(te){da(O.beforeSanitizeAttributes,te,null);const{attributes:Ue}=te;if(!Ue||Lh(te))return;const at={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ne,forceKeepAttr:void 0};let Sn=Ue.length;for(;Sn--;){const Rr=Ue[Sn],{name:Qn,namespaceURI:Wr,value:Oo}=Rr,Gu=Pn(Qn);let Pr=Qn==="value"?Oo:p1e(Oo);if(at.attrName=Gu,at.attrValue=Pr,at.keepAttr=!0,at.forceKeepAttr=void 0,da(O.uponSanitizeAttribute,te,at),Pr=at.attrValue,fe&&(Gu==="id"||Gu==="name")&&(Of(Qn,te),Pr=_e+Pr),H&&yi(/((--!?|])>)|<\/(style|title)/i,Pr)){Of(Qn,te);continue}if(at.forceKeepAttr||(Of(Qn,te),!at.keepAttr))continue;if(!Oe&&yi(/\/>/i,Pr)){Of(Qn,te);continue}$e&&C0([M,$,F],Fh=>{Pr=Pp(Pr,Fh," ")});const kh=Pn(te.nodeName);if(Cm(kh,Gu,Pr)){if(S&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!Wr)switch(h.getAttributeType(kh,Gu)){case"TrustedHTML":{Pr=S.createHTML(Pr);break}case"TrustedScriptURL":{Pr=S.createScriptURL(Pr);break}}try{Wr?te.setAttributeNS(Wr,Qn,Pr):te.setAttribute(Qn,Pr),Lh(te)?Mi(te):I3(t.removed)}catch{}}}da(O.afterSanitizeAttributes,te,null)},YS=function pt(te){let Ue=null;const at=wm(te);for(da(O.beforeSanitizeShadowDOM,te,null);Ue=at.nextNode();)da(O.uponSanitizeShadowNode,Ue,null),Tm(Ue),Em(Ue),Ue.content instanceof o&&pt(Ue.content);da(O.afterSanitizeShadowDOM,te,null)};return t.sanitize=function(pt){let te=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ue=null,at=null,Sn=null,Rr=null;if(ke=!pt,ke&&(pt=""),typeof pt!="string"&&!xm(pt))if(typeof pt.toString=="function"){if(pt=pt.toString(),typeof pt!="string")throw Op("dirty is not a string, aborting")}else throw Op("toString is not a function");if(!t.isSupported)return pt;if(le||Va(te),t.removed=[],typeof pt=="string"&&(Z=!1),Z){if(pt.nodeName){const Oo=Pn(pt.nodeName);if(!ve[Oo]||je[Oo])throw Op("root node is forbidden and cannot be sanitized in-place")}}else if(pt instanceof s)Ue=Sm(""),at=Ue.ownerDocument.importNode(pt,!0),at.nodeType===Mp.element&&at.nodeName==="BODY"||at.nodeName==="HTML"?Ue=at:Ue.appendChild(at);else{if(!pe&&!$e&&!G&&pt.indexOf("<")===-1)return S&&W?S.createHTML(pt):pt;if(Ue=Sm(pt),!Ue)return pe?null:W?C:""}Ue&&we&&Mi(Ue.firstChild);const Qn=wm(Z?pt:Ue);for(;Sn=Qn.nextNode();)Tm(Sn),Em(Sn),Sn.content instanceof o&&YS(Sn.content);if(Z)return pt;if(pe){if(U)for(Rr=P.call(Ue.ownerDocument);Ue.firstChild;)Rr.appendChild(Ue.firstChild);else Rr=Ue;return(Ne.shadowroot||Ne.shadowrootmode)&&(Rr=R.call(r,Rr,!0)),Rr}let Wr=G?Ue.outerHTML:Ue.innerHTML;return G&&ve["!doctype"]&&Ue.ownerDocument&&Ue.ownerDocument.doctype&&Ue.ownerDocument.doctype.name&&yi(b8,Ue.ownerDocument.doctype.name)&&(Wr=" +`+Wr),$e&&C0([M,$,F],Oo=>{Wr=Pp(Wr,Oo," ")}),S&&W?S.createHTML(Wr):Wr},t.setConfig=function(){let pt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Va(pt),le=!0},t.clearConfig=function(){pr=null,le=!1},t.isValidAttribute=function(pt,te,Ue){pr||Va({});const at=Pn(pt),Sn=Pn(te);return Cm(at,Sn,Ue)},t.addHook=function(pt,te){typeof te=="function"&&Rp(O[pt],te)},t.removeHook=function(pt){return I3(O[pt])},t.removeHooks=function(pt){O[pt]=[]},t.removeAllHooks=function(){O=N3()},t}var R1e=S8();const P1e=["innerHTML"],O1e=["src"],k3="data:image/svg+xml,",w8=it({__name:"ProxyIcon",props:{icon:{},fill:{},size:{}},setup(e){const t=e,n=Ve(()=>({width:(t.size==="small"?yv.value:yv.value+4)+"px",marginRight:r_.value-4+"px"})),r=Ve(()=>t.icon.startsWith(k3)),i=Ve(()=>{if(r.value)return R1e.sanitize(t.icon.replace(k3,""))}),o=Fe(""),a=async(l,u)=>{const f=await(await fetch(u)).blob(),d=new FileReader;d.onload=async()=>{const h=d.result;await mre(l,h),o.value=h},d.readAsDataURL(f)},s=async()=>{const l=t.icon;try{const u=await yre(l);u?o.value=u:await a(l,l)}catch(u){console.error("Fallback to original icon:",u),o.value=t.icon}};return lo(()=>{r.value?o.value=t.icon:s()}),(l,u)=>r.value?(K(),ae("div",{key:0,class:rt(["inline-block",l.fill||"fill-primary"]),style:Gr(n.value),innerHTML:i.value},null,14,P1e)):(K(),ae("img",{key:1,style:Gr(n.value),src:o.value},null,12,O1e))}}),D1e={class:"flex items-center gap-1"},W1=it({__name:"ProxyName",props:{name:{},size:{}},setup(e){const t=e,n=Ve(()=>{var r;return(r=fi.value[t.name])==null?void 0:r.icon});return(r,i)=>(K(),ae("div",D1e,[n.value?(K(),Ot(w8,{key:0,icon:n.value,size:r.size==="large"?"large":"small"},null,8,["icon","size"])):mt("",!0),L("span",{class:rt(r.size==="large"?"text-lg font-medium":"text-sm")},re(r.name),3)]))}});var to="top",sa="bottom",la="right",no="left",fP="auto",cm=[to,sa,la,no],uh="start",Dg="end",M1e="clippingParents",x8="viewport",Lp="popper",L1e="reference",F3=cm.reduce(function(e,t){return e.concat([t+"-"+uh,t+"-"+Dg])},[]),T8=[].concat(cm,[fP]).reduce(function(e,t){return e.concat([t,t+"-"+uh,t+"-"+Dg])},[]),N1e="beforeRead",k1e="read",F1e="afterRead",$1e="beforeMain",B1e="main",V1e="afterMain",U1e="beforeWrite",H1e="write",G1e="afterWrite",z1e=[N1e,k1e,F1e,$1e,B1e,V1e,U1e,H1e,G1e];function ps(e){return e?(e.nodeName||"").toLowerCase():null}function Po(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function bf(e){var t=Po(e).Element;return e instanceof t||e instanceof Element}function ra(e){var t=Po(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function dP(e){if(typeof ShadowRoot>"u")return!1;var t=Po(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function W1e(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},o=t.elements[n];!ra(o)||!ps(o)||(Object.assign(o.style,r),Object.keys(i).forEach(function(a){var s=i[a];s===!1?o.removeAttribute(a):o.setAttribute(a,s===!0?"":s)}))})}function j1e(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(r){var i=t.elements[r],o=t.attributes[r]||{},a=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),s=a.reduce(function(l,u){return l[u]="",l},{});!ra(i)||!ps(i)||(Object.assign(i.style,s),Object.keys(o).forEach(function(l){i.removeAttribute(l)}))})}}const C8={name:"applyStyles",enabled:!0,phase:"write",fn:W1e,effect:j1e,requires:["computeStyles"]};function as(e){return e.split("-")[0]}var af=Math.max,j1=Math.min,ch=Math.round;function kA(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function E8(){return!/^((?!chrome|android).)*safari/i.test(kA())}function fh(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&ra(e)&&(i=e.offsetWidth>0&&ch(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&ch(r.height)/e.offsetHeight||1);var a=bf(e)?Po(e):window,s=a.visualViewport,l=!E8()&&n,u=(r.left+(l&&s?s.offsetLeft:0))/i,c=(r.top+(l&&s?s.offsetTop:0))/o,f=r.width/i,d=r.height/o;return{width:f,height:d,top:c,right:u+f,bottom:c+d,left:u,x:u,y:c}}function hP(e){var t=fh(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function A8(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&dP(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function gl(e){return Po(e).getComputedStyle(e)}function Y1e(e){return["table","td","th"].indexOf(ps(e))>=0}function Hu(e){return((bf(e)?e.ownerDocument:e.document)||window.document).documentElement}function ES(e){return ps(e)==="html"?e:e.assignedSlot||e.parentNode||(dP(e)?e.host:null)||Hu(e)}function $3(e){return!ra(e)||gl(e).position==="fixed"?null:e.offsetParent}function X1e(e){var t=/firefox/i.test(kA()),n=/Trident/i.test(kA());if(n&&ra(e)){var r=gl(e);if(r.position==="fixed")return null}var i=ES(e);for(dP(i)&&(i=i.host);ra(i)&&["html","body"].indexOf(ps(i))<0;){var o=gl(i);if(o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].indexOf(o.willChange)!==-1||t&&o.willChange==="filter"||t&&o.filter&&o.filter!=="none")return i;i=i.parentNode}return null}function fm(e){for(var t=Po(e),n=$3(e);n&&Y1e(n)&&gl(n).position==="static";)n=$3(n);return n&&(ps(n)==="html"||ps(n)==="body"&&gl(n).position==="static")?t:n||X1e(e)||t}function pP(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function $v(e,t,n){return af(e,j1(t,n))}function K1e(e,t,n){var r=$v(e,t,n);return r>n?n:r}function I8(){return{top:0,right:0,bottom:0,left:0}}function R8(e){return Object.assign({},I8(),e)}function P8(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var Z1e=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,R8(typeof t!="number"?t:P8(t,cm))};function q1e(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,a=n.modifiersData.popperOffsets,s=as(n.placement),l=pP(s),u=[no,la].indexOf(s)>=0,c=u?"height":"width";if(!(!o||!a)){var f=Z1e(i.padding,n),d=hP(o),h=l==="y"?to:no,v=l==="y"?sa:la,m=n.rects.reference[c]+n.rects.reference[l]-a[l]-n.rects.popper[c],y=a[l]-n.rects.reference[l],_=fm(o),b=_?l==="y"?_.clientHeight||0:_.clientWidth||0:0,w=m/2-y/2,S=f[h],C=b-d[c]-f[v],T=b/2-d[c]/2+w,A=$v(S,T,C),P=l;n.modifiersData[r]=(t={},t[P]=A,t.centerOffset=A-T,t)}}function J1e(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||A8(t.elements.popper,i)&&(t.elements.arrow=i))}const Q1e={name:"arrow",enabled:!0,phase:"main",fn:q1e,effect:J1e,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function dh(e){return e.split("-")[1]}var ebe={top:"auto",right:"auto",bottom:"auto",left:"auto"};function tbe(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:ch(n*i)/i||0,y:ch(r*i)/i||0}}function B3(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,f=e.isFixed,d=a.x,h=d===void 0?0:d,v=a.y,m=v===void 0?0:v,y=typeof c=="function"?c({x:h,y:m}):{x:h,y:m};h=y.x,m=y.y;var _=a.hasOwnProperty("x"),b=a.hasOwnProperty("y"),w=no,S=to,C=window;if(u){var T=fm(n),A="clientHeight",P="clientWidth";if(T===Po(n)&&(T=Hu(n),gl(T).position!=="static"&&s==="absolute"&&(A="scrollHeight",P="scrollWidth")),T=T,i===to||(i===no||i===la)&&o===Dg){S=sa;var I=f&&T===C&&C.visualViewport?C.visualViewport.height:T[A];m-=I-r.height,m*=l?1:-1}if(i===no||(i===to||i===sa)&&o===Dg){w=la;var R=f&&T===C&&C.visualViewport?C.visualViewport.width:T[P];h-=R-r.width,h*=l?1:-1}}var O=Object.assign({position:s},u&&ebe),M=c===!0?tbe({x:h,y:m},Po(n)):{x:h,y:m};if(h=M.x,m=M.y,l){var $;return Object.assign({},O,($={},$[S]=b?"0":"",$[w]=_?"0":"",$.transform=(C.devicePixelRatio||1)<=1?"translate("+h+"px, "+m+"px)":"translate3d("+h+"px, "+m+"px, 0)",$))}return Object.assign({},O,(t={},t[S]=b?m+"px":"",t[w]=_?h+"px":"",t.transform="",t))}function nbe(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,o=n.adaptive,a=o===void 0?!0:o,s=n.roundOffsets,l=s===void 0?!0:s,u={placement:as(t.placement),variation:dh(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,B3(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,B3(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const rbe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:nbe,data:{}};var A0={passive:!0};function ibe(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=i===void 0?!0:i,a=r.resize,s=a===void 0?!0:a,l=Po(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&u.forEach(function(c){c.addEventListener("scroll",n.update,A0)}),s&&l.addEventListener("resize",n.update,A0),function(){o&&u.forEach(function(c){c.removeEventListener("scroll",n.update,A0)}),s&&l.removeEventListener("resize",n.update,A0)}}const obe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ibe,data:{}};var abe={left:"right",right:"left",bottom:"top",top:"bottom"};function L_(e){return e.replace(/left|right|bottom|top/g,function(t){return abe[t]})}var sbe={start:"end",end:"start"};function V3(e){return e.replace(/start|end/g,function(t){return sbe[t]})}function vP(e){var t=Po(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function gP(e){return fh(Hu(e)).left+vP(e).scrollLeft}function lbe(e,t){var n=Po(e),r=Hu(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;var u=E8();(u||!u&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s+gP(e),y:l}}function ube(e){var t,n=Hu(e),r=vP(e),i=(t=e.ownerDocument)==null?void 0:t.body,o=af(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=af(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-r.scrollLeft+gP(e),l=-r.scrollTop;return gl(i||n).direction==="rtl"&&(s+=af(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:l}}function mP(e){var t=gl(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function O8(e){return["html","body","#document"].indexOf(ps(e))>=0?e.ownerDocument.body:ra(e)&&mP(e)?e:O8(ES(e))}function Bv(e,t){var n;t===void 0&&(t=[]);var r=O8(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),o=Po(r),a=i?[o].concat(o.visualViewport||[],mP(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(Bv(ES(a)))}function FA(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function cbe(e,t){var n=fh(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function U3(e,t,n){return t===x8?FA(lbe(e,n)):bf(t)?cbe(t,n):FA(ube(Hu(e)))}function fbe(e){var t=Bv(ES(e)),n=["absolute","fixed"].indexOf(gl(e).position)>=0,r=n&&ra(e)?fm(e):e;return bf(r)?t.filter(function(i){return bf(i)&&A8(i,r)&&ps(i)!=="body"}):[]}function dbe(e,t,n,r){var i=t==="clippingParents"?fbe(e):[].concat(t),o=[].concat(i,[n]),a=o[0],s=o.reduce(function(l,u){var c=U3(e,u,r);return l.top=af(c.top,l.top),l.right=j1(c.right,l.right),l.bottom=j1(c.bottom,l.bottom),l.left=af(c.left,l.left),l},U3(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function D8(e){var t=e.reference,n=e.element,r=e.placement,i=r?as(r):null,o=r?dh(r):null,a=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(i){case to:l={x:a,y:t.y-n.height};break;case sa:l={x:a,y:t.y+t.height};break;case la:l={x:t.x+t.width,y:s};break;case no:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var u=i?pP(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(o){case uh:l[u]=l[u]-(t[c]/2-n[c]/2);break;case Dg:l[u]=l[u]+(t[c]/2-n[c]/2);break}}return l}function Mg(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,o=n.strategy,a=o===void 0?e.strategy:o,s=n.boundary,l=s===void 0?M1e:s,u=n.rootBoundary,c=u===void 0?x8:u,f=n.elementContext,d=f===void 0?Lp:f,h=n.altBoundary,v=h===void 0?!1:h,m=n.padding,y=m===void 0?0:m,_=R8(typeof y!="number"?y:P8(y,cm)),b=d===Lp?L1e:Lp,w=e.rects.popper,S=e.elements[v?b:d],C=dbe(bf(S)?S:S.contextElement||Hu(e.elements.popper),l,c,a),T=fh(e.elements.reference),A=D8({reference:T,element:w,strategy:"absolute",placement:i}),P=FA(Object.assign({},w,A)),I=d===Lp?P:T,R={top:C.top-I.top+_.top,bottom:I.bottom-C.bottom+_.bottom,left:C.left-I.left+_.left,right:I.right-C.right+_.right},O=e.modifiersData.offset;if(d===Lp&&O){var M=O[i];Object.keys(R).forEach(function($){var F=[la,sa].indexOf($)>=0?1:-1,z=[to,sa].indexOf($)>=0?"y":"x";R[$]+=M[z]*F})}return R}function hbe(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,u=l===void 0?T8:l,c=dh(r),f=c?s?F3:F3.filter(function(v){return dh(v)===c}):cm,d=f.filter(function(v){return u.indexOf(v)>=0});d.length===0&&(d=f);var h=d.reduce(function(v,m){return v[m]=Mg(e,{placement:m,boundary:i,rootBoundary:o,padding:a})[as(m)],v},{});return Object.keys(h).sort(function(v,m){return h[v]-h[m]})}function pbe(e){if(as(e)===fP)return[];var t=L_(e);return[V3(e),t,V3(t)]}function vbe(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!0:a,l=n.fallbackPlacements,u=n.padding,c=n.boundary,f=n.rootBoundary,d=n.altBoundary,h=n.flipVariations,v=h===void 0?!0:h,m=n.allowedAutoPlacements,y=t.options.placement,_=as(y),b=_===y,w=l||(b||!v?[L_(y)]:pbe(y)),S=[y].concat(w).reduce(function(ze,Me){return ze.concat(as(Me)===fP?hbe(t,{placement:Me,boundary:c,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:m}):Me)},[]),C=t.rects.reference,T=t.rects.popper,A=new Map,P=!0,I=S[0],R=0;R=0,z=F?"width":"height",B=Mg(t,{placement:O,boundary:c,rootBoundary:f,altBoundary:d,padding:u}),Y=F?$?la:no:$?sa:to;C[z]>T[z]&&(Y=L_(Y));var j=L_(Y),se=[];if(o&&se.push(B[M]<=0),s&&se.push(B[Y]<=0,B[j]<=0),se.every(function(ze){return ze})){I=O,P=!1;break}A.set(O,se)}if(P)for(var ge=v?3:1,ve=function(Me){var je=S.find(function(ce){var Ee=A.get(ce);if(Ee)return Ee.slice(0,Me).every(function(Se){return Se})});if(je)return I=je,"break"},De=ge;De>0;De--){var Ne=ve(De);if(Ne==="break")break}t.placement!==I&&(t.modifiersData[r]._skip=!0,t.placement=I,t.reset=!0)}}const gbe={name:"flip",enabled:!0,phase:"main",fn:vbe,requiresIfExists:["offset"],data:{_skip:!1}};function H3(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 G3(e){return[to,la,sa,no].some(function(t){return e[t]>=0})}function mbe(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=Mg(t,{elementContext:"reference"}),s=Mg(t,{altBoundary:!0}),l=H3(a,r),u=H3(s,i,o),c=G3(l),f=G3(u);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":f})}const ybe={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:mbe};function _be(e,t,n){var r=as(e),i=[no,to].indexOf(r)>=0?-1:1,o=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,a=o[0],s=o[1];return a=a||0,s=(s||0)*i,[no,la].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function bbe(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=i===void 0?[0,0]:i,a=T8.reduce(function(c,f){return c[f]=_be(f,t.rects,o),c},{}),s=a[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}const Sbe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:bbe};function wbe(e){var t=e.state,n=e.name;t.modifiersData[n]=D8({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const xbe={name:"popperOffsets",enabled:!0,phase:"read",fn:wbe,data:{}};function Tbe(e){return e==="x"?"y":"x"}function Cbe(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=i===void 0?!0:i,a=n.altAxis,s=a===void 0?!1:a,l=n.boundary,u=n.rootBoundary,c=n.altBoundary,f=n.padding,d=n.tether,h=d===void 0?!0:d,v=n.tetherOffset,m=v===void 0?0:v,y=Mg(t,{boundary:l,rootBoundary:u,padding:f,altBoundary:c}),_=as(t.placement),b=dh(t.placement),w=!b,S=pP(_),C=Tbe(S),T=t.modifiersData.popperOffsets,A=t.rects.reference,P=t.rects.popper,I=typeof m=="function"?m(Object.assign({},t.rects,{placement:t.placement})):m,R=typeof I=="number"?{mainAxis:I,altAxis:I}:Object.assign({mainAxis:0,altAxis:0},I),O=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,M={x:0,y:0};if(T){if(o){var $,F=S==="y"?to:no,z=S==="y"?sa:la,B=S==="y"?"height":"width",Y=T[S],j=Y+y[F],se=Y-y[z],ge=h?-P[B]/2:0,ve=b===uh?A[B]:P[B],De=b===uh?-P[B]:-A[B],Ne=t.elements.arrow,ze=h&&Ne?hP(Ne):{width:0,height:0},Me=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:I8(),je=Me[F],ce=Me[z],Ee=$v(0,A[B],ze[B]),Se=w?A[B]/2-ge-Ee-je-R.mainAxis:ve-Ee-je-R.mainAxis,Te=w?-A[B]/2+ge+Ee+ce+R.mainAxis:De+Ee+ce+R.mainAxis,Oe=t.elements.arrow&&fm(t.elements.arrow),$e=Oe?S==="y"?Oe.clientTop||0:Oe.clientLeft||0:0,H=($=O==null?void 0:O[S])!=null?$:0,G=Y+Se-H-$e,le=Y+Te-H,we=$v(h?j1(j,G):j,Y,h?af(se,le):se);T[S]=we,M[S]=we-Y}if(s){var pe,U=S==="x"?to:no,W=S==="x"?sa:la,q=T[C],fe=C==="y"?"height":"width",_e=q+y[U],Pe=q-y[W],Z=[to,no].indexOf(_)!==-1,de=(pe=O==null?void 0:O[C])!=null?pe:0,Be=Z?_e:q-A[fe]-P[fe]-de+R.altAxis,Xe=Z?q+A[fe]+P[fe]-de-R.altAxis:Pe,ht=h&&Z?K1e(Be,q,Xe):$v(h?Be:_e,q,h?Xe:Pe);T[C]=ht,M[C]=ht-q}t.modifiersData[r]=M}}const Ebe={name:"preventOverflow",enabled:!0,phase:"main",fn:Cbe,requiresIfExists:["offset"]};function Abe(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Ibe(e){return e===Po(e)||!ra(e)?vP(e):Abe(e)}function Rbe(e){var t=e.getBoundingClientRect(),n=ch(t.width)/e.offsetWidth||1,r=ch(t.height)/e.offsetHeight||1;return n!==1||r!==1}function Pbe(e,t,n){n===void 0&&(n=!1);var r=ra(t),i=ra(t)&&Rbe(t),o=Hu(t),a=fh(e,i,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((ps(t)!=="body"||mP(o))&&(s=Ibe(t)),ra(t)?(l=fh(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=gP(o))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function Obe(e){var t=new Map,n=new Set,r=[];e.forEach(function(o){t.set(o.name,o)});function i(o){n.add(o.name);var a=[].concat(o.requires||[],o.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&i(l)}}),r.push(o)}return e.forEach(function(o){n.has(o.name)||i(o)}),r}function Dbe(e){var t=Obe(e);return z1e.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function Mbe(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Lbe(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var z3={placement:"bottom",modifiers:[],strategy:"absolute"};function W3(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function F8(e,t){return typeof e=="function"?e.apply(void 0,t):e}function j3(e,t){if(t===0)return e;var n;return function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}}function Vbe(e){return e.split(/\s+/).filter(Boolean)}function Sd(e){return[].concat(e)}function Y3(e,t){e.indexOf(t)===-1&&e.push(t)}function Ube(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function Hbe(e){return e.split("-")[0]}function Y1(e){return[].slice.call(e)}function X3(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function Vv(){return document.createElement("div")}function AS(e){return["Element","Fragment"].some(function(t){return yP(e,t)})}function Gbe(e){return yP(e,"NodeList")}function zbe(e){return yP(e,"MouseEvent")}function Wbe(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function jbe(e){return AS(e)?[e]:Gbe(e)?Y1(e):Array.isArray(e)?e:Y1(document.querySelectorAll(e))}function vC(e,t){e.forEach(function(n){n&&(n.style.transitionDuration=t+"ms")})}function K3(e,t){e.forEach(function(n){n&&n.setAttribute("data-state",t)})}function Ybe(e){var t,n=Sd(e),r=n[0];return r!=null&&(t=r.ownerDocument)!=null&&t.body?r.ownerDocument:document}function Xbe(e,t){var n=t.clientX,r=t.clientY;return e.every(function(i){var o=i.popperRect,a=i.popperState,s=i.props,l=s.interactiveBorder,u=Hbe(a.placement),c=a.modifiersData.offset;if(!c)return!0;var f=u==="bottom"?c.top.y:0,d=u==="top"?c.bottom.y:0,h=u==="right"?c.left.x:0,v=u==="left"?c.right.x:0,m=o.top-r+f>l,y=r-o.bottom-d>l,_=o.left-n+h>l,b=n-o.right-v>l;return m||y||_||b})}function gC(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(i){e[r](i,n)})}function Z3(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=n.getRootNode==null||(r=n.getRootNode())==null?void 0:r.host}return!1}var Qa={isTouch:!1},q3=0;function Kbe(){Qa.isTouch||(Qa.isTouch=!0,window.performance&&document.addEventListener("mousemove",$8))}function $8(){var e=performance.now();e-q3<20&&(Qa.isTouch=!1,document.removeEventListener("mousemove",$8)),q3=e}function Zbe(){var e=document.activeElement;if(Wbe(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function qbe(){document.addEventListener("touchstart",Kbe,Ic),window.addEventListener("blur",Zbe)}var Jbe=typeof window<"u"&&typeof document<"u",Qbe=Jbe?!!window.msCrypto:!1,eSe={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},tSe={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Oa=Object.assign({appendTo:k8,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},eSe,tSe),nSe=Object.keys(Oa),rSe=function(t){var n=Object.keys(t);n.forEach(function(r){Oa[r]=t[r]})};function B8(e){var t=e.plugins||[],n=t.reduce(function(r,i){var o=i.name,a=i.defaultValue;if(o){var s;r[o]=e[o]!==void 0?e[o]:(s=Oa[o])!=null?s:a}return r},{});return Object.assign({},e,n)}function iSe(e,t){var n=t?Object.keys(B8(Object.assign({},Oa,{plugins:t}))):nSe,r=n.reduce(function(i,o){var a=(e.getAttribute("data-tippy-"+o)||"").trim();if(!a)return i;if(o==="content")i[o]=a;else try{i[o]=JSON.parse(a)}catch{i[o]=a}return i},{});return r}function J3(e,t){var n=Object.assign({},t,{content:F8(t.content,[e])},t.ignoreAttributes?{}:iSe(e,t.plugins));return n.aria=Object.assign({},Oa.aria,n.aria),n.aria={expanded:n.aria.expanded==="auto"?t.interactive:n.aria.expanded,content:n.aria.content==="auto"?t.interactive?null:"describedby":n.aria.content},n}var oSe=function(){return"innerHTML"};function $A(e,t){e[oSe()]=t}function Q3(e){var t=Vv();return e===!0?t.className=L8:(t.className=N8,AS(e)?t.appendChild(e):$A(t,e)),t}function e5(e,t){AS(t.content)?($A(e,""),e.appendChild(t.content)):typeof t.content!="function"&&(t.allowHTML?$A(e,t.content):e.textContent=t.content)}function BA(e){var t=e.firstElementChild,n=Y1(t.children);return{box:t,content:n.find(function(r){return r.classList.contains(M8)}),arrow:n.find(function(r){return r.classList.contains(L8)||r.classList.contains(N8)}),backdrop:n.find(function(r){return r.classList.contains(Bbe)})}}function V8(e){var t=Vv(),n=Vv();n.className=$be,n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=Vv();r.className=M8,r.setAttribute("data-state","hidden"),e5(r,e.props),t.appendChild(n),n.appendChild(r),i(e.props,e.props);function i(o,a){var s=BA(t),l=s.box,u=s.content,c=s.arrow;a.theme?l.setAttribute("data-theme",a.theme):l.removeAttribute("data-theme"),typeof a.animation=="string"?l.setAttribute("data-animation",a.animation):l.removeAttribute("data-animation"),a.inertia?l.setAttribute("data-inertia",""):l.removeAttribute("data-inertia"),l.style.maxWidth=typeof a.maxWidth=="number"?a.maxWidth+"px":a.maxWidth,a.role?l.setAttribute("role",a.role):l.removeAttribute("role"),(o.content!==a.content||o.allowHTML!==a.allowHTML)&&e5(u,e.props),a.arrow?c?o.arrow!==a.arrow&&(l.removeChild(c),l.appendChild(Q3(a.arrow))):l.appendChild(Q3(a.arrow)):c&&l.removeChild(c)}return{popper:t,onUpdate:i}}V8.$$tippy=!0;var aSe=1,I0=[],mC=[];function sSe(e,t){var n=J3(e,Object.assign({},Oa,B8(X3(t)))),r,i,o,a=!1,s=!1,l=!1,u=!1,c,f,d,h=[],v=j3(G,n.interactiveDebounce),m,y=aSe++,_=null,b=Ube(n.plugins),w={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},S={id:y,reference:e,popper:Vv(),popperInstance:_,props:n,state:w,plugins:b,clearDelayTimeouts:Be,setProps:Xe,setContent:ht,show:ee,hide:ie,hideWithInteractivity:he,enable:Z,disable:de,unmount:Ce,destroy:He};if(!n.render)return S;var C=n.render(S),T=C.popper,A=C.onUpdate;T.setAttribute("data-tippy-root",""),T.id="tippy-"+S.id,S.popper=T,e._tippy=S,T._tippy=S;var P=b.map(function(ne){return ne.fn(S)}),I=e.hasAttribute("aria-expanded");return Oe(),ge(),Y(),j("onCreate",[S]),n.showOnCreate&&_e(),T.addEventListener("mouseenter",function(){S.props.interactive&&S.state.isVisible&&S.clearDelayTimeouts()}),T.addEventListener("mouseleave",function(){S.props.interactive&&S.props.trigger.indexOf("mouseenter")>=0&&F().addEventListener("mousemove",v)}),S;function R(){var ne=S.props.touch;return Array.isArray(ne)?ne:[ne,0]}function O(){return R()[0]==="hold"}function M(){var ne;return!!((ne=S.props.render)!=null&&ne.$$tippy)}function $(){return m||e}function F(){var ne=$().parentNode;return ne?Ybe(ne):document}function z(){return BA(T)}function B(ne){return S.state.isMounted&&!S.state.isVisible||Qa.isTouch||c&&c.type==="focus"?0:pC(S.props.delay,ne?0:1,Oa.delay)}function Y(ne){ne===void 0&&(ne=!1),T.style.pointerEvents=S.props.interactive&&!ne?"":"none",T.style.zIndex=""+S.props.zIndex}function j(ne,Ae,ke){if(ke===void 0&&(ke=!0),P.forEach(function(Ge){Ge[ne]&&Ge[ne].apply(Ge,Ae)}),ke){var Qe;(Qe=S.props)[ne].apply(Qe,Ae)}}function se(){var ne=S.props.aria;if(ne.content){var Ae="aria-"+ne.content,ke=T.id,Qe=Sd(S.props.triggerTarget||e);Qe.forEach(function(Ge){var We=Ge.getAttribute(Ae);if(S.state.isVisible)Ge.setAttribute(Ae,We?We+" "+ke:ke);else{var et=We&&We.replace(ke,"").trim();et?Ge.setAttribute(Ae,et):Ge.removeAttribute(Ae)}})}}function ge(){if(!(I||!S.props.aria.expanded)){var ne=Sd(S.props.triggerTarget||e);ne.forEach(function(Ae){S.props.interactive?Ae.setAttribute("aria-expanded",S.state.isVisible&&Ae===$()?"true":"false"):Ae.removeAttribute("aria-expanded")})}}function ve(){F().removeEventListener("mousemove",v),I0=I0.filter(function(ne){return ne!==v})}function De(ne){if(!(Qa.isTouch&&(l||ne.type==="mousedown"))){var Ae=ne.composedPath&&ne.composedPath()[0]||ne.target;if(!(S.props.interactive&&Z3(T,Ae))){if(Sd(S.props.triggerTarget||e).some(function(ke){return Z3(ke,Ae)})){if(Qa.isTouch||S.state.isVisible&&S.props.trigger.indexOf("click")>=0)return}else j("onClickOutside",[S,ne]);S.props.hideOnClick===!0&&(S.clearDelayTimeouts(),S.hide(),s=!0,setTimeout(function(){s=!1}),S.state.isMounted||je())}}}function Ne(){l=!0}function ze(){l=!1}function Me(){var ne=F();ne.addEventListener("mousedown",De,!0),ne.addEventListener("touchend",De,Ic),ne.addEventListener("touchstart",ze,Ic),ne.addEventListener("touchmove",Ne,Ic)}function je(){var ne=F();ne.removeEventListener("mousedown",De,!0),ne.removeEventListener("touchend",De,Ic),ne.removeEventListener("touchstart",ze,Ic),ne.removeEventListener("touchmove",Ne,Ic)}function ce(ne,Ae){Se(ne,function(){!S.state.isVisible&&T.parentNode&&T.parentNode.contains(T)&&Ae()})}function Ee(ne,Ae){Se(ne,Ae)}function Se(ne,Ae){var ke=z().box;function Qe(Ge){Ge.target===ke&&(gC(ke,"remove",Qe),Ae())}if(ne===0)return Ae();gC(ke,"remove",f),gC(ke,"add",Qe),f=Qe}function Te(ne,Ae,ke){ke===void 0&&(ke=!1);var Qe=Sd(S.props.triggerTarget||e);Qe.forEach(function(Ge){Ge.addEventListener(ne,Ae,ke),h.push({node:Ge,eventType:ne,handler:Ae,options:ke})})}function Oe(){O()&&(Te("touchstart",H,{passive:!0}),Te("touchend",le,{passive:!0})),Vbe(S.props.trigger).forEach(function(ne){if(ne!=="manual")switch(Te(ne,H),ne){case"mouseenter":Te("mouseleave",le);break;case"focus":Te(Qbe?"focusout":"blur",we);break;case"focusin":Te("focusout",we);break}})}function $e(){h.forEach(function(ne){var Ae=ne.node,ke=ne.eventType,Qe=ne.handler,Ge=ne.options;Ae.removeEventListener(ke,Qe,Ge)}),h=[]}function H(ne){var Ae,ke=!1;if(!(!S.state.isEnabled||pe(ne)||s)){var Qe=((Ae=c)==null?void 0:Ae.type)==="focus";c=ne,m=ne.currentTarget,ge(),!S.state.isVisible&&zbe(ne)&&I0.forEach(function(Ge){return Ge(ne)}),ne.type==="click"&&(S.props.trigger.indexOf("mouseenter")<0||a)&&S.props.hideOnClick!==!1&&S.state.isVisible?ke=!0:_e(ne),ne.type==="click"&&(a=!ke),ke&&!Qe&&Pe(ne)}}function G(ne){var Ae=ne.target,ke=$().contains(Ae)||T.contains(Ae);if(!(ne.type==="mousemove"&&ke)){var Qe=fe().concat(T).map(function(Ge){var We,et=Ge._tippy,It=(We=et.popperInstance)==null?void 0:We.state;return It?{popperRect:Ge.getBoundingClientRect(),popperState:It,props:n}:null}).filter(Boolean);Xbe(Qe,ne)&&(ve(),Pe(ne))}}function le(ne){var Ae=pe(ne)||S.props.trigger.indexOf("click")>=0&&a;if(!Ae){if(S.props.interactive){S.hideWithInteractivity(ne);return}Pe(ne)}}function we(ne){S.props.trigger.indexOf("focusin")<0&&ne.target!==$()||S.props.interactive&&ne.relatedTarget&&T.contains(ne.relatedTarget)||Pe(ne)}function pe(ne){return Qa.isTouch?O()!==ne.type.indexOf("touch")>=0:!1}function U(){W();var ne=S.props,Ae=ne.popperOptions,ke=ne.placement,Qe=ne.offset,Ge=ne.getReferenceClientRect,We=ne.moveTransition,et=M()?BA(T).arrow:null,It=Ge?{getBoundingClientRect:Ge,contextElement:Ge.contextElement||$()}:e,Pt={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(Pn){var pr=Pn.state;if(M()){var Rf=z(),Sl=Rf.box;["placement","reference-hidden","escaped"].forEach(function(Va){Va==="placement"?Sl.setAttribute("data-placement",pr.placement):pr.attributes.popper["data-popper-"+Va]?Sl.setAttribute("data-"+Va,""):Sl.removeAttribute("data-"+Va)}),pr.attributes.popper={}}}},Nn=[{name:"offset",options:{offset:Qe}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!We}},Pt];M()&&et&&Nn.push({name:"arrow",options:{element:et,padding:3}}),Nn.push.apply(Nn,(Ae==null?void 0:Ae.modifiers)||[]),S.popperInstance=Fbe(It,T,Object.assign({},Ae,{placement:ke,onFirstUpdate:d,modifiers:Nn}))}function W(){S.popperInstance&&(S.popperInstance.destroy(),S.popperInstance=null)}function q(){var ne=S.props.appendTo,Ae,ke=$();S.props.interactive&&ne===k8||ne==="parent"?Ae=ke.parentNode:Ae=F8(ne,[ke]),Ae.contains(T)||Ae.appendChild(T),S.state.isMounted=!0,U()}function fe(){return Y1(T.querySelectorAll("[data-tippy-root]"))}function _e(ne){S.clearDelayTimeouts(),ne&&j("onTrigger",[S,ne]),Me();var Ae=B(!0),ke=R(),Qe=ke[0],Ge=ke[1];Qa.isTouch&&Qe==="hold"&&Ge&&(Ae=Ge),Ae?r=setTimeout(function(){S.show()},Ae):S.show()}function Pe(ne){if(S.clearDelayTimeouts(),j("onUntrigger",[S,ne]),!S.state.isVisible){je();return}if(!(S.props.trigger.indexOf("mouseenter")>=0&&S.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(ne.type)>=0&&a)){var Ae=B(!1);Ae?i=setTimeout(function(){S.state.isVisible&&S.hide()},Ae):o=requestAnimationFrame(function(){S.hide()})}}function Z(){S.state.isEnabled=!0}function de(){S.hide(),S.state.isEnabled=!1}function Be(){clearTimeout(r),clearTimeout(i),cancelAnimationFrame(o)}function Xe(ne){if(!S.state.isDestroyed){j("onBeforeUpdate",[S,ne]),$e();var Ae=S.props,ke=J3(e,Object.assign({},Ae,X3(ne),{ignoreAttributes:!0}));S.props=ke,Oe(),Ae.interactiveDebounce!==ke.interactiveDebounce&&(ve(),v=j3(G,ke.interactiveDebounce)),Ae.triggerTarget&&!ke.triggerTarget?Sd(Ae.triggerTarget).forEach(function(Qe){Qe.removeAttribute("aria-expanded")}):ke.triggerTarget&&e.removeAttribute("aria-expanded"),ge(),Y(),A&&A(Ae,ke),S.popperInstance&&(U(),fe().forEach(function(Qe){requestAnimationFrame(Qe._tippy.popperInstance.forceUpdate)})),j("onAfterUpdate",[S,ne])}}function ht(ne){S.setProps({content:ne})}function ee(){var ne=S.state.isVisible,Ae=S.state.isDestroyed,ke=!S.state.isEnabled,Qe=Qa.isTouch&&!S.props.touch,Ge=pC(S.props.duration,0,Oa.duration);if(!(ne||Ae||ke||Qe)&&!$().hasAttribute("disabled")&&(j("onShow",[S],!1),S.props.onShow(S)!==!1)){if(S.state.isVisible=!0,M()&&(T.style.visibility="visible"),Y(),Me(),S.state.isMounted||(T.style.transition="none"),M()){var We=z(),et=We.box,It=We.content;vC([et,It],0)}d=function(){var Nn;if(!(!S.state.isVisible||u)){if(u=!0,T.offsetHeight,T.style.transition=S.props.moveTransition,M()&&S.props.animation){var fa=z(),Pn=fa.box,pr=fa.content;vC([Pn,pr],Ge),K3([Pn,pr],"visible")}se(),ge(),Y3(mC,S),(Nn=S.popperInstance)==null||Nn.forceUpdate(),j("onMount",[S]),S.props.animation&&M()&&Ee(Ge,function(){S.state.isShown=!0,j("onShown",[S])})}},q()}}function ie(){var ne=!S.state.isVisible,Ae=S.state.isDestroyed,ke=!S.state.isEnabled,Qe=pC(S.props.duration,1,Oa.duration);if(!(ne||Ae||ke)&&(j("onHide",[S],!1),S.props.onHide(S)!==!1)){if(S.state.isVisible=!1,S.state.isShown=!1,u=!1,a=!1,M()&&(T.style.visibility="hidden"),ve(),je(),Y(!0),M()){var Ge=z(),We=Ge.box,et=Ge.content;S.props.animation&&(vC([We,et],Qe),K3([We,et],"hidden"))}se(),ge(),S.props.animation?M()&&ce(Qe,S.unmount):S.unmount()}}function he(ne){F().addEventListener("mousemove",v),Y3(I0,v),v(ne)}function Ce(){S.state.isVisible&&S.hide(),S.state.isMounted&&(W(),fe().forEach(function(ne){ne._tippy.unmount()}),T.parentNode&&T.parentNode.removeChild(T),mC=mC.filter(function(ne){return ne!==S}),S.state.isMounted=!1,j("onHidden",[S]))}function He(){S.state.isDestroyed||(S.clearDelayTimeouts(),S.unmount(),$e(),delete e._tippy,S.state.isDestroyed=!0,j("onDestroy",[S]))}}function dm(e,t){t===void 0&&(t={});var n=Oa.plugins.concat(t.plugins||[]);qbe();var r=Object.assign({},t,{plugins:n}),i=jbe(e),o=i.reduce(function(a,s){var l=s&&sSe(s,r);return l&&a.push(l),a},[]);return AS(e)?o[0]:o}dm.defaultProps=Oa;dm.setDefaultProps=rSe;dm.currentInput=Qa;Object.assign({},C8,{effect:function(t){var n=t.state,r={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(n.elements.popper.style,r.popper),n.styles=r,n.elements.arrow&&Object.assign(n.elements.arrow.style,r.arrow)}});dm.setDefaultProps({render:V8});const U8=()=>{let e=null;return{showTip:(n,r)=>{e==null||e.destroy(),e=dm(n.target,{content:r,placement:"top",animation:"scale",appendTo:document.body,allowHTML:!0,onHidden:()=>{e==null||e.destroy(),e=null}}),e.show()}}},lSe={class:"flex w-full flex-1 items-center gap-1"},uSe={class:"flex h-4 w-full items-center justify-between"},cSe=it({__name:"ProxyNodeCard",props:{name:{},active:{type:Boolean}},setup(e){const t=e,{showTip:n}=U8(),r=c=>{const f=c.target,{scrollWidth:d,clientWidth:h}=f;d>h&&n(c,f.innerText)},i=Ve(()=>fi.value[t.name]),o=Fe(!1),a=c=>(c=c.toLowerCase(),c=c.replace("shadowsocks","ss"),c=c.replace("hysteria","hy"),c=c.replace("wireguard","wg"),c),s=Ve(()=>mv.value===Zg.SMALL),l=Ve(()=>{const c=a(i.value.type),f=Zc.value&&Bre(i.value.name)?"IPv6":"",d=i.value.xudp?"xudp":i.value.udp?"udp":"";return[c,d,f].filter(Boolean).join(s.value?"/":" / ")}),u=async()=>{if(!o.value){o.value=!0;try{await Vre(t.name),o.value=!1}catch{o.value=!1}}};return(c,f)=>(K(),ae("div",{ref:"cardRef",class:rt(N(Cn)("flex cursor-pointer flex-col items-start gap-[2px] rounded-md bg-base-200",c.active?"bg-primary text-primary-content":"sm:hover:bg-base-300",s.value?"p-1":"p-2"))},[L("div",lSe,[i.value.icon?(K(),Ot(w8,{key:0,class:"shrink-0",size:"small",icon:i.value.icon,fill:c.active?"fill-primary-content":"fill-base-content"},null,8,["icon","fill"])):mt("",!0),L("span",{class:rt(N(Cn)("text-sm",N(vv)&&"truncate")),onMouseenter:r},re(i.value.name),35)]),L("div",uSe,[L("span",{class:rt(`whitespace-nowrap text-xs tracking-tight ${c.active?"text-primary-content":"text-slate-500"}`)},re(l.value),3),ye(g8,{class:rt([o.value?"animate-pulse cursor-wait":"",s.value&&"!h-4 !w-8"]),name:i.value.name,onClick:xo(u,["stop"])},null,8,["class","name"])])],2))}}),H8=Xb(cSe,[["__scopeId","data-v-c4818018"]]),fSe=it({__name:"ProxyNodeGrid",setup(e){const{hasTwoColumns:t}=Kb();return(n,r)=>(K(),ae("div",{class:rt(N(Cn)("grid grid-cols-2 gap-2 overflow-y-auto overflow-x-hidden",N(vv)&&"max-h-96",N(mv)===N(Zg).LARGE?N(mu)?N(t)?"sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-3 2xl:grid-cols-4 3xl:grid-cols-5":"sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 2xl:grid-cols-8 3xl:grid-cols-10":N(t)?"sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-2 2xl:grid-cols-3 3xl:grid-cols-4":"sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-6 3xl:grid-cols-8":N(mu)?N(t)?"sm:grid-cols-4 md:grid-cols-5 lg:grid-cols-6 xl:grid-cols-4 2xl:grid-cols-5 3xl:grid-cols-6":"sm:grid-cols-4 md:grid-cols-5 lg:grid-cols-6 xl:grid-cols-8 2xl:grid-cols-10 3xl:grid-cols-12":N(t)?"sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-3 2xl:grid-cols-4 3xl:grid-cols-5":"sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-8 3xl:grid-cols-10"))},[Md(n.$slots,"default",{},void 0,!0)],2))}}),G8=Xb(fSe,[["__scopeId","data-v-07ba44e0"]]),dSe={key:0,class:"flex flex-wrap gap-1 pt-2"},hSe=["onMouseenter","onClick"],pSe={key:0,class:"h-2 w-2 rounded-full bg-white"},vSe={key:1,class:"flex items-center gap-2 py-2"},gSe={class:"flex flex-1 items-center justify-center overflow-hidden rounded-2xl [&>*]:h-2"},mSe=it({__name:"ProxyPreview",props:{nodes:{},now:{}},setup(e){const t=e,{showTip:n}=U8(),r=(f,d)=>{const h=document.createElement("div"),v=document.createElement("div");if(v.textContent=d.name,h.append(v),d.latency!==Jo){const m=document.createElement("div");m.textContent=`${d.latency}ms`,m.classList.add(iu(d.latency)),h.append(m)}h.classList.add("flex","items-center","gap-2"),n(f,h)},i=Ve(()=>gv.value===ug.DOTS||gv.value===ug.AUTO&&t.nodes.length<20),o=Ve(()=>t.nodes.map(f=>({latency:Qg(f),name:f}))),a=f=>f===Jo?"bg-gray-500":fo.value.filter(f=>f.latencyJo).length),l=Ve(()=>o.value.filter(f=>f.latency>=lu.value&&f.latencyo.value.filter(f=>f.latency>=Xs.value).length),c=Ve(()=>o.value.filter(f=>f.latency===Jo).length);return(f,d)=>i.value?(K(),ae("div",dSe,[(K(!0),ae(Ze,null,on(o.value,h=>(K(),ae("div",{key:h.name,class:rt(["flex h-4 w-4 items-center justify-center rounded-full transition hover:scale-110",a(h.latency)]),ref_for:!0,ref:"dotsRef",onMouseenter:v=>r(v,h),onClick:xo(v=>f.$emit("nodeclick",h.name),["stop"])},[f.now===h.name?(K(),ae("div",pSe)):mt("",!0)],42,hSe))),128))])):(K(),ae("div",vSe,[L("div",gSe,[L("div",{class:rt(a(N(lu)-1)),style:Gr({width:`${s.value*100/f.nodes.length}%`})},null,6),L("div",{class:rt(a(N(Xs)-1)),style:Gr({width:`${l.value*100/f.nodes.length}%`})},null,6),L("div",{class:rt(a(N(Xs)+1)),style:Gr({width:`${u.value*100/f.nodes.length}%`})},null,6),L("div",{class:rt(a(N(Jo))),style:Gr({width:`${c.value*100/f.nodes.length}%`})},null,6)])]))}}),z8=Xb(mSe,[["__scopeId","data-v-7ca56d01"]]),ySe={class:"flex items-center gap-2 pr-5"},_Se={class:"flex flex-1 items-center gap-1"},bSe={class:"flex-1 text-xs text-slate-400"},SSe={class:"mt-[2px] flex items-center gap-2"},wSe={class:"flex flex-1 items-center gap-1"},xSe={class:"shrink-0 text-xs text-slate-500"},TSe=it({__name:"ProxyGroup",props:{name:{}},setup(e){const t=e,n=Ve(()=>fi.value[t.name]),r=Ve(()=>LB(n.value.all??[])),i=Fe(!1),o=async()=>{if(!i.value){i.value=!0;try{await Ure(t.name),i.value=!1}catch{i.value=!1}}},a=Ve(()=>ea.value.filter(l=>l.chains.includes(t.name)).reduce((l,u)=>l+u.downloadSpeed,0));return(s,l)=>(K(),Ot(v8,{name:n.value.name},{title:Mr(()=>{var u;return[L("div",ySe,[L("div",_Se,[ye(W1,{name:n.value.name,size:"large"},null,8,["name"]),L("span",bSe,": "+re(n.value.type)+" ("+re((u=n.value.all)==null?void 0:u.length)+")",1)]),ye(g8,{class:rt(N(Cn)("z-10 bg-base-200/40 hover:shadow",i.value?"animate-pulse cursor-wait bg-base-300":"")),name:n.value.now,onClick:xo(o,["stop"])},null,8,["class","name"])]),L("div",SSe,[L("div",wSe,[n.value.now?(K(),ae(Ze,{key:0},[ye(N(ff),{class:"h-4 w-4"}),ye(W1,{class:"text-slate-500",name:n.value.now},null,8,["name"])],64)):mt("",!0)]),L("div",xSe,re(N(Tn)(a.value))+"/s",1)])]}),preview:Mr(()=>[ye(z8,{nodes:r.value,now:n.value.now,groupName:n.value.name,onNodeclick:l[0]||(l[0]=u=>N(vL)(n.value.name,u))},null,8,["nodes","now","groupName"])]),content:Mr(()=>[ye(G8,null,{default:Mr(()=>[(K(!0),ae(Ze,null,on(r.value,u=>(K(),Ot(H8,{key:u,name:u,active:u===n.value.now,onClick:c=>N(vL)(n.value.name,u)},null,8,["name","active","onClick"]))),128))]),_:1})]),_:1},8,["name"]))}}),CSe={class:"flex items-center gap-2"},ESe={class:"text-lg font-medium sm:text-xl"},ASe={class:"text-sm"},ISe={class:"flex gap-2"},RSe=["value"],PSe={class:"flex flex-col sm:flex-row sm:gap-4"},OSe={class:"text-sm text-slate-500"},DSe={class:"text-sm text-slate-500"},MSe={class:"text-sm text-slate-500"},LSe=it({__name:"ProxyProvider",props:{name:{}},setup(e){const t=e,n=c=>{const{Download:f=0,Upload:d=0,Total:h=0,Expire:v=0}=c;if(f===0&&d===0&&h===0&&v===0)return null;const m=Tn(h,{binary:!0}),y=Tn(f+d,{binary:!0}),_=Ai.toFinite(((f+d)/h*100).toFixed(2));return{total:m,used:y,percentage:_,expirePrefix:()=>{const{t:S}=cs();return S("expire")},expireStr:()=>{const{t:S}=cs();return v===0?S("noExpire"):La(v*1e3).format("YYYY-MM-DD")}}},r=Ve(()=>kd.value.find(c=>c.name===t.name)),i=Ve(()=>LB(r.value.proxies.map(c=>c.name))),o=Ve(()=>r.value.subscriptionInfo?n(r.value.subscriptionInfo):null),a=Fe(!1),s=Fe(!1),l=async()=>{if(!s.value){s.value=!0;try{await Moe(t.name),await dl(),s.value=!1}catch{s.value=!1}}},u=async()=>{if(!a.value){a.value=!0;try{await cV(t.name),await dl(),a.value=!1}catch{a.value=!1}}};return(c,f)=>(K(),Ot(v8,{name:r.value.name},{title:Mr(()=>[L("div",CSe,[L("div",ESe,[ft(re(r.value.name)+" ",1),L("span",ASe," ("+re(r.value.proxies.length)+") ",1)]),f[0]||(f[0]=L("div",{class:"flex-1"},null,-1)),L("div",ISe,[L("button",{class:rt(N(Cn)("btn btn-circle btn-sm z-30",s.value?"animate-pulse":"")),onClick:xo(l,["stop"])},[ye(N(Ab),{class:"h-4 w-4"})],2),L("button",{class:rt(N(Cn)("btn btn-circle btn-sm z-30",a.value?"animate-spin":"")),onClick:xo(u,["stop"])},[ye(N(U4),{class:"h-4 w-4"})],2)])]),o.value?(K(),ae("progress",{key:0,class:"progress",value:o.value.percentage,max:"100"},null,8,RSe)):mt("",!0),L("div",PSe,[o.value?(K(),ae(Ze,{key:0},[L("div",OSe,re(o.value.used)+" / "+re(o.value.total)+" ( "+re(o.value.percentage)+"% ) ",1),L("div",DSe,re(o.value.expirePrefix())+": "+re(o.value.expireStr()),1)],64)):mt("",!0),L("div",MSe,re(c.$t("updated"))+" "+re(N(Bb)(r.value.updatedAt)),1)])]),preview:Mr(()=>[ye(z8,{nodes:i.value},null,8,["nodes"])]),content:Mr(()=>[ye(G8,null,{default:Mr(()=>[(K(!0),ae(Ze,null,on(i.value,d=>(K(),Ot(H8,{key:d,name:d},null,8,["name"]))),128))]),_:1})]),_:1},8,["name"]))}}),NSe={class:"p-2"},kSe={key:0,class:"grid grid-cols-2 gap-1"},FSe={key:1,class:"grid grid-cols-1 gap-1"},$Se=it({__name:"ProxiesPage",setup(e){const{proxiesTabShow:t,renderGroups:n}=Kb(),r=Ve(()=>t.value===df.PROVIDER?LSe:TSe),i=(o,a)=>o.filter((s,l)=>l%2===a);return dl(),(o,a)=>(K(),ae("div",NSe,[N(dre)&&N(dv)&&N(n).length>1?(K(),ae("div",kSe,[(K(),ae(Ze,null,on([0,1],s=>L("div",{key:s,class:"flex flex-1 flex-col gap-1"},[(K(!0),ae(Ze,null,on(i(N(n),s),l=>(K(),Ot(ls(r.value),{key:l,name:l},null,8,["name"]))),128))])),64))])):(K(),ae("div",FSe,[(K(!0),ae(Ze,null,on(N(n),s=>(K(),Ot(ls(r.value),{key:s,name:s},null,8,["name"]))),128))]))]))}}),BSe={class:"mr-2 inline-block min-w-4 text-center"},VSe={class:"mr-2 text-slate-500"},USe={key:0,class:"mr-2 text-primary"},HSe={key:1,class:"badge badge-sm bg-base-200"},GSe={class:"flex items-center gap-1"},zSe=it({__name:"RuleCard",props:{rule:{},index:{}},setup(e){const t=e,n=Ve(()=>fi.value[t.rule.proxy]),r=Ve(()=>Qg(t.rule.proxy)),i=Ve(()=>iu(Number(r.value)));return(o,a)=>{var s;return K(),ae("div",{class:rt(N(Cn)("card mb-1 gap-1 p-2 text-sm",!o.rule.payload&&"gap-0"))},[L("div",null,[L("span",BSe,re(o.index)+".",1),L("span",VSe,re(o.rule.type)+":",1),o.rule.payload?(K(),ae("span",USe,re(o.rule.payload),1)):mt("",!0),typeof o.rule.size=="number"&&o.rule.size!==-1?(K(),ae("span",HSe,re(o.rule.size),1)):mt("",!0)]),L("div",GSe,[ye(W1,{name:o.rule.proxy},null,8,["name"]),(s=n.value)!=null&&s.now?(K(),ae(Ze,{key:0},[ye(N(ff),{class:"h-4 w-4"}),ye(W1,{name:n.value.now},null,8,["name"])],64)):mt("",!0),r.value!==N(Jo)?(K(),ae("span",{key:1,class:rt([i.value,"ml-1"])},re(r.value)+"ms",3)):mt("",!0)])],2)}}}),WSe={class:"card w-full flex-row items-center gap-2 p-1 px-2 text-sm"},jSe={class:"flex flex-1 flex-col sm:flex-row"},YSe={class:"flex flex-1 items-center gap-2"},XSe={class:"badge badge-sm bg-base-200"},KSe={class:"flex gap-3 text-slate-500"},ZSe=it({__name:"RuleProvider",props:{ruleProvider:{},index:{}},setup(e){const t=Fe(!1),n=e,r=async()=>{t.value||(t.value=!0,await fV(n.ruleProvider.name),gg(),t.value=!1)};return(i,o)=>(K(),ae("div",WSe,[L("div",jSe,[L("div",YSe,[L("span",null,re(i.index)+".",1),L("span",null,re(i.ruleProvider.name),1),L("span",XSe,re(i.ruleProvider.ruleCount),1)]),L("div",KSe,[L("span",null,re(i.ruleProvider.behavior),1),L("span",null,re(i.ruleProvider.vehicleType),1),L("span",null,re(i.$t("updated"))+" "+re(N(Bb)(i.ruleProvider.updatedAt)),1)])]),L("button",{class:rt(N(Cn)("btn btn-circle btn-sm",t.value?"animate-spin":"")),onClick:r},[ye(N(U4),{class:"h-4 w-4"})],2)]))}}),qSe={key:0,class:"flex flex-col gap-1 overflow-x-hidden p-2"},JSe=it({__name:"RulesPage",setup(e){return(t,n)=>N(xv)===N(rh).PROVIDER?(K(),ae("div",qSe,[(K(!0),ae(Ze,null,on(N(Cle),(r,i)=>(K(),Ot(ZSe,{key:r.name,ruleProvider:r,index:i+1},null,8,["ruleProvider","index"]))),128))])):(K(),Ot(XI,{key:1,data:N(Tle)},{default:Mr(({item:r})=>[(K(),Ot(zSe,{key:r.payload,rule:r,index:N(y1).indexOf(r)+1},null,8,["rule","index"]))]),_:1},8,["data"]))}}),QSe={class:"join w-96 max-sm:w-full"},ewe={class:"flex max-h-96 flex-col gap-1 overflow-y-auto"},twe={key:0,class:"flex gap-1"},nwe=it({__name:"DnsQuery",setup(e){const t=Na({name:"www.google.com",type:"A"}),n=Fe(null),r=Fe([]),i=async()=>{var a;const{data:o}=await Voe(t);r.value=o.Answer,(a=r.value)!=null&&a.length?n.value=await pV(r.value[0].data):n.value=null};return(o,a)=>{var s,l,u,c;return K(),ae(Ze,null,[L("div",QSe,[ye(rm,{modelValue:t.name,"onUpdate:modelValue":a[0]||(a[0]=f=>t.name=f),type:"text",name:"name",placeholder:"Domain Name"},null,8,["modelValue"]),_t(L("select",{"onUpdate:modelValue":a[1]||(a[1]=f=>t.type=f),class:"join-item select select-bordered select-sm"},a[2]||(a[2]=[L("option",{value:"A"},"A",-1),L("option",{value:"AAAA"},"AAAA",-1),L("option",{value:"MX"},"MX",-1)]),512),[[hi,t.type]]),L("button",{class:"btn join-item btn-sm",onClick:i},re(o.$t("DNSQuery")),1)]),L("div",ewe,[(K(!0),ae(Ze,null,on(r.value,f=>(K(),ae("div",{class:"flex gap-1",key:f.data},[L("div",null,re(f.name),1),a[3]||(a[3]=ft(" : ")),L("div",null,re(f.data),1)]))),128))]),n.value?(K(),ae("div",twe,re((s=n.value)==null?void 0:s.ip)+": AS"+re((l=n.value)==null?void 0:l.asn)+" "+re((u=n.value)==null?void 0:u.asn_organization)+" "+re((c=n.value)==null?void 0:c.country),1)):mt("",!0)],64)}}}),rwe={class:"card card-compact"},iwe={class:"card-title px-4 pt-4"},owe={class:"card-body gap-4"},awe={class:"grid max-w-screen-md grid-cols-2 gap-2 lg:grid-cols-3"},swe={class:"shrink-0"},lwe=["onUpdate:modelValue","onChange"],uwe={class:"grid max-w-screen-md grid-cols-2 gap-2 lg:grid-cols-3"},cwe={key:0,class:"flex items-center gap-2"},fwe={class:"flex items-center gap-2"},dwe={class:"flex items-center gap-2"},hwe={class:"grid max-w-screen-md grid-cols-2 gap-2 sm:grid-cols-4"},pwe={class:"indicator w-full"},vwe={key:0,class:"indicator-item flex"},gwe=it({__name:"BackendSettings",setup(e){const t=[{label:"mixedPort",key:"mixed-port"},{label:"httpPort",key:"port"},{label:"socksPort",key:"socks-port"},{label:"redirPort",key:"redir-port"},{label:"tproxyPort",key:"tproxy-port"}],n=()=>{eR(),gg(),dl()},r=Fe(!1),i=async()=>{if(!r.value){r.value=!0;try{await Boe(),setTimeout(()=>{n()},500),r.value=!1}catch{r.value=!1}}},o=Fe(!1),a=async()=>{if(!o.value){o.value=!0;try{await hV(),n(),o.value=!1}catch{o.value=!1}}},s=Fe(!1),l=async()=>{if(!s.value){s.value=!0;try{await $oe(),n(),s.value=!1}catch{s.value=!1}}},u=async()=>{var f;await y_({tun:{enable:(f=ei.value)==null?void 0:f.tun.enable}})},c=async()=>{var f;await y_({"allow-lan":(f=ei.value)==null?void 0:f["allow-lan"]})};return(f,d)=>{var h;return K(),ae("div",rwe,[L("div",iwe,re(f.$t("backend")),1),L("div",owe,[ye(GV),ye(tR),N(hl)?mt("",!0):(K(),ae(Ze,{key:0},[d[4]||(d[4]=L("div",{class:"divider"},null,-1)),L("div",awe,[(K(),ae(Ze,null,on(t,v=>L("div",{class:"flex items-center gap-2",key:v.key},[L("span",swe,re(f.$t(v.label))+": ",1),_t(L("input",{class:"input input-sm input-bordered w-20",type:"number","onUpdate:modelValue":m=>N(ei)[v.key]=m,onChange:m=>N(y_)({[v.key]:Number(N(ei)[v.key])})},null,40,lwe),[[ir,N(ei)[v.key]]])])),64))]),L("div",uwe,[(h=N(ei))!=null&&h.tun?(K(),ae("div",cwe,[ft(re(f.$t("tunMode"))+": ",1),_t(L("input",{class:"toggle",type:"checkbox","onUpdate:modelValue":d[0]||(d[0]=v=>N(ei).tun.enable=v),onChange:u},null,544),[[gr,N(ei).tun.enable]])])):mt("",!0),L("div",fwe,[ft(re(f.$t("allowLan"))+": ",1),_t(L("input",{class:"toggle",type:"checkbox","onUpdate:modelValue":d[1]||(d[1]=v=>N(ei)["allow-lan"]=v),onChange:c},null,544),[[gr,N(ei)["allow-lan"]]])]),L("div",dwe,[ft(re(f.$t("autoUpgrade"))+": ",1),_t(L("input",{class:"toggle",type:"checkbox","onUpdate:modelValue":d[2]||(d[2]=v=>st(K0)?K0.value=v:null)},null,512),[[gr,N(K0)]])])])],64)),L("div",hwe,[N(hl)?mt("",!0):(K(),ae(Ze,{key:0},[L("div",pwe,[N(_E)?(K(),ae("span",vwe,d[5]||(d[5]=[L("span",{class:"badge badge-xs absolute animate-ping bg-secondary"},null,-1),L("span",{class:"badge badge-xs bg-secondary"},null,-1)]))):mt("",!0),L("button",{class:rt(N(Cn)("btn btn-primary btn-sm flex-1",o.value?"animate-pulse":"")),onClick:a},re(f.$t("upgradeCore")),3)]),L("button",{class:rt(N(Cn)("btn btn-sm",r.value?"animate-pulse":"")),onClick:i},re(f.$t("restartCore")),3),L("button",{class:rt(N(Cn)("btn btn-sm",s.value?"animate-pulse":"")),onClick:l},re(f.$t("reloadConfigs")),3)],64)),L("button",{class:"btn btn-sm",onClick:d[3]||(d[3]=(...v)=>N(NL)&&N(NL)(...v))},re(f.$t("flushFakeIP")),1)]),d[6]||(d[6]=L("div",{class:"divider"},null,-1)),ye(nwe)])])}}});var N_={exports:{}},yC={exports:{}},_C={};/** +* @vue/compiler-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const hh=Symbol(""),Yd=Symbol(""),IS=Symbol(""),Lg=Symbol(""),_P=Symbol(""),Du=Symbol(""),bP=Symbol(""),SP=Symbol(""),RS=Symbol(""),PS=Symbol(""),Dh=Symbol(""),OS=Symbol(""),wP=Symbol(""),DS=Symbol(""),MS=Symbol(""),LS=Symbol(""),NS=Symbol(""),kS=Symbol(""),FS=Symbol(""),xP=Symbol(""),TP=Symbol(""),hm=Symbol(""),Ng=Symbol(""),$S=Symbol(""),BS=Symbol(""),ph=Symbol(""),Mh=Symbol(""),VS=Symbol(""),X1=Symbol(""),W8=Symbol(""),K1=Symbol(""),kg=Symbol(""),j8=Symbol(""),Y8=Symbol(""),US=Symbol(""),X8=Symbol(""),K8=Symbol(""),HS=Symbol(""),CP=Symbol(""),Sf={[hh]:"Fragment",[Yd]:"Teleport",[IS]:"Suspense",[Lg]:"KeepAlive",[_P]:"BaseTransition",[Du]:"openBlock",[bP]:"createBlock",[SP]:"createElementBlock",[RS]:"createVNode",[PS]:"createElementVNode",[Dh]:"createCommentVNode",[OS]:"createTextVNode",[wP]:"createStaticVNode",[DS]:"resolveComponent",[MS]:"resolveDynamicComponent",[LS]:"resolveDirective",[NS]:"resolveFilter",[kS]:"withDirectives",[FS]:"renderList",[xP]:"renderSlot",[TP]:"createSlots",[hm]:"toDisplayString",[Ng]:"mergeProps",[$S]:"normalizeClass",[BS]:"normalizeStyle",[ph]:"normalizeProps",[Mh]:"guardReactiveProps",[VS]:"toHandlers",[X1]:"camelize",[W8]:"capitalize",[K1]:"toHandlerKey",[kg]:"setBlockTracking",[j8]:"pushScopeId",[Y8]:"popScopeId",[US]:"withCtx",[X8]:"unref",[K8]:"isRef",[HS]:"withMemo",[CP]:"isMemoSame"};function Z8(e){Object.getOwnPropertySymbols(e).forEach(t=>{Sf[t]=e[t]})}const mwe={HTML:0,0:"HTML",SVG:1,1:"SVG",MATH_ML:2,2:"MATH_ML"},ywe={ROOT:0,0:"ROOT",ELEMENT:1,1:"ELEMENT",TEXT:2,2:"TEXT",COMMENT:3,3:"COMMENT",SIMPLE_EXPRESSION:4,4:"SIMPLE_EXPRESSION",INTERPOLATION:5,5:"INTERPOLATION",ATTRIBUTE:6,6:"ATTRIBUTE",DIRECTIVE:7,7:"DIRECTIVE",COMPOUND_EXPRESSION:8,8:"COMPOUND_EXPRESSION",IF:9,9:"IF",IF_BRANCH:10,10:"IF_BRANCH",FOR:11,11:"FOR",TEXT_CALL:12,12:"TEXT_CALL",VNODE_CALL:13,13:"VNODE_CALL",JS_CALL_EXPRESSION:14,14:"JS_CALL_EXPRESSION",JS_OBJECT_EXPRESSION:15,15:"JS_OBJECT_EXPRESSION",JS_PROPERTY:16,16:"JS_PROPERTY",JS_ARRAY_EXPRESSION:17,17:"JS_ARRAY_EXPRESSION",JS_FUNCTION_EXPRESSION:18,18:"JS_FUNCTION_EXPRESSION",JS_CONDITIONAL_EXPRESSION:19,19:"JS_CONDITIONAL_EXPRESSION",JS_CACHE_EXPRESSION:20,20:"JS_CACHE_EXPRESSION",JS_BLOCK_STATEMENT:21,21:"JS_BLOCK_STATEMENT",JS_TEMPLATE_LITERAL:22,22:"JS_TEMPLATE_LITERAL",JS_IF_STATEMENT:23,23:"JS_IF_STATEMENT",JS_ASSIGNMENT_EXPRESSION:24,24:"JS_ASSIGNMENT_EXPRESSION",JS_SEQUENCE_EXPRESSION:25,25:"JS_SEQUENCE_EXPRESSION",JS_RETURN_STATEMENT:26,26:"JS_RETURN_STATEMENT"},_we={ELEMENT:0,0:"ELEMENT",COMPONENT:1,1:"COMPONENT",SLOT:2,2:"SLOT",TEMPLATE:3,3:"TEMPLATE"},bwe={NOT_CONSTANT:0,0:"NOT_CONSTANT",CAN_SKIP_PATCH:1,1:"CAN_SKIP_PATCH",CAN_CACHE:2,2:"CAN_CACHE",CAN_STRINGIFY:3,3:"CAN_STRINGIFY"},Ir={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function q8(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Ir}}function vh(e,t,n,r,i,o,a,s=!1,l=!1,u=!1,c=Ir){return e&&(s?(e.helper(Du),e.helper(Tf(e.inSSR,u))):e.helper(xf(e.inSSR,u)),a&&e.helper(kS)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:o,directives:a,isBlock:s,disableTracking:l,isComponent:u,loc:c}}function wu(e,t=Ir){return{type:17,loc:t,elements:e}}function To(e,t=Ir){return{type:15,loc:t,properties:e}}function lr(e,t){return{type:16,loc:Ir,key:At(e)?kt(e,!0):e,value:t}}function kt(e,t=!1,n=Ir,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function Swe(e,t){return{type:5,loc:t,content:At(e)?kt(e,!1,t):e}}function ia(e,t=Ir){return{type:8,loc:t,children:e}}function mr(e,t=[],n=Ir){return{type:14,loc:n,callee:e,arguments:t}}function wf(e,t=void 0,n=!1,r=!1,i=Ir){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function Z1(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:Ir}}function J8(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:Ir}}function Q8(e){return{type:21,body:e,loc:Ir}}function wwe(e){return{type:22,elements:e,loc:Ir}}function xwe(e,t,n){return{type:23,test:e,consequent:t,alternate:n,loc:Ir}}function Twe(e,t){return{type:24,left:e,right:t,loc:Ir}}function Cwe(e){return{type:25,expressions:e,loc:Ir}}function Ewe(e){return{type:26,returns:e,loc:Ir}}function xf(e,t){return e||t?RS:PS}function Tf(e,t){return e||t?bP:SP}function GS(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(xf(r,e.isComponent)),t(Du),t(Tf(r,e.isComponent)))}const t5=new Uint8Array([123,123]),n5=new Uint8Array([125,125]);function r5(e){return e>=97&&e<=122||e>=65&&e<=90}function bo(e){return e===32||e===10||e===9||e===12||e===13}function Wl(e){return e===47||e===62||bo(e)}function q1(e){const t=new Uint8Array(e.length);for(let n=0;n=0;i--){const o=this.newlines[i];if(t>o){n=i+2,r=t-o;break}}return{column:r,line:n,offset:t}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(t){t===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):!this.inVPre&&t===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(t))}stateInterpolationOpen(t){if(t===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const n=this.index+1-this.delimiterOpen.length;n>this.sectionStart&&this.cbs.ontext(this.sectionStart,n),this.state=3,this.sectionStart=n}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(t)):(this.state=1,this.stateText(t))}stateInterpolation(t){t===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(t))}stateInterpolationClose(t){t===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(t))}stateSpecialStartSequence(t){const n=this.sequenceIndex===this.currentSequence.length;if(!(n?Wl(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!n){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(t)}stateInRCDATA(t){if(this.sequenceIndex===this.currentSequence.length){if(t===62||bo(t)){const n=this.index-this.currentSequence.length;if(this.sectionStart=t||(this.state===28?this.currentSequence===qr.CdataEnd?this.cbs.oncdata(this.sectionStart,t):this.cbs.oncomment(this.sectionStart,t):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,t))}emitCodePoint(t,n){}}const Iwe={COMPILER_IS_ON_ELEMENT:"COMPILER_IS_ON_ELEMENT",COMPILER_V_BIND_SYNC:"COMPILER_V_BIND_SYNC",COMPILER_V_BIND_OBJECT_ORDER:"COMPILER_V_BIND_OBJECT_ORDER",COMPILER_V_ON_NATIVE:"COMPILER_V_ON_NATIVE",COMPILER_V_IF_V_FOR_PRECEDENCE:"COMPILER_V_IF_V_FOR_PRECEDENCE",COMPILER_NATIVE_TEMPLATE:"COMPILER_NATIVE_TEMPLATE",COMPILER_INLINE_TEMPLATE:"COMPILER_INLINE_TEMPLATE",COMPILER_FILTERS:"COMPILER_FILTERS"},Rwe={COMPILER_IS_ON_ELEMENT:{message:'Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".',link:"https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html"},COMPILER_V_BIND_SYNC:{message:e=>`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${e}.sync\` should be changed to \`v-model:${e}\`.`,link:"https://v3-migration.vuejs.org/breaking-changes/v-model.html"},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3-migration.vuejs.org/breaking-changes/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with