diff --git a/package/ctcgfw/jpcre2/Makefile b/package/ctcgfw/jpcre2/Makefile index 83d7079048..5365f81dd7 100644 --- a/package/ctcgfw/jpcre2/Makefile +++ b/package/ctcgfw/jpcre2/Makefile @@ -1,45 +1,45 @@ # -# Copyright (C) 2019 OpenWrt.org +# Copyright (C) 2020 CTCGFW Project-OpenWrt +# (https://project-openwrt.eu.org) # -# This is free software, licensed under the GNU General Public License v2. +# This is free software, licensed under the GNU General Public License v3. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=jpcre2 PKG_VERSION:=10.32.01 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/jpcre2/jpcre2/tar.gz/$(PKG_VERSION)? PKG_HASH:=668cbc6d2c0a065bb6abe8494d5a1bb3549a14cd956a44a2df9095045623ea47 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE -PKG_MAINTAINER:=[CTCGFW]Project OpenWrt +PKG_MAINTAINER:=CN_SZTL -PKG_INSTALL:=1 -PKG_FIXUP:=autoreconf -PKG_USE_MIPS16:=0 -PKG_BUILD_PARALLEL:=1 PKG_BUILD_DEPENDS:=pcre2 +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk -define Package/$(PKG_NAME) +define Package/jpcre2 SECTION:=lib CATEGORY:=Libraries TITLE:=C++ wrapper for PCRE2 Library URL:=https://github.com/jpcre2/jpcre2 endef -define Package/$(PKG_NAME)/description - This provides some C++ wrapper classes/functions to perform regex operations such as regex match and regex replace. +define Package/jpcre2/description + This provides some C++ wrapper classes/functions to perform + regex operations such as regex match and regex replace. endef define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include - $(INSTALL_DATA) $(PKG_BUILD_DIR)/src/jpcre2.hpp $(1)/usr/include/jpcre2.hpp + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/jpcre2.hpp $(1)/usr/include/jpcre2.hpp endef -$(eval $(call BuildPackage,$(PKG_NAME))) +$(eval $(call BuildPackage,jpcre2)) diff --git a/package/ctcgfw/rapidjson/Makefile b/package/ctcgfw/rapidjson/Makefile index 38ad944278..85dcb6a59a 100644 --- a/package/ctcgfw/rapidjson/Makefile +++ b/package/ctcgfw/rapidjson/Makefile @@ -1,31 +1,28 @@ # -# Copyright (C) 2019 OpenWrt.org +# Copyright (C) 2020 CTCGFW Project-OpenWrt +# (https://project-openwrt.eu.org) # -# This is free software, licensed under the GNU General Public License v2. +# This is free software, licensed under the GNU General Public License v3. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=rapidjson -PKG_VERSION:=1.1.0-ce81bc9 -PKG_RELEASE:=2 +PKG_VERSION:=1.1.0 +PKG_RELEASE:=4 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/Tencent/rapidjson.git -PKG_SOURCE_VERSION:=ce81bc9edfe773667a7a4454ba81dac72ed4364c -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz -PKG_MIRROR_HASH:=1a74a411aff88bd770c80bd0b797ccb50207a64bccf7f98dbb1abf71498f3e8e - -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_DATE:=2021-01-06 +PKG_SOURCE_VERSION:=585042c02ba6350e10fc43df8beee1bc097f4c5f +PKG_MIRROR_HASH:=ef7d015b91f58355b02ce8356214ec7d6bdc3807d01b220834faa00afbcd7a7f PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE -PKG_MAINTAINER:=[CTCGFW]Project OpenWrt +PKG_MAINTAINER:=CN_SZTL -PKG_INSTALL:=1 -PKG_USE_MIPS16:=0 PKG_BUILD_PARALLEL:=1 +CMAKE_INSTALL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/cmake.mk @@ -34,20 +31,15 @@ CMAKE_OPTIONS+= -DRAPIDJSON_BUILD_DOC=OFF \ -DRAPIDJSON_BUILD_EXAMPLES=OFF \ -DRAPIDJSON_BUILD_TESTS=OFF -define Package/$(PKG_NAME) +define Package/rapidjson SECTION:=lib CATEGORY:=Libraries URL:=https://github.com/Tencent/rapidjson TITLE:=rapidjson JSON parser/generator for C++ endef -define Package/$(PKG_NAME)/description +define Package/rapidjson/description A fast JSON parser/generator for C++ with both SAX/DOM style API endef -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include - $(CP) $(PKG_BUILD_DIR)/include/rapidjson $(1)/usr/include/rapidjson -endef - -$(eval $(call BuildPackage,$(PKG_NAME))) +$(eval $(call BuildPackage,rapidjson)) diff --git a/package/ctcgfw/subconverter/Makefile b/package/ctcgfw/subconverter/Makefile index ccddc143cf..fe8a0db182 100644 --- a/package/ctcgfw/subconverter/Makefile +++ b/package/ctcgfw/subconverter/Makefile @@ -1,45 +1,42 @@ # -# Copyright (C) 2019 OpenWrt.org +# Copyright (C) 2020 CTCGFW Project-OpenWrt +# # -# This is free software, licensed under the GNU General Public License v2. +# This is free software, licensed under the GNU General Public License v3. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=subconverter PKG_VERSION:=0.6.4 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/tindy2013/subconverter.git -PKG_SOURCE_VERSION:=ab4d7543cec46cd9e45680f3b43d82de16f38a3d -PKG_MIRROR_HASH:=c5dc3c224d9229df09428a28a1306bba28790b328f8d644ae41e929bee58426c -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz +PKG_SOURCE_DATE:=2020-12-19 +PKG_SOURCE_VERSION:=a57906c9a6edd04da869b12ffb88f397c3ea8af6 +PKG_MIRROR_HASH:=07815478cbfa1644ad016ea4b68a2edc9316f9aa23edf699d82c4c9026e17462 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) - -PKG_LICENSE:=GPLv3 +PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=LICENSE -PKG_MAINTAINER:=[CTCGFW]Project OpenWrt +PKG_MAINTAINER:=CN_SZTL -PKG_USE_MIPS16:=0 -PKG_BUILD_PARALLEL:=1 PKG_BUILD_DEPENDS:=duktape jpcre2 rapidjson +PKG_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/cmake.mk -define Package/$(PKG_NAME) +define Package/subconverter SECTION:=utils CATEGORY:=Utilities - TITLE:=Utility to convert between various subscription format. + TITLE:=Utility to convert between various subscription format URL:=https://github.com/tindy2013/subconverter DEPENDS:=+libpthread +libstdcpp +libevent2 +libyaml-cpp +libpcre2 +libcurl +zlib endef -define Package/$(PKG_NAME)/description - Utility to convert between various subscription format. +define Package/subconverter/description + Utility to convert between various proxy subscription formats. endef TARGET_CXXFLAGS := $(FPIC) $(filter-out -O%,$(TARGET_CXXFLAGS)) -O3 @@ -48,7 +45,7 @@ TARGET_LDFLAGS += -Wl,--gc-sections -flto CMAKE_OPTIONS += -DCMAKE_BUILD_TYPE=Release -define Package/$(PKG_NAME)/install +define Package/subconverter/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/subconverter $(1)/usr/bin/subconverter $(INSTALL_DIR) $(1)/etc/subconverter @@ -57,4 +54,4 @@ define Package/$(PKG_NAME)/install $(INSTALL_BIN) ./files/subconverter.init $(1)/etc/init.d/subconverter endef -$(eval $(call BuildPackage,$(PKG_NAME))) +$(eval $(call BuildPackage,subconverter)) diff --git a/package/ctcgfw/subconverter/patches/010-missing-header.patch b/package/ctcgfw/subconverter/patches/010-missing-header.patch deleted file mode 100644 index 063bf3e75e..0000000000 --- a/package/ctcgfw/subconverter/patches/010-missing-header.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/misc.h b/src/misc.h -index b98cdc9..484c1e1 100644 ---- a/src/misc.h -+++ b/src/misc.h -@@ -7,6 +7,7 @@ - #include - #include - #include -+#include - - #include - diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index c4128967df..d9553d15f0 100644 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -299,6 +299,7 @@ function import_ssr_url(btn, urlname, sid) { ssm.type = "none" } document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].value = ssm.type; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = ssm.host; document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = ssm.path; } diff --git a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index fd519c6707..cc791479ce 100755 --- a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -738,7 +738,7 @@ start_rules() { esac } if [ "$(uci_get_by_type global dports 1)" == "2" ]; then - local proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443,853" + local proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443,853,9418" fi get_arg_out() { case "$(uci_get_by_type access_control router_proxy 1)" in diff --git a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules index c24b52d16d..8259ca7673 100755 --- a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -204,8 +204,8 @@ ac_rule() { create ssr_gen_router hash:net $(gen_spec_iplist | sed -e "s/^/add ssr_gen_router /") EOF - $IPT -N SS_SPEC_ROUTER - $IPT -A SS_SPEC_ROUTER -m set --match-set ssr_gen_router dst -j RETURN + $IPT -N SS_SPEC_ROUTER && \ + $IPT -A SS_SPEC_ROUTER -m set --match-set ssr_gen_router dst -j RETURN && \ $IPT -A SS_SPEC_ROUTER -j SS_SPEC_WAN_FW $IPT -I OUTPUT 1 -p tcp -m comment --comment "$TAG" -j SS_SPEC_ROUTER ;; @@ -236,7 +236,7 @@ tp_rule() { $ipt -A SS_SPEC_TPROXY -p udp $PROXY_PORTS -m set --match-set fplan src -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 case "$RUNMODE" in router) - $IPT -A SS_SPEC_TPROXY -p udp -m set --match-set ss_spec_wan_ac dst -j RETURN + $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set ss_spec_wan_ac dst -j RETURN $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set china dst -j RETURN $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set gmlan src -m set ! --match-set china dst -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 $ipt -A SS_SPEC_TPROXY -p udp $PROXY_PORTS -m set ! --match-set ss_spec_wan_ac dst -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 diff --git a/package/lean/verysync/Makefile b/package/lean/verysync/Makefile index 847a455061..9bc5753900 100644 --- a/package/lean/verysync/Makefile +++ b/package/lean/verysync/Makefile @@ -35,11 +35,11 @@ PKG_NAME:=verysync ifneq ($(LATEST_VERSION),) PKG_VERSION:=$(LATEST_VERSION) else - PKG_VERSION:=v1.5.5 + PKG_VERSION:=v2.4.2 endif PKG_RELEASE:=1 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + PKG_SOURCE:=$(PKG_NAME)-linux-$(PKG_ARCH_VERYSYNC)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://dl.verysync.com/releases/$(PKG_VERSION)/ PKG_HASH:=skip diff --git a/package/ntlf9t/luci-app-clash/Makefile b/package/ntlf9t/luci-app-clash/Makefile deleted file mode 100644 index 2805458c1c..0000000000 --- a/package/ntlf9t/luci-app-clash/Makefile +++ /dev/null @@ -1,171 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=luci-app-clash -PKG_VERSION:=v1.7.5.7 -PKG_MAINTAINER:=frainzy1477 - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - SECTION:=luci - CATEGORY:=LuCI - SUBMENU:=3. Applications - TITLE:=LuCI app for clash - DEPENDS:=+luci-base +wget-ssl +iptables +coreutils-base64 +coreutils +coreutils-nohup +bash +ipset +libustream-openssl +curl +jsonfilter +ca-certificates +iptables-mod-tproxy +kmod-tun - PKGARCH:=all - MAINTAINER:=frainzy1477 -endef - -define Package/$(PKG_NAME)/description - Luci Interface for clash. -endef - -define Build/Prepare - po2lmo ${CURDIR}/po/zh-cn/clash.po ${CURDIR}/po/zh-cn/clash.zh-cn.lmo -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Package/$(PKG_NAME)/conffiles -/etc/config/clash -endef - -define Package/$(PKG_NAME)/prerm -#!/bin/sh -# check if we are on real system -if [ -z "$${IPKG_INSTROOT}" ]; then - echo "Removing rc.d symlink for clash" - /etc/init.d/clash disable - /etc/init.d/clash stop - echo "Removing firewall rule for clash" - uci -q batch <<-EOF >/dev/null - delete firewall.clash - commit firewall -EOF -fi - -exit 0 -endef - -define Package/$(PKG_NAME)/preinst -#!/bin/sh -/etc/init.d/clash disable 2>/dev/null -if [ -z "$${IPKG_INSTROOT}" ]; then - rm -rf /tmp/dnsmasq.d/custom_list.conf 2>/dev/null - rm -rf /tmp/dnsmasq.clash 2>/dev/null - mv /etc/config/clash /etc/config/clash.bak 2>/dev/null - rm -rf /usr/lib/lua/luci/model/cbi/clash 2>/dev/null - rm -rf /usr/lib/lua/luci/view/clash 2>/dev/null - rm -rf /usr/share/clash/new_core_version 2>/dev/null - rm -rf /usr/share/clash/new_clashr_core_version 2>/dev/null - rm -rf /usr/share/clash/new_luci_version 2>/dev/null - rm -rf /usr/share/clash/web 2>/dev/null - mv /usr/share/clash/config/sub/config.yaml /usr/share/clashbackup/config.bak1 2>/dev/null - mv /usr/share/clash/config/upload/config.yaml /usr/share/clashbackup/config.bak2 2>/dev/null - mv /usr/share/clash/config/custom/config.yaml /usr/share/clashbackup/config.bak3 2>/dev/null - mv /usr/share/clash/rule.yaml /usr/share/clashbackup/rule.bak 2>/dev/null -fi - - -exit 0 -endef - -define Package/$(PKG_NAME)/postinst -#!/bin/sh - -if [ -z "$${IPKG_INSTROOT}" ]; then - rm -rf /tmp/luci* - mv /etc/config/clash.bak /etc/config/clash 2>/dev/null - mv /usr/share/clashbackup/config.bak1 /usr/share/clash/config/sub/config.yaml 2>/dev/null - mv /usr/share/clashbackup/config.bak2 /usr/share/clash/config/upload/config.yaml 2>/dev/null - mv /usr/share/clashbackup/config.bak3 /usr/share/clash/config/custom/config.yaml 2>/dev/null - mv /usr/share/clashbackup/rule.bak /usr/share/clash/rule.yaml 2>/dev/null - /etc/init.d/clash disable 2>/dev/null -fi -/etc/init.d/clash disable 2>/dev/null - -exit 0 -endef - -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/clash - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/clash/config - - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/clash/dns - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/clash/client - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/clash/game - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/clash/geoip - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/clash/logs - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/clash/update - - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/clash - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_DIR) $(1)/etc/clash - $(INSTALL_DIR) $(1)/usr/lib/lua/luci - $(INSTALL_DIR) $(1)/usr/share/ - $(INSTALL_DIR) $(1)/usr/share/clash - $(INSTALL_DIR) $(1)/usr/share/clash/rules - $(INSTALL_DIR) $(1)/usr/share/clash/rules/g_rules - $(INSTALL_DIR) $(1)/etc/clash/dashboard - $(INSTALL_DIR) $(1)/etc/clash/dashboard/img - $(INSTALL_DIR) $(1)/etc/clash/dashboard/js - $(INSTALL_DIR) $(1)/usr/share/clash/yacd - $(INSTALL_DIR) $(1)/etc/clash/clashtun - $(INSTALL_DIR) $(1)/etc/clash/dtun - $(INSTALL_DIR) $(1)/usr/share/clashbackup - $(INSTALL_DIR) $(1)/usr/share/clash/create - $(INSTALL_DIR) $(1)/etc/clash/provider - $(INSTALL_DIR) $(1)/etc/clash/proxyprovider - $(INSTALL_DIR) $(1)/etc/clash/ruleprovider - $(INSTALL_DIR) $(1)/usr/share/clash/config - $(INSTALL_DIR) $(1)/usr/share/clash/config/sub - $(INSTALL_DIR) $(1)/usr/share/clash/config/upload - $(INSTALL_DIR) $(1)/usr/share/clash/config/custom - - - $(INSTALL_BIN) ./root/etc/init.d/clash $(1)/etc/init.d/clash - $(INSTALL_CONF) ./root/etc/config/clash $(1)/etc/config/clash - $(INSTALL_CONF) ./root/etc/clash/Country.mmdb $(1)/etc/clash - $(INSTALL_BIN) ./root/usr/share/clash/create/* $(1)/usr/share/clash/create - $(INSTALL_BIN) ./root/usr/share/clash/*.sh $(1)/usr/share/clash - $(INSTALL_BIN) ./root/usr/share/clash/rules/g_rules/Steam.rules $(1)/usr/share/clash/rules/g_rules - $(INSTALL_BIN) ./root//usr/share/clash/rules/rules.list $(1)/usr/share/clash/rules - - $(INSTALL_BIN) ./root/usr/share/clash/luci_version $(1)/usr/share/clash - $(INSTALL_BIN) ./root/usr/share/clash/rule.yaml $(1)/usr/share/clash - $(INSTALL_BIN) ./root/usr/share/clash/server.list $(1)/usr/share/clash - $(INSTALL_BIN) ./root/usr/share/clash/clash_real.txt $(1)/usr/share/clash - $(INSTALL_BIN) ./root/usr/share/clash/logstatus_check $(1)/usr/share/clash - $(INSTALL_BIN) ./root/usr/share/clash/clash.txt $(1)/usr/share/clash - $(INSTALL_BIN) ./root/usr/share/clash/chinaipset.sh $(1)/usr/share/clash - $(INSTALL_BIN) ./root/usr/share/clash/china_ip.txt $(1)/usr/share/clash - - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/index.html $(1)/etc/clash/dashboard - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/main.658aa6a6e3feec8f168b.css $(1)/etc/clash/dashboard - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png $(1)/etc/clash/dashboard/img - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/1.bundle.658aa6a6e3feec8f168b.min.js $(1)/etc/clash/dashboard/js - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/bundle.658aa6a6e3feec8f168b.min.js $(1)/etc/clash/dashboard/js - $(INSTALL_BIN) ./root/usr/share/clash/yacd/* $(1)/usr/share/clash/yacd - - $(INSTALL_DATA) ./luasrc/clash.lua $(1)/usr/lib/lua/luci - $(INSTALL_DATA) ./luasrc/controller/*.lua $(1)/usr/lib/lua/luci/controller - $(INSTALL_DATA) ./luasrc/model/cbi/clash/*.lua $(1)/usr/lib/lua/luci/model/cbi/clash - $(INSTALL_DATA) ./luasrc/model/cbi/clash/config/*.lua $(1)/usr/lib/lua/luci/model/cbi/clash/config - $(INSTALL_DATA) ./luasrc/model/cbi/clash/client/*.lua $(1)/usr/lib/lua/luci/model/cbi/clash/client - $(INSTALL_DATA) ./luasrc/model/cbi/clash/dns/*.lua $(1)/usr/lib/lua/luci/model/cbi/clash/dns - $(INSTALL_DATA) ./luasrc/model/cbi/clash/game/*.lua $(1)/usr/lib/lua/luci/model/cbi/clash/game - $(INSTALL_DATA) ./luasrc/model/cbi/clash/geoip/*.lua $(1)/usr/lib/lua/luci/model/cbi/clash/geoip - $(INSTALL_DATA) ./luasrc/model/cbi/clash/logs/*.lua $(1)/usr/lib/lua/luci/model/cbi/clash/logs - $(INSTALL_DATA) ./luasrc/model/cbi/clash/update/*.lua $(1)/usr/lib/lua/luci/model/cbi/clash/update - $(INSTALL_DATA) ./luasrc/view/clash/* $(1)/usr/lib/lua/luci/view/clash - $(INSTALL_DATA) ./po/zh-cn/clash.zh-cn.lmo $(1)/usr/lib/lua/luci/i18n -endef - -$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/ntlf9t/luci-app-clash/luasrc/clash.lua b/package/ntlf9t/luci-app-clash/luasrc/clash.lua deleted file mode 100644 index 9099b944fb..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/clash.lua +++ /dev/null @@ -1,244 +0,0 @@ ---[[ -LuCI - Filesystem tools - -Description: -A module offering often needed filesystem manipulation functions - -FileId: -$Id$ - -License: -Copyright 2008 Steven Barth - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -]]-- - -local io = require "io" -local os = require "os" -local ltn12 = require "luci.ltn12" -local fs = require "nixio.fs" -local nutil = require "nixio.util" - -local type = type - ---- LuCI filesystem library. -module "luci.clash" - ---- Test for file access permission on given path. --- @class function --- @name access --- @param str String value containing the path --- @return Number containing the return code, 0 on sucess or nil on error --- @return String containing the error description (if any) --- @return Number containing the os specific errno (if any) -access = fs.access - ---- Evaluate given shell glob pattern and return a table containing all matching --- file and directory entries. --- @class function --- @name glob --- @param filename String containing the path of the file to read --- @return Table containing file and directory entries or nil if no matches --- @return String containing the error description (if no matches) --- @return Number containing the os specific errno (if no matches) -function glob(...) - local iter, code, msg = fs.glob(...) - if iter then - return nutil.consume(iter) - else - return nil, code, msg - end -end - ---- Checks wheather the given path exists and points to a regular file. --- @param filename String containing the path of the file to test --- @return Boolean indicating wheather given path points to regular file -function isfile(filename) - return fs.stat(filename, "type") == "reg" -end - ---- Checks wheather the given path exists and points to a directory. --- @param dirname String containing the path of the directory to test --- @return Boolean indicating wheather given path points to directory -function isdirectory(dirname) - return fs.stat(dirname, "type") == "dir" -end - ---- Read the whole content of the given file into memory. --- @param filename String containing the path of the file to read --- @return String containing the file contents or nil on error --- @return String containing the error message on error -readfile = fs.readfile - ---- Write the contents of given string to given file. --- @param filename String containing the path of the file to read --- @param data String containing the data to write --- @return Boolean containing true on success or nil on error --- @return String containing the error message on error -writefile = fs.writefile - ---- Copies a file. --- @param source Source file --- @param dest Destination --- @return Boolean containing true on success or nil on error -copy = fs.datacopy - ---- Renames a file. --- @param source Source file --- @param dest Destination --- @return Boolean containing true on success or nil on error -rename = fs.move - ---- Get the last modification time of given file path in Unix epoch format. --- @param path String containing the path of the file or directory to read --- @return Number containing the epoch time or nil on error --- @return String containing the error description (if any) --- @return Number containing the os specific errno (if any) -function mtime(path) - return fs.stat(path, "mtime") -end - ---- Set the last modification time of given file path in Unix epoch format. --- @param path String containing the path of the file or directory to read --- @param mtime Last modification timestamp --- @param atime Last accessed timestamp --- @return 0 in case of success nil on error --- @return String containing the error description (if any) --- @return Number containing the os specific errno (if any) -function utime(path, mtime, atime) - return fs.utimes(path, atime, mtime) -end - ---- Return the last element - usually the filename - from the given path with --- the directory component stripped. --- @class function --- @name basename --- @param path String containing the path to strip --- @return String containing the base name of given path --- @see dirname -basename = fs.basename - ---- Return the directory component of the given path with the last element --- stripped of. --- @class function --- @name dirname --- @param path String containing the path to strip --- @return String containing the directory component of given path --- @see basename -dirname = fs.dirname - ---- Return a table containing all entries of the specified directory. --- @class function --- @name dir --- @param path String containing the path of the directory to scan --- @return Table containing file and directory entries or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -function dir(...) - local iter, code, msg = fs.dir(...) - if iter then - local t = nutil.consume(iter) - t[#t+1] = "." - t[#t+1] = ".." - return t - else - return nil, code, msg - end -end - ---- Create a new directory, recursively on demand. --- @param path String with the name or path of the directory to create --- @param recursive Create multiple directory levels (optional, default is true) --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -function mkdir(path, recursive) - return recursive and fs.mkdirr(path) or fs.mkdir(path) -end - ---- Remove the given empty directory. --- @class function --- @name rmdir --- @param path String containing the path of the directory to remove --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -rmdir = fs.rmdir - -local stat_tr = { - reg = "regular", - dir = "directory", - lnk = "link", - chr = "character device", - blk = "block device", - fifo = "fifo", - sock = "socket" -} ---- Get information about given file or directory. --- @class function --- @name stat --- @param path String containing the path of the directory to query --- @return Table containing file or directory properties or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -function stat(path, key) - local data, code, msg = fs.stat(path) - if data then - data.mode = data.modestr - data.type = stat_tr[data.type] or "?" - end - return key and data and data[key] or data, code, msg -end - ---- Set permissions on given file or directory. --- @class function --- @name chmod --- @param path String containing the path of the directory --- @param perm String containing the permissions to set ([ugoa][+-][rwx]) --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -chmod = fs.chmod - ---- Create a hard- or symlink from given file (or directory) to specified target --- file (or directory) path. --- @class function --- @name link --- @param path1 String containing the source path to link --- @param path2 String containing the destination path for the link --- @param symlink Boolean indicating wheather to create a symlink (optional) --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -function link(src, dest, sym) - return sym and fs.symlink(src, dest) or fs.link(src, dest) -end - ---- Remove the given file. --- @class function --- @name unlink --- @param path String containing the path of the file to remove --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -unlink = fs.unlink - ---- Retrieve target of given symlink. --- @class function --- @name readlink --- @param path String containing the path of the symlink to read --- @return String containing the link target or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -readlink = fs.readlink diff --git a/package/ntlf9t/luci-app-clash/luasrc/controller/clash.lua b/package/ntlf9t/luci-app-clash/luasrc/controller/clash.lua deleted file mode 100644 index 295bd4bd96..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/controller/clash.lua +++ /dev/null @@ -1,442 +0,0 @@ -module("luci.controller.clash", package.seeall) -local fs=require"nixio.fs" -local http=require"luci.http" -local uci=require"luci.model.uci".cursor() - - - -function index() - - if not nixio.fs.access("/etc/config/clash") then - return - end - - local page = entry({"admin", "services", "clash"},alias("admin", "services", "clash", "overview"), _("Clash"), 1) - page.dependent = true - page.acl_depends = {"luci-app-clash"} - - entry({"admin", "services", "clash", "overview"},cbi("clash/overview"),_("Overview"), 10).leaf = true - entry({"admin", "services", "clash", "client"},cbi("clash/client/client"),_("Client"), 20).leaf = true - - entry({"admin", "services", "clash", "config"}, firstchild(),_("Config"), 25) - entry({"admin", "services", "clash", "config", "import"},cbi("clash/config/import"),_("Import Config"), 25).leaf = true - entry({"admin", "services", "clash", "config", "config"},cbi("clash/config/config"),_("Select Config"), 30).leaf = true - - entry({"admin", "services", "clash", "config", "create"},cbi("clash/config/create"),_("Create Config"), 35).leaf = true - entry({"admin", "services", "clash", "proxyprovider"},cbi("clash/config/proxy_provider"), nil).leaf = true - entry({"admin", "services", "clash", "servers"},cbi("clash/config/servers-config"), nil).leaf = true - entry({"admin", "services", "clash", "ruleprovider"},cbi("clash/config/rule_provider"), nil).leaf = true - entry({"admin", "services", "clash", "rules"},cbi("clash/config/rules"), nil).leaf = true - entry({"admin", "services", "clash", "pgroups"},cbi("clash/config/groups"), nil).leaf = true - entry({"admin", "services", "clash", "rulemanager"},cbi("clash/config/ruleprovider_manager"), nil).leaf = true - - - entry({"admin", "services", "clash", "settings"}, firstchild(),_("Settings"), 40) - entry({"admin", "services", "clash", "settings", "port"},cbi("clash/dns/port"),_("Proxy Ports"), 60).leaf = true - entry({"admin", "services", "clash", "settings", "geoip"},cbi("clash/geoip/geoip"),_("Update GeoIP"), 80).leaf = true - entry({"admin", "services", "clash", "settings", "grules"},cbi("clash/game/game-settings"),_("Game Rules"), 91).dependent = false - entry({"admin", "services", "clash", "g-rules"},cbi("clash/game/game-rule"), nil).leaf = true - entry({"admin", "services", "clash", "settings", "other"},cbi("clash/other"),_("Other Settings"), 92).leaf = true - entry({"admin", "services", "clash", "ip-rules"},cbi("clash/config/ip-rules"), nil).leaf = true - entry({"admin", "services", "clash", "settings", "dns"},firstchild(),_("DNS Settings"), 65) - entry({"admin", "services", "clash", "settings", "dns", "dns"},cbi("clash/dns/dns"),_("Clash DNS"), 70).leaf = true - entry({"admin", "services", "clash", "settings", "dns", "advance"},cbi("clash/dns/advance"),_("Advance DNS"), 75).leaf = true - - - - entry({"admin", "services", "clash", "update"},cbi("clash/update/update"),_("Update"), 45).leaf = true - entry({"admin", "services", "clash", "log"},cbi("clash/logs/log"),_("Log"), 50).leaf = true - - - entry({"admin","services","clash","check_status"},call("check_status")).leaf=true - entry({"admin", "services", "clash", "ping"}, call("act_ping")).leaf=true - entry({"admin", "services", "clash", "readlog"},call("action_read")).leaf=true - entry({"admin","services","clash", "status"},call("action_status")).leaf=true - entry({"admin", "services", "clash", "check"}, call("check_update_log")).leaf=true - entry({"admin", "services", "clash", "doupdate"}, call("do_update")).leaf=true - entry({"admin", "services", "clash", "start"}, call("do_start")).leaf=true - entry({"admin", "services", "clash", "stop"}, call("do_stop")).leaf=true - entry({"admin", "services", "clash", "reload"}, call("do_reload")).leaf=true - entry({"admin", "services", "clash", "geo"}, call("geoip_check")).leaf=true - entry({"admin", "services", "clash", "geoipupdate"}, call("geoip_update")).leaf=true - entry({"admin", "services", "clash", "check_geoip"}, call("check_geoip_log")).leaf=true - entry({"admin", "services", "clash", "corelog"},call("down_check")).leaf=true - entry({"admin", "services", "clash", "logstatus"},call("logstatus_check")).leaf=true - entry({"admin", "services", "clash", "conf"},call("action_conf")).leaf=true - entry({"admin", "services", "clash", "update_config"},call("action_update")).leaf=true - entry({"admin", "services", "clash", "game_rule"},call("action_update_rule")).leaf=true - entry({"admin", "services", "clash", "ruleproviders"},call("action_update_rule_providers")).leaf=true - entry({"admin", "services", "clash", "ping_check"},call("action_ping_status")).leaf=true - -end - -local fss = require "luci.clash" - -local function download_rule_provider() - local filename = luci.http.formvalue("filename") - local status = luci.sys.call(string.format('/usr/share/clash/create/clash_rule_provider.sh "%s" >/dev/null 2>&1',filename)) - return status -end - - -function action_update_rule_providers() - luci.http.prepare_content("application/json") - luci.http.write_json({ - rulep = download_rule_provider(); -}) -end - - -local function uhttp_port() - local uhttp_port = luci.sys.exec("uci get uhttpd.main.listen_http |awk -F ':' '{print $NF}'") - if uhttp_port ~= "80" then - return ":" .. uhttp_port - end -end - -local function download_rule() - local filename = luci.http.formvalue("filename") - local rule_file_dir="/usr/share/clash/rules/g_rules/" .. filename - luci.sys.call(string.format('sh /usr/share/clash/clash_game_rule.sh "%s" >/dev/null 2>&1',filename)) - if not fss.isfile(rule_file_dir) then - return "0" - else - return "1" - end -end - -function action_update_rule() - luci.http.prepare_content("application/json") - luci.http.write_json({ - game_rule = download_rule() -}) -end - -function action_update() - luci.sys.exec("kill $(pgrep /usr/share/clash/update.sh) ; (bash /usr/share/clash/update.sh >/usr/share/clash/clash.txt 2>&1) &") -end - - -local function in_use() - return luci.sys.exec("uci get clash.config.config_type") -end - - -local function conf_path() - if nixio.fs.access(string.sub(luci.sys.exec("uci get clash.config.use_config"), 1, -2)) then - return fss.basename(string.sub(luci.sys.exec("uci get clash.config.use_config"), 1, -2)) - else - return "" - end -end - - - -local function typeconf() - return luci.sys.exec("uci get clash.config.config_type") -end - - -function action_conf() - luci.http.prepare_content("application/json") - luci.http.write_json({ - conf_path = conf_path(), - typeconf = typeconf() - - }) -end - - -local function dash_port() - return luci.sys.exec("uci get clash.config.dash_port 2>/dev/null") -end -local function dash_pass() - return luci.sys.exec("uci get clash.config.dash_pass 2>/dev/null") -end - -local function is_running() - return luci.sys.call("pidof clash >/dev/null") == 0 -end - -local function is_web() - return luci.sys.call("pidof clash >/dev/null") == 0 -end - -local function localip() - return luci.sys.exec("uci get network.lan.ipaddr") -end - -local function check_version() - return luci.sys.exec("sh /usr/share/clash/check_luci_version.sh") -end - -local function check_core() - return luci.sys.exec("sh /usr/share/clash/check_core_version.sh") -end - - -local function check_clashtun_core() - return luci.sys.exec("sh /usr/share/clash/check_clashtun_core_version.sh") -end - -local function current_version() - return luci.sys.exec("sed -n 1p /usr/share/clash/luci_version") -end - -local function new_version() - return luci.sys.exec("sed -n 1p /usr/share/clash/new_luci_version") -end - -local function new_core_version() - return luci.sys.exec("sed -n 1p /usr/share/clash/new_core_version") -end - - -local function new_clashtun_core_version() - return luci.sys.exec("sed -n 1p /usr/share/clash/new_clashtun_core_version") -end - -local function check_dtun_core() - return luci.sys.call(string.format("sh /usr/share/clash/check_dtun_core_version.sh")) -end - -local function new_dtun_core() - return luci.sys.exec("sed -n 1p /usr/share/clash/new_clashdtun_core_version") -end - -local function e_mode() - return luci.sys.exec("egrep '^ {0,}enhanced-mode' /etc/clash/config.yaml |grep enhanced-mode: |awk -F ': ' '{print $2}'") -end - - -local function clash_core() - if nixio.fs.access("/etc/clash/clash") then - local core=luci.sys.exec("/etc/clash/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") - if core ~= "" then - return luci.sys.exec("/etc/clash/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") - else - return luci.sys.exec("sed -n 1p /usr/share/clash/core_version") - end - else - return "0" - end -end - - - - -local function clashtun_core() - if nixio.fs.access("/etc/clash/clashtun/clash") then - local tun=luci.sys.exec("/etc/clash/clashtun/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") - if tun ~= "" then - return luci.sys.exec("/etc/clash/clashtun/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") - else - return luci.sys.exec("sed -n 1p /usr/share/clash/tun_version") - end - else - return "0" - end -end - - -local function dtun_core() - if nixio.fs.access("/etc/clash/dtun/clash") then - local tun=luci.sys.exec("/etc/clash/dtun/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") - if tun ~= "" then - return luci.sys.exec("/etc/clash/dtun/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") - else - return luci.sys.exec("sed -n 1p /usr/share/clash/dtun_core_version") - end - else - return "0" - end -end - - -local function readlog() - return luci.sys.exec("sed -n '$p' /usr/share/clash/clash_real.txt 2>/dev/null") -end - -local function geo_data() - return os.date("%Y-%m-%d %H:%M:%S",fss.mtime("/etc/clash/Country.mmdb")) -end - -local function downcheck() - if nixio.fs.access("/var/run/core_update_error") then - return "0" - elseif nixio.fs.access("/var/run/core_update") then - return "1" - elseif nixio.fs.access("/usr/share/clash/core_down_complete") then - return "2" - end -end - -function action_read() - luci.http.prepare_content("application/json") - luci.http.write_json({ - readlog = readlog(); - }) -end - -function down_check() - luci.http.prepare_content("application/json") - luci.http.write_json({ - downcheck = downcheck(); - }) -end - -local function geoipcheck() - if nixio.fs.access("/var/run/geoip_update_error") then - return "0" - elseif nixio.fs.access("/var/run/geoip_update") then - return "1" - elseif nixio.fs.access("/var/run/geoip_down_complete") then - return "2" - end -end - -function geoip_check() - luci.http.prepare_content("application/json") - luci.http.write_json({ - geoipcheck = geoipcheck(); - }) -end - - - - -function check_status() - luci.http.prepare_content("application/json") - luci.http.write_json({ - check_version = check_version(), - check_core = check_core(), - current_version = current_version(), - new_version = new_version(), - clash_core = clash_core(), - check_dtun_core = check_dtun_core(), - new_dtun_core = new_dtun_core(), - clashtun_core = clashtun_core(), - dtun_core = dtun_core(), - new_core_version = new_core_version(), - new_clashtun_core_version =new_clashtun_core_version(), - check_clashtun_core = check_clashtun_core(), - conf_path = conf_path(), - typeconf = typeconf() - }) -end -function action_status() - luci.http.prepare_content("application/json") - luci.http.write_json({ - web = is_web(), - clash = is_running(), - localip = localip(), - dash_port = dash_port(), - current_version = current_version(), - new_dtun_core = new_dtun_core(), - new_core_version = new_core_version(), - new_clashtun_core_version =new_clashtun_core_version(), - new_version = new_version(), - clash_core = clash_core(), - dtun_core = dtun_core(), - dash_pass = dash_pass(), - clashtun_core = clashtun_core(), - e_mode = e_mode(), - in_use = in_use(), - conf_path = conf_path(), - uhttp_port = uhttp_port(), - typeconf = typeconf() - }) -end - -function action_ping_status() - luci.http.prepare_content("application/json") - luci.http.write_json({ - ping_enable = ping_enable() - }) -end - -function act_ping() - local e={} - e.index=luci.http.formvalue("index") - e.ping=luci.sys.exec("ping -c 1 -W 1 -w 5 %q 2>&1 | grep -o 'time=[0-9]*.[0-9]' | awk -F '=' '{print$2}'"%luci.http.formvalue("domain")) - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end - - -function geoip_update() - fs.writefile("/var/run/geoiplog","0") - luci.sys.exec("(rm /var/run/geoip_update_error ; touch /var/run/geoip_update ; sh /usr/share/clash/geoip.sh >/tmp/geoip_update.txt 2>&1 || touch /var/run/geoip_update_error ;rm /var/run/geoip_update) &") -end - - -function do_update() - fs.writefile("/var/run/clashlog","0") - luci.sys.exec("(rm /var/run/core_update_error ; touch /var/run/core_update ; sh /usr/share/clash/core_download.sh >/tmp/clash_update.txt 2>&1 || touch /var/run/core_update_error ;rm /var/run/core_update) &") -end - -function do_start() - luci.sys.exec('uci set clash.config.enable="1" && uci commit clash') - luci.sys.exec("/etc/init.d/clash restart 2>&1 &") -end - -function do_stop() - luci.sys.exec('uci set clash.config.enable="0" && uci commit clash') - luci.sys.exec("/etc/init.d/clash stop 2>&1 &") -end - -function do_reload() - if luci.sys.call("pidof clash >/dev/null") == 0 then - luci.sys.exec("/etc/init.d/clash reload 2>&1 &") - end -end - -function check_update_log() - luci.http.prepare_content("text/plain; charset=utf-8") - local fdp=tonumber(fs.readfile("/var/run/clashlog")) or 0 - local f=io.open("/tmp/clash_update.txt", "r+") - f:seek("set",fdp) - local a=f:read(2048000) or "" - fdp=f:seek() - fs.writefile("/var/run/clashlog",tostring(fdp)) - f:close() -if fs.access("/var/run/core_update") then - luci.http.write(a) -else - luci.http.write(a.."\0") -end -end - -function check_geoip_log() - luci.http.prepare_content("text/plain; charset=utf-8") - local fdp=tonumber(fs.readfile("/var/run/geoiplog")) or 0 - local f=io.open("/tmp/geoip_update.txt", "r+") - f:seek("set",fdp) - local a=f:read(2048000) or "" - fdp=f:seek() - fs.writefile("/var/run/geoiplog",tostring(fdp)) - f:close() -if fs.access("/var/run/geoip_update") then - luci.http.write(a) -else - luci.http.write(a.."\0") -end -end - - -function logstatus_check() - luci.http.prepare_content("text/plain; charset=utf-8") - local fdp=tonumber(fs.readfile("/usr/share/clash/logstatus_check")) or 0 - local f=io.open("/usr/share/clash/clash.txt", "r+") - f:seek("set",fdp) - local a=f:read(2048000) or "" - fdp=f:seek() - fs.writefile("/usr/share/clash/logstatus_check",tostring(fdp)) - f:close() -if fs.access("/var/run/logstatus") then - luci.http.write(a) -else - luci.http.write(a.."\0") -end -end - diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/client/client.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/client/client.lua deleted file mode 100644 index 85d0af5b8d..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/client/client.lua +++ /dev/null @@ -1,56 +0,0 @@ -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = require("luci.model.uci").cursor() -local fs = require "luci.clash" -local clash = "clash" - - -m = Map("clash") -s = m:section(TypedSection, "clash") -s.anonymous = true -m.pageaction = false - -o = s:option(ListValue, "core", translate("Core")) -o.default = "clashcore" -if nixio.fs.access("/etc/clash/clash") then -o:value("1", translate("Clash")) -end -if nixio.fs.access("/etc/clash/clashtun/clash") then -o:value("3", translate("Clash(cTun)")) -end -if nixio.fs.access("/etc/clash/dtun/clash") then -o:value("4", translate("Clash(premium)")) -end - - -o = s:option(ListValue, "g_rules", translate("Game Rules")) -o.default = "0" -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) -o.description = translate("Set rules under Setting=>Game Rules, will take effect when client start") - - -o = s:option(ListValue, "append_rules", translate("Append Customs Rules")) -o.default = "0" -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) -o.description = translate("Set custom rules under Setting=>Others , will take effect when client start") - -o = s:option(Button, "Apply") -o.title = luci.util.pcdata(translate("Save & Apply")) -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() - m.uci:commit("clash") -end - -o = s:option(Button,"action") -o.title = translate("Operation") -o.template = "clash/start_stop" - - -return m - diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/config.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/config.lua deleted file mode 100644 index 3715285b10..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/config.lua +++ /dev/null @@ -1,365 +0,0 @@ - -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = luci.model.uci.cursor() -local fs = require "luci.clash" -local http = luci.http -local clash = "clash" - - -c = Map("clash") -c.template="clash/conf" - - -m = Map("clash") -s = m:section(TypedSection, "clash") -m.pageaction = false -s.anonymous = true -s.addremove=false - -local conf = string.sub(luci.sys.exec("uci get clash.config.use_config"), 1, -2) -sev = s:option(TextValue, "conf") -sev.rows = 20 -sev.wrap = "off" -sev.cfgvalue = function(self, section) - return NXFS.readfile(conf) or "" -end -sev.write = function(self, section, value) - NXFS.writefile(conf, value:gsub("\r\n", "\n")) -end - -o=s:option(Button,"apply") -o.inputtitle = translate("Save & Apply") -o.inputstyle = "reload" -o.write = function() - m.uci:commit("clash") -end - - - - -local e,a={} -for t,o in ipairs(fs.glob("/usr/share/clash/config/sub/*.yaml"))do -a=fs.stat(o) -if a then -e[t]={} -e[t].name=fs.basename(o) -e[t].mtime=os.date("%Y-%m-%d %H:%M:%S",a.mtime) -e[t].size=tostring(a.size) -e[t].remove1=0 -e[t].enable=false -end -end - -function IsYamlFile(e) -e=e or"" -local e=string.lower(string.sub(e,-5,-1)) -return e==".yaml" -end - - -f=Form("config_listst") -f.reset=false -f.submit=false -tb=f:section(Table,e, translate("Subcription Config List")) -nm=tb:option(DummyValue,"name",translate("File Name")) -mt=tb:option(DummyValue,"mtime",translate("Update Time")) -sz=tb:option(DummyValue,"size",translate("Size")) - -btnis=tb:option(Button,"switch1",translate("Use Config")) -btnis.template="clash/other_button" -btnis.render=function(o,t,a) -if not e[t]then return false end -if IsYamlFile(e[t].name)then -a.display="" -else -a.display="none" -end -o.inputstyle="apply" -Button.render(o,t,a) -end -btnis.write=function(a,t) -luci.sys.exec(string.format('uci set clash.config.use_config="/usr/share/clash/config/sub/%s"',e[t].name )) -luci.sys.exec('uci set clash.config.config_type="1"') -luci.sys.exec('uci commit clash') -if luci.sys.call("pidof clash >/dev/null") == 0 then - SYS.call("/etc/init.d/clash restart >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) -else - HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config","config")) -end -end - -btnist=tb:option(Button,"update1",translate("Update")) -btnist.template="clash/other_button" -btnist.render=function(o,t,a) -if not e[t]then return false end -o.inputstyle="apply" -Button.render(o,t,a) -end -btnist.write=function(a,t) -luci.sys.exec(string.format('uci set clash.config.config_update_name="%s"',e[t].name)) -luci.sys.exec('uci commit clash') -luci.sys.exec('bash /usr/share/clash/update.sh >>/usr/share/clash/clash.txt 2>&1 &') -luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) -end - - - -btndl = tb:option(Button,"download1",translate("Download")) -btndl.template="clash/other_button" -btndl.render=function(e,t,a) -e.inputstyle="remove" -Button.render(e,t,a) -end -btndl.write = function (a,t) - local sPath, sFile, fd, block - sPath = "/usr/share/clash/config/sub/"..e[t].name - sFile = NXFS.basename(sPath) - if fs.isdirectory(sPath) then - fd = io.popen('yaml -C "%s" -cz .' % {sPath}, "r") - sFile = sFile .. ".yaml" - else - fd = nixio.open(sPath, "r") - end - if not fd then - return - end - HTTP.header('Content-Disposition', 'attachment; filename="%s"' % {sFile}) - HTTP.prepare_content("application/octet-stream") - while true do - block = fd:read(nixio.const.buffersize) - if (not block) or (#block ==0) then - break - else - HTTP.write(block) - end - end - fd:close() - HTTP.close() -end - - -btnrm=tb:option(Button,"remove1",translate("Remove")) -btnrm.render=function(e,t,a) -e.inputstyle="remove" -Button.render(e,t,a) -end -btnrm.write=function(a,t) -local a=fs.unlink("/usr/share/clash/config/sub/"..fs.basename(e[t].name)) -luci.sys.exec(string.format('uci set clash.config.config_name_remove="%s"',e[t].name)) -luci.sys.exec('uci commit clash') -luci.sys.exec('bash /usr/share/clash/rmlist.sh 2>&1 &') -if a then table.remove(e,t)end -return a -end - - - -local p,x={} -for q,v in ipairs(fs.glob("/usr/share/clash/config/upload/*.yaml"))do -x=fs.stat(v) -if x then -p[q]={} -p[q].name=fs.basename(v) -p[q].mtime=os.date("%Y-%m-%d %H:%M:%S",x.mtime) -p[q].size=tostring(x.size) -p[q].remove2=0 -p[q].enable=false -end -end - -fr=Form("config_list") -fr.reset=false -fr.submit=false -tb=fr:section(Table,p, translate("Upload Config List")) -nm=tb:option(DummyValue,"name",translate("File Name")) -mt=tb:option(DummyValue,"mtime",translate("Update Time")) -sz=tb:option(DummyValue,"size",translate("Size")) - -function IsYamlFile(p) -p=p or"" -local p=string.lower(string.sub(p,-5,-1)) -return p==".yaml" -end - -btniss=tb:option(Button,"switch2",translate("Use Config")) -btniss.template="clash/other_button" -btniss.render=function(v,q,x) -if not p[q]then return false end -if IsYamlFile(p[q].name)then -x.display="" -else -x.display="none" -end -v.inputstyle="apply" -Button.render(v,q,x) -end -btniss.write=function(x,q) -luci.sys.exec(string.format('uci set clash.config.use_config="/usr/share/clash/config/upload/%s"',p[q].name )) -luci.sys.exec('uci set clash.config.config_type="2"') -luci.sys.exec('uci commit clash') -if luci.sys.call("pidof clash >/dev/null") == 0 then - SYS.call("/etc/init.d/clash restart >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) -else - HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config" ,"config")) -end -end - -btndll = tb:option(Button,"download2",translate("Download")) -btndll.template="clash/other_button" -btndll.render=function(p,q,x) -p.inputstyle="remove" -Button.render(p,q,x) -end -btndll.write = function (x,q) - local sPath, sFile, fd, block - sPath = "/usr/share/clash/config/upload/"..p[q].name - sFile = NXFS.basename(sPath) - if fs.isdirectory(sPath) then - fd = io.popen('yaml -C "%s" -cz .' % {sPath}, "r") - sFile = sFile .. ".yaml" - else - fd = nixio.open(sPath, "r") - end - if not fd then - return - end - HTTP.header('Content-Disposition', 'attachment; filename="%s"' % {sFile}) - HTTP.prepare_content("application/octet-stream") - while true do - block = fd:read(nixio.const.buffersize) - if (not block) or (#block ==0) then - break - else - HTTP.write(block) - end - end - fd:close() - HTTP.close() -end - - -btnrml=tb:option(Button,"remove2",translate("Remove")) -btnrml.render=function(p,q,x) -p.inputstyle="remove" -Button.render(p,q,x) -end -btnrml.write=function(x,q) -local x=fs.unlink("/usr/share/clash/config/upload/"..fs.basename(p[q].name)) -luci.sys.exec(string.format('uci set clash.config.config_up_remove="%s"',p[q].name)) -luci.sys.exec('uci commit clash') -luci.sys.exec('bash /usr/share/clash/uplist.sh 2>&1 &') -if x then table.remove(p,q)end -return x -end - - -local k,v={} -for c,z in ipairs(fs.glob("/usr/share/clash/config/custom/*.yaml"))do -v=fs.stat(z) -if v then -k[c]={} -k[c].name=fs.basename(z) -k[c].mtime=os.date("%Y-%m-%d %H:%M:%S",v.mtime) -k[c].size=tostring(v.size) -k[c].remove3=0 -k[c].enable=false -end -end - -fro=Form("config_listts") -fro.reset=false -fro.submit=false -tb=fro:section(Table,k,translate("Custom Config List")) -nm=tb:option(DummyValue,"name",translate("File Name")) -mt=tb:option(DummyValue,"mtime",translate("Update Time")) -sz=tb:option(DummyValue,"size",translate("Size")) - -function IsYamlFile(k) -k=k or"" -local k=string.lower(string.sub(k,-5,-1)) -return k==".yaml" -end - -btnisz=tb:option(Button,"switch3",translate("Use Config")) -btnisz.template="clash/other_button" -btnisz.render=function(z,c,v) -if not k[c]then return false end -if IsYamlFile(k[c].name)then -v.display="" -else -v.display="none" -end -z.inputstyle="apply" -Button.render(z,c,v) -end -btnisz.write=function(v,c) -luci.sys.exec(string.format('uci set clash.config.use_config="/usr/share/clash/config/custom/%s"',k[c].name )) -luci.sys.exec('uci set clash.config.config_type="3"') -luci.sys.exec('uci commit clash') -if luci.sys.call("pidof clash >/dev/null") == 0 then - SYS.call("/etc/init.d/clash restart >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) -else - HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "config")) -end -end - - - - -btndlz = tb:option(Button,"download3",translate("Download")) -btndlz.template="clash/other_button" -btndlz.render=function(k,c,v) -k.inputstyle="remove" -Button.render(k,c,v) -end -btndlz.write = function (v,c) - local sPath, sFile, fd, block - sPath = "/usr/share/clash/config/custom/"..k[c].name - sFile = NXFS.basename(sPath) - if fs.isdirectory(sPath) then - fd = io.popen('yaml -C "%s" -cz .' % {sPath}, "r") - sFile = sFile .. ".yaml" - else - fd = nixio.open(sPath, "r") - end - if not fd then - return - end - HTTP.header('Content-Disposition', 'attachment; filename="%s"' % {sFile}) - HTTP.prepare_content("application/octet-stream") - while true do - block = fd:read(nixio.const.buffersize) - if (not block) or (#block ==0) then - break - else - HTTP.write(block) - end - end - fd:close() - HTTP.close() -end - - -btnrmz=tb:option(Button,"remove3",translate("Remove")) -btnrmz.render=function(k,c,v) -k.inputstyle="remove" -Button.render(k,c,v) -end -btnrmz.write=function(v,c) -local v=fs.unlink("/usr/share/clash/config/custom/"..fs.basename(k[c].name)) -luci.sys.exec(string.format('uci set clash.config.config_cus_remove="%s"',k[c].name)) -luci.sys.exec('uci commit clash') -luci.sys.exec('/usr/share/clash/cuslist.sh 2>&1 &') - -if v then table.remove(k,c)end -return v -end - -return c,f,fr,fro,m \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/create.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/create.lua deleted file mode 100644 index d0cc99faff..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/create.lua +++ /dev/null @@ -1,386 +0,0 @@ -local clash = "clash" -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local fs = require "luci.clash" -local uci = require "luci.model.uci".cursor() -local s, o, krk, z, r -local http = luci.http - -font_blue = [[]] -font_off = [[]] -bold_on = [[]] -bold_off = [[]] - -krk = Map(clash) -s = krk:section(TypedSection, "clash", translate("Create Config")) -s.anonymous = true ---krk.pageaction = false - -o = s:option(Flag, "provider_config", translate("Enable Create")) -o.default = 1 -o.description = translate("Enable to create configuration") - -o = s:option(Flag, "prox", translate("Use Proxy")) -o.description = translate("Use Proxy") - - -o = s:option(Flag, "ppro", translate("Use Proxy Provider")) -o.description = translate("Use Proxy Provider") - -o = s:option(Flag, "rulprp", translate("Use Rule Provider")) -o.description = translate("Use Rule Provider") -o:depends("orul", 0) - -o = s:option(Flag, "rul", translate("Use Rules")) -o.description = translate("Use Rules") -o:depends("orul", 0) - -o = s:option(Flag, "orul", translate("Use Other Rules")) -o.description = translate("Use Other Rules") -o:depends("rul", 0) - - -o = s:option(Flag, "script", translate("Use Script")) -o.description = translate("Use Script") -o:depends("rul", 1) -o:depends("rulprp", 1) - -o = s:option(Value, "name_tag") -o.title = translate("Config Name") -o.rmempty = true -o.description = translate("Give a name for your config") - -cc = s:option(Flag, "same_tag", translate("Force Same Name")) -cc.default = 1 -cc.description = translate("Enable to overwrite config file") - -o = s:option(Button,"Manager") -o.title = translate("Rule Providers Manager") -o.inputtitle = translate("Rule Providers Manager") -o.inputstyle = "reload" -o.write = function() - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "rulemanager")) -end - - -local t = { - {Creat_Config, Delete_Groups, Delete_ProxyPro, Delete_RulePro,Delete_Rules} -} - -b = krk:section(Table, t) - - -o = b:option(Button,"Creat_Config") -o.inputtitle = translate("Create Config") -o.inputstyle = "apply" -o.write = function() - krk.uci:commit("clash") - luci.sys.call("bash /usr/share/clash/create/create.sh >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) -end - -o = b:option(Button,"Delete Severs") -o.inputtitle = translate("Delete Severs") -o.inputstyle = "reset" -o.write = function() - krk.uci:delete_all("clash", "servers", function(s) return true end) - krk.uci:commit("clash") -end - -o = b:option(Button,"Delete_ProxyPro") -o.inputtitle = translate("Delete Proxy Provider") -o.inputstyle = "reset" -o.write = function() - krk.uci:delete_all("clash", "proxyprovider", function(s) return true end) - krk.uci:commit("clash") -end - -o = b:option(Button,"Delete_RulePro") -o.inputtitle = translate("Delete Rule Provider") -o.inputstyle = "reset" -o.write = function() - krk.uci:delete_all("clash", "ruleprovider", function(s) return true end) - krk.uci:commit("clash") -end - - -o = b:option(Button,"Delete_Rules") -o.inputtitle = translate("Delete Rules") -o.inputstyle = "reset" -o.write = function() - krk.uci:delete_all("clash", "rules", function(s) return true end) - krk.uci:commit("clash") -end - -o = b:option(Button,"Delete_Groups") -o.inputtitle = translate("Delete Groups") -o.inputstyle = "reset" -o.write = function() - krk.uci:delete_all("clash", "pgroups", function(s) return true end) - krk.uci:commit("clash") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "create")) -end - - --- [[ Proxies ]]-- -s = krk:section(TypedSection, "servers", translate("Proxies")) -s.anonymous = true -s.addremove = true -s.sortable = false -s.template = "cbi/tblsection" -s.extedit = luci.dispatcher.build_url("admin/services/clash/servers/%s") -function s.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(s.extedit % sid) - return - end -end - -o = s:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - -o = s:option(DummyValue, "type", translate("Type")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = s:option(DummyValue, "name", translate("Alias")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = s:option(DummyValue, "server", translate("Server Address")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = s:option(DummyValue, "port", translate("Server Port")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = s:option(DummyValue, "server" ,translate("Latency")) -o.template="clash/ping" -o.width="10%" - - --- [[ Groups Manage ]]-- -x = krk:section(TypedSection, "pgroups", translate("Policy Groups")) -x.description = font_blue..bold_on..translate(" https://lancellc.gitbook.io/clash/clash-config-file/proxy-groups")..bold_off..font_off..' ' -x.anonymous = true -x.addremove = true -x.sortable = true -x.template = "cbi/tblsection" -x.extedit = luci.dispatcher.build_url("admin/services/clash/pgroups/%s") -function x.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(x.extedit % sid) - return - end -end - -o = x:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - -o = x:option(DummyValue, "type", translate("Group Type")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - -o = x:option(DummyValue, "name", translate("Group Name")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - --- [[ Proxy-Provider Manage ]]-- -z = krk:section(TypedSection, "proxyprovider", translate("Proxy Provider")) -z.description = font_blue..bold_on..translate(" https://lancellc.gitbook.io/clash/clash-config-file/proxy-provider")..bold_off..font_off..' ' -z.anonymous = true -z.addremove = true -z.sortable = true -z.template = "cbi/tblsection" -z.extedit = luci.dispatcher.build_url("admin/services/clash/proxyprovider/%s") -function z.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(z.extedit % sid) - return - end -end - -o = z:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - -o = z:option(DummyValue, "name", translate("Provider Name")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = z:option(DummyValue, "type", translate("Provider Type")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - - --- [[ Rule-Provider Manage ]]-- -r = krk:section(TypedSection, "ruleprovider", translate("Rule Provider")) -r.description = font_blue..bold_on..translate(" https://lancellc.gitbook.io/clash/clash-config-file/rule-provider")..bold_off..font_off..' ' -r.anonymous = true -r.addremove = true -r.sortable = true -r.template = "cbi/tblsection" -r.extedit = luci.dispatcher.build_url("admin/services/clash/ruleprovider/%s") -function r.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(r.extedit % sid) - return - end -end - -o = r:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - - -o = r:option(DummyValue, "name", translate("Provider Name")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = r:option(DummyValue, "type", translate("Provider Type")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = r:option(DummyValue, "behavior", translate("Provider Behavior")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - --- [[ Rule Manage ]]-- -q = krk:section(TypedSection, "rules", translate("Rules")) -q.description = font_blue..bold_on..translate(" https://lancellc.gitbook.io/clash/clash-config-file/rules")..bold_off..font_off..' ' -q.anonymous = true -q.addremove = true -q.sortable = true -q.template = "cbi/tblsection" -q.extedit = luci.dispatcher.build_url("admin/services/clash/rules/%s") -function q.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(q.extedit % sid) - return - end -end - -o = q:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - -o = q:option(DummyValue, "type", translate("Rule Type")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = q:option(DummyValue, "rulename", translate("Description")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("-") -end - - -o = q:option(DummyValue, "rulegroups", translate("Groups")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - -m = Map("clash") -y = m:section(TypedSection, "clash" , translate("Script")) -y.anonymous = true -y.addremove=false - - -local script="/usr/share/clash/create/script.yaml" -sev = y:option(TextValue, "scriptt") -sev.description =translate("NB: Set Clash Mode to Script if want to use")..font_blue..bold_on..translate(" https://lancellc.gitbook.io/clash/clash-config-file/script")..bold_off..font_off..' ' -sev.rows = 10 -sev.wrap = "off" -sev.cfgvalue = function(self, section) - return NXFS.readfile(script) or "" -end -sev.write = function(self, section, value) - NXFS.writefile(script, value:gsub("\r\n", "\n")) -end - - -l = Map("clash") -v = l:section(TypedSection, "clash" , translate("Other Rules")) -v.anonymous = true -v.addremove=false - - -o = v:option(Value, "rule_url") -o.title = translate("Custom Rule Url") -o.description = translate("Insert your custom rule Url and click download") -o.rmempty = true - -o = v:option(Button,"rule_update") -o.title = translate("Download Rule") -o.inputtitle = translate("Download Rule") -o.description = translate("Download Rule") -o.inputstyle = "reload" -o.write = function() - uci:commit("clash") - luci.sys.call("bash /usr/share/clash/rule.sh >>/usr/share/clash/clash.txt >/dev/null 2>&1 &") -end - -local rule = "/usr/share/clash/rule.yaml" -sev = v:option(TextValue, "rule") -sev.description = translate("NB: Attention to Proxy Group and Rule when making changes to this section") -sev.rows = 20 -sev.wrap = "off" -sev.cfgvalue = function(self, section) - return NXFS.readfile(rule) or "" -end -sev.write = function(self, section, value) - NXFS.writefile(rule, value:gsub("\r\n", "\n")) -end - -o = v:option(Button,"del_rule") -o.inputtitle = translate("Delete Rule") -o.write = function() - SYS.call("rm -rf /usr/share/clash/rule.yaml >/dev/null 2>&1 &") -end - -krk:append(Template("clash/list")) - -return krk,m,l - diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/groups.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/groups.lua deleted file mode 100644 index fb955cbd44..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/groups.lua +++ /dev/null @@ -1,94 +0,0 @@ - -local m, s, o -local clash = "clash" -local uci = luci.model.uci.cursor() -local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] - - -m = Map(clash, translate("Edit Group")) -m.pageaction = false -m.redirect = luci.dispatcher.build_url("admin/services/clash/config/create") -if m.uci:get(clash, sid) ~= "pgroups" then - luci.http.redirect(m.redirect) - return -end - --- [[ Groups Setting ]]-- -s = m:section(NamedSection, sid, "pgroups") -s.anonymous = true -s.addremove = false - -o = s:option(ListValue, "type", translate("Group Type")) -o.rmempty = true -o.description = translate("Choose The Operation Mode") -o:value("select", translate("Select")) -o:value("url-test", translate("URL-Test")) -o:value("fallback", translate("Fallback")) -o:value("load-balance", translate("Load-Balance")) -o:value("relay", translate("Relay")) - -o = s:option(Value, "name", translate("Group Name")) -o.rmempty = false - -o = s:option(Value, "test_url", translate("Test URL")) -o.default = "http://www.gstatic.com/generate_204" -o.rmempty = true -o:depends("type", "url-test") -o:depends("type", "fallback") -o:depends("type", "load-balance") - -o = s:option(Value, "test_interval", translate("Test Interval(s)")) -o.default = "300" -o.rmempty = true -o:depends("type", "url-test") -o:depends("type", "fallback") -o:depends("type", "load-balance") - -o = s:option(DynamicList, "other_group", translate("Other Group")) -o.rmempty = true -o.description = translate("Proxy Groups Must Exist In Rule") -o:value("ALL", translate("All Servers")) -uci:foreach("clash", "pgroups", - function(s) - if s.name ~= "" and s.name ~= nil and s.name ~= m.uci:get(clash, sid, "name") then - o:value(s.name) - end - end) -uci:foreach("clash", "servers", - function(s) - if s.name ~= "" and s.name ~= nil and s.name ~= m.uci:get(clash, sid, "name") then - o:value(s.name) - end - end) -o:value("DIRECT") -o:value("REJECT") - - -local t = { - {Apply, Return} -} - -b = m:section(Table, t) - -o = b:option(Button,"Apply") -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() - m.uci:commit("clash") - sys.call("/usr/share/clash/create/pgroups.sh start >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "create")) -end - -o = b:option(Button,"Return") -o.inputtitle = translate("Back to Overview") -o.inputstyle = "reset" -o.write = function() - m.uci:revert(clash) - luci.http.redirect(m.redirect) - --luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "providers")) -end - - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/import.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/import.lua deleted file mode 100644 index e918238795..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/import.lua +++ /dev/null @@ -1,156 +0,0 @@ - -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = luci.model.uci.cursor() -local fs = require "luci.clash" -local http = luci.http -local clash = "clash" - - - - -kr = Map(clash) -s = kr:section(TypedSection, "clash", translate("Subscription Config")) -s.anonymous = true -kr.pageaction = false - -o = s:option(ListValue, "subcri", translate("Subcription Type")) -o.default = clash -o:value("clash", translate("clash")) -o:value("ssr2clash", translate("ssr2clash")) -o:value("v2clash", translate("v2clash")) -o.description = translate("Select Subcription Type") - -o = s:option(Value, "config_name") -o.title = translate("Config Name") -o.description = translate("Config Name. Do not use a config name that already exist") - -o = s:option(Value, "clash_url") -o.title = translate("Subcription Url") -o.description = translate("Clash Subscription Address") -o.rmempty = true -o:depends("subcri", 'clash') - - -o = s:option(Button,"update") -o.title = translate("Download Config") -o.inputtitle = translate("Download Config") -o.inputstyle = "reload" -o.write = function() - kr.uci:commit("clash") - SYS.call("sh /usr/share/clash/clash.sh >>/usr/share/clash/clash.txt 2>&1 &") - SYS.call("sleep 1") - HTTP.redirect(DISP.build_url("admin", "services", "clash")) -end -o:depends("subcri", 'clash') - -o = s:option(Value, "ssr_url") -o.title = translate("Subcription Url") -o.placeholder = translate("https://www.example.com/link/QkjokZXktyyr35gfj") -o.rmempty = true -o:depends("subcri", 'ssr2clash') - - -o = s:option(Button,"updatee") -o.title = translate("Download Config") -o.inputtitle = translate("Download Config") -o.inputstyle = "reload" -o.write = function() - kr.uci:commit("clash") - luci.sys.call("bash /usr/share/clash/clash.sh >>/usr/share/clash/clash.txt 2>&1 &") - HTTP.redirect(DISP.build_url("admin", "services", "clash")) -end -o:depends("subcri", 'ssr2clash') - -o = s:option(Value, "v2_url") -o.title = translate("Subcription Url") -o.placeholder = translate("https://www.example.com/link/QkjokZXktyyr35gfj") -o.rmempty = true -o:depends("subcri", 'v2clash') - - -o = s:option(Button,"updateee") -o.title = translate("Download Config") -o.inputtitle = translate("Download Config") -o.inputstyle = "reload" -o.write = function() - kr.uci:commit("clash") - luci.sys.call("bash /usr/share/clash/clash.sh >>/usr/share/clash/clash.txt 2>&1 &") - HTTP.redirect(DISP.build_url("admin", "services", "clash")) -end -o:depends("subcri", 'v2clash') - - -function IsYamlFile(e) - e=e or"" - local e=string.lower(string.sub(e,-5,-1)) - return e == ".yaml" -end - -function IsYmlFile(e) - e=e or"" - local e=string.lower(string.sub(e,-4,-1)) - return e == ".yml" -end - - -ko = Map(clash) -ko.reset = false -ko.submit = false -sul =ko:section(TypedSection, "clash", translate("Upload Config")) -sul.anonymous = true -sul.addremove=false -o = sul:option(FileUpload, "") ---o.description = translate("NB: Only upload file with name .yaml.It recommended to rename each upload file name to avoid overwrite") -o.title = translate(" ") -o.template = "clash/clash_upload" -um = sul:option(DummyValue, "", nil) -um.template = "clash/clash_dvalue" - -local dir, fd -dir = "/usr/share/clash/config/upload/" -http.setfilehandler( - - function(meta, chunk, eof) - if not fd then - if not meta then return end - - if meta and chunk then fd = nixio.open(dir .. meta.file, "w") end - - if not fd then - um.value = translate("upload file error.") - return - end - end - if chunk and fd then - fd:write(chunk) - end - if eof and fd then - fd:close() - fd = nil - local e=string.lower(string.sub(meta.file,-4,-1)) - local yml2=string.lower(string.sub(meta.file,0,-5)) - if e == '.yml' then - local yml=string.lower(string.sub(meta.file,0,-5)) - local c=fs.rename(dir .. meta.file,"/usr/share/clash/config/upload/".. yml .. ".yaml") - um.value = translate("File saved to") .. ' "/usr/share/clash/config/upload/'..yml..'.yaml"' - else - um.value = translate("File saved to") .. ' "/usr/share/clash/config/upload/'..yml2..'yaml"' - end - - end - end -) - -if luci.http.formvalue("upload") then - local f = luci.http.formvalue("ulfile") - if #f <= 0 then - um.value = translate("No specify upload file.") - end -end - - -return kr,ko diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/ip-rules.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/ip-rules.lua deleted file mode 100644 index 3b73bcbbf9..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/ip-rules.lua +++ /dev/null @@ -1,59 +0,0 @@ -local m, s, o -local clash = "clash" -local uci = luci.model.uci.cursor() -local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] - - -m = Map(clash, translate("Edit Custom Rule & Group")) ---m.pageaction = false -m.redirect = luci.dispatcher.build_url("admin/services/clash/settings/other") -if m.uci:get(clash, sid) ~= "addtype" then - luci.http.redirect(m.redirect) - return -end - - -s = m:section(NamedSection, sid, "addtype") -s.anonymous = true -s.addremove = false - - -o = s:option(ListValue, "type", translate("Rule Type")) -o.rmempty = false -o.description = translate("Choose Type") -o:value("DST-PORT", translate("DST-PORT")) -o:value("SRC-PORT", translate("SRC-PORT")) -o:value("SRC-IP-CIDR", translate("SRC-IP-CIDR")) -o:value("IP-CIDR", translate("IP-CIDR")) -o:value("IP-CIDR6", translate("IP-CIDR6")) -o:value("DOMAIN", translate("DOMAIN")) -o:value("DOMAIN-KEYWORD", translate("DOMAIN-KEYWORD")) -o:value("DOMAIN-SUFFIX", translate("DOMAIN-SUFFIX")) -o:value("GEOIP", translate("GEOIP")) - - -o = s:option(ListValue, "pgroup", translate("Select Proxy Group")) -uci:foreach("clash", "conf_groups", - function(s) - if s.name ~= "" and s.name ~= nil then - o:value(s.name) - end - end) -o:value("DIRECT") -o:value("REJECT") -o.rmempty = false -o.description = translate("Select a policy group to add rule") - - -o = s:option(Value, "ipaaddr", translate("IP/Domain/Address/Keyword/Port")) -o.rmempty = false - -o = s:option(Flag, "res", translate("No Resolve")) -o.default = 0 -o:depends("type", "IP-CIDR") -o:depends("type", "IP-CIDR6") -o:depends("type", "GEOIP") - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/proxy_provider.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/proxy_provider.lua deleted file mode 100644 index 22a5b9660e..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/proxy_provider.lua +++ /dev/null @@ -1,160 +0,0 @@ - -local m, s, o -local clash = "clash" -local uci = luci.model.uci.cursor() -local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] -local http = luci.http -local fss = require "luci.clash" - -function IsYamlFile(e) - e=e or"" - local e=string.lower(string.sub(e,-5,-1)) - return e == ".yaml" -end -function IsYmlFile(e) - e=e or"" - local e=string.lower(string.sub(e,-4,-1)) - return e == ".yml" -end - - -m = Map(clash, translate("Edit Proxy Provider")) -m.pageaction = false -m.redirect = luci.dispatcher.build_url("admin/services/clash/config/create") -if m.uci:get(clash, sid) ~= "proxyprovider" then - luci.http.redirect(m.redirect) - return -end - -s = m:section(NamedSection, sid, "proxyprovider") -s.anonymous = true -s.addremove = false - -o = s:option(ListValue, "type", translate("Provider Type")) -o.rmempty = false -o.description = translate("Provider Type") -o:value("http") -o:value("file") - -o = s:option(FileUpload, "",translate("Upload Provider File")) -o.title = translate("Provider File") -o.template = "clash/clash_upload" -o:depends("type", "file") -um = s:option(DummyValue, "", nil) -um.template = "clash/clash_dvalue" - -local dir, fd -dir = "/etc/clash/proxyprovider/" -http.setfilehandler( - function(meta, chunk, eof) - if not fd then - if not meta then return end - - if meta and chunk then fd = nixio.open(dir .. meta.file, "w") end - - if not fd then - um.value = translate("upload file error.") - return - end - end - if chunk and fd then - fd:write(chunk) - end - if eof and fd then - fd:close() - fd = nil - um.value = translate("File saved to") .. ' "/etc/clash/proxyprovider/"' - end - end -) - -if luci.http.formvalue("upload") then - local f = luci.http.formvalue("ulfile") - if #f <= 0 then - um.value = translate("No specify upload file.") - end -end - - - -o = s:option(Value, "name", translate("Provider Name")) -o.rmempty = false - - -o = s:option(ListValue, "path", translate("Provider Path")) -o.description = translate("Upload Provider File If Empty") -local p,h={} -for t,f in ipairs(fss.glob("/etc/clash/proxyprovider/*"))do - h=fss.stat(f) - if h then - p[t]={} - p[t].name=fss.basename(f) - if IsYamlFile(p[t].name) or IsYmlFile(p[t].name) then - o:value("./proxyprovider/"..p[t].name) - end - end -end -o.rmempty = true -o:depends("type", "file") - - -o = s:option(Value, "provider_url", translate("Provider URL")) -o.description = translate("【HTTP】./hk.yaml") -o.rmempty = true -o:depends("type", "http") - -o = s:option(Value, "provider_interval", translate("Provider Interval")) -o.default = "3600" -o.rmempty = true -o:depends("type", "http") - -o = s:option(ListValue, "health_check", translate("Provider Health Check")) -o:value("false", translate("Disable")) -o:value("true", translate("Enable")) -o.default=true - -o = s:option(Value, "health_check_url", translate("Health Check URL")) -o.default = "http://www.gstatic.com/generate_204" -o.rmempty = true - -o = s:option(Value, "health_check_interval", translate("Health Check Interval")) -o.default = "300" -o.rmempty = true - -o = s:option(DynamicList, "pgroups", translate("Policy Group")) -o.rmempty = true -m.uci:foreach("clash", "pgroups", - function(s) - if s.name ~= "" and s.name ~= nil and s.type ~= "relay" then - o:value(s.name) - end - end) - - -local t = { - {Apply, Return} -} - -b = m:section(Table, t) - -o = b:option(Button,"Apply") -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() - m.uci:commit("clash") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "create")) -end - -o = b:option(Button,"Return") -o.inputtitle = translate("Back to Overview") -o.inputstyle = "reset" -o.write = function() - m.uci:revert(clash) - luci.http.redirect(m.redirect) - --luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "providers")) -end - - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/rule_provider.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/rule_provider.lua deleted file mode 100644 index 3241a8c55f..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/rule_provider.lua +++ /dev/null @@ -1,150 +0,0 @@ - -local m, s, o -local clash = "clash" -local uci = luci.model.uci.cursor() -local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] -local http = luci.http -local fss = require "luci.clash" - -function IsYamlFile(e) - e=e or"" - local e=string.lower(string.sub(e,-5,-1)) - return e == ".yaml" -end -function IsYmlFile(e) - e=e or"" - local e=string.lower(string.sub(e,-4,-1)) - return e == ".yml" -end -function IsFile(e) - e=e or"" - local e=string.lower(string.sub(e,-5,-1)) - return e == ".list" -end - - -m = Map(clash, translate("Edit Rule Provider")) -m.pageaction = false -m.redirect = luci.dispatcher.build_url("admin/services/clash/config/create") -if m.uci:get(clash, sid) ~= "ruleprovider" then - luci.http.redirect(m.redirect) - return -end - -s = m:section(NamedSection, sid, "ruleprovider") -s.anonymous = true -s.addremove = false - -o = s:option(Value, "name", translate("Rule Provider Name")) -o.rmempty = false - -o = s:option(ListValue, "type", translate("Provider Type")) -o.rmempty = false -o.description = translate("Provider Type") -o:value("http") -o:value("file") - - -o = s:option(ListValue, "behavior", translate("Provider Behavior")) -o.rmempty = false -o.description = translate("ipcidr # or domain") -o:value("ipcidr") -o:value("domain") -o:value("classical") - -o = s:option(FileUpload, "",translate("Upload Provider File")) -o.title = translate("Provider File") -o.template = "clash/clash_upload" -o:depends("type", "file") -um = s:option(DummyValue, "", nil) -um.template = "clash/clash_dvalue" - -local dir, fd -dir = "/etc/clash/ruleprovider/" -http.setfilehandler( - function(meta, chunk, eof) - if not fd then - if not meta then return end - - if meta and chunk then fd = nixio.open(dir .. meta.file, "w") end - - if not fd then - um.value = translate("upload file error.") - return - end - end - if chunk and fd then - fd:write(chunk) - end - if eof and fd then - fd:close() - fd = nil - um.value = translate("File saved to") .. ' "/etc/clash/ruleprovider/"' - end - end -) - -if luci.http.formvalue("upload") then - local f = luci.http.formvalue("ulfile") - if #f <= 0 then - um.value = translate("No specify upload file.") - end -end - - - - - -o = s:option(ListValue, "path", translate("Provider Path")) -o.description = translate("Upload Provider File If Empty") -local p,h={} -for t,f in ipairs(fss.glob("/etc/clash/ruleprovider/*"))do - h=fss.stat(f) - if h then - p[t]={} - p[t].name=fss.basename(f) - if IsYamlFile(p[t].name) or IsYmlFile(p[t].name) or IsFile(p[t].name) then - o:value("./ruleprovider/"..p[t].name) - end - end -end -o:depends("type", "file") - - -o = s:option(Value, "url", translate("Provider URL")) -o.description = translate("【HTTP】./hk.yaml") -o:depends("type", "http") - -o = s:option(Value, "interval", translate("Provider Interval")) -o.default = "3600" -o:depends("type", "http") - - - -local t = { - {Apply, Return} -} - -b = m:section(Table, t) - -o = b:option(Button,"Apply") -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() - m.uci:commit("clash") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "create")) -end - -o = b:option(Button,"Return") -o.inputtitle = translate("Back to Overview") -o.inputstyle = "reset" -o.write = function() - m.uci:revert(clash) - luci.http.redirect(m.redirect) - --luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "providers")) -end - - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/ruleprovider_manager.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/ruleprovider_manager.lua deleted file mode 100644 index 4aee841474..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/ruleprovider_manager.lua +++ /dev/null @@ -1,96 +0,0 @@ - -local f, s, o -local clash = "clash" -local uci = luci.model.uci.cursor() -local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] -local http = luci.http -local fss = require "luci.clash" -local NXFS = require "nixio.fs" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" - - -m = Map("clash", translate("Rule Providers List")) -m.reset = false -m.submit = false - -local t = { - {Apply} -} - -a = m:section(Table, t) - -o = a:option(Button, "Apply") -o.inputtitle = translate("Back to Overview") -o.inputstyle = "reset" -o.write = function() - HTTP.redirect(DISP.build_url("admin", "services", "clash", "config", "create")) -end - - -sys.call("awk -F ',' '{print $4}' /usr/share/clash/create/rule_provider.list > /tmp/rule_providers 2>/dev/null") -file = io.open("/tmp/rule_providers", "r"); -local e={},a,o,t -a=nixio.fs.access("/tmp/rule_providers") -if a then -for o in file:lines() do -table.insert(e,o) -end -for t,o in ipairs(e) do -e[t]={} -e[t].num=string.format(t) - - -e[t].name=string.sub(luci.sys.exec(string.format("grep -F ',%s' /usr/share/clash/create/rule_provider.list |awk -F ',' '{print $1}' 2>/dev/null",o)),1,-2) - -e[t].behaviour=string.sub(luci.sys.exec(string.format("grep -F ',%s' /usr/share/clash/create/rule_provider.list |awk -F ',' '{print $2}' 2>/dev/null",o)),1,-2) - -e[t].filename=string.sub(luci.sys.exec(string.format("grep -F '%s,' /usr/share/clash/create/rule_provider.list |awk -F ',' '{print $4}' 2>/dev/null",o)),1,-2) - -if e[t].filename == "" then -e[t].filename=o -end - -RULE_FILE="/etc/clash/ruleprovider/".. e[t].filename -if fss.mtime(RULE_FILE) then -e[t].mtime=os.date("%Y-%m-%d %H:%M:%S",fss.mtime(RULE_FILE)) -else -e[t].mtime="/" -end -if fss.isfile(RULE_FILE) then - e[t].exist=translate("Exist") -else - e[t].exist=translate("Not Exist") -end -e[t].remove=0 -end -end -file:close() - - -f=Form("filelist") -tb=f:section(Table,e) -nu=tb:option(DummyValue,"num",translate("Order Number")) -st=tb:option(DummyValue,"exist",translate("State")) -nm=tb:option(DummyValue,"name",translate("Rule Name")) -tp=tb:option(DummyValue,"behaviour",translate("Type")) -fm=tb:option(DummyValue,"filename",translate("File Name")) -mt=tb:option(DummyValue,"mtime",translate("Update Time")) - -btnis=tb:option(DummyValue,"filename",translate("Download Rule")) -btnis.template="clash/rulep" - -btnrm=tb:option(Button,"remove",translate("Remove")) -btnrm.render=function(e,t,a) -e.inputstyle="reset" -Button.render(e,t,a) -end -btnrm.write=function(a,t) -local a=fs.unlink("/etc/clash/ruleprovider/"..e[t].filename) -HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "rulemanager")) -end - -return m, f diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/rules.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/rules.lua deleted file mode 100644 index 262c61cf18..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/rules.lua +++ /dev/null @@ -1,105 +0,0 @@ -local m, s, o -local clash = "clash" -local uci = luci.model.uci.cursor() -local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] - - -m = Map(clash, translate("Edit Rules")) ---m.pageaction = false -m.redirect = luci.dispatcher.build_url("admin/services/clash/config/create") -if m.uci:get(clash, sid) ~= "rules" then - luci.http.redirect(m.redirect) - return -end - - -s = m:section(NamedSection, sid, "rules") -s.anonymous = true -s.addremove = false -m.pageaction = false - -o = s:option(ListValue, "type", translate("Rule Type")) -o.rmempty = false -o.description = translate("Choose Type") -o:value("RULE-SET", translate("RULE-SET")) -o:value("DST-PORT", translate("DST-PORT")) -o:value("SRC-PORT", translate("SRC-PORT")) -o:value("SRC-IP-CIDR", translate("SRC-IP-CIDR")) -o:value("IP-CIDR", translate("IP-CIDR")) -o:value("IP-CIDR6", translate("IP-CIDR6")) -o:value("DOMAIN", translate("DOMAIN")) -o:value("DOMAIN-KEYWORD", translate("DOMAIN-KEYWORD")) -o:value("DOMAIN-SUFFIX", translate("DOMAIN-SUFFIX")) -o:value("GEOIP", translate("GEOIP")) -o:value("MATCH", translate("MATCH")) - - -o = s:option(ListValue, "rulename", translate("Description")) -uci:foreach("clash", "ruleprovider", - function(s) - if s.name ~= "" and s.name ~= nil then - o:value(s.name) - end - end) -o.description = translate("Select rule provider name") -o:depends("type", "RULE-SET") - - -o = s:option(ListValue, "rulegroups", translate("Select Proxy Group")) -uci:foreach("clash", "pgroups", - function(s) - if s.name ~= "" and s.name ~= nil then - o:value(s.name) - end - end) -o:value("DIRECT") -o:value("REJECT") -o.description = translate("Select a policy group to add rule") - - - -o = s:option(Value, "rulenamee", translate("Description")) -o:depends("type", "DST-PORT") -o:depends("type", "SRC-PORT") -o:depends("type", "SRC-IP-CIDR") -o:depends("type", "IP-CIDR") -o:depends("type", "DOMAIN") -o:depends("type", "DOMAIN-KEYWORD") -o:depends("type", "DOMAIN-SUFFIX") -o:depends("type", "GEOIP") -o:depends("type", "IP-CIDR6") - -o = s:option(Flag, "res", translate("No Resolve")) -o.default = 0 -o:depends("type", "IP-CIDR") -o:depends("type", "IP-CIDR6") -o:depends("type", "GEOIP") - -local t = { - {Apply, Return} -} - -b = m:section(Table, t) - -o = b:option(Button,"Apply") -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() - m.uci:commit("clash") - sys.call("/usr/share/clash/create/rules.sh start >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "create")) -end - -o = b:option(Button,"Return") -o.inputtitle = translate("Back to Overview") -o.inputstyle = "reset" -o.write = function() - m.uci:revert(clash) - luci.http.redirect(m.redirect) - --luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash", "config", "providers")) -end - - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/servers-config.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/servers-config.lua deleted file mode 100644 index b54178c90e..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/config/servers-config.lua +++ /dev/null @@ -1,319 +0,0 @@ - -local m, s, o -local clash = "clash" -local uci = luci.model.uci.cursor() -local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] -local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid") - - -local server_table = {} - -local encrypt_methods_ss = { - - "rc4-md5", - "aes-128-cfb", - "aes-192-cfb", - "aes-256-cfb", - "aes-128-ctr", - "aes-192-ctr", - "aes-256-ctr", - "aes-128-gcm", - "aes-192-gcm", - "aes-256-gcm", - "chacha20-ietf", - "xchacha20", - "chacha20-ietf-poly1305", - "xchacha20-ietf-poly1305", -} - -local securitys = { - "auto", - "none", - "aes-128-gcm", - "chacha20-poly1305" -} - -local encrypt_methods_ssr = { - - "aes-128-cfb", - "aes-192-cfb", - "aes-256-cfb", - "aes-128-ctr", - "aes-192-ctr", - "aes-256-ctr", - "rc4-md5", - "chacha20-ietf", - "xchacha20", - -} - - -local protocol_ssr = { - - "origin", - "auth_sha1_v4", - "auth_aes128_md5", - "auth_aes128_sha1", - "auth_chain_a", - "auth_chain_b", -} - - -local obfs_ssr_list = { - - "plain", - "http_simple", - "http_post", - "tls1.2_ticket_auth", - "tls1.2_ticket_fastauth", - "random_head", -} - -m = Map(clash, translate("Edit Server")) -m.redirect = luci.dispatcher.build_url("admin/services/clash/config/create") -if m.uci:get(clash, sid) ~= "servers" then - luci.http.redirect(m.redirect) - return -end - --- [[ Servers Setting ]]-- -s = m:section(NamedSection, sid, "servers") -s.anonymous = true -s.addremove = false - -o = s:option(DummyValue,"ssr_url",translate("Import config info")) -o.rawhtml = true -o.template = "clash/ssrurl" -o.value =sid - -o = s:option(ListValue, "type", translate("Server Node Type")) -o:value("ss", translate("Shadowsocks")) -o:value("ssr", translate("ShadowsocksR")) -o:value("vmess", translate("Vmess")) -o:value("socks5", translate("Socks5")) -o:value("http", translate("HTTP(S)")) -o:value("snell", translate("Snell")) -o:value("trojan", translate("trojan")) - -o.description = translate("Using incorrect encryption mothod may causes service fail to start") - -o = s:option(Value, "name", translate("Alias")) -o.default = "Server" -o.rmempty = false - -o = s:option(Value, "server", translate("Server Address")) -o.datatype = "host" -o.rmempty = false - -o = s:option(Value, "port", translate("Server Port")) -o.datatype = "port" -o.rmempty = false - -o = s:option(Value, "password", translate("Password")) -o.password = true -o.rmempty = true -o:depends("type", "ss") -o:depends("type", "ssr") -o:depends("type", "trojan") - -o = s:option(Value, "psk", translate("Psk")) -o.rmempty = false -o:depends("type", "snell") - -o = s:option(ListValue, "cipher", translate("Encrypt Method")) -for _, v in ipairs(encrypt_methods_ss) do o:value(v) end -o.rmempty = true -o:depends("type", "ss") - -o = s:option(ListValue, "cipher_ssr", translate("Encrypt Method")) -for _, v in ipairs(encrypt_methods_ssr) do o:value(v) end -o.rmempty = true -o:depends("type", "ssr") - -o = s:option(ListValue, "protocol", translate("Protocol")) -for _, v in ipairs(protocol_ssr) do o:value(v) end -o.rmempty = true -o:depends("type", "ssr") - -o = s:option(Value, "protocolparam", translate("Protocol Param")) -o.rmempty = true -o:depends("type", "ssr") - -o = s:option(ListValue, "obfs_ssr", translate("Obfs")) -for _, v in ipairs(obfs_ssr_list) do o:value(v) end -o.rmempty = true -o:depends("type", "ssr") - -o = s:option(ListValue, "obfs_snell", translate("obfs-mode")) -o.rmempty = true -o.default = "none" -o:value("none") -o:value("tls") -o:value("http") -o:depends("type", "snell") - -o = s:option(Value, "obfsparam", translate("Obfs Param")) -o.rmempty = true -o:depends("type", "ssr") - - -o = s:option(ListValue, "securitys", translate("Encrypt Method")) -for _, v in ipairs(securitys) do o:value(v, v:upper()) end -o.rmempty = true -o:depends("type", "vmess") - - -o = s:option(ListValue, "obfs", translate("obfs-mode")) -o.default = " " -o:value(" ", translate("none")) -o:value("tls") -o:value("http") -o:value("websocket", translate("websocket (ws)")) -o:depends("type", "ss") - -o = s:option(ListValue, "obfs_vmess", translate("obfs-mode")) -o.default = "none" -o:value("none") -o:value("websocket", translate("websocket (ws)")) -o:value("http", translate("http")) -o:depends("type", "vmess") - -o = s:option(Value, "host", translate("hosts")) -o.datatype = "host" -o.rmempty = true -o:depends("obfs", "tls") -o:depends("obfs", "http") -o:depends("obfs", "websocket") -o:depends("obfs_snell", "tls") -o:depends("obfs_snell", "http") - -o = s:option(ListValue, "udp", translate("udp")) -o:value("true") -o:value("false") -o:depends("type", "ss") -o:depends("type", "ssr") -o:depends("type", "vmess") -o:depends("type", "socks5") -o:depends("type", "trojan") - -o = s:option(ListValue, "tls_custom", translate("tls")) -o.default = "false" -o:value("true") -o:value("false") -o:depends("obfs", "websocket") - - - --- [[ WS部分 ]]-- - --- WS路径 -o = s:option(Value, "path", translate("Path")) -o.rmempty = true -o:depends("obfs", "websocket") -o:depends("obfs_vmess", "websocket") - -o = s:option(DynamicList, "http_path", translate("path")) -o.rmempty = true -o:value("/") -o:value("/video") -o:depends("obfs_vmess", "http") - -o = s:option(Value, "custom", translate("headers")) -o.rmempty = true -o:depends("obfs", "websocket") -o:depends("obfs_vmess", "websocket") - -o = s:option(Value, "keep_alive", translate("keep-alive")) -o.rmempty = true -o.default = "true" -o:value("true") -o:value("false") -o:depends("obfs_vmess", "http") - -o = s:option(ListValue, "mux", translate("Mux")) -o.default = "false" -o:value("true") -o:value("false") -o:depends("obfs", "websocket") - - --- AlterId -o = s:option(Value, "alterId", translate("AlterId")) -o.datatype = "port" -o.default = 32 -o.rmempty = true -o:depends("type", "vmess") - --- VmessId -o = s:option(Value, "uuid", translate("VmessId (UUID)")) -o.rmempty = true -o.default = uuid -o:depends("type", "vmess") - --- 验证用户名 -o = s:option(Value, "auth_name", translate("Auth Username")) -o:depends("type", "socks5") -o:depends("type", "http") -o.rmempty = true - --- 验证密码 -o = s:option(Value, "auth_pass", translate("Auth Password")) -o:depends("type", "socks5") -o:depends("type", "http") -o.rmempty = true - --- [[ skip-cert-verify ]]-- -o = s:option(ListValue, "skip_cert_verify", translate("Skip Cert Verify")) -o.rmempty = true -o.default = "false" -o:value("true") -o:value("false") -o:depends("obfs", "websocket") -o:depends("type", "vmess") -o:depends("type", "socks5") -o:depends("type", "http") -o:depends("obfs_vmess", "none") -o:depends("type", "trojan") -o:depends("obfs_vmess", "websocket") - --- [[ TLS ]]-- -o = s:option(ListValue, "tls", translate("TLS")) -o.rmempty = true -o.default = "false" -o:value("true") -o:value("false") -o:depends("obfs", "websocket") -o:depends("obfs_vmess", "none") -o:depends("obfs_vmess", "websocket") -o:depends("obfs_vmess", "http") -o:depends("type", "socks5") -o:depends("type", "http") - -o = s:option(Value, "servername", translate("Custom TLS Host")) -o.rmempty = true -o.placeholder = translate("example.com") -o:depends("obfs_vmess", "websocket") - --- [[ sni ]]-- -o = s:option(Value, "sni", translate("sni")) -o.datatype = "host" -o.placeholder = translate("example.com") -o.rmempty = true -o:depends("type", "trojan") - --- [[ alpn ]]-- -o = s:option(Flag, "alpn_h2", translate("alpn-h2")) -o:depends("type", "trojan") - -o = s:option(Flag, "alpn_http", translate("alpn-http/1.1")) -o:depends("type", "trojan") - - -local apply = luci.http.formvalue("cbi.apply") -if apply then - m.uci:commit("clash") -end - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/advance.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/advance.lua deleted file mode 100644 index 87346d507c..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/advance.lua +++ /dev/null @@ -1,70 +0,0 @@ -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = require("luci.model.uci").cursor() -local clash = "clash" -local http = luci.http - - -m = Map("clash") -s = m:section(TypedSection, "clash") -m.pageaction = false -s.anonymous = true -s.addremove=false - -y = s:option(ListValue, "dnsforwader", translate("DNS Forwarding")) -y:value("0", translate("disabled")) -y:value("1", translate("enabled")) -y.description = translate("Set custom DNS forwarder in DHCP and DNS Settings and forward all dns traffic to clash") - - -y = s:option(ListValue, "dnscache", translate("DNS Cache")) -y:value("0", translate("disabled")) -y:value("1", translate("enabled")) -y.description = translate("Set to enable or disable dns cache") - -y = s:option(ListValue, "access_control", translate("Access Control")) -y:value("0", translate("disabled")) -y:value("1", translate("Whitelist IPs")) -y:value("2", translate("Blacklist Ips")) -y.description = translate("Whitelist or Blacklist IPs to use Clash ( Only support enhanced-mode: redir-host )") - -o = s:option(DynamicList, "proxy_lan_ips", translate("Proxy Lan List")) -o.datatype = "ipaddr" -o.description = translate("Only selected IPs will be proxied") -luci.ip.neighbors({ family = 4 }, function(entry) - if entry.reachable then - o:value(entry.dest:string()) - end -end) -o:depends("access_control", 1) - - -o = s:option(DynamicList, "reject_lan_ips", translate("Bypass Lan List")) -o.datatype = "ipaddr" -o.description = translate("Selected IPs will not be proxied") -luci.ip.neighbors({ family = 4 }, function(entry) - if entry.reachable then - o:value(entry.dest:string()) - end -end) -o:depends("access_control", 2) - - -o = s:option(Button, "Apply") -o.title = luci.util.pcdata(translate("Save & Apply")) -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() -m.uci:commit("clash") -if luci.sys.call("pidof clash >/dev/null") == 0 then - SYS.call("/etc/init.d/clash restart >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) -else - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash" , "settings", "dns", "advance")) -end -end - -return m \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/dns.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/dns.lua deleted file mode 100644 index a046399e13..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/dns.lua +++ /dev/null @@ -1,189 +0,0 @@ -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = require("luci.model.uci").cursor() -local clash = "clash" -local http = luci.http - - -m = Map("clash") -s = m:section(TypedSection, "clash") ---m.pageaction = false -s.anonymous = true -s.addremove=false - - -y = s:option(Flag, "interf", translate("Interface Name")) -y.default = 1 -y.description = translate("Enable Interface Name") - -y = s:option(Value, "interf_name", translate("Set Interface Name")) -y.description = translate("Set Interface Name") -y:depends("interf", 1) - -y = s:option(Flag, "tun_mode", translate("Tun Mode")) -y.default = 0 -y.description = translate("Enable Tun and make sure you are using tun supported core") - -y = s:option(ListValue, "stack", translate("Stack")) -y:value("system", translate("system")) -y:value("gvisor", translate("gvisor")) -y.description = translate("Select Stack Mode") -y:depends("tun_mode", 1) - -y = s:option(Flag, "enable_dns", translate("Enable Clash DNS")) -y.default = 1 -y.description = translate("Enable Clash DNS") - -y = s:option(Value, "listen_port", translate("DNS Listen Port")) -y.description = translate("Set DNS Listen Port") -y.default = "5300" - - -y = s:option(DynamicList, "default_nameserver", translate("Default NameServer")) -y.description = translate("Default Nameserver List") - - -y = s:option(ListValue, "enhanced_mode", translate("Enhanced Mode")) -y:value("redir-host", translate("Redir Host")) -y:value("fake-ip", translate("Fake IP")) -y.description = translate("Select Enhanced Mode") - -y = s:option(Value, "fake_ip_range", translate("Fake IP Range")) -y.description = translate("Set Fake IP Range") -y.default = "198.18.0.1/16" -y:depends("enhanced_mode", "fake-ip") - -y = s:option(DynamicList, "fake_ip_filter", translate("Fake IP Filter")) -y.description = translate("Fake IP Filter List") -y.default = "*.lan" -y:depends("enhanced_mode", "fake-ip") - -s = m:section(TypedSection, "dnshijack", translate("DNS Hijack")) -s.anonymous = true -s.addremove = true -s.sortable = false -s.template = "cbi/tblsection" -s.rmempty = false - -o = s:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - -o = s:option(ListValue, "type", translate("Protocol")) -o:value("none", translate("No Protocol")) -o:value("tcp://", translate("TCP")) -o:value("udp://", translate("UDP")) -o:value("tls://", translate("TLS")) -o:value("https://", translate("HTTPS")) -o.default = "none" -o.rempty = false - -o = s:option(Value, "ip", translate("Address")) -o.placeholder = translate("Not Null") -o.datatype = "or(host, string)" -o.rmempty = true - -o = s:option(Value, "port", translate("Port")) -o.datatype = "port" -o.rempty = true - - -s = m:section(TypedSection, "authentication", translate("Authentication")) -s.anonymous = true -s.addremove = true -s.sortable = false -s.template = "cbi/tblsection" -s.rmempty = false - -o = s:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - -o = s:option(Value, "username", translate("Username")) -o.placeholder = translate("Cannot be Empty") -o.rempty = true - -o = s:option(Value, "password", translate("Password")) -o.placeholder = translate("Cannot be Empty") -o.rmempty = true - - - -s = m:section(TypedSection, "hosts", translate("Hosts")) -s.anonymous = true -s.addremove = true -s.sortable = false -s.template = "cbi/tblsection" -s.rmempty = false - -o = s:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - -o = s:option(Value, "address", translate("Address")) -o.placeholder = translate("Cannot be Empty") -o.rempty = true - -o = s:option(Value, "ip", translate("IP")) -o.placeholder = translate("Cannot be Empty") -o.rmempty = true - - - -s = m:section(TypedSection, "dnsservers", translate("Nameservers & Fallback")) -s.anonymous = true -s.addremove = true -s.sortable = false -s.template = "cbi/tblsection" -s.rmempty = false - -o = s:option(Flag, "enabled", translate("Enable")) -o.rmempty = false -o.default = o.enabled -o.cfgvalue = function(...) - return Flag.cfgvalue(...) or "1" -end - -o = s:option(ListValue, "ser_type", translate("Type")) -o:value("nameserver", translate("NameServer")) -o:value("fallback", translate("FallBack")) - -o = s:option(ListValue, "protocol", translate("Protocol")) -o:value("none", translate("No Protocol")) -o:value("tcp://", translate("TCP")) -o:value("udp://", translate("UDP")) -o:value("tls://", translate("TLS")) -o:value("https://", translate("HTTPS")) - -o = s:option(Value, "ser_address", translate("Address")) -o.placeholder = translate("Not Empty") -o.rmempty = false - -o = s:option(Value, "ser_port", translate("Port")) - - -local apply = luci.http.formvalue("cbi.apply") -if apply then - m.uci:commit("clash") -if luci.sys.call("pidof clash >/dev/null") == 0 then - SYS.call("/etc/init.d/clash restart >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) -end -end - - - -return m - diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/port.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/port.lua deleted file mode 100644 index 10d5838e56..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/dns/port.lua +++ /dev/null @@ -1,117 +0,0 @@ -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = require("luci.model.uci").cursor() - -m = Map("clash") -s = m:section(TypedSection, "clash") -m.pageaction = false -s.anonymous = true - -o = s:option(Value, "http_port") -o.title = translate("Http Port") -o.default = 7890 -o.datatype = "port" -o.rmempty = false -o.description = translate("Http Port") - -o = s:option(Value, "socks_port") -o.title = translate("Socks Port") -o.default = 7891 -o.datatype = "port" -o.rmempty = false -o.description = translate("Socks Port") - -o = s:option(Value, "redir_port") -o.title = translate("Redir Port") -o.default = 7892 -o.datatype = "port" -o.rmempty = false -o.description = translate("Redir Port") - -o = s:option(Value, "mixed_port") -o.title = translate("Mixed Port") -o.default = 7893 -o.datatype = "port" -o.rmempty = false -o.description = translate("Mixed Port") - -o = s:option(ListValue, "allow_lan") -o.title = translate("Allow Lan") -o.default = true -o.rmempty = false -o:value("true", "true") -o:value("false", "false") -o.description = translate("Allow Lan") - -o = s:option(ListValue, "enable_ipv6") -o.title = translate("Enable IPv6") -o.default = false -o.rmempty = false -o:value("true", "true") -o:value("false", "false") -o.description = translate("Enable IPv6") - -o = s:option(Value, "bind_addr") -o.title = translate("Bind Address") -o:value("*", translate("Bind All IP Addresses")) -luci.ip.neighbors({ family = 4 }, function(entry) - if entry.reachable then - o:value(entry.dest:string()) - end -end) -luci.ip.neighbors({ family = 6 }, function(entry) - if entry.reachable then - o:value(entry.dest:string()) - end -end) -o.description = translate("Bind Address") -o:depends("allow_lan", "true") - - -o = s:option(Value, "dash_port") -o.title = translate("Dashboard Port") -o.default = 9090 -o.datatype = "port" -o.rmempty = false -o.description = translate("Dashboard Port") - -o = s:option(Value, "dash_pass") -o.title = translate("Dashboard Secret") -o.default = 123456 -o.rmempty = false -o.description = translate("Dashboard Secret") - -o = s:option(ListValue, "p_mode", translate("Proxy Mode")) -o.description = translate("Choose proxy mode") -o:value("rule", translate("RULE")) -o:value("global", translate("GLOBAL")) -o:value("Script", translate("SCRIPT")) -o:value("direct", translate("DIRECT")) -o.default = "Rule" - -o = s:option(ListValue, "level", translate("Log level")) -o.description = translate("Choose Log Level") -o:value("info", "info") -o:value("silent", "silent") -o:value("warning", "warning") -o:value("error", "error") -o:value("debug", "debug") - -o = s:option(Button, "Apply") -o.title = luci.util.pcdata(translate("Save & Apply")) -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() -m.uci:commit("clash") -if luci.sys.call("pidof clash >/dev/null") == 0 then - SYS.call("/etc/init.d/clash restart >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) -else - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash" , "settings", "port")) -end -end - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/game/game-rule.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/game/game-rule.lua deleted file mode 100644 index d7396a28d2..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/game/game-rule.lua +++ /dev/null @@ -1,64 +0,0 @@ -local m, s, o -local clash = "clash" -local uci = luci.model.uci.cursor() ---local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] -local fs = require "luci.clash" - -m = Map(clash, translate("Edit Game Rule & Group")) ---m.pageaction = false -m.redirect = luci.dispatcher.build_url("admin/services/clash/settings/grules") -if m.uci:get(clash, sid) ~= "game" then - luci.http.redirect(m.redirect) - return -end - -function IsRuleFile(e) -e=e or"" -local e=string.lower(string.sub(e,-6,-1)) -return e==".rules" -end - --- [[ Groups Setting ]]-- -s = m:section(NamedSection, sid, "game") -s.anonymous = true -s.addremove = false - -o = s:option(Value, "tag") -o.title = translate("Rule Tag") -o.rmempty = false -o.description = translate("Give a special name for your rules") - ----- Proxy Group -o = s:option(ListValue, "group", translate("Select Proxy Group")) -uci:foreach("clash", "conf_groups", - function(s) - if s.name ~= "" and s.name ~= nil then - o:value(s.name) - end - end) -o:value("DIRECT") -o:value("REJECT") -o.rmempty = true -o.description = translate("Select a policy group to add rule") - ----- rule name -o = s:option(DynamicList, "rule_name", translate("Game Rule's Name")) -local e,a={} -for t,f in ipairs(fs.glob("/usr/share/clash/rules/g_rules/*"))do - a=fs.stat(f) - if a then - e[t]={} - e[t].filename=fs.basename(f) - if IsRuleFile(e[t].filename) then - e[t].name=luci.sys.exec(string.format("grep -F '%s' /usr/share/clash/rules/rules.list | awk -F ',' '{print $2}'",e[t].filename)) - o:value(e[t].filename) - end - end -end - -o.rmempty = true - - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/game/game-settings.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/game/game-settings.lua deleted file mode 100644 index c3dbd2ff1c..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/game/game-settings.lua +++ /dev/null @@ -1,179 +0,0 @@ - -local k, m, s, o, f -local clash = "clash" -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local fs = require "luci.clash" -local uci = require "luci.model.uci".cursor() - -font_red = [[]] -font_blue = [[]] -font_off = [[]] -bold_on = [[]] -bold_off = [[]] - - -m = Map(clash) -m.pageaction = false -m.description=''..font_red..bold_on..translate("Usage Steps:")..bold_off..font_off..' ' -.."
" -..font_blue..bold_on..translate("1.Load Policy Group, make sure you have selected a config on config page")..bold_off..font_off..' ' -.."
" -..font_blue..bold_on..translate("2.Download the game rules you want to use from the game rules list on this page")..bold_off..font_off..' ' -.."
" -..font_blue..bold_on..translate("3. Make sure your game and servers support UDP")..bold_off..font_off..' ' -.."
" -..font_blue..bold_on..translate("4.Click on ADD, Set the corresponding policy group of the downloaded game rules and save, recommended: FallBack")..bold_off..font_off..' ' -.."
" -..font_blue..bold_on..translate("5.Select ClashTun Core type and start client")..bold_off..font_off..' ' - - -SYS.call("awk -F ',' '{print $1}' /usr/share/clash/rules/rules.list > /tmp/rules_name 2>/dev/null") -file = io.open("/tmp/rules_name", "r"); - - -r = m:section(TypedSection, "conf_groups", translate("Policy Groups")) -r.anonymous = true -r.addremove = false -r.sortable = false -r.template = "cbi/tblsection" ---r.extedit = luci.dispatcher.build_url("admin/services/clash/g-groups/%s") -function r.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(r.extedit % sid) - return - end -end - -o = r:option(DummyValue, "type", translate("Group Type")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - -o = r:option(DummyValue, "name", translate("Group Name")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - - --- [[ Edit Game Rule ]] -- -r = m:section(TypedSection, "game", translate("Game Rules & Groups")) -r.anonymous = true -r.addremove = true -r.sortable = false -r.template = "cbi/tblsection" -r.extedit = luci.dispatcher.build_url("admin/services/clash/g-rules/%s") -function r.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(r.extedit % sid) - return - end -end - -o = r:option(DummyValue, "tag", translate("Game Rule Tag")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - -o = r:option(DummyValue, "group", translate("Policy Groups")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - ----- Rules List -local e={},a,o,t -a=nixio.fs.access("/tmp/rules_name") -if a then -for o in file:lines() do -table.insert(e,o) -end -for t,o in ipairs(e) do -e[t]={} -e[t].num=string.format(t) -e[t].name=o -e[t].filename=string.sub(luci.sys.exec(string.format("grep -F '%s,' /usr/share/clash/rules/rules.list |awk -F ',' '{print $3}' 2>/dev/null",e[t].name)),1,-2) -if e[t].filename == "" then -e[t].filename=string.sub(luci.sys.exec(string.format("grep -F '%s,' /usr/share/clash/rules/rules.list |awk -F ',' '{print $2}' 2>/dev/null",e[t].name)),1,-2) -end -RULE_FILE="/usr/share/clash/rules/g_rules/".. e[t].filename -if fs.mtime(RULE_FILE) then -e[t].mtime=os.date("%Y-%m-%d %H:%M:%S",fs.mtime(RULE_FILE)) -else -e[t].mtime="/" -end -if fs.isfile(RULE_FILE) then - e[t].exist=translate("Exist") -else - e[t].exist=translate("Not Exist") -end -e[t].remove=0 -end -end -file:close() - - -f=Form("filelist", translate("Game Rules List")) -tb=f:section(Table,e) -nu=tb:option(DummyValue,"num",translate("Order Number")) -st=tb:option(DummyValue,"exist",translate("State")) ---nm=tb:option(DummyValue,"name",translate("Rule Name")) -fm=tb:option(DummyValue,"filename",translate("File Name")) -mt=tb:option(DummyValue,"mtime",translate("Update Time")) - -btnis=tb:option(DummyValue,"filename",translate("Download Rule")) -btnis.template="clash/game_rule" - -btnrm=tb:option(Button,"remove",translate("Remove")) -btnrm.render=function(e,t,a) -e.inputstyle="reset" -Button.render(e,t,a) -end -btnrm.write=function(a,t) -local a=fs.unlink("/usr/share/clash/rules/g_rules/"..e[t].filename) -HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "settings", "grules")) -end - -local t = { - {Load,Apply} -} - -k = Form("apply") -k.reset = false -k.submit = false -s = k:section(Table, t) - - -o = s:option(Button, "Load") -o.inputtitle = translate("Load Groups") -o.inputstyle = "apply" -o.write = function() - m.uci:commit("clash") - luci.sys.call("bash /usr/share/clash/load_groups.sh >/dev/null 2>&1 &") - luci.sys.call("sleep 3") - HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "settings", "grules")) -end - -o = s:option(Button, "Apply") -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() - m.uci:commit("clash") - if luci.sys.call("pidof clash >/dev/null") == 0 then - SYS.call("/etc/init.d/clash restart >/dev/null 2>&1 &") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "clash")) - else - HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "settings", "grules")) - end -end - -return m, k, f - diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/geoip/geoip.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/geoip/geoip.lua deleted file mode 100644 index c63544137d..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/geoip/geoip.lua +++ /dev/null @@ -1,143 +0,0 @@ - -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = require("luci.model.uci").cursor() -local clash = "clash" -local http = luci.http - -font_red = [[]] -font_off = [[]] -bold_on = [[]] -bold_off = [[]] - - -k = Map(clash) -k.reset = false -k.submit = false -s=k:section(TypedSection, "clash", translate("Local Update GeoIP")) -s.anonymous = true -s.addremove=false -o = s:option(FileUpload, "") -o.description = translate("NB: Upload GEOIP Database file Country.mmdb") -.."
" -..translate("https://github.com/Dreamacro/maxmind-geoip/releases") -.."
" -..translate("https://raw.githubusercontent.com/alecthw/mmdb_china_ip_list/release/Country.mmdb") - -o.title = translate(" ") -o.template = "clash/clash_upload" -um = s:option(DummyValue, "", nil) -um.template = "clash/clash_dvalue" - -local dir, fd -dir = "/etc/clash/" -http.setfilehandler( - function(meta, chunk, eof) - if not fd then - if not meta then return end - - if meta and chunk then fd = nixio.open(dir .. meta.file, "w") end - - if not fd then - um.value = translate("upload file error.") - return - end - end - if chunk and fd then - fd:write(chunk) - end - if eof and fd then - fd:close() - fd = nil - um.value = translate("File saved to") .. ' "/etc/clash/"' - SYS.call("chmod + x /etc/clash/Country.mmdb") - if luci.sys.call("pidof clash >/dev/null") == 0 then - SYS.call("/etc/init.d/clash restart >/dev/null 2>&1 &") - end - end - end -) - -if luci.http.formvalue("upload") then - local f = luci.http.formvalue("ulfile") - if #f <= 0 then - um.value = translate("No specify upload file.") - end -end - - - - -m = Map("clash") -s = m:section(TypedSection, "clash" , translate("Online Update GeoIP")) -m.pageaction = false -s.anonymous = true -s.addremove=false - -o = s:option(Flag, "auto_update_geoip", translate("Auto Update")) -o.description = translate("Auto Update GeoIP Database") - -o = s:option(ListValue, "auto_update_geoip_time", translate("Update time (every day)")) -for t = 0,23 do -o:value(t, t..":00") -end -o.default=0 -o.description = translate("GeoIP Update Time") - - -o = s:option(ListValue, "up_time", translate("Update Every (Week/Month)")) -o.rmempty = false -o.description = translate("Time For Update (Once a week/Month)") -o:value("weekly", translate("Weekly")) -o:value("monthly", translate("Monthly")) - -o = s:option(ListValue, "geoip_update_day", translate("Update Day (Day of Week)")) -o:value("1", translate("Every Monday")) -o:value("2", translate("Every Tuesday")) -o:value("3", translate("Every Wednesday")) -o:value("4", translate("Every Thursday")) -o:value("5", translate("Every Friday")) -o:value("6", translate("Every Saturday")) -o:value("0", translate("Every Sunday")) -update_time = SYS.exec("ls -l --full-time /etc/clash/Country.mmdb|awk '{print $6,$7;}'") -o.description = translate("Update Time")..'- ' ..font_red..bold_on..update_time..bold_off..font_off..' ' -o:depends("up_time", "weekly") - -o = s:option(ListValue, "geo_update_week", translate("Update Day (Day of Month)")) -o:value("1", translate("Every 1st Day")) -o:value("7", translate("Every 7th Day")) -o:value("14", translate("Every 14th Day")) -o:value("21", translate("Every 21st Day")) -o:value("28", translate("Every 28th Day")) -update_time = SYS.exec("ls -l --full-time /etc/clash/Country.mmdb|awk '{print $6,$7;}'") -o.description = translate("Update Time")..'- ' ..font_red..bold_on..update_time..bold_off..font_off..' ' -o:depends("up_time", "monthly") - -o = s:option(ListValue, "geoip_source", translate("GeoIP Source")) -o:value("1", translate("MaxMind")) -o:value("2", translate("Github")) - -o = s:option(Value, "license_key") -o.title = translate("License Key") -o.description = translate("MaxMind License Key")..translate(" https://www.maxmind.com/en/geolite2/signup") -o.rmempty = true -o:depends("geoip_source", "1") - -o=s:option(Button,"update_geoip") -o.inputtitle = translate("Save & Apply") -o.title = luci.util.pcdata(translate("Save & Apply")) -o.inputstyle = "reload" -o.write = function() - m.uci:commit("clash") -end - -o = s:option(Button,"download") -o.title = translate("Download") -o.template = "clash/geoip" - - -return m, k - diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/logs/log.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/logs/log.lua deleted file mode 100644 index da45f97ebc..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/logs/log.lua +++ /dev/null @@ -1,50 +0,0 @@ - -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = require("luci.model.uci").cursor() -local fs = require "luci.clash" -local http = luci.http - -m = Map("clash") -s = m:section(TypedSection, "clash") -m.pageaction = false -s.anonymous = true -s.addremove=false - -log = s:option(TextValue, "clog") -log.template = "clash/status_log" - -o = s:option(Button, "Download") -o.inputtitle = translate("Download logs") -o.inputstyle = "apply" -o.write = function () - local sPath, sFile, fd, block - sPath = "/usr/share/clash/clash.txt" - sFile = NXFS.basename(sPath) - if fs.isdirectory(sPath) then - fd = io.popen('txt -C "%s" -cz .' % {sPath}, "r") - sFile = sFile .. ".txt" - else - fd = nixio.open(sPath, "r") - end - if not fd then - return - end - HTTP.header('Content-Disposition', 'attachment; filename="%s"' % {sFile}) - HTTP.prepare_content("application/octet-stream") - while true do - block = fd:read(nixio.const.buffersize) - if (not block) or (#block ==0) then - break - else - HTTP.write(block) - end - end - fd:close() - HTTP.close() -end - -return m diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/other.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/other.lua deleted file mode 100644 index d077589bc6..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/other.lua +++ /dev/null @@ -1,141 +0,0 @@ - -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = luci.model.uci.cursor() -local fs = require "luci.clash" -local http = luci.http -local clash = "clash" - -kk = Map(clash) -s = kk:section(TypedSection, "clash", translate("Auto Update Config")) -s.anonymous = true -kk.pageaction = false - -o = s:option(Flag, "auto_update", translate("Auto Update")) -o.description = translate("Auto Update Server subscription") - -o = s:option(ListValue, "auto_update_time", translate("Update time (every day)")) -o:value("1", translate("Every Hour")) -o:value("6", translate("Every 6 Hours")) -o:value("12", translate("Every 12 Hours")) -o:value("24", translate("Every 24 Hours")) -o.description = translate("Daily Server subscription update time. Only update config in use") - -o = s:option(Button, "Apply") -o.title = luci.util.pcdata(translate("Save & Apply")) -o.inputtitle = translate("Save & Apply") -o.inputstyle = "apply" -o.write = function() - kk.uci:commit("clash") -end - - - - -m = Map("clash") -s = m:section(TypedSection, "clash" , translate("Clear Clash Log")) -s.anonymous = true - -o = s:option(Flag, "auto_clear_log", translate("Auto Clear Log")) -o.description = translate("Auto Clear Log") - - -o = s:option(ListValue, "clear_time", translate("Clear Time (Time of Day)")) -o:value("1", translate("Every Hour")) -o:value("6", translate("Every 6 Hours")) -o:value("12", translate("Every 12 Hours")) -o:value("24", translate("Every 24 Hours")) -o.description = translate("Clear Log Time") - -o=s:option(Button,"clear_clear") -o.inputtitle = translate("Save & Apply") -o.title = luci.util.pcdata(translate("Save & Apply")) -o.inputstyle = "reload" -o.write = function() - m.uci:commit("clash") -end - - - - -w = Map("clash") -s = w:section(TypedSection, "clash" , translate("Load Groups")) -s.anonymous = true - - -o = s:option(Button, "Load") -o.inputtitle = translate("Load Groups") -o.title = translate("Load Groups") -o.inputstyle = "apply" -o.write = function() - w.uci:commit("clash") - luci.sys.call("bash /usr/share/clash/load_groups.sh >/dev/null 2>&1 &") - luci.sys.call("sleep 4") - HTTP.redirect(luci.dispatcher.build_url("admin", "services", "clash", "settings", "other")) -end - - -r = w:section(TypedSection, "conf_groups", translate("Policy Groups")) -r.anonymous = true -r.addremove = false -r.sortable = false -r.template = "cbi/tblsection" -function r.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(r.extedit % sid) - return - end -end - -o = r:option(DummyValue, "type", translate("Group Type")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - -o = r:option(DummyValue, "name", translate("Group Name")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - - -y = Map("clash") -x = y:section(TypedSection, "addtype", translate("Custom Rules")) -x.anonymous = true -x.addremove = true -x.sortable = false -x.template = "cbi/tblsection" -x.extedit = luci.dispatcher.build_url("admin/services/clash/ip-rules/%s") -function x.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(x.extedit % sid) - return - end -end - -o = x:option(DummyValue, "type", translate("Rule Type")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = x:option(DummyValue, "ipaaddr", translate("IP/Domain/Address/Keyword/Port")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - -o = x:option(DummyValue, "pgroup", translate("Policy Groups")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - - - - -return kk, m,w,y diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/overview.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/overview.lua deleted file mode 100644 index 8d62bae181..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/overview.lua +++ /dev/null @@ -1,13 +0,0 @@ - -local m -local sys = require "luci.sys" -local uci = luci.model.uci.cursor() - - - -m = Map("clash") -m:section(SimpleSection).template = "clash/status" -m.pageaction = false - -return m - diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/update/update.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/update/update.lua deleted file mode 100644 index 9490b57288..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/update/update.lua +++ /dev/null @@ -1,147 +0,0 @@ -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local UTIL = require "luci.util" -local uci = require("luci.model.uci").cursor() -local m , r, k -local http = luci.http - -font_red = [[]] -font_green = [[]] -font_off = [[]] -bold_on = [[]] -bold_off = [[]] - - - -ko = Map("clash") -ko.reset = false -ko.submit = false -sul =ko:section(TypedSection, "clash",translate("Manual Upload")) -sul.anonymous = true -sul.addremove=false -o = sul:option(FileUpload, "") -o.description =''..font_red..bold_on..translate("Manually download, unzip and rename clash core from links below and upload")..bold_off..font_off..' ' -.."
" -..translatef("" .. "Dreamacro clash core - clash", translate("https://github.com/Dreamacro/clash/releases/latest")) -.."
" -..translatef("" .. "Frainzy1477 clashr core - clash", translate("https://github.com/frainzy1477/clash_dev/releases/latest")) -.."
" -..translatef("" .. "comzyh clash tun core - clash(ctun)", translate("https://github.com/comzyh/clash/releases/latest")) -.."
" -..translatef("" .. "Dreamacro clash tun core - clash(premium)", translate("https://github.com/Dreamacro/clash/releases/tag/premium")) - - -o.title = translate(" ") -o.template = "clash/upload_core" -um = sul:option(DummyValue, "", nil) -um.template = "clash/clash_dvalue" - -local dir, fd,dtun,ctun,cssr -dir = "/etc/clash/" -dtun="/etc/clash/dtun/" -ctun="/etc/clash/clashtun/" - -http.setfilehandler( - function(meta, chunk, eof) - local fp = HTTP.formvalue("file_type") - if not fd then - if not meta then return end - - if fp == "clash" then - if meta and chunk then fd = nixio.open(dir .. meta.file, "w") end - elseif fp == "clashctun" then - if meta and chunk then fd = nixio.open(ctun .. meta.file, "w") end - elseif fp == "clashdtun" then - if meta and chunk then fd = nixio.open(dtun .. meta.file, "w") end - end - - if not fd then - um.value = translate("upload file error.") - return - end - end - if chunk and fd then - fd:write(chunk) - end - if eof and fd then - fd:close() - fd = nil - - if fp == "clash" then - SYS.exec("chmod 755 /etc/clash/clash 2>&1 &") - SYS.exec("rm -rf /usr/share/clash/core_version 2>/dev/null && /etc/clash/clash -v | awk -F ' ' '{print $2}' >> /usr/share/clash/core_version 2>/dev/null") - um.value = translate("File saved to") .. ' "/etc/clash/'..meta.file..'"' - elseif fp == "clashctun" then - SYS.exec("chmod 755 /etc/clash/clashtun/clash 2>&1 &") - SYS.exec("rm -rf /usr/share/clash/tun_version 2>/dev/null && /etc/clash/clashtun/clash -v | awk -F ' ' '{print $2}' >> /usr/share/clash/tun_version 2>/dev/null") - um.value = translate("File saved to") .. ' "/etc/clash/clashtun/'..meta.file..'"' - elseif fp == "clashdtun" then - SYS.exec("chmod 755 /etc/clash/dtun/clash 2>&1 &") - SYS.exec("rm -rf /usr/share/clash/dtun_core_version 2>/dev/null && /etc/clash/dtun/clash -v | awk -F ' ' '{print $2}' >> /usr/share/clash/dtun_core_version 2>/dev/null") - um.value = translate("File saved to") .. ' "/etc/clash/dtun/'..meta.file..'"' - end - - - end - end -) - -if luci.http.formvalue("upload") then - local f = luci.http.formvalue("ulfile") - if #f <= 0 then - um.value = translate("No specify upload file.") - end -end - - - -m = Map("clash") -m:section(SimpleSection).template = "clash/update" -m.pageaction = false - -k = Map("clash") -s = k:section(TypedSection, "clash",translate("Download Online")) -s.anonymous = true -o = s:option(ListValue, "dcore", translate("Core Type")) -o.default = "clashcore" -o:value("1", translate("clash")) -o:value("3", translate("clash(ctun)")) -o:value("4", translate("clash(premium)")) - - - -local cpu_model=SYS.exec("opkg status libc 2>/dev/null |grep 'Architecture' |awk -F ': ' '{print $2}' 2>/dev/null") -o = s:option(ListValue, "download_core", translate("Select Core")) -o.description = translate("CPU Model")..': '..font_green..bold_on..cpu_model..bold_off..font_off..' ' -o:value("linux-386") -o:value("linux-amd64", translate("linux-amd64(x86-64)")) -o:value("linux-armv5") -o:value("linux-armv6") -o:value("linux-armv7") -o:value("linux-armv8") -o:value("linux-mips-hardfloat") -o:value("linux-mips-softfloat") -o:value("linux-mips64") -o:value("linux-mips64le") -o:value("linux-mipsle-softfloat") -o:value("linux-mipsle-hardfloat") - - -o=s:option(Button,"down_core") -o.inputtitle = translate("Save & Apply") -o.title = luci.util.pcdata(translate("Save & Apply")) -o.inputstyle = "reload" -o.write = function() - k.uci:commit("clash") -end - -o = s:option(Button,"download") -o.title = translate("Download") -o.template = "clash/core_check" - - -return m, ko,k - - diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/clash_dvalue.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/clash_dvalue.htm deleted file mode 100644 index f024d8983c..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/clash_dvalue.htm +++ /dev/null @@ -1,9 +0,0 @@ -<%+cbi/valueheader%> - -<% - local val = self:cfgvalue(section) or self.default or "" - write(pcdata(val)) -%> - -<%+cbi/valuefooter%> - \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/clash_upload.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/clash_upload.htm deleted file mode 100644 index 415b4eac7e..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/clash_upload.htm +++ /dev/null @@ -1,6 +0,0 @@ -<%+cbi/valueheader%> - - - -<%+cbi/valuefooter%> - diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/conf.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/conf.htm deleted file mode 100644 index 7227c0194a..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/conf.htm +++ /dev/null @@ -1,23 +0,0 @@ -
-

