diff --git a/include/cmake.mk b/include/cmake.mk index 77d85af1fa..0a20530a16 100644 --- a/include/cmake.mk +++ b/include/cmake.mk @@ -18,8 +18,28 @@ else cmake_tool=$(shell which $(1)) endif -CMAKE_C_COMPILER:=$(call cmake_tool,$(TARGET_CC_NOCACHE)) -CMAKE_CXX_COMPILER:=$(call cmake_tool,$(TARGET_CXX_NOCACHE)) +ifeq ($(CONFIG_CCACHE),) + CMAKE_C_COMPILER:=$(call cmake_tool,$(TARGET_CC)) + CMAKE_CXX_COMPILER:=$(call cmake_tool,$(TARGET_CXX)) + CMAKE_C_COMPILER_ARG1:= + CMAKE_CXX_COMPILER_ARG1:= + + CMAKE_HOST_C_COMPILER:=$(HOSTCC) + CMAKE_HOST_CXX_COMPILER:=$(HOSTCXX) + CMAKE_HOST_C_COMPILER_ARG1:= + CMAKE_HOST_CXX_COMPILER_ARG1:= +else + CCACHE:=$(STAGING_DIR_HOST)/bin/ccache + CMAKE_C_COMPILER:=$(CCACHE) + CMAKE_C_COMPILER_ARG1:=$(TARGET_CC_NOCACHE) + CMAKE_CXX_COMPILER:=$(CCACHE) + CMAKE_CXX_COMPILER_ARG1:=$(TARGET_CXX_NOCACHE) + + CMAKE_HOST_C_COMPILER:=$(CCACHE) + CMAKE_HOST_C_COMPILER_ARG1:=$(HOSTCC_NOCACHE) + CMAKE_HOST_CXX_COMPILER:=$(CCACHE) + CMAKE_HOST_CXX_COMPILER_ARG1:=$(HOSTCXX_NOCACHE) +endif CMAKE_AR:=$(call cmake_tool,$(TARGET_AR)) CMAKE_NM:=$(call cmake_tool,$(TARGET_NM)) CMAKE_RANLIB:=$(call cmake_tool,$(TARGET_RANLIB)) @@ -41,11 +61,12 @@ define Build/Configure/Default -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \ - $(if $(CONFIG_CCACHE),-DCMAKE_CXX_COMPILER_LAUNCHER="$(STAGING_DIR_HOST)/bin/ccache") \ - $(if $(CONFIG_CCACHE),-DCMAKE_C_COMPILER_LAUNCHER="$(STAGING_DIR_HOST)/bin/ccache") \ -DCMAKE_C_COMPILER="$(CMAKE_C_COMPILER)" \ + -DCMAKE_C_COMPILER_ARG1="$(CMAKE_C_COMPILER_ARG1)" \ -DCMAKE_CXX_COMPILER="$(CMAKE_CXX_COMPILER)" \ + -DCMAKE_CXX_COMPILER_ARG1="$(CMAKE_CXX_COMPILER_ARG1)" \ -DCMAKE_ASM_COMPILER="$(CMAKE_C_COMPILER)" \ + -DCMAKE_ASM_COMPILER_ARG1="$(CMAKE_C_COMPILER_ARG1)" \ -DCMAKE_EXE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \ -DCMAKE_MODULE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS) $(CMAKE_SHARED_LDFLAGS)" \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS) $(CMAKE_SHARED_LDFLAGS)" \ @@ -86,6 +107,12 @@ define Host/Configure/Default LDFLAGS="$(HOST_LDFLAGS)" \ cmake \ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER="$(CMAKE_HOST_C_COMPILER)" \ + -DCMAKE_C_COMPILER_ARG1="$(CMAKE_HOST_C_COMPILER_ARG1)" \ + -DCMAKE_CXX_COMPILER="$(CMAKE_HOST_CXX_COMPILER)" \ + -DCMAKE_CXX_COMPILER_ARG1="$(CMAKE_HOST_CXX_COMPILER_ARG1)" \ + -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \ + -DCMAKE_ASM_COMPILER_ARG1="$(CMAKE_HOST_C_COMPILER_ARG1)" \ -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \ -DCMAKE_EXE_LINKER_FLAGS:STRING="$(HOST_LDFLAGS)" \ diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 4085aa185e..602251a79b 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/feeds.mk PKG_NAME:=base-files -PKG_RELEASE:=215 +PKG_RELEASE:=216 PKG_FLAGS:=nonshared PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ diff --git a/package/base-files/files/etc/shinit b/package/base-files/files/etc/shinit index 6b715c1ef9..8c64e81563 100755 --- a/package/base-files/files/etc/shinit +++ b/package/base-files/files/etc/shinit @@ -1,4 +1,4 @@ -[ -x /bin/more ] || alias more=less +[ -x /bin/more ] || [ -x /usr/bin/more ] || alias more=less [ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi alias ll='ls -alF --color=auto' @@ -9,12 +9,24 @@ alias ll='ls -alF --color=auto' [ -x /usr/bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; } service() { - [ -f "/etc/init.d/$1" ] || { - echo "service "'"'"$1"'"'" not found, the following services are available:" - ls "/etc/init.d" + if [ -f "/etc/init.d/$1" ]; then + /etc/init.d/$@ + else + echo "Usage: service [command]" + if [ -n "$1" ]; then + echo "Service "'"'"$1"'"'" not found, the following services are available:" + else + echo "The following services are available:" + fi + for F in /etc/init.d/* ; do + printf "%-30s\t%10s\t%10s\n" "$F" \ + $( $($F enabled) && echo "enabled" || echo "disabled" ) \ + $( [ "$(ubus call service list "{ 'verbose': true, 'name': '$(basename $F)' }" \ + | jsonfilter -q -e "@.$(basename $F).instances[*].running")" = "true" ] \ + && echo "running" || echo "stopped" ) + done; return 1 - } - /etc/init.d/$@ + fi } [ -n "$KSH_VERSION" -o \! -s "$HOME/.shinit" ] || . "$HOME/.shinit" diff --git a/package/ctcgfw/luci-app-autoipsetadder/Makefile b/package/ctcgfw/luci-app-autoipsetadder/Makefile index 160bc31aa8..47dd1b24f8 100644 --- a/package/ctcgfw/luci-app-autoipsetadder/Makefile +++ b/package/ctcgfw/luci-app-autoipsetadder/Makefile @@ -19,7 +19,7 @@ define Package/luci-app-autoipsetadder SUBMENU:=3. Applications TITLE:=LuCI Support for autoipsetadder PKGARCH:=all - DEPENDS:= +httping +curl + DEPENDS:= +httping +curl +coreutils-stdbuf endef define Package/luci-app-autoipsetadder/description diff --git a/package/ctcgfw/luci-app-jd-dailybonus/Makefile b/package/ctcgfw/luci-app-jd-dailybonus/Makefile index e66652a6f0..2a4e56245a 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/Makefile +++ b/package/ctcgfw/luci-app-jd-dailybonus/Makefile @@ -12,8 +12,8 @@ LUCI_DEPENDS:=+node +node-request +coreutils +coreutils-nohup +wget LUCI_PKGARCH:=all PKG_NAME:=luci-app-jd-dailybonus -PKG_VERSION:=0.8.7 -PKG_RELEASE:=20201031 +PKG_VERSION:=0.8.8 +PKG_RELEASE:=20201204 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/package/ctcgfw/luci-app-jd-dailybonus/luasrc/controller/jd-dailybonus.lua b/package/ctcgfw/luci-app-jd-dailybonus/luasrc/controller/jd-dailybonus.lua index 250a7f4a48..38914fe751 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/luasrc/controller/jd-dailybonus.lua +++ b/package/ctcgfw/luci-app-jd-dailybonus/luasrc/controller/jd-dailybonus.lua @@ -5,7 +5,7 @@ function index() if not nixio.fs.access("/etc/config/jd-dailybonus") then return end - + entry({"admin", "services", "jd-dailybonus"}, alias("admin", "services", "jd-dailybonus", "client"), _("JD-DailyBonus"), 10).dependent = true -- 首页 entry({"admin", "services", "jd-dailybonus", "client"}, cbi("jd-dailybonus/client"),_("Client"), 10).leaf = true -- 基本设置 entry({"admin", "services", "jd-dailybonus", "log"},form("jd-dailybonus/log"),_("Log"), 30).leaf = true -- 日志页面 @@ -32,7 +32,7 @@ function run() local failed = luci.http.formvalue("failed") local name = "" uci:foreach("vssr", "global", function(s) name = s[".name"] end) - + if cookie ~= " " then uci:set("jd-dailybonus", '@global[0]', 'auto_update', auto_update) uci:set("jd-dailybonus", '@global[0]', 'auto_update_time', auto_update_time) @@ -43,8 +43,8 @@ function run() uci:set("jd-dailybonus", '@global[0]', 'cookie2', cookie2) uci:set("jd-dailybonus", '@global[0]', 'serverchan', serverchan) uci:set("jd-dailybonus", '@global[0]', 'failed', failed) - uci:save("jd-dailybonus") - uci:commit("jd-dailybonus") + uci:save("jd-dailybonus") + uci:commit("jd-dailybonus") luci.sys.call("/usr/share/jd-dailybonus/newapp.sh -r") luci.sys.call("/usr/share/jd-dailybonus/newapp.sh -a") e.error = 0 diff --git a/package/ctcgfw/luci-app-jd-dailybonus/root/etc/config/jd-dailybonus b/package/ctcgfw/luci-app-jd-dailybonus/root/etc/config/jd-dailybonus index 99178b2af9..14a038cb7c 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/root/etc/config/jd-dailybonus +++ b/package/ctcgfw/luci-app-jd-dailybonus/root/etc/config/jd-dailybonus @@ -1,9 +1,9 @@ config global - option version '1.79' + option version '1.87' option auto_run_time '1' option auto_run '1' option auto_update_time '1' option auto_update '1' option stop '0' option failed '0' - option remote_url 'https://raw.githubusercontent.com/NobyDa/Script/master/JD-DailyBonus/JD_DailyBonus.js' \ No newline at end of file + option remote_url 'https://cdn.jsdelivr.net/gh/NobyDa/Script/JD-DailyBonus/JD_DailyBonus.js' \ No newline at end of file diff --git a/package/ctcgfw/luci-app-jd-dailybonus/root/etc/uci-defaults/luci-jd-dailybonus b/package/ctcgfw/luci-app-jd-dailybonus/root/etc/uci-defaults/luci-jd-dailybonus old mode 100644 new mode 100755 diff --git a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/JD_DailyBonus.js b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/JD_DailyBonus.js index ea33dbaf29..53c3585f1f 100644 --- a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/JD_DailyBonus.js +++ b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/JD_DailyBonus.js @@ -2,8 +2,8 @@ 京东多合一签到脚本 -更新时间: 2020.10.24 21:00 v1.79 -有效接口: 42+ +更新时间: 2020.12.03 17:00 v1.87 +有效接口: 40+ 脚本兼容: QuantumultX, Surge, Loon, JSBox, Node.js 电报频道: @NobyDa 问题反馈: @NobyDa_bot @@ -103,112 +103,132 @@ var out = 0; //接口超时退出, 用于可能发生的网络不稳定, 0则关 var $nobyda = nobyda(); async function all() { - if (stop == 0) { - await Promise.all([ - JingDongBean(stop), //京东京豆 - JDTakeaLook(stop), //京东发现-看一看 - JingDongStore(stop), //京东超市 - JingDongWebcasts(stop), //京东直播 - JingRongBean(stop), //金融简单赚钱 - JingRongSteel(stop), //金融钢镚 - JingDongTurn(stop), //京东转盘 - JDFlashSale(stop), //京东闪购 - JDOverseas(stop), //京东国际 - JingDongCash(stop), //京东现金红包 - JDMagicCube(stop, 2), //京东小魔方 - JingDongPrize(stop), //京东抽大奖 - JingDongSubsidy(stop), //京东金贴 - JingDongGetCash(stop), //京东领现金 - JingDongShake(stop), //京东摇一摇 - JDSecKilling(stop), //京东秒杀 - DoubleElevenSale(stop), //京东超值特卖入场红包 - JingRongDoll(stop, 'JRDoll', '京东金融-签壹', '890418F764'), - JingRongDoll(stop, 'JRTwoDoll', '京东金融-签贰', '3A3E839252'), - JingRongDoll(stop, 'JRThreeDoll', '京东金融-签叁', '69F5EC743C') - ]); - await Promise.all([ - JDUserSignPre(stop, 'JDToyMusic', '京东商城-乐器', '4N6RzwtBZdtdcgodvdsK7ZEzkUbZ'), //京东玩具乐器馆 - JDUserSignPre(stop, 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'), //京东鞋靴 - JDUserSignPre(stop, 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'), //京东电竞 - JDUserSignPre(stop, 'JDCalendar', '京东日历-翻牌', '36V2Qw59VPNsuLxY84vCFtxFzrFs'), //京东日历翻牌 - JDUserSignPre(stop, 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'), //京东童装馆 - JDUserSignPre(stop, 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'), //京东母婴馆 - JDUserSignPre(stop, 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'), //京东数码电器馆 - JDUserSignPre(stop, 'JDSubsidy', '京东晚市-补贴', 'xK148m4kWj5hBcTPuJUNNXH3AkJ'), //京东晚市补贴金 - JDUserSignPre(stop, 'JDDrug', '京东商城-医药', '3tqTG5sF1xCUyC6vgEF5CLCxGn7w'), //京东医药馆 - JDUserSignPre(stop, 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'), //京东女装馆 - JDUserSignPre(stop, 'JDFineWine', '京东商城-酒饮', 'zGwAUzL3pVGjptBBGeYfpKjYdtX'), //京东酒饮馆 - JDUserSignPre(stop, 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi') //京东图书 - ]); - await Promise.all([ - JDUserSignPre(stop, 'JDSchool', '京东商城-校园', '4812pn2PAcUyfNdWr7Cvpww5MCyW'), //京东校园 - JDUserSignPre(stop, 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'), //京东健康 - JDUserSignPre(stop, 'JDPet', '京东商城-宠物', '37ta5sh5ocrMZF3Fz5UMJbTsL42'), //京东宠物馆 - JDUserSignPre(stop, 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'), //京东拍拍二手 - JDUserSignPre(stop, 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'), //京东清洁馆 - JDUserSignPre(stop, 'JDCare', '京东商城-个护', 'NJ1kd1PJWhwvhtim73VPsD1HwY3'), //京东个人护理馆 - JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'), //京东珠宝馆 - JDUserSignPre(stop, 'JDClocks', '京东商城-钟表', '2BcJPCVVzMEtMUynXkPscCSsx68W'), //京东钟表馆 - JDUserSignPre(stop, 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'), //京东美妆馆 - JDUserSignPre(stop, 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'), //京东菜场 - JDUserSignPre(stop, 'JDFood', '京东商城-美食', '4PzvVmLSBq5K63oq4oxKcDtFtzJo') //京东美食馆 - ]); - } else { - await JingDongBean(stop); //京东京豆 - await JDTakeaLook(stop); //京东发现-看一看 - await JingDongStore(stop); //京东超市 - await JingDongWebcasts(stop); //京东直播 - await JingRongBean(stop); //金融简单赚钱 - await JingRongSteel(stop); //金融钢镚 - await JingDongTurn(stop); //京东转盘 - await JDFlashSale(stop); //京东闪购 - await JDOverseas(stop); //京东国际 - await JingDongCash(stop); //京东现金红包 - await JDMagicCube(stop, 2); //京东小魔方 - await JingDongGetCash(stop); //京东领现金 - await JingDongPrize(stop); //京东抽大奖 - await JingDongSubsidy(stop); //京东金贴 - await JingDongShake(stop); //京东摇一摇 - await JDSecKilling(stop); //京东秒杀 - await DoubleElevenSale(stop); //京东超值特卖入场红包 - await JingRongDoll(stop, 'JRDoll', '京东金融-签壹', '890418F764'); - await JingRongDoll(stop, 'JRTwoDoll', '京东金融-签贰', '3A3E839252'); - await JingRongDoll(stop, 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'); - await JDUserSignPre(stop, 'JDToyMusic', '京东商城-乐器', '4N6RzwtBZdtdcgodvdsK7ZEzkUbZ'); //京东玩具乐器馆 - await JDUserSignPre(stop, 'JDSchool', '京东商城-校园', '4812pn2PAcUyfNdWr7Cvpww5MCyW'); //京东校园 - await JDUserSignPre(stop, 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'); //京东健康 - await JDUserSignPre(stop, 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'); //京东鞋靴 - await JDUserSignPre(stop, 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'); //京东电竞 - await JDUserSignPre(stop, 'JDCalendar', '京东日历-翻牌', '36V2Qw59VPNsuLxY84vCFtxFzrFs'); //京东日历翻牌 - await JDUserSignPre(stop, 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'); //京东童装馆 - await JDUserSignPre(stop, 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'); //京东母婴馆 - await JDUserSignPre(stop, 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'); //京东数码电器馆 - await JDUserSignPre(stop, 'JDSubsidy', '京东晚市-补贴', 'xK148m4kWj5hBcTPuJUNNXH3AkJ'); //京东晚市补贴金 - await JDUserSignPre(stop, 'JDClocks', '京东商城-钟表', '2BcJPCVVzMEtMUynXkPscCSsx68W'); //京东钟表馆 - await JDUserSignPre(stop, 'JDDrug', '京东商城-医药', '3tqTG5sF1xCUyC6vgEF5CLCxGn7w'); //京东医药馆 - await JDUserSignPre(stop, 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'); //京东女装馆 - await JDUserSignPre(stop, 'JDPet', '京东商城-宠物', '37ta5sh5ocrMZF3Fz5UMJbTsL42'); //京东宠物馆 - await JDUserSignPre(stop, 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi'); //京东图书 - await JDUserSignPre(stop, 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'); //京东拍拍二手 - await JDUserSignPre(stop, 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'); //京东美妆馆 - await JDUserSignPre(stop, 'JDFineWine', '京东商城-酒饮', 'zGwAUzL3pVGjptBBGeYfpKjYdtX'); //京东酒饮馆 - await JDUserSignPre(stop, 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'); //京东菜场 - await JDUserSignPre(stop, 'JDFood', '京东商城-美食', '4PzvVmLSBq5K63oq4oxKcDtFtzJo'); //京东美食馆 - await JDUserSignPre(stop, 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'); //京东清洁馆 - await JDUserSignPre(stop, 'JDCare', '京东商城-个护', 'NJ1kd1PJWhwvhtim73VPsD1HwY3'); //京东个人护理馆 - await JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'); //京东珠宝馆 + merge = {}; + switch (stop) { + case 0: + await Promise.all([ + JingDongBean(stop), //京东京豆 + JDTakeaLook(stop), //京东发现-看一看 + JingDongStore(stop), //京东超市 + JingDongWebcasts(stop), //京东直播 + JingRongBean(stop), //金融简单赚钱 + JingRongSteel(stop), //金融钢镚 + JingDongTurn(stop), //京东转盘 + JDFlashSale(stop), //京东闪购 + JDOverseas(stop), //京东国际 + JingDongCash(stop), //京东现金红包 + JDMagicCube(stop, 2), //京东小魔方 + JingDongSubsidy(stop), //京东金贴 + JingDongGetCash(stop), //京东领现金 + JingDongShake(stop), //京东摇一摇 + JDSecKilling(stop), //京东秒杀 + JRLuckyLottery(stop), //金融抽奖顶部签到 + JingDongBuyCar(stop), //京东汽车 + JingRongDoll(stop, 'JRTwoDoll', '京东金融-签贰', '3A3E839252'), + JingRongDoll(stop, 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'), + JingRongDoll(stop, 'JRFourDoll', '京东金融-签肆', '30C4F86264'), + JingRongDoll(stop, 'JRFiveDoll', '京东金融-签伍', '1D06AA3B0F') + ]); + await Promise.all([ + // JDUserSignPre(stop, 'JDComputer', '京东电脑-数码', '31HbNBjr6YLyZfJtR5biFFc9ZYXN'), //京东电脑数码馆 + JDUserSignPre(stop, 'JDUnderwear', '京东商城-内衣', '4PgpL1xqPSW1sVXCJ3xopDbB1f69'), //京东内衣馆 + // JDUserSignPre(stop, 'JDToyMusic', '京东商城-乐器', '4N6RzwtBZdtdcgodvdsK7ZEzkUbZ'), //京东玩具乐器馆 + JDUserSignPre(stop, 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'), //京东鞋靴 + // JDUserSignPre(stop, 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'), //京东电竞 + JDUserSignPre(stop, 'JDCalendar', '京东日历-翻牌', '36V2Qw59VPNsuLxY84vCFtxFzrFs'), //京东日历翻牌 + JDUserSignPre(stop, 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'), //京东童装馆 + JDUserSignPre(stop, 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'), //京东母婴馆 + JDUserSignPre(stop, 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'), //京东数码电器馆 + JDUserSignPre(stop, 'JDSubsidy', '京东晚市-补贴', 'xK148m4kWj5hBcTPuJUNNXH3AkJ'), //京东晚市补贴金 + JDUserSignPre(stop, 'JDDrug', '京东商城-医药', '3tqTG5sF1xCUyC6vgEF5CLCxGn7w'), //京东医药馆 + JDUserSignPre(stop, 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'), //京东女装馆 + JDUserSignPre(stop, 'JDFineWine', '京东商城-酒饮', 'zGwAUzL3pVGjptBBGeYfpKjYdtX'), //京东酒饮馆 + JDUserSignPre(stop, 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi') //京东图书 + ]); + await Promise.all([ + JDUserSignPre(stop, 'JDSuitcase', '京东商城-箱包', 'ZrH7gGAcEkY2gH8wXqyAPoQgk6t'), //京东箱包馆 + // JDUserSignPre(stop, 'JDConstell', '京东商城-京鱼', '3BPdJHCESW5cfak79ZRz37wTKbuV'), //京东京鱼座 + JDUserSignPre(stop, 'JDSchool', '京东商城-校园', '4812pn2PAcUyfNdWr7Cvpww5MCyW'), //京东校园 + JDUserSignPre(stop, 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'), //京东健康 + JDUserSignPre(stop, 'JDPet', '京东商城-宠物', '37ta5sh5ocrMZF3Fz5UMJbTsL42'), //京东宠物馆 + JDUserSignPre(stop, 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'), //京东拍拍二手 + JDUserSignPre(stop, 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'), //京东清洁馆 + JDUserSignPre(stop, 'JDCare', '京东商城-个护', 'NJ1kd1PJWhwvhtim73VPsD1HwY3'), //京东个人护理馆 + JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'), //京东珠宝馆 + JDUserSignPre(stop, 'JDClocks', '京东商城-钟表', '2BcJPCVVzMEtMUynXkPscCSsx68W'), //京东钟表馆 + JDUserSignPre(stop, 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'), //京东美妆馆 + JDUserSignPre(stop, 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'), //京东菜场 + // JDUserSignPre(stop, 'JDFood', '京东商城-美食', '4PzvVmLSBq5K63oq4oxKcDtFtzJo') //京东美食馆 + ]); + await Promise.all([ + JingRongDoll(stop, 'JRSixDoll', '金融现金-双签', 'F68B2C3E71'), //京东金融 现金双签 + JDJTDoubleSign(stop), //京东金融 金贴双签 + JRDoubleSign(stop), //京东金融 京豆双签 + JingDongSpeedUp(stop) //京东天天加速 + ]) + break; + default: + await JingDongBean(stop); //京东京豆 + await JDTakeaLook(stop); //京东发现-看一看 + await JingDongStore(stop); //京东超市 + await JingDongWebcasts(stop); //京东直播 + await JingRongBean(stop); //金融简单赚钱 + await JingRongSteel(stop); //金融钢镚 + await JingDongTurn(stop); //京东转盘 + await JDFlashSale(stop); //京东闪购 + await JDOverseas(stop); //京东国际 + await JingDongCash(stop); //京东现金红包 + await JDMagicCube(stop, 2); //京东小魔方 + await JingDongGetCash(stop); //京东领现金 + await JingDongSubsidy(stop); //京东金贴 + await JingDongShake(stop); //京东摇一摇 + await JDSecKilling(stop); //京东秒杀 + await JRLuckyLottery(stop); //金融抽奖顶部签到 + await JingDongBuyCar(stop); //京东汽车 + await JingRongDoll(stop, 'JRTwoDoll', '京东金融-签贰', '3A3E839252'); + await JingRongDoll(stop, 'JRThreeDoll', '京东金融-签叁', '69F5EC743C'); + await JingRongDoll(stop, 'JRFourDoll', '京东金融-签肆', '30C4F86264'); + await JingRongDoll(stop, 'JRFiveDoll', '京东金融-签伍', '1D06AA3B0F'); + await JDUserSignPre(stop, 'JDUnderwear', '京东商城-内衣', '4PgpL1xqPSW1sVXCJ3xopDbB1f69'); //京东内衣馆 + await JDUserSignPre(stop, 'JDSuitcase', '京东商城-箱包', 'ZrH7gGAcEkY2gH8wXqyAPoQgk6t'); //京东箱包馆 + // await JDUserSignPre(stop, 'JDComputer', '京东电脑-数码', '31HbNBjr6YLyZfJtR5biFFc9ZYXN'); //京东电脑数码馆 + // await JDUserSignPre(stop, 'JDConstell', '京东商城-京鱼', '3BPdJHCESW5cfak79ZRz37wTKbuV'); //京东京鱼座 + // await JDUserSignPre(stop, 'JDToyMusic', '京东商城-乐器', '4N6RzwtBZdtdcgodvdsK7ZEzkUbZ'); //京东玩具乐器馆 + await JDUserSignPre(stop, 'JDSchool', '京东商城-校园', '4812pn2PAcUyfNdWr7Cvpww5MCyW'); //京东校园 + await JDUserSignPre(stop, 'JDHealth', '京东商城-健康', 'w2oeK5yLdHqHvwef7SMMy4PL8LF'); //京东健康 + await JDUserSignPre(stop, 'JDShoes', '京东商城-鞋靴', '4RXyb1W4Y986LJW8ToqMK14BdTD'); //京东鞋靴 + // await JDUserSignPre(stop, 'JDEsports', '京东商城-电竞', 'CHdHQhA5AYDXXQN9FLt3QUAPRsB'); //京东电竞 + await JDUserSignPre(stop, 'JDCalendar', '京东日历-翻牌', '36V2Qw59VPNsuLxY84vCFtxFzrFs'); //京东日历翻牌 + await JDUserSignPre(stop, 'JDChild', '京东商城-童装', '3Af6mZNcf5m795T8dtDVfDwWVNhJ'); //京东童装馆 + await JDUserSignPre(stop, 'JDBaby', '京东商城-母婴', '3BbAVGQPDd6vTyHYjmAutXrKAos6'); //京东母婴馆 + await JDUserSignPre(stop, 'JD3C', '京东商城-数码', '4SWjnZSCTHPYjE5T7j35rxxuMTb6'); //京东数码电器馆 + await JDUserSignPre(stop, 'JDSubsidy', '京东晚市-补贴', 'xK148m4kWj5hBcTPuJUNNXH3AkJ'); //京东晚市补贴金 + await JDUserSignPre(stop, 'JDClocks', '京东商城-钟表', '2BcJPCVVzMEtMUynXkPscCSsx68W'); //京东钟表馆 + await JDUserSignPre(stop, 'JDDrug', '京东商城-医药', '3tqTG5sF1xCUyC6vgEF5CLCxGn7w'); //京东医药馆 + await JDUserSignPre(stop, 'JDWomen', '京东商城-女装', 'DpSh7ma8JV7QAxSE2gJNro8Q2h9'); //京东女装馆 + await JDUserSignPre(stop, 'JDPet', '京东商城-宠物', '37ta5sh5ocrMZF3Fz5UMJbTsL42'); //京东宠物馆 + await JDUserSignPre(stop, 'JDBook', '京东商城-图书', '3SC6rw5iBg66qrXPGmZMqFDwcyXi'); //京东图书 + await JDUserSignPre(stop, 'JDShand', '京东拍拍-二手', '3S28janPLYmtFxypu37AYAGgivfp'); //京东拍拍二手 + await JDUserSignPre(stop, 'JDMakeup', '京东商城-美妆', '2smCxzLNuam5L14zNJHYu43ovbAP'); //京东美妆馆 + await JDUserSignPre(stop, 'JDFineWine', '京东商城-酒饮', 'zGwAUzL3pVGjptBBGeYfpKjYdtX'); //京东酒饮馆 + await JDUserSignPre(stop, 'JDVege', '京东商城-菜场', 'Wcu2LVCFMkBP3HraRvb7pgSpt64'); //京东菜场 + // await JDUserSignPre(stop, 'JDFood', '京东商城-美食', '4PzvVmLSBq5K63oq4oxKcDtFtzJo'); //京东美食馆 + await JDUserSignPre(stop, 'JDClean', '京东商城-清洁', '2Tjm6ay1ZbZ3v7UbriTj6kHy9dn6'); //京东清洁馆 + await JDUserSignPre(stop, 'JDCare', '京东商城-个护', 'NJ1kd1PJWhwvhtim73VPsD1HwY3'); //京东个人护理馆 + await JDUserSignPre(stop, 'JDJewels', '京东商城-珠宝', 'zHUHpTHNTaztSRfNBFNVZscyFZU'); //京东珠宝馆 + await JingRongDoll(stop, 'JRSixDoll', '金融现金-双签', 'F68B2C3E71'); //京东金融 现金双签 + await JDJTDoubleSign(stop); //京东金融 金贴双签 + await JRDoubleSign(stop); //京东金融 京豆双签 + await JingDongSpeedUp(stop); //京东天天加速 + break; } - await Promise.all([ - JingDongSpeedUp(stop), //京东天天加速 - JRDoubleSign(stop) //金融双签 - ]) await Promise.all([ TotalSteel(), //总钢镚查询 TotalCash(), //总红包查询 TotalBean(), //总京豆查询 TotalSubsidy(), //总金贴查询 TotalMoney() //总现金查询 - ]) + ]); await notify(); //通知模块 } @@ -218,6 +238,8 @@ function notify() { var bean = 0; var steel = 0; var cash = 0; + var money = 0; + var subsidy = 0; var success = 0; var fail = 0; var err = 0; @@ -226,43 +248,45 @@ function notify() { bean += merge[i].bean ? Number(merge[i].bean) : 0 steel += merge[i].steel ? Number(merge[i].steel) : 0 cash += merge[i].Cash ? Number(merge[i].Cash) : 0 + money += merge[i].Money ? Number(merge[i].Money) : 0 + subsidy += merge[i].subsidy ? Number(merge[i].subsidy) : 0 success += merge[i].success ? Number(merge[i].success) : 0 fail += merge[i].fail ? Number(merge[i].fail) : 0 err += merge[i].error ? Number(merge[i].error) : 0 notify += merge[i].notify ? "\n" + merge[i].notify : "" } - var Cash = merge.TotalCash.TCash ? merge.TotalCash.TCash + "红包" : "" - var Steel = merge.TotalSteel.TSteel ? merge.TotalSteel.TSteel + "钢镚" + (Cash ? ", " : "") : "" - var beans = merge.TotalBean.Qbear ? merge.TotalBean.Qbear + "京豆" + (Steel || Cash ? ", " : "") : "" - var bsc = beans ? "\n" : Steel ? "\n" : Cash ? "\n" : "获取失败\n" - var Money = merge.TotalMoney.TMoney ? `${merge.TotalMoney.TMoney}现金` : "" - var Subsidy = merge.TotalSubsidy.TSubsidy ? `${merge.TotalSubsidy.TSubsidy}金贴${Money?", ":""}` : "" - var Sbsc = Subsidy ? "\n" : Money ? "\n" : "获取失败\n" - var Tbean = bean ? `${bean.toFixed(0)}京豆${steel||cash?", ":""}` : "" - var TSteel = steel ? `${steel.toFixed(2)}钢镚${cash?", ":""}` : "" - var TCash = cash ? `${cash.toFixed(2)}红包` : "" - var Tbsc = Tbean ? "\n" : TSteel ? "\n" : TCash ? "\n" : "获取失败\n" - var Ts = success ? "成功" + success + "个" + (fail || err ? ", " : "") : "" - var Tf = fail ? "失败" + fail + "个" + (err ? ", " : "") : "" - var Te = err ? "错误" + err + "个\n" : success ? "\n" : fail ? "\n" : "获取失败\n" - var one = "【签到概览】: " + Ts + Tf + Te - var two = "【签到总计】: " + Tbean + TSteel + TCash + Tbsc - var three = "【账号总计】: " + beans + Steel + Cash + bsc - var four = "【其他总计】: " + Subsidy + Money + Sbsc + var Cash = merge.TotalCash && merge.TotalCash.TCash ? `${merge.TotalCash.TCash}红包` : "" + var Steel = merge.TotalSteel && merge.TotalSteel.TSteel ? `${merge.TotalSteel.TSteel}钢镚${Cash?`, `:``}` : `` + var beans = merge.TotalBean && merge.TotalBean.Qbear ? `${merge.TotalBean.Qbear}京豆${Steel||Cash?`, `:``}` : "" + var Money = merge.TotalMoney && merge.TotalMoney.TMoney ? `${merge.TotalMoney.TMoney}现金` : "" + var Subsidy = merge.TotalSubsidy && merge.TotalSubsidy.TSubsidy ? `${merge.TotalSubsidy.TSubsidy}金贴${Money?", ":""}` : "" + var Tbean = bean ? `${bean.toFixed(0)}京豆${steel?", ":""}` : "" + var TSteel = steel ? `${steel.toFixed(2)}钢镚` : "" + var TCash = cash ? `${cash.toFixed(2)}红包${subsidy||money?", ":""}` : "" + var TSubsidy = subsidy ? `${subsidy.toFixed(2)}金贴${money?", ":""}` : "" + var TMoney = money ? `${money.toFixed(2)}现金` : "" + var Ts = success ? `成功${success}个${fail||err?`, `:``}` : `` + var Tf = fail ? `失败${fail}个${err?`, `:``}` : `` + var Te = err ? `错误${err}个` : `` + var one = `【签到概览】: ${Ts+Tf+Te}${Ts||Tf||Te?`\n`:`获取失败\n`}` + var two = Tbean || TSteel ? `【签到奖励】: ${Tbean+TSteel}\n` : `` + var three = TCash || TSubsidy || TMoney ? `【其他奖励】: ${TCash+TSubsidy+TMoney}\n` : `` + var four = `【账号总计】: ${beans+Steel+Cash}${beans||Steel||Cash?`\n`:`获取失败\n`}` + var five = `【其他总计】: ${Subsidy+Money}${Subsidy||Money?`\n`:`获取失败\n`}` var disa = $nobyda.disable ? "\n检测到上次执行意外崩溃, 已为您自动禁用相关接口. 如需开启请前往BoxJs ‼️‼️\n" : "" - var DName = merge.TotalBean.nickname ? merge.TotalBean.nickname : "获取失败" - var Name = add ? DualAccount ? "【签到号一】: " + DName + "\n" : "【签到号二】: " + DName + "\n" : "" - console.log("\n" + Name + one + two + three + four + disa + notify) + var DName = merge.TotalBean && merge.TotalBean.nickname ? merge.TotalBean.nickname : "获取失败" + var Name = add ? DualAccount ? `【签到号一】: ${DName}\n` : `【签到号二】: ${DName}\n` : "" + console.log("\n" + Name + one + two + three + four + five + disa + notify) if ($nobyda.isJSBox) { if (add && DualAccount) { Shortcut = Name + one + two + three + "\n" } else if (!add && DualAccount) { - $intents.finish(Name + one + two + three + four + notify) + $intents.finish(Name + one + two + three + four + five + notify) } else if (typeof Shortcut != "undefined") { $intents.finish(Shortcut + Name + one + two + three) } } - if (!$nobyda.isNode) $nobyda.notify("", "", Name + one + two + three + four + disa + notify); + if (!$nobyda.isNode) $nobyda.notify("", "", Name + one + two + three + four + five + disa + notify); if (DualAccount) { double(); } else { @@ -278,7 +302,6 @@ function notify() { } function ReadCookie() { - initial() DualAccount = true; const EnvInfo = $nobyda.isJSBox ? "JD_Cookie" : "CookieJD" const EnvInfo2 = $nobyda.isJSBox ? "JD_Cookie2" : "CookieJD2" @@ -317,7 +340,6 @@ function ReadCookie() { } function double() { - initial() add = true DualAccount = false if (DualKey || $nobyda.read($nobyda.isJSBox ? "JD_Cookie2" : "CookieJD2")) { @@ -330,6 +352,7 @@ function double() { } function JingDongBean(s) { + merge.JDBean = {}; return new Promise(resolve => { if (disable("JDBean")) return resolve() setTimeout(() => { @@ -394,6 +417,7 @@ function JingDongBean(s) { } function JingDongTurn(s) { + merge.JDTurn = {}, merge.JDTurn.notify = "", merge.JDTurn.success = 0, merge.JDTurn.bean = 0; return new Promise((resolve, reject) => { if (disable("JDTurn")) return reject() const JDTUrl = { @@ -492,6 +516,7 @@ function JingDongTurnSign(s, code) { } function JingRongBean(s) { + merge.JRBean = {}; return new Promise(resolve => { if (disable("JRBean")) return resolve() setTimeout(() => { @@ -554,6 +579,7 @@ function JRBeanCheckin(s, amount) { const Details = LogDetails ? "response:\n" + data : ''; if (data.match(/\"rewardCode\":\"00000\"/)) { console.log("\n" + "京东金融-金贴签到成功 " + Details) + merge.JRBean.subsidy = amount || 0 merge.JRBean.notify = `京东金融-金贴: 成功, 明细: ${amount || `无`}金贴 💰` merge.JRBean.success = 1 } else { @@ -579,15 +605,16 @@ function JRBeanCheckin(s, amount) { } function JingRongSteel(s) { + merge.JRSteel = {}; return new Promise(resolve => { if (disable("JRSteel")) return resolve() setTimeout(() => { const JRSUrl = { - url: 'https://ms.jr.jd.com/gw/generic/gry/h5/m/signIn', + url: 'https://ms.jr.jd.com/gw/generic/hy/h5/m/signIn1', headers: { Cookie: KEY }, - body: "reqData=%7B%22channelSource%22%3A%22JRAPP%22%2C%22riskDeviceParam%22%3A%22%7B%7D%22%7D" + body: "reqData=%7B%22channelSource%22%3A%22JRAPP6.0%22%2C%22riskDeviceParam%22%3A%22%7B%7D%22%7D" }; $nobyda.post(JRSUrl, function(error, response, data) { try { @@ -597,7 +624,8 @@ function JingRongSteel(s) { if (data.match(/\"resBusiCode\":0/)) { console.log("\n" + "京东金融-钢镚签到成功 " + Details) const leng = cc.resultData.resBusiData.actualTotalRewardsValue - merge.JRSteel.steel = leng ? leng > 9 ? `0.${leng}` : `0.0${leng}` : 0 + const spare = cc.resultData.resBusiData.baseReward + merge.JRSteel.steel = leng ? leng > 9 ? `0.${leng}` : `0.0${leng}` : spare ? spare : 0 merge.JRSteel.notify = `京东金融-钢镚: 成功, 明细: ${merge.JRSteel.steel || `无`}钢镚 💰` merge.JRSteel.success = 1 } else { @@ -625,6 +653,7 @@ function JingRongSteel(s) { } function JRDoubleSign(s) { + merge.JRDSign = {}; return new Promise(resolve => { if (disable("JRDSign")) return resolve() setTimeout(() => { @@ -648,15 +677,17 @@ function JRDoubleSign(s) { merge.JRDSign.notify = "京东金融-双签: 成功, 明细: " + merge.JRDSign.bean + "京豆 🐶" merge.JRDSign.success = 1 } else { - console.log("\n" + "京东金融-双签签到失败 " + Details) - merge.JRDSign.fail = 1 if (data.match(/已领取/)) { merge.JRDSign.notify = "京东金融-双签: 失败, 原因: 已签过 ⚠️" } else if (data.match(/未在/)) { merge.JRDSign.notify = "京东金融-双签: 失败, 未在京东签到 ⚠️" + } else if (data.match(/303sq|400sq|重复提交/)) { + return } else { merge.JRDSign.notify = "京东金融-双签: 失败, 原因: 无奖励 ⚠️" } + console.log("\n" + "京东金融-双签签到失败 " + Details) + merge.JRDSign.fail = 1 } } else { console.log("\n" + "京东金融-双签签到失败 " + Details) @@ -680,6 +711,7 @@ function JRDoubleSign(s) { } function JingDongShake(s) { + if (!merge.JDShake) merge.JDShake = {}, merge.JDShake.success = 0, merge.JDShake.bean = 0, merge.JDShake.notify = ''; return new Promise(resolve => { if (disable("JDShake")) return resolve() setTimeout(() => { @@ -743,6 +775,7 @@ function JingDongShake(s) { } function JDUserSignPre(s, key, title, ac) { + merge[key] = {}; if ($nobyda.isJSBox) { return JDUserSignPre2(s, key, title, ac); } else { @@ -922,7 +955,8 @@ function JDUserSign1(s, key, title, body) { } else if (data.match(/\"code\":\"?3\"?/)) { merge[key].notify = `${title}: 失败, 原因: Cookie失效‼️` } else { - merge[key].notify = `${title}: 失败, 原因: 未知 ⚠️` + const ng = data.match(/\"(errorMessage|subCodeMsg)\":\"(.+?)\"/) + merge[key].notify = `${title}: 失败, ${ng?ng[2]:`原因: 未知`} ⚠️` } merge[key].fail = 1 } @@ -981,7 +1015,8 @@ async function JDUserSign2(s, key, title, tid) { } else if (data.match(/(没有登录|B0001)/)) { merge[key].notify = `${title}: 失败, 原因: Cookie失效‼️` } else { - merge[key].notify = `${title}: 失败, 原因: 未知 ⚠️` + const ng = data.match(/\"(errorMessage|subCodeMsg)\":\"(.+?)\"/) + merge[key].notify = `${title}: 失败, ${ng?ng[2]:`原因: 未知`} ⚠️` } merge[key].fail = 1 } @@ -998,6 +1033,7 @@ async function JDUserSign2(s, key, title, tid) { } function JDFlashSale(s) { + merge.JDFSale = {}; return new Promise(resolve => { if (disable("JDFSale")) return resolve() setTimeout(() => { @@ -1015,7 +1051,7 @@ function JDFlashSale(s) { } else { const Details = LogDetails ? "response:\n" + data : ''; const cc = JSON.parse(data) - if (cc.result.code == 0) { + if (cc.result && cc.result.code == 0) { console.log("\n" + "京东商城-闪购签到成功 " + Details) merge.JDFSale.bean = cc.result.jdBeanNum || 0 merge.JDFSale.notify = "京东商城-闪购: 成功, 明细: " + (merge.JDFSale.bean || "无") + "京豆 🐶" @@ -1096,6 +1132,7 @@ function FlashSaleDivide(s) { } function JingDongCash(s) { + merge.JDCash = {}; return new Promise(resolve => { if (disable("JDCash")) return resolve() setTimeout(() => { @@ -1144,6 +1181,7 @@ function JingDongCash(s) { } function JDMagicCube(s, sign) { + merge.JDCube = {}; return new Promise((resolve, reject) => { if (disable("JDCube")) return reject() const JDUrl = { @@ -1229,114 +1267,8 @@ function JDMagicCubeSign(s, id) { }); } -function JingDongPrize(s) { - return new Promise(resolve => { - if (disable("JDPrize")) return resolve() - setTimeout(() => { - const JDkey = { - url: 'https://api.m.jd.com/client.action?functionId=vvipscdp_raffleAct_index&client=apple&clientVersion=8.1.0&appid=member_benefit_m', - headers: { - Cookie: KEY, - Referer: "https://jdmall.m.jd.com/beansForPrizes", - } - }; - $nobyda.get(JDkey, async function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? "response:\n" + data : ''; - if (data.match(/\"raffleActKey\":\"[a-zA-z0-9]{3,}\"/)) { - const cc = JSON.parse(data) - merge.JDPrize.key = cc.data.floorInfoList[0].detail.raffleActKey - console.log("\n" + "京东商城-大奖查询成功 " + Details) - if (merge.JDPrize.key) { - await JDPrizeCheckin(s) - } else { - merge.JDPrize.notify = "京东商城-大奖: 失败, 原因: 无奖池 ⚠️" - merge.JDPrize.fail = 1 - } - } else { - console.log("\n" + "京东商城-大奖查询KEY失败 " + Details) - merge.JDPrize.fail = 1 - if (data.match(/(未登录|\"101\")/)) { - merge.JDPrize.notify = "京东大奖-登录: 失败, 原因: Cookie失效‼️" - } else { - merge.JDPrize.notify = "京东大奖-登录: 失败, 原因: 未知 ⚠️" - } - } - } - } catch (eor) { - $nobyda.AnError("京东大奖-查询", "JDPrize", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - -function JDPrizeCheckin(s) { - return new Promise(resolve => { - setTimeout(() => { - const JDPUrl = { - url: 'https://api.m.jd.com/client.action?functionId=vvipscdp_raffleAct_lotteryDraw&body=%7B%22raffleActKey%22%3A%22' + merge.JDPrize.key + '%22%2C%22drawType%22%3A0%2C%22riskInformation%22%3A%7B%7D%7D&client=apple&clientVersion=8.1.0&appid=member_benefit_m', - headers: { - Cookie: KEY, - Referer: "https://jdmall.m.jd.com/beansForPrizes", - } - }; - $nobyda.get(JDPUrl, function(error, response, data) { - try { - if (error) { - throw new Error(error) - } else { - const Details = LogDetails ? "response:\n" + data : ''; - const c = JSON.parse(data) - if (data.match(/\"success\":true/)) { - console.log("\n" + "京东商城-大奖签到成功 " + Details) - merge.JDPrize.success = 1 - if (data.match(/\"beanNumber\":\d+/)) { - merge.JDPrize.notify = "京东商城-大奖: 成功, 明细: " + c.data.beanNumber + "京豆 🐶" - merge.JDPrize.bean = c.data.beanNumber - } else if (data.match(/\"couponInfoVo\"/)) { - if (data.match(/\"limitStr\"/)) { - merge.JDPrize.notify = "京东商城-大奖: 获得满" + c.data.couponInfoVo.quota + "减" + c.data.couponInfoVo.discount + "优惠券→ " + c.data.couponInfoVo.limitStr - } else { - merge.JDPrize.notify = "京东商城-大奖: 成功, 明细: 优惠券" - } - } else if (data.match(/\"pitType\":0/)) { - merge.JDPrize.notify = "京东商城-大奖: 成功, 明细: 未中奖 🐶" - } else { - merge.JDPrize.notify = "京东商城-大奖: 成功, 明细: 未知 🐶" - } - } else { - console.log("\n" + "京东商城-大奖签到失败 " + Details) - merge.JDPrize.fail = 1 - if (data.match(/(已用光|7000003)/)) { - merge.JDPrize.notify = "京东商城-大奖: 失败, 原因: 已签过 ⚠️" - } else if (data.match(/(未登录|\"101\")/)) { - merge.JDPrize.notify = "京东商城-大奖: 失败, 原因: Cookie失效‼️" - } else if (data.match(/7000005/)) { - merge.JDPrize.notify = "京东商城-大奖: 失败, 原因: 未中奖 ⚠️" - } else { - merge.JDPrize.notify = "京东商城-大奖: 失败, 原因: 未知 ⚠️" - } - } - } - } catch (eor) { - $nobyda.AnError("京东大奖-签到", "JDPrize", eor, response, data) - } finally { - resolve() - } - }) - }, s) - if (out) setTimeout(resolve, out + s) - }); -} - function JingDongSpeedUp(s, id) { + if (!merge.SpeedUp) merge.SpeedUp = {}, merge.SpeedUp.bean = 0; return new Promise(resolve => { if (disable("SpeedUp")) return resolve() setTimeout(() => { @@ -1417,7 +1349,7 @@ function JingDongSpeedUp(s, id) { } if (!merge.SpeedUp.notify) { merge.SpeedUp.fail = 1 - merge.SpeedUp.notify = "京东天天-加速: 失败, 原因: 未知 ⚠️" + merge.SpeedUp.notify = "京东天天-加速: 失败, 原因: 无任务 ⚠️" } console.log("\n天天加速-判断状态失败") } @@ -1697,6 +1629,7 @@ function JDUseProps(s, PropID) { } function JingDongSubsidy(s) { + merge.subsidy = {}; return new Promise(resolve => { if (disable("subsidy")) return resolve() setTimeout(() => { @@ -1716,6 +1649,7 @@ function JingDongSubsidy(s) { if (data.match(/\"msg\":\"操作成功\"/)) { console.log("\n" + "京东商城-金贴签到成功 " + Details) const qt = data.match(/\"thisAmountStr\":\"(.+?)\"/) + merge.subsidy.subsidy = qt ? qt[1] : 0; merge.subsidy.notify = `京东商城-金贴: 成功, 明细: ${qt?qt[1]:`无`}金贴 💰` merge.subsidy.success = 1 } else { @@ -1741,7 +1675,8 @@ function JingDongSubsidy(s) { }); } -function JingRongDoll(s, key, title, code, type, num) { +function JingRongDoll(s, key, title, code, type, num, award) { + merge[key] = {}; return new Promise(resolve => { if (disable(key)) return resolve() setTimeout(() => { @@ -1750,7 +1685,7 @@ function JingRongDoll(s, key, title, code, type, num) { headers: { Cookie: KEY }, - body: `reqData=%7B%22actCode%22%3A%22${code}%22%2C%22type%22%3A${type?type:`3`}%7D` + body: `reqData=${encodeURIComponent(`{"actCode":"${code}","type":${type?type:`3`}${code=='F68B2C3E71'?`,"frontParam":{"belong":"xianjin"}`:``}}`)}` }; $nobyda.post(DollUrl, async function(error, response, data) { try { @@ -1761,34 +1696,44 @@ function JingRongDoll(s, key, title, code, type, num) { const Details = LogDetails ? "response:\n" + data : ''; if (cc.resultCode == 0) { if (cc.resultData.data.businessData != null) { + console.log(`\n${title}查询成功 ${Details}`) if (cc.resultData.data.businessData.pickStatus == 2) { - console.log(`\n${title}查询成功 ${Details}`) - if (data.match(/\"rewardPrice\":\"?(\d+)/)) { - var JRDoll_bean = data.match(/\"rewardPrice\":\"?(\d+)/)[1] - await JingRongDoll(s, key, title, code, '4', JRDoll_bean) + if (data.match(/\"rewardPrice\":\"\d.*?\"/)) { + const JRDoll_bean = data.match(/\"rewardPrice\":\"(\d.*?)\"/)[1] + const JRDoll_type = data.match(/\"rewardName\":\"金贴奖励\"/) ? true : false + await JingRongDoll(s, key, title, code, '4', JRDoll_bean, JRDoll_type) } else { merge[key].success = 1 - merge[key].notify = `${title}: 成功, 明细: 无京豆 🐶` + merge[key].notify = `${title}: 成功, 明细: 无奖励 🐶` } + } else if (cc.resultData.data.businessData.businessCode === '000sq' && code === 'F68B2C3E71') { + const ct = data.match(/"count":(\d+),/) + merge[key].success = 1 + merge[key].Money = ct ? ct[1] > 9 ? `0.${ct[1]}` : `0.0${ct[1]}` : 0 + merge[key].notify = `${title}: 成功, 明细: ${merge[key].Money||`无`}现金 💰` } else { - console.log(`\n${title}签到失败 ${Details}`) merge[key].notify = `${title}: 失败, 原因: 已签过 ⚠️`; merge[key].fail = 1 } } else if (cc.resultData.data.businessCode == 200) { console.log(`\n${title}签到成功 ${Details}`) - merge[key].bean = num || 0 + if (!award) { + merge[key].bean = num ? num.match(/\d+/)[0] : 0 + } else { + merge[key].subsidy = num || 0 + } merge[key].success = 1 - merge[key].notify = `${title}: 成功, 明细: ${num||`无`}京豆 🐶` + merge[key].notify = `${title}: 成功, 明细: ${(award?num:merge[key].bean)||`无`}${award?`金贴 💰`:`京豆 🐶`}` } else { - console.log(`\n${title}领取异常 ${Details}\n请尝试手动领取, 预计可得${num||'0'}京豆: \nhttps://uf1.jr.jd.com/up/redEnvelopes/index.html?actCode=${code}\n`) + console.log(`\n${title}领取异常 ${Details}`) + if (num) console.log(`\n${title} 请尝试手动领取, 预计可得${num}${award?`金贴`:`京豆`}: \nhttps://uf1.jr.jd.com/up/redEnvelopes/index.html?actCode=${code}\n`); merge[key].fail = 1; merge[key].notify = `${title}: 失败, 原因: 领取异常 ⚠️`; } } else { console.log(`\n${title}签到失败 ${Details}`) const redata = typeof(cc.resultData) == 'string' ? cc.resultData : '' - merge[key].notify = `${title}: 失败, 原因: ${cc.resultCode==3?`Cookie失效‼️`:`${redata||'未知 ⚠️'}`}` + merge[key].notify = `${title}: 失败, ${cc.resultCode==3?`原因: Cookie失效‼️`:`${redata||'原因: 未知 ⚠️'}`}` merge[key].fail = 1; } } @@ -1804,6 +1749,7 @@ function JingRongDoll(s, key, title, code, type, num) { } function JDOverseas(s) { + merge.Overseas = {}; return new Promise(resolve => { if (disable("Overseas")) return resolve() setTimeout(() => { @@ -1834,7 +1780,7 @@ function JDOverseas(s) { merge.Overseas.fail = 1 if (data.match(/(\"code\":\"13\"|重复签到)/)) { merge.Overseas.notify = "京东商城-国际: 失败, 原因: 已签过 ⚠️" - } else if (data.match(/\"code\":\"-1\"/)) { + } else if (data.match(/\"code\":\"(-1|3)\"/)) { merge.Overseas.notify = "京东商城-国际: 失败, 原因: Cookie失效‼️" } else { merge.Overseas.notify = "京东商城-国际: 失败, 原因: 未知 ⚠️" @@ -1853,6 +1799,7 @@ function JDOverseas(s) { } function JingDongGetCash(s) { + merge.JDGetCash = {}; return new Promise(resolve => { if (disable("JDGetCash")) return resolve() setTimeout(() => { @@ -1872,6 +1819,7 @@ function JingDongGetCash(s) { if (cc.data.success && cc.data.result) { console.log("\n" + "京东商城-现金签到成功 " + Details) merge.JDGetCash.success = 1 + merge.JDGetCash.Money = cc.data.result.signCash || 0 merge.JDGetCash.notify = `京东商城-现金: 成功, 明细: ${cc.data.result.signCash||`无`}现金 💰` } else { console.log("\n" + "京东商城-现金签到失败 " + Details) @@ -1897,6 +1845,7 @@ function JingDongGetCash(s) { } function JingDongWebcasts(s) { + merge.JDWebcasts = {}; return new Promise(resolve => { if (disable("JDWebcasts")) return resolve() setTimeout(() => { @@ -1934,6 +1883,7 @@ function JingDongWebcasts(s) { } function JDTakeaLook(s) { + merge.TakeaLook = {}; return new Promise(resolve => { if (disable("TakeaLook")) return resolve() setTimeout(() => { @@ -1972,6 +1922,7 @@ function JDTakeaLook(s) { } function JingDongStore(s) { + merge.JDGStore = {}; return new Promise(resolve => { if (disable("JDGStore")) return resolve() setTimeout(() => { @@ -2010,6 +1961,7 @@ function JingDongStore(s) { } function JDSecKilling(s) { + merge.JDSecKill = {}; return new Promise((resolve, reject) => { if (disable("JDSecKill")) return reject(); setTimeout(() => { @@ -2069,7 +2021,7 @@ function JDSecKilling(s) { } else { console.log(`\n京东秒杀-红包签到失败 ${Details}`); merge.JDSecKill.fail = 1; - merge.JDSecKill.notify = `京东秒杀-红包: 失败, 原因: ${cc.subCode==103?`已领取`:cc.msg?cc.msg:`未知`} ⚠️`; + merge.JDSecKill.notify = `京东秒杀-红包: 失败, ${cc.subCode==103?`原因: 已领取`:cc.msg?cc.msg:`原因: 未知`} ⚠️`; } } catch (eor) { $nobyda.AnError("京东秒杀-领取", "JDSecKill", eor, response, data); @@ -2081,36 +2033,37 @@ function JDSecKilling(s) { }, () => {}); } -function DoubleElevenSale(s) { +function JDJTDoubleSign(s) { + merge.JTDouble = {}; return new Promise(resolve => { - if (disable("ElevenSale")) return resolve(); + if (disable("JTDouble")) return resolve(); setTimeout(() => { $nobyda.post({ - url: 'https://api.m.jd.com/client.action', + url: 'https://nu.jr.jd.com/gw/generic/jrm/h5/m/process', headers: { - Cookie: KEY, - Origin: 'https://h5.m.jd.com' + Cookie: KEY }, - body: 'functionId=noahHaveFunLottery&appid=publicUseApi&body=%7B%22actId%22%3A%22RRD7PgE4k1PYkLBEJRWv6gfPkZUqgY%22%7D&client=wh5' + body: `reqData=${encodeURIComponent('{"type":3,"frontParam":{"channel":"JR","belong":4},"actCode":"1DF13833F7"}')}` }, (error, response, data) => { try { if (error) throw new Error(error); const cc = JSON.parse(data); const Details = LogDetails ? "response:\n" + data : ''; - if (cc.code == 0 && cc.lotteryResult) { - console.log(`\n京东入场-红包签到成功 ${Details}`) - const qt = data.match(/"disCount":"(\d.*?)",/); - merge.ElevenSale.success = 1; - merge.ElevenSale.Cash = qt ? Number(qt[1]) : 0; - merge.ElevenSale.notify = `京东入场-红包: 成功, 明细: ${merge.ElevenSale.Cash||`无`}红包 🧧${qt?` (2天)`:``}`; + if (cc.resultCode == 0 && cc.resultData.data.businessCode == '000ssq') { + console.log(`\n京东金贴-双签签到成功 ${Details}`) + const qt = data.match(/\"count\":\"?(\d.*?)\"?,/); + merge.JTDouble.success = 1; + merge.JTDouble.subsidy = qt ? qt[1] : 0; + merge.JTDouble.notify = `京东金贴-双签: 成功, 明细: ${merge.JTDouble.subsidy||`无`}金贴 💰`; } else { - console.log(`\n京东入场-红包签到失败 ${Details}`) - const tp = cc.subCode == 8 ? `无机会` : cc.code == 3 ? `Cookie失效` : `${cc.msg||`未知`}` - merge.ElevenSale.notify = `京东入场-红包: 失败, 原因: ${tp}${cc.code==3?`‼️`:` ⚠️`}` - merge.ElevenSale.fail = 1 + console.log(`\n京东金贴-双签签到失败 ${Details}`) + const es = cc.resultData && cc.resultData.data ? cc.resultData.data.businessMsg : null + const tp = data.match(/已领取|300ssq/) ? `已签过` : cc.resultCode == 3 ? `Cookie失效` : `${es||cc.resultMsg||`未知`}` + merge.JTDouble.notify = `京东金贴-双签: 失败, 原因: ${tp}${cc.resultCode==3?`‼️`:` ⚠️`}` + merge.JTDouble.fail = 1 } } catch (eor) { - $nobyda.AnError("京东入场-红包", "ElevenSale", eor, response, data) + $nobyda.AnError("京东金贴-双签", "JTDouble", eor, response, data) } finally { resolve() } @@ -2120,7 +2073,111 @@ function DoubleElevenSale(s) { }); } +function JRLuckyLottery(s) { //https://jdda.jd.com/app/hd/#/turntable + merge.JRLottery = {}; + return new Promise(resolve => { + if (disable("JRLottery")) return resolve() + setTimeout(() => { + $nobyda.post({ + url: 'https://ms.jr.jd.com/gw/generic/syh_yxmx/h5/m/handleSign', + headers: { + Cookie: KEY + }, + body: `reqData=${encodeURIComponent(`{"activityNo":"e2d1b240d5674def8178be6b4faac5b6","signType":"1","encryptSign":""}`)}` + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const cc = JSON.parse(data); + const Details = LogDetails ? "response:\n" + data : ''; + if (cc.resultCode == 0 && cc.resultData && cc.resultData.resultCode == 0) { + console.log(`\n京东金融-抽奖签到成功 ${Details}`); + merge.JRLottery.success = 1; + merge.JRLottery.bean = cc.resultData.data.rewardList[0].rewardCount || 0 + merge.JRLottery.notify = `京东金融-抽奖: 成功, 明细: ${merge.JRLottery.bean||`无`}京豆 🐶`; + } else { + console.log(`\n京东金融-抽奖签到失败 ${Details}`); + const tp = data.match(/重复签到/) ? `已签过` : cc.resultCode == 3 ? `Cookie失效` : `${cc.resultMsg||`未知`}`; + merge.JRLottery.notify = `京东金融-抽奖: 失败, 原因: ${tp}${cc.resultCode==3?`‼️`:` ⚠️`}`; + merge.JRLottery.fail = 1; + } + } catch (eor) { + $nobyda.AnError("京东金融-抽奖", "JRLottery", eor, response, data); + } finally { + resolve(); + } + }) + }, s) + if (out) setTimeout(resolve, out + s); + }); +} + +function JingDongBuyCar(s) { + merge.JDBuyCar = {}; + return new Promise((resolve, reject) => { + if (disable("JDBuyCar")) return reject(); + setTimeout(() => { + $nobyda.get({ + url: 'https://cgame-stadium.jd.com/api/v1/first/login', + headers: { + Cookie: KEY, + ActivityId: `f4f998e5b91d48ce957983fe61b0ae90` + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + console.log(`\n京东汽车-检查签到状态 ${Details}`) + const cc = JSON.parse(data); + if (cc.status && cc.data && cc.data.firstLoginStatus) { + resolve() + } else { + const qt = cc.status && cc.data && cc.data.firstLoginStatus === false ? `已签过` : cc.error && cc.error.code == 2000 ? `Cookie失效` : cc.error && cc.error.msg ? cc.error.msg : `未知` + merge.JDBuyCar.notify = `京东商城-汽车: 失败, 原因: ${qt}${cc.error&&cc.error.code==2000?`‼️`:` ⚠️`}` + merge.JDBuyCar.fail = 1; + reject() + } + } catch (eor) { + $nobyda.AnError("京东汽车-状态", "JDBuyCar", eor, response, data) + reject() + } + }) + }, s) + if (out) setTimeout(resolve, out + s) + }).then(async () => { + await new Promise(resolve => { + $nobyda.post({ + url: 'https://cgame-stadium.jd.com/api/v1/sign', + headers: { + Cookie: KEY, + ActivityId: `f4f998e5b91d48ce957983fe61b0ae90` + } + }, (error, response, data) => { + try { + if (error) throw new Error(error); + const Details = LogDetails ? "response:\n" + data : ''; + const cc = JSON.parse(data); + if (cc.status === true) { + console.log(`\n京东商城-汽车签到成功 ${Details}`); + merge.JDBuyCar.success = 1; + merge.JDBuyCar.bean = cc.data && cc.data.beanNum ? cc.data.beanNum : 0 + merge.JDBuyCar.notify = `京东商城-汽车: 成功, 明细: ${merge.JDBuyCar.bean||`无`}京豆 🐶`; + } else { + console.log(`\n京东商城-汽车签到失败 ${Details}`); + merge.JDBuyCar.fail = 1; + merge.JDBuyCar.notify = `京东商城-汽车: 失败, ${cc.error&&cc.error.msg?cc.error.msg:`原因: 未知`} ⚠️`; + } + } catch (eor) { + $nobyda.AnError("京东汽车-签到", "JDBuyCar", eor, response, data); + } finally { + resolve(); + } + }) + }) + }, () => {}); +} + function TotalSteel() { + merge.TotalSteel = {}; return new Promise(resolve => { if (disable("TSteel")) return resolve() $nobyda.get({ @@ -2150,6 +2207,7 @@ function TotalSteel() { } function TotalBean() { + merge.TotalBean = {}; return new Promise(resolve => { if (disable("Qbear")) return resolve() $nobyda.post({ @@ -2187,6 +2245,7 @@ function TotalBean() { } function TotalCash() { + merge.TotalCash = {}; return new Promise(resolve => { if (disable("TCash")) return resolve() $nobyda.post({ @@ -2217,6 +2276,7 @@ function TotalCash() { } function TotalSubsidy() { + merge.TotalSubsidy = {}; return new Promise(resolve => { if (disable("TotalSubsidy")) return resolve() $nobyda.get({ @@ -2247,6 +2307,7 @@ function TotalSubsidy() { } function TotalMoney() { + merge.TotalMoney = {}; return new Promise(resolve => { if (disable("TotalMoney")) return resolve() $nobyda.get({ @@ -2308,73 +2369,12 @@ function disable(Val, name, way) { } } -function initial() { - merge = { - SpeedUp: {}, - JDBean: {}, - JDTurn: {}, - JRDSign: {}, - TakeaLook: {}, - Overseas: {}, - JDFSale: {}, - JDPet: {}, - JDToyMusic: {}, - JRDoll: {}, - JRTwoDoll: {}, - JRThreeDoll: {}, - JDHealth: {}, - JDEsports: {}, - JDSchool: {}, - JDCalendar: {}, - JDShoes: {}, - JD3C: {}, - JDChild: {}, - JDBaby: {}, - JDSubsidy: {}, - JDDrug: {}, - JDClocks: {}, - JDBook: {}, - JDGStore: {}, - JDShand: {}, - JDMakeup: {}, - JDWomen: {}, - JDFineWine: {}, - JDCare: {}, - JDFood: {}, - JDClean: {}, - JDVege: {}, - JDJewels: {}, - JDWebcasts: {}, - JDCube: {}, - JDPrize: {}, - JRSteel: {}, - JRBean: {}, - subsidy: {}, - ElevenSale: {}, - JDSecKill: {}, - JDCash: {}, - JDGetCash: {}, - JDShake: {}, - TotalBean: {}, - TotalSteel: {}, - TotalCash: {}, - TotalSubsidy: {}, - TotalMoney: {} - } - - for (var i in merge) { - merge[i].success = 0; - merge[i].bean = 0; - merge[i].notify = ''; - } -} - function GetCookie() { try { if ($request.headers && $request.url.match(/api\.m\.jd\.com.*=signBean/)) { var CV = $request.headers['Cookie'] - if (CV.match(/(pt_key=.+?pt_pin=|pt_pin=.+?pt_key=)/)) { - var CookieValue = CV.match(/pt_key=.+?;/) + CV.match(/pt_pin=.+?;/) + if (CV.match(/pt_key=.+?;/) && CV.match(/pt_pin=.+?;/)) { + var CookieValue = CV.match(/pt_key=.+?;/)[0] + CV.match(/pt_pin=.+?;/)[0] var CK1 = $nobyda.read("CookieJD") var CK2 = $nobyda.read("CookieJD2") var AccountOne = CK1 ? CK1.match(/pt_pin=.+?;/) ? CK1.match(/pt_pin=(.+?);/)[1] : null : null @@ -2389,43 +2389,32 @@ function GetCookie() { var CookieKey = "CookieJD2"; } else { $nobyda.notify("更新京东Cookie失败", "非历史写入账号 ‼️", '请开启脚本内"DeleteCookie"以清空Cookie ‼️') - $nobyda.done() return } } else { $nobyda.notify("写入京东Cookie失败", "", "请查看脚本内说明, 登录网页获取 ‼️") - $nobyda.done() return } - if ($nobyda.read(CookieKey)) { - if ($nobyda.read(CookieKey) != CookieValue) { - var cookie = $nobyda.write(CookieValue, CookieKey); - if (!cookie) { - $nobyda.notify("用户名: " + DecodeName, "", "更新京东" + CookieName + "Cookie失败 ‼️"); - } else { - $nobyda.notify("用户名: " + DecodeName, "", "更新京东" + CookieName + "Cookie成功 🎉"); - } - } else { - console.log("京东: \n与历史Cookie相同, 跳过写入") - } + const RA = $nobyda.read(CookieKey); + if (RA == CookieValue) { + console.log(`\n用户名: ${DecodeName}\n与历史京东${CookieName}Cookie相同, 跳过写入 ⚠️`) } else { - var cookie = $nobyda.write(CookieValue, CookieKey); - if (!cookie) { - $nobyda.notify("用户名: " + DecodeName, "", "首次写入京东" + CookieName + "Cookie失败 ‼️"); - } else { - $nobyda.notify("用户名: " + DecodeName, "", "首次写入京东" + CookieName + "Cookie成功 🎉"); - } + const WT = $nobyda.write(CookieValue, CookieKey); + $nobyda.notify(`用户名: ${DecodeName}`, ``, `${RA?`更新`:`写入`}京东${CookieName}Cookie${WT?`成功 🎉`:`失败 ‼️`}`) } + } else if ($request.url === 'http://www.apple.com/') { + $nobyda.notify("京东签到", "", "类型错误, 手动运行请选择上下文环境为Cron ⚠️"); } else { - $nobyda.notify("写入京东Cookie失败", "", "请检查匹配URL或配置内脚本类型 ‼️"); + $nobyda.notify("京东签到", "写入Cookie失败", "请检查匹配URL或配置内脚本类型 ⚠️"); } } catch (eor) { $nobyda.write("", "CookieJD") $nobyda.write("", "CookieJD2") $nobyda.notify("写入京东Cookie失败", "", '已尝试清空历史Cookie, 请重试 ⚠️') console.log(`\n写入京东Cookie出现错误 ‼️\n${JSON.stringify(eor)}\n\n${eor}\n\n${JSON.stringify($request.headers)}\n`) + } finally { + $nobyda.done() } - $nobyda.done() } // Modified from yichahucha function nobyda() { @@ -2599,7 +2588,7 @@ function nobyda() { } merge[keyname].error = 1 } - return console.log(`\n‼️${name}发生错误\n‼️名称: ${er.name}\n‼️描述: ${er.message}${JSON.stringify(er).match(/\"line\"/)?`\n‼️行列: ${JSON.stringify(er)}`:``}${resp&&resp.status?`\n‼️状态: ${resp.status}`:``}${body?`\n‼️响应: ${body}`:``}`) + return console.log(`\n‼️${name}发生错误\n‼️名称: ${er.name}\n‼️描述: ${er.message}${JSON.stringify(er).match(/\"line\"/)?`\n‼️行列: ${JSON.stringify(er)}`:``}${resp&&resp.status?`\n‼️状态: ${resp.status}`:``}${body?`\n‼️响应: ${resp&&resp.status!=503?body:`Omit.`}`:``}`) } const time = () => { const end = ((Date.now() - start) / 1000).toFixed(2) diff --git a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/newapp.sh b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/newapp.sh index 93f4ab05a8..ade596c959 100755 --- a/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/newapp.sh +++ b/package/ctcgfw/luci-app-jd-dailybonus/root/usr/share/jd-dailybonus/newapp.sh @@ -49,8 +49,6 @@ cancel() { exit 1 } -REMOTE_SCRIPT=$(uci_get_by_type global remote_url) - fill_cookie() { cookie1=$(uci_get_by_type global cookie) if [ ! "$cookie1" = "" ]; then @@ -77,13 +75,6 @@ fill_cookie() { fi } -if [ -e $TEMP_SCRIPT ]; then - remote_ver=$(cat $TEMP_SCRIPT | sed -n '/更新时间/p' | awk '{for (i=1;i<=NF;i++){if ($i ~/v/) {print $i}}}' | sed 's/v//') -else - remote_ver=$(cat $JD_SCRIPT | sed -n '/更新时间/p' | awk '{for (i=1;i<=NF;i++){if ($i ~/v/) {print $i}}}' | sed 's/v//') -fi -local_ver=$(uci_get_by_type global version) - add_cron() { sed -i '/jd-dailybonus/d' $CRON_FILE [ $(uci_get_by_type global auto_run 0) -eq 1 ] && echo '5 '$(uci_get_by_type global auto_run_time)' * * * sleep '$(expr $(head -n 128 /dev/urandom | tr -dc "0123456789" | head -c4) % 180)'s; /usr/share/jd-dailybonus/newapp.sh -w' >>$CRON_FILE @@ -96,7 +87,7 @@ add_cron() { serverchan() { sckey=$(uci_get_by_type global serverchan) failed=$(uci_get_by_type global failed) - desc=$(cat /www/JD_DailyBonus.htm | grep -E '签到号|签到概览|签到总计|账号总计|其他总计' | sed 's/$/&\n/g') + desc=$(cat /www/JD_DailyBonus.htm | grep -E '签到号|签到概览|签到奖励|其他奖励|账号总计|其他总计' | sed 's/$/&\n/g') serverurlflag=$(uci_get_by_type global serverurl) serverurl=https://sc.ftqq.com/ if [ "$serverurlflag" = "sct" ]; then @@ -118,15 +109,13 @@ serverchan() { run() { fill_cookie echo -e $(date '+%Y-%m-%d %H:%M:%S %A') >$LOG_HTM 2>/dev/null - [ ! -f "/usr/bin/node" ] && echo "未安装node,请安装后再试!">>$LOG_HTM && exit 1 - node $JD_SCRIPT >>$LOG_HTM 2>&1 & + [ ! -f "/usr/bin/node" ] && echo -e "未安装node.js,请安装后再试!\nNode.js is not installed, please try again after installation!">>$LOG_HTM && exit 1 + node $JD_SCRIPT >>$LOG_HTM 2>/dev/null } back_run() { - fill_cookie - echo -e $(date '+%Y-%m-%d %H:%M:%S %A') >$LOG_HTM 2>/dev/null - [ ! -f "/usr/bin/node" ] && echo "未安装node,请安装后再试!">>$LOG_HTM && exit 1 - node $JD_SCRIPT >>$LOG_HTM 2>/dev/null + run + sleep 1s serverchan } @@ -136,22 +125,37 @@ save() { } # Update Script From Server +download() { + REMOTE_SCRIPT=$(uci_get_by_type global remote_url) + wget-ssl --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" --no-check-certificate -t 3 -T 10 -q $REMOTE_SCRIPT -O $TEMP_SCRIPT + return $? +} + +get_ver() { + echo $(cat $1 | sed -n '/更新时间/p' | awk '{for (i=1;i<=NF;i++){if ($i ~/v/) {print $i}}}' | sed 's/v//') +} check_ver() { - wget-ssl --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" --no-check-certificate -t 3 -T 10 -q $REMOTE_SCRIPT -O $TEMP_SCRIPT + download if [ $? -ne 0 ]; then cancel "501" else - echo $remote_ver + echo $(get_ver $TEMP_SCRIPT) fi } update() { - wget-ssl --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" --no-check-certificate -t 3 -T 10 -q $REMOTE_SCRIPT -O $TEMP_SCRIPT + download if [ $? -ne 0 ]; then cancel "501" fi - if [ $(expr $local_ver \< $remote_ver) -eq 1 ]; then + if [ -e $JD_SCRIPT ]; then + local_ver=$(get_ver $JD_SCRIPT) + else + local_ver=0 + fi + remote_ver=$(get_ver $TEMP_SCRIPT) + if [ $(expr "$local_ver" \< "$remote_ver") -eq 1 ]; then cp -r $TEMP_SCRIPT $JD_SCRIPT fill_cookie uci set jd-dailybonus.@global[0].version=$remote_ver diff --git a/package/ctcgfw/luci-app-openclash/Makefile b/package/ctcgfw/luci-app-openclash/Makefile index 8ca94d65ee..6bf879eff8 100644 --- a/package/ctcgfw/luci-app-openclash/Makefile +++ b/package/ctcgfw/luci-app-openclash/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openclash -PKG_VERSION:=0.40.14 +PKG_VERSION:=0.41.06 PKG_RELEASE:=beta PKG_MAINTAINER:=vernesong @@ -18,7 +18,7 @@ define Package/$(PKG_NAME) SUBMENU:=3. Applications TITLE:=LuCI support for clash PKGARCH:=all - DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +curl +jsonfilter +ca-certificates +ipset +ip-full +iptables-mod-tproxy +iptables-mod-extra +libcap + DEPENDS:=+iptables +dnsmasq-full +coreutils +coreutils-nohup +bash +curl +jsonfilter +ca-certificates +ipset +ip-full +iptables-mod-tproxy +iptables-mod-extra +libcap +ruby +ruby-yaml MAINTAINER:=vernesong endef @@ -85,6 +85,8 @@ define Package/$(PKG_NAME)/postrm rm -rf /tmp/rule_providers_name >/dev/null 2>&1 rm -rf /tmp/clash_last_version >/dev/null 2>&1 rm -rf /usr/share/openclash/backup >/dev/null 2>&1 + rm -rf /tmp/openclash_fake_filter.list >/dev/null 2>&1 + rm -rf /tmp/openclash_servers_fake_filter.conf >/dev/null 2>&1 uci delete firewall.openclash >/dev/null 2>&1 uci commit firewall >/dev/null 2>&1 uci delete ucitrack.@openclash[-1] >/dev/null 2>&1 diff --git a/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua b/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua index 419180e431..8f8506eefe 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua @@ -14,6 +14,8 @@ function index() entry({"admin", "services", "openclash", "status"},call("action_status")).leaf=true entry({"admin", "services", "openclash", "state"},call("action_state")).leaf=true entry({"admin", "services", "openclash", "startlog"},call("action_start")).leaf=true + entry({"admin", "services", "openclash", "refresh_log"},call("action_refresh_log")) + entry({"admin", "services", "openclash", "del_log"},call("action_del_log")) entry({"admin", "services", "openclash", "close_all_connection"},call("action_close_all_connection")) entry({"admin", "services", "openclash", "restore_history"},call("action_restore_history")) entry({"admin", "services", "openclash", "get_history"},call("action_get_history")) @@ -442,4 +444,23 @@ function action_download_rule() luci.http.write_json({ rule_download_status = download_rule(); }) +end + +function action_refresh_log() + local logfile="/tmp/openclash.log" + if not fs.access(logfile) then + luci.http.write("") + return + end + luci.http.prepare_content("text/plain; charset=utf-8") + local f=io.open(logfile, "r+") + f:seek("set") + local a=f:read(2048000) or "" + f:close() + luci.http.write(a) +end + +function action_del_log() + luci.sys.exec("echo '' > /tmp/openclash.log") + return end \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/client.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/client.lua index 2a513a01bf..f03014c7f2 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/client.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/client.lua @@ -27,55 +27,15 @@ end function config_check(CONFIG_FILE) local yaml = fs.isfile(CONFIG_FILE) - local proxy,group,rule if yaml then - proxy_provier = luci.sys.call(string.format('egrep "^ {0,}proxy-provider:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (proxy_provier ~= 0) then - proxy_provier = luci.sys.call(string.format('egrep "^ {0,}proxy-providers:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - end - proxy = luci.sys.call(string.format('egrep "^ {0,}Proxy:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (proxy ~= 0) then - proxy = luci.sys.call(string.format('egrep "^proxies:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - end - group = luci.sys.call(string.format('egrep " {0,}Proxy Group" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (group ~= 0) then - group = luci.sys.call(string.format('egrep "^ {0,}proxy-groups:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - end - rule = luci.sys.call(string.format('egrep "^ {0,}Rule:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (rule ~= 0) then - rule = luci.sys.call(string.format('egrep "^ {0,}rules:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (rule ~= 0) then - rule = luci.sys.call(string.format('egrep "^ {0,}script:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - end - end - end - if yaml then - if (proxy == 0) then - proxy = "" - else - if (proxy_provier == 0) then - proxy = "" - else - proxy = " - 代理服务器" - end - end - if (group == 0) then - group = "" - else - group = " - 策略组" - end - if (rule == 0) then - rule = "" - else - rule = " - 规则" - end - if (proxy=="") and (group=="") and (rule=="") then + yaml = SYS.exec(string.format('ruby -ryaml -E UTF-8 -e "puts YAML.load_file(\'%s\')" 2>/dev/null',CONFIG_FILE)) + if yaml ~= "false\n" and yaml ~= "" then return "Config Normal" else - return proxy..group..rule.." - 部分异常" - end + return "Config Abnormal" + end elseif (yaml ~= 0) then - return "配置文件不存在" + return "File Not Exist" end end @@ -93,7 +53,7 @@ if fs.mtime(BACKUP_FILE) then else e[t].mtime=os.date("%Y-%m-%d %H:%M:%S",a.mtime) end -if string.sub(luci.sys.exec("uci get openclash.config.config_path 2>/dev/null"), 23, -2) == e[t].name then +if string.sub(SYS.exec("uci get openclash.config.config_path 2>/dev/null"), 23, -2) == e[t].name then e[t].state=translate("Enable") else e[t].state=translate("Disable") @@ -109,7 +69,7 @@ st=tb:option(DummyValue,"state",translate("State")) st.template="openclash/cfg_check" nm=tb:option(DummyValue,"name",translate("Config Alias")) mt=tb:option(DummyValue,"mtime",translate("Update Time")) -ck=tb:option(DummyValue,"check",translate("启动参数检查")) +ck=tb:option(DummyValue,"check",translate("Grammar Check")) ck.template="openclash/cfg_check" btnis=tb:option(Button,"switch",translate("Switch Config")) @@ -126,7 +86,7 @@ Button.render(o,t,a) end btnis.write=function(a,t) fs.unlink("/tmp/Proxy_Group") -luci.sys.exec(string.format('uci set openclash.config.config_path="/etc/openclash/config/%s"',e[t].name)) +SYS.exec(string.format('uci set openclash.config.config_path="/etc/openclash/config/%s"',e[t].name)) uci:set("openclash", "config", "enable", 1) uci:commit("openclash") SYS.call("/etc/init.d/openclash restart >/dev/null 2>&1 &") diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config.lua index 3d915ad13e..621f3d859f 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config.lua @@ -12,6 +12,8 @@ font_green = [[]] font_off = [[]] bold_on = [[]] bold_off = [[]] +align_mid = [[

]] +align_mid_off = [[

]] function IsYamlFile(e) e=e or"" @@ -25,7 +27,7 @@ function IsYmlFile(e) end function default_config_set(f) - local cf=string.sub(luci.sys.exec("uci get openclash.config.config_path 2>/dev/null"), 1, -2) + local cf=string.sub(SYS.exec("uci get openclash.config.config_path 2>/dev/null"), 1, -2) if cf == "/etc/openclash/config/"..f or not cf or cf == "" or not fs.isfile(cf) then if CHIF == "1" and cf == "/etc/openclash/config/"..f then return @@ -34,11 +36,11 @@ function default_config_set(f) if fis ~= nil then fcf = fs.basename(fis) if fcf then - luci.sys.exec(string.format('uci set openclash.config.config_path="/etc/openclash/config/%s"',fcf)) + SYS.exec(string.format('uci set openclash.config.config_path="/etc/openclash/config/%s"',fcf)) uci:commit("openclash") end else - luci.sys.exec("uci set openclash.config.config_path=/etc/openclash/config/config.yaml") + SYS.exec("uci set openclash.config.config_path=/etc/openclash/config/config.yaml") uci:commit("openclash") end end @@ -46,55 +48,15 @@ end function config_check(CONFIG_FILE) local yaml = fs.isfile(CONFIG_FILE) - local proxy,group,rule if yaml then - proxy_provier = luci.sys.call(string.format('egrep "^ {0,}proxy-provider:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (proxy_provier ~= 0) then - proxy_provier = luci.sys.call(string.format('egrep "^ {0,}proxy-providers:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - end - proxy = luci.sys.call(string.format('egrep "^ {0,}Proxy:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (proxy ~= 0) then - proxy = luci.sys.call(string.format('egrep "^proxies:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - end - group = luci.sys.call(string.format('egrep " {0,}Proxy Group" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (group ~= 0) then - group = luci.sys.call(string.format('egrep "^ {0,}proxy-groups:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - end - rule = luci.sys.call(string.format('egrep "^ {0,}Rule:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (rule ~= 0) then - rule = luci.sys.call(string.format('egrep "^ {0,}rules:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - if (rule ~= 0) then - rule = luci.sys.call(string.format('egrep "^ {0,}script:" "%s" >/dev/null 2>&1',CONFIG_FILE)) - end - end - end - if yaml then - if (proxy == 0) then - proxy = "" - else - if (proxy_provier == 0) then - proxy = "" - else - proxy = " - 代理服务器" - end - end - if (group == 0) then - group = "" - else - group = " - 策略组" - end - if (rule == 0) then - rule = "" - else - rule = " - 规则" - end - if (proxy=="") and (group=="") and (rule=="") then + yaml = SYS.exec(string.format('ruby -ryaml -E UTF-8 -e "puts YAML.load_file(\'%s\')" 2>/dev/null',CONFIG_FILE)) + if yaml ~= "false\n" and yaml ~= "" then return "Config Normal" else - return proxy..group..rule.." - 部分异常" - end + return "Config Abnormal" + end elseif (yaml ~= 0) then - return "配置文件不存在" + return "File Not Exist" end end @@ -200,7 +162,7 @@ if fs.mtime(BACKUP_FILE) then else e[t].mtime=os.date("%Y-%m-%d %H:%M:%S",a.mtime) end -if string.sub(luci.sys.exec("uci get openclash.config.config_path 2>/dev/null"), 23, -2) == e[t].name then +if string.sub(SYS.exec("uci get openclash.config.config_path 2>/dev/null"), 23, -2) == e[t].name then e[t].state=translate("Enable") else e[t].state=translate("Disable") @@ -220,7 +182,7 @@ st.template="openclash/cfg_check" nm=tb:option(DummyValue,"name",translate("Config Alias")) mt=tb:option(DummyValue,"mtime",translate("Update Time")) sz=tb:option(DummyValue,"size",translate("Size")) -ck=tb:option(DummyValue,"check",translate("启动参数检查")) +ck=tb:option(DummyValue,"check",translate("Grammar Check")) ck.template="openclash/cfg_check" btnis=tb:option(Button,"switch",translate("Switch Config")) @@ -237,7 +199,7 @@ Button.render(o,t,a) end btnis.write=function(a,t) fs.unlink("/tmp/Proxy_Group") -luci.sys.exec(string.format('uci set openclash.config.config_path="/etc/openclash/config/%s"',e[t].name)) +SYS.exec(string.format('uci set openclash.config.config_path="/etc/openclash/config/%s"',e[t].name)) uci:commit("openclash") HTTP.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "config")) end @@ -284,6 +246,7 @@ btnrm.write=function(a,t) fs.unlink("/tmp/Proxy_Group") fs.unlink("/etc/openclash/backup/"..fs.basename(e[t].name)) fs.unlink("/etc/openclash/history/"..fs.basename(e[t].name)) + fs.unlink("/etc/openclash/"..fs.basename(e[t].name)) local a=fs.unlink("/etc/openclash/config/"..fs.basename(e[t].name)) default_config_set(fs.basename(e[t].name)) if a then table.remove(e,t)end @@ -314,7 +277,7 @@ o.write = function() HTTP.redirect(DISP.build_url("admin", "services", "openclash", "rule-providers-file-manage")) end -m = SimpleForm("config_file_edit",translate("Config File Edit")) +m = SimpleForm("openclash",translate("Config File Edit")) m.reset = false m.submit = false @@ -323,14 +286,17 @@ local tab = { } s = m:section(Table, tab) +s.description = align_mid..translate("Support syntax check, press").." "..font_green..bold_on.."F11"..bold_off..font_off.." "..translate("to enter full screen editing mode")..align_mid_off +s.anonymous = true +s.addremove = false -local conf = string.sub(luci.sys.exec("uci get openclash.config.config_path 2>/dev/null"), 1, -2) +local conf = string.sub(SYS.exec("uci get openclash.config.config_path 2>/dev/null"), 1, -2) local dconf = "/usr/share/openclash/res/default.yaml" local conf_name = fs.basename(conf) -if not conf_name or conf == "" then conf_name = "config.yaml" end +if not conf_name or conf == "" then conf_name = "config.yaml" conf = "/etc/openclash/config/config.yaml" end +local sconf = "/etc/openclash/"..conf_name -sev = s:option(Value, "user") -sev.template = "cbi/tvalue" +sev = s:option(TextValue, "user") sev.description = translate("Modify Your Config file:").." "..font_green..bold_on..conf_name..bold_off..font_off.." "..translate("Here, Except The Settings That Were Taken Over") sev.rows = 40 sev.wrap = "off" @@ -340,22 +306,31 @@ end sev.write = function(self, section, value) if (CHIF == "0") then value = value:gsub("\r\n?", "\n") - NXFS.writefile(conf, value) + local old_value = NXFS.readfile(conf) + if value ~= old_value then + NXFS.writefile(conf, value) + end end end -def = s:option(Value, "default") -def.template = "cbi/tvalue" -def.description = translate("Default Config File With Correct General-Settings") +def = s:option(TextValue, "default") +if fs.isfile(sconf) then + def.description = translate("Config File Edited By OpenClash For Running") +else + def.description = translate("Default Config File With Correct Template") +end def.rows = 40 def.wrap = "off" def.readonly = true def.cfgvalue = function(self, section) - return NXFS.readfile(dconf) or "" + return NXFS.readfile(sconf) or NXFS.readfile(dconf) or "" end def.write = function(self, section, value) end +o = s:option(DummyValue, "") +o.anonymous=true +o.template = "openclash/config_editor" local t = { {Commit, Apply} diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua index 0cbcff00b6..9b8df13415 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua @@ -58,9 +58,22 @@ o:value("fallback", translate("Fallback")) o:value("load-balance", translate("Load-Balance")) o:value("relay", translate("Relay Traffic")) +o = s:option(ListValue, "strategy", translate("Strategy Type")) +o.rmempty = true +o.description = translate("Choose The Load-Balance's Strategy Type") +o:value("consistent-hashing", translate("Consistent-hashing")) +o:value("round-robin", translate("Round-robin")) +o:depends("type", "load-balance") + o = s:option(Value, "name", translate("Group Name")) o.rmempty = false +o = s:option(ListValue, "disable_udp", translate("Disable UDP")) +o:value("false", translate("Disable")) +o:value("true", translate("Enable")) +o.default = "false" +o.rmempty = false + o = s:option(Value, "test_url", translate("Test URL")) o:value("http://www.gstatic.com/generate_204") o:value("https://cp.cloudflare.com/generate_204") diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/log.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/log.lua index 35f8c5bc7c..adcd73dd21 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/log.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/log.lua @@ -9,36 +9,11 @@ m.pageaction = false s.anonymous = true s.addremove=false -local clog = "/tmp/openclash.log" log = s:option(TextValue, "clog") log.readonly=true +log.pollcheck=true +log.template="openclash/log" log.description = translate("") log.rows = 29 -log.wrap = "off" -log.cfgvalue = function(self, section) - return NXFS.readfile(clog) or "" -end -log.write = function(self, section, value) -end - -local t = { - {refresh, clean} -} - -a = m:section(Table, t) - -o = a:option(Button, "refresh") -o.inputtitle = translate("Refresh Log") -o.inputstyle = "apply" -o.write = function() - HTTP.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "log")) -end - -o = a:option(Button, "clean") -o.inputtitle = translate("Clean Log") -o.inputstyle = "apply" -o.write = function() - SYS.call("echo '' >/tmp/openclash.log") -end return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua index a9399eed4c..bb7bd00781 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua @@ -67,7 +67,7 @@ o:depends("en_mode", "redir-host-tun") o:depends("en_mode", "fake-ip-tun") o:depends("en_mode", "redir-host-mix") o:depends("en_mode", "fake-ip-mix") -o:value("system", translate("System ")) +o:value("system", translate("System")) o:value("gvisor", translate("Gvisor")) o.default = "system" @@ -124,6 +124,16 @@ o:value("0", translate("Disable")) o:value("1", translate("Enable")) o.default=0 +o = s:taboption("settings", ListValue, "interface_name", font_red..bold_on..translate("Bind Network Interface")..bold_off..font_off) +local de_int = SYS.exec("ip route |grep 'default' |awk '{print $5}' 2>/dev/null") +o.description = translate("Default Interface Name:").." "..font_green..bold_on..de_int..bold_off..font_off..translate(",Try Enable If Network Loopback") +local interfaces = SYS.exec("ls -l /sys/class/net/ 2>/dev/null |awk '{print $9}' 2>/dev/null") +for interface in string.gmatch(interfaces, "%S+") do + o:value(interface) +end +o:value("0", translate("Disable")) +o.default=0 + o = s:taboption("settings", ListValue, "log_level", translate("Log Level")) o.description = translate("Select Core's Log Level") o:value("info", translate("Info Mode")) @@ -164,6 +174,13 @@ o.datatype = "port" o.rmempty = false o.description = translate("Please Make Sure Ports Available") +o = s:taboption("settings", Value, "mixed_port") +o.title = translate("Mixed Port") +o.default = 7893 +o.datatype = "port" +o.rmempty = false +o.description = translate("Please Make Sure Ports Available") + ---- DNS Settings o = s:taboption("dns", ListValue, "enable_redirect_dns", font_red..bold_on..translate("Redirect Local DNS Setting")..bold_off..font_off) o.description = translate("Set Local DNS Redirect") @@ -204,7 +221,7 @@ o.inputstyle = "reload" o.write = function() m.uci:set("openclash", "config", "enable", 1) m.uci:commit("openclash") - SYS.call("rm -rf /etc/openclash/fake_filter.list >/dev/null 2>&1 && /etc/init.d/openclash restart >/dev/null 2>&1 &") + SYS.call("rm -rf /tmp/openclash_fake_filter.list >/dev/null 2>&1 && /etc/init.d/openclash restart >/dev/null 2>&1 &") HTTP.redirect(DISP.build_url("admin", "services", "openclash")) end @@ -222,7 +239,10 @@ function custom_fake_black.write(self, section, value) if value then value = value:gsub("\r\n?", "\n") - NXFS.writefile("/etc/openclash/custom/openclash_custom_fake_filter.list", value) + local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_fake_filter.list") + if value ~= old_value then + NXFS.writefile("/etc/openclash/custom/openclash_custom_fake_filter.list", value) + end end end end @@ -247,7 +267,10 @@ function custom_domain_dns.write(self, section, value) if value then value = value:gsub("\r\n?", "\n") - NXFS.writefile("/etc/openclash/custom/openclash_custom_domain_dns.list", value) + local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_domain_dns.list") + if value ~= old_value then + NXFS.writefile("/etc/openclash/custom/openclash_custom_domain_dns.list", value) + end end end @@ -643,7 +666,10 @@ end function custom_rules.write(self, section, value) if value then value = value:gsub("\r\n?", "\n") - NXFS.writefile("/etc/openclash/custom/openclash_custom_rules.list", value) + local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_rules.list") + if value ~= old_value then + NXFS.writefile("/etc/openclash/custom/openclash_custom_rules.list", value) + end end end @@ -659,7 +685,10 @@ end function custom_rules_2.write(self, section, value) if value then value = value:gsub("\r\n?", "\n") - NXFS.writefile("/etc/openclash/custom/openclash_custom_rules_2.list", value) + local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_rules_2.list") + if value ~= old_value then + NXFS.writefile("/etc/openclash/custom/openclash_custom_rules_2.list", value) + end end end @@ -679,7 +708,10 @@ end function custom_hosts.write(self, section, value) if value then value = value:gsub("\r\n?", "\n") - NXFS.writefile("/etc/openclash/custom/openclash_custom_hosts.list", value) + local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_hosts.list") + if value ~= old_value then + NXFS.writefile("/etc/openclash/custom/openclash_custom_hosts.list", value) + end end end end diff --git a/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/config_editor.htm b/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/config_editor.htm new file mode 100644 index 0000000000..6608147391 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/config_editor.htm @@ -0,0 +1,67 @@ +<%+cbi/valueheader%> + + + + + + + + + + + + + + + + + + + +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/log.htm b/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/log.htm new file mode 100644 index 0000000000..208fce667c --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/log.htm @@ -0,0 +1,101 @@ +<%+cbi/valueheader%> + +
+ + + + + + +
+ + + + + +
+
+ + + + +<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/myip.htm b/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/myip.htm index 0954cb6623..2bd1d6a4b9 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/myip.htm +++ b/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/myip.htm @@ -131,27 +131,27 @@
-

IP 地址

+

<%:IP Address%>

- IPIP      国内: + IPIP      <%:Mainland%>:

- IP.PC    国内: + IP.PC    <%:Mainland%>:

- IP.SB    海外: + IP.SB    <%:Abroad%>:

- IPIFY    海外: + IPIFY    <%:Abroad%>:

-

网站访问检查

+

<%:Website Access Check%>

- 百度搜索: + <%:Baidu Search%>:

- 网易云音乐: + <%:NetEase Music%>:

GitHub: @@ -174,10 +174,10 @@ window.open(url2); } const $$ = document; - $$.getElementById('ip-pcol').innerHTML = '查询中...'; - $$.getElementById('ip-ipify').innerHTML = '查询中...'; - $$.getElementById('ip-ipipnet').innerHTML = '查询中...'; - $$.getElementById('ip-ipsb').innerHTML = '查询中...'; + $$.getElementById('ip-pcol').innerHTML = '<%:Querying...%>'; + $$.getElementById('ip-ipify').innerHTML = '<%:Querying...%>'; + $$.getElementById('ip-ipipnet').innerHTML = '<%:Querying...%>'; + $$.getElementById('ip-ipsb').innerHTML = '<%:Querying...%>'; let random = parseInt(Math.random() * 100000000); let IP = { get: (url, type) => @@ -246,26 +246,26 @@ } }; - $$.getElementById('http-baidu').innerHTML = '检测中...'; - $$.getElementById('http-163').innerHTML = '检测中...'; - $$.getElementById('http-github').innerHTML = '检测中...'; - $$.getElementById('http-youtube').innerHTML = '检测中...'; + $$.getElementById('http-baidu').innerHTML = '<%:Testing...%>'; + $$.getElementById('http-163').innerHTML = '<%:Testing...%>'; + $$.getElementById('http-github').innerHTML = '<%:Testing...%>'; + $$.getElementById('http-youtube').innerHTML = '<%:Testing...%>'; let HTTP = { checker: (domain, cbElID) => { let img = new Image; let timeout = setTimeout(() => { img.onerror = img.onload = null; - $$.getElementById(cbElID).innerHTML = '连接超时' + $$.getElementById(cbElID).innerHTML = '<%:Access Timed Out%>' }, 5000); img.onerror = () => { clearTimeout(timeout); - $$.getElementById(cbElID).innerHTML = '无法访问' + $$.getElementById(cbElID).innerHTML = '<%:Access Denied%>' } img.onload = () => { clearTimeout(timeout); - $$.getElementById(cbElID).innerHTML = '连接正常' + $$.getElementById(cbElID).innerHTML = '<%:Access Normal%>' } img.src = `https://${domain}/favicon.ico?${+(new Date)}` diff --git a/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/status.htm b/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/status.htm index 9f12d1456f..bad80f1ddb 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/status.htm +++ b/package/ctcgfw/luci-app-openclash/luasrc/view/openclash/status.htm @@ -56,24 +56,22 @@     star     -

- Tip: OpenClash 成功启动后请耐心等待下方网站访问检查连接正常后再使用 + <%:Tip: after started, please wait patiently until the connection is normal%>

- OpenClash 主程序 <%:Collecting data...%> 控制面板登录IP <%:Collecting data...%> - OpenClash 守护程序 <%:Collecting data...%> 控制面板登录端口 <%:Collecting data...%> - OpenClash 运行模式 <%:Collecting data...%> 控制面板登录密钥 <%:Collecting data...%> - Yacd 控制面板 <%:Collecting data...%> Dashboard 控制面板 <%:Collecting data...%> + <%:Main Program%><%:Collecting data...%><%:Control Panel Login IP%><%:Collecting data...%> + <%:Core Daemons%><%:Collecting data...%><%:Control Panel Login Port%><%:Collecting data...%> + <%:Core Running Mode%><%:Collecting data...%><%:Control Panel Login Secret%><%:Collecting data...%> + <%:Yacd Control Panel%><%:Collecting data...%><%:Dashboard Control Panel%><%:Collecting data...%>

Show More

-

常用操作快捷按钮

+

<%:Quick Operation%>

<%:Collecting data...%> <%:Collecting data...%> <%:Collecting data...%> @@ -89,12 +87,12 @@ - - - + + +

- 组件的状态显示,运行前请确保各项目显示正常,需要更新请到全局设置页面操作 + <%:Please ensure that all items are displayed normally before running. If you need to update, please go to the global settings page%>

策略组节点选择 备份日期 <%:Collecting data...%> lhie1 规则更新日期 <%:Collecting data...%>
ConnersHua 规则更新日期 <%:Collecting data...%> ConnersHua 回国规则更新日期 <%:Collecting data...%>
大陆IP白名单 更新日期 <%:Collecting data...%> GEOIP(By MaxMind)数据库日期 <%:Collecting data...%>
<%:Node Select Backup%><%:Collecting data...%><%:lhie1 Rule Update%><%:Collecting data...%>
<%:ConnersHua Rule Update%><%:Collecting data...%><%:ConnersHua Return Rule Update%><%:Collecting data...%>
<%:Mainland IP Update%><%:Collecting data...%><%:GEOIP(By MaxMind)Data Update%><%:Collecting data...%>
\ No newline at end of file +Clash
\ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/service-worker.js b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/service-worker.js deleted file mode 100644 index f4868e6709..0000000000 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/service-worker.js +++ /dev/null @@ -1 +0,0 @@ -if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return r[e]||(s=new Promise(async s=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=s}else importScripts(e),s()})),s.then(()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]})},s=(s,r)=>{Promise.all(s.map(e)).then(e=>r(1===e.length?e[0]:e))},r={require:Promise.resolve(s)};self.define=(s,i,t)=>{r[s]||(r[s]=Promise.resolve().then(()=>{let r={};const c={uri:location.origin+s.slice(1)};return Promise.all(i.map(s=>{switch(s){case"exports":return r;case"module":return c;default:return e(s)}})).then(e=>{const s=t(...e);return r.default||(r.default=s),r})}))}}define("./service-worker.js",["./workbox-8a532145"],(function(e){"use strict";self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.clientsClaim(),e.precacheAndRoute([{url:"./index.html",revision:"ff336a0edf18fc90c7f03fb0e43250a0"},{url:"./static/css/main.83e4b341.chunk.css",revision:"5a48466e5ff2a8ceec3348c3c498c260"},{url:"./static/js/2.6366a4a0.chunk.js",revision:"7a8970333d728cf369978e1fa658787e"},{url:"./static/js/2.6366a4a0.chunk.js.LICENSE.txt",revision:"6557abd439259b9580e2e2d5633cdacb"},{url:"./static/js/main.3ba71f82.chunk.js",revision:"2c4d6d7f7a1d7c843c445be62f92109f"},{url:"./static/js/runtime-main.fefd5bb9.js",revision:"98f4f314ef9abb714a6c74c41e1e5a04"},{url:"./static/media/logo.45983944.png",revision:"198a55c9efe85ab0145d4402c07cfe65"}],{}),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("./index.html"),{denylist:[/^\/_/,/\/[^/?]+\.[^/]+$/]}))})); diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.83e4b341.chunk.css b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.83e4b341.chunk.css deleted file mode 100644 index c610726378..0000000000 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.83e4b341.chunk.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:"clash-iconfont";src:url(//at.alicdn.com/t/font_841708_ok9czskbhel.ttf?t=1576162884356) format("truetype")}.clash-iconfont{font-family:"clash-iconfont"!important;font-size:14px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c8af8}.icon-update:before{content:""}.icon-healthcheck:before{content:""}.icon-speed:before{content:""}.icon-close:before{content:""}.icon-drag:before{content:""}.icon-down-arrow-o:before{content:""}.icon-check:before{content:""}.icon-plus:before{content:""}.icon-triangle-up:before{content:""}.icon-triangle-down:before{content:""}.icon-up-arrow-o:before{content:""}.icon-info:before{content:""}.icon-info-o:before{content:""}.icon-setting:before{content:""}.icon-show:before{content:""}.icon-hide:before{content:""}.icon-sort:before{content:""}.icon-sort-descending:before{content:""}.icon-sort-ascending:before{content:""}.icon-close-all:before{content:""}html{box-sizing:border-box;background:hsla(0,0%,100%,.8)}*,:after,:before{margin:0;padding:0;box-sizing:inherit}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}body ::-webkit-scrollbar{z-index:11;background:transparent}body ::-webkit-scrollbar-thumb{border-radius:5px;background:#2c8af8}body ::-webkit-scrollbar:vertical{width:6px}body ::-webkit-scrollbar:horizontal{height:6px}.app{min-height:100vh;padding-left:150px}.app.not-clashx{background:#f4f5f6}.page-container{width:100%;height:100vh;padding-left:10px;overflow-y:scroll}.page{padding:20px 35px 30px 20px;width:100%;min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.container{margin:20px 0}input{-webkit-appearance:none}@media(max-width:768px){.app{padding-left:0;padding-top:60px}.page-container{width:100%;padding:0 10px;height:calc(100vh - 60px);-webkit-overflow-scrolling:touch}.page-container::-webkit-scrollbar{display:none}.page{padding:0 0 20px;height:100%}}.header{margin:10px 0;width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;user-select:none}.header>h1{flex-shrink:0;font-size:24px;color:#2c8af8;font-weight:500;text-shadow:0 2px 6px rgba(44,138,248,.4);line-height:32px}.operations{display:flex;flex:1;align-items:center;justify-content:flex-end}@media(max-width:768px){.header>h1{font-size:20px}}.switch{display:inline-block;width:32px;height:16px;border-radius:8px;background-color:#d8dee2;transition:background-color .3s ease;position:relative;cursor:pointer}.switch.checked{background-color:#57befc}.switch.checked:after{transform:translateX(16px)}.switch.disabled{cursor:not-allowed;background-color:#b7c5d6}.switch.disabled:after{box-shadow:0 0 8px rgba(144,147,153,.5)}.switch.checked.disabled,.switch.disabled:after{background-color:#e4eaef}.switch:after{content:"";position:absolute;top:-1px;height:18px;width:18px;border-radius:9px;background-color:#fff;box-shadow:0 0 8px rgba(44,138,248,.4);transition:transform .3s ease;transform:translateX(-2px)}.switch-icon{position:absolute;transform:translateX(-1px) scale(.4);color:#fff;line-height:16px}.card{padding:15px;box-shadow:2px 5px 20px -3px rgba(44,138,248,.18);background-color:#fff;border-radius:4px}.row{width:100%;display:flex;flex-direction:row}.row-gutter-1{padding:12px 6px}.row-gutter-1 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-1 .column-span-1{width:100%}.row-gutter-1 .column-offset-1{margin-left:100%}.row-gutter-1 .column-span-2{width:200%}.row-gutter-1 .column-offset-2{margin-left:200%}.row-gutter-1 .column-span-3{width:300%}.row-gutter-1 .column-offset-3{margin-left:300%}.row-gutter-1 .column-span-4{width:400%}.row-gutter-1 .column-offset-4{margin-left:400%}.row-gutter-1 .column-span-5{width:500%}.row-gutter-1 .column-offset-5{margin-left:500%}.row-gutter-1 .column-span-6{width:600%}.row-gutter-1 .column-offset-6{margin-left:600%}.row-gutter-1 .column-span-7{width:700%}.row-gutter-1 .column-offset-7{margin-left:700%}.row-gutter-1 .column-span-8{width:800%}.row-gutter-1 .column-offset-8{margin-left:800%}.row-gutter-1 .column-span-9{width:900%}.row-gutter-1 .column-offset-9{margin-left:900%}.row-gutter-1 .column-span-10{width:1000%}.row-gutter-1 .column-offset-10{margin-left:1000%}.row-gutter-1 .column-span-11{width:1100%}.row-gutter-1 .column-offset-11{margin-left:1100%}.row-gutter-1 .column-span-12{width:1200%}.row-gutter-1 .column-offset-12{margin-left:1200%}.row-gutter-1 .column-span-13{width:1300%}.row-gutter-1 .column-offset-13{margin-left:1300%}.row-gutter-1 .column-span-14{width:1400%}.row-gutter-1 .column-offset-14{margin-left:1400%}.row-gutter-1 .column-span-15{width:1500%}.row-gutter-1 .column-offset-15{margin-left:1500%}.row-gutter-1 .column-span-16{width:1600%}.row-gutter-1 .column-offset-16{margin-left:1600%}.row-gutter-1 .column-span-17{width:1700%}.row-gutter-1 .column-offset-17{margin-left:1700%}.row-gutter-1 .column-span-18{width:1800%}.row-gutter-1 .column-offset-18{margin-left:1800%}.row-gutter-1 .column-span-19{width:1900%}.row-gutter-1 .column-offset-19{margin-left:1900%}.row-gutter-1 .column-span-20{width:2000%}.row-gutter-1 .column-offset-20{margin-left:2000%}.row-gutter-1 .column-span-21{width:2100%}.row-gutter-1 .column-offset-21{margin-left:2100%}.row-gutter-1 .column-span-22{width:2200%}.row-gutter-1 .column-offset-22{margin-left:2200%}.row-gutter-1 .column-span-23{width:2300%}.row-gutter-1 .column-offset-23{margin-left:2300%}.row-gutter-1 .column-span-24{width:2400%}.row-gutter-1 .column-offset-24{margin-left:2400%}.row-gutter-2{padding:12px 6px}.row-gutter-2 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-2 .column-span-1{width:50%}.row-gutter-2 .column-offset-1{margin-left:50%}.row-gutter-2 .column-span-2{width:100%}.row-gutter-2 .column-offset-2{margin-left:100%}.row-gutter-2 .column-span-3{width:150%}.row-gutter-2 .column-offset-3{margin-left:150%}.row-gutter-2 .column-span-4{width:200%}.row-gutter-2 .column-offset-4{margin-left:200%}.row-gutter-2 .column-span-5{width:250%}.row-gutter-2 .column-offset-5{margin-left:250%}.row-gutter-2 .column-span-6{width:300%}.row-gutter-2 .column-offset-6{margin-left:300%}.row-gutter-2 .column-span-7{width:350%}.row-gutter-2 .column-offset-7{margin-left:350%}.row-gutter-2 .column-span-8{width:400%}.row-gutter-2 .column-offset-8{margin-left:400%}.row-gutter-2 .column-span-9{width:450%}.row-gutter-2 .column-offset-9{margin-left:450%}.row-gutter-2 .column-span-10{width:500%}.row-gutter-2 .column-offset-10{margin-left:500%}.row-gutter-2 .column-span-11{width:550%}.row-gutter-2 .column-offset-11{margin-left:550%}.row-gutter-2 .column-span-12{width:600%}.row-gutter-2 .column-offset-12{margin-left:600%}.row-gutter-2 .column-span-13{width:650%}.row-gutter-2 .column-offset-13{margin-left:650%}.row-gutter-2 .column-span-14{width:700%}.row-gutter-2 .column-offset-14{margin-left:700%}.row-gutter-2 .column-span-15{width:750%}.row-gutter-2 .column-offset-15{margin-left:750%}.row-gutter-2 .column-span-16{width:800%}.row-gutter-2 .column-offset-16{margin-left:800%}.row-gutter-2 .column-span-17{width:850%}.row-gutter-2 .column-offset-17{margin-left:850%}.row-gutter-2 .column-span-18{width:900%}.row-gutter-2 .column-offset-18{margin-left:900%}.row-gutter-2 .column-span-19{width:950%}.row-gutter-2 .column-offset-19{margin-left:950%}.row-gutter-2 .column-span-20{width:1000%}.row-gutter-2 .column-offset-20{margin-left:1000%}.row-gutter-2 .column-span-21{width:1050%}.row-gutter-2 .column-offset-21{margin-left:1050%}.row-gutter-2 .column-span-22{width:1100%}.row-gutter-2 .column-offset-22{margin-left:1100%}.row-gutter-2 .column-span-23{width:1150%}.row-gutter-2 .column-offset-23{margin-left:1150%}.row-gutter-2 .column-span-24{width:1200%}.row-gutter-2 .column-offset-24{margin-left:1200%}.row-gutter-3{padding:12px 6px}.row-gutter-3 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-3 .column-span-1{width:33.3333333333%}.row-gutter-3 .column-offset-1{margin-left:33.3333333333%}.row-gutter-3 .column-span-2{width:66.6666666667%}.row-gutter-3 .column-offset-2{margin-left:66.6666666667%}.row-gutter-3 .column-span-3{width:100%}.row-gutter-3 .column-offset-3{margin-left:100%}.row-gutter-3 .column-span-4{width:133.3333333333%}.row-gutter-3 .column-offset-4{margin-left:133.3333333333%}.row-gutter-3 .column-span-5{width:166.6666666667%}.row-gutter-3 .column-offset-5{margin-left:166.6666666667%}.row-gutter-3 .column-span-6{width:200%}.row-gutter-3 .column-offset-6{margin-left:200%}.row-gutter-3 .column-span-7{width:233.3333333333%}.row-gutter-3 .column-offset-7{margin-left:233.3333333333%}.row-gutter-3 .column-span-8{width:266.6666666667%}.row-gutter-3 .column-offset-8{margin-left:266.6666666667%}.row-gutter-3 .column-span-9{width:300%}.row-gutter-3 .column-offset-9{margin-left:300%}.row-gutter-3 .column-span-10{width:333.3333333333%}.row-gutter-3 .column-offset-10{margin-left:333.3333333333%}.row-gutter-3 .column-span-11{width:366.6666666667%}.row-gutter-3 .column-offset-11{margin-left:366.6666666667%}.row-gutter-3 .column-span-12{width:400%}.row-gutter-3 .column-offset-12{margin-left:400%}.row-gutter-3 .column-span-13{width:433.3333333333%}.row-gutter-3 .column-offset-13{margin-left:433.3333333333%}.row-gutter-3 .column-span-14{width:466.6666666667%}.row-gutter-3 .column-offset-14{margin-left:466.6666666667%}.row-gutter-3 .column-span-15{width:500%}.row-gutter-3 .column-offset-15{margin-left:500%}.row-gutter-3 .column-span-16{width:533.3333333333%}.row-gutter-3 .column-offset-16{margin-left:533.3333333333%}.row-gutter-3 .column-span-17{width:566.6666666667%}.row-gutter-3 .column-offset-17{margin-left:566.6666666667%}.row-gutter-3 .column-span-18{width:600%}.row-gutter-3 .column-offset-18{margin-left:600%}.row-gutter-3 .column-span-19{width:633.3333333333%}.row-gutter-3 .column-offset-19{margin-left:633.3333333333%}.row-gutter-3 .column-span-20{width:666.6666666667%}.row-gutter-3 .column-offset-20{margin-left:666.6666666667%}.row-gutter-3 .column-span-21{width:700%}.row-gutter-3 .column-offset-21{margin-left:700%}.row-gutter-3 .column-span-22{width:733.3333333333%}.row-gutter-3 .column-offset-22{margin-left:733.3333333333%}.row-gutter-3 .column-span-23{width:766.6666666667%}.row-gutter-3 .column-offset-23{margin-left:766.6666666667%}.row-gutter-3 .column-span-24{width:800%}.row-gutter-3 .column-offset-24{margin-left:800%}.row-gutter-4{padding:12px 6px}.row-gutter-4 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-4 .column-span-1{width:25%}.row-gutter-4 .column-offset-1{margin-left:25%}.row-gutter-4 .column-span-2{width:50%}.row-gutter-4 .column-offset-2{margin-left:50%}.row-gutter-4 .column-span-3{width:75%}.row-gutter-4 .column-offset-3{margin-left:75%}.row-gutter-4 .column-span-4{width:100%}.row-gutter-4 .column-offset-4{margin-left:100%}.row-gutter-4 .column-span-5{width:125%}.row-gutter-4 .column-offset-5{margin-left:125%}.row-gutter-4 .column-span-6{width:150%}.row-gutter-4 .column-offset-6{margin-left:150%}.row-gutter-4 .column-span-7{width:175%}.row-gutter-4 .column-offset-7{margin-left:175%}.row-gutter-4 .column-span-8{width:200%}.row-gutter-4 .column-offset-8{margin-left:200%}.row-gutter-4 .column-span-9{width:225%}.row-gutter-4 .column-offset-9{margin-left:225%}.row-gutter-4 .column-span-10{width:250%}.row-gutter-4 .column-offset-10{margin-left:250%}.row-gutter-4 .column-span-11{width:275%}.row-gutter-4 .column-offset-11{margin-left:275%}.row-gutter-4 .column-span-12{width:300%}.row-gutter-4 .column-offset-12{margin-left:300%}.row-gutter-4 .column-span-13{width:325%}.row-gutter-4 .column-offset-13{margin-left:325%}.row-gutter-4 .column-span-14{width:350%}.row-gutter-4 .column-offset-14{margin-left:350%}.row-gutter-4 .column-span-15{width:375%}.row-gutter-4 .column-offset-15{margin-left:375%}.row-gutter-4 .column-span-16{width:400%}.row-gutter-4 .column-offset-16{margin-left:400%}.row-gutter-4 .column-span-17{width:425%}.row-gutter-4 .column-offset-17{margin-left:425%}.row-gutter-4 .column-span-18{width:450%}.row-gutter-4 .column-offset-18{margin-left:450%}.row-gutter-4 .column-span-19{width:475%}.row-gutter-4 .column-offset-19{margin-left:475%}.row-gutter-4 .column-span-20{width:500%}.row-gutter-4 .column-offset-20{margin-left:500%}.row-gutter-4 .column-span-21{width:525%}.row-gutter-4 .column-offset-21{margin-left:525%}.row-gutter-4 .column-span-22{width:550%}.row-gutter-4 .column-offset-22{margin-left:550%}.row-gutter-4 .column-span-23{width:575%}.row-gutter-4 .column-offset-23{margin-left:575%}.row-gutter-4 .column-span-24{width:600%}.row-gutter-4 .column-offset-24{margin-left:600%}.row-gutter-5{padding:12px 6px}.row-gutter-5 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-5 .column-span-1{width:20%}.row-gutter-5 .column-offset-1{margin-left:20%}.row-gutter-5 .column-span-2{width:40%}.row-gutter-5 .column-offset-2{margin-left:40%}.row-gutter-5 .column-span-3{width:60%}.row-gutter-5 .column-offset-3{margin-left:60%}.row-gutter-5 .column-span-4{width:80%}.row-gutter-5 .column-offset-4{margin-left:80%}.row-gutter-5 .column-span-5{width:100%}.row-gutter-5 .column-offset-5{margin-left:100%}.row-gutter-5 .column-span-6{width:120%}.row-gutter-5 .column-offset-6{margin-left:120%}.row-gutter-5 .column-span-7{width:140%}.row-gutter-5 .column-offset-7{margin-left:140%}.row-gutter-5 .column-span-8{width:160%}.row-gutter-5 .column-offset-8{margin-left:160%}.row-gutter-5 .column-span-9{width:180%}.row-gutter-5 .column-offset-9{margin-left:180%}.row-gutter-5 .column-span-10{width:200%}.row-gutter-5 .column-offset-10{margin-left:200%}.row-gutter-5 .column-span-11{width:220%}.row-gutter-5 .column-offset-11{margin-left:220%}.row-gutter-5 .column-span-12{width:240%}.row-gutter-5 .column-offset-12{margin-left:240%}.row-gutter-5 .column-span-13{width:260%}.row-gutter-5 .column-offset-13{margin-left:260%}.row-gutter-5 .column-span-14{width:280%}.row-gutter-5 .column-offset-14{margin-left:280%}.row-gutter-5 .column-span-15{width:300%}.row-gutter-5 .column-offset-15{margin-left:300%}.row-gutter-5 .column-span-16{width:320%}.row-gutter-5 .column-offset-16{margin-left:320%}.row-gutter-5 .column-span-17{width:340%}.row-gutter-5 .column-offset-17{margin-left:340%}.row-gutter-5 .column-span-18{width:360%}.row-gutter-5 .column-offset-18{margin-left:360%}.row-gutter-5 .column-span-19{width:380%}.row-gutter-5 .column-offset-19{margin-left:380%}.row-gutter-5 .column-span-20{width:400%}.row-gutter-5 .column-offset-20{margin-left:400%}.row-gutter-5 .column-span-21{width:420%}.row-gutter-5 .column-offset-21{margin-left:420%}.row-gutter-5 .column-span-22{width:440%}.row-gutter-5 .column-offset-22{margin-left:440%}.row-gutter-5 .column-span-23{width:460%}.row-gutter-5 .column-offset-23{margin-left:460%}.row-gutter-5 .column-span-24{width:480%}.row-gutter-5 .column-offset-24{margin-left:480%}.row-gutter-6{padding:12px 6px}.row-gutter-6 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-6 .column-span-1{width:16.6666666667%}.row-gutter-6 .column-offset-1{margin-left:16.6666666667%}.row-gutter-6 .column-span-2{width:33.3333333333%}.row-gutter-6 .column-offset-2{margin-left:33.3333333333%}.row-gutter-6 .column-span-3{width:50%}.row-gutter-6 .column-offset-3{margin-left:50%}.row-gutter-6 .column-span-4{width:66.6666666667%}.row-gutter-6 .column-offset-4{margin-left:66.6666666667%}.row-gutter-6 .column-span-5{width:83.3333333333%}.row-gutter-6 .column-offset-5{margin-left:83.3333333333%}.row-gutter-6 .column-span-6{width:100%}.row-gutter-6 .column-offset-6{margin-left:100%}.row-gutter-6 .column-span-7{width:116.6666666667%}.row-gutter-6 .column-offset-7{margin-left:116.6666666667%}.row-gutter-6 .column-span-8{width:133.3333333333%}.row-gutter-6 .column-offset-8{margin-left:133.3333333333%}.row-gutter-6 .column-span-9{width:150%}.row-gutter-6 .column-offset-9{margin-left:150%}.row-gutter-6 .column-span-10{width:166.6666666667%}.row-gutter-6 .column-offset-10{margin-left:166.6666666667%}.row-gutter-6 .column-span-11{width:183.3333333333%}.row-gutter-6 .column-offset-11{margin-left:183.3333333333%}.row-gutter-6 .column-span-12{width:200%}.row-gutter-6 .column-offset-12{margin-left:200%}.row-gutter-6 .column-span-13{width:216.6666666667%}.row-gutter-6 .column-offset-13{margin-left:216.6666666667%}.row-gutter-6 .column-span-14{width:233.3333333333%}.row-gutter-6 .column-offset-14{margin-left:233.3333333333%}.row-gutter-6 .column-span-15{width:250%}.row-gutter-6 .column-offset-15{margin-left:250%}.row-gutter-6 .column-span-16{width:266.6666666667%}.row-gutter-6 .column-offset-16{margin-left:266.6666666667%}.row-gutter-6 .column-span-17{width:283.3333333333%}.row-gutter-6 .column-offset-17{margin-left:283.3333333333%}.row-gutter-6 .column-span-18{width:300%}.row-gutter-6 .column-offset-18{margin-left:300%}.row-gutter-6 .column-span-19{width:316.6666666667%}.row-gutter-6 .column-offset-19{margin-left:316.6666666667%}.row-gutter-6 .column-span-20{width:333.3333333333%}.row-gutter-6 .column-offset-20{margin-left:333.3333333333%}.row-gutter-6 .column-span-21{width:350%}.row-gutter-6 .column-offset-21{margin-left:350%}.row-gutter-6 .column-span-22{width:366.6666666667%}.row-gutter-6 .column-offset-22{margin-left:366.6666666667%}.row-gutter-6 .column-span-23{width:383.3333333333%}.row-gutter-6 .column-offset-23{margin-left:383.3333333333%}.row-gutter-6 .column-span-24{width:400%}.row-gutter-6 .column-offset-24{margin-left:400%}.row-gutter-7{padding:12px 6px}.row-gutter-7 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-7 .column-span-1{width:14.2857142857%}.row-gutter-7 .column-offset-1{margin-left:14.2857142857%}.row-gutter-7 .column-span-2{width:28.5714285714%}.row-gutter-7 .column-offset-2{margin-left:28.5714285714%}.row-gutter-7 .column-span-3{width:42.8571428571%}.row-gutter-7 .column-offset-3{margin-left:42.8571428571%}.row-gutter-7 .column-span-4{width:57.1428571429%}.row-gutter-7 .column-offset-4{margin-left:57.1428571429%}.row-gutter-7 .column-span-5{width:71.4285714286%}.row-gutter-7 .column-offset-5{margin-left:71.4285714286%}.row-gutter-7 .column-span-6{width:85.7142857143%}.row-gutter-7 .column-offset-6{margin-left:85.7142857143%}.row-gutter-7 .column-span-7{width:100%}.row-gutter-7 .column-offset-7{margin-left:100%}.row-gutter-7 .column-span-8{width:114.2857142857%}.row-gutter-7 .column-offset-8{margin-left:114.2857142857%}.row-gutter-7 .column-span-9{width:128.5714285714%}.row-gutter-7 .column-offset-9{margin-left:128.5714285714%}.row-gutter-7 .column-span-10{width:142.8571428571%}.row-gutter-7 .column-offset-10{margin-left:142.8571428571%}.row-gutter-7 .column-span-11{width:157.1428571429%}.row-gutter-7 .column-offset-11{margin-left:157.1428571429%}.row-gutter-7 .column-span-12{width:171.4285714286%}.row-gutter-7 .column-offset-12{margin-left:171.4285714286%}.row-gutter-7 .column-span-13{width:185.7142857143%}.row-gutter-7 .column-offset-13{margin-left:185.7142857143%}.row-gutter-7 .column-span-14{width:200%}.row-gutter-7 .column-offset-14{margin-left:200%}.row-gutter-7 .column-span-15{width:214.2857142857%}.row-gutter-7 .column-offset-15{margin-left:214.2857142857%}.row-gutter-7 .column-span-16{width:228.5714285714%}.row-gutter-7 .column-offset-16{margin-left:228.5714285714%}.row-gutter-7 .column-span-17{width:242.8571428571%}.row-gutter-7 .column-offset-17{margin-left:242.8571428571%}.row-gutter-7 .column-span-18{width:257.1428571429%}.row-gutter-7 .column-offset-18{margin-left:257.1428571429%}.row-gutter-7 .column-span-19{width:271.4285714286%}.row-gutter-7 .column-offset-19{margin-left:271.4285714286%}.row-gutter-7 .column-span-20{width:285.7142857143%}.row-gutter-7 .column-offset-20{margin-left:285.7142857143%}.row-gutter-7 .column-span-21{width:300%}.row-gutter-7 .column-offset-21{margin-left:300%}.row-gutter-7 .column-span-22{width:314.2857142857%}.row-gutter-7 .column-offset-22{margin-left:314.2857142857%}.row-gutter-7 .column-span-23{width:328.5714285714%}.row-gutter-7 .column-offset-23{margin-left:328.5714285714%}.row-gutter-7 .column-span-24{width:342.8571428571%}.row-gutter-7 .column-offset-24{margin-left:342.8571428571%}.row-gutter-8{padding:12px 6px}.row-gutter-8 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-8 .column-span-1{width:12.5%}.row-gutter-8 .column-offset-1{margin-left:12.5%}.row-gutter-8 .column-span-2{width:25%}.row-gutter-8 .column-offset-2{margin-left:25%}.row-gutter-8 .column-span-3{width:37.5%}.row-gutter-8 .column-offset-3{margin-left:37.5%}.row-gutter-8 .column-span-4{width:50%}.row-gutter-8 .column-offset-4{margin-left:50%}.row-gutter-8 .column-span-5{width:62.5%}.row-gutter-8 .column-offset-5{margin-left:62.5%}.row-gutter-8 .column-span-6{width:75%}.row-gutter-8 .column-offset-6{margin-left:75%}.row-gutter-8 .column-span-7{width:87.5%}.row-gutter-8 .column-offset-7{margin-left:87.5%}.row-gutter-8 .column-span-8{width:100%}.row-gutter-8 .column-offset-8{margin-left:100%}.row-gutter-8 .column-span-9{width:112.5%}.row-gutter-8 .column-offset-9{margin-left:112.5%}.row-gutter-8 .column-span-10{width:125%}.row-gutter-8 .column-offset-10{margin-left:125%}.row-gutter-8 .column-span-11{width:137.5%}.row-gutter-8 .column-offset-11{margin-left:137.5%}.row-gutter-8 .column-span-12{width:150%}.row-gutter-8 .column-offset-12{margin-left:150%}.row-gutter-8 .column-span-13{width:162.5%}.row-gutter-8 .column-offset-13{margin-left:162.5%}.row-gutter-8 .column-span-14{width:175%}.row-gutter-8 .column-offset-14{margin-left:175%}.row-gutter-8 .column-span-15{width:187.5%}.row-gutter-8 .column-offset-15{margin-left:187.5%}.row-gutter-8 .column-span-16{width:200%}.row-gutter-8 .column-offset-16{margin-left:200%}.row-gutter-8 .column-span-17{width:212.5%}.row-gutter-8 .column-offset-17{margin-left:212.5%}.row-gutter-8 .column-span-18{width:225%}.row-gutter-8 .column-offset-18{margin-left:225%}.row-gutter-8 .column-span-19{width:237.5%}.row-gutter-8 .column-offset-19{margin-left:237.5%}.row-gutter-8 .column-span-20{width:250%}.row-gutter-8 .column-offset-20{margin-left:250%}.row-gutter-8 .column-span-21{width:262.5%}.row-gutter-8 .column-offset-21{margin-left:262.5%}.row-gutter-8 .column-span-22{width:275%}.row-gutter-8 .column-offset-22{margin-left:275%}.row-gutter-8 .column-span-23{width:287.5%}.row-gutter-8 .column-offset-23{margin-left:287.5%}.row-gutter-8 .column-span-24{width:300%}.row-gutter-8 .column-offset-24{margin-left:300%}.row-gutter-9{padding:12px 6px}.row-gutter-9 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-9 .column-span-1{width:11.1111111111%}.row-gutter-9 .column-offset-1{margin-left:11.1111111111%}.row-gutter-9 .column-span-2{width:22.2222222222%}.row-gutter-9 .column-offset-2{margin-left:22.2222222222%}.row-gutter-9 .column-span-3{width:33.3333333333%}.row-gutter-9 .column-offset-3{margin-left:33.3333333333%}.row-gutter-9 .column-span-4{width:44.4444444444%}.row-gutter-9 .column-offset-4{margin-left:44.4444444444%}.row-gutter-9 .column-span-5{width:55.5555555556%}.row-gutter-9 .column-offset-5{margin-left:55.5555555556%}.row-gutter-9 .column-span-6{width:66.6666666667%}.row-gutter-9 .column-offset-6{margin-left:66.6666666667%}.row-gutter-9 .column-span-7{width:77.7777777778%}.row-gutter-9 .column-offset-7{margin-left:77.7777777778%}.row-gutter-9 .column-span-8{width:88.8888888889%}.row-gutter-9 .column-offset-8{margin-left:88.8888888889%}.row-gutter-9 .column-span-9{width:100%}.row-gutter-9 .column-offset-9{margin-left:100%}.row-gutter-9 .column-span-10{width:111.1111111111%}.row-gutter-9 .column-offset-10{margin-left:111.1111111111%}.row-gutter-9 .column-span-11{width:122.2222222222%}.row-gutter-9 .column-offset-11{margin-left:122.2222222222%}.row-gutter-9 .column-span-12{width:133.3333333333%}.row-gutter-9 .column-offset-12{margin-left:133.3333333333%}.row-gutter-9 .column-span-13{width:144.4444444444%}.row-gutter-9 .column-offset-13{margin-left:144.4444444444%}.row-gutter-9 .column-span-14{width:155.5555555556%}.row-gutter-9 .column-offset-14{margin-left:155.5555555556%}.row-gutter-9 .column-span-15{width:166.6666666667%}.row-gutter-9 .column-offset-15{margin-left:166.6666666667%}.row-gutter-9 .column-span-16{width:177.7777777778%}.row-gutter-9 .column-offset-16{margin-left:177.7777777778%}.row-gutter-9 .column-span-17{width:188.8888888889%}.row-gutter-9 .column-offset-17{margin-left:188.8888888889%}.row-gutter-9 .column-span-18{width:200%}.row-gutter-9 .column-offset-18{margin-left:200%}.row-gutter-9 .column-span-19{width:211.1111111111%}.row-gutter-9 .column-offset-19{margin-left:211.1111111111%}.row-gutter-9 .column-span-20{width:222.2222222222%}.row-gutter-9 .column-offset-20{margin-left:222.2222222222%}.row-gutter-9 .column-span-21{width:233.3333333333%}.row-gutter-9 .column-offset-21{margin-left:233.3333333333%}.row-gutter-9 .column-span-22{width:244.4444444444%}.row-gutter-9 .column-offset-22{margin-left:244.4444444444%}.row-gutter-9 .column-span-23{width:255.5555555556%}.row-gutter-9 .column-offset-23{margin-left:255.5555555556%}.row-gutter-9 .column-span-24{width:266.6666666667%}.row-gutter-9 .column-offset-24{margin-left:266.6666666667%}.row-gutter-10{padding:12px 6px}.row-gutter-10 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-10 .column-span-1{width:10%}.row-gutter-10 .column-offset-1{margin-left:10%}.row-gutter-10 .column-span-2{width:20%}.row-gutter-10 .column-offset-2{margin-left:20%}.row-gutter-10 .column-span-3{width:30%}.row-gutter-10 .column-offset-3{margin-left:30%}.row-gutter-10 .column-span-4{width:40%}.row-gutter-10 .column-offset-4{margin-left:40%}.row-gutter-10 .column-span-5{width:50%}.row-gutter-10 .column-offset-5{margin-left:50%}.row-gutter-10 .column-span-6{width:60%}.row-gutter-10 .column-offset-6{margin-left:60%}.row-gutter-10 .column-span-7{width:70%}.row-gutter-10 .column-offset-7{margin-left:70%}.row-gutter-10 .column-span-8{width:80%}.row-gutter-10 .column-offset-8{margin-left:80%}.row-gutter-10 .column-span-9{width:90%}.row-gutter-10 .column-offset-9{margin-left:90%}.row-gutter-10 .column-span-10{width:100%}.row-gutter-10 .column-offset-10{margin-left:100%}.row-gutter-10 .column-span-11{width:110%}.row-gutter-10 .column-offset-11{margin-left:110%}.row-gutter-10 .column-span-12{width:120%}.row-gutter-10 .column-offset-12{margin-left:120%}.row-gutter-10 .column-span-13{width:130%}.row-gutter-10 .column-offset-13{margin-left:130%}.row-gutter-10 .column-span-14{width:140%}.row-gutter-10 .column-offset-14{margin-left:140%}.row-gutter-10 .column-span-15{width:150%}.row-gutter-10 .column-offset-15{margin-left:150%}.row-gutter-10 .column-span-16{width:160%}.row-gutter-10 .column-offset-16{margin-left:160%}.row-gutter-10 .column-span-17{width:170%}.row-gutter-10 .column-offset-17{margin-left:170%}.row-gutter-10 .column-span-18{width:180%}.row-gutter-10 .column-offset-18{margin-left:180%}.row-gutter-10 .column-span-19{width:190%}.row-gutter-10 .column-offset-19{margin-left:190%}.row-gutter-10 .column-span-20{width:200%}.row-gutter-10 .column-offset-20{margin-left:200%}.row-gutter-10 .column-span-21{width:210%}.row-gutter-10 .column-offset-21{margin-left:210%}.row-gutter-10 .column-span-22{width:220%}.row-gutter-10 .column-offset-22{margin-left:220%}.row-gutter-10 .column-span-23{width:230%}.row-gutter-10 .column-offset-23{margin-left:230%}.row-gutter-10 .column-span-24{width:240%}.row-gutter-10 .column-offset-24{margin-left:240%}.row-gutter-11{padding:12px 6px}.row-gutter-11 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-11 .column-span-1{width:9.0909090909%}.row-gutter-11 .column-offset-1{margin-left:9.0909090909%}.row-gutter-11 .column-span-2{width:18.1818181818%}.row-gutter-11 .column-offset-2{margin-left:18.1818181818%}.row-gutter-11 .column-span-3{width:27.2727272727%}.row-gutter-11 .column-offset-3{margin-left:27.2727272727%}.row-gutter-11 .column-span-4{width:36.3636363636%}.row-gutter-11 .column-offset-4{margin-left:36.3636363636%}.row-gutter-11 .column-span-5{width:45.4545454545%}.row-gutter-11 .column-offset-5{margin-left:45.4545454545%}.row-gutter-11 .column-span-6{width:54.5454545455%}.row-gutter-11 .column-offset-6{margin-left:54.5454545455%}.row-gutter-11 .column-span-7{width:63.6363636364%}.row-gutter-11 .column-offset-7{margin-left:63.6363636364%}.row-gutter-11 .column-span-8{width:72.7272727273%}.row-gutter-11 .column-offset-8{margin-left:72.7272727273%}.row-gutter-11 .column-span-9{width:81.8181818182%}.row-gutter-11 .column-offset-9{margin-left:81.8181818182%}.row-gutter-11 .column-span-10{width:90.9090909091%}.row-gutter-11 .column-offset-10{margin-left:90.9090909091%}.row-gutter-11 .column-span-11{width:100%}.row-gutter-11 .column-offset-11{margin-left:100%}.row-gutter-11 .column-span-12{width:109.0909090909%}.row-gutter-11 .column-offset-12{margin-left:109.0909090909%}.row-gutter-11 .column-span-13{width:118.1818181818%}.row-gutter-11 .column-offset-13{margin-left:118.1818181818%}.row-gutter-11 .column-span-14{width:127.2727272727%}.row-gutter-11 .column-offset-14{margin-left:127.2727272727%}.row-gutter-11 .column-span-15{width:136.3636363636%}.row-gutter-11 .column-offset-15{margin-left:136.3636363636%}.row-gutter-11 .column-span-16{width:145.4545454545%}.row-gutter-11 .column-offset-16{margin-left:145.4545454545%}.row-gutter-11 .column-span-17{width:154.5454545455%}.row-gutter-11 .column-offset-17{margin-left:154.5454545455%}.row-gutter-11 .column-span-18{width:163.6363636364%}.row-gutter-11 .column-offset-18{margin-left:163.6363636364%}.row-gutter-11 .column-span-19{width:172.7272727273%}.row-gutter-11 .column-offset-19{margin-left:172.7272727273%}.row-gutter-11 .column-span-20{width:181.8181818182%}.row-gutter-11 .column-offset-20{margin-left:181.8181818182%}.row-gutter-11 .column-span-21{width:190.9090909091%}.row-gutter-11 .column-offset-21{margin-left:190.9090909091%}.row-gutter-11 .column-span-22{width:200%}.row-gutter-11 .column-offset-22{margin-left:200%}.row-gutter-11 .column-span-23{width:209.0909090909%}.row-gutter-11 .column-offset-23{margin-left:209.0909090909%}.row-gutter-11 .column-span-24{width:218.1818181818%}.row-gutter-11 .column-offset-24{margin-left:218.1818181818%}.row-gutter-12{padding:12px 6px}.row-gutter-12 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-12 .column-span-1{width:8.3333333333%}.row-gutter-12 .column-offset-1{margin-left:8.3333333333%}.row-gutter-12 .column-span-2{width:16.6666666667%}.row-gutter-12 .column-offset-2{margin-left:16.6666666667%}.row-gutter-12 .column-span-3{width:25%}.row-gutter-12 .column-offset-3{margin-left:25%}.row-gutter-12 .column-span-4{width:33.3333333333%}.row-gutter-12 .column-offset-4{margin-left:33.3333333333%}.row-gutter-12 .column-span-5{width:41.6666666667%}.row-gutter-12 .column-offset-5{margin-left:41.6666666667%}.row-gutter-12 .column-span-6{width:50%}.row-gutter-12 .column-offset-6{margin-left:50%}.row-gutter-12 .column-span-7{width:58.3333333333%}.row-gutter-12 .column-offset-7{margin-left:58.3333333333%}.row-gutter-12 .column-span-8{width:66.6666666667%}.row-gutter-12 .column-offset-8{margin-left:66.6666666667%}.row-gutter-12 .column-span-9{width:75%}.row-gutter-12 .column-offset-9{margin-left:75%}.row-gutter-12 .column-span-10{width:83.3333333333%}.row-gutter-12 .column-offset-10{margin-left:83.3333333333%}.row-gutter-12 .column-span-11{width:91.6666666667%}.row-gutter-12 .column-offset-11{margin-left:91.6666666667%}.row-gutter-12 .column-span-12{width:100%}.row-gutter-12 .column-offset-12{margin-left:100%}.row-gutter-12 .column-span-13{width:108.3333333333%}.row-gutter-12 .column-offset-13{margin-left:108.3333333333%}.row-gutter-12 .column-span-14{width:116.6666666667%}.row-gutter-12 .column-offset-14{margin-left:116.6666666667%}.row-gutter-12 .column-span-15{width:125%}.row-gutter-12 .column-offset-15{margin-left:125%}.row-gutter-12 .column-span-16{width:133.3333333333%}.row-gutter-12 .column-offset-16{margin-left:133.3333333333%}.row-gutter-12 .column-span-17{width:141.6666666667%}.row-gutter-12 .column-offset-17{margin-left:141.6666666667%}.row-gutter-12 .column-span-18{width:150%}.row-gutter-12 .column-offset-18{margin-left:150%}.row-gutter-12 .column-span-19{width:158.3333333333%}.row-gutter-12 .column-offset-19{margin-left:158.3333333333%}.row-gutter-12 .column-span-20{width:166.6666666667%}.row-gutter-12 .column-offset-20{margin-left:166.6666666667%}.row-gutter-12 .column-span-21{width:175%}.row-gutter-12 .column-offset-21{margin-left:175%}.row-gutter-12 .column-span-22{width:183.3333333333%}.row-gutter-12 .column-offset-22{margin-left:183.3333333333%}.row-gutter-12 .column-span-23{width:191.6666666667%}.row-gutter-12 .column-offset-23{margin-left:191.6666666667%}.row-gutter-12 .column-span-24{width:200%}.row-gutter-12 .column-offset-24{margin-left:200%}.row-gutter-13{padding:12px 6px}.row-gutter-13 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-13 .column-span-1{width:7.6923076923%}.row-gutter-13 .column-offset-1{margin-left:7.6923076923%}.row-gutter-13 .column-span-2{width:15.3846153846%}.row-gutter-13 .column-offset-2{margin-left:15.3846153846%}.row-gutter-13 .column-span-3{width:23.0769230769%}.row-gutter-13 .column-offset-3{margin-left:23.0769230769%}.row-gutter-13 .column-span-4{width:30.7692307692%}.row-gutter-13 .column-offset-4{margin-left:30.7692307692%}.row-gutter-13 .column-span-5{width:38.4615384615%}.row-gutter-13 .column-offset-5{margin-left:38.4615384615%}.row-gutter-13 .column-span-6{width:46.1538461538%}.row-gutter-13 .column-offset-6{margin-left:46.1538461538%}.row-gutter-13 .column-span-7{width:53.8461538462%}.row-gutter-13 .column-offset-7{margin-left:53.8461538462%}.row-gutter-13 .column-span-8{width:61.5384615385%}.row-gutter-13 .column-offset-8{margin-left:61.5384615385%}.row-gutter-13 .column-span-9{width:69.2307692308%}.row-gutter-13 .column-offset-9{margin-left:69.2307692308%}.row-gutter-13 .column-span-10{width:76.9230769231%}.row-gutter-13 .column-offset-10{margin-left:76.9230769231%}.row-gutter-13 .column-span-11{width:84.6153846154%}.row-gutter-13 .column-offset-11{margin-left:84.6153846154%}.row-gutter-13 .column-span-12{width:92.3076923077%}.row-gutter-13 .column-offset-12{margin-left:92.3076923077%}.row-gutter-13 .column-span-13{width:100%}.row-gutter-13 .column-offset-13{margin-left:100%}.row-gutter-13 .column-span-14{width:107.6923076923%}.row-gutter-13 .column-offset-14{margin-left:107.6923076923%}.row-gutter-13 .column-span-15{width:115.3846153846%}.row-gutter-13 .column-offset-15{margin-left:115.3846153846%}.row-gutter-13 .column-span-16{width:123.0769230769%}.row-gutter-13 .column-offset-16{margin-left:123.0769230769%}.row-gutter-13 .column-span-17{width:130.7692307692%}.row-gutter-13 .column-offset-17{margin-left:130.7692307692%}.row-gutter-13 .column-span-18{width:138.4615384615%}.row-gutter-13 .column-offset-18{margin-left:138.4615384615%}.row-gutter-13 .column-span-19{width:146.1538461538%}.row-gutter-13 .column-offset-19{margin-left:146.1538461538%}.row-gutter-13 .column-span-20{width:153.8461538462%}.row-gutter-13 .column-offset-20{margin-left:153.8461538462%}.row-gutter-13 .column-span-21{width:161.5384615385%}.row-gutter-13 .column-offset-21{margin-left:161.5384615385%}.row-gutter-13 .column-span-22{width:169.2307692308%}.row-gutter-13 .column-offset-22{margin-left:169.2307692308%}.row-gutter-13 .column-span-23{width:176.9230769231%}.row-gutter-13 .column-offset-23{margin-left:176.9230769231%}.row-gutter-13 .column-span-24{width:184.6153846154%}.row-gutter-13 .column-offset-24{margin-left:184.6153846154%}.row-gutter-14{padding:12px 6px}.row-gutter-14 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-14 .column-span-1{width:7.1428571429%}.row-gutter-14 .column-offset-1{margin-left:7.1428571429%}.row-gutter-14 .column-span-2{width:14.2857142857%}.row-gutter-14 .column-offset-2{margin-left:14.2857142857%}.row-gutter-14 .column-span-3{width:21.4285714286%}.row-gutter-14 .column-offset-3{margin-left:21.4285714286%}.row-gutter-14 .column-span-4{width:28.5714285714%}.row-gutter-14 .column-offset-4{margin-left:28.5714285714%}.row-gutter-14 .column-span-5{width:35.7142857143%}.row-gutter-14 .column-offset-5{margin-left:35.7142857143%}.row-gutter-14 .column-span-6{width:42.8571428571%}.row-gutter-14 .column-offset-6{margin-left:42.8571428571%}.row-gutter-14 .column-span-7{width:50%}.row-gutter-14 .column-offset-7{margin-left:50%}.row-gutter-14 .column-span-8{width:57.1428571429%}.row-gutter-14 .column-offset-8{margin-left:57.1428571429%}.row-gutter-14 .column-span-9{width:64.2857142857%}.row-gutter-14 .column-offset-9{margin-left:64.2857142857%}.row-gutter-14 .column-span-10{width:71.4285714286%}.row-gutter-14 .column-offset-10{margin-left:71.4285714286%}.row-gutter-14 .column-span-11{width:78.5714285714%}.row-gutter-14 .column-offset-11{margin-left:78.5714285714%}.row-gutter-14 .column-span-12{width:85.7142857143%}.row-gutter-14 .column-offset-12{margin-left:85.7142857143%}.row-gutter-14 .column-span-13{width:92.8571428571%}.row-gutter-14 .column-offset-13{margin-left:92.8571428571%}.row-gutter-14 .column-span-14{width:100%}.row-gutter-14 .column-offset-14{margin-left:100%}.row-gutter-14 .column-span-15{width:107.1428571429%}.row-gutter-14 .column-offset-15{margin-left:107.1428571429%}.row-gutter-14 .column-span-16{width:114.2857142857%}.row-gutter-14 .column-offset-16{margin-left:114.2857142857%}.row-gutter-14 .column-span-17{width:121.4285714286%}.row-gutter-14 .column-offset-17{margin-left:121.4285714286%}.row-gutter-14 .column-span-18{width:128.5714285714%}.row-gutter-14 .column-offset-18{margin-left:128.5714285714%}.row-gutter-14 .column-span-19{width:135.7142857143%}.row-gutter-14 .column-offset-19{margin-left:135.7142857143%}.row-gutter-14 .column-span-20{width:142.8571428571%}.row-gutter-14 .column-offset-20{margin-left:142.8571428571%}.row-gutter-14 .column-span-21{width:150%}.row-gutter-14 .column-offset-21{margin-left:150%}.row-gutter-14 .column-span-22{width:157.1428571429%}.row-gutter-14 .column-offset-22{margin-left:157.1428571429%}.row-gutter-14 .column-span-23{width:164.2857142857%}.row-gutter-14 .column-offset-23{margin-left:164.2857142857%}.row-gutter-14 .column-span-24{width:171.4285714286%}.row-gutter-14 .column-offset-24{margin-left:171.4285714286%}.row-gutter-15{padding:12px 6px}.row-gutter-15 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-15 .column-span-1{width:6.6666666667%}.row-gutter-15 .column-offset-1{margin-left:6.6666666667%}.row-gutter-15 .column-span-2{width:13.3333333333%}.row-gutter-15 .column-offset-2{margin-left:13.3333333333%}.row-gutter-15 .column-span-3{width:20%}.row-gutter-15 .column-offset-3{margin-left:20%}.row-gutter-15 .column-span-4{width:26.6666666667%}.row-gutter-15 .column-offset-4{margin-left:26.6666666667%}.row-gutter-15 .column-span-5{width:33.3333333333%}.row-gutter-15 .column-offset-5{margin-left:33.3333333333%}.row-gutter-15 .column-span-6{width:40%}.row-gutter-15 .column-offset-6{margin-left:40%}.row-gutter-15 .column-span-7{width:46.6666666667%}.row-gutter-15 .column-offset-7{margin-left:46.6666666667%}.row-gutter-15 .column-span-8{width:53.3333333333%}.row-gutter-15 .column-offset-8{margin-left:53.3333333333%}.row-gutter-15 .column-span-9{width:60%}.row-gutter-15 .column-offset-9{margin-left:60%}.row-gutter-15 .column-span-10{width:66.6666666667%}.row-gutter-15 .column-offset-10{margin-left:66.6666666667%}.row-gutter-15 .column-span-11{width:73.3333333333%}.row-gutter-15 .column-offset-11{margin-left:73.3333333333%}.row-gutter-15 .column-span-12{width:80%}.row-gutter-15 .column-offset-12{margin-left:80%}.row-gutter-15 .column-span-13{width:86.6666666667%}.row-gutter-15 .column-offset-13{margin-left:86.6666666667%}.row-gutter-15 .column-span-14{width:93.3333333333%}.row-gutter-15 .column-offset-14{margin-left:93.3333333333%}.row-gutter-15 .column-span-15{width:100%}.row-gutter-15 .column-offset-15{margin-left:100%}.row-gutter-15 .column-span-16{width:106.6666666667%}.row-gutter-15 .column-offset-16{margin-left:106.6666666667%}.row-gutter-15 .column-span-17{width:113.3333333333%}.row-gutter-15 .column-offset-17{margin-left:113.3333333333%}.row-gutter-15 .column-span-18{width:120%}.row-gutter-15 .column-offset-18{margin-left:120%}.row-gutter-15 .column-span-19{width:126.6666666667%}.row-gutter-15 .column-offset-19{margin-left:126.6666666667%}.row-gutter-15 .column-span-20{width:133.3333333333%}.row-gutter-15 .column-offset-20{margin-left:133.3333333333%}.row-gutter-15 .column-span-21{width:140%}.row-gutter-15 .column-offset-21{margin-left:140%}.row-gutter-15 .column-span-22{width:146.6666666667%}.row-gutter-15 .column-offset-22{margin-left:146.6666666667%}.row-gutter-15 .column-span-23{width:153.3333333333%}.row-gutter-15 .column-offset-23{margin-left:153.3333333333%}.row-gutter-15 .column-span-24{width:160%}.row-gutter-15 .column-offset-24{margin-left:160%}.row-gutter-16{padding:12px 6px}.row-gutter-16 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-16 .column-span-1{width:6.25%}.row-gutter-16 .column-offset-1{margin-left:6.25%}.row-gutter-16 .column-span-2{width:12.5%}.row-gutter-16 .column-offset-2{margin-left:12.5%}.row-gutter-16 .column-span-3{width:18.75%}.row-gutter-16 .column-offset-3{margin-left:18.75%}.row-gutter-16 .column-span-4{width:25%}.row-gutter-16 .column-offset-4{margin-left:25%}.row-gutter-16 .column-span-5{width:31.25%}.row-gutter-16 .column-offset-5{margin-left:31.25%}.row-gutter-16 .column-span-6{width:37.5%}.row-gutter-16 .column-offset-6{margin-left:37.5%}.row-gutter-16 .column-span-7{width:43.75%}.row-gutter-16 .column-offset-7{margin-left:43.75%}.row-gutter-16 .column-span-8{width:50%}.row-gutter-16 .column-offset-8{margin-left:50%}.row-gutter-16 .column-span-9{width:56.25%}.row-gutter-16 .column-offset-9{margin-left:56.25%}.row-gutter-16 .column-span-10{width:62.5%}.row-gutter-16 .column-offset-10{margin-left:62.5%}.row-gutter-16 .column-span-11{width:68.75%}.row-gutter-16 .column-offset-11{margin-left:68.75%}.row-gutter-16 .column-span-12{width:75%}.row-gutter-16 .column-offset-12{margin-left:75%}.row-gutter-16 .column-span-13{width:81.25%}.row-gutter-16 .column-offset-13{margin-left:81.25%}.row-gutter-16 .column-span-14{width:87.5%}.row-gutter-16 .column-offset-14{margin-left:87.5%}.row-gutter-16 .column-span-15{width:93.75%}.row-gutter-16 .column-offset-15{margin-left:93.75%}.row-gutter-16 .column-span-16{width:100%}.row-gutter-16 .column-offset-16{margin-left:100%}.row-gutter-16 .column-span-17{width:106.25%}.row-gutter-16 .column-offset-17{margin-left:106.25%}.row-gutter-16 .column-span-18{width:112.5%}.row-gutter-16 .column-offset-18{margin-left:112.5%}.row-gutter-16 .column-span-19{width:118.75%}.row-gutter-16 .column-offset-19{margin-left:118.75%}.row-gutter-16 .column-span-20{width:125%}.row-gutter-16 .column-offset-20{margin-left:125%}.row-gutter-16 .column-span-21{width:131.25%}.row-gutter-16 .column-offset-21{margin-left:131.25%}.row-gutter-16 .column-span-22{width:137.5%}.row-gutter-16 .column-offset-22{margin-left:137.5%}.row-gutter-16 .column-span-23{width:143.75%}.row-gutter-16 .column-offset-23{margin-left:143.75%}.row-gutter-16 .column-span-24{width:150%}.row-gutter-16 .column-offset-24{margin-left:150%}.row-gutter-17{padding:12px 6px}.row-gutter-17 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-17 .column-span-1{width:5.8823529412%}.row-gutter-17 .column-offset-1{margin-left:5.8823529412%}.row-gutter-17 .column-span-2{width:11.7647058824%}.row-gutter-17 .column-offset-2{margin-left:11.7647058824%}.row-gutter-17 .column-span-3{width:17.6470588235%}.row-gutter-17 .column-offset-3{margin-left:17.6470588235%}.row-gutter-17 .column-span-4{width:23.5294117647%}.row-gutter-17 .column-offset-4{margin-left:23.5294117647%}.row-gutter-17 .column-span-5{width:29.4117647059%}.row-gutter-17 .column-offset-5{margin-left:29.4117647059%}.row-gutter-17 .column-span-6{width:35.2941176471%}.row-gutter-17 .column-offset-6{margin-left:35.2941176471%}.row-gutter-17 .column-span-7{width:41.1764705882%}.row-gutter-17 .column-offset-7{margin-left:41.1764705882%}.row-gutter-17 .column-span-8{width:47.0588235294%}.row-gutter-17 .column-offset-8{margin-left:47.0588235294%}.row-gutter-17 .column-span-9{width:52.9411764706%}.row-gutter-17 .column-offset-9{margin-left:52.9411764706%}.row-gutter-17 .column-span-10{width:58.8235294118%}.row-gutter-17 .column-offset-10{margin-left:58.8235294118%}.row-gutter-17 .column-span-11{width:64.7058823529%}.row-gutter-17 .column-offset-11{margin-left:64.7058823529%}.row-gutter-17 .column-span-12{width:70.5882352941%}.row-gutter-17 .column-offset-12{margin-left:70.5882352941%}.row-gutter-17 .column-span-13{width:76.4705882353%}.row-gutter-17 .column-offset-13{margin-left:76.4705882353%}.row-gutter-17 .column-span-14{width:82.3529411765%}.row-gutter-17 .column-offset-14{margin-left:82.3529411765%}.row-gutter-17 .column-span-15{width:88.2352941176%}.row-gutter-17 .column-offset-15{margin-left:88.2352941176%}.row-gutter-17 .column-span-16{width:94.1176470588%}.row-gutter-17 .column-offset-16{margin-left:94.1176470588%}.row-gutter-17 .column-span-17{width:100%}.row-gutter-17 .column-offset-17{margin-left:100%}.row-gutter-17 .column-span-18{width:105.8823529412%}.row-gutter-17 .column-offset-18{margin-left:105.8823529412%}.row-gutter-17 .column-span-19{width:111.7647058824%}.row-gutter-17 .column-offset-19{margin-left:111.7647058824%}.row-gutter-17 .column-span-20{width:117.6470588235%}.row-gutter-17 .column-offset-20{margin-left:117.6470588235%}.row-gutter-17 .column-span-21{width:123.5294117647%}.row-gutter-17 .column-offset-21{margin-left:123.5294117647%}.row-gutter-17 .column-span-22{width:129.4117647059%}.row-gutter-17 .column-offset-22{margin-left:129.4117647059%}.row-gutter-17 .column-span-23{width:135.2941176471%}.row-gutter-17 .column-offset-23{margin-left:135.2941176471%}.row-gutter-17 .column-span-24{width:141.1764705882%}.row-gutter-17 .column-offset-24{margin-left:141.1764705882%}.row-gutter-18{padding:12px 6px}.row-gutter-18 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-18 .column-span-1{width:5.5555555556%}.row-gutter-18 .column-offset-1{margin-left:5.5555555556%}.row-gutter-18 .column-span-2{width:11.1111111111%}.row-gutter-18 .column-offset-2{margin-left:11.1111111111%}.row-gutter-18 .column-span-3{width:16.6666666667%}.row-gutter-18 .column-offset-3{margin-left:16.6666666667%}.row-gutter-18 .column-span-4{width:22.2222222222%}.row-gutter-18 .column-offset-4{margin-left:22.2222222222%}.row-gutter-18 .column-span-5{width:27.7777777778%}.row-gutter-18 .column-offset-5{margin-left:27.7777777778%}.row-gutter-18 .column-span-6{width:33.3333333333%}.row-gutter-18 .column-offset-6{margin-left:33.3333333333%}.row-gutter-18 .column-span-7{width:38.8888888889%}.row-gutter-18 .column-offset-7{margin-left:38.8888888889%}.row-gutter-18 .column-span-8{width:44.4444444444%}.row-gutter-18 .column-offset-8{margin-left:44.4444444444%}.row-gutter-18 .column-span-9{width:50%}.row-gutter-18 .column-offset-9{margin-left:50%}.row-gutter-18 .column-span-10{width:55.5555555556%}.row-gutter-18 .column-offset-10{margin-left:55.5555555556%}.row-gutter-18 .column-span-11{width:61.1111111111%}.row-gutter-18 .column-offset-11{margin-left:61.1111111111%}.row-gutter-18 .column-span-12{width:66.6666666667%}.row-gutter-18 .column-offset-12{margin-left:66.6666666667%}.row-gutter-18 .column-span-13{width:72.2222222222%}.row-gutter-18 .column-offset-13{margin-left:72.2222222222%}.row-gutter-18 .column-span-14{width:77.7777777778%}.row-gutter-18 .column-offset-14{margin-left:77.7777777778%}.row-gutter-18 .column-span-15{width:83.3333333333%}.row-gutter-18 .column-offset-15{margin-left:83.3333333333%}.row-gutter-18 .column-span-16{width:88.8888888889%}.row-gutter-18 .column-offset-16{margin-left:88.8888888889%}.row-gutter-18 .column-span-17{width:94.4444444444%}.row-gutter-18 .column-offset-17{margin-left:94.4444444444%}.row-gutter-18 .column-span-18{width:100%}.row-gutter-18 .column-offset-18{margin-left:100%}.row-gutter-18 .column-span-19{width:105.5555555556%}.row-gutter-18 .column-offset-19{margin-left:105.5555555556%}.row-gutter-18 .column-span-20{width:111.1111111111%}.row-gutter-18 .column-offset-20{margin-left:111.1111111111%}.row-gutter-18 .column-span-21{width:116.6666666667%}.row-gutter-18 .column-offset-21{margin-left:116.6666666667%}.row-gutter-18 .column-span-22{width:122.2222222222%}.row-gutter-18 .column-offset-22{margin-left:122.2222222222%}.row-gutter-18 .column-span-23{width:127.7777777778%}.row-gutter-18 .column-offset-23{margin-left:127.7777777778%}.row-gutter-18 .column-span-24{width:133.3333333333%}.row-gutter-18 .column-offset-24{margin-left:133.3333333333%}.row-gutter-19{padding:12px 6px}.row-gutter-19 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-19 .column-span-1{width:5.2631578947%}.row-gutter-19 .column-offset-1{margin-left:5.2631578947%}.row-gutter-19 .column-span-2{width:10.5263157895%}.row-gutter-19 .column-offset-2{margin-left:10.5263157895%}.row-gutter-19 .column-span-3{width:15.7894736842%}.row-gutter-19 .column-offset-3{margin-left:15.7894736842%}.row-gutter-19 .column-span-4{width:21.0526315789%}.row-gutter-19 .column-offset-4{margin-left:21.0526315789%}.row-gutter-19 .column-span-5{width:26.3157894737%}.row-gutter-19 .column-offset-5{margin-left:26.3157894737%}.row-gutter-19 .column-span-6{width:31.5789473684%}.row-gutter-19 .column-offset-6{margin-left:31.5789473684%}.row-gutter-19 .column-span-7{width:36.8421052632%}.row-gutter-19 .column-offset-7{margin-left:36.8421052632%}.row-gutter-19 .column-span-8{width:42.1052631579%}.row-gutter-19 .column-offset-8{margin-left:42.1052631579%}.row-gutter-19 .column-span-9{width:47.3684210526%}.row-gutter-19 .column-offset-9{margin-left:47.3684210526%}.row-gutter-19 .column-span-10{width:52.6315789474%}.row-gutter-19 .column-offset-10{margin-left:52.6315789474%}.row-gutter-19 .column-span-11{width:57.8947368421%}.row-gutter-19 .column-offset-11{margin-left:57.8947368421%}.row-gutter-19 .column-span-12{width:63.1578947368%}.row-gutter-19 .column-offset-12{margin-left:63.1578947368%}.row-gutter-19 .column-span-13{width:68.4210526316%}.row-gutter-19 .column-offset-13{margin-left:68.4210526316%}.row-gutter-19 .column-span-14{width:73.6842105263%}.row-gutter-19 .column-offset-14{margin-left:73.6842105263%}.row-gutter-19 .column-span-15{width:78.9473684211%}.row-gutter-19 .column-offset-15{margin-left:78.9473684211%}.row-gutter-19 .column-span-16{width:84.2105263158%}.row-gutter-19 .column-offset-16{margin-left:84.2105263158%}.row-gutter-19 .column-span-17{width:89.4736842105%}.row-gutter-19 .column-offset-17{margin-left:89.4736842105%}.row-gutter-19 .column-span-18{width:94.7368421053%}.row-gutter-19 .column-offset-18{margin-left:94.7368421053%}.row-gutter-19 .column-span-19{width:100%}.row-gutter-19 .column-offset-19{margin-left:100%}.row-gutter-19 .column-span-20{width:105.2631578947%}.row-gutter-19 .column-offset-20{margin-left:105.2631578947%}.row-gutter-19 .column-span-21{width:110.5263157895%}.row-gutter-19 .column-offset-21{margin-left:110.5263157895%}.row-gutter-19 .column-span-22{width:115.7894736842%}.row-gutter-19 .column-offset-22{margin-left:115.7894736842%}.row-gutter-19 .column-span-23{width:121.0526315789%}.row-gutter-19 .column-offset-23{margin-left:121.0526315789%}.row-gutter-19 .column-span-24{width:126.3157894737%}.row-gutter-19 .column-offset-24{margin-left:126.3157894737%}.row-gutter-20{padding:12px 6px}.row-gutter-20 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-20 .column-span-1{width:5%}.row-gutter-20 .column-offset-1{margin-left:5%}.row-gutter-20 .column-span-2{width:10%}.row-gutter-20 .column-offset-2{margin-left:10%}.row-gutter-20 .column-span-3{width:15%}.row-gutter-20 .column-offset-3{margin-left:15%}.row-gutter-20 .column-span-4{width:20%}.row-gutter-20 .column-offset-4{margin-left:20%}.row-gutter-20 .column-span-5{width:25%}.row-gutter-20 .column-offset-5{margin-left:25%}.row-gutter-20 .column-span-6{width:30%}.row-gutter-20 .column-offset-6{margin-left:30%}.row-gutter-20 .column-span-7{width:35%}.row-gutter-20 .column-offset-7{margin-left:35%}.row-gutter-20 .column-span-8{width:40%}.row-gutter-20 .column-offset-8{margin-left:40%}.row-gutter-20 .column-span-9{width:45%}.row-gutter-20 .column-offset-9{margin-left:45%}.row-gutter-20 .column-span-10{width:50%}.row-gutter-20 .column-offset-10{margin-left:50%}.row-gutter-20 .column-span-11{width:55%}.row-gutter-20 .column-offset-11{margin-left:55%}.row-gutter-20 .column-span-12{width:60%}.row-gutter-20 .column-offset-12{margin-left:60%}.row-gutter-20 .column-span-13{width:65%}.row-gutter-20 .column-offset-13{margin-left:65%}.row-gutter-20 .column-span-14{width:70%}.row-gutter-20 .column-offset-14{margin-left:70%}.row-gutter-20 .column-span-15{width:75%}.row-gutter-20 .column-offset-15{margin-left:75%}.row-gutter-20 .column-span-16{width:80%}.row-gutter-20 .column-offset-16{margin-left:80%}.row-gutter-20 .column-span-17{width:85%}.row-gutter-20 .column-offset-17{margin-left:85%}.row-gutter-20 .column-span-18{width:90%}.row-gutter-20 .column-offset-18{margin-left:90%}.row-gutter-20 .column-span-19{width:95%}.row-gutter-20 .column-offset-19{margin-left:95%}.row-gutter-20 .column-span-20{width:100%}.row-gutter-20 .column-offset-20{margin-left:100%}.row-gutter-20 .column-span-21{width:105%}.row-gutter-20 .column-offset-21{margin-left:105%}.row-gutter-20 .column-span-22{width:110%}.row-gutter-20 .column-offset-22{margin-left:110%}.row-gutter-20 .column-span-23{width:115%}.row-gutter-20 .column-offset-23{margin-left:115%}.row-gutter-20 .column-span-24{width:120%}.row-gutter-20 .column-offset-24{margin-left:120%}.row-gutter-21{padding:12px 6px}.row-gutter-21 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-21 .column-span-1{width:4.7619047619%}.row-gutter-21 .column-offset-1{margin-left:4.7619047619%}.row-gutter-21 .column-span-2{width:9.5238095238%}.row-gutter-21 .column-offset-2{margin-left:9.5238095238%}.row-gutter-21 .column-span-3{width:14.2857142857%}.row-gutter-21 .column-offset-3{margin-left:14.2857142857%}.row-gutter-21 .column-span-4{width:19.0476190476%}.row-gutter-21 .column-offset-4{margin-left:19.0476190476%}.row-gutter-21 .column-span-5{width:23.8095238095%}.row-gutter-21 .column-offset-5{margin-left:23.8095238095%}.row-gutter-21 .column-span-6{width:28.5714285714%}.row-gutter-21 .column-offset-6{margin-left:28.5714285714%}.row-gutter-21 .column-span-7{width:33.3333333333%}.row-gutter-21 .column-offset-7{margin-left:33.3333333333%}.row-gutter-21 .column-span-8{width:38.0952380952%}.row-gutter-21 .column-offset-8{margin-left:38.0952380952%}.row-gutter-21 .column-span-9{width:42.8571428571%}.row-gutter-21 .column-offset-9{margin-left:42.8571428571%}.row-gutter-21 .column-span-10{width:47.619047619%}.row-gutter-21 .column-offset-10{margin-left:47.619047619%}.row-gutter-21 .column-span-11{width:52.380952381%}.row-gutter-21 .column-offset-11{margin-left:52.380952381%}.row-gutter-21 .column-span-12{width:57.1428571429%}.row-gutter-21 .column-offset-12{margin-left:57.1428571429%}.row-gutter-21 .column-span-13{width:61.9047619048%}.row-gutter-21 .column-offset-13{margin-left:61.9047619048%}.row-gutter-21 .column-span-14{width:66.6666666667%}.row-gutter-21 .column-offset-14{margin-left:66.6666666667%}.row-gutter-21 .column-span-15{width:71.4285714286%}.row-gutter-21 .column-offset-15{margin-left:71.4285714286%}.row-gutter-21 .column-span-16{width:76.1904761905%}.row-gutter-21 .column-offset-16{margin-left:76.1904761905%}.row-gutter-21 .column-span-17{width:80.9523809524%}.row-gutter-21 .column-offset-17{margin-left:80.9523809524%}.row-gutter-21 .column-span-18{width:85.7142857143%}.row-gutter-21 .column-offset-18{margin-left:85.7142857143%}.row-gutter-21 .column-span-19{width:90.4761904762%}.row-gutter-21 .column-offset-19{margin-left:90.4761904762%}.row-gutter-21 .column-span-20{width:95.2380952381%}.row-gutter-21 .column-offset-20{margin-left:95.2380952381%}.row-gutter-21 .column-span-21{width:100%}.row-gutter-21 .column-offset-21{margin-left:100%}.row-gutter-21 .column-span-22{width:104.7619047619%}.row-gutter-21 .column-offset-22{margin-left:104.7619047619%}.row-gutter-21 .column-span-23{width:109.5238095238%}.row-gutter-21 .column-offset-23{margin-left:109.5238095238%}.row-gutter-21 .column-span-24{width:114.2857142857%}.row-gutter-21 .column-offset-24{margin-left:114.2857142857%}.row-gutter-22{padding:12px 6px}.row-gutter-22 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-22 .column-span-1{width:4.5454545455%}.row-gutter-22 .column-offset-1{margin-left:4.5454545455%}.row-gutter-22 .column-span-2{width:9.0909090909%}.row-gutter-22 .column-offset-2{margin-left:9.0909090909%}.row-gutter-22 .column-span-3{width:13.6363636364%}.row-gutter-22 .column-offset-3{margin-left:13.6363636364%}.row-gutter-22 .column-span-4{width:18.1818181818%}.row-gutter-22 .column-offset-4{margin-left:18.1818181818%}.row-gutter-22 .column-span-5{width:22.7272727273%}.row-gutter-22 .column-offset-5{margin-left:22.7272727273%}.row-gutter-22 .column-span-6{width:27.2727272727%}.row-gutter-22 .column-offset-6{margin-left:27.2727272727%}.row-gutter-22 .column-span-7{width:31.8181818182%}.row-gutter-22 .column-offset-7{margin-left:31.8181818182%}.row-gutter-22 .column-span-8{width:36.3636363636%}.row-gutter-22 .column-offset-8{margin-left:36.3636363636%}.row-gutter-22 .column-span-9{width:40.9090909091%}.row-gutter-22 .column-offset-9{margin-left:40.9090909091%}.row-gutter-22 .column-span-10{width:45.4545454545%}.row-gutter-22 .column-offset-10{margin-left:45.4545454545%}.row-gutter-22 .column-span-11{width:50%}.row-gutter-22 .column-offset-11{margin-left:50%}.row-gutter-22 .column-span-12{width:54.5454545455%}.row-gutter-22 .column-offset-12{margin-left:54.5454545455%}.row-gutter-22 .column-span-13{width:59.0909090909%}.row-gutter-22 .column-offset-13{margin-left:59.0909090909%}.row-gutter-22 .column-span-14{width:63.6363636364%}.row-gutter-22 .column-offset-14{margin-left:63.6363636364%}.row-gutter-22 .column-span-15{width:68.1818181818%}.row-gutter-22 .column-offset-15{margin-left:68.1818181818%}.row-gutter-22 .column-span-16{width:72.7272727273%}.row-gutter-22 .column-offset-16{margin-left:72.7272727273%}.row-gutter-22 .column-span-17{width:77.2727272727%}.row-gutter-22 .column-offset-17{margin-left:77.2727272727%}.row-gutter-22 .column-span-18{width:81.8181818182%}.row-gutter-22 .column-offset-18{margin-left:81.8181818182%}.row-gutter-22 .column-span-19{width:86.3636363636%}.row-gutter-22 .column-offset-19{margin-left:86.3636363636%}.row-gutter-22 .column-span-20{width:90.9090909091%}.row-gutter-22 .column-offset-20{margin-left:90.9090909091%}.row-gutter-22 .column-span-21{width:95.4545454545%}.row-gutter-22 .column-offset-21{margin-left:95.4545454545%}.row-gutter-22 .column-span-22{width:100%}.row-gutter-22 .column-offset-22{margin-left:100%}.row-gutter-22 .column-span-23{width:104.5454545455%}.row-gutter-22 .column-offset-23{margin-left:104.5454545455%}.row-gutter-22 .column-span-24{width:109.0909090909%}.row-gutter-22 .column-offset-24{margin-left:109.0909090909%}.row-gutter-23{padding:12px 6px}.row-gutter-23 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-23 .column-span-1{width:4.347826087%}.row-gutter-23 .column-offset-1{margin-left:4.347826087%}.row-gutter-23 .column-span-2{width:8.6956521739%}.row-gutter-23 .column-offset-2{margin-left:8.6956521739%}.row-gutter-23 .column-span-3{width:13.0434782609%}.row-gutter-23 .column-offset-3{margin-left:13.0434782609%}.row-gutter-23 .column-span-4{width:17.3913043478%}.row-gutter-23 .column-offset-4{margin-left:17.3913043478%}.row-gutter-23 .column-span-5{width:21.7391304348%}.row-gutter-23 .column-offset-5{margin-left:21.7391304348%}.row-gutter-23 .column-span-6{width:26.0869565217%}.row-gutter-23 .column-offset-6{margin-left:26.0869565217%}.row-gutter-23 .column-span-7{width:30.4347826087%}.row-gutter-23 .column-offset-7{margin-left:30.4347826087%}.row-gutter-23 .column-span-8{width:34.7826086957%}.row-gutter-23 .column-offset-8{margin-left:34.7826086957%}.row-gutter-23 .column-span-9{width:39.1304347826%}.row-gutter-23 .column-offset-9{margin-left:39.1304347826%}.row-gutter-23 .column-span-10{width:43.4782608696%}.row-gutter-23 .column-offset-10{margin-left:43.4782608696%}.row-gutter-23 .column-span-11{width:47.8260869565%}.row-gutter-23 .column-offset-11{margin-left:47.8260869565%}.row-gutter-23 .column-span-12{width:52.1739130435%}.row-gutter-23 .column-offset-12{margin-left:52.1739130435%}.row-gutter-23 .column-span-13{width:56.5217391304%}.row-gutter-23 .column-offset-13{margin-left:56.5217391304%}.row-gutter-23 .column-span-14{width:60.8695652174%}.row-gutter-23 .column-offset-14{margin-left:60.8695652174%}.row-gutter-23 .column-span-15{width:65.2173913043%}.row-gutter-23 .column-offset-15{margin-left:65.2173913043%}.row-gutter-23 .column-span-16{width:69.5652173913%}.row-gutter-23 .column-offset-16{margin-left:69.5652173913%}.row-gutter-23 .column-span-17{width:73.9130434783%}.row-gutter-23 .column-offset-17{margin-left:73.9130434783%}.row-gutter-23 .column-span-18{width:78.2608695652%}.row-gutter-23 .column-offset-18{margin-left:78.2608695652%}.row-gutter-23 .column-span-19{width:82.6086956522%}.row-gutter-23 .column-offset-19{margin-left:82.6086956522%}.row-gutter-23 .column-span-20{width:86.9565217391%}.row-gutter-23 .column-offset-20{margin-left:86.9565217391%}.row-gutter-23 .column-span-21{width:91.3043478261%}.row-gutter-23 .column-offset-21{margin-left:91.3043478261%}.row-gutter-23 .column-span-22{width:95.652173913%}.row-gutter-23 .column-offset-22{margin-left:95.652173913%}.row-gutter-23 .column-span-23{width:100%}.row-gutter-23 .column-offset-23{margin-left:100%}.row-gutter-23 .column-span-24{width:104.347826087%}.row-gutter-23 .column-offset-24{margin-left:104.347826087%}.row-gutter-24{padding:12px 6px}.row-gutter-24 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-24 .column-span-1{width:4.1666666667%}.row-gutter-24 .column-offset-1{margin-left:4.1666666667%}.row-gutter-24 .column-span-2{width:8.3333333333%}.row-gutter-24 .column-offset-2{margin-left:8.3333333333%}.row-gutter-24 .column-span-3{width:12.5%}.row-gutter-24 .column-offset-3{margin-left:12.5%}.row-gutter-24 .column-span-4{width:16.6666666667%}.row-gutter-24 .column-offset-4{margin-left:16.6666666667%}.row-gutter-24 .column-span-5{width:20.8333333333%}.row-gutter-24 .column-offset-5{margin-left:20.8333333333%}.row-gutter-24 .column-span-6{width:25%}.row-gutter-24 .column-offset-6{margin-left:25%}.row-gutter-24 .column-span-7{width:29.1666666667%}.row-gutter-24 .column-offset-7{margin-left:29.1666666667%}.row-gutter-24 .column-span-8{width:33.3333333333%}.row-gutter-24 .column-offset-8{margin-left:33.3333333333%}.row-gutter-24 .column-span-9{width:37.5%}.row-gutter-24 .column-offset-9{margin-left:37.5%}.row-gutter-24 .column-span-10{width:41.6666666667%}.row-gutter-24 .column-offset-10{margin-left:41.6666666667%}.row-gutter-24 .column-span-11{width:45.8333333333%}.row-gutter-24 .column-offset-11{margin-left:45.8333333333%}.row-gutter-24 .column-span-12{width:50%}.row-gutter-24 .column-offset-12{margin-left:50%}.row-gutter-24 .column-span-13{width:54.1666666667%}.row-gutter-24 .column-offset-13{margin-left:54.1666666667%}.row-gutter-24 .column-span-14{width:58.3333333333%}.row-gutter-24 .column-offset-14{margin-left:58.3333333333%}.row-gutter-24 .column-span-15{width:62.5%}.row-gutter-24 .column-offset-15{margin-left:62.5%}.row-gutter-24 .column-span-16{width:66.6666666667%}.row-gutter-24 .column-offset-16{margin-left:66.6666666667%}.row-gutter-24 .column-span-17{width:70.8333333333%}.row-gutter-24 .column-offset-17{margin-left:70.8333333333%}.row-gutter-24 .column-span-18{width:75%}.row-gutter-24 .column-offset-18{margin-left:75%}.row-gutter-24 .column-span-19{width:79.1666666667%}.row-gutter-24 .column-offset-19{margin-left:79.1666666667%}.row-gutter-24 .column-span-20{width:83.3333333333%}.row-gutter-24 .column-offset-20{margin-left:83.3333333333%}.row-gutter-24 .column-span-21{width:87.5%}.row-gutter-24 .column-offset-21{margin-left:87.5%}.row-gutter-24 .column-span-22{width:91.6666666667%}.row-gutter-24 .column-offset-22{margin-left:91.6666666667%}.row-gutter-24 .column-span-23{width:95.8333333333%}.row-gutter-24 .column-offset-23{margin-left:95.8333333333%}.row-gutter-24 .column-span-24{width:100%}.row-gutter-24 .column-offset-24{margin-left:100%}.row-align-top{align-items:flex-start}.row-align-middle{align-items:center}.row-align-bottom{align-items:flex-end}.row-justify-start{justify-content:flex-start}.row-justify-end{justify-content:flex-end}.row-justify-center{justify-content:center}.row-justify-space-around{justify-content:space-around}.row-justify-space-between{justify-content:space-between}.button-select{display:flex;flex-direction:row}.button-select .button-select-options{height:30px;padding:0 15px;color:#54759a;font-size:12px;line-height:30px;background:#fff;border:1px solid #e4eaef;border-right:none;transition:all .3s ease;cursor:pointer;outline:0;display:block}.button-select .button-select-options:first-child{border-radius:3px 0 0 3px}.button-select .button-select-options:last-child{border-radius:0 3px 3px 0;border-right:1px solid #e4eaef}.button-select .button-select-options.actived{background:#57befc;color:#fff;border-color:#57befc;box-shadow:0 2px 5px rgba(87,190,252,.5)}.button-select .button-select-options.actived:active{box-shadow:none}.tags-container{display:flex;align-items:flex-start;overflow-y:hidden}.tags{flex:1;list-style:none;flex-wrap:wrap;box-sizing:content-box}.tags,.tags li{display:flex;align-items:center}.tags li{position:relative;justify-content:center;border:1px solid #2c8af8;color:#54759a;height:22px;border-radius:11px;padding:0 6px;margin:3px 4px;font-size:10px;cursor:default}.tags li.can-click{cursor:pointer}.tags li.error{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.tags li.tags-selected.error{background:linear-gradient(135deg,#2c8af8,#f56c6c);border:none;height:24px;padding:0 7px}.tags .tags-selected{background-color:#2c8af8;color:#fff}.tags-expand{height:30px;line-height:30px;padding:0 20px;user-select:none;cursor:pointer}.input{display:inline-block;height:30px;width:100%;padding:0 10px;font-size:14px;color:#54759a;border-radius:3px;border:1px solid #e4eaef;transition:all .3s;transition-property:border-color,color,box-shadow}.input:focus{outline:0;border-color:#57befc;color:#2c8af8;box-shadow:0 2px 5px rgba(87,190,252,.5)}.input-align-left{text-align:left}.input-align-center{text-align:center}.input-align-right{text-align:right}.input-inside:focus{box-shadow:none}.select{cursor:pointer;font-size:14px;line-height:30px;color:#54759a;display:flex;overflow:hidden}.select>i{margin-left:5px;color:#54759a}.select-list{position:absolute;max-width:170px;border-radius:4px;overflow:hidden;box-shadow:0 2px 5px rgba(183,197,214,.5);opacity:.8;pointer-events:none;transform:scaleY(0);transform-origin:top;transition:all .2s linear}.select-list .list{max-height:300px;overflow:auto;background:#fff;padding:5px 0;transform:scaleY(2);transform-origin:top;transition:all .2s linear}.select-list .list>.option{color:#54759a;padding:10px 15px;font-size:14px;list-style:none;cursor:pointer}.select-list .list>.option:hover,.select-list .list>.selected{background:rgba(228,234,239,.5)}.select-list-show{opacity:1;pointer-events:visible}.select-list-show,.select-list-show .list{transform:scaleY(1)}.modal-mask{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.15);opacity:0;pointer-events:none;transition:all .5s ease;display:flex;justify-content:center;align-items:center;z-index:11}.modal-mask .modal{margin-top:-50px;padding:20px 30px;background:#fff;box-shadow:0 2px 16px rgba(84,117,154,.2);border-radius:4px;display:flex;flex-direction:column;transform:scale(0);transition:all .3s cubic-bezier(.32,.26,.71,1.29)}.modal-mask .modal .modal-title{margin:5px 0;width:100%;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:18px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.modal-mask .modal .modal-body{margin:10px 0;font-size:14px;color:#54759a}.modal-mask .modal .footer{width:100%;margin:5px 0;display:flex;align-items:center;justify-content:flex-end}.modal-mask .modal .footer .button{margin-left:10px}.modal-mask .modal-small{width:400px}.modal-mask .modal-big{width:600px}.modal-show{opacity:1;pointer-events:visible}.modal-show .modal{transform:scale(1)}@media(max-width:768px){.modal-mask .modal{margin-top:0;padding:18px 20px}.modal-mask .modal-small{width:280px}.modal-mask .modal-big{width:480px}}.alert{padding:15px;border-radius:4px;box-shadow:0 2px 8px rgba(44,138,248,.3);font-size:13px;line-height:1.6;text-align:justify}.alert,.alert .alert-icon{background:#fff;display:flex}.alert .alert-icon{margin-right:10px;width:20px;height:20px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center}.alert .alert-icon>i{transform:scale(.5);font-weight:700}.alert .alert-message{width:100%;color:#fff}.alert-box-success{background:linear-gradient(135deg,#5dae34,#67c23a);box-shadow:0 2px 8px rgba(93,174,52,.3)}.alert-box-success .alert-icon>i{color:#67c23a}.alert-box-info{background:linear-gradient(135deg,#3eb4fc,#57befc);box-shadow:0 2px 8px rgba(62,180,252,.3)}.alert-box-info .alert-icon>i{color:#57befc}.alert-box-warning{background:linear-gradient(135deg,#e39725,#e6a23c);box-shadow:0 2px 8px rgba(227,151,37,.3)}.alert-box-warning .alert-icon>i{color:#e6a23c}.alert-box-error{background:linear-gradient(135deg,#f35454,#f56c6c);box-shadow:0 2px 8px rgba(243,84,84,.3)}.alert-box-error .alert-icon>i{color:#f56c6c}.alert-note-success{background:rgba(103,194,58,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #67c23a;box-shadow:0 2px 8px rgba(93,174,52,.3)}.alert-note-success .alert-icon{background:#67c23a}.alert-note-success .alert-icon>i{color:#fff}.alert-note-success .alert-message{color:#3d7323}.alert-note-info{background:rgba(87,190,252,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #57befc;box-shadow:0 2px 8px rgba(62,180,252,.3)}.alert-note-info .alert-icon{background:#57befc}.alert-note-info .alert-icon>i{color:#fff}.alert-note-info .alert-message{color:#0493e9}.alert-note-warning{background:rgba(230,162,60,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #e6a23c;box-shadow:0 2px 8px rgba(227,151,37,.3)}.alert-note-warning .alert-icon{background:#e6a23c}.alert-note-warning .alert-icon>i{color:#fff}.alert-note-warning .alert-message{color:#a76d15}.alert-note-error{background:rgba(245,108,108,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #f56c6c;box-shadow:0 2px 8px rgba(243,84,84,.3)}.alert-note-error .alert-icon{background:#f56c6c}.alert-note-error .alert-icon>i{color:#fff}.alert-note-error .alert-message{color:#eb1010}.button{outline:0;padding:0 15px;height:32px;line-height:32px;border-radius:16px;font-size:14px;cursor:pointer;transition:all .15s ease}.button-primary{color:#fff;border:none;background:linear-gradient(135deg,#57befc,#2c8af8);box-shadow:0 2px 8px rgba(44,138,248,.5)}.button-primary:hover{border:none}.button-primary:active{box-shadow:0 0 2px rgba(44,138,248,.5)}.button-normal{color:#909399;background:#fff;border:1px solid rgba(0,0,0,.1)}.button-normal:hover{border-color:#b7c5d6;color:#54759a}.button-normal:active{background:#fafafa;color:#54759a}.button-danger{color:#fff;border:none;background:linear-gradient(135deg,#f56c6c,#f23c3c);box-shadow:0 2px 8px rgba(242,60,60,.5)}.button-danger:hover{border:none}.button-danger:active{box-shadow:0 0 2px rgba(242,60,60,.5)}.button-success{color:#fff;border:none;background:linear-gradient(135deg,#67c23a,#5dae34);box-shadow:0 2px 8px rgba(93,174,52,.5)}.button-success:hover{border:none}.button-success:active{box-shadow:0 0 2px rgba(93,174,52,.5)}.button-warning{color:#fff;border:none;background:linear-gradient(135deg,#e6a23c,#e39725);box-shadow:0 2px 8px rgba(227,151,37,.5)}.button-warning:hover{border:none}.button-warning:active{box-shadow:0 0 2px rgba(227,151,37,.5)}.message{position:fixed;top:20px;right:20px;border-radius:4px;opacity:0;background:#fff;display:flex;box-shadow:0 0 20px rgba(44,138,248,.2);transition:all .2s ease;transform:translateX(100%)}.message .message-icon{width:36px;flex:1;border-radius:4px 0 0 4px;display:flex;justify-content:center;align-items:center}.message .message-icon>i{color:#fff}.message .message-content{padding:10px 15px;font-size:13px;color:#54759a}.message-info .message-icon{background:linear-gradient(135deg,#57befc,#2c8af8)}.message-success .message-icon{background:linear-gradient(135deg,#67c23a,#5dae34)}.message-warning .message-icon{background:linear-gradient(135deg,#e6a23c,#e39725)}.message-error .message-icon{background:linear-gradient(135deg,#f56c6c,#f23c3c)}.message-show{opacity:1;transition:all .2s ease;transform:translateX(0)}.checkbox{display:flex;position:relative;padding-left:26px;cursor:pointer;line-height:18px}.checkbox:before{content:"";display:inline-block;position:absolute;left:0;top:50%;width:18px;height:18px;border-radius:3px;transition:background-color .3s ease;transform:translateY(-9px);background-color:#fff;border:1px solid #e4eaef}.checkbox.checked:before{background-color:#57befc}.checkbox-icon{position:absolute;left:0;top:50%;color:#fff;line-height:18px;transform:translateY(-9px) scale(.6);text-shadow:none;font-weight:700}.tag{display:flex;align-items:center;justify-content:center;height:24px;font-size:12px;padding:0 12px;text-align:center;background-color:#fff;border:2px solid #2c8af8;color:#2c8af8;border-radius:12px}.spinner{position:relative;width:80px;height:80px;border-radius:100%;animation:spinner 5s linear infinite}.spinner-circle{position:absolute;width:100%;height:100%;transform-origin:48% 48%}.spinner-inner{width:100%;height:100%;border-radius:100%;border:5px solid rgba(44,138,248,.7);border-top:none;border-right:none;background-clip:padding-box;box-shadow:inset 0 0 10px rgba(44,138,248,.15)}@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner-circle:nth-of-type(0){transform:rotate(0deg)}.spinner-circle:nth-of-type(0) .spinner-inner{animation:spinner 2s linear infinite}.spinner-circle:first-of-type{transform:rotate(70deg)}.spinner-circle:first-of-type .spinner-inner{animation:spinner 2s linear infinite}.spinner-circle:nth-of-type(2){transform:rotate(140deg)}.spinner-circle:nth-of-type(2) .spinner-inner{animation:spinner 2s linear infinite}.loading{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0;bottom:0;right:0;background-color:hsla(0,0%,100%,.9);box-shadow:inset 0 0 80px rgba(0,0,0,.1);z-index:1000}.proxy-item{position:relative;width:100%;height:110px;padding:10px;border-radius:4px;background:#fff;user-select:none;cursor:default;box-shadow:2px 5px 20px -3px rgba(44,138,248,.2);transition:all .3s ease}.proxy-item .proxy-type{padding:2px 5px;font-size:10px;color:#fff;border-radius:2px}.proxy-item .proxy-name{display:-webkit-box;margin-top:10px;color:#54759a;font-size:10px;overflow:hidden;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.proxy-item .proxy-delay{position:absolute;left:10px;bottom:13px;font-size:10px;color:rgba(84,117,154,.8)}.proxy-item .proxy-editor{position:absolute;right:10px;bottom:10px;cursor:pointer;color:rgba(84,117,154,.8);opacity:0;pointer-events:none;transition:all .3s ease}.proxy-item:hover{box-shadow:0 14px 20px -4px rgba(84,117,154,.4)}.proxy-item:hover .proxy-editor{opacity:1;pointer-events:visible}.proxy-error{opacity:.5}.proxy-error .proxy-type{background-color:#909399}@media(max-width:768px){.proxy-item{height:70px}.proxy-item .proxy-delay{left:unset;bottom:unset;top:0;right:20px;height:70px;line-height:70px}}.proxy-group{display:flex;align-items:flex-start;font-size:14px;color:#546b87}.proxy-group-part{display:flex;align-items:center;height:60px}.proxy-group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 20px;width:120px;height:18px}.proxies-group-card{padding:0}.proxies-group-item{border-bottom:1px solid #d8dee2}.proxies-group-item:last-child{border-bottom:none}.proxy-group-tags-container{padding:15px 0}.proxy-group-tags{flex:1;margin-left:30px}@media(max-width:768px){.proxy-group{flex-direction:column}.proxy-group-name{width:140px}.proxy-group-part{width:100%;height:42px;margin-top:6px;justify-content:space-between}.proxy-group-type{margin-right:20px}.proxy-group-tags-container{padding:5px 0 10px}.proxy-group-tags{margin-left:20px}}.proxy-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.proxy-provider-header{justify-content:space-between}.proxy-provider-header,.proxy-provider-header-part{display:flex;align-items:center}.proxy-provider-name{margin-right:24px}.proxy-provider-proxies{list-style:none}.proxy-provider-item{box-shadow:0 0 24px 0 rgba(44,138,248,.2)}.proxy-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.proxy-provider-update{line-height:14px;font-size:14px}.proxy-provider-icon{margin-left:20px;cursor:pointer}.proxy-provider-icon.healthcheck{color:#f56c6c}@media(max-width:768px){.proxy-provider-header{flex-direction:column;align-items:flex-start}.proxy-provider-header-part{margin:6px 0}}.proxies-list{--item-width:calc(100%/(var(--columns) + 1));--gap:calc(var(--item-width)/var(--columns));display:flex;margin-right:calc(-1*var(--gap));margin-top:20px;flex-wrap:wrap;align-content:flex-start;list-style:none}@media(min-width:2001px){.proxies-list{--columns:12}}@media(max-width:2000px){.proxies-list{--columns:10}}@media(max-width:1600px){.proxies-list{--columns:8}}@media(max-width:1340px){.proxies-list{--columns:7}}@media(max-width:960px){.proxies-list{--columns:6}}@media(max-width:860px){.proxies-list{--columns:5}}@media(max-width:760px){.proxies-list{--columns:3}}.proxies-list>li{display:inline-block;width:var(--item-width);margin-right:var(--gap);flex-shrink:0;margin-bottom:10px}.proxies-group-list{list-style:none}.proxies-group-card{margin:20px 0}.proxies-container .proxies-action-icon{margin-left:10px}.proxies-speed-test{line-height:32px;margin:0 2px 0 6px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4);cursor:pointer}.proxies-providers-item{margin:20px 0}.proxies-providers-list{list-style:none}@media(max-width:768px){.proxies-group-card{margin:12px 0}.proxies-list{margin-right:0;padding-bottom:20px;flex-wrap:unset;flex-direction:column}.proxies-list>li{width:100%;margin-right:0;margin-bottom:10px}}.logs-card{display:flex;flex-direction:column;flex:1;margin-top:10px}.logs-panel{display:flex;flex-direction:column;flex-grow:1;flex-basis:0;list-style:none;padding:10px;border-radius:2px;background-color:#f3f6f9;font-size:12px;color:#73808f;overflow-y:auto;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}.logs-panel li{line-height:20px;display:inline-block}.logs-panel-time{margin-right:10px;color:#adb7c3}.rule-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.rule-provider-header{justify-content:space-between}.rule-provider-header,.rule-provider-header-part{display:flex;align-items:center}.rule-provider-name{width:120px;margin-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-provider-behavior{width:80px;margin:0 20px 0 12px;background-color:#2c8af8;color:#fff}.rule-provider-spinner{transform:scale(.4)}.rule-provider-proxies{list-style:none}.rule-provider-item{box-shadow:0 0 24px 0 rgba(44,138,248,.2)}.rule-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.rule-provider-update{line-height:14px;font-size:14px}.rule-provider-icon{display:block;margin-left:20px;cursor:pointer}.rule-provider-icon.rule-provider-loading:before{color:#909399;cursor:not-allowed;animation:spinner 2s linear infinite}@media(max-width:768px){.rule-provider-header{flex-direction:column;align-items:flex-start}.rule-provider-header-part{margin:6px 0}}.rules-card{display:flex;flex-direction:column;flex:1;min-height:700px;margin-top:10px;padding:0}.rules-card:focus{outline:none}.rules-card .rules{flex:1 0 auto}.rule-item{line-height:30px;height:50px;overflow:hidden;list-style:none;user-select:none;border-bottom:1px solid rgba(228,234,239,.5)}.rule-item,.rule-item .rule-item-row{padding:5px 0}.rule-item .drag-handler{cursor:row-resize;margin:0 10px;display:flex;justify-content:center}.rule-item .drag-handler>i{font-weight:700;color:#b7c5d6}.rule-item .rule-type{font-size:14px;color:#54759a}.rule-item .rule-type>i{margin-left:5px;color:#54759a}.rule-item .payload{cursor:pointer}.rule-item .payload,.rule-item .rule-proxy{font-size:14px;color:#54759a}.rule-item .delete-btn{opacity:0;transition:all .3s ease}.rule-item .delete-btn span{font-size:14px;color:#f56c6c;cursor:pointer}.rule-item:last-child{border-bottom:none}.rule-item:hover .delete-btn{opacity:1}.rule-proxy-option{display:flex;align-items:center;overflow:hidden}.rule-proxy-option .label{margin-right:5px;height:20px;line-height:20px;padding:0 8px;font-size:10px;border-radius:10px;color:#fff;background:#b7c5d6}.rule-proxy-option .value{line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-card{margin-top:10px;padding:20px 0}.settings-card .column{font-weight:700;align-items:center}.settings-card .value-column{justify-content:flex-end}.settings-card .label{font-size:14px;color:#54759a}.settings-card .external-controller{font-size:14px;color:#54759a;display:flex;justify-content:flex-end;font-weight:400;line-height:17px}.settings-card .external-controller .modify-btn{color:#2c8af8;cursor:pointer}.clash-version{position:relative;margin-top:10px;padding:20px 45px;display:flex}.clash-version .check-icon{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#57befc,#2c8af8);display:flex;justify-content:center;align-items:center}.clash-version .check-icon>i{transform:scale(.5);color:#fff;font-weight:700}.clash-version .version-info{margin-left:10px;font-size:14px;line-height:24px;color:#54759a}.clash-version .check-update-btn{position:absolute;right:45px;font-size:14px;line-height:24px;color:#b7c5d6;cursor:pointer;transition:all .15s ease}.clash-version .check-update-btn:hover{color:#54759a}@media(max-width:768px){.settings-card .row{flex-direction:column;padding-top:0;padding-bottom:0}.settings-card .row>.column{width:100%;margin:10px 0}}.sidebar{position:fixed;top:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:160px;user-select:none}.sidebar-logo{margin-top:50px;width:60px;height:60px}.sidebar-menu{display:flex;flex-direction:column;flex:1;margin-top:12px}.sidebar-menu .item{display:block;margin-top:18px}.sidebar-menu .item>a{display:block;width:120px;height:36px;line-height:36px;font-size:14px;border-radius:18px;text-align:center}.sidebar-menu .item>a,.sidebar-menu .item a:active,.sidebar-menu .item a:visited{color:#909399;text-decoration:none}.sidebar-menu .item>a.active{background:linear-gradient(135deg,#57befc,#2c8af8);color:#fff;box-shadow:0 2px 8px rgba(44,138,248,.5)}.sidebar-version{display:flex;flex-direction:column;align-items:center;padding-bottom:20px}.sidebar-version-label{font-size:14px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.sidebar-version-text{text-align:center;font-size:14px;margin:8px 0;padding:0 10px;color:#54759a}@media(max-width:768px){.sidebar{width:100%;height:60px;flex-direction:row;background:#f4f5f6;z-index:10}.sidebar-logo{margin:0 15px;width:36px;height:36px}.sidebar-menu{flex:1;flex-direction:row;justify-content:center;margin-top:0;overflow-x:scroll;padding:10px}.sidebar-menu::-webkit-scrollbar{display:none}.sidebar-menu .item{margin:0 3px}.sidebar-menu .item>a{width:80px;height:32px;line-height:32px}.sidebar-menu .item.no-mobile,.sidebar-version{display:none}}.connections-card{display:flex;flex-direction:column;flex:1;margin-top:10px;padding:0;overflow:hidden}.connections-card .connections{display:flex;flex-direction:column;width:100%;flex-grow:1;flex-basis:0;overflow:auto}.connections-card .connections-body{flex:1 0 auto}.connections-card .connections-th{position:relative;text-align:center;color:#909399;background:#f3f6f9;height:30px;line-height:30px;font-weight:500;font-size:14px;cursor:pointer;user-select:none}.connections-card .connections-resizer{position:absolute;opacity:0;right:-10px;top:8px;bottom:8px;width:20px;transition:opacity .3s ease;z-index:10;font-size:14px;font-weight:300}.connections-card .connections-resizer:before{content:"";display:block;position:absolute;left:10px;transform:translateX(-2px);width:2px;height:100%;background-color:rgba(144,147,153,.6)}.connections-card .connections-header{position:sticky;top:0;white-space:nowrap}.connections-card .connections-header:hover .connections-resizer{opacity:1}.connections-card .connetions-item{height:36px}.connections-card .connections-block{display:flex;align-items:center;font-size:14px;line-height:36px;padding:0 10px;color:#54759a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connections-card .connections-block.center{text-align:center}.connections-card .connections-block.completed{background-color:#e9eef4;color:rgba(84,117,154,.5)}.connections-filter{color:#2c8af8;font-size:14px;line-height:20px;margin-left:15px;text-shadow:0 0 6px rgba(44,138,248,.4);cursor:pointer}.connections-filter.dangerous{color:#f56c6c;text-shadow:0 0 6px rgba(87,190,252,.2)}.connections-filter.total{flex:1;cursor:unset}.external-controller .row{padding:0}.external-controller .alert{margin:10px 0}.external-controller .form,.external-controller .title{margin:15px 0}.external-controller .title{margin-top:15px;font-size:14px;font-weight:700}@media(max-width:768px){.external-controller .row{flex-direction:column;align-items:flex-start}.external-controller .form,.external-controller .title{margin:5px 0}.external-controller .column{width:100%}.external-controller .alert{display:none}} \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.e4724b81.chunk.css b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.e4724b81.chunk.css new file mode 100644 index 0000000000..46fca3db25 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.e4724b81.chunk.css @@ -0,0 +1 @@ +@font-face{font-family:"clash-iconfont";src:url(//at.alicdn.com/t/font_841708_ok9czskbhel.ttf?t=1576162884356) format("truetype")}.clash-iconfont{font-family:"clash-iconfont"!important;font-size:14px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c8af8}.icon-update:before{content:""}.icon-healthcheck:before{content:""}.icon-speed:before{content:""}.icon-close:before{content:""}.icon-drag:before{content:""}.icon-down-arrow-o:before{content:""}.icon-check:before{content:""}.icon-plus:before{content:""}.icon-triangle-up:before{content:""}.icon-triangle-down:before{content:""}.icon-up-arrow-o:before{content:""}.icon-info:before{content:""}.icon-info-o:before{content:""}.icon-setting:before{content:""}.icon-show:before{content:""}.icon-hide:before{content:""}.icon-sort:before{content:""}.icon-sort-descending:before{content:""}.icon-sort-ascending:before{content:""}.icon-close-all:before{content:""}html{box-sizing:border-box;background:hsla(0,0%,100%,.8);overflow:hidden}*,:after,:before{margin:0;padding:0;box-sizing:inherit}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}body ::-webkit-scrollbar{z-index:11;background:transparent}body ::-webkit-scrollbar-thumb{border-radius:5px;background:#2c8af8}body ::-webkit-scrollbar:vertical{width:6px}body ::-webkit-scrollbar:horizontal{height:6px}.app{min-height:100vh;padding-left:150px}.app.not-clashx{background:#f4f5f6}.page-container{width:100%;height:100vh;padding-left:10px;overflow-y:scroll}.page{padding:20px 35px 30px 20px;width:100%;min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.container{margin:20px 0}input{-webkit-appearance:none}@media(max-width:768px){.app{padding-left:0;padding-top:60px}.page-container{width:100%;padding:0 10px;height:calc(100vh - 60px);-webkit-overflow-scrolling:touch}.page-container::-webkit-scrollbar{display:none}.page{padding:0 0 20px;height:100%}}.header{margin:10px 0;width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;user-select:none}.header>h1{flex-shrink:0;font-size:24px;color:#2c8af8;font-weight:500;text-shadow:0 2px 6px rgba(44,138,248,.4);line-height:32px}.operations{display:flex;flex:1;align-items:center;justify-content:flex-end}@media(max-width:768px){.header>h1{font-size:20px}}.switch{display:inline-block;width:32px;height:16px;border-radius:8px;background-color:#d8dee2;transition:background-color .3s ease;position:relative;cursor:pointer}.switch.checked{background-color:#57befc}.switch.checked:after{transform:translateX(16px)}.switch.disabled{cursor:not-allowed;background-color:#b7c5d6}.switch.disabled:after{box-shadow:0 0 8px rgba(144,147,153,.5)}.switch.checked.disabled,.switch.disabled:after{background-color:#e4eaef}.switch:after{content:"";position:absolute;top:-1px;height:18px;width:18px;border-radius:9px;background-color:#fff;box-shadow:0 0 8px rgba(44,138,248,.4);transition:transform .3s ease;transform:translateX(-2px)}.switch-icon{position:absolute;transform:translateX(-1px) scale(.4);color:#fff;line-height:16px}.card{padding:15px;box-shadow:2px 5px 20px -3px rgba(44,138,248,.18);background-color:#fff;border-radius:4px}.row{width:100%;display:flex;flex-direction:row}.row-gutter-1{padding:12px 6px}.row-gutter-1 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-1 .column-span-1{width:100%}.row-gutter-1 .column-offset-1{margin-left:100%}.row-gutter-1 .column-span-2{width:200%}.row-gutter-1 .column-offset-2{margin-left:200%}.row-gutter-1 .column-span-3{width:300%}.row-gutter-1 .column-offset-3{margin-left:300%}.row-gutter-1 .column-span-4{width:400%}.row-gutter-1 .column-offset-4{margin-left:400%}.row-gutter-1 .column-span-5{width:500%}.row-gutter-1 .column-offset-5{margin-left:500%}.row-gutter-1 .column-span-6{width:600%}.row-gutter-1 .column-offset-6{margin-left:600%}.row-gutter-1 .column-span-7{width:700%}.row-gutter-1 .column-offset-7{margin-left:700%}.row-gutter-1 .column-span-8{width:800%}.row-gutter-1 .column-offset-8{margin-left:800%}.row-gutter-1 .column-span-9{width:900%}.row-gutter-1 .column-offset-9{margin-left:900%}.row-gutter-1 .column-span-10{width:1000%}.row-gutter-1 .column-offset-10{margin-left:1000%}.row-gutter-1 .column-span-11{width:1100%}.row-gutter-1 .column-offset-11{margin-left:1100%}.row-gutter-1 .column-span-12{width:1200%}.row-gutter-1 .column-offset-12{margin-left:1200%}.row-gutter-1 .column-span-13{width:1300%}.row-gutter-1 .column-offset-13{margin-left:1300%}.row-gutter-1 .column-span-14{width:1400%}.row-gutter-1 .column-offset-14{margin-left:1400%}.row-gutter-1 .column-span-15{width:1500%}.row-gutter-1 .column-offset-15{margin-left:1500%}.row-gutter-1 .column-span-16{width:1600%}.row-gutter-1 .column-offset-16{margin-left:1600%}.row-gutter-1 .column-span-17{width:1700%}.row-gutter-1 .column-offset-17{margin-left:1700%}.row-gutter-1 .column-span-18{width:1800%}.row-gutter-1 .column-offset-18{margin-left:1800%}.row-gutter-1 .column-span-19{width:1900%}.row-gutter-1 .column-offset-19{margin-left:1900%}.row-gutter-1 .column-span-20{width:2000%}.row-gutter-1 .column-offset-20{margin-left:2000%}.row-gutter-1 .column-span-21{width:2100%}.row-gutter-1 .column-offset-21{margin-left:2100%}.row-gutter-1 .column-span-22{width:2200%}.row-gutter-1 .column-offset-22{margin-left:2200%}.row-gutter-1 .column-span-23{width:2300%}.row-gutter-1 .column-offset-23{margin-left:2300%}.row-gutter-1 .column-span-24{width:2400%}.row-gutter-1 .column-offset-24{margin-left:2400%}.row-gutter-2{padding:12px 6px}.row-gutter-2 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-2 .column-span-1{width:50%}.row-gutter-2 .column-offset-1{margin-left:50%}.row-gutter-2 .column-span-2{width:100%}.row-gutter-2 .column-offset-2{margin-left:100%}.row-gutter-2 .column-span-3{width:150%}.row-gutter-2 .column-offset-3{margin-left:150%}.row-gutter-2 .column-span-4{width:200%}.row-gutter-2 .column-offset-4{margin-left:200%}.row-gutter-2 .column-span-5{width:250%}.row-gutter-2 .column-offset-5{margin-left:250%}.row-gutter-2 .column-span-6{width:300%}.row-gutter-2 .column-offset-6{margin-left:300%}.row-gutter-2 .column-span-7{width:350%}.row-gutter-2 .column-offset-7{margin-left:350%}.row-gutter-2 .column-span-8{width:400%}.row-gutter-2 .column-offset-8{margin-left:400%}.row-gutter-2 .column-span-9{width:450%}.row-gutter-2 .column-offset-9{margin-left:450%}.row-gutter-2 .column-span-10{width:500%}.row-gutter-2 .column-offset-10{margin-left:500%}.row-gutter-2 .column-span-11{width:550%}.row-gutter-2 .column-offset-11{margin-left:550%}.row-gutter-2 .column-span-12{width:600%}.row-gutter-2 .column-offset-12{margin-left:600%}.row-gutter-2 .column-span-13{width:650%}.row-gutter-2 .column-offset-13{margin-left:650%}.row-gutter-2 .column-span-14{width:700%}.row-gutter-2 .column-offset-14{margin-left:700%}.row-gutter-2 .column-span-15{width:750%}.row-gutter-2 .column-offset-15{margin-left:750%}.row-gutter-2 .column-span-16{width:800%}.row-gutter-2 .column-offset-16{margin-left:800%}.row-gutter-2 .column-span-17{width:850%}.row-gutter-2 .column-offset-17{margin-left:850%}.row-gutter-2 .column-span-18{width:900%}.row-gutter-2 .column-offset-18{margin-left:900%}.row-gutter-2 .column-span-19{width:950%}.row-gutter-2 .column-offset-19{margin-left:950%}.row-gutter-2 .column-span-20{width:1000%}.row-gutter-2 .column-offset-20{margin-left:1000%}.row-gutter-2 .column-span-21{width:1050%}.row-gutter-2 .column-offset-21{margin-left:1050%}.row-gutter-2 .column-span-22{width:1100%}.row-gutter-2 .column-offset-22{margin-left:1100%}.row-gutter-2 .column-span-23{width:1150%}.row-gutter-2 .column-offset-23{margin-left:1150%}.row-gutter-2 .column-span-24{width:1200%}.row-gutter-2 .column-offset-24{margin-left:1200%}.row-gutter-3{padding:12px 6px}.row-gutter-3 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-3 .column-span-1{width:33.3333333333%}.row-gutter-3 .column-offset-1{margin-left:33.3333333333%}.row-gutter-3 .column-span-2{width:66.6666666667%}.row-gutter-3 .column-offset-2{margin-left:66.6666666667%}.row-gutter-3 .column-span-3{width:100%}.row-gutter-3 .column-offset-3{margin-left:100%}.row-gutter-3 .column-span-4{width:133.3333333333%}.row-gutter-3 .column-offset-4{margin-left:133.3333333333%}.row-gutter-3 .column-span-5{width:166.6666666667%}.row-gutter-3 .column-offset-5{margin-left:166.6666666667%}.row-gutter-3 .column-span-6{width:200%}.row-gutter-3 .column-offset-6{margin-left:200%}.row-gutter-3 .column-span-7{width:233.3333333333%}.row-gutter-3 .column-offset-7{margin-left:233.3333333333%}.row-gutter-3 .column-span-8{width:266.6666666667%}.row-gutter-3 .column-offset-8{margin-left:266.6666666667%}.row-gutter-3 .column-span-9{width:300%}.row-gutter-3 .column-offset-9{margin-left:300%}.row-gutter-3 .column-span-10{width:333.3333333333%}.row-gutter-3 .column-offset-10{margin-left:333.3333333333%}.row-gutter-3 .column-span-11{width:366.6666666667%}.row-gutter-3 .column-offset-11{margin-left:366.6666666667%}.row-gutter-3 .column-span-12{width:400%}.row-gutter-3 .column-offset-12{margin-left:400%}.row-gutter-3 .column-span-13{width:433.3333333333%}.row-gutter-3 .column-offset-13{margin-left:433.3333333333%}.row-gutter-3 .column-span-14{width:466.6666666667%}.row-gutter-3 .column-offset-14{margin-left:466.6666666667%}.row-gutter-3 .column-span-15{width:500%}.row-gutter-3 .column-offset-15{margin-left:500%}.row-gutter-3 .column-span-16{width:533.3333333333%}.row-gutter-3 .column-offset-16{margin-left:533.3333333333%}.row-gutter-3 .column-span-17{width:566.6666666667%}.row-gutter-3 .column-offset-17{margin-left:566.6666666667%}.row-gutter-3 .column-span-18{width:600%}.row-gutter-3 .column-offset-18{margin-left:600%}.row-gutter-3 .column-span-19{width:633.3333333333%}.row-gutter-3 .column-offset-19{margin-left:633.3333333333%}.row-gutter-3 .column-span-20{width:666.6666666667%}.row-gutter-3 .column-offset-20{margin-left:666.6666666667%}.row-gutter-3 .column-span-21{width:700%}.row-gutter-3 .column-offset-21{margin-left:700%}.row-gutter-3 .column-span-22{width:733.3333333333%}.row-gutter-3 .column-offset-22{margin-left:733.3333333333%}.row-gutter-3 .column-span-23{width:766.6666666667%}.row-gutter-3 .column-offset-23{margin-left:766.6666666667%}.row-gutter-3 .column-span-24{width:800%}.row-gutter-3 .column-offset-24{margin-left:800%}.row-gutter-4{padding:12px 6px}.row-gutter-4 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-4 .column-span-1{width:25%}.row-gutter-4 .column-offset-1{margin-left:25%}.row-gutter-4 .column-span-2{width:50%}.row-gutter-4 .column-offset-2{margin-left:50%}.row-gutter-4 .column-span-3{width:75%}.row-gutter-4 .column-offset-3{margin-left:75%}.row-gutter-4 .column-span-4{width:100%}.row-gutter-4 .column-offset-4{margin-left:100%}.row-gutter-4 .column-span-5{width:125%}.row-gutter-4 .column-offset-5{margin-left:125%}.row-gutter-4 .column-span-6{width:150%}.row-gutter-4 .column-offset-6{margin-left:150%}.row-gutter-4 .column-span-7{width:175%}.row-gutter-4 .column-offset-7{margin-left:175%}.row-gutter-4 .column-span-8{width:200%}.row-gutter-4 .column-offset-8{margin-left:200%}.row-gutter-4 .column-span-9{width:225%}.row-gutter-4 .column-offset-9{margin-left:225%}.row-gutter-4 .column-span-10{width:250%}.row-gutter-4 .column-offset-10{margin-left:250%}.row-gutter-4 .column-span-11{width:275%}.row-gutter-4 .column-offset-11{margin-left:275%}.row-gutter-4 .column-span-12{width:300%}.row-gutter-4 .column-offset-12{margin-left:300%}.row-gutter-4 .column-span-13{width:325%}.row-gutter-4 .column-offset-13{margin-left:325%}.row-gutter-4 .column-span-14{width:350%}.row-gutter-4 .column-offset-14{margin-left:350%}.row-gutter-4 .column-span-15{width:375%}.row-gutter-4 .column-offset-15{margin-left:375%}.row-gutter-4 .column-span-16{width:400%}.row-gutter-4 .column-offset-16{margin-left:400%}.row-gutter-4 .column-span-17{width:425%}.row-gutter-4 .column-offset-17{margin-left:425%}.row-gutter-4 .column-span-18{width:450%}.row-gutter-4 .column-offset-18{margin-left:450%}.row-gutter-4 .column-span-19{width:475%}.row-gutter-4 .column-offset-19{margin-left:475%}.row-gutter-4 .column-span-20{width:500%}.row-gutter-4 .column-offset-20{margin-left:500%}.row-gutter-4 .column-span-21{width:525%}.row-gutter-4 .column-offset-21{margin-left:525%}.row-gutter-4 .column-span-22{width:550%}.row-gutter-4 .column-offset-22{margin-left:550%}.row-gutter-4 .column-span-23{width:575%}.row-gutter-4 .column-offset-23{margin-left:575%}.row-gutter-4 .column-span-24{width:600%}.row-gutter-4 .column-offset-24{margin-left:600%}.row-gutter-5{padding:12px 6px}.row-gutter-5 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-5 .column-span-1{width:20%}.row-gutter-5 .column-offset-1{margin-left:20%}.row-gutter-5 .column-span-2{width:40%}.row-gutter-5 .column-offset-2{margin-left:40%}.row-gutter-5 .column-span-3{width:60%}.row-gutter-5 .column-offset-3{margin-left:60%}.row-gutter-5 .column-span-4{width:80%}.row-gutter-5 .column-offset-4{margin-left:80%}.row-gutter-5 .column-span-5{width:100%}.row-gutter-5 .column-offset-5{margin-left:100%}.row-gutter-5 .column-span-6{width:120%}.row-gutter-5 .column-offset-6{margin-left:120%}.row-gutter-5 .column-span-7{width:140%}.row-gutter-5 .column-offset-7{margin-left:140%}.row-gutter-5 .column-span-8{width:160%}.row-gutter-5 .column-offset-8{margin-left:160%}.row-gutter-5 .column-span-9{width:180%}.row-gutter-5 .column-offset-9{margin-left:180%}.row-gutter-5 .column-span-10{width:200%}.row-gutter-5 .column-offset-10{margin-left:200%}.row-gutter-5 .column-span-11{width:220%}.row-gutter-5 .column-offset-11{margin-left:220%}.row-gutter-5 .column-span-12{width:240%}.row-gutter-5 .column-offset-12{margin-left:240%}.row-gutter-5 .column-span-13{width:260%}.row-gutter-5 .column-offset-13{margin-left:260%}.row-gutter-5 .column-span-14{width:280%}.row-gutter-5 .column-offset-14{margin-left:280%}.row-gutter-5 .column-span-15{width:300%}.row-gutter-5 .column-offset-15{margin-left:300%}.row-gutter-5 .column-span-16{width:320%}.row-gutter-5 .column-offset-16{margin-left:320%}.row-gutter-5 .column-span-17{width:340%}.row-gutter-5 .column-offset-17{margin-left:340%}.row-gutter-5 .column-span-18{width:360%}.row-gutter-5 .column-offset-18{margin-left:360%}.row-gutter-5 .column-span-19{width:380%}.row-gutter-5 .column-offset-19{margin-left:380%}.row-gutter-5 .column-span-20{width:400%}.row-gutter-5 .column-offset-20{margin-left:400%}.row-gutter-5 .column-span-21{width:420%}.row-gutter-5 .column-offset-21{margin-left:420%}.row-gutter-5 .column-span-22{width:440%}.row-gutter-5 .column-offset-22{margin-left:440%}.row-gutter-5 .column-span-23{width:460%}.row-gutter-5 .column-offset-23{margin-left:460%}.row-gutter-5 .column-span-24{width:480%}.row-gutter-5 .column-offset-24{margin-left:480%}.row-gutter-6{padding:12px 6px}.row-gutter-6 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-6 .column-span-1{width:16.6666666667%}.row-gutter-6 .column-offset-1{margin-left:16.6666666667%}.row-gutter-6 .column-span-2{width:33.3333333333%}.row-gutter-6 .column-offset-2{margin-left:33.3333333333%}.row-gutter-6 .column-span-3{width:50%}.row-gutter-6 .column-offset-3{margin-left:50%}.row-gutter-6 .column-span-4{width:66.6666666667%}.row-gutter-6 .column-offset-4{margin-left:66.6666666667%}.row-gutter-6 .column-span-5{width:83.3333333333%}.row-gutter-6 .column-offset-5{margin-left:83.3333333333%}.row-gutter-6 .column-span-6{width:100%}.row-gutter-6 .column-offset-6{margin-left:100%}.row-gutter-6 .column-span-7{width:116.6666666667%}.row-gutter-6 .column-offset-7{margin-left:116.6666666667%}.row-gutter-6 .column-span-8{width:133.3333333333%}.row-gutter-6 .column-offset-8{margin-left:133.3333333333%}.row-gutter-6 .column-span-9{width:150%}.row-gutter-6 .column-offset-9{margin-left:150%}.row-gutter-6 .column-span-10{width:166.6666666667%}.row-gutter-6 .column-offset-10{margin-left:166.6666666667%}.row-gutter-6 .column-span-11{width:183.3333333333%}.row-gutter-6 .column-offset-11{margin-left:183.3333333333%}.row-gutter-6 .column-span-12{width:200%}.row-gutter-6 .column-offset-12{margin-left:200%}.row-gutter-6 .column-span-13{width:216.6666666667%}.row-gutter-6 .column-offset-13{margin-left:216.6666666667%}.row-gutter-6 .column-span-14{width:233.3333333333%}.row-gutter-6 .column-offset-14{margin-left:233.3333333333%}.row-gutter-6 .column-span-15{width:250%}.row-gutter-6 .column-offset-15{margin-left:250%}.row-gutter-6 .column-span-16{width:266.6666666667%}.row-gutter-6 .column-offset-16{margin-left:266.6666666667%}.row-gutter-6 .column-span-17{width:283.3333333333%}.row-gutter-6 .column-offset-17{margin-left:283.3333333333%}.row-gutter-6 .column-span-18{width:300%}.row-gutter-6 .column-offset-18{margin-left:300%}.row-gutter-6 .column-span-19{width:316.6666666667%}.row-gutter-6 .column-offset-19{margin-left:316.6666666667%}.row-gutter-6 .column-span-20{width:333.3333333333%}.row-gutter-6 .column-offset-20{margin-left:333.3333333333%}.row-gutter-6 .column-span-21{width:350%}.row-gutter-6 .column-offset-21{margin-left:350%}.row-gutter-6 .column-span-22{width:366.6666666667%}.row-gutter-6 .column-offset-22{margin-left:366.6666666667%}.row-gutter-6 .column-span-23{width:383.3333333333%}.row-gutter-6 .column-offset-23{margin-left:383.3333333333%}.row-gutter-6 .column-span-24{width:400%}.row-gutter-6 .column-offset-24{margin-left:400%}.row-gutter-7{padding:12px 6px}.row-gutter-7 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-7 .column-span-1{width:14.2857142857%}.row-gutter-7 .column-offset-1{margin-left:14.2857142857%}.row-gutter-7 .column-span-2{width:28.5714285714%}.row-gutter-7 .column-offset-2{margin-left:28.5714285714%}.row-gutter-7 .column-span-3{width:42.8571428571%}.row-gutter-7 .column-offset-3{margin-left:42.8571428571%}.row-gutter-7 .column-span-4{width:57.1428571429%}.row-gutter-7 .column-offset-4{margin-left:57.1428571429%}.row-gutter-7 .column-span-5{width:71.4285714286%}.row-gutter-7 .column-offset-5{margin-left:71.4285714286%}.row-gutter-7 .column-span-6{width:85.7142857143%}.row-gutter-7 .column-offset-6{margin-left:85.7142857143%}.row-gutter-7 .column-span-7{width:100%}.row-gutter-7 .column-offset-7{margin-left:100%}.row-gutter-7 .column-span-8{width:114.2857142857%}.row-gutter-7 .column-offset-8{margin-left:114.2857142857%}.row-gutter-7 .column-span-9{width:128.5714285714%}.row-gutter-7 .column-offset-9{margin-left:128.5714285714%}.row-gutter-7 .column-span-10{width:142.8571428571%}.row-gutter-7 .column-offset-10{margin-left:142.8571428571%}.row-gutter-7 .column-span-11{width:157.1428571429%}.row-gutter-7 .column-offset-11{margin-left:157.1428571429%}.row-gutter-7 .column-span-12{width:171.4285714286%}.row-gutter-7 .column-offset-12{margin-left:171.4285714286%}.row-gutter-7 .column-span-13{width:185.7142857143%}.row-gutter-7 .column-offset-13{margin-left:185.7142857143%}.row-gutter-7 .column-span-14{width:200%}.row-gutter-7 .column-offset-14{margin-left:200%}.row-gutter-7 .column-span-15{width:214.2857142857%}.row-gutter-7 .column-offset-15{margin-left:214.2857142857%}.row-gutter-7 .column-span-16{width:228.5714285714%}.row-gutter-7 .column-offset-16{margin-left:228.5714285714%}.row-gutter-7 .column-span-17{width:242.8571428571%}.row-gutter-7 .column-offset-17{margin-left:242.8571428571%}.row-gutter-7 .column-span-18{width:257.1428571429%}.row-gutter-7 .column-offset-18{margin-left:257.1428571429%}.row-gutter-7 .column-span-19{width:271.4285714286%}.row-gutter-7 .column-offset-19{margin-left:271.4285714286%}.row-gutter-7 .column-span-20{width:285.7142857143%}.row-gutter-7 .column-offset-20{margin-left:285.7142857143%}.row-gutter-7 .column-span-21{width:300%}.row-gutter-7 .column-offset-21{margin-left:300%}.row-gutter-7 .column-span-22{width:314.2857142857%}.row-gutter-7 .column-offset-22{margin-left:314.2857142857%}.row-gutter-7 .column-span-23{width:328.5714285714%}.row-gutter-7 .column-offset-23{margin-left:328.5714285714%}.row-gutter-7 .column-span-24{width:342.8571428571%}.row-gutter-7 .column-offset-24{margin-left:342.8571428571%}.row-gutter-8{padding:12px 6px}.row-gutter-8 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-8 .column-span-1{width:12.5%}.row-gutter-8 .column-offset-1{margin-left:12.5%}.row-gutter-8 .column-span-2{width:25%}.row-gutter-8 .column-offset-2{margin-left:25%}.row-gutter-8 .column-span-3{width:37.5%}.row-gutter-8 .column-offset-3{margin-left:37.5%}.row-gutter-8 .column-span-4{width:50%}.row-gutter-8 .column-offset-4{margin-left:50%}.row-gutter-8 .column-span-5{width:62.5%}.row-gutter-8 .column-offset-5{margin-left:62.5%}.row-gutter-8 .column-span-6{width:75%}.row-gutter-8 .column-offset-6{margin-left:75%}.row-gutter-8 .column-span-7{width:87.5%}.row-gutter-8 .column-offset-7{margin-left:87.5%}.row-gutter-8 .column-span-8{width:100%}.row-gutter-8 .column-offset-8{margin-left:100%}.row-gutter-8 .column-span-9{width:112.5%}.row-gutter-8 .column-offset-9{margin-left:112.5%}.row-gutter-8 .column-span-10{width:125%}.row-gutter-8 .column-offset-10{margin-left:125%}.row-gutter-8 .column-span-11{width:137.5%}.row-gutter-8 .column-offset-11{margin-left:137.5%}.row-gutter-8 .column-span-12{width:150%}.row-gutter-8 .column-offset-12{margin-left:150%}.row-gutter-8 .column-span-13{width:162.5%}.row-gutter-8 .column-offset-13{margin-left:162.5%}.row-gutter-8 .column-span-14{width:175%}.row-gutter-8 .column-offset-14{margin-left:175%}.row-gutter-8 .column-span-15{width:187.5%}.row-gutter-8 .column-offset-15{margin-left:187.5%}.row-gutter-8 .column-span-16{width:200%}.row-gutter-8 .column-offset-16{margin-left:200%}.row-gutter-8 .column-span-17{width:212.5%}.row-gutter-8 .column-offset-17{margin-left:212.5%}.row-gutter-8 .column-span-18{width:225%}.row-gutter-8 .column-offset-18{margin-left:225%}.row-gutter-8 .column-span-19{width:237.5%}.row-gutter-8 .column-offset-19{margin-left:237.5%}.row-gutter-8 .column-span-20{width:250%}.row-gutter-8 .column-offset-20{margin-left:250%}.row-gutter-8 .column-span-21{width:262.5%}.row-gutter-8 .column-offset-21{margin-left:262.5%}.row-gutter-8 .column-span-22{width:275%}.row-gutter-8 .column-offset-22{margin-left:275%}.row-gutter-8 .column-span-23{width:287.5%}.row-gutter-8 .column-offset-23{margin-left:287.5%}.row-gutter-8 .column-span-24{width:300%}.row-gutter-8 .column-offset-24{margin-left:300%}.row-gutter-9{padding:12px 6px}.row-gutter-9 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-9 .column-span-1{width:11.1111111111%}.row-gutter-9 .column-offset-1{margin-left:11.1111111111%}.row-gutter-9 .column-span-2{width:22.2222222222%}.row-gutter-9 .column-offset-2{margin-left:22.2222222222%}.row-gutter-9 .column-span-3{width:33.3333333333%}.row-gutter-9 .column-offset-3{margin-left:33.3333333333%}.row-gutter-9 .column-span-4{width:44.4444444444%}.row-gutter-9 .column-offset-4{margin-left:44.4444444444%}.row-gutter-9 .column-span-5{width:55.5555555556%}.row-gutter-9 .column-offset-5{margin-left:55.5555555556%}.row-gutter-9 .column-span-6{width:66.6666666667%}.row-gutter-9 .column-offset-6{margin-left:66.6666666667%}.row-gutter-9 .column-span-7{width:77.7777777778%}.row-gutter-9 .column-offset-7{margin-left:77.7777777778%}.row-gutter-9 .column-span-8{width:88.8888888889%}.row-gutter-9 .column-offset-8{margin-left:88.8888888889%}.row-gutter-9 .column-span-9{width:100%}.row-gutter-9 .column-offset-9{margin-left:100%}.row-gutter-9 .column-span-10{width:111.1111111111%}.row-gutter-9 .column-offset-10{margin-left:111.1111111111%}.row-gutter-9 .column-span-11{width:122.2222222222%}.row-gutter-9 .column-offset-11{margin-left:122.2222222222%}.row-gutter-9 .column-span-12{width:133.3333333333%}.row-gutter-9 .column-offset-12{margin-left:133.3333333333%}.row-gutter-9 .column-span-13{width:144.4444444444%}.row-gutter-9 .column-offset-13{margin-left:144.4444444444%}.row-gutter-9 .column-span-14{width:155.5555555556%}.row-gutter-9 .column-offset-14{margin-left:155.5555555556%}.row-gutter-9 .column-span-15{width:166.6666666667%}.row-gutter-9 .column-offset-15{margin-left:166.6666666667%}.row-gutter-9 .column-span-16{width:177.7777777778%}.row-gutter-9 .column-offset-16{margin-left:177.7777777778%}.row-gutter-9 .column-span-17{width:188.8888888889%}.row-gutter-9 .column-offset-17{margin-left:188.8888888889%}.row-gutter-9 .column-span-18{width:200%}.row-gutter-9 .column-offset-18{margin-left:200%}.row-gutter-9 .column-span-19{width:211.1111111111%}.row-gutter-9 .column-offset-19{margin-left:211.1111111111%}.row-gutter-9 .column-span-20{width:222.2222222222%}.row-gutter-9 .column-offset-20{margin-left:222.2222222222%}.row-gutter-9 .column-span-21{width:233.3333333333%}.row-gutter-9 .column-offset-21{margin-left:233.3333333333%}.row-gutter-9 .column-span-22{width:244.4444444444%}.row-gutter-9 .column-offset-22{margin-left:244.4444444444%}.row-gutter-9 .column-span-23{width:255.5555555556%}.row-gutter-9 .column-offset-23{margin-left:255.5555555556%}.row-gutter-9 .column-span-24{width:266.6666666667%}.row-gutter-9 .column-offset-24{margin-left:266.6666666667%}.row-gutter-10{padding:12px 6px}.row-gutter-10 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-10 .column-span-1{width:10%}.row-gutter-10 .column-offset-1{margin-left:10%}.row-gutter-10 .column-span-2{width:20%}.row-gutter-10 .column-offset-2{margin-left:20%}.row-gutter-10 .column-span-3{width:30%}.row-gutter-10 .column-offset-3{margin-left:30%}.row-gutter-10 .column-span-4{width:40%}.row-gutter-10 .column-offset-4{margin-left:40%}.row-gutter-10 .column-span-5{width:50%}.row-gutter-10 .column-offset-5{margin-left:50%}.row-gutter-10 .column-span-6{width:60%}.row-gutter-10 .column-offset-6{margin-left:60%}.row-gutter-10 .column-span-7{width:70%}.row-gutter-10 .column-offset-7{margin-left:70%}.row-gutter-10 .column-span-8{width:80%}.row-gutter-10 .column-offset-8{margin-left:80%}.row-gutter-10 .column-span-9{width:90%}.row-gutter-10 .column-offset-9{margin-left:90%}.row-gutter-10 .column-span-10{width:100%}.row-gutter-10 .column-offset-10{margin-left:100%}.row-gutter-10 .column-span-11{width:110%}.row-gutter-10 .column-offset-11{margin-left:110%}.row-gutter-10 .column-span-12{width:120%}.row-gutter-10 .column-offset-12{margin-left:120%}.row-gutter-10 .column-span-13{width:130%}.row-gutter-10 .column-offset-13{margin-left:130%}.row-gutter-10 .column-span-14{width:140%}.row-gutter-10 .column-offset-14{margin-left:140%}.row-gutter-10 .column-span-15{width:150%}.row-gutter-10 .column-offset-15{margin-left:150%}.row-gutter-10 .column-span-16{width:160%}.row-gutter-10 .column-offset-16{margin-left:160%}.row-gutter-10 .column-span-17{width:170%}.row-gutter-10 .column-offset-17{margin-left:170%}.row-gutter-10 .column-span-18{width:180%}.row-gutter-10 .column-offset-18{margin-left:180%}.row-gutter-10 .column-span-19{width:190%}.row-gutter-10 .column-offset-19{margin-left:190%}.row-gutter-10 .column-span-20{width:200%}.row-gutter-10 .column-offset-20{margin-left:200%}.row-gutter-10 .column-span-21{width:210%}.row-gutter-10 .column-offset-21{margin-left:210%}.row-gutter-10 .column-span-22{width:220%}.row-gutter-10 .column-offset-22{margin-left:220%}.row-gutter-10 .column-span-23{width:230%}.row-gutter-10 .column-offset-23{margin-left:230%}.row-gutter-10 .column-span-24{width:240%}.row-gutter-10 .column-offset-24{margin-left:240%}.row-gutter-11{padding:12px 6px}.row-gutter-11 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-11 .column-span-1{width:9.0909090909%}.row-gutter-11 .column-offset-1{margin-left:9.0909090909%}.row-gutter-11 .column-span-2{width:18.1818181818%}.row-gutter-11 .column-offset-2{margin-left:18.1818181818%}.row-gutter-11 .column-span-3{width:27.2727272727%}.row-gutter-11 .column-offset-3{margin-left:27.2727272727%}.row-gutter-11 .column-span-4{width:36.3636363636%}.row-gutter-11 .column-offset-4{margin-left:36.3636363636%}.row-gutter-11 .column-span-5{width:45.4545454545%}.row-gutter-11 .column-offset-5{margin-left:45.4545454545%}.row-gutter-11 .column-span-6{width:54.5454545455%}.row-gutter-11 .column-offset-6{margin-left:54.5454545455%}.row-gutter-11 .column-span-7{width:63.6363636364%}.row-gutter-11 .column-offset-7{margin-left:63.6363636364%}.row-gutter-11 .column-span-8{width:72.7272727273%}.row-gutter-11 .column-offset-8{margin-left:72.7272727273%}.row-gutter-11 .column-span-9{width:81.8181818182%}.row-gutter-11 .column-offset-9{margin-left:81.8181818182%}.row-gutter-11 .column-span-10{width:90.9090909091%}.row-gutter-11 .column-offset-10{margin-left:90.9090909091%}.row-gutter-11 .column-span-11{width:100%}.row-gutter-11 .column-offset-11{margin-left:100%}.row-gutter-11 .column-span-12{width:109.0909090909%}.row-gutter-11 .column-offset-12{margin-left:109.0909090909%}.row-gutter-11 .column-span-13{width:118.1818181818%}.row-gutter-11 .column-offset-13{margin-left:118.1818181818%}.row-gutter-11 .column-span-14{width:127.2727272727%}.row-gutter-11 .column-offset-14{margin-left:127.2727272727%}.row-gutter-11 .column-span-15{width:136.3636363636%}.row-gutter-11 .column-offset-15{margin-left:136.3636363636%}.row-gutter-11 .column-span-16{width:145.4545454545%}.row-gutter-11 .column-offset-16{margin-left:145.4545454545%}.row-gutter-11 .column-span-17{width:154.5454545455%}.row-gutter-11 .column-offset-17{margin-left:154.5454545455%}.row-gutter-11 .column-span-18{width:163.6363636364%}.row-gutter-11 .column-offset-18{margin-left:163.6363636364%}.row-gutter-11 .column-span-19{width:172.7272727273%}.row-gutter-11 .column-offset-19{margin-left:172.7272727273%}.row-gutter-11 .column-span-20{width:181.8181818182%}.row-gutter-11 .column-offset-20{margin-left:181.8181818182%}.row-gutter-11 .column-span-21{width:190.9090909091%}.row-gutter-11 .column-offset-21{margin-left:190.9090909091%}.row-gutter-11 .column-span-22{width:200%}.row-gutter-11 .column-offset-22{margin-left:200%}.row-gutter-11 .column-span-23{width:209.0909090909%}.row-gutter-11 .column-offset-23{margin-left:209.0909090909%}.row-gutter-11 .column-span-24{width:218.1818181818%}.row-gutter-11 .column-offset-24{margin-left:218.1818181818%}.row-gutter-12{padding:12px 6px}.row-gutter-12 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-12 .column-span-1{width:8.3333333333%}.row-gutter-12 .column-offset-1{margin-left:8.3333333333%}.row-gutter-12 .column-span-2{width:16.6666666667%}.row-gutter-12 .column-offset-2{margin-left:16.6666666667%}.row-gutter-12 .column-span-3{width:25%}.row-gutter-12 .column-offset-3{margin-left:25%}.row-gutter-12 .column-span-4{width:33.3333333333%}.row-gutter-12 .column-offset-4{margin-left:33.3333333333%}.row-gutter-12 .column-span-5{width:41.6666666667%}.row-gutter-12 .column-offset-5{margin-left:41.6666666667%}.row-gutter-12 .column-span-6{width:50%}.row-gutter-12 .column-offset-6{margin-left:50%}.row-gutter-12 .column-span-7{width:58.3333333333%}.row-gutter-12 .column-offset-7{margin-left:58.3333333333%}.row-gutter-12 .column-span-8{width:66.6666666667%}.row-gutter-12 .column-offset-8{margin-left:66.6666666667%}.row-gutter-12 .column-span-9{width:75%}.row-gutter-12 .column-offset-9{margin-left:75%}.row-gutter-12 .column-span-10{width:83.3333333333%}.row-gutter-12 .column-offset-10{margin-left:83.3333333333%}.row-gutter-12 .column-span-11{width:91.6666666667%}.row-gutter-12 .column-offset-11{margin-left:91.6666666667%}.row-gutter-12 .column-span-12{width:100%}.row-gutter-12 .column-offset-12{margin-left:100%}.row-gutter-12 .column-span-13{width:108.3333333333%}.row-gutter-12 .column-offset-13{margin-left:108.3333333333%}.row-gutter-12 .column-span-14{width:116.6666666667%}.row-gutter-12 .column-offset-14{margin-left:116.6666666667%}.row-gutter-12 .column-span-15{width:125%}.row-gutter-12 .column-offset-15{margin-left:125%}.row-gutter-12 .column-span-16{width:133.3333333333%}.row-gutter-12 .column-offset-16{margin-left:133.3333333333%}.row-gutter-12 .column-span-17{width:141.6666666667%}.row-gutter-12 .column-offset-17{margin-left:141.6666666667%}.row-gutter-12 .column-span-18{width:150%}.row-gutter-12 .column-offset-18{margin-left:150%}.row-gutter-12 .column-span-19{width:158.3333333333%}.row-gutter-12 .column-offset-19{margin-left:158.3333333333%}.row-gutter-12 .column-span-20{width:166.6666666667%}.row-gutter-12 .column-offset-20{margin-left:166.6666666667%}.row-gutter-12 .column-span-21{width:175%}.row-gutter-12 .column-offset-21{margin-left:175%}.row-gutter-12 .column-span-22{width:183.3333333333%}.row-gutter-12 .column-offset-22{margin-left:183.3333333333%}.row-gutter-12 .column-span-23{width:191.6666666667%}.row-gutter-12 .column-offset-23{margin-left:191.6666666667%}.row-gutter-12 .column-span-24{width:200%}.row-gutter-12 .column-offset-24{margin-left:200%}.row-gutter-13{padding:12px 6px}.row-gutter-13 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-13 .column-span-1{width:7.6923076923%}.row-gutter-13 .column-offset-1{margin-left:7.6923076923%}.row-gutter-13 .column-span-2{width:15.3846153846%}.row-gutter-13 .column-offset-2{margin-left:15.3846153846%}.row-gutter-13 .column-span-3{width:23.0769230769%}.row-gutter-13 .column-offset-3{margin-left:23.0769230769%}.row-gutter-13 .column-span-4{width:30.7692307692%}.row-gutter-13 .column-offset-4{margin-left:30.7692307692%}.row-gutter-13 .column-span-5{width:38.4615384615%}.row-gutter-13 .column-offset-5{margin-left:38.4615384615%}.row-gutter-13 .column-span-6{width:46.1538461538%}.row-gutter-13 .column-offset-6{margin-left:46.1538461538%}.row-gutter-13 .column-span-7{width:53.8461538462%}.row-gutter-13 .column-offset-7{margin-left:53.8461538462%}.row-gutter-13 .column-span-8{width:61.5384615385%}.row-gutter-13 .column-offset-8{margin-left:61.5384615385%}.row-gutter-13 .column-span-9{width:69.2307692308%}.row-gutter-13 .column-offset-9{margin-left:69.2307692308%}.row-gutter-13 .column-span-10{width:76.9230769231%}.row-gutter-13 .column-offset-10{margin-left:76.9230769231%}.row-gutter-13 .column-span-11{width:84.6153846154%}.row-gutter-13 .column-offset-11{margin-left:84.6153846154%}.row-gutter-13 .column-span-12{width:92.3076923077%}.row-gutter-13 .column-offset-12{margin-left:92.3076923077%}.row-gutter-13 .column-span-13{width:100%}.row-gutter-13 .column-offset-13{margin-left:100%}.row-gutter-13 .column-span-14{width:107.6923076923%}.row-gutter-13 .column-offset-14{margin-left:107.6923076923%}.row-gutter-13 .column-span-15{width:115.3846153846%}.row-gutter-13 .column-offset-15{margin-left:115.3846153846%}.row-gutter-13 .column-span-16{width:123.0769230769%}.row-gutter-13 .column-offset-16{margin-left:123.0769230769%}.row-gutter-13 .column-span-17{width:130.7692307692%}.row-gutter-13 .column-offset-17{margin-left:130.7692307692%}.row-gutter-13 .column-span-18{width:138.4615384615%}.row-gutter-13 .column-offset-18{margin-left:138.4615384615%}.row-gutter-13 .column-span-19{width:146.1538461538%}.row-gutter-13 .column-offset-19{margin-left:146.1538461538%}.row-gutter-13 .column-span-20{width:153.8461538462%}.row-gutter-13 .column-offset-20{margin-left:153.8461538462%}.row-gutter-13 .column-span-21{width:161.5384615385%}.row-gutter-13 .column-offset-21{margin-left:161.5384615385%}.row-gutter-13 .column-span-22{width:169.2307692308%}.row-gutter-13 .column-offset-22{margin-left:169.2307692308%}.row-gutter-13 .column-span-23{width:176.9230769231%}.row-gutter-13 .column-offset-23{margin-left:176.9230769231%}.row-gutter-13 .column-span-24{width:184.6153846154%}.row-gutter-13 .column-offset-24{margin-left:184.6153846154%}.row-gutter-14{padding:12px 6px}.row-gutter-14 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-14 .column-span-1{width:7.1428571429%}.row-gutter-14 .column-offset-1{margin-left:7.1428571429%}.row-gutter-14 .column-span-2{width:14.2857142857%}.row-gutter-14 .column-offset-2{margin-left:14.2857142857%}.row-gutter-14 .column-span-3{width:21.4285714286%}.row-gutter-14 .column-offset-3{margin-left:21.4285714286%}.row-gutter-14 .column-span-4{width:28.5714285714%}.row-gutter-14 .column-offset-4{margin-left:28.5714285714%}.row-gutter-14 .column-span-5{width:35.7142857143%}.row-gutter-14 .column-offset-5{margin-left:35.7142857143%}.row-gutter-14 .column-span-6{width:42.8571428571%}.row-gutter-14 .column-offset-6{margin-left:42.8571428571%}.row-gutter-14 .column-span-7{width:50%}.row-gutter-14 .column-offset-7{margin-left:50%}.row-gutter-14 .column-span-8{width:57.1428571429%}.row-gutter-14 .column-offset-8{margin-left:57.1428571429%}.row-gutter-14 .column-span-9{width:64.2857142857%}.row-gutter-14 .column-offset-9{margin-left:64.2857142857%}.row-gutter-14 .column-span-10{width:71.4285714286%}.row-gutter-14 .column-offset-10{margin-left:71.4285714286%}.row-gutter-14 .column-span-11{width:78.5714285714%}.row-gutter-14 .column-offset-11{margin-left:78.5714285714%}.row-gutter-14 .column-span-12{width:85.7142857143%}.row-gutter-14 .column-offset-12{margin-left:85.7142857143%}.row-gutter-14 .column-span-13{width:92.8571428571%}.row-gutter-14 .column-offset-13{margin-left:92.8571428571%}.row-gutter-14 .column-span-14{width:100%}.row-gutter-14 .column-offset-14{margin-left:100%}.row-gutter-14 .column-span-15{width:107.1428571429%}.row-gutter-14 .column-offset-15{margin-left:107.1428571429%}.row-gutter-14 .column-span-16{width:114.2857142857%}.row-gutter-14 .column-offset-16{margin-left:114.2857142857%}.row-gutter-14 .column-span-17{width:121.4285714286%}.row-gutter-14 .column-offset-17{margin-left:121.4285714286%}.row-gutter-14 .column-span-18{width:128.5714285714%}.row-gutter-14 .column-offset-18{margin-left:128.5714285714%}.row-gutter-14 .column-span-19{width:135.7142857143%}.row-gutter-14 .column-offset-19{margin-left:135.7142857143%}.row-gutter-14 .column-span-20{width:142.8571428571%}.row-gutter-14 .column-offset-20{margin-left:142.8571428571%}.row-gutter-14 .column-span-21{width:150%}.row-gutter-14 .column-offset-21{margin-left:150%}.row-gutter-14 .column-span-22{width:157.1428571429%}.row-gutter-14 .column-offset-22{margin-left:157.1428571429%}.row-gutter-14 .column-span-23{width:164.2857142857%}.row-gutter-14 .column-offset-23{margin-left:164.2857142857%}.row-gutter-14 .column-span-24{width:171.4285714286%}.row-gutter-14 .column-offset-24{margin-left:171.4285714286%}.row-gutter-15{padding:12px 6px}.row-gutter-15 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-15 .column-span-1{width:6.6666666667%}.row-gutter-15 .column-offset-1{margin-left:6.6666666667%}.row-gutter-15 .column-span-2{width:13.3333333333%}.row-gutter-15 .column-offset-2{margin-left:13.3333333333%}.row-gutter-15 .column-span-3{width:20%}.row-gutter-15 .column-offset-3{margin-left:20%}.row-gutter-15 .column-span-4{width:26.6666666667%}.row-gutter-15 .column-offset-4{margin-left:26.6666666667%}.row-gutter-15 .column-span-5{width:33.3333333333%}.row-gutter-15 .column-offset-5{margin-left:33.3333333333%}.row-gutter-15 .column-span-6{width:40%}.row-gutter-15 .column-offset-6{margin-left:40%}.row-gutter-15 .column-span-7{width:46.6666666667%}.row-gutter-15 .column-offset-7{margin-left:46.6666666667%}.row-gutter-15 .column-span-8{width:53.3333333333%}.row-gutter-15 .column-offset-8{margin-left:53.3333333333%}.row-gutter-15 .column-span-9{width:60%}.row-gutter-15 .column-offset-9{margin-left:60%}.row-gutter-15 .column-span-10{width:66.6666666667%}.row-gutter-15 .column-offset-10{margin-left:66.6666666667%}.row-gutter-15 .column-span-11{width:73.3333333333%}.row-gutter-15 .column-offset-11{margin-left:73.3333333333%}.row-gutter-15 .column-span-12{width:80%}.row-gutter-15 .column-offset-12{margin-left:80%}.row-gutter-15 .column-span-13{width:86.6666666667%}.row-gutter-15 .column-offset-13{margin-left:86.6666666667%}.row-gutter-15 .column-span-14{width:93.3333333333%}.row-gutter-15 .column-offset-14{margin-left:93.3333333333%}.row-gutter-15 .column-span-15{width:100%}.row-gutter-15 .column-offset-15{margin-left:100%}.row-gutter-15 .column-span-16{width:106.6666666667%}.row-gutter-15 .column-offset-16{margin-left:106.6666666667%}.row-gutter-15 .column-span-17{width:113.3333333333%}.row-gutter-15 .column-offset-17{margin-left:113.3333333333%}.row-gutter-15 .column-span-18{width:120%}.row-gutter-15 .column-offset-18{margin-left:120%}.row-gutter-15 .column-span-19{width:126.6666666667%}.row-gutter-15 .column-offset-19{margin-left:126.6666666667%}.row-gutter-15 .column-span-20{width:133.3333333333%}.row-gutter-15 .column-offset-20{margin-left:133.3333333333%}.row-gutter-15 .column-span-21{width:140%}.row-gutter-15 .column-offset-21{margin-left:140%}.row-gutter-15 .column-span-22{width:146.6666666667%}.row-gutter-15 .column-offset-22{margin-left:146.6666666667%}.row-gutter-15 .column-span-23{width:153.3333333333%}.row-gutter-15 .column-offset-23{margin-left:153.3333333333%}.row-gutter-15 .column-span-24{width:160%}.row-gutter-15 .column-offset-24{margin-left:160%}.row-gutter-16{padding:12px 6px}.row-gutter-16 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-16 .column-span-1{width:6.25%}.row-gutter-16 .column-offset-1{margin-left:6.25%}.row-gutter-16 .column-span-2{width:12.5%}.row-gutter-16 .column-offset-2{margin-left:12.5%}.row-gutter-16 .column-span-3{width:18.75%}.row-gutter-16 .column-offset-3{margin-left:18.75%}.row-gutter-16 .column-span-4{width:25%}.row-gutter-16 .column-offset-4{margin-left:25%}.row-gutter-16 .column-span-5{width:31.25%}.row-gutter-16 .column-offset-5{margin-left:31.25%}.row-gutter-16 .column-span-6{width:37.5%}.row-gutter-16 .column-offset-6{margin-left:37.5%}.row-gutter-16 .column-span-7{width:43.75%}.row-gutter-16 .column-offset-7{margin-left:43.75%}.row-gutter-16 .column-span-8{width:50%}.row-gutter-16 .column-offset-8{margin-left:50%}.row-gutter-16 .column-span-9{width:56.25%}.row-gutter-16 .column-offset-9{margin-left:56.25%}.row-gutter-16 .column-span-10{width:62.5%}.row-gutter-16 .column-offset-10{margin-left:62.5%}.row-gutter-16 .column-span-11{width:68.75%}.row-gutter-16 .column-offset-11{margin-left:68.75%}.row-gutter-16 .column-span-12{width:75%}.row-gutter-16 .column-offset-12{margin-left:75%}.row-gutter-16 .column-span-13{width:81.25%}.row-gutter-16 .column-offset-13{margin-left:81.25%}.row-gutter-16 .column-span-14{width:87.5%}.row-gutter-16 .column-offset-14{margin-left:87.5%}.row-gutter-16 .column-span-15{width:93.75%}.row-gutter-16 .column-offset-15{margin-left:93.75%}.row-gutter-16 .column-span-16{width:100%}.row-gutter-16 .column-offset-16{margin-left:100%}.row-gutter-16 .column-span-17{width:106.25%}.row-gutter-16 .column-offset-17{margin-left:106.25%}.row-gutter-16 .column-span-18{width:112.5%}.row-gutter-16 .column-offset-18{margin-left:112.5%}.row-gutter-16 .column-span-19{width:118.75%}.row-gutter-16 .column-offset-19{margin-left:118.75%}.row-gutter-16 .column-span-20{width:125%}.row-gutter-16 .column-offset-20{margin-left:125%}.row-gutter-16 .column-span-21{width:131.25%}.row-gutter-16 .column-offset-21{margin-left:131.25%}.row-gutter-16 .column-span-22{width:137.5%}.row-gutter-16 .column-offset-22{margin-left:137.5%}.row-gutter-16 .column-span-23{width:143.75%}.row-gutter-16 .column-offset-23{margin-left:143.75%}.row-gutter-16 .column-span-24{width:150%}.row-gutter-16 .column-offset-24{margin-left:150%}.row-gutter-17{padding:12px 6px}.row-gutter-17 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-17 .column-span-1{width:5.8823529412%}.row-gutter-17 .column-offset-1{margin-left:5.8823529412%}.row-gutter-17 .column-span-2{width:11.7647058824%}.row-gutter-17 .column-offset-2{margin-left:11.7647058824%}.row-gutter-17 .column-span-3{width:17.6470588235%}.row-gutter-17 .column-offset-3{margin-left:17.6470588235%}.row-gutter-17 .column-span-4{width:23.5294117647%}.row-gutter-17 .column-offset-4{margin-left:23.5294117647%}.row-gutter-17 .column-span-5{width:29.4117647059%}.row-gutter-17 .column-offset-5{margin-left:29.4117647059%}.row-gutter-17 .column-span-6{width:35.2941176471%}.row-gutter-17 .column-offset-6{margin-left:35.2941176471%}.row-gutter-17 .column-span-7{width:41.1764705882%}.row-gutter-17 .column-offset-7{margin-left:41.1764705882%}.row-gutter-17 .column-span-8{width:47.0588235294%}.row-gutter-17 .column-offset-8{margin-left:47.0588235294%}.row-gutter-17 .column-span-9{width:52.9411764706%}.row-gutter-17 .column-offset-9{margin-left:52.9411764706%}.row-gutter-17 .column-span-10{width:58.8235294118%}.row-gutter-17 .column-offset-10{margin-left:58.8235294118%}.row-gutter-17 .column-span-11{width:64.7058823529%}.row-gutter-17 .column-offset-11{margin-left:64.7058823529%}.row-gutter-17 .column-span-12{width:70.5882352941%}.row-gutter-17 .column-offset-12{margin-left:70.5882352941%}.row-gutter-17 .column-span-13{width:76.4705882353%}.row-gutter-17 .column-offset-13{margin-left:76.4705882353%}.row-gutter-17 .column-span-14{width:82.3529411765%}.row-gutter-17 .column-offset-14{margin-left:82.3529411765%}.row-gutter-17 .column-span-15{width:88.2352941176%}.row-gutter-17 .column-offset-15{margin-left:88.2352941176%}.row-gutter-17 .column-span-16{width:94.1176470588%}.row-gutter-17 .column-offset-16{margin-left:94.1176470588%}.row-gutter-17 .column-span-17{width:100%}.row-gutter-17 .column-offset-17{margin-left:100%}.row-gutter-17 .column-span-18{width:105.8823529412%}.row-gutter-17 .column-offset-18{margin-left:105.8823529412%}.row-gutter-17 .column-span-19{width:111.7647058824%}.row-gutter-17 .column-offset-19{margin-left:111.7647058824%}.row-gutter-17 .column-span-20{width:117.6470588235%}.row-gutter-17 .column-offset-20{margin-left:117.6470588235%}.row-gutter-17 .column-span-21{width:123.5294117647%}.row-gutter-17 .column-offset-21{margin-left:123.5294117647%}.row-gutter-17 .column-span-22{width:129.4117647059%}.row-gutter-17 .column-offset-22{margin-left:129.4117647059%}.row-gutter-17 .column-span-23{width:135.2941176471%}.row-gutter-17 .column-offset-23{margin-left:135.2941176471%}.row-gutter-17 .column-span-24{width:141.1764705882%}.row-gutter-17 .column-offset-24{margin-left:141.1764705882%}.row-gutter-18{padding:12px 6px}.row-gutter-18 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-18 .column-span-1{width:5.5555555556%}.row-gutter-18 .column-offset-1{margin-left:5.5555555556%}.row-gutter-18 .column-span-2{width:11.1111111111%}.row-gutter-18 .column-offset-2{margin-left:11.1111111111%}.row-gutter-18 .column-span-3{width:16.6666666667%}.row-gutter-18 .column-offset-3{margin-left:16.6666666667%}.row-gutter-18 .column-span-4{width:22.2222222222%}.row-gutter-18 .column-offset-4{margin-left:22.2222222222%}.row-gutter-18 .column-span-5{width:27.7777777778%}.row-gutter-18 .column-offset-5{margin-left:27.7777777778%}.row-gutter-18 .column-span-6{width:33.3333333333%}.row-gutter-18 .column-offset-6{margin-left:33.3333333333%}.row-gutter-18 .column-span-7{width:38.8888888889%}.row-gutter-18 .column-offset-7{margin-left:38.8888888889%}.row-gutter-18 .column-span-8{width:44.4444444444%}.row-gutter-18 .column-offset-8{margin-left:44.4444444444%}.row-gutter-18 .column-span-9{width:50%}.row-gutter-18 .column-offset-9{margin-left:50%}.row-gutter-18 .column-span-10{width:55.5555555556%}.row-gutter-18 .column-offset-10{margin-left:55.5555555556%}.row-gutter-18 .column-span-11{width:61.1111111111%}.row-gutter-18 .column-offset-11{margin-left:61.1111111111%}.row-gutter-18 .column-span-12{width:66.6666666667%}.row-gutter-18 .column-offset-12{margin-left:66.6666666667%}.row-gutter-18 .column-span-13{width:72.2222222222%}.row-gutter-18 .column-offset-13{margin-left:72.2222222222%}.row-gutter-18 .column-span-14{width:77.7777777778%}.row-gutter-18 .column-offset-14{margin-left:77.7777777778%}.row-gutter-18 .column-span-15{width:83.3333333333%}.row-gutter-18 .column-offset-15{margin-left:83.3333333333%}.row-gutter-18 .column-span-16{width:88.8888888889%}.row-gutter-18 .column-offset-16{margin-left:88.8888888889%}.row-gutter-18 .column-span-17{width:94.4444444444%}.row-gutter-18 .column-offset-17{margin-left:94.4444444444%}.row-gutter-18 .column-span-18{width:100%}.row-gutter-18 .column-offset-18{margin-left:100%}.row-gutter-18 .column-span-19{width:105.5555555556%}.row-gutter-18 .column-offset-19{margin-left:105.5555555556%}.row-gutter-18 .column-span-20{width:111.1111111111%}.row-gutter-18 .column-offset-20{margin-left:111.1111111111%}.row-gutter-18 .column-span-21{width:116.6666666667%}.row-gutter-18 .column-offset-21{margin-left:116.6666666667%}.row-gutter-18 .column-span-22{width:122.2222222222%}.row-gutter-18 .column-offset-22{margin-left:122.2222222222%}.row-gutter-18 .column-span-23{width:127.7777777778%}.row-gutter-18 .column-offset-23{margin-left:127.7777777778%}.row-gutter-18 .column-span-24{width:133.3333333333%}.row-gutter-18 .column-offset-24{margin-left:133.3333333333%}.row-gutter-19{padding:12px 6px}.row-gutter-19 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-19 .column-span-1{width:5.2631578947%}.row-gutter-19 .column-offset-1{margin-left:5.2631578947%}.row-gutter-19 .column-span-2{width:10.5263157895%}.row-gutter-19 .column-offset-2{margin-left:10.5263157895%}.row-gutter-19 .column-span-3{width:15.7894736842%}.row-gutter-19 .column-offset-3{margin-left:15.7894736842%}.row-gutter-19 .column-span-4{width:21.0526315789%}.row-gutter-19 .column-offset-4{margin-left:21.0526315789%}.row-gutter-19 .column-span-5{width:26.3157894737%}.row-gutter-19 .column-offset-5{margin-left:26.3157894737%}.row-gutter-19 .column-span-6{width:31.5789473684%}.row-gutter-19 .column-offset-6{margin-left:31.5789473684%}.row-gutter-19 .column-span-7{width:36.8421052632%}.row-gutter-19 .column-offset-7{margin-left:36.8421052632%}.row-gutter-19 .column-span-8{width:42.1052631579%}.row-gutter-19 .column-offset-8{margin-left:42.1052631579%}.row-gutter-19 .column-span-9{width:47.3684210526%}.row-gutter-19 .column-offset-9{margin-left:47.3684210526%}.row-gutter-19 .column-span-10{width:52.6315789474%}.row-gutter-19 .column-offset-10{margin-left:52.6315789474%}.row-gutter-19 .column-span-11{width:57.8947368421%}.row-gutter-19 .column-offset-11{margin-left:57.8947368421%}.row-gutter-19 .column-span-12{width:63.1578947368%}.row-gutter-19 .column-offset-12{margin-left:63.1578947368%}.row-gutter-19 .column-span-13{width:68.4210526316%}.row-gutter-19 .column-offset-13{margin-left:68.4210526316%}.row-gutter-19 .column-span-14{width:73.6842105263%}.row-gutter-19 .column-offset-14{margin-left:73.6842105263%}.row-gutter-19 .column-span-15{width:78.9473684211%}.row-gutter-19 .column-offset-15{margin-left:78.9473684211%}.row-gutter-19 .column-span-16{width:84.2105263158%}.row-gutter-19 .column-offset-16{margin-left:84.2105263158%}.row-gutter-19 .column-span-17{width:89.4736842105%}.row-gutter-19 .column-offset-17{margin-left:89.4736842105%}.row-gutter-19 .column-span-18{width:94.7368421053%}.row-gutter-19 .column-offset-18{margin-left:94.7368421053%}.row-gutter-19 .column-span-19{width:100%}.row-gutter-19 .column-offset-19{margin-left:100%}.row-gutter-19 .column-span-20{width:105.2631578947%}.row-gutter-19 .column-offset-20{margin-left:105.2631578947%}.row-gutter-19 .column-span-21{width:110.5263157895%}.row-gutter-19 .column-offset-21{margin-left:110.5263157895%}.row-gutter-19 .column-span-22{width:115.7894736842%}.row-gutter-19 .column-offset-22{margin-left:115.7894736842%}.row-gutter-19 .column-span-23{width:121.0526315789%}.row-gutter-19 .column-offset-23{margin-left:121.0526315789%}.row-gutter-19 .column-span-24{width:126.3157894737%}.row-gutter-19 .column-offset-24{margin-left:126.3157894737%}.row-gutter-20{padding:12px 6px}.row-gutter-20 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-20 .column-span-1{width:5%}.row-gutter-20 .column-offset-1{margin-left:5%}.row-gutter-20 .column-span-2{width:10%}.row-gutter-20 .column-offset-2{margin-left:10%}.row-gutter-20 .column-span-3{width:15%}.row-gutter-20 .column-offset-3{margin-left:15%}.row-gutter-20 .column-span-4{width:20%}.row-gutter-20 .column-offset-4{margin-left:20%}.row-gutter-20 .column-span-5{width:25%}.row-gutter-20 .column-offset-5{margin-left:25%}.row-gutter-20 .column-span-6{width:30%}.row-gutter-20 .column-offset-6{margin-left:30%}.row-gutter-20 .column-span-7{width:35%}.row-gutter-20 .column-offset-7{margin-left:35%}.row-gutter-20 .column-span-8{width:40%}.row-gutter-20 .column-offset-8{margin-left:40%}.row-gutter-20 .column-span-9{width:45%}.row-gutter-20 .column-offset-9{margin-left:45%}.row-gutter-20 .column-span-10{width:50%}.row-gutter-20 .column-offset-10{margin-left:50%}.row-gutter-20 .column-span-11{width:55%}.row-gutter-20 .column-offset-11{margin-left:55%}.row-gutter-20 .column-span-12{width:60%}.row-gutter-20 .column-offset-12{margin-left:60%}.row-gutter-20 .column-span-13{width:65%}.row-gutter-20 .column-offset-13{margin-left:65%}.row-gutter-20 .column-span-14{width:70%}.row-gutter-20 .column-offset-14{margin-left:70%}.row-gutter-20 .column-span-15{width:75%}.row-gutter-20 .column-offset-15{margin-left:75%}.row-gutter-20 .column-span-16{width:80%}.row-gutter-20 .column-offset-16{margin-left:80%}.row-gutter-20 .column-span-17{width:85%}.row-gutter-20 .column-offset-17{margin-left:85%}.row-gutter-20 .column-span-18{width:90%}.row-gutter-20 .column-offset-18{margin-left:90%}.row-gutter-20 .column-span-19{width:95%}.row-gutter-20 .column-offset-19{margin-left:95%}.row-gutter-20 .column-span-20{width:100%}.row-gutter-20 .column-offset-20{margin-left:100%}.row-gutter-20 .column-span-21{width:105%}.row-gutter-20 .column-offset-21{margin-left:105%}.row-gutter-20 .column-span-22{width:110%}.row-gutter-20 .column-offset-22{margin-left:110%}.row-gutter-20 .column-span-23{width:115%}.row-gutter-20 .column-offset-23{margin-left:115%}.row-gutter-20 .column-span-24{width:120%}.row-gutter-20 .column-offset-24{margin-left:120%}.row-gutter-21{padding:12px 6px}.row-gutter-21 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-21 .column-span-1{width:4.7619047619%}.row-gutter-21 .column-offset-1{margin-left:4.7619047619%}.row-gutter-21 .column-span-2{width:9.5238095238%}.row-gutter-21 .column-offset-2{margin-left:9.5238095238%}.row-gutter-21 .column-span-3{width:14.2857142857%}.row-gutter-21 .column-offset-3{margin-left:14.2857142857%}.row-gutter-21 .column-span-4{width:19.0476190476%}.row-gutter-21 .column-offset-4{margin-left:19.0476190476%}.row-gutter-21 .column-span-5{width:23.8095238095%}.row-gutter-21 .column-offset-5{margin-left:23.8095238095%}.row-gutter-21 .column-span-6{width:28.5714285714%}.row-gutter-21 .column-offset-6{margin-left:28.5714285714%}.row-gutter-21 .column-span-7{width:33.3333333333%}.row-gutter-21 .column-offset-7{margin-left:33.3333333333%}.row-gutter-21 .column-span-8{width:38.0952380952%}.row-gutter-21 .column-offset-8{margin-left:38.0952380952%}.row-gutter-21 .column-span-9{width:42.8571428571%}.row-gutter-21 .column-offset-9{margin-left:42.8571428571%}.row-gutter-21 .column-span-10{width:47.619047619%}.row-gutter-21 .column-offset-10{margin-left:47.619047619%}.row-gutter-21 .column-span-11{width:52.380952381%}.row-gutter-21 .column-offset-11{margin-left:52.380952381%}.row-gutter-21 .column-span-12{width:57.1428571429%}.row-gutter-21 .column-offset-12{margin-left:57.1428571429%}.row-gutter-21 .column-span-13{width:61.9047619048%}.row-gutter-21 .column-offset-13{margin-left:61.9047619048%}.row-gutter-21 .column-span-14{width:66.6666666667%}.row-gutter-21 .column-offset-14{margin-left:66.6666666667%}.row-gutter-21 .column-span-15{width:71.4285714286%}.row-gutter-21 .column-offset-15{margin-left:71.4285714286%}.row-gutter-21 .column-span-16{width:76.1904761905%}.row-gutter-21 .column-offset-16{margin-left:76.1904761905%}.row-gutter-21 .column-span-17{width:80.9523809524%}.row-gutter-21 .column-offset-17{margin-left:80.9523809524%}.row-gutter-21 .column-span-18{width:85.7142857143%}.row-gutter-21 .column-offset-18{margin-left:85.7142857143%}.row-gutter-21 .column-span-19{width:90.4761904762%}.row-gutter-21 .column-offset-19{margin-left:90.4761904762%}.row-gutter-21 .column-span-20{width:95.2380952381%}.row-gutter-21 .column-offset-20{margin-left:95.2380952381%}.row-gutter-21 .column-span-21{width:100%}.row-gutter-21 .column-offset-21{margin-left:100%}.row-gutter-21 .column-span-22{width:104.7619047619%}.row-gutter-21 .column-offset-22{margin-left:104.7619047619%}.row-gutter-21 .column-span-23{width:109.5238095238%}.row-gutter-21 .column-offset-23{margin-left:109.5238095238%}.row-gutter-21 .column-span-24{width:114.2857142857%}.row-gutter-21 .column-offset-24{margin-left:114.2857142857%}.row-gutter-22{padding:12px 6px}.row-gutter-22 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-22 .column-span-1{width:4.5454545455%}.row-gutter-22 .column-offset-1{margin-left:4.5454545455%}.row-gutter-22 .column-span-2{width:9.0909090909%}.row-gutter-22 .column-offset-2{margin-left:9.0909090909%}.row-gutter-22 .column-span-3{width:13.6363636364%}.row-gutter-22 .column-offset-3{margin-left:13.6363636364%}.row-gutter-22 .column-span-4{width:18.1818181818%}.row-gutter-22 .column-offset-4{margin-left:18.1818181818%}.row-gutter-22 .column-span-5{width:22.7272727273%}.row-gutter-22 .column-offset-5{margin-left:22.7272727273%}.row-gutter-22 .column-span-6{width:27.2727272727%}.row-gutter-22 .column-offset-6{margin-left:27.2727272727%}.row-gutter-22 .column-span-7{width:31.8181818182%}.row-gutter-22 .column-offset-7{margin-left:31.8181818182%}.row-gutter-22 .column-span-8{width:36.3636363636%}.row-gutter-22 .column-offset-8{margin-left:36.3636363636%}.row-gutter-22 .column-span-9{width:40.9090909091%}.row-gutter-22 .column-offset-9{margin-left:40.9090909091%}.row-gutter-22 .column-span-10{width:45.4545454545%}.row-gutter-22 .column-offset-10{margin-left:45.4545454545%}.row-gutter-22 .column-span-11{width:50%}.row-gutter-22 .column-offset-11{margin-left:50%}.row-gutter-22 .column-span-12{width:54.5454545455%}.row-gutter-22 .column-offset-12{margin-left:54.5454545455%}.row-gutter-22 .column-span-13{width:59.0909090909%}.row-gutter-22 .column-offset-13{margin-left:59.0909090909%}.row-gutter-22 .column-span-14{width:63.6363636364%}.row-gutter-22 .column-offset-14{margin-left:63.6363636364%}.row-gutter-22 .column-span-15{width:68.1818181818%}.row-gutter-22 .column-offset-15{margin-left:68.1818181818%}.row-gutter-22 .column-span-16{width:72.7272727273%}.row-gutter-22 .column-offset-16{margin-left:72.7272727273%}.row-gutter-22 .column-span-17{width:77.2727272727%}.row-gutter-22 .column-offset-17{margin-left:77.2727272727%}.row-gutter-22 .column-span-18{width:81.8181818182%}.row-gutter-22 .column-offset-18{margin-left:81.8181818182%}.row-gutter-22 .column-span-19{width:86.3636363636%}.row-gutter-22 .column-offset-19{margin-left:86.3636363636%}.row-gutter-22 .column-span-20{width:90.9090909091%}.row-gutter-22 .column-offset-20{margin-left:90.9090909091%}.row-gutter-22 .column-span-21{width:95.4545454545%}.row-gutter-22 .column-offset-21{margin-left:95.4545454545%}.row-gutter-22 .column-span-22{width:100%}.row-gutter-22 .column-offset-22{margin-left:100%}.row-gutter-22 .column-span-23{width:104.5454545455%}.row-gutter-22 .column-offset-23{margin-left:104.5454545455%}.row-gutter-22 .column-span-24{width:109.0909090909%}.row-gutter-22 .column-offset-24{margin-left:109.0909090909%}.row-gutter-23{padding:12px 6px}.row-gutter-23 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-23 .column-span-1{width:4.347826087%}.row-gutter-23 .column-offset-1{margin-left:4.347826087%}.row-gutter-23 .column-span-2{width:8.6956521739%}.row-gutter-23 .column-offset-2{margin-left:8.6956521739%}.row-gutter-23 .column-span-3{width:13.0434782609%}.row-gutter-23 .column-offset-3{margin-left:13.0434782609%}.row-gutter-23 .column-span-4{width:17.3913043478%}.row-gutter-23 .column-offset-4{margin-left:17.3913043478%}.row-gutter-23 .column-span-5{width:21.7391304348%}.row-gutter-23 .column-offset-5{margin-left:21.7391304348%}.row-gutter-23 .column-span-6{width:26.0869565217%}.row-gutter-23 .column-offset-6{margin-left:26.0869565217%}.row-gutter-23 .column-span-7{width:30.4347826087%}.row-gutter-23 .column-offset-7{margin-left:30.4347826087%}.row-gutter-23 .column-span-8{width:34.7826086957%}.row-gutter-23 .column-offset-8{margin-left:34.7826086957%}.row-gutter-23 .column-span-9{width:39.1304347826%}.row-gutter-23 .column-offset-9{margin-left:39.1304347826%}.row-gutter-23 .column-span-10{width:43.4782608696%}.row-gutter-23 .column-offset-10{margin-left:43.4782608696%}.row-gutter-23 .column-span-11{width:47.8260869565%}.row-gutter-23 .column-offset-11{margin-left:47.8260869565%}.row-gutter-23 .column-span-12{width:52.1739130435%}.row-gutter-23 .column-offset-12{margin-left:52.1739130435%}.row-gutter-23 .column-span-13{width:56.5217391304%}.row-gutter-23 .column-offset-13{margin-left:56.5217391304%}.row-gutter-23 .column-span-14{width:60.8695652174%}.row-gutter-23 .column-offset-14{margin-left:60.8695652174%}.row-gutter-23 .column-span-15{width:65.2173913043%}.row-gutter-23 .column-offset-15{margin-left:65.2173913043%}.row-gutter-23 .column-span-16{width:69.5652173913%}.row-gutter-23 .column-offset-16{margin-left:69.5652173913%}.row-gutter-23 .column-span-17{width:73.9130434783%}.row-gutter-23 .column-offset-17{margin-left:73.9130434783%}.row-gutter-23 .column-span-18{width:78.2608695652%}.row-gutter-23 .column-offset-18{margin-left:78.2608695652%}.row-gutter-23 .column-span-19{width:82.6086956522%}.row-gutter-23 .column-offset-19{margin-left:82.6086956522%}.row-gutter-23 .column-span-20{width:86.9565217391%}.row-gutter-23 .column-offset-20{margin-left:86.9565217391%}.row-gutter-23 .column-span-21{width:91.3043478261%}.row-gutter-23 .column-offset-21{margin-left:91.3043478261%}.row-gutter-23 .column-span-22{width:95.652173913%}.row-gutter-23 .column-offset-22{margin-left:95.652173913%}.row-gutter-23 .column-span-23{width:100%}.row-gutter-23 .column-offset-23{margin-left:100%}.row-gutter-23 .column-span-24{width:104.347826087%}.row-gutter-23 .column-offset-24{margin-left:104.347826087%}.row-gutter-24{padding:12px 6px}.row-gutter-24 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-24 .column-span-1{width:4.1666666667%}.row-gutter-24 .column-offset-1{margin-left:4.1666666667%}.row-gutter-24 .column-span-2{width:8.3333333333%}.row-gutter-24 .column-offset-2{margin-left:8.3333333333%}.row-gutter-24 .column-span-3{width:12.5%}.row-gutter-24 .column-offset-3{margin-left:12.5%}.row-gutter-24 .column-span-4{width:16.6666666667%}.row-gutter-24 .column-offset-4{margin-left:16.6666666667%}.row-gutter-24 .column-span-5{width:20.8333333333%}.row-gutter-24 .column-offset-5{margin-left:20.8333333333%}.row-gutter-24 .column-span-6{width:25%}.row-gutter-24 .column-offset-6{margin-left:25%}.row-gutter-24 .column-span-7{width:29.1666666667%}.row-gutter-24 .column-offset-7{margin-left:29.1666666667%}.row-gutter-24 .column-span-8{width:33.3333333333%}.row-gutter-24 .column-offset-8{margin-left:33.3333333333%}.row-gutter-24 .column-span-9{width:37.5%}.row-gutter-24 .column-offset-9{margin-left:37.5%}.row-gutter-24 .column-span-10{width:41.6666666667%}.row-gutter-24 .column-offset-10{margin-left:41.6666666667%}.row-gutter-24 .column-span-11{width:45.8333333333%}.row-gutter-24 .column-offset-11{margin-left:45.8333333333%}.row-gutter-24 .column-span-12{width:50%}.row-gutter-24 .column-offset-12{margin-left:50%}.row-gutter-24 .column-span-13{width:54.1666666667%}.row-gutter-24 .column-offset-13{margin-left:54.1666666667%}.row-gutter-24 .column-span-14{width:58.3333333333%}.row-gutter-24 .column-offset-14{margin-left:58.3333333333%}.row-gutter-24 .column-span-15{width:62.5%}.row-gutter-24 .column-offset-15{margin-left:62.5%}.row-gutter-24 .column-span-16{width:66.6666666667%}.row-gutter-24 .column-offset-16{margin-left:66.6666666667%}.row-gutter-24 .column-span-17{width:70.8333333333%}.row-gutter-24 .column-offset-17{margin-left:70.8333333333%}.row-gutter-24 .column-span-18{width:75%}.row-gutter-24 .column-offset-18{margin-left:75%}.row-gutter-24 .column-span-19{width:79.1666666667%}.row-gutter-24 .column-offset-19{margin-left:79.1666666667%}.row-gutter-24 .column-span-20{width:83.3333333333%}.row-gutter-24 .column-offset-20{margin-left:83.3333333333%}.row-gutter-24 .column-span-21{width:87.5%}.row-gutter-24 .column-offset-21{margin-left:87.5%}.row-gutter-24 .column-span-22{width:91.6666666667%}.row-gutter-24 .column-offset-22{margin-left:91.6666666667%}.row-gutter-24 .column-span-23{width:95.8333333333%}.row-gutter-24 .column-offset-23{margin-left:95.8333333333%}.row-gutter-24 .column-span-24{width:100%}.row-gutter-24 .column-offset-24{margin-left:100%}.row-align-top{align-items:flex-start}.row-align-middle{align-items:center}.row-align-bottom{align-items:flex-end}.row-justify-start{justify-content:flex-start}.row-justify-end{justify-content:flex-end}.row-justify-center{justify-content:center}.row-justify-space-around{justify-content:space-around}.row-justify-space-between{justify-content:space-between}.button-select{display:flex;flex-direction:row}.button-select .button-select-options{height:30px;padding:0 15px;color:#54759a;font-size:12px;line-height:30px;background:#fff;border:1px solid #e4eaef;border-right:none;transition:all .3s ease;cursor:pointer;outline:0;display:block}.button-select .button-select-options:first-child{border-radius:3px 0 0 3px}.button-select .button-select-options:last-child{border-radius:0 3px 3px 0;border-right:1px solid #e4eaef}.button-select .button-select-options.actived{background:#57befc;color:#fff;border-color:#57befc;box-shadow:0 2px 5px rgba(87,190,252,.5)}.button-select .button-select-options.actived:active{box-shadow:none}.tags-container{display:flex;align-items:flex-start;overflow-y:hidden}.tags{flex:1;list-style:none;flex-wrap:wrap;box-sizing:content-box}.tags,.tags li{display:flex;align-items:center}.tags li{position:relative;justify-content:center;border:1px solid #2c8af8;color:#54759a;height:22px;border-radius:11px;padding:0 6px;margin:3px 4px;font-size:10px;cursor:default}.tags li.can-click{cursor:pointer}.tags li.error{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.tags li.tags-selected.error{background:linear-gradient(135deg,#2c8af8,#f56c6c);border:none;height:24px;padding:0 7px}.tags .tags-selected{background-color:#2c8af8;color:#fff}.tags-expand{height:30px;line-height:30px;padding:0 20px;user-select:none;cursor:pointer}.input{display:inline-block;height:30px;width:100%;padding:0 10px;font-size:14px;color:#54759a;border-radius:3px;border:1px solid #e4eaef;transition:all .3s;transition-property:border-color,color,box-shadow}.input:focus{outline:0;border-color:#57befc;color:#2c8af8;box-shadow:0 2px 5px rgba(87,190,252,.5)}.input-align-left{text-align:left}.input-align-center{text-align:center}.input-align-right{text-align:right}.input-inside:focus{box-shadow:none}.select{cursor:pointer;font-size:14px;line-height:30px;color:#54759a;display:flex;overflow:hidden}.select>i{margin-left:5px;color:#54759a}.select-list{position:absolute;max-width:170px;border-radius:4px;overflow:hidden;box-shadow:0 2px 5px rgba(183,197,214,.5);opacity:.8;pointer-events:none;transform:scaleY(0);transform-origin:top;transition:all .2s linear}.select-list .list{max-height:300px;overflow:auto;background:#fff;padding:5px 0;transform:scaleY(2);transform-origin:top;transition:all .2s linear}.select-list .list>.option{color:#54759a;padding:10px 15px;font-size:14px;list-style:none;cursor:pointer}.select-list .list>.option:hover,.select-list .list>.selected{background:rgba(228,234,239,.5)}.select-list-show{opacity:1;pointer-events:visible}.select-list-show,.select-list-show .list{transform:scaleY(1)}.modal-mask{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.15);opacity:0;pointer-events:none;transition:all .5s ease;display:flex;justify-content:center;align-items:center;z-index:11}.modal-mask .modal{margin-top:-50px;padding:20px 30px;background:#fff;box-shadow:0 2px 16px rgba(84,117,154,.2);border-radius:4px;display:flex;flex-direction:column;transform:scale(0);transition:all .3s cubic-bezier(.32,.26,.71,1.29)}.modal-mask .modal .modal-title{margin:5px 0;width:100%;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:18px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.modal-mask .modal .modal-body{margin:10px 0;font-size:14px;color:#54759a}.modal-mask .modal .footer{width:100%;margin:5px 0;display:flex;align-items:center;justify-content:flex-end}.modal-mask .modal .footer .button{margin-left:10px}.modal-mask .modal-small{width:400px}.modal-mask .modal-big{width:600px}.modal-show{opacity:1;pointer-events:visible}.modal-show .modal{transform:scale(1)}@media(max-width:768px){.modal-mask .modal{margin-top:0;padding:18px 20px}.modal-mask .modal-small{width:280px}.modal-mask .modal-big{width:480px}}.alert{padding:15px;border-radius:4px;box-shadow:0 2px 8px rgba(44,138,248,.3);font-size:13px;line-height:1.6;text-align:justify}.alert,.alert .alert-icon{background:#fff;display:flex}.alert .alert-icon{margin-right:10px;width:20px;height:20px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center}.alert .alert-icon>i{transform:scale(.5);font-weight:700}.alert .alert-message{width:100%;color:#fff}.alert-box-success{background:linear-gradient(135deg,#5dae34,#67c23a);box-shadow:0 2px 8px rgba(93,174,52,.3)}.alert-box-success .alert-icon>i{color:#67c23a}.alert-box-info{background:linear-gradient(135deg,#3eb4fc,#57befc);box-shadow:0 2px 8px rgba(62,180,252,.3)}.alert-box-info .alert-icon>i{color:#57befc}.alert-box-warning{background:linear-gradient(135deg,#e39725,#e6a23c);box-shadow:0 2px 8px rgba(227,151,37,.3)}.alert-box-warning .alert-icon>i{color:#e6a23c}.alert-box-error{background:linear-gradient(135deg,#f35454,#f56c6c);box-shadow:0 2px 8px rgba(243,84,84,.3)}.alert-box-error .alert-icon>i{color:#f56c6c}.alert-note-success{background:rgba(103,194,58,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #67c23a;box-shadow:0 2px 8px rgba(93,174,52,.3)}.alert-note-success .alert-icon{background:#67c23a}.alert-note-success .alert-icon>i{color:#fff}.alert-note-success .alert-message{color:#3d7323}.alert-note-info{background:rgba(87,190,252,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #57befc;box-shadow:0 2px 8px rgba(62,180,252,.3)}.alert-note-info .alert-icon{background:#57befc}.alert-note-info .alert-icon>i{color:#fff}.alert-note-info .alert-message{color:#0493e9}.alert-note-warning{background:rgba(230,162,60,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #e6a23c;box-shadow:0 2px 8px rgba(227,151,37,.3)}.alert-note-warning .alert-icon{background:#e6a23c}.alert-note-warning .alert-icon>i{color:#fff}.alert-note-warning .alert-message{color:#a76d15}.alert-note-error{background:rgba(245,108,108,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #f56c6c;box-shadow:0 2px 8px rgba(243,84,84,.3)}.alert-note-error .alert-icon{background:#f56c6c}.alert-note-error .alert-icon>i{color:#fff}.alert-note-error .alert-message{color:#eb1010}.button{outline:0;padding:0 15px;height:32px;line-height:32px;border-radius:16px;font-size:14px;cursor:pointer;transition:all .15s ease}.button-primary{color:#fff;border:none;background:linear-gradient(135deg,#57befc,#2c8af8);box-shadow:0 2px 8px rgba(44,138,248,.5)}.button-primary:hover{border:none}.button-primary:active{box-shadow:0 0 2px rgba(44,138,248,.5)}.button-normal{color:#909399;background:#fff;border:1px solid rgba(0,0,0,.1)}.button-normal:hover{border-color:#b7c5d6;color:#54759a}.button-normal:active{background:#fafafa;color:#54759a}.button-danger{color:#fff;border:none;background:linear-gradient(135deg,#f56c6c,#f23c3c);box-shadow:0 2px 8px rgba(242,60,60,.5)}.button-danger:hover{border:none}.button-danger:active{box-shadow:0 0 2px rgba(242,60,60,.5)}.button-success{color:#fff;border:none;background:linear-gradient(135deg,#67c23a,#5dae34);box-shadow:0 2px 8px rgba(93,174,52,.5)}.button-success:hover{border:none}.button-success:active{box-shadow:0 0 2px rgba(93,174,52,.5)}.button-warning{color:#fff;border:none;background:linear-gradient(135deg,#e6a23c,#e39725);box-shadow:0 2px 8px rgba(227,151,37,.5)}.button-warning:hover{border:none}.button-warning:active{box-shadow:0 0 2px rgba(227,151,37,.5)}.message{position:fixed;top:20px;right:20px;border-radius:4px;opacity:0;background:#fff;display:flex;box-shadow:0 0 20px rgba(44,138,248,.2);transition:all .2s ease;transform:translateX(100%)}.message .message-icon{width:36px;flex:1;border-radius:4px 0 0 4px;display:flex;justify-content:center;align-items:center}.message .message-icon>i{color:#fff}.message .message-content{padding:10px 15px;font-size:13px;color:#54759a}.message-info .message-icon{background:linear-gradient(135deg,#57befc,#2c8af8)}.message-success .message-icon{background:linear-gradient(135deg,#67c23a,#5dae34)}.message-warning .message-icon{background:linear-gradient(135deg,#e6a23c,#e39725)}.message-error .message-icon{background:linear-gradient(135deg,#f56c6c,#f23c3c)}.message-show{opacity:1;transition:all .2s ease;transform:translateX(0)}.checkbox{display:flex;position:relative;padding-left:26px;cursor:pointer;line-height:18px}.checkbox:before{content:"";display:inline-block;position:absolute;left:0;top:50%;width:18px;height:18px;border-radius:3px;transition:background-color .3s ease;transform:translateY(-9px);background-color:#fff;border:1px solid #e4eaef}.checkbox.checked:before{background-color:#57befc}.checkbox-icon{position:absolute;left:0;top:50%;color:#fff;line-height:18px;transform:translateY(-9px) scale(.6);text-shadow:none;font-weight:700}.tag{display:flex;align-items:center;justify-content:center;height:24px;font-size:12px;padding:0 12px;text-align:center;background-color:#fff;border:2px solid #2c8af8;color:#2c8af8;border-radius:12px}.spinner{position:relative;width:80px;height:80px;border-radius:100%;animation:spinner 5s linear infinite}.spinner-circle{position:absolute;width:100%;height:100%;transform-origin:48% 48%}.spinner-inner{width:100%;height:100%;border-radius:100%;border:5px solid rgba(44,138,248,.7);border-top:none;border-right:none;background-clip:padding-box;box-shadow:inset 0 0 10px rgba(44,138,248,.15)}@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner-circle:nth-of-type(0){transform:rotate(0deg)}.spinner-circle:nth-of-type(0) .spinner-inner{animation:spinner 2s linear infinite}.spinner-circle:first-of-type{transform:rotate(70deg)}.spinner-circle:first-of-type .spinner-inner{animation:spinner 2s linear infinite}.spinner-circle:nth-of-type(2){transform:rotate(140deg)}.spinner-circle:nth-of-type(2) .spinner-inner{animation:spinner 2s linear infinite}.loading{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0;bottom:0;right:0;background-color:hsla(0,0%,100%,.9);box-shadow:inset 0 0 80px rgba(0,0,0,.1);z-index:1000}.proxy-item{position:relative;width:100%;height:110px;padding:10px;border-radius:4px;background:#fff;user-select:none;cursor:default;box-shadow:2px 5px 20px -3px rgba(44,138,248,.2);transition:all .3s ease}.proxy-item .proxy-type{padding:2px 5px;font-size:10px;color:#fff;border-radius:2px}.proxy-item .proxy-name{display:-webkit-box;margin-top:10px;color:#54759a;font-size:10px;overflow:hidden;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.proxy-item .proxy-delay{position:absolute;left:10px;bottom:13px;font-size:10px;color:rgba(84,117,154,.8)}.proxy-item .proxy-editor{position:absolute;right:10px;bottom:10px;cursor:pointer;color:rgba(84,117,154,.8);opacity:0;pointer-events:none;transition:all .3s ease}.proxy-item:hover{box-shadow:0 14px 20px -4px rgba(84,117,154,.4)}.proxy-item:hover .proxy-editor{opacity:1;pointer-events:visible}.proxy-error{opacity:.5}.proxy-error .proxy-type{background-color:#909399}@media(max-width:768px){.proxy-item{height:70px}.proxy-item .proxy-delay{left:unset;bottom:unset;top:0;right:20px;height:70px;line-height:70px}}.proxy-group{display:flex;align-items:flex-start;font-size:14px;color:#546b87}.proxy-group-part{display:flex;align-items:center;height:60px}.proxy-group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 20px;width:120px;height:18px}.proxies-group-card{padding:0}.proxies-group-item{border-bottom:1px solid #d8dee2}.proxies-group-item:last-child{border-bottom:none}.proxy-group-tags-container{padding:15px 0}.proxy-group-tags{flex:1;margin-left:30px}@media(max-width:768px){.proxy-group{flex-direction:column}.proxy-group-name{width:140px}.proxy-group-part{width:100%;height:42px;margin-top:6px;justify-content:space-between}.proxy-group-type{margin-right:20px}.proxy-group-tags-container{padding:5px 0 10px}.proxy-group-tags{margin-left:20px}}.proxy-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.proxy-provider-header{justify-content:space-between}.proxy-provider-header,.proxy-provider-header-part{display:flex;align-items:center}.proxy-provider-name{margin-right:24px}.proxy-provider-proxies{list-style:none}.proxy-provider-item{box-shadow:0 0 24px 0 rgba(44,138,248,.2)}.proxy-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.proxy-provider-update{line-height:14px;font-size:14px}.proxy-provider-icon{margin-left:20px;cursor:pointer}.proxy-provider-icon.healthcheck{color:#f56c6c}@media(max-width:768px){.proxy-provider-header{flex-direction:column;align-items:flex-start}.proxy-provider-header-part{margin:6px 0}}.proxies-list{--item-width:calc(100%/(var(--columns) + 1));--gap:calc(var(--item-width)/var(--columns));display:flex;margin-right:calc(var(--gap)*-1);margin-top:20px;flex-wrap:wrap;align-content:flex-start;list-style:none}@media(min-width:2001px){.proxies-list{--columns:12}}@media(max-width:2000px){.proxies-list{--columns:10}}@media(max-width:1600px){.proxies-list{--columns:8}}@media(max-width:1340px){.proxies-list{--columns:7}}@media(max-width:960px){.proxies-list{--columns:6}}@media(max-width:860px){.proxies-list{--columns:5}}@media(max-width:760px){.proxies-list{--columns:3}}.proxies-list>li{display:inline-block;width:var(--item-width);margin-right:var(--gap);flex-shrink:0;margin-bottom:10px}.proxies-group-list{list-style:none}.proxies-group-card{margin:20px 0}.proxies-container .proxies-action-icon{margin-left:10px}.proxies-speed-test{line-height:32px;margin:0 2px 0 6px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4);cursor:pointer}.proxies-providers-item{margin:20px 0}.proxies-providers-list{list-style:none}@media(max-width:768px){.proxies-group-card{margin:12px 0}.proxies-list{margin-right:0;padding-bottom:20px;flex-wrap:unset;flex-direction:column}.proxies-list>li{width:100%;margin-right:0;margin-bottom:10px}}.logs-card{display:flex;flex-direction:column;flex:1;margin-top:10px}.logs-panel{display:flex;flex-direction:column;flex-grow:1;flex-basis:0;list-style:none;padding:10px;border-radius:2px;background-color:#f3f6f9;font-size:12px;color:#73808f;overflow-y:auto;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}.logs-panel li{line-height:20px;display:inline-block}.logs-panel-time{margin-right:10px;color:#adb7c3}.rule-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.rule-provider-header{justify-content:space-between}.rule-provider-header,.rule-provider-header-part{display:flex;align-items:center}.rule-provider-name{width:120px;margin-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-provider-behavior{width:80px;margin:0 20px 0 12px;background-color:#2c8af8;color:#fff}.rule-provider-spinner{transform:scale(.4)}.rule-provider-proxies{list-style:none}.rule-provider-item{box-shadow:0 0 24px 0 rgba(44,138,248,.2)}.rule-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.rule-provider-update{line-height:14px;font-size:14px}.rule-provider-icon{display:block;margin-left:20px;cursor:pointer}.rule-provider-icon.rule-provider-loading:before{color:#909399;cursor:not-allowed;animation:spinner 2s linear infinite}@media(max-width:768px){.rule-provider-header{flex-direction:column;align-items:flex-start}.rule-provider-header-part{margin:6px 0}}.rules-card{display:flex;flex-direction:column;flex:1;min-height:700px;margin-top:10px;padding:0}.rules-card:focus{outline:none}.rules-card .rules{flex:1 0 auto}.rule-item{line-height:30px;height:50px;overflow:hidden;list-style:none;user-select:none;border-bottom:1px solid rgba(228,234,239,.5)}.rule-item,.rule-item .rule-item-row{padding:5px 0}.rule-item .drag-handler{cursor:row-resize;margin:0 10px;display:flex;justify-content:center}.rule-item .drag-handler>i{font-weight:700;color:#b7c5d6}.rule-item .rule-type{font-size:14px;color:#54759a}.rule-item .rule-type>i{margin-left:5px;color:#54759a}.rule-item .payload{cursor:pointer}.rule-item .payload,.rule-item .rule-proxy{font-size:14px;color:#54759a}.rule-item .delete-btn{opacity:0;transition:all .3s ease}.rule-item .delete-btn span{font-size:14px;color:#f56c6c;cursor:pointer}.rule-item:last-child{border-bottom:none}.rule-item:hover .delete-btn{opacity:1}.rule-proxy-option{display:flex;align-items:center;overflow:hidden}.rule-proxy-option .label{margin-right:5px;height:20px;line-height:20px;padding:0 8px;font-size:10px;border-radius:10px;color:#fff;background:#b7c5d6}.rule-proxy-option .value{line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-card{margin-top:10px;padding:20px 0}.settings-card .column{font-weight:700;align-items:center}.settings-card .value-column{justify-content:flex-end}.settings-card .label{font-size:14px;color:#54759a}.settings-card .external-controller{font-size:14px;color:#54759a;display:flex;justify-content:flex-end;font-weight:400;line-height:17px}.settings-card .external-controller .modify-btn{color:#2c8af8;cursor:pointer}.clash-version{position:relative;margin-top:10px;padding:20px 45px;display:flex}.clash-version .check-icon{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#57befc,#2c8af8);display:flex;justify-content:center;align-items:center}.clash-version .check-icon>i{transform:scale(.5);color:#fff;font-weight:700}.clash-version .version-info{margin-left:10px;font-size:14px;line-height:24px;color:#54759a}.clash-version .check-update-btn{position:absolute;right:45px;font-size:14px;line-height:24px;color:#b7c5d6;cursor:pointer;transition:all .15s ease}.clash-version .check-update-btn:hover{color:#54759a}@media(max-width:768px){.settings-card .row{flex-direction:column;padding-top:0;padding-bottom:0}.settings-card .row>.column{width:100%;margin:10px 0}}.sidebar{position:fixed;top:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:160px;user-select:none}.sidebar-logo{margin-top:50px;width:60px;height:60px}.sidebar-menu{display:flex;flex-direction:column;flex:1;margin-top:12px}.sidebar-menu .item{display:block;margin-top:18px}.sidebar-menu .item>a{display:block;width:120px;height:36px;line-height:36px;font-size:14px;border-radius:18px;text-align:center}.sidebar-menu .item>a,.sidebar-menu .item a:active,.sidebar-menu .item a:visited{color:#909399;text-decoration:none}.sidebar-menu .item>a.active{background:linear-gradient(135deg,#57befc,#2c8af8);color:#fff;box-shadow:0 2px 8px rgba(44,138,248,.5)}.sidebar-version{display:flex;flex-direction:column;align-items:center;padding-bottom:20px}.sidebar-version-label{font-size:14px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.sidebar-version-text{text-align:center;font-size:14px;margin:8px 0;padding:0 10px;color:#54759a}@media(max-width:768px){.sidebar{width:100%;height:60px;flex-direction:row;background:#f4f5f6;z-index:10}.sidebar-logo{margin:0 15px;width:36px;height:36px}.sidebar-menu{flex:1;flex-direction:row;justify-content:center;margin-top:0;overflow-x:scroll;padding:10px}.sidebar-menu::-webkit-scrollbar{display:none}.sidebar-menu .item{margin:0 3px}.sidebar-menu .item>a{width:80px;height:32px;line-height:32px}.sidebar-menu .item.no-mobile,.sidebar-version{display:none}}.connections-devices{display:flex;padding:8px 2px}.connections-devices-item{padding:4px 0;margin-right:20px;font-size:14px;color:#909399;border-radius:3px;cursor:pointer;transition:color .3s ease}.connections-devices-item.selected{color:#2c8af8}.connections-card{display:flex;flex-direction:column;flex:1;margin-top:10px;padding:0;overflow:hidden}.connections-card .connections{display:flex;flex-direction:column;width:100%;flex-grow:1;flex-basis:0;overflow:auto}.connections-card .connections-body{flex:1 0 auto}.connections-card .connections-th{position:relative;text-align:center;color:#909399;background:#f3f6f9;height:30px;line-height:30px;font-weight:500;font-size:14px;cursor:pointer;user-select:none}.connections-card .connections-th.resizing .connections-resizer{opacity:1}.connections-card .connections-th.fixed{position:sticky!important;left:0;z-index:99;box-shadow:inset -9px 0 8px -14px #000}.connections-card .connections-resizer{position:absolute;opacity:0;right:-10px;top:8px;bottom:8px;width:20px;transition:opacity .3s ease;z-index:10;font-size:14px;font-weight:300;touch-action:none}.connections-card .connections-resizer:before{content:"";display:block;position:absolute;left:10px;transform:translateX(-2px);width:2px;height:100%;background-color:rgba(144,147,153,.6)}.connections-card .connections-header{position:sticky;top:0;z-index:9999;white-space:nowrap}.connections-card .connections-header:hover .connections-resizer{opacity:1}.connections-card .connetions-item{height:36px}.connections-card .connections-block{display:flex;align-items:center;font-size:14px;line-height:36px;padding:0 10px;color:#54759a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connections-card .connections-block.center{text-align:center}.connections-card .connections-block.completed{background-color:#e9eef4;color:rgba(84,117,154,.5)}.connections-card .connections-block.fixed{position:sticky;left:0;z-index:999;background-color:#fff;box-shadow:inset -9px 0 8px -14px #000}.connections-filter{color:#2c8af8;font-size:14px;line-height:20px;margin-left:15px;text-shadow:0 0 6px rgba(44,138,248,.4);cursor:pointer}.connections-filter.dangerous{color:#f56c6c;text-shadow:0 0 6px rgba(87,190,252,.2)}.connections-filter.total{flex:1;cursor:unset}.external-controller .row{padding:0}.external-controller .alert{margin:10px 0}.external-controller .form,.external-controller .title{margin:15px 0}.external-controller .title{margin-top:15px;font-size:14px;font-weight:700}@media(max-width:768px){.external-controller .row{flex-direction:column;align-items:flex-start}.external-controller .form,.external-controller .title{margin:5px 0}.external-controller .column{width:100%}.external-controller .alert{display:none}} \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/2.6366a4a0.chunk.js b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/2.6366a4a0.chunk.js deleted file mode 100644 index 8f3e21d88b..0000000000 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/2.6366a4a0.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 2.6366a4a0.chunk.js.LICENSE.txt */ -(this["webpackJsonpclash-dashboard"]=this["webpackJsonpclash-dashboard"]||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(70)},function(e,t,n){e.exports=n(74)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(21);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(l){o=!0,i=l}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}}(e,t)||Object(r.a)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},function(e,t,n){"use strict";function r(e,t,n,r,o,i,a){try{var u=e[i](a),l=u.value}catch(s){return void n(s)}u.done?t(l):Promise.resolve(l).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var a=e.apply(t,n);function u(e){r(a,o,i,u,l,"next",e)}function l(e){r(a,o,i,u,l,"throw",e)}u(void 0)}))}}n.d(t,"a",(function(){return o}))},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i,a=!0,u=!1;return{s:function(){o=e[Symbol.iterator]()},n:function(){var e=o.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==o.return||o.return()}finally{if(u)throw i}}}}},function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=n(23);function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var u=n(3),l=n(16),s=n(1),c=n.n(s),f=n(2),d=n(6),p=n(5);function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function m(e,t,n){return(m=g()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&v(o,n.prototype),o}).apply(null,arguments)}function y(e){var t="function"===typeof Map?new Map:void 0;return(y=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return m(e,arguments,h(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),v(r,e)})(e)}function b(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}function w(e){return(w="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e,t){return!t||"object"!==w(t)&&"function"!==typeof t?a(e):t}function _(e){return function(){var t,n=h(e);if(g()){var r=h(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return S(this,t)}}var x=n(10),k=n(0),E=n.n(k),R=n(13),O=n.n(R),C=c.a.mark(Fe),T=c.a.mark(Be);var P=function(e){};var A=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.error,null};function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var L=function e(t){Object(x.a)(this,e),j(this,"key",void 0),this.key=t},M=function(e){b(n,e);var t=_(n);function n(){return Object(x.a)(this,n),t.apply(this,arguments)}return n}(L),N=function(e){b(n,e);var t=_(n);function n(){return Object(x.a)(this,n),t.apply(this,arguments)}return n}(L);var I={AbstractRecoilValue:L,RecoilState:M,RecoilValueReadOnly:N,isRecoilValue:function(e){return e instanceof M||e instanceof N}},z=I.AbstractRecoilValue,F=I.RecoilState,D=I.RecoilValueReadOnly,B=I.isRecoilValue,V=Object.freeze({__proto__:null,AbstractRecoilValue:z,RecoilState:F,RecoilValueReadOnly:D,isRecoilValue:B}),U=function e(){Object(x.a)(this,e)},$=new U,H=function(e){b(n,e);var t=_(n);function n(e){return Object(x.a)(this,n),t.call(this,"Tried to set the value of Recoil selector ".concat(e," using an updater function, but it is an async selector in a pending or error state; this is not supported."))}return n}(y(Error)),W=new Map,G=new Map;var q=function(e){b(n,e);var t=_(n);function n(){return Object(x.a)(this,n),t.apply(this,arguments)}return n}(y(Error));var Y={nodes:W,recoilValues:G,registerNode:function(e){if(W.has(e.key)){var t='Duplicate atom key "'.concat(e.key,'". This is a FATAL ERROR in\n production. But it is safe to ignore this warning if it occurred because of\n hot module replacement.');A(t)}W.set(e.key,e);var n=null==e.set?new V.RecoilValueReadOnly(e.key):new V.RecoilState(e.key);return G.set(e.key,n),n},getNode:function(e){var t=W.get(e);if(null==t)throw new q('Missing definition for RecoilValue: "'.concat(e,'""'));return t},getNodeMaybe:function(e){return W.get(e)},NodeMissingError:q,DefaultValue:U,DEFAULT_VALUE:$,RecoilValueNotReady:H};var Q={enqueueExecution:function(e,t){t()}};var K=function(e,t){var n=new Set(e);return n.add(t),n},X=function(e,t){var n=new Map(e);return n.delete(t),n},J=function(e,t){var n=new Map(e);return t.forEach((function(e){return n.delete(e)})),n},Z=X,ee=function(e,t,n){var r=new Map(e);return r.set(t,n),r},te=K,ne=Y.getNode,re=Y.getNodeMaybe,oe=Object.freeze(new Set),ie=function(e){b(n,e);var t=_(n);function n(){return Object(x.a)(this,n),t.apply(this,arguments)}return n}(y(Error));var ae=function(e,t,n){return ne(n).get(e,t)},ue=function(e,t,n){return ne(n).peek(e,t)},le=function(e,t,n,r){var o=ne(n);if(null==o.set)throw new ie("Attempt to set read-only RecoilValue: ".concat(n));return o.set(e,t,r)},se=function(e,t,n){var r,o=re(t);return null===o||void 0===o||null===(r=o.invalidate)||void 0===r||r.call(o),Object(p.a)(Object(p.a)({},e),{},{atomValues:Z(e.atomValues,t),nonvalidatedAtoms:ee(e.nonvalidatedAtoms,t,n),dirtyAtoms:te(e.dirtyAtoms,t)})},ce=function(e,t,n){for(var r=new Set,o=Array.from(n),i=e.getGraph(t.version),a=o.pop();a;a=o.pop()){var u;r.add(a);var l,s=null!==(u=i.nodeToNodeSubscriptions.get(a))&&void 0!==u?u:oe,c=Object(d.a)(s);try{for(c.s();!(l=c.n()).done;){var f=l.value;r.has(f)||o.push(f)}}catch(p){c.e(p)}finally{c.f()}}return r};var fe=function(e){for(var t=new Set,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:e.getState().currentTree,a=e.getState();i.version!==a.currentTree.version&&i.version!==(null===(n=a.nextTree)||void 0===n?void 0:n.version)&&i.version!==(null===(r=a.previousTree)||void 0===r?void 0:r.version)&&A("Tried to read from a discarded tree");var u=ke(e,i,o),l=Object(f.a)(u,2),s=l[0],c=l[1];return Oe(s,e,i.version),c},setRecoilValue:Ne,setRecoilValueLoadable:function(e,t,n){if(n instanceof Ce)return Ne(e,t,n);var r=t.key;we.trace("set RecoilValue",r,(function(){return e.replaceState(we.wrap((function(e){var t=new Set([r]);return Object(p.a)(Object(p.a)({},e),{},{dirtyAtoms:Se(e.dirtyAtoms,t),atomValues:Me(e.atomValues,new Map([[r,n]])),nonvalidatedAtoms:_e(e.nonvalidatedAtoms,r)})})))}))},markRecoilValueModified:function(e,t){var n=t.key;we.trace("mark RecoilValue modified",n,(function(){return e.replaceState(we.wrap((function(e){return Object(p.a)(Object(p.a)({},e),{},{dirtyAtoms:Se(e.dirtyAtoms,new Set([n]))})})))}))},setUnvalidatedRecoilValue:function(e,t,n){var r=t.key;we.trace("set unvalidated persisted atom",r,(function(){return e.replaceState(we.wrap((function(e){return Re(e,r,n)})))}))},subscribeToRecoilValue:function(e,t,n){var r=t.key,o=Ie++,i=e.getState();return i.nodeToComponentSubscriptions.has(r)||i.nodeToComponentSubscriptions.set(r,new Map),pe(i.nodeToComponentSubscriptions.get(r)).set(o,["TODO debug name",n]),{release:function(){var t=e.getState(),n=t.nodeToComponentSubscriptions.get(r);void 0!==n&&n.has(o)?(n.delete(o),0===n.size&&t.nodeToComponentSubscriptions.delete(r)):A("Subscription missing at release time for atom ".concat(r,". This is a bug in Recoil."))}}},isRecoilValue:Le,applyAtomValueWrites:Me};function Fe(e){var t,n,r,o,i,a;return c.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:t=Object(d.a)(e),u.prev=1,t.s();case 3:if((n=t.n()).done){u.next=24;break}r=n.value,o=Object(d.a)(r),u.prev=6,o.s();case 8:if((i=o.n()).done){u.next=14;break}return a=i.value,u.next=12,a;case 12:u.next=8;break;case 14:u.next=19;break;case 16:u.prev=16,u.t0=u.catch(6),o.e(u.t0);case 19:return u.prev=19,o.f(),u.finish(19);case 22:u.next=3;break;case 24:u.next=29;break;case 26:u.prev=26,u.t1=u.catch(1),t.e(u.t1);case 29:return u.prev=29,t.f(),u.finish(29);case 32:case"end":return u.stop()}}),C,null,[[1,26,29,32],[6,16,19,22]])}var De=Fe;function Be(e,t){var n,r,o,i;return c.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:n=0,r=Object(d.a)(e),a.prev=2,r.s();case 4:if((o=r.n()).done){a.next=11;break}if(i=o.value,!t(i,n++)){a.next=9;break}return a.next=9,i;case 9:a.next=4;break;case 11:a.next=16;break;case 13:a.prev=13,a.t0=a.catch(2),r.e(a.t0);case 16:return a.prev=16,r.f(),a.finish(16);case 19:case"end":return a.stop()}}),T,null,[[2,13,16,19]])}var Ve=Be,Ue=new Map;function $e(e){var t;return null!==(t=Ue.get(e))&&void 0!==t&&t}$e.setPass=function(e){Ue.set(e,!0)},$e.setFail=function(e){Ue.set(e,!1)};var He=$e;var We=function(e,t){return c.a.mark((function n(){var r,o,i,a;return c.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:r=0,o=Object(d.a)(e),n.prev=2,o.s();case 4:if((i=o.n()).done){n.next=10;break}return a=i.value,n.next=8,t(a,r++);case 8:n.next=4;break;case 10:n.next=15;break;case 12:n.prev=12,n.t0=n.catch(2),o.e(n.t0);case 15:return n.prev=15,o.f(),n.finish(15);case 18:case"end":return n.stop()}}),n,null,[[2,12,15,18]])}))()},Ge=me,qe=0,Ye=function(){return qe++};function Qe(){var e=Ye();return{version:e,stateID:e,transactionMetadata:{},dirtyAtoms:new Set,atomValues:new Map,nonvalidatedAtoms:new Map}}var Ke=function(){var e=Qe();return{currentTree:e,nextTree:null,previousTree:null,knownAtoms:new Set,knownSelectors:new Set,transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(e.version,Ge()),versionsUsedByComponent:new Map}},Xe=Ye,Je=ce,Ze=ue,et=me,tt=Y.DEFAULT_VALUE,nt=Y.recoilValues,rt=ze.getRecoilValueAsLoadable,ot=ze.setRecoilValue,it=Xe,at=Ke;function ut(e){return We(e,(function(e){return pe(nt.get(e))}))}var lt=function(){function e(t){var n=this;Object(x.a)(this,e),j(this,"_store",void 0),j(this,"getLoadable",(function(e){return rt(n._store,e)})),j(this,"getPromise",(function(e){return He("recoil_async_selector_refactor")?n.getLoadable(e).toPromise().then((function(e){return e.value})):n.getLoadable(e).toPromise()})),j(this,"getNodes_UNSTABLE",(function(e){if(!0===(null===e||void 0===e?void 0:e.isModified))return!1===(null===e||void 0===e?void 0:e.isInitialized)?[]:ut(n._store.getState().currentTree.dirtyAtoms);var t=n._store.getState().knownAtoms,r=n._store.getState().knownSelectors;return null==(null===e||void 0===e?void 0:e.isInitialized)?nt.values():!0===e.isInitialized?ut(De([n._store.getState().knownAtoms,n._store.getState().knownSelectors])):Ve(nt.values(),(function(e){var n=e.key;return!t.has(n)&&!r.has(n)}))})),j(this,"getDeps_UNSTABLE",(function(e){n.getLoadable(e);var t=n._store.getGraph(n._store.getState().currentTree.version).nodeDeps.get(e.key);return ut(null!==t&&void 0!==t?t:[])})),j(this,"getSubscribers_UNSTABLE",(function(e){var t=e.key,r=n._store.getState().currentTree;return{nodes:ut(Ve(Je(n._store,r,new Set([t])),(function(e){return e!==t})))}})),j(this,"getInfo_UNSTABLE",(function(e){var t,r=e.key,o=n._store.getState().currentTree,i=n._store.getGraph(o.version);return{loadable:Ze(n._store,o,r),isActive:n._store.getState().knownAtoms.has(r)||n._store.getState().knownSelectors.has(r),isSet:o.atomValues.has(r),isModified:o.dirtyAtoms.has(r),type:n._store.getState().knownAtoms.has(r)?"atom":n._store.getState().knownSelectors.has(r)?"selector":void 0,deps:ut(null!==(t=i.nodeDeps.get(r))&&void 0!==t?t:[]),subscribers:n.getSubscribers_UNSTABLE(e)}})),j(this,"map",(function(e){var t=new ft(n);return e(t),ct(t.getStore_INTERNAL())})),j(this,"asyncMap",function(){var e=Object(u.a)(c.a.mark((function e(t){var r;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new ft(n),e.next=3,t(r);case 3:return e.abrupt("return",ct(r.getStore_INTERNAL()));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),this._store={getState:function(){return t},replaceState:function(e){t.currentTree=e(t.currentTree)},getGraph:function(e){var n=t.graphsByVersion;if(n.has(e))return pe(n.get(e));var r=et();return n.set(e,r),r},subscribeToTransactions:function(){return{release:function(){}}},addTransactionMetadata:function(){throw new Error("Cannot subscribe to Snapshots")}}}return Object(l.a)(e,[{key:"getStore_INTERNAL",value:function(){return this._store}},{key:"getID",value:function(){return this.getID_INTERNAL()}},{key:"getID_INTERNAL",value:function(){return this._store.getState().currentTree.stateID}}]),e}();function st(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.getState(),o=n?it():t.version;return{currentTree:n?{version:o,stateID:o,transactionMetadata:Object(p.a)({},t.transactionMetadata),dirtyAtoms:new Set(t.dirtyAtoms),atomValues:new Map(t.atomValues),nonvalidatedAtoms:new Map(t.nonvalidatedAtoms)}:t,nextTree:null,previousTree:null,knownAtoms:new Set(r.knownAtoms),knownSelectors:new Set(r.knownSelectors),transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(o,e.getGraph(t.version)),versionsUsedByComponent:new Map}}function ct(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"current",n=e.getState(),r="current"===t?n.currentTree:pe(n.previousTree);return new lt(st(e,r))}var ft=function(e){b(n,e);var t=_(n);function n(e){var r;return Object(x.a)(this,n),j(a(r=t.call(this,st(e.getStore_INTERNAL(),e.getStore_INTERNAL().getState().currentTree,!0))),"set",(function(e,t){var n=r.getStore_INTERNAL();ot(n,e,t)})),j(a(r),"reset",(function(e){return ot(r.getStore_INTERNAL(),e,tt)})),r}return n}(lt),dt={Snapshot:lt,MutableSnapshot:ft,freshSnapshot:function(){return new lt(at())},cloneSnapshot:ct},pt=dt.Snapshot,ht=dt.MutableSnapshot,vt=dt.freshSnapshot,gt=dt.cloneSnapshot,mt=Object.freeze({__proto__:null,Snapshot:pt,MutableSnapshot:ht,freshSnapshot:vt,cloneSnapshot:gt}),yt=E.a.useContext,bt=E.a.useEffect,wt=E.a.useMemo,St=E.a.useRef,_t=E.a.useState,xt=ce,kt=le,Et=se,Rt=me,Ot=be,Ct=ge,Tt=ze.applyAtomValueWrites,Pt=mt.freshSnapshot,At=Xe,jt=Ke,Lt=J;function Mt(){throw new Error("This component must be used inside a component.")}var Nt=Object.freeze({getState:Mt,replaceState:Mt,getGraph:Mt,subscribeToTransactions:Mt,addTransactionMetadata:Mt}),It=!1;function zt(e){if(It)throw new Error("An atom update was triggered within the execution of a state updater function. State updater functions provided to Recoil must be pure functions.");if(null===e.nextTree){var t=e.currentTree.version,n=At();e.nextTree=Object(p.a)(Object(p.a)({},e.currentTree),{},{version:n,stateID:n,dirtyAtoms:new Set,transactionMetadata:{}}),e.graphsByVersion.set(n,Ct(pe(e.graphsByVersion.get(t))))}}var Ft=E.a.createContext({current:Nt}),Dt=function(){return yt(Ft)},Bt=E.a.createContext(null);function Vt(e){var t=e.getState(),n=t.currentTree,r=n.dirtyAtoms;if(r.size){var o,i=Object(d.a)(t.nodeTransactionSubscriptions);try{for(i.s();!(o=i.n()).done;){var a=Object(f.a)(o.value,2),u=a[0],l=a[1];if(r.has(u)){var s,c=Object(d.a)(l);try{for(c.s();!(s=c.n()).done;){var p=Object(f.a)(s.value,2);p[0];(0,p[1])(e)}}catch(R){c.e(R)}finally{c.f()}}}}catch(R){i.e(R)}finally{i.f()}var h,v=Object(d.a)(t.transactionSubscriptions);try{for(v.s();!(h=v.n()).done;){var g=Object(f.a)(h.value,2);g[0];(0,g[1])(e)}}catch(R){v.e(R)}finally{v.f()}var m,y=xt(e,n,r),b=Object(d.a)(y);try{for(b.s();!(m=b.n()).done;){var w=m.value,S=t.nodeToComponentSubscriptions.get(w);if(S){var _,x=Object(d.a)(S);try{for(x.s();!(_=x.n()).done;){var k=Object(f.a)(_.value,2),E=(k[0],Object(f.a)(k[1],2));E[0];(0,E[1])(n)}}catch(R){x.e(R)}finally{x.f()}}}}catch(R){b.e(R)}finally{b.f()}0,t.suspendedComponentResolvers.forEach((function(e){return we.trace("value became available, waking components","[available in dev build]",e)}))}t.queuedComponentCallbacks_DEPRECATED.forEach((function(e){return e(n)})),t.queuedComponentCallbacks_DEPRECATED.splice(0,t.queuedComponentCallbacks_DEPRECATED.length)}function Ut(e){var t=Dt(),n=_t([]),r=Object(f.a)(n,2),o=(r[0],r[1]);return e.setNotifyBatcherOfChange((function(){return o({})})),bt((function(){Q.enqueueExecution("Batcher",(function(){var e=t.current.getState(),n=e.nextTree;if(null!==n){e.previousTree=e.currentTree,e.currentTree=n,e.nextTree=null,Vt(t.current);var r=pe(e.previousTree).version;e.graphsByVersion.delete(r),e.previousTree=null}}))})),null}var $t=0;var Ht=Dt,Wt=function(){return yt(Bt)},Gt=function(e){var t,n,r=e.initializeState_DEPRECATED,o=e.initializeState,i=e.store_INTERNAL,a=e.children,u=St(null),l=null!==(t=E.a.createMutableSource)&&void 0!==t?t:E.a.unstable_createMutableSource,s=null!==i&&void 0!==i?i:{getState:function(){return n.current},replaceState:function(e){var t=c.current.getState();zt(t);var n,r=pe(t.nextTree);try{It=!0,n=e(r)}finally{It=!1}n!==r&&(t.nextTree=n,pe(u.current)())},getGraph:function(e){var t=n.current.graphsByVersion;if(t.has(e))return pe(t.get(e));var r=Rt();return t.set(e,r),r},subscribeToTransactions:function(e,t){if(null==t){var n=c.current.getState().transactionSubscriptions,r=$t++;return n.set(r,e),{release:function(){n.delete(r)}}}var o=c.current.getState().nodeTransactionSubscriptions;o.has(t)||o.set(t,new Map);var i=$t++;return pe(o.get(t)).set(i,e),{release:function(){var e=o.get(t);e&&(e.delete(i),0===e.size&&o.delete(t))}}},addTransactionMetadata:function(e){zt(c.current.getState());for(var t=0,n=Object.keys(e);t1&&void 0!==arguments[1]?arguments[1]:{};O.a.unstable_batchedUpdates((function(){e.current.addTransactionMetadata(n),t.forEach((function(t,n){return fn(e.current,new un(n),t)}))}))}},Nn=function(e){bn(Jt((function(t){var n=t.getState().previousTree,r=t.getState().currentTree;n||(A("Transaction subscribers notified without a previous tree being present -- this is a bug in Recoil"),n=t.getState().currentTree);var o=wn(r),i=wn(n),a=de(rn,(function(e){var t,n,r,o;return{persistence_UNSTABLE:{type:null!==(t=null===(n=e.persistence_UNSTABLE)||void 0===n?void 0:n.type)&&void 0!==t?t:"none",backButton:null!==(r=null===(o=e.persistence_UNSTABLE)||void 0===o?void 0:o.backButton)&&void 0!==r&&r}}})),u=Yt(r.dirtyAtoms,(function(e){return o.has(e)||i.has(e)}));e({atomValues:o,previousAtomValues:i,atomInfo:a,modifiedAtoms:u,transactionMetadata:Object(p.a)({},r.transactionMetadata)})}),[e]))},In=E.a.useMemo,zn=Gt,Fn=Ht;var Dn=function(){var e=Fn().current;return In((function(){return function(t){var n=t.children;return E.a.createElement(zn,{store_INTERNAL:e},n)}}),[e])};var Bn=function(e){return!!e&&"function"===typeof e.then},Vn={getValue:function(){if("hasValue"!==this.state)throw this.contents;return this.contents},toPromise:function(){return"hasValue"===this.state?Promise.resolve(this.contents):"hasError"===this.state?Promise.reject(this.contents):this.contents},valueMaybe:function(){return"hasValue"===this.state?this.contents:void 0},valueOrThrow:function(){if("hasValue"!==this.state)throw new Error('Loadable expected value, but in "'.concat(this.state,'" state'));return this.contents},errorMaybe:function(){return"hasError"===this.state?this.contents:void 0},errorOrThrow:function(){if("hasError"!==this.state)throw new Error('Loadable expected error, but in "'.concat(this.state,'" state'));return this.contents},promiseMaybe:function(){return"loading"===this.state?this.contents:void 0},promiseOrThrow:function(){if("loading"!==this.state)throw new Error('Loadable expected promise, but in "'.concat(this.state,'" state'));return this.contents},map:function(e){var t=this;if("hasError"===this.state)return this;if("hasValue"===this.state)try{var n=e(this.contents);return Bn(n)?Hn(n):Un(n)}catch(r){return Bn(r)?Hn(r.next((function(){return e(t.contents)}))):$n(r)}if("loading"===this.state)return Hn(this.contents.then(e).catch((function(n){if(Bn(n))return n.then((function(){return e(t.contents)}));throw n})));throw new Error("Invalid Loadable state")}};function Un(e){return Object.freeze(Object(p.a)({state:"hasValue",contents:e},Vn))}function $n(e){return Object.freeze(Object(p.a)({state:"hasError",contents:e},Vn))}function Hn(e){return Object.freeze(Object(p.a)({state:"loading",contents:e},Vn))}var Wn=Un,Gn=$n,qn=Hn;var Yn=Symbol("ArrayKeyedMap"),Qn=new Map,Kn=function(){function e(t){if(Object(x.a)(this,e),this._base=new Map,t instanceof e){var n,r=Object(d.a)(t.entries());try{for(r.s();!(n=r.n()).done;){var o=Object(f.a)(n.value,2),i=o[0],a=o[1];this.set(i,a)}}catch(h){r.e(h)}finally{r.f()}}else if(t){var u,l=Object(d.a)(t);try{for(l.s();!(u=l.n()).done;){var s=Object(f.a)(u.value,2),c=s[0],p=s[1];this.set(c,p)}}catch(h){l.e(h)}finally{l.f()}}return this}return Object(l.a)(e,[{key:"get",value:function(e){var t=Array.isArray(e)?e:[e],n=this._base;return t.forEach((function(e){var t;n=null!==(t=n.get(e))&&void 0!==t?t:Qn})),void 0===n?void 0:n.get(Yn)}},{key:"set",value:function(e,t){var n=Array.isArray(e)?e:[e],r=this._base,o=r;return n.forEach((function(e){(o=r.get(e))||(o=new Map,r.set(e,o)),r=o})),o.set(Yn,t),this}},{key:"delete",value:function(e){var t=Array.isArray(e)?e:[e],n=this._base,r=n;return t.forEach((function(e){(r=n.get(e))||(r=new Map,n.set(e,r)),n=r})),r.delete(Yn),this}},{key:"entries",value:function(){var e=[];return function t(n,r){n.forEach((function(n,o){o===Yn?e.push([r,n]):t(n,r.concat(o))}))}(this._base,[]),e.values()}},{key:"toBuiltInMap",value:function(){return new Map(this.entries())}}]),e}();var Xn=function(){return new Kn};var Jn=function(e){return function(){return null}},Zn=Gn,er=qn,tr=Wn,nr=ae,rr=ue,or=le,ir=ve,ar=ye,ur=be,lr=Y.DEFAULT_VALUE,sr=Y.RecoilValueNotReady,cr=Y.registerNode,fr=V.AbstractRecoilValue,dr=ze.getRecoilValueAsLoadable,pr=ze.isRecoilValue,hr=ze.setRecoilValueLoadable,vr=Jn,gr=Object.freeze(new Set);function mr(e){var t,n=[],r=Object(d.a)(Array.from(e.keys()).sort());try{for(r.s();!(t=r.n()).done;){var o=t.value,i=pe(e.get(o));n.push(o),n.push(i.state),n.push(i.contents)}}catch(a){r.e(a)}finally{r.f()}return n}var yr=new Map;var br=function(e){var t=e.key,n=e.get,r=e.cacheImplementation_UNSTABLE,o=null!=e.set?e.set:void 0,i=null!==r&&void 0!==r?r:Xn();function a(e){e.getState().knownSelectors.add(t)}function u(e,t){if("loading"===t.state){var n=yr.get(t);void 0===n&&yr.set(t,n=new Set),n.add(e)}}function l(e,n){var r=yr.get(e);if(void 0!==r){var o,i=Object(d.a)(r);try{for(i.s();!(o=i.n()).done;){var a=o.value;hr(a,new fr(t),n)}}catch(u){i.e(u)}finally{i.f()}yr.delete(e)}}function s(e,r){var o,a=new Map,s=null!==(o=e.getGraph(r.version).nodeDeps.get(t))&&void 0!==o?o:gr,c=mr(new Map(Array.from(s).sort().map((function(t){var n=nr(e,r,t),o=Object(f.a)(n,2),i=o[0],u=o[1];return ar(i,a),ur(a,e,r.version),[t,u]})))),d=i.get(c);if(null!=d)return u(e,d),[a,d];var p=function(e,r){var o=vr(t),i=new Map,a=new Map;function u(n){var o=n.key;ir(t,o,a);var u=nr(e,r,o),l=Object(f.a)(u,2),s=l[0],c=l[1];if(i.set(o,c),ar(s,a),ur(a,e,r.version),"hasValue"===c.state)return c.contents;throw c.contents}try{var l,s=n({get:u}),c=pr(s)?u(s):s;return Bn(c)?l=er(c.finally(o)):(o(),l=tr(c)),[a,l,i]}catch(p){var d;return void 0!==p.then?d=er(p.then((function(){var n=dr(e,new fr(t));if("hasError"===n.state)throw n.contents;return n.contents})).finally(o)):(o(),d=Zn(p)),[a,d,i]}}(e,r),h=Object(f.a)(p,3),v=h[0],g=h[1],m=h[2];ar(v,a),ur(a,e,r.version);var y=mr(m);return u(e,g),function(e,t){"loading"!==t.state||t.contents.then((function(n){var r=tr(n);return i=i.set(e,r),l(t,r),n})).catch((function(n){if(Bn(n))return n;var r=Zn(n);return i=i.set(e,r),l(t,r),n})),i=i.set(e,t)}(y,g),[a,g]}function c(e,n){var r,o,a=null!==(r=e.getGraph(n.version).nodeDeps.get(t))&&void 0!==r?r:gr,u=new Map(Array.from(a).sort().map((function(t){return[t,rr(e,n,t)]}))),l=new Map,s=Object(d.a)(u.entries());try{for(s.s();!(o=s.n()).done;){var c=Object(f.a)(o.value,2),p=c[0],h=c[1];if(null==h)return;l.set(p,h)}}catch(g){s.e(g)}finally{s.f()}var v=mr(l);return i.get(v)}function p(e,t){return a(e),s(e,t)}if(null!=o){return cr({key:t,peek:c,get:p,set:function(e,t,n){a(e);var r=new Map,i=new Map;function u(n){var o=n.key,i=nr(e,t,o),a=Object(f.a)(i,2),u=a[0],l=a[1];if(ar(u,r),"hasValue"===l.state)return l.contents;throw"loading"===l.state?new sr(o):l.contents}function l(n,o){var a="function"===typeof o?o(u(n)):o,l=or(e,t,n.key,a),s=Object(f.a)(l,2),c=s[0],d=s[1];ar(c,r),d.forEach((function(e,t){return i.set(t,e)}))}return o({set:l,get:u,reset:function(e){l(e,lr)}},n),[r,i]},dangerouslyAllowMutability:e.dangerouslyAllowMutability,shouldRestoreFromSnapshots:!1})}return cr({key:t,peek:c,get:p,dangerouslyAllowMutability:e.dangerouslyAllowMutability,shouldRestoreFromSnapshots:!1})},wr=Gn,Sr=qn,_r=Wn,xr=Y.DEFAULT_VALUE,kr=Y.DefaultValue,Er=Y.registerNode,Rr=V.isRecoilValue,Or=ze.markRecoilValueModified,Cr=ze.setRecoilValue,Tr=ze.setRecoilValueLoadable;function Pr(e){var t=e.key,n=e.persistence_UNSTABLE,r=Bn(e.default)?Sr(e.default.then((function(e){return r=_r(e),e})).catch((function(e){throw r=wr(e),e}))):_r(e.default),o=void 0;function i(n,o,i){if(!n.getState().knownAtoms.has(t)){if(n.getState().knownAtoms.add(t),"loading"===r.state){var u=function(){var e;(null!==(e=n.getState().nextTree)&&void 0!==e?e:n.getState().currentTree).atomValues.has(t)||Or(n,a)};r.contents.then(u).catch(u)}var l=xr;if(null!=e.effects_UNSTABLE){var s,c=function(e){if(p){var t=l instanceof kr||Bn(l)?"hasValue"===r.state?r.contents:xr:l;l="function"===typeof e?e(t):e}else{if(Bn(e))throw new Error("Setting atoms to async values is not implemented.");Cr(n,a,e)}},f=function(e){n.subscribeToTransactions((function(n){var o=n.getState(),i=o.currentTree,a=o.previousTree;a||(A("Transaction subscribers notified without a next tree being present -- this is a bug in Recoil"),a=i);var u=i.atomValues.get(t);if(null==u||"hasValue"===u.state){var l,s=null!=u?u.contents:xr,c=null!==(l=a.atomValues.get(t))&&void 0!==l?l:r,f="hasValue"===c.state?c.contents:xr;e(s,f)}}),t)},p=!0,h=function(){return c(xr)},v=Object(d.a)(null!==(g=e.effects_UNSTABLE)&&void 0!==g?g:[]);try{for(v.s();!(s=v.n()).done;){var g;(0,s.value)({node:a,trigger:i,setSelf:c,resetSelf:h,onSet:f})}}catch(m){v.e(m)}finally{v.f()}p=!1}l instanceof kr||o.atomValues.set(t,Bn(l)?Sr(function(e,n){var r=n.then((function(n){var o,i;return(null===(i=(null!==(o=e.getState().nextTree)&&void 0!==o?o:e.getState().currentTree).atomValues.get(t))||void 0===i?void 0:i.contents)===r&&Cr(e,a,n),n})).catch((function(n){var o,i;throw(null===(i=(null!==(o=e.getState().nextTree)&&void 0!==o?o:e.getState().currentTree).atomValues.get(t))||void 0===i?void 0:i.contents)===r&&Tr(e,a,wr(n)),n}));return r}(n,l)):_r(l))}}var a=Er({key:t,peek:function(e,n){var i,a,u;return null!==(i=null!==(a=n.atomValues.get(t))&&void 0!==a?a:null===(u=o)||void 0===u?void 0:u[1])&&void 0!==i?i:r},get:function(e,a){if(i(e,a,"get"),a.atomValues.has(t))return[new Map,pe(a.atomValues.get(t))];if(a.nonvalidatedAtoms.has(t)){if(null!=o)return o;if(null==n)return P("Tried to restore a persisted value for atom ".concat(t," but it has no persistence settings.")),[new Map,r];var u=a.nonvalidatedAtoms.get(t),l=n.validator(u,xr),s=l instanceof kr?r:_r(l);return o=[new Map,s]}return[new Map,r]},set:function(e,n,r){if(i(e,n,"set"),n.atomValues.has(t)){var a=pe(n.atomValues.get(t));if("hasValue"===a.state&&r===a.contents)return[new Map,new Map]}else if(!n.nonvalidatedAtoms.has(t)&&r instanceof kr)return[new Map,new Map];return o=void 0,[new Map,(new Map).set(t,_r(r))]},invalidate:function(){o=void 0},dangerouslyAllowMutability:e.dangerouslyAllowMutability,persistence_UNSTABLE:e.persistence_UNSTABLE?{type:e.persistence_UNSTABLE.type,backButton:e.persistence_UNSTABLE.backButton}:void 0,shouldRestoreFromSnapshots:!0});return a}function Ar(e){var t=e.default,n=o(e,["default"]);return Rr(t)?function(e){var t=Ar(Object(p.a)(Object(p.a)({},e),{},{default:xr,persistence_UNSTABLE:void 0===e.persistence_UNSTABLE?void 0:Object(p.a)(Object(p.a)({},e.persistence_UNSTABLE),{},{validator:function(t){return t instanceof kr?t:pe(e.persistence_UNSTABLE).validator(t,xr)}}),effects_UNSTABLE:e.effects_UNSTABLE}));return br({key:"".concat(e.key,"__withFallback"),get:function(n){var r=(0,n.get)(t);return r instanceof kr?e.default:r},set:function(e,n){return(0,e.set)(t,n)},dangerouslyAllowMutability:e.dangerouslyAllowMutability})}(Object(p.a)(Object(p.a)({},n),{},{default:t})):Pr(Object(p.a)(Object(p.a)({},n),{},{default:t}))}var jr=Ar;function Lr(e,t,n){if("string"===typeof e&&!e.includes('"')&&!e.includes("\\"))return'"'.concat(e,'"');switch(typeof e){case"undefined":return"";case"boolean":return e?"true":"false";case"number":case"symbol":return String(e);case"string":return JSON.stringify(e);case"function":if(!0!==(null===t||void 0===t?void 0:t.allowFunctions))throw new Error("Attempt to serialize function in a Recoil cache key");return"__FUNCTION(".concat(e.name,")__")}if(null===e)return"null";var r;if("object"!==typeof e)return null!==(r=JSON.stringify(e))&&void 0!==r?r:"";if(Bn(e))return"__PROMISE__";if(Array.isArray(e))return"[".concat(e.map((function(e,n){return Lr(e,t,n.toString())})),"]");if("function"===typeof e.toJSON)return Lr(e.toJSON(n),t,n);if(e instanceof Map){var o,i={},a=Object(d.a)(e);try{for(a.s();!(o=a.n()).done;){var u=Object(f.a)(o.value,2),l=u[0],s=u[1];i["string"===typeof l?l:Lr(l,t)]=s}}catch(c){a.e(c)}finally{a.f()}return Lr(i,t,n)}return e instanceof Set?Lr(Array.from(e).sort((function(e,n){return Lr(e,t).localeCompare(Lr(n,t))})),t,n):null!=e[Symbol.iterator]&&"function"===typeof e[Symbol.iterator]?Lr(Array.from(e),t,n):"{".concat(Object.keys(e).filter((function(t){return void 0!==e[t]})).sort().map((function(n){return"".concat(Lr(n,t),":").concat(Lr(e[n],t,n))})).join(","),"}")}var Mr=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{allowFunctions:!1};return Lr(e,t)};var Nr=function(){var e=new Map,t={get:function(t){return e.get(Mr(t))},set:function(n,r){return e.set(Mr(n),r),t},map:e};return t},Ir=0;var zr=function(e){var t,n,r=null!==(t=null===(n=e.cacheImplementationForParams_UNSTABLE)||void 0===n?void 0:n.call(e))&&void 0!==t?t:Nr();return function(t){var n,o,i=r.get(t);if(null!=i)return i;var a,u="".concat(e.key,"__selectorFamily/").concat(null!==(n=Mr(t,{allowFunctions:!0}))&&void 0!==n?n:"void","/").concat(Ir++),l=function(n){return e.get(t)(n)},s=null===(o=e.cacheImplementation_UNSTABLE)||void 0===o?void 0:o.call(e);if(null!=e.set){var c=e.set;a=br({key:u,get:l,set:function(e,n){return c(t)(e,n)},cacheImplementation_UNSTABLE:s,dangerouslyAllowMutability:e.dangerouslyAllowMutability})}else a=br({key:u,get:l,cacheImplementation_UNSTABLE:s,dangerouslyAllowMutability:e.dangerouslyAllowMutability});return r=r.set(t,a),a}},Fr=Y.DEFAULT_VALUE,Dr=Y.DefaultValue;var Br=function(e){var t,n=Nr(),r={key:e.key,default:Fr,persistence_UNSTABLE:e.persistence_UNSTABLE};t=jr(r);var o=zr({key:"".concat(e.key,"__atomFamily/Default"),get:function(n){return function(r){var o=(0,r.get)("function"===typeof t?t(n):t);return o instanceof Dr?"function"===typeof e.default?e.default(n):e.default:o}},dangerouslyAllowMutability:e.dangerouslyAllowMutability});return function(t){var r,i=n.get(t);if(null!=i)return i;var a=jr(Object(p.a)(Object(p.a)({},e),{},{key:"".concat(e.key,"__").concat(null!==(r=Mr(t))&&void 0!==r?r:"void"),default:o(t),effects_UNSTABLE:"function"===typeof e.effects_UNSTABLE?e.effects_UNSTABLE(t):e.effects_UNSTABLE}));return n=n.set(t,a),a}},Vr=zr({key:"__constant",get:function(e){return function(){return e}},cacheImplementationForParams_UNSTABLE:Xn});var Ur=function(e){return Vr(e)},$r=zr({key:"__error",get:function(e){return function(){throw new Error(e)}},cacheImplementationForParams_UNSTABLE:Xn});var Hr=function(e){return $r(e)};var Wr=function(e){return e},Gr=Gn,qr=qn,Yr=Wn;function Qr(e,t){var n,r=Array(t.length).fill(void 0),o=Array(t.length).fill(void 0),i=Object(d.a)(t.entries());try{for(i.s();!(n=i.n()).done;){var a=Object(f.a)(n.value,2),u=a[0],l=a[1];try{r[u]=e(l)}catch(s){o[u]=s}}}catch(c){i.e(c)}finally{i.f()}return[r,o]}function Kr(e){return null!=e&&!Bn(e)}function Xr(e){return Array.isArray(e)?e:Object.getOwnPropertyNames(e).map((function(t){return e[t]}))}function Jr(e){return e.hasOwnProperty("value")?e.value:e}function Zr(e,t){return Array.isArray(e)?t:Object.getOwnPropertyNames(e).reduce((function(e,n,o){return Object(p.a)(Object(p.a)({},e),{},Object(r.a)({},n,t[o]))}),{})}function eo(e,t,n){return Zr(e,n.map((function(e,n){return null==e?Yr(t[n]):Bn(e)?qr(e):Gr(e)})))}var to={waitForNone:zr({key:"__waitForNone",get:function(e){return function(t){var n=Qr(t.get,Xr(e)),r=Object(f.a)(n,2),o=r[0],i=r[1];return eo(e,o,i)}}}),waitForAny:zr({key:"__waitForAny",get:function(e){return function(t){var n=Qr(t.get,Xr(e)),r=Object(f.a)(n,2),o=r[0],i=r[1];if(i.some((function(e){return null==e})))return eo(e,o,i);if(i.every(Kr))throw i.find(Kr);if(He("recoil_async_selector_refactor"))return new Promise((function(t,n){var r,a=Object(d.a)(i.entries());try{var u=function(){var a=Object(f.a)(r.value,2),u=a[0],l=a[1];Bn(l)&&l.then((function(n){o[u]=Jr(n),i[u]=null,t(eo(e,o,i))})).catch((function(e){i[u]=e,i.every(Kr)&&n(i[0])}))};for(a.s();!(r=a.n()).done;)u()}catch(l){a.e(l)}finally{a.f()}}));throw new Promise((function(t,n){var r,a=Object(d.a)(i.entries());try{var u=function(){var a=Object(f.a)(r.value,2),u=a[0],l=a[1];Bn(l)&&l.then((function(n){o[u]=n,i[u]=null,t(eo(e,o,i))})).catch((function(e){i[u]=e,i.every(Kr)&&n(i[0])}))};for(a.s();!(r=a.n()).done;)u()}catch(l){a.e(l)}finally{a.f()}}))}}}),waitForAll:zr({key:"__waitForAll",get:function(e){return function(t){var n=Qr(t.get,Xr(e)),r=Object(f.a)(n,2),o=r[0],i=r[1];if(i.every((function(e){return null==e})))return Zr(e,o);var a=i.find(Kr);if(null!=a)throw a;if(He("recoil_async_selector_refactor"))return Promise.all(i).then((function(t){return Zr(e,t.map(Jr))}));throw Promise.all(i).then((function(t){return Zr(e,t)}))}}}),noWait:zr({key:"__noWait",get:function(e){return function(t){var n=t.get;try{return Yr(n(e))}catch(r){return Bn(r)?qr(r):Gr(r)}}}})},no=Y.DefaultValue,ro=Gt,oo=V.isRecoilValue,io={DefaultValue:no,RecoilRoot:ro,useRecoilBridgeAcrossReactRoots_UNSTABLE:Dn,atom:jr,selector:br,atomFamily:Br,selectorFamily:zr,constSelector:Ur,errorSelector:Hr,readOnlySelector:Wr,useRecoilValue:Pn,useRecoilValueLoadable:An,useRecoilState:On,useRecoilStateLoadable:Cn,useSetRecoilState:Ln,useResetRecoilState:jn,useRecoilCallback:En,useGotoRecoilSnapshot:kn,useRecoilSnapshot:Rn,useRecoilTransactionObserver_UNSTABLE:Tn,useTransactionObservation_UNSTABLE:Nn,useSetUnvalidatedAtomValues_UNSTABLE:Mn,noWait:to.noWait,waitForNone:to.waitForNone,waitForAny:to.waitForAny,waitForAll:to.waitForAll,isRecoilValue:oo},ao=io.RecoilRoot,uo=io.atom,lo=io.selector,so=io.useRecoilValue,co=io.useRecoilState},function(e,t,n){"use strict";n.d(t,"a",(function(){return w})),n.d(t,"b",(function(){return k})),n.d(t,"c",(function(){return v})),n.d(t,"d",(function(){return h})),n.d(t,"e",(function(){return x}));var r=n(11),o=n(0),i=n.n(o),a=(n(25),n(15)),u=n(39),l=n(14),s=n(7),c=n(40),f=n.n(c),d=(n(54),n(17)),p=(n(66),function(e){var t=Object(u.a)();return t.displayName=e,t}("Router-History")),h=function(e){var t=Object(u.a)();return t.displayName=e,t}("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}Object(r.a)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return i.a.createElement(h.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},i.a.createElement(p.Provider,{children:this.props.children||null,value:this.props.history}))},t}(i.a.Component);i.a.Component;var g=function(e){function t(){return e.apply(this,arguments)||this}Object(r.a)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(i.a.Component);var m={},y=0;function b(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(m[e])return m[e];var t=f.a.compile(e);return y<1e4&&(m[e]=t,y++),t}(e)(t,{pretty:!0})}function w(e){var t=e.computedMatch,n=e.to,r=e.push,o=void 0!==r&&r;return i.a.createElement(h.Consumer,null,(function(e){e||Object(l.a)(!1);var r=e.history,u=e.staticContext,c=o?r.push:r.replace,f=Object(a.c)(t?"string"===typeof n?b(n,t.params):Object(s.a)({},n,{pathname:b(n.pathname,t.params)}):n);return u?(c(f),null):i.a.createElement(g,{onMount:function(){c(f)},onUpdate:function(e,t){var n=Object(a.c)(t.to);Object(a.f)(n,Object(s.a)({},f,{key:n.key}))||c(f)},to:n})}))}var S={},_=0;function x(e,t){void 0===t&&(t={}),("string"===typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,i=void 0!==o&&o,a=n.strict,u=void 0!==a&&a,l=n.sensitive,s=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=S[n]||(S[n]={});if(r[e])return r[e];var o=[],i={regexp:f()(e,o,t),keys:o};return _<1e4&&(r[e]=i,_++),i}(n,{end:i,strict:u,sensitive:s}),o=r.regexp,a=r.keys,l=o.exec(e);if(!l)return null;var c=l[0],d=l.slice(1),p=e===c;return i&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:a.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var k=function(e){function t(){return e.apply(this,arguments)||this}return Object(r.a)(t,e),t.prototype.render=function(){var e=this;return i.a.createElement(h.Consumer,null,(function(t){t||Object(l.a)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?x(n.pathname,e.props):t.match,o=Object(s.a)({},t,{location:n,match:r}),a=e.props,u=a.children,c=a.component,f=a.render;return Array.isArray(u)&&0===u.length&&(u=null),i.a.createElement(h.Provider,{value:o},o.match?u?"function"===typeof u?u(o):u:c?i.a.createElement(c,o):f?f(o):null:"function"===typeof u?u(o):null)}))},t}(i.a.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function R(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:Object(s.a)({},t,{pathname:t.pathname.substr(n.length)})}function O(e){return"string"===typeof e?e:Object(a.e)(e)}function C(e){return function(){Object(l.a)(!1)}}function T(){}i.a.Component;i.a.Component;i.a.useContext},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(45),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return"undefined"===typeof e}function u(e){return null!==e&&"object"===typeof e}function l(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function s(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n=0;d--){var p=a[d];"."===p?i(a,d):".."===p?(i(a,d),f++):f&&(i(a,d),f--)}if(!s)for(;f--;f)a.unshift("..");!s||""===a[0]||a[0]&&o(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function u(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var l=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=u(t),o=u(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},s=n(14);function c(e){return"/"===e.charAt(0)?e:"/"+e}function f(e){return"/"===e.charAt(0)?e.substr(1):e}function d(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 p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(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 v(e,t,n,o){var i;"string"===typeof e?(i=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===(i=Object(r.a)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(u){throw u instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):u}return n&&(i.key=n),o?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=a(i.pathname,o.pathname)):i.pathname=o.pathname:i.pathname||(i.pathname="/"),i}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function m(){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,o):n.push(o),f({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=v(e,t,d(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,f({action:r,location:o}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=w.index+e;return t>=0&&t=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(0),o=Object.prototype.hasOwnProperty;function i(){return"undefined"===typeof document||"undefined"===typeof document.visibilityState||"hidden"!==document.visibilityState}var a=new WeakMap,u=0;var l=new(function(){function e(e){void 0===e&&(e={}),this.__cache=new Map(Object.entries(e)),this.__listeners=[]}return e.prototype.get=function(e){var t=this.serializeKey(e)[0];return this.__cache.get(t)},e.prototype.set=function(e,t){var n=this.serializeKey(e)[0];this.__cache.set(n,t),this.notify()},e.prototype.keys=function(){return Array.from(this.__cache.keys())},e.prototype.has=function(e){var t=this.serializeKey(e)[0];return this.__cache.has(t)},e.prototype.clear=function(){this.__cache.clear(),this.notify()},e.prototype.delete=function(e){var t=this.serializeKey(e)[0];this.__cache.delete(t),this.notify()},e.prototype.serializeKey=function(e){var t=null;if("function"===typeof e)try{e=e()}catch(n){e=""}return Array.isArray(e)?(t=e,e=function(e){if(!e.length)return"";for(var t="arg",n=0;n-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 a=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(f).then((function(){return l.get(r)}))}return Promise.resolve(l.get(r))},C=function(e,t,n,r){var o=x[e];if(e&&o)for(var i=0;i0));return[2,Promise.all(h).then((function(){if(c)throw c;return l.get(o)}))]}if(c)throw c;return[2,s]}}))}))};p.Provider;var P=function(){for(var e=this,t=[],n=0;n=1&&(o=t[0]),t.length>2?(a=t[1],u=t[2]):"function"===typeof t[1]?a=t[1]:"object"===typeof t[1]&&(u=t[1]);var s=l.serializeKey(o),d=s[0],g=s[1],R=s[2],O=s[3];u=Object.assign({},c,Object(r.useContext)(p),u);var P=Object(r.useRef)(u);y((function(){P.current=u})),"undefined"===typeof a&&(a=u.fetcher);var A=function(){var e=l.get(d);return"undefined"===typeof e?u.initialData:e},j=A(),L=l.get(R),M=!!l.get(O),N=Object(r.useRef)({data:!1,error:!1,isValidating:!1}),I=Object(r.useRef)({data:j,error:L,isValidating:M});Object(r.useDebugValue)(I.current.data);var z=Object(r.useState)(null)[1],F=Object(r.useCallback)((function(e){var t=!1;for(var n in e)I.current[n]!==e[n]&&(I.current[n]=e[n],N.current[n]&&(t=!0));if(t||u.suspense){if(D.current)return;z({})}}),[]),D=Object(r.useRef)(!1),B=Object(r.useRef)(d),V=Object(r.useRef)({emit:function(e){for(var t,n=[],r=1;r=0&&(n[r]=n[n.length-1],n.pop())}},W=Object(r.useCallback)((function(t){return void 0===t&&(t={}),h(e,void 0,void 0,(function(){var e,n,r,o,i,s,c;return v(this,(function(f){switch(f.label){case 0:if(!d||!a)return[2,!1];if(D.current)return[2,!1];t=Object.assign({dedupe:!1},t),e=!0,n="undefined"!==typeof b[d]&&t.dedupe,f.label=1;case 1:return f.trys.push([1,6,,7]),F({isValidating:!0}),l.set(O,!0),n||C(d,I.current.data,I.current.error,!0),r=void 0,o=void 0,n?(o=w[d],[4,b[d]]):[3,3];case 2:return r=f.sent(),[3,5];case 3:return u.loadingTimeout&&!l.get(d)&&setTimeout((function(){e&&V.current.emit("onLoadingSlow",d,u)}),u.loadingTimeout),b[d]=null!==g?a.apply(void 0,g):a(d),w[d]=o=Date.now(),[4,b[d]];case 4:r=f.sent(),setTimeout((function(){delete b[d],delete w[d]}),u.dedupingInterval),V.current.emit("onSuccess",r,d,u),f.label=5;case 5:return w[d]>o||k[d]&&(o<=k[d]||o<=E[d]||0===E[d])?(F({isValidating:!1}),[2,!1]):(l.set(d,r),l.set(R,void 0),l.set(O,!1),i={isValidating:!1},"undefined"!==typeof I.current.error&&(i.error=void 0),u.compare(I.current.data,r)||(i.data=r),F(i),n||C(d,r,i.error,!1),[3,7]);case 6:return s=f.sent(),delete b[d],delete w[d],l.set(R,s),I.current.error!==s&&(F({isValidating:!1,error:s}),n||C(d,void 0,s,!1)),V.current.emit("onError",s,d,u),u.shouldRetryOnError&&(c=(t.retryCount||0)+1,V.current.emit("onErrorRetry",s,d,u,W,Object.assign({dedupe:!0},t,{retryCount:c}))),[3,7];case 7:return e=!1,[2,!0]}}))}))}),[d]);y((function(){if(d){D.current=!1;var e=I.current.data,t=A();B.current!==d&&(B.current=d),u.compare(e,t)||F({data:t});var n=function(){return W({dedupe:!0})};(u.revalidateOnMount||!u.initialData&&void 0===u.revalidateOnMount)&&("undefined"!==typeof t?m(n):n());var r=!1,o=function(){!r&&P.current.revalidateOnFocus&&(r=!0,n(),setTimeout((function(){return r=!1}),P.current.focusThrottleInterval))},i=function(){P.current.revalidateOnReconnect&&n()},a=function(e,t,r,o,i){void 0===e&&(e=!0),void 0===i&&(i=!0);var a={},l=!1;return"undefined"===typeof t||u.compare(I.current.data,t)||(a.data=t,l=!0),I.current.error!==r&&(a.error=r,l=!0),"undefined"!==typeof o&&I.current.isValidating!==o&&(a.isValidating=o,l=!0),l&&F(a),!!e&&(i?n():W())};return $(S,o),$(_,i),$(x,a),function(){F=function(){return null},D.current=!0,H(S,o),H(_,i),H(x,a)}}}),[d,W]),y((function(){var t=null;return P.current.refreshInterval&&(t=setTimeout((function n(){return h(e,void 0,void 0,(function(){return v(this,(function(e){switch(e.label){case 0:return I.current.error||!P.current.refreshWhenHidden&&!i()||!P.current.refreshWhenOffline&&!f()?[3,2]:[4,W({dedupe:!0})];case 1:e.sent(),e.label=2;case 2:return P.current.refreshInterval&&!I.current.error&&(t=setTimeout(n,P.current.refreshInterval)),[2]}}))}))}),P.current.refreshInterval)),function(){t&&clearTimeout(t)}}),[u.refreshInterval,u.refreshWhenHidden,u.refreshWhenOffline,W]);var G=Object(r.useMemo)((function(){var e={revalidate:W,mutate:U};return Object.defineProperties(e,{error:{get:function(){return N.current.error=!0,B.current===d?I.current.error:L},enumerable:!0},data:{get:function(){return N.current.data=!0,B.current===d?I.current.data:j},enumerable:!0},isValidating:{get:function(){return N.current.isValidating=!0,I.current.isValidating},enumerable:!0}}),e}),[W]);if(u.suspense){var q=l.get(d),Y=l.get(R);if("undefined"===typeof q&&(q=j),"undefined"===typeof Y&&(Y=L),"undefined"===typeof q&&"undefined"===typeof Y){if(b[d]||W(),b[d]&&"function"===typeof b[d].then)throw b[d];q=b[d]}if("undefined"===typeof q&&Y)throw Y;return{error:Y,data:q,revalidate:W,mutate:U,isValidating:I.current.isValidating}}return G};t.a=P},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",(function(){return r}))},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:d(e)?2:p(e)?3:0}function l(e,t){return 2===u(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function s(e,t){return 2===u(e)?e.get(t):e[t]}function c(e,t,n){var r=u(e);2===r?e.set(t,n):3===r?(e.delete(t),e.add(n)):e[t]=n}function f(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function d(e){return B&&e instanceof Map}function p(e){return V&&e instanceof Set}function h(e){return e.o||e.t}function v(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=q(e);delete t[W];for(var n=G(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=m),Object.freeze(e),t&&a(e,(function(e,t){return g(t,!0)}),!0))}function m(){r(2)}function y(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function b(e){var t=Y[e];return t||r(19,e),t}function w(){return F}function S(e,t){t&&(b("Patches"),e.u=[],e.s=[],e.v=t)}function _(e){x(e),e.p.forEach(E),e.p=null}function x(e){e===F&&(F=e.l)}function k(e){return F={p:[],l:F,h:e,m:!0,_:0}}function E(e){var t=e[W];0===t.i||1===t.i?t.j():t.g=!0}function R(e,t){t._=t.p.length;var n=t.p[0],o=void 0!==e&&e!==n;return t.h.O||b("ES5").S(t,e,o),o?(n[W].P&&(_(t),r(4)),i(e)&&(e=O(t,e),t.l||T(t,e)),t.u&&b("Patches").M(n[W],e,t.u,t.s)):e=O(t,n,[]),_(t),t.u&&t.v(t.u,t.s),e!==$?e:void 0}function O(e,t,n){if(y(t))return t;var r=t[W];if(!r)return a(t,(function(o,i){return C(e,r,t,o,i,n)}),!0),t;if(r.A!==e)return t;if(!r.P)return T(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var o=4===r.i||5===r.i?r.o=v(r.k):r.o;a(3===r.i?new Set(o):o,(function(t,i){return C(e,r,o,t,i,n)})),T(e,o,!1),n&&e.u&&b("Patches").R(r,n,e.u,e.s)}return r.o}function C(e,t,n,r,a,u){if(o(a)){var s=O(e,a,u&&t&&3!==t.i&&!l(t.D,r)?u.concat(r):void 0);if(c(n,r,s),!o(s))return;e.m=!1}if(i(a)&&!y(a)){if(!e.h.N&&e._<1)return;O(e,a),t&&t.A.l||T(e,a)}}function T(e,t,n){void 0===n&&(n=!1),e.h.N&&e.m&&g(t,n)}function P(e,t){var n=e[W];return(n?h(n):e)[t]}function A(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 j(e){e.P||(e.P=!0,e.l&&j(e.l))}function L(e){e.o||(e.o=v(e.t))}function M(e,t,n){var r=d(t)?b("MapSet").T(t,n):p(t)?b("MapSet").F(t,n):e.O?function(e,t){var n=Array.isArray(e),r={i:n?1:0,A:t?t.A:w(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=r,i=Q;n&&(o=[r],i=K);var a=Proxy.revocable(o,i),u=a.revoke,l=a.proxy;return r.k=l,r.j=u,l}(t,n):b("ES5").J(t,n);return(n?n.A:w()).p.push(r),r}function N(e){return o(e)||r(22,e),function e(t){if(!i(t))return t;var n,r=t[W],o=u(t);if(r){if(!r.P&&(r.i<4||!b("ES5").K(r)))return r.t;r.I=!0,n=I(t,o),r.I=!1}else n=I(t,o);return a(n,(function(t,o){r&&s(r.t,t)===o||c(n,t,e(o))})),3===o?new Set(n):n}(e)}function I(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return v(e)}var z,F,D="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),B="undefined"!=typeof Map,V="undefined"!=typeof Set,U="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,$=D?Symbol.for("immer-nothing"):((z={})["immer-nothing"]=!0,z),H=D?Symbol.for("immer-draftable"):"__$immer_draftable",W=D?Symbol.for("immer-state"):"__$immer_state",G=("undefined"!=typeof Symbol&&Symbol.iterator,"undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames),q=Object.getOwnPropertyDescriptors||function(e){var t={};return G(e).forEach((function(n){t[n]=Object.getOwnPropertyDescriptor(e,n)})),t},Y={},Q={get:function(e,t){if(t===W)return e;var n=h(e);if(!l(n,t))return function(e,t,n){var r,o=A(t,n);return o?"value"in o?o.value:null===(r=o.get)||void 0===r?void 0:r.call(e.k):void 0}(e,n,t);var r=n[t];return e.I||!i(r)?r:r===P(e.t,t)?(L(e),e.o[t]=M(e.A.h,r,e)):r},has:function(e,t){return t in h(e)},ownKeys:function(e){return Reflect.ownKeys(h(e))},set:function(e,t,n){var r=A(h(e),t);if(null==r?void 0:r.set)return r.set.call(e.k,n),!0;if(!e.P){var o=P(h(e),t),i=null==o?void 0:o[W];if(i&&i.t===n)return e.o[t]=n,e.D[t]=!1,!0;if(f(n,o)&&(void 0!==n||l(e.t,t)))return!0;L(e),j(e)}return e.o[t]=n,e.D[t]=!0,!0},deleteProperty:function(e,t){return void 0!==P(e.t,t)||t in e.t?(e.D[t]=!1,L(e),j(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var n=h(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty:function(){r(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){r(12)}},K={};a(Q,(function(e,t){K[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),K.deleteProperty=function(e,t){return Q.deleteProperty.call(this,e[0],t)},K.set=function(e,t,n){return Q.set.call(this,e[0],t,n,e[0])};var X=new(function(){function e(e){this.O=U,this.N=!1,"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),this.produce=this.produce.bind(this),this.produceWithPatches=this.produceWithPatches.bind(this)}var t=e.prototype;return t.produce=function(e,t,n){if("function"==typeof e&&"function"!=typeof t){var o=t;t=e;var a=this;return function(e){var n=this;void 0===e&&(e=o);for(var r=arguments.length,i=Array(r>1?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=b("Patches").$;return o(e)?i(e,t):this.produce(e,(function(e){return i(e,t.slice(n+1))}))},e}()),J=X.produce;X.produceWithPatches.bind(X),X.setAutoFreeze.bind(X),X.setUseProxies.bind(X),X.applyPatches.bind(X),X.createDraft.bind(X),X.finishDraft.bind(X);t.a=J},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(26);function o(e,t){if(e){if("string"===typeof e)return Object(r.a)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(r.a)(e,t):void 0}}},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+)?$/,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={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("_")},p=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},h={s:p,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+p(r,2,"0")+":"+p(o,2,"0")},m:function e(t,n){if(t.date()e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){u.headers[e]=r.merge(i)})),e.exports=u}).call(this,n(120))},function(e,t,n){"use strict";var r=n(12),o=n(122),i=n(124),a=n(46),u=n(125),l=n(128),s=n(129),c=n(50);e.exports=function(e){return new Promise((function(t,n){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"],(r.isBlob(f)||r.isFile(f))&&f.type&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",v=unescape(encodeURIComponent(e.auth.password))||"";d.Authorization="Basic "+btoa(h+":"+v)}var g=u(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),a(g,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 r="getAllResponseHeaders"in p?l(p.getAllResponseHeaders()):null,i={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:r,config:e,request:p};o(t,n,i),p=null}},p.onabort=function(){p&&(n(c("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){n(c("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(c(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var m=(e.withCredentials||s(g))&&e.xsrfCookieName?i.read(e.xsrfCookieName):void 0;m&&(d[e.xsrfHeaderName]=m)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){"undefined"===typeof 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(y){if("json"!==e.responseType)throw y}"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(),n(e),p=null)})),f||(f=null),p.send(f)}))}},function(e,t,n){"use strict";var r=n(123);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(12);e.exports=function(e,t){t=t||{};var n={},o=["url","method","data"],i=["headers","auth","proxy","params"],a=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],u=["validateStatus"];function l(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function s(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=l(void 0,e[o])):n[o]=l(e[o],t[o])}r.forEach(o,(function(e){r.isUndefined(t[e])||(n[e]=l(void 0,t[e]))})),r.forEach(i,s),r.forEach(a,(function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=l(void 0,e[o])):n[o]=l(void 0,t[o])})),r.forEach(u,(function(r){r in t?n[r]=l(e[r],t[r]):r in e&&(n[r]=l(void 0,e[r]))}));var c=o.concat(i).concat(a).concat(u),f=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===c.indexOf(e)}));return r.forEach(f,s),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";e.exports=n(143)},,,,,,function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(20),o=n(0);function i(e){var t=Object(o.useState)(e),n=t[1];return[t[0],Object(o.useCallback)((function(e){n(Object(r.a)(e))}),[])]}},function(e,t,n){var r=n(75);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},function(e,t,n){e.exports=n(115)},function(e,t,n){e.exports=function(){"use strict";return function(e,t,n){e=e||{};var r=t.prototype,o={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};n.en.relativeTime=o;var i=function(t,r,i,a){for(var u,l,s,c=i.$locale().relativeTime||o,f=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],d=f.length,p=0;p0,v<=h.r||!h.r){v<=1&&p>0&&(h=f[p-1]);var g=c[h.l];l="string"==typeof g?g.replace("%d",v):g(v,r,h.l,s);break}}return r?l:(s?c.future:c.past).replace("%s",l)};r.to=function(e,t){return i(e,t,this,!0)},r.from=function(e,t){return i(e,t,this)};var a=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(a(this),e)},r.fromNow=function(e){return this.from(a(this),e)}}}()},function(e,t,n){"use strict";(function(e){var r=n(0);function o(t){var n;n="undefined"!==typeof window?window:"undefined"!==typeof self?self:e;var r="undefined"!==typeof document&&document.attachEvent;if(!r){var o=function(){var e=n.requestAnimationFrame||n.mozRequestAnimationFrame||n.webkitRequestAnimationFrame||function(e){return n.setTimeout(e,20)};return function(t){return e(t)}}(),i=function(){var e=n.cancelAnimationFrame||n.mozCancelAnimationFrame||n.webkitCancelAnimationFrame||n.clearTimeout;return function(t){return e(t)}}(),a=function(e){var t=e.__resizeTriggers__,n=t.firstElementChild,r=t.lastElementChild,o=n.firstElementChild;r.scrollLeft=r.scrollWidth,r.scrollTop=r.scrollHeight,o.style.width=n.offsetWidth+1+"px",o.style.height=n.offsetHeight+1+"px",n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight},u=function(e){if(!(e.target.className.indexOf("contract-trigger")<0&&e.target.className.indexOf("expand-trigger")<0)){var t=this;a(this),this.__resizeRAF__&&i(this.__resizeRAF__),this.__resizeRAF__=o((function(){(function(e){return e.offsetWidth!=e.__resizeLast__.width||e.offsetHeight!=e.__resizeLast__.height})(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(n){n.call(t,e)})))}))}},l=!1,s="",c="animationstart",f="Webkit Moz O ms".split(" "),d="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),p=document.createElement("fakeelement");if(void 0!==p.style.animationName&&(l=!0),!1===l)for(var h=0;h div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',r=e.head||e.getElementsByTagName("head")[0],o=e.createElement("style");o.id="detectElementResize",o.type="text/css",null!=t&&o.setAttribute("nonce",t),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(e.createTextNode(n)),r.appendChild(o)}}(i),e.__resizeLast__={},e.__resizeListeners__=[],(e.__resizeTriggers__=i.createElement("div")).className="resize-triggers",e.__resizeTriggers__.innerHTML='
',e.appendChild(e.__resizeTriggers__),a(e),e.addEventListener("scroll",u,!0),c&&(e.__resizeTriggers__.__animationListener__=function(t){t.animationName==v&&a(e)},e.__resizeTriggers__.addEventListener(c,e.__resizeTriggers__.__animationListener__))}e.__resizeListeners__.push(o)}},removeResizeListener:function(e,t){if(r)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",u,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(c,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(n){}}}}}var i=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},a=function(){function e(e,t){for(var n=0;n=t?e.call(null):r.id=requestAnimationFrame(o)}))};return r}var d=null;function p(e){if(void 0===e&&(e=!1),null===d||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?d="positive-descending":(t.scrollLeft=1,d=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),d}return d}var h=function(e,t){return e};function v(e){var t,n,a=e.getItemOffset,s=e.getEstimatedTotalSize,d=e.getItemSize,v=e.getOffsetForIndexAndAlignment,m=e.getStartIndexForOffset,y=e.getStopIndexForStartIndex,b=e.initInstanceProps,w=e.shouldResetStyleCacheOnItemSizeChange,S=e.validateProps;return n=t=function(e){function t(t){var n;return(n=e.call(this,t)||this)._instanceProps=b(n.props,i(i(n))),n._outerRef=void 0,n._resetIsScrollingTimeoutId=null,n.state={instance:i(i(n)),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"===typeof n.props.initialScrollOffset?n.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},n._callOnItemsRendered=void 0,n._callOnItemsRendered=u((function(e,t,r,o){return n.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:r,visibleStopIndex:o})})),n._callOnScroll=void 0,n._callOnScroll=u((function(e,t,r){return n.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:r})})),n._getItemStyle=void 0,n._getItemStyle=function(e){var t,r=n.props,o=r.direction,i=r.itemSize,u=r.layout,l=n._getItemStyleCache(w&&i,w&&u,w&&o);if(l.hasOwnProperty(e))t=l[e];else{var s,c=a(n.props,e,n._instanceProps),f=d(n.props,e,n._instanceProps),p="horizontal"===o||"horizontal"===u;l[e]=((s={position:"absolute"})["rtl"===o?"right":"left"]=p?c:0,s.top=p?0:c,s.height=p?"100%":f,s.width=p?f:"100%",t=s)}return t},n._getItemStyleCache=void 0,n._getItemStyleCache=u((function(e,t,n){return{}})),n._onScrollHorizontal=function(e){var t=e.currentTarget,r=t.clientWidth,o=t.scrollLeft,i=t.scrollWidth;n.setState((function(e){if(e.scrollOffset===o)return null;var t=n.props.direction,a=o;if("rtl"===t)switch(p()){case"negative":a=-o;break;case"positive-descending":a=i-r-o}return a=Math.max(0,Math.min(a,i-r)),{isScrolling:!0,scrollDirection:e.scrollOffset0)for(var T=R;T<=O;T++)C.push(Object(l.createElement)(t,{data:d,key:v(T,d),index:T,isScrolling:w?_:void 0,style:this._getItemStyle(T)}));var P=s(this.props,this._instanceProps);return Object(l.createElement)(m||y||"div",{className:n,onScroll:k,ref:this._outerRefSetter,style:Object(r.a)({position:"relative",height:i,width:S,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},b)},Object(l.createElement)(u||c||"div",{children:C,ref:a,style:{height:x?"100%":P,pointerEvents:_?"none":void 0,width:x?P:"100%"}}))},n._callPropsCallbacks=function(){if("function"===typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],r=e[2],o=e[3];this._callOnItemsRendered(t,n,r,o)}if("function"===typeof this.props.onScroll){var i=this.state,a=i.scrollDirection,u=i.scrollOffset,l=i.scrollUpdateWasRequested;this._callOnScroll(a,u,l)}},n._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,r=this.state,o=r.isScrolling,i=r.scrollDirection,a=r.scrollOffset;if(0===t)return[0,0,0,0];var u=m(this.props,a,this._instanceProps),l=y(this.props,u,a,this._instanceProps),s=o&&"backward"!==i?1:Math.max(1,n),c=o&&"forward"!==i?1:Math.max(1,n);return[Math.max(0,u-s),Math.max(0,Math.min(t-1,l+c)),u,l]},t}(l.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},n}var g=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},m=v({getItemOffset:function(e,t){return t*e.itemSize},getItemSize:function(e,t){return e.itemSize},getEstimatedTotalSize:function(e){var t=e.itemCount;return e.itemSize*t},getOffsetForIndexAndAlignment:function(e,t,n,r){var o=e.direction,i=e.height,a=e.itemCount,u=e.itemSize,l=e.layout,s=e.width,c="horizontal"===o||"horizontal"===l?s:i,f=Math.max(0,a*u-c),d=Math.min(f,t*u),p=Math.max(0,t*u-c+u);switch("smart"===n&&(n=r>=p-c&&r<=d+c?"auto":"center"),n){case"start":return d;case"end":return p;case"center":var h=Math.round(p+(d-p)/2);return hf+Math.floor(c/2)?f:h;case"auto":default:return r>=p&&r<=d?r:r