From 4de4ed30e7e12058fbd19630168995d686c62e0d Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Sun, 5 Apr 2020 21:33:24 +0800 Subject: [PATCH] luci-app-clash: sync with upstream source --- package/ntlf9t/luci-app-clash/Makefile | 15 +- .../luasrc/model/cbi/clash/client.lua | 5 + .../luasrc/model/cbi/clash/import.lua | 35 +- .../luasrc/model/cbi/clash/other.lua | 2 +- .../luasrc/model/cbi/clash/servers-config.lua | 32 +- .../ntlf9t/luci-app-clash/po/zh-cn/clash.po | 5 +- .../luci-app-clash/root/etc/config/clash | 27 - .../luci-app-clash/root/etc/init.d/clash | 6 +- .../root/usr/share/clash/clash.sh | 73 +- ...g => ffac0fa1d89f15922b4594863b8b32e9.png} | Bin .../root/usr/share/clash/dashboard/index.html | 13 +- .../js/1.bundle.693efc9234a08d249710.min.js | 2 + .../js/1.bundle.ad0717ae3407e246a9ab.min.js | 2 - ....js => bundle.693efc9234a08d249710.min.js} | 2 +- ...a9ab.css => main.693efc9234a08d249710.css} | 0 .../root/usr/share/clash/load.sh | 26 +- .../root/usr/share/clash/load_groups.sh | 34 +- .../root/usr/share/clash/luci_version | 2 +- .../root/usr/share/clash/proxy.sh | 239 ++- .../root/usr/share/clash/update_all.sh | 984 +---------- .../root/usr/share/clash/v2ssr.sh | 938 ---------- .../root/usr/share/clash/v2ssr/policygroup | 28 - .../share/clash/v2ssr/v2ssr_custom_rule.yaml | 1534 ----------------- .../root/usr/share/clash/yum_change.sh | 41 +- 24 files changed, 433 insertions(+), 3612 deletions(-) rename package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/img/{33343e6117c37aaef8886179007ba6b5.png => ffac0fa1d89f15922b4594863b8b32e9.png} (100%) create mode 100644 package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/1.bundle.693efc9234a08d249710.min.js delete mode 100644 package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/1.bundle.ad0717ae3407e246a9ab.min.js rename package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/{bundle.ad0717ae3407e246a9ab.min.js => bundle.693efc9234a08d249710.min.js} (89%) rename package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/{main.ad0717ae3407e246a9ab.css => main.693efc9234a08d249710.css} (100%) delete mode 100755 package/ntlf9t/luci-app-clash/root/usr/share/clash/v2ssr.sh delete mode 100644 package/ntlf9t/luci-app-clash/root/usr/share/clash/v2ssr/policygroup delete mode 100644 package/ntlf9t/luci-app-clash/root/usr/share/clash/v2ssr/v2ssr_custom_rule.yaml diff --git a/package/ntlf9t/luci-app-clash/Makefile b/package/ntlf9t/luci-app-clash/Makefile index 774829328d..e4640fcfc6 100644 --- a/package/ntlf9t/luci-app-clash/Makefile +++ b/package/ntlf9t/luci-app-clash/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-clash -PKG_VERSION:=1.6.5 +PKG_VERSION:=1.6.7 PKG_MAINTAINER:=frainzy1477 @@ -116,14 +116,11 @@ define Package/$(PKG_NAME)/install $(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_DIR) $(1)/usr/share/clash/v2ssr + $(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/* $(1)/etc/clash/ - - $(INSTALL_BIN) ./root/usr/share/clash/v2ssr/v2ssr_custom_rule.yaml $(1)/usr/share/clash/v2ssr/ - $(INSTALL_BIN) ./root/usr/share/clash/v2ssr/policygroup $(1)/usr/share/clash/v2ssr/ $(INSTALL_BIN) ./root/usr/share/clash/*.sh $(1)/usr/share/clash/ $(INSTALL_BIN) ./root/usr/share/clash/dns.yaml $(1)/usr/share/clash/ @@ -141,10 +138,10 @@ define Package/$(PKG_NAME)/install $(INSTALL_BIN) ./root/usr/share/clash/clash.txt $(1)/usr/share/clash/ $(INSTALL_BIN) ./root/usr/share/clash/dashboard/index.html $(1)/usr/share/clash/dashboard/ - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/main.ad0717ae3407e246a9ab.css $(1)/usr/share/clash/dashboard/ - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/img/33343e6117c37aaef8886179007ba6b5.png $(1)/usr/share/clash/dashboard/img/ - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/1.bundle.ad0717ae3407e246a9ab.min.js $(1)/usr/share/clash/dashboard/js/ - $(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/bundle.ad0717ae3407e246a9ab.min.js $(1)/usr/share/clash/dashboard/js/ + $(INSTALL_BIN) ./root/usr/share/clash/dashboard/main.693efc9234a08d249710.css $(1)/usr/share/clash/dashboard/ + $(INSTALL_BIN) ./root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png $(1)/usr/share/clash/dashboard/img/ + $(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/1.bundle.693efc9234a08d249710.min.js $(1)/usr/share/clash/dashboard/js/ + $(INSTALL_BIN) ./root/usr/share/clash/dashboard/js/bundle.693efc9234a08d249710.min.js $(1)/usr/share/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/ diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/client.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/client.lua index 46d49ce5a2..00f8d68cad 100644 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/client.lua +++ b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/client.lua @@ -29,6 +29,11 @@ o:value("4", translate("Clash(dTun)")) end o.description = translate("Select core, clashr support ssr while clash does not.") + +o = s:option(Flag, "old_conf", translate("Old Config")) +o.description = translate("Proxy/Proxy Groups/Rule") + + o = s:option(ListValue, "g_rules", translate("Game Rules")) o.default = "0" o:value("0", translate("Disable")) diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/import.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/import.lua index 8eb8b0f9ed..e918238795 100644 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/import.lua +++ b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/import.lua @@ -20,14 +20,15 @@ kr.pageaction = false o = s:option(ListValue, "subcri", translate("Subcription Type")) o.default = clash o:value("clash", translate("clash")) -o:value("v2ssr2clash", translate("v2ssr2clash")) +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, "subscribe_url_clash") +o = s:option(Value, "clash_url") o.title = translate("Subcription Url") o.description = translate("Clash Subscription Address") o.rmempty = true @@ -46,11 +47,11 @@ o.write = function() end o:depends("subcri", 'clash') -o = s:option(Value, "subscribe_url") +o = s:option(Value, "ssr_url") o.title = translate("Subcription Url") -o.description = translate("V2/SSR Subscription Address, Only input your subscription address without any api conversion url") +o.placeholder = translate("https://www.example.com/link/QkjokZXktyyr35gfj") o.rmempty = true -o:depends("subcri", 'v2ssr2clash') +o:depends("subcri", 'ssr2clash') o = s:option(Button,"updatee") @@ -59,12 +60,28 @@ o.inputtitle = translate("Download Config") o.inputstyle = "reload" o.write = function() kr.uci:commit("clash") - SYS.call("cp /etc/config/clash /usr/share/clash/v2ssr/config.bak 2>/dev/null") - SYS.call("sleep 1") - luci.sys.call("bash /usr/share/clash/v2ssr.sh >>/usr/share/clash/clash.txt 2>&1 &") + 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", 'v2ssr2clash') +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) 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 index 27fd0329f7..4a9074f480 100644 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/other.lua +++ b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/other.lua @@ -62,7 +62,7 @@ end w = Map("clash") -s = w:section(TypedSection, "clash" , translate("Load Groups)")) +s = w:section(TypedSection, "clash" , translate("Load Groups")) s.anonymous = true diff --git a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/servers-config.lua b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/servers-config.lua index fcade5da1d..167519e084 100644 --- a/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/servers-config.lua +++ b/package/ntlf9t/luci-app-clash/luasrc/model/cbi/clash/servers-config.lua @@ -180,6 +180,7 @@ 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")) @@ -215,22 +216,35 @@ o.rmempty = true o:depends("obfs", "websocket") o:depends("obfs_vmess", "websocket") -o = s:option(ListValue, "mux", translate("Mux")) -o.default = "false" -o:value("true") -o:value("false") -o:depends("obfs", "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 = 16 +o.default = 32 o.rmempty = true o:depends("type", "vmess") @@ -272,10 +286,12 @@ o.rmempty = true o.default = "false" o:value("true") o:value("false") -o:depends("type", "vmess") +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:depends("obfs_vmess", "none") -- [[ sni ]]-- o = s:option(Value, "sni", translate("sni")) diff --git a/package/ntlf9t/luci-app-clash/po/zh-cn/clash.po b/package/ntlf9t/luci-app-clash/po/zh-cn/clash.po index 4dc575834f..407d4c5346 100644 --- a/package/ntlf9t/luci-app-clash/po/zh-cn/clash.po +++ b/package/ntlf9t/luci-app-clash/po/zh-cn/clash.po @@ -1038,4 +1038,7 @@ msgid "DNS Cache" msgstr "DNS缓存" msgid "Set to enable or disable dns cache" -msgstr "设置为启用或禁用dns缓存" \ No newline at end of file +msgstr "设置为启用或禁用dns缓存" + +msgid "Old Config" +msgstr "旧配置" \ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/etc/config/clash b/package/ntlf9t/luci-app-clash/root/etc/config/clash index 28c9328608..b94502184f 100644 --- a/package/ntlf9t/luci-app-clash/root/etc/config/clash +++ b/package/ntlf9t/luci-app-clash/root/etc/config/clash @@ -32,33 +32,6 @@ config clash 'config' option ping_enable '1' option dnscache '0' -config groups - option old_name '❌AdBlock' - option old_name_cfg '❌AdBlock' - option type 'select' - list other_group 'REJECT' - option name '❌AdBlock' - -config groups - option old_name '🖥️AsianTV' - option old_name_cfg '🖥️AsianTV' - option type 'select' - option name '🖥️AsianTV' - list other_group 'DIRECT' - list other_group '🔑Proxy' - -config groups - option old_name '📺GlobalTV' - option old_name_cfg '📺GlobalTV' - option type 'select' - option name '📺GlobalTV' - list other_group 'ALL' - -config groups - option type 'select' - option name '🔑Proxy' - list other_group 'ALL' - config addtype option type 'IP-CIDR' diff --git a/package/ntlf9t/luci-app-clash/root/etc/init.d/clash b/package/ntlf9t/luci-app-clash/root/etc/init.d/clash index e0b0ad85b8..3a9b1d6789 100644 --- a/package/ntlf9t/luci-app-clash/root/etc/init.d/clash +++ b/package/ntlf9t/luci-app-clash/root/etc/init.d/clash @@ -455,7 +455,7 @@ 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) - +old_conf=$(uci get clash.config.old_conf 2>/dev/null) if [ -f /etc/clash/config.yaml ];then @@ -509,8 +509,10 @@ elif [ "${core}" -eq 3 ] && [ ! -f /etc/clash/clashtun/clash ]; then exit 0 else if [ -f $CONFIG_YAML ] && [ "$(ls -l $CONFIG_YAML|awk '{print int($5/1024)}')" -ne 0 ] ; then - + + if [ -z "$old_conf" ];then check >/dev/null 2>&1 + fi yml_change >/dev/null 2>&1 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 index a9d7132933..078f64e7f8 100755 --- a/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash.sh +++ b/package/ntlf9t/luci-app-clash/root/usr/share/clash/clash.sh @@ -1,8 +1,9 @@ #!/bin/bash /etc/rc.common -. /lib/functions.sh - -subscribe_url=$(uci get clash.config.subscribe_url_clash 2>/dev/null) +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" @@ -45,11 +46,66 @@ else echo "开始下载配置" >$REAL_LOG fi sleep 1 - - wget -c4 --no-check-certificate --user-agent="Clash/OpenWRT" $subscribe_url -O 2>&1 >1 $CONFIG_YAML + + 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#$subscribe_url#$subtype" >>/usr/share/clashbackup/confit_list.conf - + 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://ssrsub2clashr.herokuapp.com/ssrsub2clash?sub=$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 @@ -59,8 +115,5 @@ else sleep 2 echo "Clash for OpenWRT" >$REAL_LOG fi - - - fi fi diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/img/33343e6117c37aaef8886179007ba6b5.png b/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png similarity index 100% rename from package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/img/33343e6117c37aaef8886179007ba6b5.png rename to package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png 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 index e7179fff42..b27dfa3088 100644 --- 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 @@ -1,12 +1 @@ - - - - - - - Clash - - -
- - +Clash Dashboard
\ No newline at end of file diff --git a/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/1.bundle.693efc9234a08d249710.min.js b/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/1.bundle.693efc9234a08d249710.min.js new file mode 100644 index 0000000000..6f912334dc --- /dev/null +++ b/package/ntlf9t/luci-app-clash/root/usr/share/clash/dashboard/js/1.bundle.693efc9234a08d249710.min.js @@ -0,0 +1,2 @@ +/*! For license information please see 1.bundle.693efc9234a08d249710.min.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[function(e,t,n){"use strict";e.exports=n(50)},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){e.exports=n(54)()},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}}(),e.exports=n(51)},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){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(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(22).Symbol;e.exports=r},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){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=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,c=/\[([^\]]+)]|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,f=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},d={s:f,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+f(r,2,"0")+":"+f(o,2,"0")},m:function(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,a),o=t-r<0,i=e.clone().add(n+(o?-1:1),a);return Number(-(n+(t-r)/(o?r-i:i-r))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(s){return{M:a,y:l,w:i,d:o,D:"date",h:r,m:n,s:t,ms:e,Q:u}[s]||String(s||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},p={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},h="en",m={};m[h]=p;var v=function(e){return e instanceof w},g=function(e,t,n){var r;if(!e)return h;if("string"==typeof e)m[e]&&(r=e),t&&(m[e]=t,r=e);else{var o=e.name;m[o]=e,r=o}return!n&&r&&(h=r),r||!n&&h},y=function(e,t,n){if(v(e))return e.clone();var r=t?"string"==typeof t?{format:t,pl:n}:t:{};return r.date=e,new w(r)},b=d;b.l=g,b.i=v,b.w=function(e,t){return y(e,{locale:t.$L,utc:t.$u,$offset:t.$offset})};var w=function(){function f(e){this.$L=this.$L||g(e.locale,null,!0),this.parse(e)}var d=f.prototype;return d.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(b.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(s);if(r)return n?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(t)}(e),this.init()},d.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},d.$utils=function(){return b},d.isValid=function(){return!("Invalid Date"===this.$d.toString())},d.isSame=function(e,t){var n=y(e);return this.startOf(t)<=n&&n<=this.endOf(t)},d.isAfter=function(e,t){return y(e)=0;d--){var p=o[d];"."===p?c(o,d):".."===p?(c(o,d),f++):f&&(c(o,d),f--)}if(!u)for(;f--;f)o.unshift("..");!u||""===o[0]||o[0]&&s(o[0])||o.unshift("");var h=o.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function d(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var p=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=d(t),o=d(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 h=function(e,t){if(!e)throw new Error("Invariant failed")};function m(e){return"/"===e.charAt(0)?e:"/"+e}function v(e){return"/"===e.charAt(0)?e.substr(1):e}function g(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 y(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function b(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 w(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(l.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=f(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function x(){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=w(e,t,d(),g.location);c.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(g.entries[g.index]=r,f({action:"REPLACE",location:r}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=g.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(65))},function(e,t,n){"use strict";var r=n(5),o=n(67),i=n(30),a=n(69),u=n(72),l=n(73),s=n(34);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||"",m=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+m)}var v=a(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),i(v,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(74),y=(e.withCredentials||l(v))&&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(68);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(5);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,n){"use strict";var r=Object.prototype.hasOwnProperty,o="~";function i(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function u(e,t,n,r,i){if("function"!=typeof n)throw new TypeError("The listener must be a function");var u=new a(n,r||e,i),l=o?o+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],u]:e._events[l].push(u):(e._events[l]=u,e._eventsCount++),e}function l(e,t){0==--e._eventsCount?e._events=new i:delete e._events[t]}function s(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(o=!1)),s.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)r.call(e,t)&&n.push(o?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},s.prototype.listeners=function(e){var t=o?o+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,i=n.length,a=new Array(i);rO.length&&O.push(e)}function z(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?"."+A(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s