<%:CONFIG IN USE%>:

-
- \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/core_check.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/core_check.htm deleted file mode 100644 index 3f796728d4..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/core_check.htm +++ /dev/null @@ -1,71 +0,0 @@ -<%+cbi/valueheader%> -<%local fs=require"nixio.fs"%> - - -

- - - - -<%+cbi/valuefooter%> diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/game_rule.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/game_rule.htm deleted file mode 100644 index 17fc7633de..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/game_rule.htm +++ /dev/null @@ -1,38 +0,0 @@ -<%+cbi/valueheader%> - - - - - - -<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/geoip.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/geoip.htm deleted file mode 100644 index 79ea6dcee9..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/geoip.htm +++ /dev/null @@ -1,72 +0,0 @@ -<%+cbi/valueheader%> -<%local fs=require"nixio.fs"%> - - -

- - - - -<%+cbi/valuefooter%> diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/list.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/list.htm deleted file mode 100644 index aff5a571fb..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/list.htm +++ /dev/null @@ -1,47 +0,0 @@ - -<% -local dsp = require "luci.dispatcher" --%> - - - diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/other_button.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/other_button.htm deleted file mode 100644 index 1c391ad984..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/other_button.htm +++ /dev/null @@ -1,7 +0,0 @@ -<%+cbi/valueheader%> - <% if self:cfgvalue(section) ~= false then %> - " style="display: <%= display %>" type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> /> - <% else %> - - - <% end %> -<%+cbi/valuefooter%> diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/ping.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/ping.htm deleted file mode 100644 index 7732413657..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/ping.htm +++ /dev/null @@ -1,5 +0,0 @@ -<%+cbi/valueheader%> -<%:Checking...%> -<%+cbi/valuefooter%> - - \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/rulep.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/rulep.htm deleted file mode 100644 index f6387ac5bf..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/rulep.htm +++ /dev/null @@ -1,41 +0,0 @@ -<%+cbi/valueheader%> - - - - - - -<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/ssrurl.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/ssrurl.htm deleted file mode 100644 index ce7eac156a..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/ssrurl.htm +++ /dev/null @@ -1,252 +0,0 @@ -<%+cbi/valueheader%> - - - -<%+cbi/valuefooter%> diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/start_stop.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/start_stop.htm deleted file mode 100644 index 4e5199d9ac..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/start_stop.htm +++ /dev/null @@ -1,34 +0,0 @@ -<%+cbi/valueheader%> - - - - - - - -<%+cbi/valuefooter%> diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/status.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/status.htm deleted file mode 100644 index 6dae21622c..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/status.htm +++ /dev/null @@ -1,638 +0,0 @@ - - - - - - - - - - - - - - -
-

Clash for OpenWRT

-

<%:Rule-based Custom Proxy Client%>

-

- -
- -
- -
- -
-
-
-
- -
-
-
-

<%:Baidu%>

<%:Collecting data...%>

-
-
-
- - -
-
-
-
- -
-
-
-

<%:Google%>

<%:Collecting data...%>

-
-
-
- -
-
-
-
- -
-
-
-

<%:Youtube%>

<%:Collecting data...%>

-
-
-
- -
-
-
-
- -
-
-
-

<%:GitHub%>

<%:Collecting data...%>

-
-
-
- -
-
- -<% if luci.i18n.context.lang == "zh-cn" then %> - -
- -
- -
-
-
-
- -
-
-
-

<%:Global IP%>

<%:Checking...%>

-
-
-
- - -
-
-
-
- -
-
-
-

<%:Domestic IP%>

<%:Checking...%>

-
-
-
- -
-
- -<%end%> - -<% if luci.i18n.context.lang == "en" or luci.i18n.context.lang == "auto" then %> -
- -
- -
-
-
-
- -
-
-
-

<%:Global IP%>

<%:Checking...%>

-
-
-
- - -
-
-
-
- -
-
-
-

<%:Domestic IP%>

<%:Checking...%>

-
-
-
- -
-
-<%end%> - - -
- - - - - - - - -
<%:Clash Client%><%:Collecting data...%>
<%:Clash Mode%><%:Collecting data...%>
<%:Clash Config%><%:Collecting data...%>
<%:Config Type%><%:Collecting data...%>
<%:Clash Dashboard%> <%:Collecting data...%>
<%:Yacd Dashboard%> <%:Collecting data...%>
-
- -
- - - - -
<%:Dashboard Host%><%:Collecting data...%>
<%:Dashboard Port%><%:Collecting data...%>
<%:Dashboard Secret%> <%:Collecting data...%>
-
- - - - - - -
- -
-
× -

<%:If config does not show refresh page%>


- -
-
- - diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/status_log.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/status_log.htm deleted file mode 100644 index 0c392bb933..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/status_log.htm +++ /dev/null @@ -1,22 +0,0 @@ -<%+cbi/valueheader%> - - - - -<%+cbi/valuefooter%> diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/tvalue.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/tvalue.htm deleted file mode 100644 index 9de3321587..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/tvalue.htm +++ /dev/null @@ -1,6 +0,0 @@ -<%+cbi/valueheader%> - -<%+cbi/valuefooter%> - diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/update.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/update.htm deleted file mode 100644 index 3b81f407fd..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/update.htm +++ /dev/null @@ -1,94 +0,0 @@ -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
<%:App Name%><%:Installed Version%><%:New Version%>
clash <%:Collecting data...%> <%:Checking...%>
clash(ctun) <%:Collecting data...%> <%:Checking...%>
clash(premium) <%:Collecting data...%> <%:Checking...%>
luci-app-clash <%:Collecting data...%> <%:Checking...%>
-
- - - - - - - - - - - - diff --git a/package/ntlf9t/luci-app-clash/luasrc/view/clash/upload_core.htm b/package/ntlf9t/luci-app-clash/luasrc/view/clash/upload_core.htm deleted file mode 100644 index 0359419ade..0000000000 --- a/package/ntlf9t/luci-app-clash/luasrc/view/clash/upload_core.htm +++ /dev/null @@ -1,11 +0,0 @@ -<%+cbi/valueheader%> - - - - -<%+cbi/valuefooter%> - diff --git a/package/ntlf9t/luci-app-clash/po/zh-cn/clash.po b/package/ntlf9t/luci-app-clash/po/zh-cn/clash.po deleted file mode 100644 index 42916db749..0000000000 --- a/package/ntlf9t/luci-app-clash/po/zh-cn/clash.po +++ /dev/null @@ -1,1279 +0,0 @@ -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" - -msgid "Custom TLS Host" -msgstr "自定义TLS主机" - -msgid "Cache DNS" -msgstr "缓存的DNS" - -msgid "Fake IP Range" -msgstr "假IP范围" - -msgid "Ip range will be added to iptables" -msgstr "Ip范围将添加到iptables" - -msgid "New Version :" -msgstr "新版本:" - -msgid "Core Type" -msgstr "内核类型" - -msgid "Select Core" -msgstr "选择内核" - -msgid "Obfs" -msgstr "混淆" - -msgid "Obfs Param" -msgstr "混淆参数" - -msgid "Protocol" -msgstr "协议" - -msgid "Protocol Param" -msgstr "协议参数" - -msgid "Servers" -msgstr "服务器" - -msgid "Custom List DNS" -msgstr "自定义列表DNS" - -msgid "Apply Custom List" -msgstr "应用自定义列表" - -msgid "Custom List" -msgstr "自定义列表" - -msgid "Allow Lan" -msgstr "允许局域网" - -msgid "Bind All IP Addresses" -msgstr "绑定所有IP地址" - -msgid "Bind Address" -msgstr "绑定地址" - -msgid "enabled to create custom configuration" -msgstr "已启用以创建自定义配置" - -msgid "Status" -msgstr "状态" - -msgid "Click to create custom server configuration" -msgstr "单击以创建自定义服务器配置" - -msgid "Log" -msgstr "日志" - -msgid "Update Config" -msgstr "更新配置" - -msgid "NOT RUNNING" -msgstr "末运行" - -msgid "Enabled Custom Rule" -msgstr "启用自定义规则" - -msgid "Download Config" -msgstr "下载配置" - -msgid "Enable/Start/Restart Client" -msgstr "启用/启动/重新启动客户端" - -msgid "Disable/Stop Client" -msgstr "禁用/停止客户端" - -msgid "Stop" -msgstr "停用客户端" - -msgid "Start" -msgstr "启用客户端" - -msgid "Reload" -msgstr "重装客户端" - -msgid "enabled" -msgstr "启用" - -msgid "Subcription Type" -msgstr "服务器订阅类型" - -msgid "Select Subcription Type" -msgstr "选择服务器订阅类型" - -msgid "disabled" -msgstr "停用" - -msgid "Access Control" -msgstr "访问控制" - -msgid "Proxy Ports" -msgstr "代理端口设置" - -msgid "DNS Settings" -msgstr "DNS设置" - -msgid "Http Port" -msgstr "http代理端口" - -msgid "Socks Port" -msgstr "socks代理端口" - -msgid "Redir Port" -msgstr "redir代理端口" - -msgid "No Update | Return" -msgstr "已安装最新本 | 返回" - -msgid "Log level" -msgstr "日志级别" - -msgid "Choose Log Level" -msgstr "选择日志级别" - -msgid "Overview" -msgstr "概览" - -msgid "Download" -msgstr "下载" - -msgid "Checking..." -msgstr "正在检查..." - -msgid "Not Installed" -msgstr "未安装" - -msgid "Version" -msgstr "已安装版本" - -msgid "NO CONFIG" -msgstr "没配置" - -msgid "Clash Mode" -msgstr "Clash模式" - -msgid "App Name" -msgstr "应用程序名称" - -msgid "Rule-based Custom Proxy Client" -msgstr "基于规则的自定义代理客户端" - -msgid "Error Occured | Return" -msgstr "检查错误 | 返回" - -msgid "Current Version" -msgstr "当前版本" - -msgid "Return" -msgstr "返回检查" - -msgid "Check Update" -msgstr "检查更新" - -msgid "Check" -msgstr "检查" - -msgid "DNS Forwarding" -msgstr "DNS转发" - -msgid "Set custom DNS forwarder in DHCP and DNS Settings and forward all dns traffic to clash" -msgstr "在DHCP和DNS设置自定义DNS转发,转发所有dns流量到clash" - -msgid "Proxy Lan IP" -msgstr "走代理的局域网IP" - -msgid "Only selected IPs will be proxied if enabled. fake-ip mode not supported" -msgstr "如果启用,仅选择IP只走代理,不支持fake-ip模式" - -msgid "Proxy Lan List" -msgstr "走代理的IP列表" - -msgid "Only selected IPs will be proxied" -msgstr "选择IP只走代理" - -msgid "Bypass Lan IP" -msgstr "不走代理的局域网IP" - -msgid "Selected IPs will not be proxied if enabled. fake-ip mode not supported" -msgstr "如果启用,仅选择IP只不走代理,不支持fake-ip模式" - -msgid "Bypass Lan List" -msgstr "不走代理的IP列表" - -msgid "Selected IPs will not be proxied" -msgstr "选择LAN IP只不走代理" - -msgid "Enabling Custom DNS will Overwrite your config.yaml dns section" -msgstr "启用自定义DNS会覆盖config.yaml dns" - -msgid "Dashboard Host" -msgstr "外部控制Host" - -msgid "Dashboard Port" -msgstr "外部控制端口" - -msgid "Clear Logs" -msgstr "清理日志" - -msgid "Dashboard Secret" -msgstr "外部控制密钥" - -msgid "Google" -msgstr "谷歌网" - -msgid "Youtube" -msgstr "Youtube" - -msgid "Baidu" -msgstr "百度网" - -msgid "Github" -msgstr "Github" - -msgid "Music.163" -msgstr "网易云音乐" - -msgid "iQiyi" -msgstr "爱奇艺" - -msgid "NORMAL" -msgstr "正常" - -msgid "TIMEOUT" -msgstr "超时" - -msgid "NOT SET" -msgstr "未设置" - -msgid "NO ACCESS" -msgstr "无法访问" - -msgid "Domestic IP" -msgstr "国内网IP" - -msgid "Global IP" -msgstr "国外网IP" - -msgid "clash" -msgstr "clash" - -msgid "DASHBOARD" -msgstr "外部控制" - -msgid "Clash Dashboard" -msgstr "Clash控制面板" - -msgid "Client" -msgstr "客户端" - -msgid "Clash Client" -msgstr "客户端" - -msgid "Configuration" -msgstr "配置文件" - -msgid "logs" -msgstr "日志" - -msgid "Custom DNS" -msgstr "自定义DNS" - -msgid "Modify yaml DNS" -msgstr "修改 DNS" - -msgid "Enable" -msgstr "启用" - -msgid "Settings" -msgstr "设置" - -msgid "Update time (every day)" -msgstr "更新时间 (每天)" - -msgid "Auto Update" -msgstr "自动更新" - -msgid "Auto Update Server subscription" -msgstr "自动更新服务器订阅" - -msgid "Daily Server subscription update time" -msgstr "每日服务器订阅更新时间" - -msgid "Enable" -msgstr "启用" - -msgid "Delete Config" -msgstr "删除配置" - -msgid "Config" -msgstr "配置" - -msgid "NB: press ENTER to create a blank line at the end of input." -msgstr "填写时请按照模板格式, 按Enter键在输入结束时创建一行空行" - -msgid "GEOIP Database" -msgstr "GEOIP数据库" - -msgid "Update GEOIP Database" -msgstr "更新GEOIP数据库" - -msgid "Upload Config" -msgstr "上传配置" - -msgid "NB: Only upload file with name config.yml or config.yaml" -msgstr "注意:上载config.yml或config.yaml的文件" - -msgid "Subcription Url" -msgstr "订阅URL" - -msgid "Update Subcription" -msgstr "更新订阅配置" - -msgid "Update" -msgstr "更新" - -msgid "Enable Client" -msgstr "启用客户端" - -msgid "Config In Use" -msgstr "使用中的配置" - -msgid "Server Subscription Address" -msgstr "服务器订阅地址" - -msgid "Clash Subscription Address" -msgstr "Clash订阅地址" - -msgid "V2/SSR Subscription Address, Only input your subscription address without any api conversion url" -msgstr "V2/SSR订阅地址,输入订阅地址不要添加api转换地址" - -msgid "Changes to config file must be made from source" -msgstr "必须从源文件更改配置文件" - -msgid "Import Config" -msgstr "导入配置" - -msgid "Enable to create custom config.yaml. Note that this will overide any configuration you already have" -msgstr "启用以创建自定义config.yaml。注意,这会覆盖/etc/clash/config.yaml" - - -msgid "host" -msgstr "主机名" - -msgid "Enable Create Config" -msgstr "启用创建配置" - -msgid "Perform this action to delete all servers" -msgstr "执行此操作以删除所有服务器" - -msgid "Perform this action to generate new configuration" -msgstr "执行此操作以生成新配置" - -msgid "Delete Severs" -msgstr "清空节点" - -msgid "Load Config" -msgstr "读取配置" - -msgid "Error" -msgstr "错误" - -msgid "Load Groups" -msgstr "读取代理组" - -msgid "Load Servers" -msgstr "读取节点" - -msgid "Load From" -msgstr "从读取" - -msgid "Enable to read servers" -msgstr "启用读取节点" - -msgid "Enable to read policy group" -msgstr "启用读取代理组" - -msgid "Type" -msgstr "节点类型" - -msgid "Alias" -msgstr "节点别名" - -msgid "Server Address" -msgstr "服务器地址" - -msgid "Server Port" -msgstr "端口" - -msgid "Edit Server" -msgstr "编辑服务器配置" - -msgid "Server Node Type" -msgstr "服务器节点类型" - -msgid "Using incorrect encryption mothod may causes service fail to start" -msgstr "输入不正确的参数组合可能会导致服务无法启动" - -msgid "Password" -msgstr "密码" - -msgid "Encrypt Method" -msgstr "加密方式" - -msgid "UDP" -msgstr "UDP" - -msgid "obfs-mode" -msgstr "传输协议" - -msgid "obfs-hosts" -msgstr "混淆参数" - -msgid "Auth Username" -msgstr "登录用户名" - -msgid "Auth Password" -msgstr "登录密码" - -msgid "Skip Cert Verify" -msgstr "忽略许可验证" - -msgid "None" -msgstr "未配置" - -msgid "NB: Attention to Proxy Group and Rule when making changes to this section" -msgstr "注意:更改时,请注意代理组和规则" - -msgid "Subscription Config" -msgstr "订阅配置" - -msgid "Subscribe Config" -msgstr "订阅配置" - -msgid "Uploaded Config" -msgstr "上传的配置" - -msgid "Custom Config" -msgstr "自定义配置" - -msgid "Custom" -msgstr "自定义" - -msgid "Config Type" -msgstr "Clash配置类型" - -msgid "Select Configuration type" -msgstr "选择配置类型”" - -msgid "Create Config" -msgstr "创建配置" - -msgid "Create Config By One-Click Only Need Proxys" -msgstr "一键生成配置文件功能只需要配置服务器节点信息" - -msgid "Proxy Groups(No Need Set when Config Create)" -msgstr "策略组配置(使用一键生成配置文件功能时无需设置)" - -msgid "Proxies" -msgstr "代理" - -msgid "Edit Group" -msgstr "编辑策略组配置" - -msgid "Group Type" -msgstr "策略组类型" - -msgid "Choose The Operation Mode" -msgstr "设置策略组挑选服务器节点的工作方式" - -msgid "Group Name" -msgstr "策略组别名(请勿重名)" - -msgid "Test URL" -msgstr "检测地址(URL)" - -msgid "Test Interval(s)" -msgstr "检测频率(秒)" - -msgid "Select" -msgstr "手动选择" - -msgid "URL-Test" -msgstr "最低延迟" - -msgid "Fallback" -msgstr "故障切换" - -msgid "Load-Balance" -msgstr "负载均衡" - -msgid "Other Group" -msgstr "包含其他策略组" - -msgid "Proxy Groups Must Exist In Rule" -msgstr "添加的策略组必须存在规则创建" - -msgid "Policy Groups" -msgstr "策略组" - -msgid "Rule" -msgstr "规则" - -msgid "Custom Rule Url" -msgstr "自定义规则URL" - -msgid "Download Rule" -msgstr "下载规则" - -msgid "Insert your custom rule Url and click download" -msgstr "输入自定义规则URL并单击下载" - -msgid "Delete Rule" -msgstr "删除规则" - -msgid "Latency" -msgstr "延迟" - -msgid "Delete Groups" -msgstr "删除策略组" - -msgid "Perform this action to delete all policy groups" -msgstr "执行此操作以删除所有策略组" - -msgid "Upload Config" -msgstr "上传配置文件" - -msgid "Upload" -msgstr "上传" - -msgid "File saved to" -msgstr "文件已成功上传到" - -msgid "upload file error." -msgstr "文件上传失败" - -msgid "Load Config From" -msgstr "从哪读取自定义节点" - -msgid "Select from which configuration custom server should be loaded from" -msgstr "选择从哪个配置文件读取自定义节点" - -msgid "All Servers" -msgstr "所有节点" - -msgid "Core" -msgstr "内核" - -msgid "Select core, clashr support ssr while clash does not." -msgstr "选择内核clash不支持ssr, clashr支持ssr" - -msgid "Downloading..." -msgstr "正在下载。。。" - -msgid "Remove Lan DNS" -msgstr "删除局域网DNS" - -msgid "Remove Lan custom DNS Servers when client is disabled" -msgstr "禁用客户端时删除局域网自定义DNS服务器" - -msgid "Enable ipv6" -msgstr "启用ipv6" - -msgid "Allow ipv6 traffic through clash" -msgstr "允许ipv6流量通过clash" - -msgid "NB: Upload GEOIP Database file Country.mmdb" -msgstr "注意:上传GEOIP数据库文件Country.mmdb" - -msgid "Download logs" -msgstr "下载日志" - -msgid "Enable Create" -msgstr "启用创建" - -msgid "Enable to create configuration" -msgstr "启用以创建配置" - -msgid "Proxy-Provider" -msgstr "代理集管理" - -msgid "Edit Proxy Provider" -msgstr "编辑代理集配置" - -msgid "Provider Type" -msgstr "代理集类型" - -msgid "Provider Type" -msgstr "代理集的类型" - -msgid "Provider Name" -msgstr "代理集别名" - -msgid "Provider Path" -msgstr "代理集路径(Path)" - -msgid "【HTTP】./hk.yaml or 【File】/etc/clash/hk.yaml" -msgstr "【HTTP】./hk.yaml,【文件】/etc/clash/hk.yaml" - -msgid "Provider URL" -msgstr "代理集URL" - -msgid "Provider Interval" -msgstr "代理集更新间隔" - -msgid "Provider Health Check" -msgstr "代理集状态检查" - -msgid "Health Check URL" -msgstr "状态检查URL" - -msgid "Health Check Interval" -msgstr "状态检查间隔" - -msgid "Delete Provider" -msgstr "清空节点集" - -msgid "Policy Group" -msgstr "策略组" - -msgid "Proxy Provider" -msgstr "代理集" - -msgid "Tun Mode" -msgstr "Tun模式" - -msgid "Select Tun Mode" -msgstr "选Tun模式" - -msgid "Tun Mode DNS" -msgstr "Tun模式DNS" - -msgid "Enable Tun custom DNS and make sure you are using tun supported core" -msgstr "启用Tun自定义DNS,并确保使用支持的Tun内核" - -msgid "Upload Provider File" -msgstr "上传代理集文件" - -msgid "Upload Provider File If Empty" -msgstr "上传代理集文件(如果为空)" - -msgid "Provider File" -msgstr "代理集文件" - -msgid "Modify Tun DNS" -msgstr "修改Tun DNS" - -msgid "Local Update GeoIP" -msgstr "本地更新GeoIP数据库" - -msgid "Online Update GeoIP" -msgstr "在线更新GeoIP数据库" - -msgid "MaxMind License Key" -msgstr "MaxMind许可证密钥" - -msgid "License Key" -msgstr "许可证密钥" - -msgid "Auto Update GeoIP Database" -msgstr "自动更新GeoIP数据库" - -msgid "Update Day (Day of Month)" -msgstr "更新(每月的日)" - -msgid "GeoIP Update Time" -msgstr "GeoIP更新时间" - -msgid "Every 1st Day" -msgstr "每月的第一天" - -msgid "Every 7th Day" -msgstr "每月的第七天" - -msgid "Every 14th Day" -msgstr "每月的第十四天" - -msgid "Every 21st Day" -msgstr "每月的第二十一天" - -msgid "Every 28th Day" -msgstr "每月的第二十八天" - -msgid "Update GeoIP" -msgstr "更新GeoIP数据库" - -msgid "Update Time" -msgstr "更新时间" - -msgid "Every Monday" -msgstr "每周一" - -msgid "Every Tuesday" -msgstr "每周二" - -msgid "Every Wednesday" -msgstr "每周三" - -msgid "Every Thursday" -msgstr "每周四" - -msgid "Every Friday" -msgstr "每周五" - -msgid "Every Saturday" -msgstr "每周六" - -msgid "Every Sunday" -msgstr "每周日" - -msgid "Update Every (Week/Month)" -msgstr "更新(每周/每月)" - -msgid "Update Day (Day of Week)" -msgstr "更新的天" - -msgid "Time For Update (Once a week/Month)" -msgstr "更新(每周一次/每月一次)" - -msgid "Weekly" -msgstr "每周" - -msgid "Monthly" -msgstr "每月" - -msgid "Upload Clash(Tun)" -msgstr "上传Clash(Tun)" - -msgid "NB: Upload Clash Supported Tun (clash)" -msgstr "注意:上传clash支持的Tun" - -msgid "Download Clash/Clashr" -msgstr "下载Clash/Clashr" - -msgid "No file chosen" -msgstr "未选择文件" - -msgid "Chose File" -msgstr "选择文件" - -msgid "Update Time" -msgstr "更新时间" - -msgid "File Name" -msgstr "文件名" - -msgid "Use Config" -msgstr "使用配置" - -msgid "Size" -msgstr "文件大小" - -msgid "Remove" -msgstr "移除" - -msgid "Download Config" -msgstr "下载配置" - -msgid "Config Name" -msgstr "配置名" - -msgid "Config Name. Do not use a config name that already exist" -msgstr "配置名,不要使用已经存在的配置名" - -msgid "CONFIG IN USE" -msgstr "使用中的配置" - -msgid "Daily Server subscription update time. Only update config in use" -msgstr "每日服务器订阅更新时间。仅更新正在使用的配置" - -msgid "NB: Only upload file with name .yaml.It recommended to rename each upload file name to avoid overwrite" -msgstr "注意:仅上载名为.yaml的文件。建议重命名每个上载文件名以避免覆盖" - -msgid "Not Selected" -msgstr "未选择" - -msgid "Force Same Name" -msgstr "强制使用同名" - -msgid "Enable to overwrite config file" -msgstr "启用覆盖配置文件" - -msgid "Give a name for your config" -msgstr "为配置命名" - -msgid "Config Type" -msgstr "Clash配置类型" - -msgid "SUBSCRIBE" -msgstr "订阅配置" - -msgid "UPLOAD" -msgstr "上传配置" - -msgid "CUSTOM" -msgstr "自定义配置" - -msgid "Operation" -msgstr "操作" - -msgid "NOT SELECTED" -msgstr "未选择" - -msgid "Game Rule's Name" -msgstr "选择游戏规则" - -msgid "Select Proxy Group" -msgstr "选择策略组" - -msgid "Game Rules List" -msgstr "游戏规则列表" - -msgid "Rule Name" -msgstr "规则名称" - -msgid "Download Rule" -msgstr "下载规则" - -msgid "Exist" -msgstr "已下载" - -msgid "Not Exist" -msgstr "未下载" - -msgid "Order Number" -msgstr "序号" - -msgid "Game Rules & Groups" -msgstr "游戏规则策略组" - -msgid "Timeout" -msgstr "下载超时" - -msgid "Error" -msgstr "下载失败" - -msgid "Successful" -msgstr "下载成功" - -msgid "Game Rules" -msgstr "游戏规则" - -msgid "Update Rule" -msgstr "点击更新规则" - -msgid "Game Rule Tag" -msgstr "游戏规则名字" - -msgid "Rule Tag" -msgstr "游戏名字" - -msgid "Edit Game Rule & Group" -msgstr "编辑游戏规则策略组" - -msgid "Give a special name for your rules" -msgstr "规则名字" - -msgid "Select a policy group to add rule" -msgstr "选择要添加规则的策略组" - -msgid "Set rules under Setting=>Game Rules, will take effect when client start" -msgstr "在设置=>游戏规则下设置规则,将在客户端启动时生效" - -msgid "Enable" -msgstr "启用" - -msgid "Downloading..." -msgstr "正在下载规则..." - -msgid "Auto Update Config" -msgstr "自动更新配置" - -msgid "Subcription Config List" -msgstr "订阅配置列表" - -msgid "Upload Config List" -msgstr "上传配置列表" - -msgid "Custom Config List" -msgstr "自定义配置列表" - -msgid "Downloading..." -msgstr "正在下载规则..." - -msgid "Downloading..." -msgstr "正在下载规则..." - -msgid "Clash Config" -msgstr "Clash配置" - -msgid "VIEW CONFIG" -msgstr "查看配置" - -msgid "If config does not show refresh page" -msgstr "如果配置不显示刷新页" - -msgid "Usage Steps:" -msgstr "使用步骤:" - -msgid "1.Load Policy Group, make sure you have selected a config on config page" -msgstr "1. 加载策略组,确保已在配置页上选择配置。" - -msgid "2.Download the game rules you want to use from the game rules list on this page" -msgstr "2. 从该页的游戏规则列表中下载要使用的游戏规则。" - -msgid "3. Make sure your game and servers support UDP" -msgstr "3. 确保游戏和服务器支持UDP。" - -msgid "4.Click on ADD, Set the corresponding policy group of the downloaded game rules and save, recommended: FallBack" -msgstr "4. 单击添加,设置下载游戏规则的相应策略组(策略组类型建议:FallBack)。" - -msgid "5.Select ClashTun Core type and start client" -msgstr "5. 在客户端页选择ClashTun内核(https://github.com/comzyh/clash/releases)和启用游戏规则。" - -msgid "RULE" -msgstr "规则模式" - -msgid "GLOBAL" -msgstr "全局模式" - -msgid "DIRECT" -msgstr "直接模式" - -msgid "Proxy Mode" -msgstr "代理模式" - -msgid "Choose proxy mode" -msgstr "选择代理模式" - -msgid "NB: Upload only Dreamacro clash tun core - (https://github.com/Dreamacro/clash/releases/tag/TUN)" -msgstr "注意:只上传clash tun内核-(https://github.com/Dreamacro/clash/releases/tag/TUN)" - -msgid "Load Provider" -msgstr "读取代理集" - -msgid "Enable to read Proxy Provider" -msgstr "启用读取代理集" - -msgid "Every Hour" -msgstr "每个小时" - -msgid "Every 6 Hours" -msgstr "每个6小时" - -msgid "Every 12 Hours" -msgstr "每个12小时" - -msgid "Every 24 Hours" -msgstr "每个24小时" - -msgid "Clear Clash Log" -msgstr "清除日志" - -msgid "Auto Clear Log" -msgstr "自动清除日志" - -msgid "Clear Time (Time of Day)" -msgstr "清除时间(一天中的时间)" - -msgid "Clear Log Time" -msgstr "清除日志时间" - -msgid "Other Settings" -msgstr "其他设置" - -msgid "Rule Type" -msgstr "规则类型" - -msgid "Choose Type" -msgstr "选择类型" - -msgid "Set custom rules under Setting=>Others , will take effect when client start" -msgstr "在“设置”=>“其他”下设置自定义规则,将在客户端启动时生效" - -msgid "Append Customs Rules" -msgstr "附加自定义规则" - -msgid "Edit Custom Rule & Group" -msgstr "编辑自定义规则组" - -msgid "Custom Rules" -msgstr "自定义规则" - -msgid "IP/Domain/Address/Keyword/Port" -msgstr "IP/域/地址/关键字/端口" - -msgid "Manually download, unzip and rename clash core from links below and upload" -msgstr "从下面的链接手动下载、解压和重命名到clash然后上载" - -msgid "Manual Upload" -msgstr "手动上载" - -msgid "Download Online" -msgstr "在线下载" - -msgid "Yacd Dashboard" -msgstr "Yacd控制面板" - -msgid "Enable Ping Servers" -msgstr "启用Ping服务器" - -msgid "New Config(Rename fields)" -msgstr "新配置(重命名字段)" - -msgid "Enable UDP" -msgstr "启用UDP" - -msgid "Enable udp traffic ,make sure your server support udp" -msgstr "启用udp流量,服务器必须支持udp" - -msgid "DNS Cache" -msgstr "DNS缓存" - -msgid "Set to enable or disable dns cache" -msgstr "设置为启用或禁用dns缓存" - -msgid "Old Config" -msgstr "旧配置" - -msgid "Import config info" -msgstr "导入配置信息" - -msgid "Import V2ray config info successful" -msgstr "导入V2ray配置信息成功" - -msgid "Import Trojan config info successful" -msgstr "导入Trojan配置信息成功" - -msgid "Import Shadowsocks config info successful" -msgstr "导入Shadowsocks配置信息成功" - -msgid "Import ShadowsocksR config info successful" -msgstr "导入ShadowsocksR配置信息成功" - -msgid "Invalid link" -msgstr "无效格式" - -msgid "Operation Aborted" -msgstr "用户取消" - -msgid "Standard Config" -msgstr "标准配置" - -msgid "Provider Config" -msgstr "集配置" - -msgid "Select Config" -msgstr "使用配置" - -msgid "Provider Behavior" -msgstr "集行为" - -msgid "Edit Rule Provider" -msgstr "编辑规则集" - -msgid "Rule Provider Name" -msgstr "规则集别名(请勿重名)" - -msgid "Edit Rules" -msgstr "编辑规则" - -msgid "Description" -msgstr "描述" - -msgid "Provider Config" -msgstr "集配置" - -msgid "Rule Provider" -msgstr "规则集" - -msgid "Use Proxy Provider" -msgstr "启用代理集" - -msgid "Use Rule Provider" -msgstr "启用规则集" - -msgid "Use Rules" -msgstr "启用规则" - -msgid "Delete Rule Provider" -msgstr "删除规则集" - -msgid "Delete Rules" -msgstr "删除规则" - -msgid "Use Script" -msgstr "使用脚本" - -msgid "Script" -msgstr "脚本" - -msgid "SCRIPT" -msgstr "脚本模式" - -msgid "NB: Set Clash Mode to Script if want to use" -msgstr "注意:如果要使用,请将Clash模式,设置为脚本" - -msgid "Whitelist IPs" -msgstr "启用白名单IP" - -msgid "Blacklist Ips" -msgstr "启用黑名单IP" - -msgid "Whitelist or Blacklist IPs to use Clash ( Only support enhanced-mode: redir-host )" -msgstr "启用白名单或黑名单IP ( 仅支持enhanced-mode: redir-host )" - -msgid "Rule Providers Manager" -msgstr "规则集经理" - -msgid "Rule Providers List" -msgstr "规则集表" - -msgid "Type" -msgstr "规则类型" - -msgid "Not Updated" -msgstr "规则没更新" - -msgid "Update Rule Providers" -msgstr "更新规则集" - -msgid "Proxy Groups" -msgstr "代理组" - -msgid "Use Proxy" -msgstr "启用代理" - -msgid "Other Rules" -msgstr "其他规则" - -msgid "Use Other Rule" -msgstr "启用其他规则" - -msgid "Delete Proxy Provider" -msgstr "删除代理集" - -msgid "All Servers" -msgstr "所有节点" - -msgid "Interface Name" -msgstr "接口名称" - -msgid "Enable Interface Name" -msgstr "启用接口名称" - -msgid "Set Interface Name" -msgstr "设置接口名称" - -msgid "Tun Mode" -msgstr "Tun模式" - -msgid "Enable Tun and make sure you are using tun supported core" -msgstr "启用Tun并确保您使用的是Tun支持的核心" - -msgid "Stack" -msgstr "Stack" - -msgid "Select Stack Mode" -msgstr "选择Stack模式" - -msgid "Enable Clash DNS" -msgstr "启用Clash DNS" - -msgid "DNS Listen Port" -msgstr "DNS监听端口" - -msgid "Set DNS Listen Port" -msgstr "设置DNS侦听端口" - -msgid "Default NameServer" -msgstr "默认名称服务器" - -msgid "Default Nameserver List" -msgstr "默认名称服务器列表" - -msgid "Enhanced Mode" -msgstr "增强模式" - -msgid "Select Enhanced Mode" -msgstr "选择增强模式" - -msgid "Fake IP Range" -msgstr "假IP范围" - -msgid "Set Fake IP Range" -msgstr "设置假IP范围" - -msgid "Fake IP Filter List" -msgstr "假IP过滤器列表" - -msgid "Fake IP Filter" -msgstr "假IP过滤器" - -msgid "DNS Hijack" -msgstr "DNS劫持" - -msgid "Enable" -msgstr "启用" - -msgid "Protocol" -msgstr "协议" - -msgid "Address" -msgstr "地址" - -msgid "Port" -msgstr "端口" - -msgid "Authentication" -msgstr "HTTP(S)和SOCKS5认证方式" - -msgid "Username" -msgstr "用户名" - -msgid "Password" -msgstr "密码" - -msgid "Hosts" -msgstr "主机" - -msgid "IP" -msgstr "IP" - -msgid "Nameservers & Fallback" -msgstr "自定义上游DNS服务器" - -msgid "Type" -msgstr "类型" - -msgid "Advance DNS" -msgstr "高级DNS设置" - -msgid "Clash DNS" -msgstr "配置DNS设置" - -msgid "Mixed Port" -msgstr "HTTP(S)和SOCKS5同一端口上" - -msgid "Enable IPv6" -msgstr "启用IPv6" - -msgid "Filter List" -msgstr "自定义过滤器列表" - -msgid "Installed Version" -msgstr "当前内核版本" - -msgid "New Version" -msgstr "最新内核版本" - -msgid "Download Update" -msgstr "下载最新版本客户端" - -msgid "No Protocol" -msgstr "不带协议" - -msgid "GeoIP Source" -msgstr "GeoIP下载连接" \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/etc/clash/Country.mmdb b/package/ntlf9t/luci-app-clash/root/etc/clash/Country.mmdb deleted file mode 100644 index ec9a981dbb..0000000000 Binary files a/package/ntlf9t/luci-app-clash/root/etc/clash/Country.mmdb and /dev/null differ diff --git a/package/ntlf9t/luci-app-clash/root/etc/config/clash b/package/ntlf9t/luci-app-clash/root/etc/config/clash deleted file mode 100644 index 1d1709d923..0000000000 --- a/package/ntlf9t/luci-app-clash/root/etc/config/clash +++ /dev/null @@ -1,116 +0,0 @@ -config clash 'config' - option redir_port '7892' - option http_port '7890' - option socks_port '7891' - option mixed_port '7893' - option enable_ipv6 'false' - option tun_mode '0' - option enable '0' - option dash_port '9090' - option dash_pass '123456' - option auto_update '0' - option auto_update_time '0' - option level 'info' - option core '1' - option allow_lan 'true' - option bind_addr '*' - option dnsforwader '1' - option subcri 'clash' - option cusrule '0' - option dnscache '0' - option config_type '1' - option p_mode 'rule' - option auto_clear_log '1' - option auto_update '1' - option auto_update_time '12' - option clear_time '12' - option append_rules '0' - option enable_udp '0' - option dnscache '0' - option stack 'system' - option enhanced_mode 'fake-ip' - option fake_ip_range '198.18.0.1/16' - list fake_ip_filter '*.lan' - list fake_ip_filter 'localhost.ptlogin2.qq.com' - list defaul_nameserver '114.114.114.114' - list defaul_nameserver '8.8.8.8' - option listen_port '5300' - option interf '0' - option enable_dns '1' - - -config dnshijack - option enabled '1' - option ip '8.8.8.8' - option port '53' - option type 'tcp://' - -config dnshijack - option enabled '1' - option ip '8.8.8.8' - option port '53' - option type 'udp://' - -config hosts - option enabled '0' - option adress '*.clash.dev' - option ip '127.0.0.1' - -config hosts - option enabled '0' - option adress 'alpha.clash.dev' - option ip '::1' - -config dnsservers - option enabled '1' - option ser_type 'nameserver' - option ser_address '114.114.114.114' - option protocol 'udp://' - -config dnsservers - option enabled '1' - option ser_port '853' - option protocol 'tls://' - option ser_type 'nameserver' - option ser_address '47.96.179.163' - -config dnsservers - option enabled '1' - option ser_type 'nameserver' - option ser_address '118.89.110.78' - option ser_port '853' - option protocol 'tls://' - -config dnsservers - option enabled '1' - option ser_type 'nameserver' - option ser_address '8.8.8.8' - option ser_port '53' - option protocol 'udp://' - -config dnsservers - option enabled '1' - option ser_type 'nameserver' - option ser_address '1.1.1.1' - option ser_port '853' - option protocol 'tls://' - -config dnsservers - option enabled '1' - option ser_type 'fallback' - option ser_address '114.114.114.114' - option protocol 'udp://' - -config dnsservers - option enabled '1' - option ser_type 'fallback' - option ser_address '118.89.110.78' - option ser_port '853' - option protocol 'tls://' - -config dnsservers - option enabled '1' - option ser_type 'fallback' - option ser_address '1.1.1.1' - option protocol 'tcp://' - diff --git a/package/ntlf9t/luci-app-clash/root/etc/init.d/clash b/package/ntlf9t/luci-app-clash/root/etc/init.d/clash deleted file mode 100644 index b6170d60f9..0000000000 --- a/package/ntlf9t/luci-app-clash/root/etc/init.d/clash +++ /dev/null @@ -1,966 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=99 -STOP=15 - -CLASH="/etc/clash/clash" -CLASHT="/etc/clash/clashtun/clash" -CLASHD="/etc/clash/dtun/clash" -CLASH_CONFIG="/etc/clash" -CRON_FILE="/etc/crontabs/root" -CONFIG_YAML="/etc/clash/config.yaml" -CONFIG_YAML_PATH=$(uci get clash.config.use_config 2>/dev/null) - -CUSLIST="/tmp/dnsmasq.d/custom_list.conf" -CUSLITT="/tmp/dnsmasq.clash" -CUSLISTV="/var/dnsmasq.d/custom_list.conf" -CUSLITTV="/var/dnsmasq.clash" -REAL_LOG="/usr/share/clash/clash_real.txt" - -revert_dns() { -#=========================================================================================================================== - dns_port=$(grep "^ \{0,\}listen:" $CONFIG_YAML |awk -F ':' '{print $3}' 2>/dev/null) - uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#$dns_port >/dev/null 2>&1 - uci set dhcp.@dnsmasq[0].noresolv=0 - uci delete dhcp.@dnsmasq[0].cachesize - rm -rf $CUSLIST $CUSLITT $CUSLISTV $CUSLITTV 2>/dev/null - uci commit dhcp - /etc/init.d/dnsmasq restart >/dev/null 2>&1 -#=========================================================================================================================== -} - -add_cron(){ -config_type=$(uci get clash.config.config_type 2>/dev/null) -#=========================================================================================================================== - [ -z "$(grep -w "/usr/share/clash/clash-watchdog.sh" $CRON_FILE)" ] && echo "*/3 * * * * /usr/share/clash/clash-watchdog.sh" >> $CRON_FILE - [ -z "$(grep -w "/usr/share/clash/kill_watchdog.sh" $CRON_FILE)" ] && echo "*/1 * * * * /usr/share/clash/kill_watchdog.sh" >> $CRON_FILE - clear=$(uci get clash.config.auto_clear_log 2>/dev/null) - if [ "${clear}" -eq 1 ]; then - [ -z "$(grep -w "/usr/share/clash/clash.txt" $CRON_FILE)" ] && echo "0 */$(uci get clash.config.clear_time 2>/dev/null) * * * echo '' >/usr/share/clash/clash.txt" >> $CRON_FILE - fi - - auto=$(uci get clash.config.auto_update 2>/dev/null) - if [ "${auto}" -eq 1 ]; then - [ -z "$(grep -w "/usr/share/clash/update_all.sh" $CRON_FILE)" ] && echo "0 */$(uci get clash.config.auto_update_time 2>/dev/null) * * * bash /usr/share/clash/update_all.sh >/usr/share/clash/clash.txt 2>&1 &" >> $CRON_FILE - fi - - auto_geoip=$(uci get clash.config.auto_update_geoip 2>/dev/null) - if [ "${auto_geoip}" -eq 1 ]; then - day=$(uci get clash.config.geoip_update_day 2>/dev/null) - week=$(uci get clash.config.geo_update_week 2>/dev/null) - if [ -z $week ];then - update_week="*" - else - update_week=$week - fi - if [ -z $day ];then - update_day="*" - else - update_day=$day - fi - - [ -z "$(grep -w "/usr/share/clash/geoip.sh" $CRON_FILE)" ] && echo "0 $(uci get clash.config.auto_update_geoip_time 2>/dev/null) $update_week * $update_day /usr/share/clash/geoip.sh" >> $CRON_FILE - fi - crontab $CRON_FILE -#=========================================================================================================================== -} - -del_cron(){ -#=========================================================================================================================== - sed -i '/clash-watchdog.sh/d' $CRON_FILE - sed -i '/update_all.sh/d' $CRON_FILE - sed -i '/clash.txt/d' $CRON_FILE - /etc/init.d/cron restart -#=========================================================================================================================== -} - - -select_config(){ -#=========================================================================================================================== -config_type=$(uci get clash.config.config_type 2>/dev/null) -if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Checking Config file" >$REAL_LOG -elif [ "${lang}" == "zh_cn" ];then - echo "正在检查配置文件" >$REAL_LOG -fi - -if [ -f $CONFIG_YAML_PATH ] && [ "$(ls -l $CONFIG_YAML_PATH|awk '{print int($5)}')" -ne 0 ];then - - cp $CONFIG_YAML_PATH $CONFIG_YAML 2>/dev/null - -elif [ ! -f "$CONFIG_YAML_PATH" ] && [ ! -f "$CONFIG_YAML" ];then - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "No config found" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "找不到配置文章" >$REAL_LOG - fi - sleep 5 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - -elif [ "$(ls -l $CONFIG_YAML_PATH|awk '{print int($5)}')" -eq 0 ] && [ "$(ls -l $CONFIG_YAML|awk '{print int($5)}')" -eq 0 ];then - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Your Config File is Empty" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "你的config.yaml有问题还是为了空" >$REAL_LOG - fi - sleep 5 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - -fi - -#=========================================================================================================================== -} - - - -yml_change() { -#=========================================================================================================================== - sh /usr/share/clash/yum_change.sh 2>/dev/null -#=========================================================================================================================== -} - -game_rules() { -#=========================================================================================================================== - sh /usr/share/clash/game.sh 2>/dev/null -#=========================================================================================================================== -} - -ip_rules() { -#=========================================================================================================================== - sh /usr/share/clash/iprules.sh 2>/dev/null -#=========================================================================================================================== -} - - -yml_dns_change(){ -#=========================================================================================================================== - dns_port=$(grep "^ \{0,\}listen:" /etc/clash/config.yaml |awk -F ':' '{print $3}' 2>/dev/null) - dnsforwader=$(uci get clash.config.dnsforwader 2>/dev/null) - dnscache=$(uci get clash.config.dnscache 2>/dev/null) - if [ "${dns_port}" -eq 53 ]; then - sed -i 's/^0.0.0.0:53/0.0.0.0:5300/g' $CONFIG_YAML - fi - - if [ "$dnsforwader" -ne 0 ]; then - if [ "${dns_port}" -eq 53 ]; then - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Setting dns forwarder" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "设置dns转发器" >$REAL_LOG - fi - - uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#$dns_port >/dev/null 2>&1 - uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#5300 >/dev/null 2>&1 - uci delete dhcp.@dnsmasq[0].resolvfile - uci set dhcp.@dnsmasq[0].noresolv=1 - uci commit dhcp - if [ "$dnscache" -eq 0 ];then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Disabling dns cache" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "禁用dns缓存" >$REAL_LOG - fi - uci set dhcp.@dnsmasq[0].cachesize=0 - uci commit dhcp - fi - else - echo "Setting dns forwarder" >$REAL_LOG - uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#$dns_port >/dev/null 2>&1 - uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#$dns_port >/dev/null 2>&1 - uci delete dhcp.@dnsmasq[0].resolvfile - uci set dhcp.@dnsmasq[0].noresolv=1 - uci commit dhcp - if [ "$dnscache" -eq 0 ];then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Disabling dns cache" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "禁用dns缓存" >$REAL_LOG - fi - - uci set dhcp.@dnsmasq[0].cachesize=0 - uci commit dhcp - fi - fi - elif [ "$dnsforwader" -ne 1 ]; then - if [ "$dnscache" -eq 0 ];then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Disabling dns cache" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "禁用dns缓存" >$REAL_LOG - fi - - uci set dhcp.@dnsmasq[0].cachesize=0 - uci commit dhcp - fi - fi -#=========================================================================================================================== -} - - -check(){ - - sed -i 's/^Proxy Group:/proxy-groups:/g' "$CONFIG_YAML" - sed -i 's/^proxy-provider:/proxy-providers:/g' "$CONFIG_YAML" - sed -i 's/^Proxy:/proxies:/g' "$CONFIG_YAML" - sed -i 's/^Rule:/rules:/g' "$CONFIG_YAML" - sed -i 's/^rule-provider:/rule-providers:/g' "$CONFIG_YAML" - -} - -rules(){ -#=========================================================================================================================== - - dns_port=$(grep listen: $CONFIG_YAML |awk -F ':' '{print $3}' |tr -cd "[0-9]") - redir_port=$(uci get clash.config.redir_port 2>/dev/null) - #fake_ip_range=$(uci get clash.config.fake_ip_range 2>/dev/null) - ipv6=$(uci get clash.config.enable_ipv6 2>/dev/null) - core=$(uci get clash.config.core 2>/dev/null) - tun_mode=$(uci get clash.config.tun_mode 2>/dev/null) - #lan_ip=$(uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null) - wan=$(ifconfig | grep 'inet addr' | awk '{print $2}' | cut -d: -f2 2>/dev/null) - ip6=$(ifconfig | grep 'inet6 addr' | awk '{print $3}' 2>/dev/null) - enable_udp=$(uci get clash.config.enable_udp 2>/dev/null) - fake_ip=$(egrep '^ {0,}enhanced-mode' /etc/clash/config.yaml |grep enhanced-mode: |awk -F ': ' '{print $2}') - PROXY_FWMARK="0x162" - PROXY_ROUTE_TABLE="0x162" - PROXY_BYPASS_USER="root" - dnsforwader=$(uci get clash.config.dnsforwader 2>/dev/null) - - - redir_host=$(egrep '^ {0,}enhanced-mode' /etc/clash/config.yaml |grep enhanced-mode: |awk -F ': ' '{print $2}') - if [ "$redir_host" == "redir-host" ];then - if [ "$(uci get clash.config.access_control 2>/dev/null)" = "1" ] && [ -n "$(uci get clash.config.proxy_lan_ips 2>/dev/null)" ]; then - proxy_ips=$(uci get clash.config.proxy_lan_ips) - ipset -! -R <<-EOF - create proxy_lan hash:net - $(for ip in $proxy_ips; do echo "add proxy_lan $ip"; done) - EOF - elif [ "$(uci get clash.config.access_control 2>/dev/null)" = "2" ] && [ -n "$(uci get clash.config.reject_lan_ips 2>/dev/null)" ]; then - reject_ips=$(uci get clash.config.reject_lan_ips) - ipset -! -R <<-EOF - create reject_lan hash:net - $(for ip in $reject_ips; do echo "add reject_lan $ip"; done) - EOF - - fi - fi - - ipset create localnetwork hash:net - ipset add localnetwork 127.0.0.0/8 - ipset add localnetwork 10.0.0.0/8 - ipset add localnetwork 169.254.0.0/16 - ipset add localnetwork 192.168.0.0/16 - ipset add localnetwork 224.0.0.0/4 - ipset add localnetwork 240.0.0.0/4 - ipset add localnetwork 172.16.0.0/12 - if [ -n "$wan" ]; then - for wan_ip4s in $wan; do - ipset add localnetwork "$wan_ip4s" 2>/dev/null - done - fi - sh /usr/share/clash/chinaipset.sh >/dev/null 2>&1 - - - if [ "$(iptables -t nat -nL PREROUTING --line-number |grep "udp dpt:53" |grep "0.0.0.0/0 \{0,\}0.0.0.0/0" |wc -l)" -gt 1 ] && [ "$dnsforwader" -eq "1" ]; then - pre_lines=$(iptables -nvL PREROUTING -t nat |sed 1,2d |sed -n '/0.0.0.0\/0 \{0,\}0.0.0.0\/0 \{0,\}udp dpt:53/=' 2>/dev/null |sort -rn) - for pre_line in $pre_lines; do - iptables -t nat -D PREROUTING "$pre_line" >/dev/null 2>&1 - done - iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53 >/dev/null 2>&1 - sleep 2 - fi - - if [ -z "$(uci get firewall.clash 2>/dev/null)" ] || [ -z "$(uci get ucitrack.@clash[-1].init 2>/dev/null)" ]; then - uci delete ucitrack.@clash[-1] >/dev/null 2>&1 - uci add ucitrack clash >/dev/null 2>&1 - uci set ucitrack.@clash[-1].init=clash >/dev/null 2>&1 - uci commit ucitrack >/dev/null 2>&1 - uci delete firewall.clash >/dev/null 2>&1 - uci set firewall.clash=include >/dev/null 2>&1 - uci set firewall.clash.type=script >/dev/null 2>&1 - uci set firewall.clash.path=/var/etc/clash.include >/dev/null 2>&1 - uci set firewall.clash.reload=1 >/dev/null 2>&1 - fi - - if [ "$(uci get firewall.@defaults[0].forward)" != "ACCEPT" ]; then - uci set firewall.@defaults[0].forward=ACCEPT >/dev/null 2>&1 - uci commit firewall >/dev/null 2>&1 - /etc/init.d/firewall restart >/dev/null 2>&1 - fi - - mkdir -p /var/etc - cat > "/var/etc/clash.include" <<-EOF - /etc/init.d/clash reload >/dev/null 2>&1 - EOF - - if [ "${core}" -eq 1 ] || [ "${core}" -eq 2 ];then - - iptables -t nat -N clash - iptables -t nat -F clash - iptables -t nat -A clash -m set --match-set localnetwork dst -j RETURN - iptables -t nat -A clash -m set --match-set reject_lan src -j RETURN - iptables -t nat -A clash -m set ! --match-set proxy_lan src -j RETURN - iptables -t nat -A clash -m set --match-set china dst -j RETURN - iptables -t nat -A clash -p tcp -j REDIRECT --to-ports "${redir_port}" - iptables -t nat -I PREROUTING -p tcp -d 8.8.8.8 -j REDIRECT --to-ports "${redir_port}" - iptables -t nat -I PREROUTING -p tcp -d 8.8.4.4 -j REDIRECT --to-ports "${redir_port}" - iptables -t nat -A PREROUTING -p tcp -j clash - - - 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 clash - iptables -t mangle -A clash -m set --match-set localnetwork dst -j RETURN - iptables -t mangle -A clash -m set --match-set reject_lan src -j RETURN - iptables -t mangle -A clash -m set ! --match-set proxy_lan src -j RETURN - iptables -t mangle -A clash -m set --match-set china dst -j RETURN - iptables -t mangle -A clash -p udp -j TPROXY --on-port "${redir_port}" --tproxy-mark "$PROXY_FWMARK" - iptables -t mangle -A PREROUTING -p udp -j clash - - - - if [ "${fake_ip}" == "fake-ip" ];then - iptables -t nat -N clash_output - iptables -t nat -F clash_output - iptables -t nat -A clash_output -m set --match-set localnetwork dst -j RETURN - - fake_ip_range=$(egrep '^ {0,}fake-ip-range' /etc/clash/config.yaml |grep fake-ip-range: |awk -F ': ' '{print $2}') - if [ ! -z "${fake_ip_range}" ];then - iptables -t nat -A clash_output -p tcp -d $fake_ip_range -j REDIRECT --to-ports "${redir_port}" - else - iptables -t nat -A clash_output -p tcp -d 198.18.0.0/16 -j REDIRECT --to-ports "${redir_port}" - fi - iptables -t nat -A OUTPUT -p tcp -j clash_output - fi - - - if [ "${ipv6}" == "true" ]; then - ip6tables -t nat -N clash - if [ -n "${ip6}" ]; then - for lan_ip6s in $ip6; do - ip6tables -t nat -A clash -d "$lan_ip6s" -j RETURN 2>/dev/null - done - fi - ip6tables -t nat -A clash -p tcp -j REDIRECT --to-ports "$proxy_port" - ip6tables -t nat -A PREROUTING -p tcp -j clash - fi - - - - elif [ "${core}" -eq 3 ] || [ "${core}" -eq 4 ];then - natr=$(iptables -nvL PREROUTING -t nat | sed 1,2d | sed -n '/tcp dpt:53/=' | sort -r) - for natx in $natr; do - iptables -t nat -D PREROUTING $natx >/dev/null 2>&1 - done - - TUN_DEVICE=$(egrep '^ {0,}device-url:' /etc/clash/config.yaml |grep device-url: |awk -F '//' '{print $2}') - if [ -z $TUN_DEVICE ];then - TUN_DEVICE_NAME="clash0" - else - TUN_DEVICE_NAME=$TUN_DEVICE - fi - - if [ "${core}" -eq 3 ];then - ip tuntap add user root mode tun $TUN_DEVICE_NAME - ip link set $TUN_DEVICE_NAME up - ip route replace default dev $TUN_DEVICE_NAME table "$PROXY_ROUTE_TABLE" - elif [ "${core}" -eq 4 ];then - TUN_WAIT=0 - while ( [ -n "$(pidof clash)" ] && [ -z "$(ip route list |grep utun)" ] && [ "$TUN_WAIT" -le 3 ] ) - do - TUN_WAIT=$(expr "$TUN_WAIT" + 1) - sleep 2 - done - ip route replace default dev utun table "$PROXY_ROUTE_TABLE" - fi - - ip rule add fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" - iptables -t mangle -N clash - iptables -t mangle -F clash - iptables -t mangle -A clash -m set --match-set localnetwork dst -j RETURN - iptables -t mangle -A TROJAN_GO -m set --match-set china dst -j RETURN - if [ "${fake_ip}" == "fake-ip" ];then - iptables -t mangle -A clash -d 198.18.0.0/16 -j MARK --set-mark "$PROXY_FWMARK" - fi - - iptables -t mangle -I OUTPUT -j clash - iptables -t mangle -I PREROUTING -m set ! --match-set localnetwork dst -j MARK --set-mark "$PROXY_FWMARK" - iptables -t mangle -I PREROUTING -m set ! --match-set china dst -j MARK --set-mark "$PROXY_FWMARK" - iptables -t mangle -I PREROUTING -m set --match-set reject_lan src -j RETURN >/dev/null 2>&1 - iptables -t mangle -I PREROUTING -m set ! --match-set proxy_lan src -j RETURN >/dev/null 2>&1 - iptables -t nat -I PREROUTING -p tcp --dport 53 -j ACCEPT - - if [ "${fake_ip}" == "fake-ip" ];then - fake_ip_range=$(egrep '^ {0,}fake-ip-range' /etc/clash/config.yaml |grep fake-ip-range: |awk -F ': ' '{print $2}') - if [ ! -z "${fake_ip_range}" ];then - iptables -t nat -A OUTPUT -p tcp -d $fake_ip_range -j REDIRECT --to-ports "${redir_port}" - else - iptables -t nat -A OUTPUT -p tcp -d 198.18.0.1/16 -j REDIRECT --to-ports "${redir_port}" - fi - fi - - - fi - -#=========================================================================================================================== -} - - -custom_list() { - sh /usr/share/clash/list.sh >/dev/null 2>&1 -} - -restore() { - sh /usr/share/clash/restore.sh >/dev/null 2>&1 -} - - - - -start(){ -#=========================================================================================================================== -lang=$(uci get luci.main.lang 2>/dev/null) -enable=$(uci get clash.config.enable 2>/dev/null) -core=$(uci get clash.config.core 2>/dev/null) -mode=$(uci get clash.config.mode 2>/dev/null) -tun_mode=$(uci get clash.config.tun_mode 2>/dev/null) - - - -if [ -f /etc/clash/config.yaml ];then - rm -rf /etc/clash/config.yaml >/dev/null 2>&1 -fi - -if [ "${enable}" -eq 1 ]; then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Starting Client" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "启动客户端" >$REAL_LOG - fi - sleep 1 - select_config >/dev/null 2>&1 - sleep 1 - - -if [ "${core}" -eq 1 ] && [ ! -f /etc/clash/clash ]; then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - clash core not found, download and install clash from update page " >> /usr/share/clash/clash.txt - echo "clash core not found, download and install clash from update page" >> $REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - 找不到/etc/clash/clash,请从更新页下载clash内核" >> /usr/share/clash/clash.txt - echo "找不到/etc/clash/clash,请从更新页下载clash内核" >> $REAL_LOG - fi - - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 -elif [ "${core}" -eq 3 ] && [ ! -f /etc/clash/clashtun/clash ]; then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - clash Tun core not found in /etc/clash/clashtun/clash " >> /usr/share/clash/clash.txt - echo "clash Tun core not found in /etc/clash/clashtun/clash" >> $REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - 找不到/etc/clash/clashtun/clash, clash Tun内核" >> /usr/share/clash/clash.txt - echo "找不到/etc/clash/clashtun/clash, clash Tun内核" >> $REAL_LOG - fi - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 -elif [ "${core}" -eq 4 ] && [ ! -f /etc/clash/dtun/clash ]; then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - clash Tun core not found in /etc/clash/dtun/clash " >> /usr/share/clash/clash.txt - echo "clash Tun core not found in /etc/clash/dtun/clash" >> $REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - 找不到/usr/bin/clash clash Tun" >> /usr/share/clash/clash.txt - echo "找不到/etc/clash/dtun/clash,clash Tun" >> $REAL_LOG - fi - - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 -else -if [ -f $CONFIG_YAML ] && [ "$(ls -l $CONFIG_YAML|awk '{print int($5)}')" -ne 0 ] ; then - - check >/dev/null 2>&1 - - custom_list >/dev/null 2>&1 - - if [ "$core" -eq 4 ] || [ "$core" -eq 3 ];then - - if [ $tun_mode -eq 0 ];then - uci set clash.config.tun_mode="1" && uci set clash.config.stack="system" && uci commit clash - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Enabling TUN" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "启用TUN" >$REAL_LOG - fi - fi - - fi - - sleep 1 - - enable_dns=$(uci get clash.config.enable_dns 2>/dev/null) - - if [ -z "$(grep "^ {0,}listen:" /etc/clash/config.yaml)" ] || [ -z "$(grep "^ {0,}enhanced-mode:" /etc/clash/config.yaml)" ] || [ -z "$(grep "^ {0,}dns:" /etc/clash/config.yaml)" ];then - - if [ $enable_dns -eq 0 ];then - uci set clash.config.enable_dns="1" && uci commit clash - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Enabling Custom Dns" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "启用自定义DNS" >$REAL_LOG - fi - fi - - fi - - if [ ! -z "$(egrep '^ {0,}rule-providers:' "/etc/clash/config.yaml")" ] && [ "$(uci get clash.config.core)" -ne 4 ];then - - if [ -f /etc/clash/dtun/clash ];then - uci set clash.config.core="4" && uci commit clash - sleep 1 - else - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Your Current Config only support Clash Core(dtun)" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "你在使用配置不支持Clash内核,仅支持Clash(dtun)h内核" >$REAL_LOG - fi - remove_mark >/dev/null 2>&1 - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - fi - fi - - if [ ! -z "$(egrep '^ {0,}script:' "/etc/clash/config.yaml")" ] && [ "$(uci get clash.config.core)" -ne 4 ];then - if [ -f /etc/clash/dtun/clash ];then - uci set clash.config.core="4" && uci commit clash - sleep 1 - else - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Your Current Config only support Clash Core(dtun)" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "你在使用配置不支持Clash内核,仅支持Clash(dtun)h内核" >$REAL_LOG - fi - remove_mark >/dev/null 2>&1 - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - fi - fi - - if [ ! -z "$(egrep '^ {0,}script:' "/etc/clash/config.yaml")" ] && [ "$(uci get clash.config.p_mode 2>/dev/null)" != "Script" ];then - uci set clash.config.p_mode="Script"&& uci commit clash - elif [ "$(uci get clash.config.p_mode)" == "Script" ] && [ -z "$(egrep '^ {0,}script:' "/etc/clash/config.yaml")" ];then - uci set clash.config.p_mode="rule" && uci commit clash - fi - - sleep 1 - yml_change >/dev/null 2>&1 - - - if [ ! -f /etc/clash/Country.mmdb ];then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Cannot find Country.mmdb" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "找不到Country.mmdb" >$REAL_LOG - fi - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - fi - - if [ ! -f /etc/clash/config.yaml ];then - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Cannot find config.yaml" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "找不到config.yaml" >$REAL_LOG - fi - remove_mark >/dev/null 2>&1 - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - fi - - yml_dns_change >/dev/null 2>&1 - - game_rules >/dev/null 2>&1 - - ip_rules >/dev/null 2>&1 - - - if [ "$(uci get clash.config.core)" -eq 1 ];then - nohup $CLASH -d "$CLASH_CONFIG" > /usr/share/clash/clash.txt 2>&1 & - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Clash Core Started Successfully " >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "Clash 计划任务,启动进程守护程序..." >$REAL_LOG - fi - - elif [ "$(uci get clash.config.core)" -eq 3 ];then - nohup $CLASHT -d "$CLASH_CONFIG" > /usr/share/clash/clash.txt 2>&1 & - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Clash Core Started Successfully " >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "Clash 计划任务,启动进程守护程序..." >$REAL_LOG - fi - elif [ "$(uci get clash.config.core)" -eq 4 ];then - nohup $CLASHD -d "$CLASH_CONFIG" > /usr/share/clash/clash.txt 2>&1 & - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Clash Core Started Successfully " >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "Clash 计划任务,启动进程守护程序..." >$REAL_LOG - fi - fi - ln -s /usr/share/clash/yacd /www/luci-static/yacd 2>/dev/null - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Setting up clash iptables rules" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "设置 Clash iptables" >$REAL_LOG - fi - - rules >/dev/null 2>&1 - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Restarting Dnsmasq " >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "重启 Dnsmasq 程序" >$REAL_LOG - fi - - /etc/init.d/dnsmasq restart >/dev/null 2>&1 - - restore >/dev/null 2>&1 - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Setting Cron Job" >$REAL_LOG - add_cron - elif [ "${lang}" == "zh_cn" ];then - echo "设置Cron" >$REAL_LOG - add_cron - - fi - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Clash Started Successfully " >$REAL_LOG - sleep 1 - echo "Clash is Running " >$REAL_LOG - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "Clash 启动成功,请等待服务器上线!" >$REAL_LOG - sleep 1 - echo "Clash运行中" >$REAL_LOG - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - fi - if ! pidof clash >/dev/null; then - remove_mark 2>/dev/null - kill -9 `pidof clash|sed "s/$//g"` 2>/dev/null - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - fi -else - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - problem with config.yaml, config.yaml is either empty or not found " >> /usr/share/clash/clash.txt - echo " problem with config file " >$REAL_LOG - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - 你的config.yaml有问题还是为了空 0kb " >> /usr/share/clash/clash.txt - echo " 你的config.yaml有问题还是为了空 0kb " >$REAL_LOG - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - fi -fi -fi -else - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Enable Client and Start Client Again" >$REAL_LOG - echo " $(date "+%Y-%m-%d %H:%M:%S") - Enable Client and Start Client Again" >>/usr/share/clash/clash.txt - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "启用客户端并重新启动客户端" >$REAL_LOG - echo " $(date "+%Y-%m-%d %H:%M:%S") - 启用客户端并重新启动客户端" >>/usr/share/clash/clash.txt - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - fi -fi -#=========================================================================================================================== -} - - -remove_mark(){ - rm -rf /var/etc/clash.include 2>/dev/null - - core=$(uci get clash.config.core 2>/dev/null) - ipv6=$(uci get clash.config.enable_ipv6 2>/dev/null) - dns_port=$(grep "^ \{0,\}listen:" $CONFIG_YAML |awk -F ':' '{print $3}' 2>/dev/null) - PROXY_FWMARK="0x162" 2>/dev/null - PROXY_ROUTE_TABLE="0x162" 2>/dev/null - - - ip rule del fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" >/dev/null 2>&1 - ip route del local 0.0.0.0/0 dev lo table "$PROXY_ROUTE_TABLE" >/dev/null 2>&1 - - - TUN_DEVICE=$(egrep '^ {0,}device-url:' /etc/clash/config.yaml |grep device-url: |awk -F '//' '{print $2}') - if [ -z $TUN_DEVICE ];then - TUN_DEVICE_NAME="clash0" - else - TUN_DEVICE_NAME=$TUN_DEVICE - fi - if [ "${core}" -eq 3 ];then - ip link set dev $TUN_DEVICE_NAME down 2>/dev/null - ip tuntap del $TUN_DEVICE_NAME mode tun 2>/dev/null - ip route del default dev $TUN_DEVICE_NAME table "$PROXY_ROUTE_TABLE" 2>/dev/null - fi - ip route del default dev utun table "$PROXY_ROUTE_TABLE" >/dev/null 2>&1 - #ip rule del fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" 2>/dev/null - ip rule del fwmark "$PROXY_FWMARK" table "$PROXY_ROUTE_TABLE" >/dev/null 2>&1 - - - mangle=$(iptables -nvL OUTPUT -t mangle | sed 1,2d | sed -n '/clash/=' | sort -r) - for mangles in $mangle; do - iptables -t mangle -D OUTPUT $mangles 2>/dev/null - done - - pre=$(iptables -nvL PREROUTING -t mangle | sed 1,2d | sed -n '/! match-set localnetwork dst MARK set 0x162/=' | sort -r) - for prer in $pre; do - iptables -t mangle -D PREROUTING $prer 2>/dev/null - done - - pre1=$(iptables -nvL PREROUTING -t mangle | sed 1,2d | sed -n '/! match-set china dst MARK set 0x162/=' | sort -r) - for prer in $pre1; do - iptables -t mangle -D PREROUTING $prer 2>/dev/null - done - - pre_lines=$(iptables -nvL PREROUTING -t nat |sed 1,2d |sed -n '/8\.8\./=' 2>/dev/null |sort -rn) - for pre_line in $pre_lines; do - iptables -t nat -D PREROUTING "$pre_line" >/dev/null 2>&1 - done - - - iptables -t nat -D PREROUTING -p tcp --dport 53 -j ACCEPT >/dev/null 2>&1 - iptables -t nat -D PREROUTING -p udp --dport 53 -j DNAT --to "127.0.0.1:$dns_port" - - if [ "${ipv6}" == "true" ]; then - ip6tables -t mangle -D PREROUTING -j MARK --set-mark "$PROXY_FWMARK" 2>/dev/null - fi - - iptables -t mangle -F clash 2>/dev/null - iptables -t mangle -X clash 2>/dev/null - - - iptables -t nat -F clash_output >/dev/null 2>&1 - iptables -t nat -X clash_output >/dev/null 2>&1 - - ipset -! flush proxy_lan >/dev/null 2>&1 - ipset -! flush reject_lan >/dev/null 2>&1 - ipset destroy reject_lan >/dev/null 2>&1 - ipset destroy proxy_lan >/dev/null 2>&1 - ipset -! flush china >/dev/null 2>&1 - ipset destroy china >/dev/null 2>&1 - - proxy_lan=$(iptables -nvL PREROUTING -t mangle | sed 1,2d | sed -n '/! match-set proxy_lan src/=' | sort -r) - for natx in $proxy_lan; do - iptables -t mangle -D PREROUTING $natx >/dev/null 2>&1 - done - - reject_lan=$(iptables -nvL PREROUTING -t mangle | sed 1,2d | sed -n '/match-set reject_lan src/=' | sort -r) - for natx in $reject_lan; do - iptables -t mangle -D PREROUTING $natx >/dev/null 2>&1 - done - - proxy_lann=$(iptables -nvL clash -t nat | sed 1,2d | sed -n '/! match-set proxy_lan src/=' | sort -r) - for natx in $proxy_lann; do - iptables -t nat -D PREROUTING $natx >/dev/null 2>&1 - done - - reject_lann=$(iptables -nvL clash -t nat | sed 1,2d | sed -n '/match-set reject_lan src/=' | sort -r) - for natx in $reject_lann; do - iptables -t nat -D PREROUTING $natx >/dev/null 2>&1 - done - - proxy_lannn=$(iptables -nvL clash -t nat | sed 1,2d | sed -n '/! match-set proxy_lan src/=' | sort -r) - for natx in $proxy_lannn; do - iptables -t mangle -D PREROUTING $natx >/dev/null 2>&1 - done - - reject_lannn=$(iptables -nvL clash -t nat | sed 1,2d | sed -n '/match-set reject_lan src/=' | sort -r) - for natx in $reject_lannn; do - iptables -t mangle -D PREROUTING $natx >/dev/null 2>&1 - done - - iptables -t nat -D OUTPUT -p tcp -j clash_output >/dev/null 2>&1 - - - china_lan2=$(iptables -nvL PREROUTING -t nat | sed 1,2d | sed -n '/match-set china/=' | sort -r) - for natx in $china_lan2; do - iptables -t mangle -D PREROUTING $natx >/dev/null 2>&1 - done - - china_lan3$(iptables -nvL PREROUTING -t mangle | sed 1,2d | sed -n '/match-set china/=' | sort -r) - for natx in $china_lan3; do - iptables -t mangle -D PREROUTING $natx >/dev/null 2>&1 - done - - ipset destroy localnetwork 2>/dev/null - - nat_indexs=$(iptables -nvL PREROUTING -t nat | sed 1,2d | sed -n '/clash/=' | sort -r) - for nat_index in $nat_indexs; do - iptables -t nat -D PREROUTING $nat_index >/dev/null 2>&1 - iptables -t nat -F clash >/dev/null 2>&1 - iptables -t nat -X clash >/dev/null 2>&1 - iptables -t mangle -F clash >/dev/null 2>&1 - iptables -t mangle -D PREROUTING -p udp -j clash >/dev/null 2>&1 - iptables -t mangle -X clash >/dev/null 2>&1 - done - - nat=$(iptables -nvL PREROUTING -t nat | sed 1,2d | sed -n '/tcp dpt:53/=' | sort -r) - for natx in $nat; do - iptables -t nat -D PREROUTING $natx >/dev/null 2>&1 - done - - ip6tables -t mangle -F clash >/dev/null 2>&1 - ip6tables -t mangle -D PREROUTING -p udp -j clash >/dev/null 2>&1 - ip6tables -t mangle -X clash >/dev/null 2>&1 - - - out_linese=$(iptables -nvL OUTPUT -t mangle |sed 1,2d |sed -n '/198.18.0.1\/16/=' 2>/dev/null |sort -rn) - for out_linee in $out_linese; do - iptables -t mangle -D OUTPUT "$out_linee" >/dev/null 2>&1 - done - - out_linesee=$(iptables -nvL OUTPUT -t mangle |sed 1,2d |sed -n '/198.18.0.0\/16/=' 2>/dev/null |sort -rn) - for out_linees in $out_linesee; do - iptables -t mangle -D OUTPUT "$out_linees" >/dev/null 2>&1 - done - - nat_indexs=$(iptables -nvL PREROUTING -t nat | sed 1,2d | sed -n '/clash/=' | sort -r) - for nat_index in $nat_indexs; do - iptables -t nat -D PREROUTING $nat_index >/dev/null 2>&1 - done - - - - fake=$(iptables -nvL OUTPUT -t nat |sed 1,2d |sed -n '/198.18.0.0\/16/=' |sort -r) - for fake in $fake; do - iptables -t nat -D OUTPUT $fake >/dev/null 2>&1 - done - - fake2=$(iptables -nvL OUTPUT -t nat |sed 1,2d |sed -n '/198.18.0.1\/16/=' |sort -r) - for fake2 in $fake2; do - iptables -t nat -D OUTPUT $fake2 >/dev/null 2>&1 - done - - iptables -t nat -I PREROUTING -p tcp --dport 53 -j ACCEPT - - revert_dns >/dev/null 2>&1 - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Restarting Dnsmasq " >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "重启 Dnsmasq 程序" >$REAL_LOG - fi -} - -stop(){ -#=========================================================================================================================== - - lang=$(uci get luci.main.lang 2>/dev/null) - tun_mode=$(uci get clash.config.tun_mode 2>/dev/null) - #ipv6=$(uci get clash.config.enable_ipv6 2>/dev/null) - core=$(uci get clash.config.core 2>/dev/null) - LIST="/usr/share/clash/server.list" - - sed -i '/#START/,/#END/d' "$LIST" 2>/dev/null - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Stopping Client..." >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "正在停止客户端..." >$REAL_LOG - fi - sleep 1 - remove_mark >/dev/null 2>&1 - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Removing clash iptables rules" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "删除clash iptables规则" >$REAL_LOG - fi - - bash /usr/share/clash/backup.sh >/dev/null 2>&1 - - kill -9 `pidof clash|sed "s/$//g"` 2>/dev/null - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Clash Core Stoped Successfully " >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "Clash 停止进程守护程序" >$REAL_LOG - fi - - rm -rf /www/luci-static/yacd 2>/dev/null - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo "Deleting Cron Job" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo "删除Cron" >$REAL_LOG - fi - - del_cron >/dev/null 2>&1 - sleep 1 - - - echo "" >/usr/share/clash/clash.txt >/dev/null 2>&1 - - echo "0" > /usr/share/clash/logstatus_check >/dev/null 2>&1 - - if [ "${lang}" == "en" ] || [ $lang == "auto" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - CLIENT IS DISABLED " >> /usr/share/clash/clash.txt - echo "Client is Disabled " >$REAL_LOG - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - elif [ "${lang}" == "zh_cn" ];then - echo " $(date "+%Y-%m-%d %H:%M:%S") - 客户端被禁用 " >> /usr/share/clash/clash.txt - echo "客户端被禁用 " >$REAL_LOG - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG - fi - - if pidof clash >/dev/null; then - kill $(pidof clash) >/dev/null 2>&1 || kill -9 $(ps | grep clash | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - fi - - -#=========================================================================================================================== -} - -restart(){ -#=========================================================================================================================== - if pidof clash >/dev/null; then - stop >/dev/null 2>&1 - start >/dev/null 2>&1 - echo "Clash Successfully Restarted" - else - start >/dev/null 2>&1 - echo "Clash Successfully Started" - fi -#=========================================================================================================================== -} - -reload() -{ -if pidof clash >/dev/null; then - remove_mark 2>/dev/null - yml_dns_change 2>/dev/null - rules 2>/dev/null - echo "Clash Reload Completed" -fi -} \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/backup.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/backup.sh deleted file mode 100755 index bd933ce626..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/backup.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -. /lib/functions.sh - -CURL_GROUP_CACHE="/usr/share/clashbackup/clash_gorup.json" -CURL_NOW_CACHE="/usr/share/clashbackup/clash_now.json" -CURL_CACHE="/usr/share/clashbackup/clash_curl.json" -HISTORY_PATH="/usr/share/clashbackup/history" -SECRET=$(uci get clash.config.dash_pass 2>/dev/null) -LAN_IP=$(uci get network.lan.ipaddr 2>/dev/null |awk -F '/' '{print $1}' 2>/dev/null) -PORT=$(uci get clash.config.dash_port 2>/dev/null) - -curl -m 5 --retry 2 -w %{http_code}"\n" -H "Authorization: Bearer ${SECRET}" -H "Content-Type:application/json" -X GET http://"$LAN_IP":"$PORT"/proxies > "$CURL_CACHE" 2>/dev/null -if [ "$(sed -n '$p' "$CURL_CACHE" 2>/dev/null)" = "200" ]; then - if [ ! -d /usr/share/clashbackup ];then - mkdir -p /usr/share/clashbackup 2>/dev/null - fi - cat "$CURL_CACHE" |jsonfilter -e '@["proxies"][@.type="Selector"]["name"]' > "$CURL_GROUP_CACHE" 2>/dev/null - cat "$CURL_CACHE" |jsonfilter -e '@["proxies"][@.type="Selector"]["now"]' > "$CURL_NOW_CACHE" 2>/dev/null - awk 'NR==FNR{a[i]=$0;i++}NR>FNR{print a[j]"#*#"$0;j++}' "$CURL_GROUP_CACHE" "$CURL_NOW_CACHE" > "$HISTORY_PATH" 2>/dev/null -fi -rm -rf /usr/share/clashbackup/clash_*.json 2>/dev/null diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_clashtun_core_version.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_clashtun_core_version.sh deleted file mode 100755 index 5d06f7c210..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_clashtun_core_version.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -new_clashtun_core_version=`curl -sL "https://github.com/frainzy1477/clashtun/tags"| grep "/frainzy1477/clashtun/releases/"| head -n 1| awk -F "/tag/" '{print $2}'| sed 's/\">//'` -if [ "$?" -eq "0" ]; then -rm -rf /usr/share/clash/new_clashtun_core_version -if [ $new_clashtun_core_version ]; then -echo $new_clashtun_core_version > /usr/share/clash/new_clashtun_core_version 2>&1 & >/dev/null -elif [ $new_clashtun_core_version =="" ]; then -echo 0 > /usr/share/clash/new_clashtun_core_version 2>&1 & >/dev/null -fi -fi - - diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_core_version.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_core_version.sh deleted file mode 100755 index 74d968f579..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_core_version.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -new_core_version=`curl -sL "https://github.com/frainzy1477/clash_dev/tags"| grep "/frainzy1477/clash_dev/releases/"| head -n 1| awk -F "/tag/" '{print $2}'| sed 's/\">//'` -if [ "$?" -eq "0" ]; then -rm -rf /usr/share/clash/new_core_version -if [ $new_core_version ]; then -echo $new_core_version > /usr/share/clash/new_core_version 2>&1 & >/dev/null -elif [ $new_core_version =="" ]; then -echo 0 > /usr/share/clash/new_core_version 2>&1 & >/dev/null -fi -fi - diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_dtun_core_version.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_dtun_core_version.sh deleted file mode 100755 index 513650f0c8..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_dtun_core_version.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -new_clashdtun_core_version=`curl -sL "https://github.com/frainzy1477/clashdtun/tags"| grep "/frainzy1477/clashdtun/releases/"| head -n 1| awk -F "/tag/" '{print $2}'| sed 's/\">//'` -sleep 2 -if [ "$?" -eq "0" ]; then -rm -rf /usr/share/clash/new_clashdtun_core_version -if [ $new_clashdtun_core_version ]; then -echo $new_clashdtun_core_version > /usr/share/clash/new_clashdtun_core_version 2>&1 & >/dev/null -elif [ $new_clashdtun_core_version =="" ]; then -echo 0 > /usr/share/clash/new_clashdtun_core_version 2>&1 & >/dev/null -fi -fi diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_luci_version.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_luci_version.sh deleted file mode 100755 index e3a2699085..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/check_luci_version.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -new_version=`curl -sL "https://github.com/frainzy1477/luci-app-clash/tags"| grep "/frainzy1477/luci-app-clash/releases/"| head -n 1| awk -F "/tag/" '{print $2}'| sed 's/\">//'` -if [ "$?" -eq "0" ]; then -rm -rf /usr/share/clash/new_luci_version -if [ $new_version ]; then -echo $new_version > /usr/share/clash/new_luci_version 2>&1 & >/dev/null -elif [ $new_version =="" ]; then -echo 0 > /usr/share/clash/new_luci_version 2>&1 & >/dev/null -fi -fi - \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/china_ip.txt b/package/ntlf9t/luci-app-clash/root/usr/share/clash/china_ip.txt deleted file mode 100644 index 4acc39721e..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/china_ip.txt +++ /dev/null @@ -1,8492 +0,0 @@ -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.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 -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.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.124.0/22 -43.225.140.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.229.40.0/22 -43.229.48.0/22 -43.229.56.0/22 -43.229.96.0/22 -43.229.120.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.84.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.196.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.236.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.196.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/22 -43.242.20.0/22 -43.242.24.0/22 -43.242.28.0/22 -43.242.44.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.24.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.168.0/22 -43.243.180.0/22 -43.243.188.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.212.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.8.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.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.40.0/22 -43.252.48.0/22 -43.252.56.0/22 -43.252.224.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.108.0/22 -43.255.144.0/22 -43.255.168.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.12.0/22 -45.114.32.0/22 -45.114.40.0/22 -45.114.52.0/22 -45.114.96.0/22 -45.114.104.0/22 -45.114.108.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.220.0/22 -45.120.240.0/22 -45.121.20.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.12.0/22 -45.125.16.0/22 -45.125.24.0/22 -45.125.28.0/22 -45.125.32.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.104.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.96.0/22 -45.127.116.0/22 -45.127.124.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.92.0/22 -45.249.112.0/22 -45.249.180.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.60.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.253.248.0/22 -45.253.252.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 -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.156.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.191.240.0/20 -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/20 -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.44.0.0/14 -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/14 -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.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.4.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.192.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.68.0/22 -103.12.92.0/22 -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.220.0/22 -103.13.244.0/22 -103.14.32.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.192.0/22 -103.18.208.0/22 -103.18.212.0/22 -103.18.224.0/22 -103.19.0.0/22 -103.19.12.0/22 -103.19.40.0/22 -103.19.44.0/22 -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.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.248.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.208.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.128.0/22 -103.29.132.0/22 -103.29.136.0/22 -103.30.20.0/22 -103.30.96.0/22 -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.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.200.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.0.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.124.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/22 -103.37.220.0/22 -103.37.248.0/22 -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.38.252.0/22 -103.39.16.0/22 -103.39.64.0/22 -103.39.88.0/22 -103.39.100.0/22 -103.39.104.0/22 -103.39.108.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.100.0/22 -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.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.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.88.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.144.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.92.0/22 -103.49.96.0/22 -103.49.108.0/22 -103.49.128.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.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.216.0/22 -103.53.236.0/22 -103.53.248.0/22 -103.54.8.0/22 -103.54.48.0/22 -103.54.60.0/22 -103.54.160.0/22 -103.54.164.0/22 -103.54.212.0/22 -103.54.240.0/22 -103.55.24.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.52.0/22 -103.56.56.0/22 -103.56.60.0/22 -103.56.72.0/22 -103.56.76.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.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.184.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.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.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.116.0/22 -103.69.132.0/22 -103.69.152.0/22 -103.69.212.0/22 -103.70.8.0/22 -103.70.148.0/22 -103.70.184.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.32.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.144.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.88.0/22 -103.73.96.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.16.0/22 -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.84.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.52.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.120.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.240.0/22 -103.80.24.0/22 -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.92.0/22 -103.84.108.0/22 -103.84.136.0/22 -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.224.0/22 -103.86.28.0/22 -103.86.32.0/22 -103.86.44.0/22 -103.86.60.0/22 -103.86.68.0/22 -103.86.80.0/22 -103.86.84.0/22 -103.86.88.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.72.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.100.0/22 -103.88.164.0/22 -103.88.176.0/22 -103.88.184.0/22 -103.88.188.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.52.0/22 -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.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.219.0/24 -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.128.0/24 -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.76.0/22 -103.93.84.0/22 -103.93.121.0/24 -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.180.0/22 -103.94.200.0/22 -103.95.28.0/22 -103.95.52.0/22 -103.95.64.0/22 -103.95.68.0/22 -103.95.88.0/22 -103.95.92.0/22 -103.95.116.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.207.0/24 -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.80.0/22 -103.96.124.0/22 -103.96.136.0/22 -103.96.140.0/24 -103.96.148.0/22 -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.97.8.0/22 -103.97.12.0/22 -103.97.16.0/22 -103.97.20.0/22 -103.97.24.0/22 -103.97.28.0/22 -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.224.0/22 -103.97.228.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.140.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.4.0/22 -103.101.8.0/22 -103.101.12.0/22 -103.101.28.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.153.0/24 -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.68.0/22 -103.103.72.0/22 -103.103.176.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/22 -103.103.228.0/22 -103.103.232.0/22 -103.103.248.0/22 -103.103.252.0/22 -103.104.0.0/22 -103.104.4.0/22 -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.168.0/22 -103.104.172.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.56.0/22 -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.188.0/22 -103.106.196.0/22 -103.106.202.0/23 -103.106.212.0/22 -103.106.244.0/22 -103.106.252.0/22 -103.107.0.0/22 -103.107.8.0/24 -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.64.0/22 -103.108.160.0/22 -103.108.164.0/22 -103.108.184.0/23 -103.108.188.0/23 -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.108.251.0/24 -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.32.0/22 -103.110.80.0/23 -103.110.92.0/22 -103.110.100.0/22 -103.110.116.0/22 -103.110.127.0/24 -103.110.128.0/23 -103.110.131.0/24 -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.38.0/23 -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.96.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.112.208.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.204.0/23 -103.115.248.0/22 -103.116.20.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.132.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.132.0/22 -103.117.136.0/22 -103.117.188.0/22 -103.117.220.0/22 -103.118.19.0/24 -103.118.36.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.44.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.76.0/24 -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.160.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.126.241.0/24 -103.129.52.0/22 -103.130.132.0/22 -103.130.152.0/24 -103.130.160.0/22 -103.130.228.0/22 -103.131.20.0/22 -103.131.36.0/22 -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.60.0/22 -103.132.64.0/22 -103.132.68.0/22 -103.132.72.0/22 -103.132.76.0/22 -103.132.80.0/22 -103.132.104.0/22 -103.132.108.0/22 -103.132.112.0/22 -103.132.116.0/22 -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.12.0/24 -103.134.196.0/22 -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.149.0/24 -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.246.0/23 -103.138.248.0/23 -103.139.0.0/23 -103.139.2.0/23 -103.139.22.0/23 -103.139.113.0/24 -103.139.134.0/23 -103.139.136.0/23 -103.139.172.0/23 -103.139.200.0/23 -103.139.204.0/23 -103.139.212.0/23 -103.140.8.0/23 -103.140.14.0/23 -103.140.46.0/23 -103.140.70.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.194.0/23 -103.140.228.0/23 -103.141.10.0/23 -103.141.36.0/23 -103.141.58.0/23 -103.141.128.0/23 -103.141.186.0/23 -103.141.190.0/23 -103.141.242.0/23 -103.142.0.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.126.0/24 -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.31.0/24 -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.88.0/24 -103.144.108.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.40.0/23 -103.145.42.0/23 -103.145.60.0/23 -103.145.72.0/23 -103.145.80.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.122.0/23 -103.145.188.0/23 -103.145.190.0/23 -103.146.6.0/23 -103.146.72.0/23 -103.146.88.0/23 -103.146.90.0/23 -103.146.124.0/23 -103.146.126.0/23 -103.146.138.0/23 -103.146.147.0/24 -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.147.211.0/24 -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.190.0/23 -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.24.0/23 -103.150.66.0/23 -103.150.72.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.124.0/22 -103.193.140.0/22 -103.193.144.0/22 -103.193.148.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.193.240.0/22 -103.194.16.0/22 -103.195.104.0/22 -103.195.112.0/22 -103.195.136.0/22 -103.195.148.0/22 -103.195.152.0/22 -103.195.160.0/22 -103.195.192.0/22 -103.196.60.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.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.200.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.28.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.52.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.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.108.0/22 -103.206.148.0/22 -103.207.48.0/22 -103.207.104.0/22 -103.207.164.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.208.148.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.0.0/22 -103.210.20.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.100.0/22 -103.211.156.0/22 -103.211.164.0/22 -103.211.192.0/22 -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.32.0/22 -103.212.44.0/22 -103.212.48.0/22 -103.212.84.0/22 -103.212.100.0/22 -103.212.104.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/22 -103.213.68.0/22 -103.213.72.0/22 -103.213.76.0/22 -103.213.80.0/22 -103.213.84.0/22 -103.213.88.0/22 -103.213.92.0/22 -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/22 -103.213.164.0/22 -103.213.168.0/22 -103.213.172.0/22 -103.213.176.0/22 -103.213.180.0/22 -103.213.184.0/22 -103.213.188.0/22 -103.213.248.0/22 -103.214.32.0/22 -103.214.48.0/22 -103.214.84.0/22 -103.214.168.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.104.0/22 -103.215.108.0/22 -103.215.116.0/22 -103.215.120.0/22 -103.215.140.0/22 -103.215.184.0/22 -103.215.228.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.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.0.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.184.0/22 -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.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.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.28.0/22 -103.228.88.0/22 -103.228.128.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.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.144.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.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.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.16.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.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.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.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.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.96.0/22 -103.239.152.0/22 -103.239.156.0/22 -103.239.176.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.72.0/22 -103.240.84.0/22 -103.240.124.0/22 -103.240.156.0/22 -103.240.172.0/22 -103.240.188.0/22 -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.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.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.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.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.220.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.36.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.236.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.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.91.192.0/19 -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.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.64.0/22 -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/16 -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.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.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.84.192.0/19 -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.66.176.0/22 -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.152.0/22 -116.193.164.0/22 -116.193.176.0/21 -116.194.0.0/15 -116.196.0.0/16 -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.204.168.0/22 -116.204.216.0/22 -116.204.232.0/22 -116.204.236.0/22 -116.204.244.0/22 -116.205.0.0/16 -116.206.92.0/22 -116.206.176.0/22 -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/17 -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.107.180.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.52.0/22 -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/15 -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/14 -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.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/16 -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.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.108.0/22 -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/14 -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.208.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/16 -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 -144.0.0.0/16 -144.7.0.0/16 -144.12.0.0/16 -144.48.8.0/22 -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 -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.216.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.228.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.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.18.0.0/16 -157.61.0.0/16 -157.119.0.0/22 -157.119.8.0/22 -157.119.12.0/22 -157.119.16.0/22 -157.119.28.0/22 -157.119.68.0/22 -157.119.112.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 -159.75.0.0/16 -159.226.0.0/16 -160.19.208.0/22 -160.19.212.0/22 -160.19.216.0/22 -160.20.48.0/22 -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.238.64.0/22 -161.189.0.0/16 -161.207.0.0/16 -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.220.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 -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.176.192.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.149.236.0/22 -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.32.0/22 -182.255.36.0/22 -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 -185.203.36.0/22 -188.131.128.0/17 -192.51.188.0/24 -192.55.46.0/24 -192.55.68.0/22 -192.102.204.0/23 -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 -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.3.134.0/24 -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.19.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.138.0/24 -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.160.0/23 -202.38.164.0/22 -202.38.168.0/23 -202.38.170.0/24 -202.38.171.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.52.144.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.101.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.232.0/22 -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.0.0/22 -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/20 -202.91.0.0/22 -202.91.36.0/22 -202.91.96.0/20 -202.91.128.0/22 -202.91.176.0/20 -202.91.224.0/19 -202.92.0.0/22 -202.92.8.0/21 -202.92.48.0/20 -202.92.252.0/22 -202.93.0.0/22 -202.93.252.0/22 -202.94.68.0/24 -202.94.74.0/24 -202.94.81.0/24 -202.94.92.0/22 -202.95.240.0/21 -202.95.252.0/22 -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.128.0/24 -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.160.0/21 -202.127.192.0/23 -202.127.194.0/23 -202.127.196.0/22 -202.127.200.0/21 -202.127.208.0/24 -202.127.209.0/24 -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.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.100.0/22 -203.88.192.0/19 -203.89.0.0/22 -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.0.0/22 -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.232.0/22 -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.0.0/20 -203.208.16.0/22 -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.0.0/20 -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/16 -210.76.0.0/19 -210.76.32.0/19 -210.76.64.0/18 -210.76.128.0/17 -210.77.0.0/16 -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.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/16 -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/14 -211.160.0.0/14 -211.164.0.0/14 -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/15 -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/15 -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.122.0.0/15 -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/20 -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 diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/chinaipset.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/chinaipset.sh deleted file mode 100755 index a4d9dc5cd8..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/chinaipset.sh +++ /dev/null @@ -1,6 +0,0 @@ -echo "create china hash:net family inet hashsize 1024 maxelem 65536" > /tmp/china.ipset -awk '!/^$/&&!/^#/{printf("add china %s'" "'\n",$0)}' /usr/share/clash/china_ip.txt >> /tmp/china.ipset -ipset -! flush china -ipset -! restore < /tmp/china.ipset 2>/dev/null -rm -f /tmp/china.ipset - diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash-watchdog.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash-watchdog.sh deleted file mode 100755 index 6fb93110fa..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash-watchdog.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -enable=$(uci get clash.config.enable 2>/dev/null) -if [ "${enable}" -eq 1 ];then - if ! pidof clash>/dev/null; then - /etc/init.d/clash restart 2>&1 & - fi -fi - - - - - diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash.sh deleted file mode 100755 index b551470f32..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash /etc/rc.common - -clash_url=$(uci get clash.config.clash_url 2>/dev/null) -ssr_url=$(uci get clash.config.ssr_url 2>/dev/null) -v2_url=$(uci get clash.config.v2_url 2>/dev/null) - -config_name=$(uci get clash.config.config_name 2>/dev/null) -subtype=$(uci get clash.config.subcri 2>/dev/null) -REAL_LOG="/usr/share/clash/clash_real.txt" -lang=$(uci get luci.main.lang 2>/dev/null) -CONFIG_YAML="/usr/share/clash/config/sub/${config_name}.yaml" - -if [ $config_name == "" ] || [ -z $config_name ];then - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Tag Your Config" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "标记您的配置" >$REAL_LOG - fi - sleep 5 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - -fi - - -if [ ! -f "/usr/share/clashbackup/confit_list.conf" ];then - touch /usr/share/clashbackup/confit_list.conf -fi - - -check_name=$(grep -F "${config_name}.yaml" "/usr/share/clashbackup/confit_list.conf") - - -if [ ! -z $check_name ];then - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Config with same name exist, please rename and download again" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "已存在同名配置,请重命名名配置重新下载" >$REAL_LOG - fi - sleep 5 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - - -else - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Downloading Configuration..." >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "开始下载配置" >$REAL_LOG - fi - sleep 1 - - if [ "$subtype" = "clash" ];then - wget -c4 --no-check-certificate --user-agent="Clash/OpenWRT" "$clash_url" -O 2>&1 >1 $CONFIG_YAML - if [ "$?" -eq "0" ]; then - echo "${config_name}.yaml#$clash_url#$subtype" >>/usr/share/clashbackup/confit_list.conf - fi - fi - - if [ "$subtype" = "ssr2clash" ];then - wget -c4 --no-check-certificate --user-agent="Clash/OpenWRT" "https://gfwsb.114514.best/sub?target=clashr&url=$ssr_url" -O 2>&1 >1 $CONFIG_YAML - if [ "$?" -eq "0" ]; then - echo "${config_name}.yaml#$ssr_url#$subtype" >>/usr/share/clashbackup/confit_list.conf - CONFIG_YAMLL="/tmp/conf" - da_password=$(uci get clash.config.dash_pass 2>/dev/null) - redir_port=$(uci get clash.config.redir_port 2>/dev/null) - http_port=$(uci get clash.config.http_port 2>/dev/null) - socks_port=$(uci get clash.config.socks_port 2>/dev/null) - dash_port=$(uci get clash.config.dash_port 2>/dev/null) - bind_addr=$(uci get clash.config.bind_addr 2>/dev/null) - allow_lan=$(uci get clash.config.allow_lan 2>/dev/null) - log_level=$(uci get clash.config.level 2>/dev/null) - p_mode=$(uci get clash.config.p_mode 2>/dev/null) - sed -i "/^Proxy:/i\#clash-openwrt" $CONFIG_YAML 2>/dev/null - sed -i '1,/#clash-openwrt/d' $CONFIG_YAML 2>/dev/null - - cat /usr/share/clash/dns.yaml $CONFIG_YAML > $CONFIG_YAMLL 2>/dev/null - mv $CONFIG_YAMLL $CONFIG_YAML 2>/dev/null - - sed -i "1i\#****CLASH-CONFIG-START****#" $CONFIG_YAML 2>/dev/null - sed -i "2i\port: ${http_port}" $CONFIG_YAML 2>/dev/null - sed -i "/port: ${http_port}/a\socks-port: ${socks_port}" $CONFIG_YAML 2>/dev/null - sed -i "/socks-port: ${socks_port}/a\redir-port: ${redir_port}" $CONFIG_YAML 2>/dev/null - sed -i "/redir-port: ${redir_port}/a\allow-lan: ${allow_lan}" $CONFIG_YAML 2>/dev/null - if [ $allow_lan == "true" ]; then - sed -i "/allow-lan: ${allow_lan}/a\bind-address: \"${bind_addr}\"" $CONFIG_YAML 2>/dev/null - sed -i "/bind-address: \"${bind_addr}\"/a\mode: ${p_mode}" $CONFIG_YAML 2>/dev/null - sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $CONFIG_YAML 2>/dev/null - sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_YAML 2>/dev/null - sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_YAML 2>/dev/null - sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $CONFIG_YAML 2>/dev/null - - else - sed -i "/allow-lan: ${allow_lan}/a\mode: Rule" $CONFIG_YAML 2>/dev/null - sed -i "/mode: Rule/a\log-level: ${log_level}" $CONFIG_YAML 2>/dev/null - sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_YAML 2>/dev/null - sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_YAML 2>/dev/null - sed -i "/secret: \"${da_password}\"/a\external-ui: \"/usr/share/clash/dashboard\"" $CONFIG_YAML 2>/dev/null - fi - sleep 1 - - fi - fi - - if [ "$subtype" = "v2clash" ];then - wget -c4 --no-check-certificate --user-agent="Clash/OpenWRT" "https://tgbot.lbyczf.com/v2rayn2clash?url=$v2_url" -O 2>&1 >1 $CONFIG_YAML - if [ "$?" -eq "0" ]; then - echo "${config_name}.yaml#$v2_url#$subtype" >>/usr/share/clashbackup/confit_list.conf - fi - fi - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Downloading Configuration Completed" >$REAL_LOG - sleep 2 - echo "Clash for OpenWRT" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "下载配置完成" >$REAL_LOG - sleep 2 - echo "Clash for OpenWRT" >$REAL_LOG - fi - -fi diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash.txt b/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash.txt deleted file mode 100644 index 8b13789179..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash_game_rule.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash_game_rule.sh deleted file mode 100755 index bace28b64d..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash_game_rule.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash /etc/rc.common -. /lib/functions.sh - - RULE_FILE_NAME="$1" - RULE_FILE_ENNAME=$(grep -F $RULE_FILE_NAME /usr/share/clash/rules/rules.list |awk -F ',' '{print $3}' 2>/dev/null) - if [ ! -z "$RULE_FILE_ENNAME" ]; then - DOWNLOAD_PATH=$(grep -F $RULE_FILE_NAME /usr/share/clash/rules/rules.list |awk -F ',' '{print $2}' 2>/dev/null) - else - DOWNLOAD_PATH=$RULE_FILE_NAME - fi - RULE_FILE_DIR="/usr/share/clash/rules/g_rules/$RULE_FILE_NAME" - TMP_RULE_DIR="/tmp/$RULE_FILE_NAME" - LOG_FILE="/usr/share/clash/clash.txt" - REAL_LOG="/usr/share/clash/clash_real.txt" - - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Updating 【$RULE_FILE_NAME】 Rule..." >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "开始下载【$RULE_FILE_NAME】规则..." >$REAL_LOG - fi - - wget --no-check-certificate -c4 https://raw.githubusercontent.com/FQrabbit/SSTap-Rule/master/rules/"$DOWNLOAD_PATH" -O 2>&1 >1 "$TMP_RULE_DIR" - - if [ "$?" -eq "0" ] && [ "$(ls -l $TMP_RULE_DIR |awk '{print $5}')" -ne 0 ]; then - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "【$RULE_FILE_NAME】 Downloaded successfully. Checking whether the rule version is updated.." >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "【$RULE_FILE_NAME】规则下载成功,检查规则版本是否更新..." >$REAL_LOG - fi - - cmp -s $TMP_RULE_DIR $RULE_FILE_DIR - if [ "$?" -ne "0" ]; then - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Rule version has been updated. Start to replace the old rule version.." >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "规则版本有更新,开始替换旧规则版本..." >$REAL_LOG - fi - mv $TMP_RULE_DIR $RULE_FILE_DIR >/dev/null 2>&1 - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Delete download cache" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "删除下载缓存..." >$REAL_LOG - fi - - rm -rf $TMP_RULE_DIR >/dev/null 2>&1 - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Rule File【$RULE_FILE_NAME】 Download Successful" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "【$RULE_FILE_NAME】规则更新成功!" >$REAL_LOG - fi - sleep 2 - echo "Clash for OpenWRT" >$REAL_LOG - else - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Updated Rule File【$RULE_FILE_NAME】 No Change, Do Nothing" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "【$RULE_FILE_NAME】规则版本没有更新,停止继续操作..." >$REAL_LOG - fi - - rm -rf $TMP_RULE_DIR >/dev/null 2>&1 - sleep 2 - echo "Clash for OpenWRT" >$REAL_LOG - fi - else - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Rule File【$RULE_FILE_NAME】 Download Error" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "【$RULE_FILE_NAME】规则下载失败,请检查网络或稍后再试!" >$REAL_LOG - fi - rm -rf $TMP_RULE_DIR >/dev/null 2>&1 - sleep 2 - echo "Clash for OpenWRT" >$REAL_LOG - fi diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash_real.txt b/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash_real.txt deleted file mode 100644 index 3b23bce1c0..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash_real.txt +++ /dev/null @@ -1 +0,0 @@ -Clash for OpenWRT diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/core_download.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/core_download.sh deleted file mode 100755 index bf0ba1b36e..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/core_download.sh +++ /dev/null @@ -1,175 +0,0 @@ -#!/bin/sh -LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") -LOG_FILE="/tmp/clash_update.txt" -MODELTYPE=$(uci get clash.config.download_core 2>/dev/null) -CORETYPE=$(uci get clash.config.dcore 2>/dev/null) -CORE=$(uci get clash.config.core 2>/dev/null) -lang=$(uci get luci.main.lang 2>/dev/null) -if [ -f /tmp/clash.tar.gz ];then -rm -rf /tmp/clash.tar.gz >/dev/null 2>&1 -fi - echo '' >/tmp/clash_update.txt 2>/dev/null - -if [ -f /usr/share/clash/core_down_complete ];then - rm -rf /usr/share/clash/core_down_complete 2>/dev/null -fi - - - -if [ $CORETYPE -eq 4 ];then -if [ -f /usr/share/clash/download_dtun_version ];then -rm -rf /usr/share/clash/download_dtun_version -fi - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - 正在检查最新版本。。" >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - Checking latest version.." >$LOG_FILE - fi -new_clashdtun_core_version=`wget -qO- "https://github.com/frainzy1477/clashdtun/tags"| grep "/frainzy1477/clashdtun/releases/"| head -n 1| awk -F "/tag/" '{print $2}'| sed 's/\">//'` - -if [ $new_clashdtun_core_version ]; then -echo $new_clashdtun_core_version > /usr/share/clash/download_dtun_version 2>&1 & >/dev/null -elif [ $new_clashdtun_core_version =="" ]; then -echo 0 > /usr/share/clash/download_dtun_version 2>&1 & >/dev/null -fi -sleep 5 -if [ -f /usr/share/clash/download_dtun_version ];then -CLASHDTUNC=$(sed -n 1p /usr/share/clash/download_dtun_version 2>/dev/null) -fi -fi - -if [ $CORETYPE -eq 3 ];then -if [ -f /usr/share/clash/download_tun_version ];then -rm -rf /usr/share/clash/download_tun_version -fi - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - 正在检查最新版本。。" >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - Checking latest version.." >$LOG_FILE - fi -new_clashtun_core_version=`wget -qO- "https://github.com/frainzy1477/clashtun/tags"| grep "/frainzy1477/clashtun/releases/"| head -n 1| awk -F "/tag/" '{print $2}'| sed 's/\">//'` - -if [ $new_clashtun_core_version ]; then -echo $new_clashtun_core_version > /usr/share/clash/download_tun_version 2>&1 & >/dev/null -elif [ $new_clashtun_core_version =="" ]; then -echo 0 > /usr/share/clash/download_tun_version 2>&1 & >/dev/null -fi -sleep 5 -if [ -f /usr/share/clash/download_tun_version ];then -CLASHTUN=$(sed -n 1p /usr/share/clash/download_tun_version 2>/dev/null) -fi -fi - -if [ $CORETYPE -eq 1 ];then -if [ -f /usr/share/clash/download_core_version ];then -rm -rf /usr/share/clash/download_core_version -fi - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - 正在检查最新版本。。" >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - Checking latest version.." >$LOG_FILE - fi -new_clashr_core_version=`wget -qO- "https://github.com/frainzy1477/clash_dev/tags"| grep "/frainzy1477/clash_dev/releases/"| head -n 1| awk -F "/tag/" '{print $2}'| sed 's/\">//'` - -if [ $new_clashr_core_version ]; then -echo $new_clashr_core_version > /usr/share/clash/download_core_version 2>&1 & >/dev/null -elif [ $new_clashr_core_version =="" ]; then -echo 0 > /usr/share/clash/download_core_version 2>&1 & >/dev/null -fi -sleep 5 -if [ -f /usr/share/clash/download_core_version ];then -CLASHVER=$(sed -n 1p /usr/share/clash/download_core_version 2>/dev/null) -fi -fi - -sleep 2 - -update(){ - if [ -f /tmp/clash.gz ];then - rm -rf /tmp/clash.gz >/dev/null 2>&1 - fi - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - 开始下载 Clash 内核..." >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - Starting Clash Core download" >$LOG_FILE - fi - if [ $CORETYPE -eq 1 ];then - wget --no-check-certificate https://github.com/frainzy1477/clash_dev/releases/download/"$CLASHVER"/clash-"$MODELTYPE".gz -O 2>&1 >1 /tmp/clash.gz - elif [ $CORETYPE -eq 3 ];then - wget --no-check-certificate https://github.com/frainzy1477/clashtun/releases/download/"$CLASHTUN"/clash-"$MODELTYPE".gz -O 2>&1 >1 /tmp/clash.gz - elif [ $CORETYPE -eq 4 ];then - wget --no-check-certificate https://github.com/frainzy1477/clashdtun/releases/download/"$CLASHDTUNC"/clash-"$MODELTYPE".gz -O 2>&1 >1 /tmp/clash.gz - fi - - if [ "$?" -eq "0" ] && [ "$(ls -l /tmp/clash.gz |awk '{print int($5)}')" -ne 0 ]; then - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - 开始解压缩文件" >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - Beginning to unzip file" >$LOG_FILE - fi - gunzip /tmp/clash.gz >/dev/null 2>&1\ - && rm -rf /tmp/clash.gz >/dev/null 2>&1\ - && chmod 755 /tmp/clash\ - && chown root:root /tmp/clash - - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - 完成下载内核,正在更新..." >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - Successfully downloaded core, updating now..." >$LOG_FILE - fi - - if [ $CORETYPE -eq 1 ];then - rm -rf /etc/clash/clash >/dev/null 2>&1 - mv /tmp/clash /etc/clash/clash >/dev/null 2>&1 - rm -rf /usr/share/clash/core_version >/dev/null 2>&1 - mv /usr/share/clash/download_core_version /usr/share/clash/core_version >/dev/null 2>&1 - - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - Clash内核更新成功!" >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - Clash Core Update Successful" >$LOG_FILE - fi - - elif [ $CORETYPE -eq 3 ];then - rm -rf /etc/clash/clashtun/clash >/dev/null 2>&1 - mv /tmp/clash /etc/clash/clashtun/clash >/dev/null 2>&1 - rm -rf /usr/share/clash/tun_version >/dev/null 2>&1 - mv /usr/share/clash/download_tun_version /usr/share/clash/tun_version >/dev/null 2>&1 - tun=$(sed -n 1p /usr/share/clash/tun_version 2>/dev/null) - sed -i "s/${tun}/v${tun}/g" /usr/share/clash/tun_version 2>&1 - - - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - ClashTun内核更新成功!" >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - ClashTun Core Update Successful" >>$LOG_FILE - fi - - fi - - sleep 2 - touch /usr/share/clash/core_down_complete >/dev/null 2>&1 - sleep 2 - rm -rf /var/run/core_update >/dev/null 2>&1 - echo "" > /tmp/clash_update.txt >/dev/null 2>&1 - - else - if [ $lang == "zh_cn" ];then - echo " ${LOGTIME} - 核心程序下载失败,请检查网络或稍后再试!" >$LOG_FILE - elif [ $lang == "en" ] || [ $lang == "auto" ];then - echo " ${LOGTIME} - Core Update Error" >$LOG_FILE - fi - rm -rf /tmp/clash.tar.gz >/dev/null 2>&1 - echo "" > /tmp/clash_update.txt >/dev/null 2>&1 - fi - if pidof clash >/dev/null; then - if [ $CORETYPE == $CORE ];then - /etc/init.d/clash restart >/dev/null - fi - fi -} - -if [ $CORETYPE -eq 1 ] || [ $CORETYPE -eq 3 ] || [ $CORETYPE -eq 4 ]; then - update -fi - diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/clash_rule_provider.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/clash_rule_provider.sh deleted file mode 100644 index 777d486b8b..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/clash_rule_provider.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh - - RULE_FILE_NAME="$1" - - if [ -z "$(grep ",$RULE_FILE_NAME" /usr/share/clash/create/rule_provider.list 2>/dev/null)" ]; then - DOWNLOAD_PATH=$(grep -F "$RULE_FILE_NAME" /usr/share/clash/create/rule_provider.list |awk -F ',' '{print $3$4}' 2>/dev/null) - else - DOWNLOAD_PATH=$(grep -F ",$RULE_FILE_NAME" /usr/share/clash/create/rule_provider.list |awk -F ',' '{print $3$4}' 2>/dev/null) - fi - - RULE_FILE_DIR="/etc/clash/ruleprovider/$RULE_FILE_NAME" - TMP_RULE_DIR="/tmp/$RULE_FILE_NAME" - LOG_FILE="/usr/share/clash/clash.txt" - REAL_LOG="/usr/share/clash/clash_real.txt" - - url="https://raw.githubusercontent.com/$DOWNLOAD_PATH" - behavior=$(grep -F $RULE_FILE_NAME /usr/share/clash/create/rule_provider.list |awk -F ',' '{print $2}' 2>/dev/null) - namee=$(grep -F ",$RULE_FILE_NAME" /usr/share/clash/create/rule_provider.list |awk -F ',' '{print $4}' | awk -F '.' '{print $1}' 2>/dev/null) - path="./ruleprovider/"$RULE_FILE_NAME"" - - curl -sL --connect-timeout 5 --retry 2 https://raw.githubusercontent.com/"$DOWNLOAD_PATH" -o "$TMP_RULE_DIR" >/dev/null 2>&1 - - if [ "$?" -eq "0" ] && [ -s "$TMP_RULE_DIR" ] && [ -z "$(grep "404: Not Found" "$TMP_RULE_DIR")" ]; then - cmp -s $TMP_RULE_DIR $RULE_FILE_DIR - if [ "$?" -ne "0" ]; then - mv $TMP_RULE_DIR $RULE_FILE_DIR >/dev/null 2>&1\ - && rm -rf $TMP_RULE_DIR >/dev/null 2>&1 - name=clash - uci_name_tmp=$(uci add $name ruleprovider) - uci_set="uci -q set $name.$uci_name_tmp." - uci_add="uci -q add_list $name.$uci_name_tmp." - ${uci_set}type="http" - ${uci_set}name="$namee" - ${uci_set}path="$path" - ${uci_set}behavior="$behavior" - ${uci_set}url="$url" - ${uci_set}interval="86400" - uci commit clash - return 1 - - else - rm -rf $TMP_RULE_DIR >/dev/null 2>&1 - return 2 - fi - else - rm -rf $TMP_RULE_DIR >/dev/null 2>&1 - return 0 - fi diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/create.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/create.sh deleted file mode 100644 index 252ffd0e3b..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/create.sh +++ /dev/null @@ -1,1192 +0,0 @@ -#!/bin/bash /etc/rc.common -. /lib/functions.sh - - -RULE_PROVIDER="/tmp/rule_provider.yaml" -GROUP_FILE="/tmp/groups.yaml" - -SCRIPT="/usr/share/clash/create/script.yaml" -rule_providers=$(uci get clash.config.rule_providers 2>/dev/null) -CFG_FILE="/etc/config/clash" -config_name=$(uci get clash.config.name_tag 2>/dev/null) -lang=$(uci get luci.main.lang 2>/dev/null) -CONFIG_YAML="/usr/share/clash/config/custom/${config_name}.yaml" -check_name=$(grep -F "${config_name}.yaml" "/usr/share/clashbackup/create_list.conf") -REAL_LOG="/usr/share/clash/clash_real.txt" -same_tag=$(uci get clash.config.same_tag 2>/dev/null) -rcount=$( grep -c "config ruleprovider" $CFG_FILE 2>/dev/null) -create=$(uci get clash.config.provider_config 2>/dev/null) -SERVER_FILE="/tmp/servers.yaml" -Proxy_Group="/tmp/Proxy_Group" - -if [ "${create}" -eq 1 ];then - -create(){ - -if [ $config_name == "" ] || [ -z $config_name ];then - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Tag Your Config" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "标记您的配置" >$REAL_LOG - fi - sleep 5 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 - -fi - - -if [ ! -z $check_name ] && [ "${same_tag}" -eq 0 ];then - - if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Config with same name exist, please rename tag and create again" >$REAL_LOG - elif [ $lang == "zh_cn" ];then - echo "已存在同名配置,请重命名标记,重新创建配置" >$REAL_LOG - fi - sleep 5 - echo "Clash for OpenWRT" >$REAL_LOG - exit 0 -fi - - - -if [ -f $RULE_PROVIDER ];then - rm -rf $RULE_PROVIDER 2>/dev/null -fi - - -rule_set() -{ - - local section="$1" - config_get "name" "$section" "name" "" - config_get "type" "$section" "type" "" - config_get "behavior" "$section" "behavior" "" - config_get "path" "$section" "path" "" - config_get "url" "$section" "url" "" - config_get "interval" "$section" "interval" "" - config_get_bool "enabled" "$section" "enabled" "1" - - if [ "$enabled" = "0" ]; then - return - fi - - if [ "$path" != "./ruleprovider/$name.yaml" ] && [ "$type" = "http" ]; then - path="./ruleprovider/$name.yaml" - elif [ -z "$path" ]; then - return - fi - -cat >> "$RULE_PROVIDER" <<-EOF - $name: - type: $type - behavior: $behavior - path: $path -EOF - - - - - - if [ "$type" == "http" ]; then -cat >> "$RULE_PROVIDER" <<-EOF - url: $url - interval: $interval -EOF - fi -} - -if [ $rcount -gt 0 ];then - config_load clash - config_foreach rule_set "ruleprovider" -fi - -if [ -f $RULE_PROVIDER ];then - sed -i "1i\ " $RULE_PROVIDER 2>/dev/null - sed -i "2i\rule-providers:" $RULE_PROVIDER 2>/dev/null -fi - - -PROVIDER_FILE="/tmp/yaml_provider.yaml" -pcount=$( grep -c "config proxyprovider" $CFG_FILE 2>/dev/null) - -if [ -f $PROVIDER_FILE ];then - rm -rf $PROVIDER_FILE 2>/dev/null -fi - -yml_proxy_provider_set() -{ - local section="$1" - - config_get "type" "$section" "type" "" - config_get "name" "$section" "name" "" - config_get "path" "$section" "path" "" - config_get "provider_url" "$section" "provider_url" "" - config_get "provider_interval" "$section" "provider_interval" "" - config_get "health_check" "$section" "health_check" "" - config_get "health_check_url" "$section" "health_check_url" "" - config_get "health_check_interval" "$section" "health_check_interval" "" - config_get_bool "enabled" "$section" "enabled" "1" - - if [ "$enabled" = "0" ]; then - return - fi - - - if [ "$path" != "./proxyprovider/$name.yaml" ] && [ "$type" = "http" ]; then - path="./proxyprovider/$name.yaml" - elif [ -z "$path" ]; then - return - fi - - - if [ -z "$type" ]; then - return - fi - - if [ -z "$name" ]; then - return - fi - - - if [ -z "$health_check" ]; then - return - fi - - - echo "$name" >> /tmp/Proxy_Provider - -cat >> "$PROVIDER_FILE" <<-EOF - $name: - type: $type - path: $path -EOF - if [ ! -z "$provider_url" ]; then -cat >> "$PROVIDER_FILE" <<-EOF - url: $provider_url - interval: $provider_interval -EOF - fi -cat >> "$PROVIDER_FILE" <<-EOF - health-check: - enable: $health_check - url: $health_check_url - interval: $health_check_interval -EOF - -} - - -if [ $pcount -gt 0 ];then - config_load "clash" - config_foreach yml_proxy_provider_set "proxyprovider" -fi - -if [ -f $PROVIDER_FILE ];then - sed -i "1i\ " $PROVIDER_FILE 2>/dev/null - sed -i "2i\proxy-providers:" $PROVIDER_FILE 2>/dev/null - rm -rf /tmp/Proxy_Provider -fi - - -if [ -f $GROUP_FILE ];then - rm -rf $GROUP_FILE 2>/dev/null -fi - -set_groups() -{ - if [ -z "$1" ]; then - return - fi - - if [ "$1" = "$3" ]; then - set_group=1 - echo " - \"${2}\"" >>$GROUP_FILE - fi - -} - - -set_other_groups() -{ - set_group=1 - if [ "${1}" = "DIRECT" ]||[ "${1}" = "REJECT" ];then - echo " - ${1}" >>$GROUP_FILE 2>/dev/null - elif [ "${1}" = "ALL" ];then - cat $Proxy_Group >> $GROUP_FILE 2>/dev/null - else - echo " - \"${1}\"" >>$GROUP_FILE 2>/dev/null - fi - -} - -set_proxy_provider() -{ - local section="$1" - config_get "name" "$section" "name" "" - config_list_foreach "$section" "pgroups" set_provider_groups "$name" "$2" - -} - -set_provider_groups() -{ - if [ -z "$1" ]; then - return - fi - - if [ "$1" = "$3" ]; then - set_proxy_provider=1 - echo " - ${2}" >>$GROUP_FILE - fi - -} - - - -scount=$( grep -c "config servers" $CFG_FILE 2>/dev/null) - -servers_set() -{ - local section="$1" - config_get "type" "$section" "type" "" - config_get "name" "$section" "name" "" - config_get "server" "$section" "server" "" - config_get "port" "$section" "port" "" - config_get "cipher" "$section" "cipher" "" - config_get "password" "$section" "password" "" - config_get "securitys" "$section" "securitys" "" - config_get "udp" "$section" "udp" "" - config_get "obfs" "$section" "obfs" "" - config_get "obfs_vmess" "$section" "obfs_vmess" "" - config_get "host" "$section" "host" "" - config_get "custom" "$section" "custom" "" - config_get "tls" "$section" "tls" "" - config_get "tls_custom" "$section" "tls_custom" "" - config_get "skip_cert_verify" "$section" "skip_cert_verify" "" - config_get "path" "$section" "path" "" - config_get "alterId" "$section" "alterId" "" - config_get "uuid" "$section" "uuid" "" - config_get "auth_name" "$section" "auth_name" "" - config_get "auth_pass" "$section" "auth_pass" "" - config_get "mux" "$section" "mux" "" - config_get "protocol" "$section" "protocol" "" - config_get "protocolparam" "$section" "protocolparam" "" - config_get "obfsparam" "$section" "obfsparam" "" - config_get "obfs_ssr" "$section" "obfs_ssr" "" - config_get "cipher_ssr" "$section" "cipher_ssr" "" - config_get "psk" "$section" "psk" "" - config_get "obfs_snell" "$section" "obfs_snell" "" - config_get "sni" "$section" "sni" "" - config_get "alpn_h2" "$section" "alpn_h2" "" - config_get "alpn_http" "$section" "alpn_http" "" - config_get "http_path" "$section" "http_path" "" - config_get "keep_alive" "$section" "keep_alive" "" - config_get "servername" "$section" "servername" "" - config_get_bool "enabled" "$section" "enabled" "1" - - if [ "$enabled" = "0" ]; then - return - fi - - - if [ -z "$type" ]; then - return - fi - - if [ -z "$server" ]; then - return - fi - - if [ ! -z "$mux" ]; then - muxx="mux: $mux" - fi - if [ "$obfs_snell" = "none" ]; then - obfs_snell="" - fi - - if [ -z "$name" ]; then - name="Server" - fi - - if [ -z "$port" ]; then - return - fi - - if [ ! -z "$udp" ] && [ "$obfs" = "none" ] && [ "$type" = "ss" ]; then - udpp=", udp: $udp" - fi - - if [ ! -z "$udp" ] && [ "$type" != "trojan" ] && [ "$type" != "ss" ]; then - udpp=", udp: $udp" - fi - - if [ "$obfs" != "none" ] && [ "$type" = "ss" ]; then - if [ "$obfs" = "websocket" ]; then - obfss="plugin: v2ray-plugin" - else - obfss="plugin: obfs" - fi - fi - - if [ "$obfs_vmess" = "websocket" ]; then - obfs_vmess="network: ws" - fi - - if [ "$obfs_vmess" = "http" ]; then - obfs_vmess="network: http" - fi - - if [ ! -z "$custom" ] && [ "$type" = "vmess" ]; then - custom="Host: $custom" - fi - - if [ ! -z "$path" ]; then - if [ "$type" != "vmess" ]; then - path="path: '$path'" - elif [ "$obfs_vmess" = "network: ws" ]; then - path="ws-path: $path" - fi - fi - - if [ ! -z "$auth_name" ] && [ ! -z "$auth_pass" ]; then - auth_psk=", username: $auth_name, password: $auth_pass" - fi - - - if [ -z "$password" ]; then - if [ "$type" = "ss" ] || [ "$type" = "trojan" ]; then - return - fi - fi - - - if [ "$type" = "ss" ] && [ "$obfs" = " " ]; then - echo "- { name: \"$name\", type: $type, server: $server, port: $port, cipher: $cipher, password: "$password"$udpp }" >>$SERVER_FILE - elif [ "$type" = "ss" ] && [ "$obfs" = "websocket" ] || [ "$obfs" = "tls" ] ||[ "$obfs" = "http" ]; then -cat >> "$SERVER_FILE" <<-EOF -- name: "$name" - type: $type - server: $server - port: $port - cipher: $cipher - password: "$password" -EOF - if [ ! -z "$udp" ]; then -cat >> "$SERVER_FILE" <<-EOF - udp: $udp -EOF - fi - if [ ! -z "$obfss" ]; then -cat >> "$SERVER_FILE" <<-EOF - $obfss - plugin-opts: - mode: $obfs -EOF - fi - - if [ "$host" ]; then -cat >> "$SERVER_FILE" <<-EOF - host: $host -EOF - fi - - if [ "$tls_custom" = "true" ] && [ "$type" = "ss" ]; then -cat >> "$SERVER_FILE" <<-EOF - tls: true -EOF - fi - if [ "$skip_cert_verify" = "true" ] && [ "$type" = "ss" ]; then -cat >> "$SERVER_FILE" <<-EOF - skip-cert-verify: true -EOF - fi - - if [ ! -z "$path" ]; then -cat >> "$SERVER_FILE" <<-EOF - $paths -EOF - fi - - if [ "$mux" = "true" ]; then -cat >> "$SERVER_FILE" <<-EOF - $muxx -EOF - fi - - if [ ! -z "$custom" ]; then -cat >> "$SERVER_FILE" <<-EOF - headers: - custom: $custom -EOF - fi - fi - -if [ "$type" = "trojan" ]; then -cat >> "$SERVER_FILE" <<-EOF -- name: "$name" - type: $type - server: $server - port: $port - password: "$password" -EOF -if [ ! -z "$udp" ]; then -cat >> "$SERVER_FILE" <<-EOF - udp: $udp -EOF -fi -if [ ! -z "$sni" ]; then -cat >> "$SERVER_FILE" <<-EOF - sni: $sni -EOF -fi - -if [ "$alpn_h2" == "1" ] || [ "$alpn_http" == "1" ]; then -cat >> "$SERVER_FILE" <<-EOF - alpn: -EOF -if [ "$alpn_h2" == "1" ]; then -cat >> "$SERVER_FILE" <<-EOF - - h2 -EOF -fi -if [ "$alpn_http" == "1" ]; then -cat >> "$SERVER_FILE" <<-EOF - - http/1.1 -EOF -fi - -fi - -if [ "$skip_cert_verify" = "true" ] && [ "$type" = "trojan" ]; then -cat >> "$SERVER_FILE" <<-EOF - skip-cert-verify: true -EOF - fi -fi - -#vmess - if [ "$type" = "vmess" ]; then -cat >> "$SERVER_FILE" <<-EOF -- name: "$name" - type: $type - server: $server - port: $port - uuid: $uuid - alterId: $alterId - cipher: $securitys -EOF - if [ ! -z "$udp" ]; then -cat >> "$SERVER_FILE" <<-EOF - udp: $udp -EOF - fi - if [ "$tls" = "true" ]; then -cat >> "$SERVER_FILE" <<-EOF - tls: $tls -EOF - fi - if [ "$skip_cert_verify" = "true" ]; then -cat >> "$SERVER_FILE" <<-EOF - skip-cert-verify: $skip_cert_verify -EOF - fi - if [ ! -z "$servername" ] && [ "$tls" = "true" ]; then -cat >> "$SERVER_FILE" <<-EOF - servername: $servername -EOF -fi - if [ "$obfs_vmess" != "none" ]; then -cat >> "$SERVER_FILE" <<-EOF - $obfs_vmess -EOF - if [ ! -z "$path" ] && [ "$obfs_vmess" = "network: ws" ]; then -cat >> "$SERVER_FILE" <<-EOF - $path -EOF - fi - if [ ! -z "$custom" ] && [ "$obfs_vmess" = "network: ws" ]; then -cat >> "$SERVER_FILE" <<-EOF - ws-headers: - $custom -EOF - fi - if [ ! -z "$http_path" ] && [ "$obfs_vmess" = "network: http" ]; then -cat >> "$SERVER_FILE" <<-EOF - http-opts: - method: "GET" - path: -EOF - config_list_foreach "$section" "http_path" set_http_path - fi - if [ "$keep_alive" = "true" ] && [ "$obfs_vmess" = "network: http" ]; then -cat >> "$SERVER_FILE" <<-EOF - headers: - Connection: - - keep-alive -EOF - fi - fi - fi - -#socks5 - if [ "$type" = "socks5" ]; then -cat >> "$SERVER_FILE" <<-EOF -- name: "$name" - type: $type - server: $server - port: $port -EOF - if [ ! -z "$auth_name" ]; then -cat >> "$SERVER_FILE" <<-EOF - username: $auth_name -EOF - fi - if [ ! -z "$auth_pass" ]; then -cat >> "$SERVER_FILE" <<-EOF - password: $auth_pass -EOF - fi - if [ ! -z "$udp" ]; then -cat >> "$SERVER_FILE" <<-EOF - udp: $udp -EOF - fi - if [ "$skip_cert_verify" = "true" ]; then -cat >> "$SERVER_FILE" <<-EOF - skip-cert-verify: $skip_cert_verify -EOF - fi - if [ "$tls" = "true" ]; then -cat >> "$SERVER_FILE" <<-EOF - tls: $tls -EOF - fi - fi - -#http - if [ "$type" = "http" ]; then -cat >> "$SERVER_FILE" <<-EOF -- name: "$name" - type: $type - server: $server - port: $port -EOF - if [ ! -z "$auth_name" ]; then -cat >> "$SERVER_FILE" <<-EOF - username: $auth_name -EOF - fi - if [ ! -z "$auth_pass" ]; then -cat >> "$SERVER_FILE" <<-EOF - password: $auth_pass -EOF - fi - if [ "$skip_cert_verify" = "true" ]; then -cat >> "$SERVER_FILE" <<-EOF - skip-cert-verify: $skip_cert_verify -EOF - fi - if [ "$tls" = "true" ]; then -cat >> "$SERVER_FILE" <<-EOF - tls: $tls -EOF - fi - fi - - -#snell - if [ "$type" = "snell" ]; then -cat >> "$SERVER_FILE" <<-EOF -- name: "$name" - type: $type - server: $server - port: $port - psk: $psk -EOF - if [ "$obfs_snell" != "none" ] && [ ! -z "$host" ]; then -cat >> "$SERVER_FILE" <<-EOF - obfs-opts: - mode: $obfs_snell - host: $host -EOF - fi - fi - -if [ "$type" = "ssr" ]; then -cat >> "$SERVER_FILE" <<-EOF -- name: "$name" - type: $type - server: $server - port: $port - cipher: $cipher_ssr - password: "$password" - protocol: "$protocol" - protocol-param: "$protocolparam" - obfs: "$obfs_ssr" - obfs-param: "$obfsparam" -EOF - if [ ! -z "$udp" ]; then -cat >> "$SERVER_FILE" <<-EOF - udp: $udp -EOF - fi -fi - - -} - - -if [ $scount -gt 0 ];then -config_load clash -config_foreach servers_set "servers" -fi - -if [ ! -z "${scount}" ] || [ "${scount}" -ne 0 ];then - -sed -i "1i\ " $SERVER_FILE 2>/dev/null - -sed -i "2i\proxies:" $SERVER_FILE 2>/dev/null - -egrep '^ {0,}-' $SERVER_FILE |grep name: |awk -F 'name: ' '{print $2}' |sed 's/,.*//' >$Proxy_Group 2>&1 - -sed -i "s/^ \{0,\}/ - /" $Proxy_Group 2>/dev/null -fi - - -yml_servers_add() -{ - - local section="$1" - config_get "name" "$section" "name" "" - config_list_foreach "$section" "pgroups" set_groups "$name" "$2" - config_get "relay_groups" "$section" "relay_groups" "" -} - -yml_groups_set() -{ - - local section="$1" - config_get "type" "$section" "type" "" - config_get "name" "$section" "name" "" - config_get "old_name" "$section" "old_name" "" - config_get "test_url" "$section" "test_url" "" - config_get "test_interval" "$section" "test_interval" "" - config_get "other_group" "$section" "other_group" "" - config_get_bool "enabled" "$section" "enabled" "1" - - if [ "$enabled" = "0" ]; then - return - fi - - - if [ -z "$type" ]; then - return - fi - - if [ -z "$name" ]; then - return - fi - - echo "- name: $name" >>$GROUP_FILE 2>/dev/null - echo " type: $type" >>$GROUP_FILE 2>/dev/null - group_name="$name" - echo " proxies: " >>$GROUP_FILE - - set_group=0 - set_proxy_provider=0 - - - - config_list_foreach "$section" "other_group" set_other_groups - - if [ "$( grep -c "config proxyprovider" $CFG_FILE )" -gt 0 ];then - - echo " use: $group_name" >>$GROUP_FILE - if [ "$type" != "relay" ]; then - config_foreach set_proxy_provider "proxyprovider" "$group_name" - fi - - if [ "$set_proxy_provider" -eq 1 ]; then - sed -i "/^ \{0,\}use: ${group_name}/c\ use:" $GROUP_FILE - else - sed -i "/use: ${group_name}/d" $GROUP_FILE - fi - - - if [ "$set_group" -eq 1 ]; then - sed -i "/^ \{0,\}proxies: ${group_name}/c\ proxies:" $GROUP_FILE - else - sed -i "/proxies: ${group_name}/d" $GROUP_FILE - fi - fi - - - [ ! -z "$test_url" ] && { - echo " url: $test_url" >>$GROUP_FILE 2>/dev/null - } - [ ! -z "$test_interval" ] && { - echo " interval: \"$test_interval\"" >>$GROUP_FILE 2>/dev/null - } -} - -gcount=$( grep -c "config pgroups" $CFG_FILE 2>/dev/null) -if [ $gcount -gt 0 ];then - config_load clash - config_foreach yml_groups_set "pgroups" -fi - - -if [ -f $GROUP_FILE ]; then - sed -i "1i\ " $GROUP_FILE 2>/dev/null - sed -i "2i\proxy-groups:" $GROUP_FILE 2>/dev/null -fi - - -RULE_FILE="/tmp/rules.yaml" -rucount=$( grep -c "config rules" $CFG_FILE 2>/dev/null) - -if [ -f $RULE_FILE ];then - rm -rf $RULE_FILE 2>/dev/null -fi - - -add_rules() -{ - local section="$1" - config_get "rulegroups" "$section" "rulegroups" "" - config_get "rulename" "$section" "rulename" "" - config_get "type" "$section" "type" "" - config_get "res" "$section" "res" "" - config_get "rulenamee" "$section" "rulenamee" "" - config_get_bool "enabled" "$section" "enabled" "1" - - if [ "$enabled" = "0" ]; then - return - fi - - if [ ! -z $rulename ];then - rulename=$rulename - elif [ ! -z $rulenamee ];then - rulename=$rulenamee - fi - - if [ "${res}" -eq 1 ];then - echo "- $type,$rulename,$rulegroups,no-resolve">>$RULE_FILE - elif [ "${type}" == "MATCH" ];then - echo "- $type,$rulegroups">>$RULE_FILE - else - echo "- $type,$rulename,$rulegroups">>$RULE_FILE - fi -} - -if [ $rucount -gt 0 ];then - config_load clash - config_foreach add_rules "rules" -fi - -if [ -f $RULE_FILE ];then - sed -i "1i\ " $RULE_FILE 2>/dev/null - sed -i "2i\rules:" $RULE_FILE 2>/dev/null -fi - - lang=$(uci get luci.main.lang 2>/dev/null) - REAL_LOG="/usr/share/clash/clash_real.txt" - - mode=$(uci get clash.config.mode 2>/dev/null) - p_mode=$(uci get clash.config.p_mode 2>/dev/null) - da_password=$(uci get clash.config.dash_pass 2>/dev/null) - redir_port=$(uci get clash.config.redir_port 2>/dev/null) - http_port=$(uci get clash.config.http_port 2>/dev/null) - socks_port=$(uci get clash.config.socks_port 2>/dev/null) - dash_port=$(uci get clash.config.dash_port 2>/dev/null) - bind_addr=$(uci get clash.config.bind_addr 2>/dev/null) - allow_lan=$(uci get clash.config.allow_lan 2>/dev/null) - log_level=$(uci get clash.config.level 2>/dev/null) - CONFIG_START="/tmp/dns.yaml" - - mixed_port=$(uci get clash.config.mixed_port 2>/dev/null) - enable_ipv6=$(uci get clash.config.enable_ipv6 2>/dev/null) - - core=$(uci get clash.config.core 2>/dev/null) - interf_name=$(uci get clash.config.interf_name 2>/dev/null) - tun_mode=$(uci get clash.config.tun_mode 2>/dev/null) - stack=$(uci get clash.config.stack 2>/dev/null) - listen_port=$(uci get clash.config.listen_port 2>/dev/null) - TEMP_FILE="/tmp/clashdns.yaml" - interf=$(uci get clash.config.interf 2>/dev/null) - enhanced_mode=$(uci get clash.config.enhanced_mode 2>/dev/null) - - rm -rf $TEMP_FILE 2>/dev/null - - echo " ">>/tmp/dns.yaml 2>/dev/null - sed -i "1i\#****CLASH-CONFIG-START****#" $CONFIG_START 2>/dev/null - sed -i "2i\port: ${http_port}" $CONFIG_START 2>/dev/null - sed -i "/port: ${http_port}/a\socks-port: ${socks_port}" $CONFIG_START 2>/dev/null - sed -i "/socks-port: ${socks_port}/a\redir-port: ${redir_port}" $CONFIG_START 2>/dev/null - sed -i "/redir-port: ${redir_port}/a\mixed-port: ${mixed_port}" $CONFIG_START 2>/dev/null - sed -i "/mixed-port: ${mixed_port}/a\ipv6: ${enable_ipv6}" $CONFIG_START 2>/dev/null - sed -i "/ipv6: ${enable_ipv6}/a\allow-lan: ${allow_lan}" $CONFIG_START 2>/dev/null - if [ $allow_lan == "true" ]; then - sed -i "/allow-lan: ${allow_lan}/a\bind-address: \"${bind_addr}\"" $CONFIG_START 2>/dev/null - sed -i "/bind-address: \"${bind_addr}\"/a\mode: ${p_mode}" $CONFIG_START 2>/dev/null - sed -i "/mode: ${p_mode}/a\log-level: ${log_level}" $CONFIG_START 2>/dev/null - sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_START 2>/dev/null - sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_START 2>/dev/null - sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $CONFIG_START 2>/dev/null - sed -i -e "\$a " $CONFIG_START 2>/dev/null - else - sed -i "/allow-lan: ${allow_lan}/a\mode: Rule" $CONFIG_START 2>/dev/null - sed -i "/mode: Rule/a\log-level: ${log_level}" $CONFIG_START 2>/dev/null - sed -i "/log-level: ${log_level}/a\external-controller: 0.0.0.0:${dash_port}" $CONFIG_START 2>/dev/null - sed -i "/external-controller: 0.0.0.0:${dash_port}/a\secret: \"${da_password}\"" $CONFIG_START 2>/dev/null - sed -i "/secret: \"${da_password}\"/a\external-ui: \"./dashboard\"" $CONFIG_START 2>/dev/null - sed -i -e "\$a " $CONFIG_START 2>/dev/null - fi - -cat $CONFIG_START >> $TEMP_FILE 2>/dev/null - -if [ "$interf" -eq 1 ] && [ ! -z "$interf_name" ] ;then -cat >> "/tmp/interf_name.yaml" <<-EOF -interface-name: ${interf_name} -EOF -cat /tmp/interf_name.yaml >> $TEMP_FILE 2>/dev/null -sed -i -e "\$a " $TEMP_FILE 2>/dev/null -fi - -authentication_set() -{ - local section="$1" - config_get "username" "$section" "username" "" - config_get "password" "$section" "password" "" - config_get_bool "enabled" "$section" "enabled" "1" - - if [ "$enabled" = "0" ]; then - return - fi - - echo " - \"$username:$password\"" >>/tmp/authentication.yaml - - -} - config_load "clash" - config_foreach authentication_set "authentication" - -if [ -f /tmp/authentication.yaml ];then -sed -i "1i\authentication:" /tmp/authentication.yaml -fi - -cat /tmp/authentication.yaml >> $TEMP_FILE 2>/dev/null -sed -i -e "\$a " $TEMP_FILE 2>/dev/null - - - -if [ $tun_mode -eq 1 ];then - -cat >> "/tmp/tun.yaml" <<-EOF -tun: - enable: true -EOF - - -if [ $core -eq 4 ];then -cat >> "/tmp/tun.yaml" <<-EOF - stack: ${stack} -EOF -fi - -if [ $core -eq 3 ];then -cat >> "/tmp/tun.yaml" <<-EOF - device-url: dev://utun - dns-listen: 0.0.0.0:${listen_port} -EOF -fi - -cat /tmp/tun.yaml >> $TEMP_FILE 2>/dev/null - - - - -dnshijack_set() -{ - local section="$1" - config_get "type" "$section" "type" "" - config_get "port" "$section" "port" "" - config_get "ip" "$section" "ip" "" - config_get_bool "enabled" "$section" "enabled" "1" - - if [ "$enabled" = "0" ]; then - return - fi - - if [ "$type" == "none" ] && [ ! -z "$port" ]; then - echo " - $ip:$port">>/tmp/dnshijack.yaml - elif [ "$type" == "none" ] && [ -z "$port" ]; then - echo " - $ip">>/tmp/dnshijack.yaml - elif [ -z "$port" ]; then - echo " - $type$ip">>/tmp/dnshijack.yaml - else - echo " - $type$ip:$port">>/tmp/dnshijack.yaml - fi - - -} - config_load "clash" - config_foreach dnshijack_set "dnshijack" - -if [ -f /tmp/dnshijack.yaml ];then -sed -i "1i\ dns-hijack:" /tmp/dnshijack.yaml -fi - -cat /tmp/dnshijack.yaml >> $TEMP_FILE 2>/dev/null -sed -i -e "\$a " $TEMP_FILE 2>/dev/null - -fi - -hosts_set() -{ - local section="$1" - config_get "address" "$section" "address" "" - config_get "ip" "$section" "ip" "" - config_get_bool "enabled" "$section" "enabled" "1" - - if [ "$enabled" = "0" ]; then - return - fi - - echo " '$address': '$ip'" >>/tmp/hosts.yaml - - -} -if [ "$enhanced_mode" == "redir-host" ];then - config_load "clash" - config_foreach hosts_set "hosts" -fi - -if [ -f /tmp/hosts.yaml ];then -sed -i "1i\hosts:" /tmp/hosts.yaml -fi -cat /tmp/hosts.yaml >> $TEMP_FILE 2>/dev/null -sed -i -e "\$a " $TEMP_FILE 2>/dev/null - - -enable_dns=$(uci get clash.config.enable_dns 2>/dev/null) - - - -cat >> "/tmp/enable_dns.yaml" <<-EOF -dns: - enable: true - listen: 0.0.0.0:${listen_port} -EOF - - -if [ "$enable_ipv6" == "true" ];then - -cat >> "/tmp/enable_dns.yaml" <<-EOF - ipv6: true -EOF - -fi - -cat /tmp/enable_dns.yaml >> $TEMP_FILE 2>/dev/null - -default_nameserver=$(uci get clash.config.default_nameserver 2>/dev/null) -for list in $default_nameserver; do -echo " - $list">>/tmp/default_nameserver.yaml -done - -if [ -f /tmp/default_nameserver.yaml ];then -sed -i "1i\ default-nameserver:" /tmp/default_nameserver.yaml -fi - - - -cat >> "/tmp/default_nameserver.yaml" <<-EOF - enhanced-mode: $enhanced_mode -EOF -cat /tmp/default_nameserver.yaml >> $TEMP_FILE 2>/dev/null - - -if [ "$enhanced_mode" == "fake-ip" ];then - -fake_ip_range=$(uci get clash.config.fake_ip_range 2>/dev/null) -cat >> "/tmp/fake_ip_range.yaml" <<-EOF - fake-ip-range: $fake_ip_range -EOF - -cat /tmp/fake_ip_range.yaml >> $TEMP_FILE 2>/dev/null -fi - -if [ "$enhanced_mode" == "fake-ip" ];then - -fake_ip_filter=$(uci get clash.config.fake_ip_filter 2>/dev/null) -for list in $fake_ip_filter; do -echo " - '$list'">>/tmp/fake_ip_filter.yaml -done - -if [ -f /tmp/fake_ip_filter.yaml ];then -sed -i "1i\ fake-ip-filter:" /tmp/fake_ip_filter.yaml -fi - -cat /tmp/fake_ip_filter.yaml >> $TEMP_FILE 2>/dev/null -fi - -dnsservers_set() -{ - local section="$1" - config_get "ser_address" "$section" "ser_address" "" - config_get "protocol" "$section" "protocol" "" - config_get "ser_type" "$section" "ser_type" "" - config_get_bool "enabled" "$section" "enabled" "1" - config_get "ser_port" "$section" "ser_port" "" - - if [ "$enabled" = "0" ]; then - return - fi - - if [ -z "$ser_type" ]; then - return - fi - - if [ "$ser_type" == "nameserver" ]; then - if [ "$protocol" == "none" ] && [ ! -z "$ser_port" ]; then - echo " - $ser_address:$ser_port" >>/tmp/nameservers.yaml - elif [ "$protocol" == "none" ] && [ -z "$ser_port" ]; then - echo " - $ser_address" >>/tmp/nameservers.yaml - elif [ -z "$ser_port" ]; then - echo " - $protocol$ser_address" >>/tmp/nameservers.yaml - else - echo " - $protocol$ser_address:$ser_port" >>/tmp/nameservers.yaml - fi - elif [ "$ser_type" == "fallback" ]; then - if [ "$protocol" == "none" ] && [ ! -z "$ser_port" ]; then - echo " - $ser_address:$ser_port" >>/tmp/fallback.yaml - elif [ "$protocol" == "none" ] && [ -z "$ser_port" ]; then - echo " - $ser_address" >>/tmp/fallback.yaml - elif [ -z "$ser_port" ]; then - echo " - $protocol$ser_address" >>/tmp/fallback.yaml - else - echo " - $protocol$ser_address:$ser_port" >>/tmp/fallback.yaml - fi - fi - -} - config_load "clash" - config_foreach dnsservers_set "dnsservers" - -if [ -f /tmp/nameservers.yaml ];then -sed -i "1i\ nameserver:" /tmp/nameservers.yaml -fi -cat /tmp/nameservers.yaml >> $TEMP_FILE 2>/dev/null - -if [ -f /tmp/fallback.yaml ];then -sed -i "1i\ fallback:" /tmp/fallback.yaml - -cat >> "/tmp/fallback.yaml" <<-EOF - fallback-filter: - geoip: true - ipcidr: - - 240.0.0.0/4 -EOF - -sed -i -e "\$a " /tmp/fallback.yaml 2>/dev/null -fi -cat /tmp/fallback.yaml >> $TEMP_FILE 2>/dev/null - - - -rm -rf /tmp/tun.yaml /tmp/enable_dns.yaml /tmp/fallback.yaml /tmp/nameservers.yaml /tmp/fake_ip_filter.yaml /tmp/default_nameserver.yaml /tmp/hosts.yaml /tmp/authentication.yaml /tmp/dnshijack.yaml /tmp/fake_ip_range.yaml /tmp/dns.yaml /tmp/interf_name.yaml - - - - -script=$(uci get clash.config.script 2>/dev/null) -ruleprovider=$(uci get clash.config.rulprp 2>/dev/null) -ppro=$(uci get clash.config.ppro 2>/dev/null) -rul=$(uci get clash.config.rul 2>/dev/null) -prox=$(uci get clash.config.prox 2>/dev/null) -CONFIG_YAML_RULE="/usr/share/clash/rule.yaml" -orul=$(uci get clash.config.orul 2>/dev/null) - -if [ $prox -eq 1 ];then -if [ -f $SERVER_FILE ];then -cat $SERVER_FILE >> $TEMP_FILE 2>/dev/null -sed -i -e '$a\' $TEMP_FILE 2>/dev/null -fi -fi - -if [ $ppro -eq 1 ];then -if [ -f $PROVIDER_FILE ];then -cat $PROVIDER_FILE >> $TEMP_FILE 2>/dev/null -fi -fi - -if [ -f $GROUP_FILE ];then -cat $GROUP_FILE >> $TEMP_FILE 2>/dev/null -fi - - -if [ $ruleprovider -eq 1 ];then -if [ -f $RULE_PROVIDER ];then -cat $RULE_PROVIDER >> $TEMP_FILE 2>/dev/null -sed -i -e '$a\' $TEMP_FILE 2>/dev/null -fi -fi - -if [ $script -eq 1 ];then -if [ -f $SCRIPT ];then -cat $SCRIPT >> $TEMP_FILE 2>/dev/null -sed -i -e '$a\' $TEMP_FILE 2>/dev/null -fi -fi - - -if [ $rul -eq 1 ];then -if [ -f $RULE_FILE ];then -cat $RULE_FILE >> $TEMP_FILE 2>/dev/null -fi -fi - -if [ $orul -eq 1 ];then -cat $TEMP_FILE $CONFIG_YAML_RULE > $CONFIG_YAML 2>/dev/null -fi - -if [ $orul -eq 0 ] || [ -z $orul ];then -mv $TEMP_FILE $CONFIG_YAML 2>/dev/null -fi - -if [ -z $check_name ] && [ "${same_tag}" -eq 1 ];then -echo "${config_name}.yaml" >>/usr/share/clashbackup/create_list.conf -elif [ -z $check_name ] && [ "${same_tag}" -eq 0 ];then -echo "${config_name}.yaml" >>/usr/share/clashbackup/create_list.conf -fi - -rm -rf $RULE_PROVIDER $PROVIDER_FILE $GROUP_FILE $RULE_FILE $SERVER_FILE $Proxy_Group - -if [ $lang == "en" ] || [ $lang == "auto" ];then - echo "Completed Creating Custom Config " >$REAL_LOG - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG -elif [ $lang == "zh_cn" ];then - echo "创建自定义配置完成." >$REAL_LOG - sleep 1 - echo "Clash for OpenWRT" >$REAL_LOG -fi - - -use=$(uci get clash.config.use_config 2>/dev/null) -config_type=$(uci get clash.config.config_type 2>/dev/null) - -if [ "$use" == "$CONFIG_YAML" ] && [ "$config_type" == "3" ];then - if pidof clash >/dev/null; then - /etc/init.d/clash restart 2>/dev/null - fi -fi -} -create 2>/dev/null -fi - - - - \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/pgroups.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/pgroups.sh deleted file mode 100644 index b5536feeff..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/pgroups.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh /etc/rc.common -. /lib/functions.sh -cfg_groups_set() -{ - - CFG_FILE="/etc/config/clash" - local section="$1" - config_get "name" "$section" "name" "" - config_get "old_name_cfg" "$section" "old_name_cfg" "" - config_get "old_name" "$section" "old_name" "" - - if [ -z "$name" ]; then - return - fi - - - if [ -z "$old_name_cfg" ]; then - uci set clash."$section".old_name_cfg="$name" - uci commit clash - fi - - if [ -z "$old_name" ]; then - uci set clash."$section".old_name="$name" - uci commit clash - fi - - - if [ "$name" != "$old_name_cfg" ] && [ ! -z "$old_name_cfg" ]; then - sed -i "s/old_name_cfg \'${old_name_cfg}\'/old_name_cfg \'${name}\'/g" $CFG_FILE 2>/dev/null - sed -i "s/groups \'${old_name_cfg}/groups \'${name}/g" $CFG_FILE 2>/dev/null - sed -i "s/other_group \'${old_name_cfg}/other_group \'${name}/g" $CFG_FILE 2>/dev/null - sed -i "s/new_servers_group \'${old_name_cfg}/new_servers_group \'${name}/g" $CFG_FILE 2>/dev/null - sed -i "s/relay_groups \'${old_name_cfg}/relay_groups \'${name}/g" $CFG_FILE 2>/dev/null - config_load "clash" - fi - -} - -start(){ -status=$(ps|grep -c /usr/share/clash/create/pgroups.sh) -[ "$status" -gt "3" ] && exit 0 - - config_load "clash" - config_foreach cfg_groups_set "pgroups" -} -start diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/rule_provider.list b/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/rule_provider.list deleted file mode 100644 index 88d4128ec1..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/rule_provider.list +++ /dev/null @@ -1,76 +0,0 @@ -All-4,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,All-4.yaml -BBC-iPlayer,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,BBC-iPlayer.yaml -Bahamut,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,Bahamut.yaml -DAZN,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,DAZN.yaml -DisneyPlus,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,DisneyPlus.yaml -FOX,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,FOX.yaml -HBO-GO-HKG,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,HBO-GO-HKG.yaml -HBO,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,HBO.yaml -HWTV,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,HWTV.yaml -Hulu-JPN,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,Hulu-JPN.yaml -Hulu,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,Hulu.yaml -ITV,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,ITV.yaml -KKTV,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,KKTV.yaml -LINE-TV,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,LINE-TV.yaml -LiTV,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,LiTV.yaml -My5,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,My5.yaml -Netflix,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,Netflix.yaml -Now-E,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,Now-E.yaml -PBS,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,PBS.yaml -Pornhub,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,Pornhub.yaml -Prime-Video,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,Prime-Video.yaml -TaiwanGood,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,TaiwanGood.yaml -TikTok,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,TikTok.yaml -ViuTV,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,ViuTV.yaml -YouTube,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,YouTube.yaml -encoreTVB,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,encoreTVB.yaml -myTV-SUPER,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,myTV-SUPER.yaml -niconico,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Video/,niconico.yaml -Himalaya,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Podcast/,Himalaya.yaml -Deezer,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Music/,Deezer.yaml -Instagram,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Music/,Instagram.yaml -JOOX,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Music/,JOOX.yaml -KKBOX,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Music/,KKBOX.yaml -Pandora,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Music/,Pandora.yaml -SoundCloud,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Music/,SoundCloud.yaml -Spotify,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Music/,Spotify.yaml -TIDAL,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Music/,TIDAL.yaml -Twitch,classical,frainzy1477/clashrules/master/Clash/RuleSet/StreamingMedia/Live/,Twitch.yaml -Advertising,classical,frainzy1477/clashrules/master/Clash/RuleSet/Guard/,Advertising.yaml -Hijacking,classical,frainzy1477/clashrules/master/Clash/RuleSet/Guard/,Hijacking.yaml -Privacy,classical,frainzy1477/clashrules/master/Clash/RuleSet/Guard/,Privacy.yaml -ChinaIP,ipcidr,frainzy1477/clashrules/master/Clash/RuleSet/Extra/,ChinaIP.yaml -IPBlackhole,ipcidr,frainzy1477/clashrules/master/Clash/RuleSet/Extra/,IP-Blackhole.yaml -PayPal,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/,PayPal.yaml -Scholar,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/,Scholar.yaml -AppStore,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,AppStore.yaml -Apple,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,Apple.yaml -AppStoreConnect,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,AppStoreConnect.yaml -Apple-FindMy,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,FindMy.yaml -Apple-Mail,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,Mail.yaml -Apple-Music,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,Music.yaml -Apple-News,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,News.yaml -Apple-Siri,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,Siri.yaml -Apple-SoftwareUpdate,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,SoftwareUpdate.yaml -Apple-TV,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,TV.yaml -Apple-TestFlight,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,TestFlight.yaml -Apple-iCloud,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Apple/,iCloud.yaml -Steam,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Game/,Steam.yaml -Blizzard,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Game/,Blizzard.yaml -GoogleDrive,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Google/,GoogleDrive.yaml -GoogleSearch,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Google/,GoogleSearch.yaml -OneDrive,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Microsoft/,OneDrive.yaml -Telegram,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Telegram/,Telegram.yaml -TelegramNL,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Telegram/,TelegramNL.yaml -TelegramSG,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Telegram/,TelegramSG.yaml -TelegramUS,classical,frainzy1477/clashrules/master/Clash/RuleSet/Extra/Telegram/,TelegramUS.yaml -广告(IP合集,ipcidr,frainzy1477/Clash-Ruleset/master/,Reject_IP.yaml -广告(域名合集,domain,frainzy1477/Clash-Ruleset/master/,Reject_Domain.yaml -网易云音乐域名,domain,frainzy1477/Clash-Ruleset/master/,Netease_Music_Domains.yaml -苹果服务合集,domain,frainzy1477/Clash-Ruleset/master/,Apple_Domain.yaml -国外流媒体(IP合集,ipcidr,frainzy1477/Clash-Ruleset/master/,Stream_IP.yaml -国外流媒体(域名合集,domain,frainzy1477/Clash-Ruleset/master/,Stream_Domain.yaml -国外IP代理合集,ipcidr,frainzy1477/Clash-Ruleset/master/,Global_IP.yaml -国外域名代理合集,domain,frainzy1477/Clash-Ruleset/master/,Global_Domain.yaml -国内IP合集,ipcidr,frainzy1477/Clash-Ruleset/master/,Domestic_IP.yaml -国内常用域名,domain,frainzy1477/Clash-Ruleset/master/,Domestic_Domain.yaml diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/rules.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/rules.sh deleted file mode 100644 index aea7aae41c..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/rules.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh /etc/rc.common -. /lib/functions.sh -rules_set() -{ - - CFG_FILE="/etc/config/clash" - local section="$1" - config_get "type" "$section" "type" "" - config_get "rulename" "$section" "rulename" "" - config_get "rulenamee" "$section" "rulenamee" "" - - if [ -z "$type" ]; then - return - fi - - - if [ -z "$rulename" ]; then - uci set clash."$section".rulename="$rulenamee" - uci commit clash - fi - - -} - -start(){ - config_load "clash" - config_foreach rules_set "rules" -} - -start diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/script.yaml b/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/script.yaml deleted file mode 100644 index 6e97c29d0e..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/create/script.yaml +++ /dev/null @@ -1,12 +0,0 @@ -script: - code: | - def main(ctx, metadata): - ip = metadata["dst_ip"] = ctx.resolve_ip(metadata["host"]) - if ip == "": - return "DIRECT" - - code = ctx.geoip(ip) - if code == "LAN" or code == "CN": - return "DIRECT" - - return "Proxy" # default policy for requests which are not matched by any other script \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/cuslist.sh b/package/ntlf9t/luci-app-clash/root/usr/share/clash/cuslist.sh deleted file mode 100755 index c67a8da8ca..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/cuslist.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash /etc/rc.common -. /lib/functions.sh - -name=$(uci get clash.config.config_cus_remove 2>/dev/null) -check_match_name=$(grep -F "$name" "/usr/share/clashbackup/create_list.conf") -line_no=$(grep -n "$check_match_name" /usr/share/clashbackup/create_list.conf |awk -F ':' '{print $1}') -if [ ! -z $check_match_name ];then -sed -i "${line_no}d" /usr/share/clashbackup/create_list.conf -rm -rf /usr/share/clash/config/custom/${name} -sed -i '/^$/d' /usr/share/clashbackup/create_list.conf -fi \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png b/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png deleted file mode 100644 index 6798639d0f..0000000000 Binary files a/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png and /dev/null differ diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/index.html b/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/index.html deleted file mode 100644 index 99e3bb2ec0..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/index.html +++ /dev/null @@ -1 +0,0 @@ -Clash Dashboard
\ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/1.bundle.658aa6a6e3feec8f168b.min.js b/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/1.bundle.658aa6a6e3feec8f168b.min.js deleted file mode 100644 index e8981cca79..0000000000 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/1.bundle.658aa6a6e3feec8f168b.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 1.bundle.658aa6a6e3feec8f168b.min.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[function(e,t,n){"use strict";e.exports=n(54)},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},,,,function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(55)},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){e.exports=n(58)()},function(e,t,n){"use strict";e.exports=n(62)},function(e,t,n){var r=n(38),o=n(88);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},function(e,t,n){var r=n(85),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){var r=n(39)(Object,"create");e.exports=r},function(e,t,n){var r=n(109);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(115);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){"use strict";function r(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:p(e)?2:h(e)?3:0}function s(e,t){return 2===l(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){return 2===l(e)?e.get(t):e[t]}function f(e,t,n){var r=l(e);2===r?e.set(t,n):3===r?(e.delete(t),e.add(n)):e[t]=n}function d(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function p(e){return K&&e instanceof Map}function h(e){return Y&&e instanceof Set}function v(e){return e.o||e.t}function m(e){if(Array.isArray(e))return e.slice();var t=ne(e);delete t[Z];for(var n=te(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=y),Object.freeze(e),t&&u(e,(function(e,t){return g(t,!0)}),!0))}function y(){r(2)}function b(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function w(e){var t=re[e];return t||r(19,e),t}function S(e,t){re[e]=t}function x(){return G}function _(e,t){t&&(w("Patches"),e.u=[],e.s=[],e.v=t)}function E(e){T(e),e.p.forEach(k),e.p=null}function T(e){e===G&&(G=e.l)}function R(e){return G={p:[],l:G,h:e,m:!0,_:0}}function k(e){var t=e[Z];0===t.i||1===t.i?t.j():t.g=!0}function C(e,t){t._=t.p.length;var n=t.p[0],o=void 0!==e&&e!==n;return t.h.O||w("ES5").S(t,e,o),o?(n[Z].P&&(E(t),r(4)),i(e)&&(e=P(t,e),t.l||M(t,e)),t.u&&w("Patches").M(n[Z],e,t.u,t.s)):e=P(t,n,[]),E(t),t.u&&t.v(t.u,t.s),e!==X?e:void 0}function P(e,t,n){if(b(t))return t;var r=t[Z];if(!r)return u(t,(function(o,i){return O(e,r,t,o,i,n)}),!0),t;if(r.A!==e)return t;if(!r.P)return M(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var o=4===r.i||5===r.i?r.o=m(r.k):r.o;u(3===r.i?new Set(o):o,(function(t,i){return O(e,r,o,t,i,n)})),M(e,o,!1),n&&e.u&&w("Patches").R(r,n,e.u,e.s)}return r.o}function O(e,t,n,r,a,u){if(o(a)){var l=P(e,a,u&&t&&3!==t.i&&!s(t.D,r)?u.concat(r):void 0);if(f(n,r,l),!o(l))return;e.m=!1}if(i(a)&&!b(a)){if(!e.h.N&&e._<1)return;P(e,a),t&&t.A.l||M(e,a)}}function M(e,t,n){void 0===n&&(n=!1),e.h.N&&e.m&&g(t,n)}function A(e,t){var n=e[Z];return(n?v(n):e)[t]}function I(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function N(e){e.P||(e.P=!0,e.l&&N(e.l))}function z(e){e.o||(e.o=m(e.t))}function L(e,t,n){var r=p(t)?w("MapSet").T(t,n):h(t)?w("MapSet").F(t,n):e.O?function(e,t){var n=Array.isArray(e),r={i:n?1:0,A:t?t.A:x(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=r,i=oe;n&&(o=[r],i=ie);var a=Proxy.revocable(o,i),u=a.revoke,l=a.proxy;return r.k=l,r.j=u,l}(t,n):w("ES5").J(t,n);return(n?n.A:x()).p.push(r),r}function F(e){return o(e)||r(22,e),function e(t){if(!i(t))return t;var n,r=t[Z],o=l(t);if(r){if(!r.P&&(r.i<4||!w("ES5").K(r)))return r.t;r.I=!0,n=j(t,o),r.I=!1}else n=j(t,o);return u(n,(function(t,o){r&&c(r.t,t)===o||f(n,t,e(o))})),3===o?new Set(n):n}(e)}function j(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return m(e)}function D(){function e(e,t){var n=i[e];return n?n.enumerable=t:i[e]=n={configurable:!0,enumerable:t,get:function(){var t=this[Z];return oe.get(t,e)},set:function(t){var n=this[Z];oe.set(n,e,t)}},n}function t(e){for(var t=e.length-1;t>=0;t--){var o=e[t][Z];if(!o.P)switch(o.i){case 5:r(o)&&N(o);break;case 4:n(o)&&N(o)}}}function n(e){for(var t=e.t,n=e.k,r=te(n),o=r.length-1;o>=0;o--){var i=r[o];if(i!==Z){var a=t[i];if(void 0===a&&!s(t,i))return!0;var u=n[i],l=u&&u[Z];if(l?l.t!==a:!d(u,a))return!0}}var c=!!t[Z];return r.length!==te(t).length+(c?0:1)}function r(e){var t=e.k;if(t.length!==e.t.length)return!0;var n=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!n||n.get)}var i={};S("ES5",{J:function(t,n){var r=Array.isArray(t),o=function(t,n){if(t){for(var r=Array(n.length),o=0;o1?r-1:0),u=1;u1?n-1:0),i=1;i=0;n--){var r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}var i=w("Patches").$;return o(e)?i(e,t):this.produce(e,(function(e){return i(e,t.slice(n+1))}))},e}(),ue=new ae,le=ue.produce,se=ue.produceWithPatches.bind(ue),ce=ue.setAutoFreeze.bind(ue),fe=ue.setUseProxies.bind(ue),de=ue.applyPatches.bind(ue),pe=ue.createDraft.bind(ue),he=ue.finishDraft.bind(ue);t.default=le},,function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){var r=n(17).Symbol;e.exports=r},function(e,t,n){var r=n(119);e.exports=function(e){return null==e?"":r(e)}},,function(e,t,n){e.exports=function(){"use strict";var e="millisecond",t="second",n="minute",r="hour",o="day",i="week",a="month",u="quarter",l="year",s="date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,f=/\[([^\]]+)]|Y{2,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,d=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},p={s:d,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+d(r,2,"0")+":"+d(o,2,"0")},m:function e(t,n){if(t.date()-1&&(t.__listeners[r]=t.__listeners[t.__listeners.length-1],t.__listeners.length--)}}},e.prototype.notify=function(){for(var e=0,t=this.__listeners;en.errorRetryCount)){var i=Math.min(o.retryCount||0,8),u=~~((Math.random()+.5)*(1<0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0));return Promise.all(l).then((function(){return s.get(r)}))}return Promise.resolve(s.get(r))},O=function(e,t,n){var r=T[e];if(e&&r)for(var o=0;o0));return[2,Promise.all(h).then((function(){if(c)throw c;return s.get(o)}))]}if(c)throw c;return[2,l]}}))}))};var A=v.Provider,I=function(){for(var e=this,t=[],n=0;n=1&&(o=t[0]),t.length>2?(i=t[1],u=t[2]):"function"==typeof t[1]?i=t[1]:"object"==typeof t[1]&&(u=t[1]);var l=s.serializeKey(o),c=l[0],h=l[1],y=l[2];u=Object.assign({},f,Object(r.useContext)(v),u),void 0===i&&(i=u.fetcher);var C=s.get(c)||u.initialData,P=s.get(y),A=Object(r.useRef)({data:!1,error:!1,isValidating:!1}),I=Object(r.useRef)({data:C,error:P,isValidating:!1}),N=Object(r.useState)(null)[1],z=Object(r.useCallback)((function(e){var t=!1;for(var n in e)I.current[n]=e[n],A.current[n]&&(t=!0);if(t||u.suspense){if(L.current)return;N({})}}),[]),L=Object(r.useRef)(!1),F=Object(r.useRef)(c),j=Object(r.useRef)({emit:function(e){for(var t=[],n=1;n=0&&(n[r]=n[n.length-1],n.pop())}},U=Object(r.useCallback)((function(t){return void 0===t&&(t={}),m(e,void 0,void 0,(function(){var e,n,r,o,a,l,f;return g(this,(function(d){switch(d.label){case 0:if(!c||!i)return[2,!1];if(L.current)return[2,!1];t=Object.assign({dedupe:!1},t),e=!0,n=void 0!==S[c]&&t.dedupe,d.label=1;case 1:return d.trys.push([1,6,,7]),z({isValidating:!0}),r=void 0,o=void 0,n?(o=x[c],[4,S[c]]):[3,3];case 2:return r=d.sent(),[3,5];case 3:return u.loadingTimeout&&!s.get(c)&&setTimeout((function(){e&&j.current.emit("onLoadingSlow",c,u)}),u.loadingTimeout),S[c]=null!==h?i.apply(void 0,h):i(c),x[c]=o=Date.now(),[4,S[c]];case 4:r=d.sent(),setTimeout((function(){delete S[c],delete x[c]}),u.dedupingInterval),j.current.emit("onSuccess",r,c,u),d.label=5;case 5:return x[c]>o||R[c]&&(o<=R[c]||o<=k[c]||0===k[c])?(z({isValidating:!1}),[2,!1]):(s.set(c,r),s.set(y,void 0),a={isValidating:!1},void 0!==I.current.error&&(a.error=void 0),u.compare(I.current.data,r)||(a.data=r),z(a),n||O(c,r,void 0),[3,7]);case 6:return l=d.sent(),delete S[c],delete x[c],s.set(y,l),I.current.error!==l&&(z({isValidating:!1,error:l}),n||O(c,void 0,l)),j.current.emit("onError",l,c,u),u.shouldRetryOnError&&(f=(t.retryCount||0)+1,j.current.emit("onErrorRetry",l,c,u,U,Object.assign({dedupe:!0},t,{retryCount:f}))),[3,7];case 7:return e=!1,[2,!0]}}))}))}),[c]);if(w((function(){if(c){L.current=!1;var e=I.current.data,t=s.get(c)||u.initialData;F.current===c&&u.compare(e,t)||(z({data:t}),F.current=c);var n,r,o=function(){return U({dedupe:!0})};(u.revalidateOnMount||!u.initialData&&void 0===u.revalidateOnMount)&&(void 0!==t?b(o):o()),u.revalidateOnFocus&&(n=p(o,u.focusThrottleInterval)),u.revalidateOnReconnect&&(r=o);var i=function(e,t,n,r){void 0===e&&(e=!0),void 0===r&&(r=!0);var i={},a=!1;return void 0===t||u.compare(I.current.data,t)||(i.data=t,a=!0),I.current.error!==n&&(i.error=n,a=!0),a&&z(i),!!e&&(r?o():U())};return B(_,n),B(E,r),B(T,i),function(){z=function(){return null},L.current=!0,V(_,n),V(E,r),V(T,i)}}}),[c,U]),w((function(){var t=null,n=function(){return m(e,void 0,void 0,(function(){return g(this,(function(e){switch(e.label){case 0:return I.current.error||!u.refreshWhenHidden&&!a()||!u.refreshWhenOffline&&!d()?[3,2]:[4,U({dedupe:!0})];case 1:e.sent(),e.label=2;case 2:return u.refreshInterval&&(t=setTimeout(n,u.refreshInterval)),[2]}}))}))};return u.refreshInterval&&(t=setTimeout(n,u.refreshInterval)),function(){t&&clearTimeout(t)}}),[u.refreshInterval,u.refreshWhenHidden,u.refreshWhenOffline,U]),u.suspense){var W=s.get(c)||C,H=s.get(y)||P;if(void 0===W&&void 0===H){if(S[c]||U(),S[c]&&"function"==typeof S[c].then)throw S[c];W=S[c]}if(void 0===W&&H)throw H;return{error:H,data:W,revalidate:U,mutate:D,isValidating:I.current.isValidating}}return Object(r.useMemo)((function(){var e={revalidate:U,mutate:D};return Object.defineProperties(e,{error:{get:function(){return A.current.error=!0,F.current===c?I.current.error:P},enumerable:!0},data:{get:function(){return A.current.data=!0,F.current===c?I.current.data:C},enumerable:!0},isValidating:{get:function(){return A.current.isValidating=!0,I.current.isValidating},enumerable:!0}}),e}),[U])},N=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function u(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,u)}l((r=r.apply(e,t||[])).next())}))},z=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=1&&(o=t[0]),t.length>2?(i=t[1],a=t[2]):"function"==typeof t[1]?i=t[1]:"object"==typeof t[1]&&(a=t[1]);var u=(a=Object.assign({},f,Object(r.useContext)(v),a)).initialSize,l=void 0===u?1:u,c=a.revalidateAll,d=void 0!==c&&c,p=a.persistSize,h=void 0!==p&&p,m=a.fetcher,g=L(a,["initialSize","revalidateAll","persistSize","fetcher"]);void 0===i&&(i=m);var y=null;try{y=s.serializeKey(o(0,null))[0]}catch(k){}var b=Object(r.useState)(!1)[1],w=null;y&&(w="context@"+y);var S,x=null;y&&(x="size@"+y,S=s.get(x));var _=Object(r.useRef)(S||l),E=Object(r.useRef)(!1);Object(r.useEffect)((function(){E.current?h||(_.current=l):E.current=!0}),[y]);var T=I(y?["many",y]:null,(function(){return N(e,void 0,void 0,(function(){var e,t,n,r,u,l,c,f,p,h;return z(this,(function(v){switch(v.label){case 0:e=s.get(w)||{},t=e.originalData,n=e.force,r=[],u=null,l=0,v.label=1;case 1:return l<_.current?(c=s.serializeKey(o(l,u)),f=c[0],p=c[1],f?(h=s.get(f),d||n||void 0===n&&0===l||t&&!a.compare(t[l],h)||void 0===h?null===p?[3,3]:[4,i.apply(void 0,p)]:[3,6]):[3,8]):[3,8];case 2:return h=v.sent(),[3,5];case 3:return[4,i(f)];case 4:h=v.sent(),v.label=5;case 5:s.set(f,h),v.label=6;case 6:r.push(h),u=h,v.label=7;case 7:return++l,[3,1];case 8:return s.delete(w),[2,r]}}))}))}),g),R=T.mutate;return T.size=_.current,T.mutate=Object(r.useCallback)((function(e,t){if(void 0===t&&(t=!0),t&&void 0!==e){var n=T.data;s.set(w,{originalData:n,force:!1})}else t&&s.set(w,{force:!0});return R(e,t)}),[R,T.data,w]),T.setSize=Object(r.useCallback)((function(e){return"function"==typeof e?_.current=e(_.current):"number"==typeof e&&(_.current=e),s.set(x,_.current),b((function(e){return!e})),T.mutate((function(e){return e}))}),[T.mutate,x]),T}t.default=I},function(e,t,n){"use strict";n.r(t),n.d(t,"MemoryRouter",(function(){return B})),n.d(t,"Prompt",(function(){return U})),n.d(t,"Redirect",(function(){return G})),n.d(t,"Route",(function(){return Q})),n.d(t,"Router",(function(){return D})),n.d(t,"StaticRouter",(function(){return ne})),n.d(t,"Switch",(function(){return re})),n.d(t,"generatePath",(function(){return $})),n.d(t,"matchPath",(function(){return Y})),n.d(t,"useHistory",(function(){return ae})),n.d(t,"useLocation",(function(){return ue})),n.d(t,"useParams",(function(){return le})),n.d(t,"useRouteMatch",(function(){return se})),n.d(t,"withRouter",(function(){return oe})),n.d(t,"BrowserRouter",(function(){return ce})),n.d(t,"HashRouter",(function(){return fe})),n.d(t,"Link",(function(){return ge})),n.d(t,"NavLink",(function(){return we}));var r=n(3),o=n(0),i=n.n(o),a=(n(14),n(2));function u(e){return"/"===e.charAt(0)}function l(e,t){for(var n=t,r=n+1,o=e.length;r=0;d--){var p=o[d];"."===p?l(o,d):".."===p?(l(o,d),f++):f&&(l(o,d),f--)}if(!s)for(;f--;f)o.unshift("..");!s||""===o[0]||o[0]&&u(o[0])||o.unshift("");var h=o.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function c(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var f=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=c(t),o=c(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var d=function(e,t){if(!e)throw new Error("Invariant failed")};function p(e){return"/"===e.charAt(0)?e:"/"+e}function h(e){return"/"===e.charAt(0)?e.substr(1):e}function v(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function m(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function g(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function y(e,t,n,r){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(o=Object(a.a)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(o.key=n),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=s(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,r):n.push(r),f({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=y(e,t,d(),w.location);c.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(w.entries[w.index]=r,f({action:"REPLACE",location:r}))}))},go:m,goBack:function(){m(-1)},goForward:function(){m(1)},canGo:function(e){var t=w.index+e;return t>=0&&t=200&&e<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){l.headers[e]=r.merge(i)})),e.exports=l}).call(this,n(136))},function(e,t,n){"use strict";var r=n(7),o=n(138),i=n(41),a=n(140),u=n(143),l=n(144),s=n(45);e.exports=function(e){return new Promise((function(t,c){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",v=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+v)}var m=a(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),i(m,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in p?u(p.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p};o(t,c,r),p=null}},p.onabort=function(){p&&(c(s("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){c(s("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),c(s(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var g=n(145),y=(e.withCredentials||l(m))&&e.xsrfCookieName?g.read(e.xsrfCookieName):void 0;y&&(d[e.xsrfHeaderName]=y)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){void 0===f&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(b){if("json"!==e.responseType)throw b}"function"==typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),c(e),p=null)})),void 0===f&&(f=null),p.send(f)}))}},function(e,t,n){"use strict";var r=n(139);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],a=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,(function(e){void 0!==t[e]&&(n[e]=t[e])})),r.forEach(i,(function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):void 0!==t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):void 0!==e[o]&&(n[o]=e[o])})),r.forEach(a,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])}));var u=o.concat(i).concat(a),l=Object.keys(t).filter((function(e){return-1===u.indexOf(e)}));return r.forEach(l,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])})),n}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},,function(e,t){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},function(e,t,n){"use strict";var r=n(34),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},u={};function l(e){return r.isMemo(e)?a:u[e.$$typeof]||o}u[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},u[r.Memo]=a;var s=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var a=c(n);f&&(a=a.concat(f(n)));for(var u=l(t),v=l(n),m=0;mO.length&&O.push(e)}function I(e,t,n){return null==e?0:function e(t,n,r,o){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case i:case a:l=!0}}if(l)return r(o,t,""===n?"."+N(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s