From b2ec1506d7ba899e53dca186b3d7f2fd9fe1bf84 Mon Sep 17 00:00:00 2001 From: Sebastien L Date: Tue, 28 Dec 2021 12:43:29 -0500 Subject: [PATCH] Update build system, add cspot service option --- .github/workflows/esp-idf-v4.3-build.yml | 11 +- CMakeLists.txt | 10 +- Dockerfile | 109 +++- README.md | 16 +- components/platform_console/cmd_system.c | 39 +- .../platform_console/platform_console.c | 12 +- .../platform_console/platform_console.h | 1 + components/platform_console/presets.json | 11 + components/tools/CMakeLists.txt | 2 +- components/tools/tools.h | 9 + components/tools/trace.c | 1 + .../wifi-manager/network_manager_handlers.c | 2 + components/wifi-manager/webapp/.eslintcache | 2 +- components/wifi-manager/webapp/webapp.cmake | 6 +- components/wifi-manager/webapp/webpack.c | 30 +- components/wifi-manager/webapp/webpack.h | 62 +- .../webapp/webpack/dist/index.html | 2 +- .../webapp/webpack/dist/index.html.br | Bin 4856 -> 4877 bytes .../webapp/webpack/dist/index.html.gz | Bin 5886 -> 5893 bytes .../webpack/dist/js/index.0e064e.bundle.js.br | Bin 33434 -> 0 bytes .../webpack/dist/js/index.0e064e.bundle.js.gz | Bin 42959 -> 0 bytes ...e064e.bundle.js => index.1be2f3.bundle.js} | 4 +- .../webpack/dist/js/index.1be2f3.bundle.js.br | Bin 0 -> 33343 bytes .../webpack/dist/js/index.1be2f3.bundle.js.gz | Bin 0 -> 42961 bytes ...undle.js => node-modules.1be2f3.bundle.js} | 0 ...js.br => node-modules.1be2f3.bundle.js.br} | Bin ...js.gz => node-modules.1be2f3.bundle.js.gz} | Bin 90824 -> 90824 bytes ...64e.bundle.js => runtime.1be2f3.bundle.js} | 0 ...ndle.js.br => runtime.1be2f3.bundle.js.br} | Bin ...ndle.js.gz => runtime.1be2f3.bundle.js.gz} | Bin 722 -> 722 bytes .../webapp/webpack/dist/sprite.svg | 2 +- .../webapp/webpack/dist/sprite.svg.br | Bin 898 -> 903 bytes .../webapp/webpack/webpack.prod.js | 4 +- docker/entrypoint.sh | 6 + docker/hooks/build | 14 + docker/patches/tools/ldgen/fragments.py | 607 ++++++++++++++++++ 36 files changed, 847 insertions(+), 115 deletions(-) delete mode 100644 components/wifi-manager/webapp/webpack/dist/js/index.0e064e.bundle.js.br delete mode 100644 components/wifi-manager/webapp/webpack/dist/js/index.0e064e.bundle.js.gz rename components/wifi-manager/webapp/webpack/dist/js/{index.0e064e.bundle.js => index.1be2f3.bundle.js} (91%) create mode 100644 components/wifi-manager/webapp/webpack/dist/js/index.1be2f3.bundle.js.br create mode 100644 components/wifi-manager/webapp/webpack/dist/js/index.1be2f3.bundle.js.gz rename components/wifi-manager/webapp/webpack/dist/js/{node-modules.0e064e.bundle.js => node-modules.1be2f3.bundle.js} (100%) rename components/wifi-manager/webapp/webpack/dist/js/{node-modules.0e064e.bundle.js.br => node-modules.1be2f3.bundle.js.br} (100%) rename components/wifi-manager/webapp/webpack/dist/js/{node-modules.0e064e.bundle.js.gz => node-modules.1be2f3.bundle.js.gz} (98%) rename components/wifi-manager/webapp/webpack/dist/js/{runtime.0e064e.bundle.js => runtime.1be2f3.bundle.js} (100%) rename components/wifi-manager/webapp/webpack/dist/js/{runtime.0e064e.bundle.js.br => runtime.1be2f3.bundle.js.br} (100%) rename components/wifi-manager/webapp/webpack/dist/js/{runtime.0e064e.bundle.js.gz => runtime.1be2f3.bundle.js.gz} (90%) create mode 100644 docker/entrypoint.sh create mode 100644 docker/hooks/build create mode 100644 docker/patches/tools/ldgen/fragments.py diff --git a/.github/workflows/esp-idf-v4.3-build.yml b/.github/workflows/esp-idf-v4.3-build.yml index 1232fde0..da82acc5 100644 --- a/.github/workflows/esp-idf-v4.3-build.yml +++ b/.github/workflows/esp-idf-v4.3-build.yml @@ -53,6 +53,7 @@ jobs: branch_name="${branch_name//[^a-zA-Z0-9\-~!@_\.]/}" BUILD_NUMBER=${{ needs.job1.outputs.build_number }} echo "BUILD_NUMBER=${BUILD_NUMBER}" >> $GITHUB_ENV + echo "DOCKER_IMAGE_NAME=sle118/squeezelite-esp32-idfv4-master" >> $GITHUB_ENV tag="${TARGET_BUILD_NAME}.${{matrix.depth}}.${BUILD_NUMBER}.${branch_name}" echo "tag=${tag}" >> $GITHUB_ENV last_commit="$(git log --pretty=format:'%s' --max-count=1)" @@ -84,10 +85,12 @@ jobs: run: | env | grep "artifact\|tag\|GITHUB\|version\|NUMBER\|TARGET" >${TARGET_BUILD_NAME}-env.txt echo "${tag}" >version.txt - echo pulling docker version 4.3.1 - docker pull espressif/idf:v4.3.1 - docker info - docker run --env-file=${TARGET_BUILD_NAME}-env.txt -v $PWD:/project -w /project espressif/idf:v4.3.1 /bin/bash -c "cp build-scripts/${TARGET_BUILD_NAME}-sdkconfig.defaults sdkconfig && idf.py build -DDEPTH=${{ matrix.depth }} -DBUILD_NUMBER=${BUILD_NUMBER}-${{ matrix.depth }} && zip -r build_output.zip build && zip build/${artifact_file_name} partitions*.csv build/*.bin build/bootloader/bootloader.bin build/partition_table/partition-table.bin build/flash_project_args build/size_*.txt" + echo pulling custom docker image ${DOCKER_IMAGE_NAME} + docker pull ${DOCKER_IMAGE_NAME} + docker run --env-file=${TARGET_BUILD_NAME}-env.txt -v $PWD:/project -w /project ${DOCKER_IMAGE_NAME} /bin/bash -c "pushd components/wifi-manager/webapp/ && npm rebuild node-sass && npm run-script build && popd" + docker run --env-file=${TARGET_BUILD_NAME}-env.txt -v $PWD:/project -w /project ${DOCKER_IMAGE_NAME} /bin/bash -c "cp build-scripts/${TARGET_BUILD_NAME}-sdkconfig.defaults sdkconfig" + docker run --env-file=${TARGET_BUILD_NAME}-env.txt -v $PWD:/project -w /project ${DOCKER_IMAGE_NAME} /bin/bash -c "idf.py build -DDEPTH=${{ matrix.depth }} -DBUILD_NUMBER=${BUILD_NUMBER}-${{ matrix.depth }} + docker run --env-file=${TARGET_BUILD_NAME}-env.txt -v $PWD:/project -w /project ${DOCKER_IMAGE_NAME} /bin/bash -c "zip -r build_output.zip build && zip build/${artifact_file_name} partitions*.csv build/*.bin build/bootloader/bootloader.bin build/partition_table/partition-table.bin build/flash_project_args build/size_*.txt" # - name: Build Mock firmware # run: | # mkdir -p build diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e5af2d3..95e26107 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,10 +30,10 @@ set(PROJECT_VER $ENV{PROJECT_VER}) #target_compile_definitions(__idf_services PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) -#target_compile_definitions(__idf_esp_eth PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) -#target_compile_definitions(__idf_driver PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) -#target_compile_definitions(__idf_wifi-manager PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_INFO) -#target_compile_definitions(__idf_esp_wifi PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) +target_compile_definitions(__idf_esp_eth PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_WARN) +target_compile_definitions(__idf_driver PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_WARN) +target_compile_definitions(__idf_wifi-manager PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_WARN) +target_compile_definitions(__idf_esp_wifi PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_WARN) #target_compile_definitions(__idf_platform_console PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) #target_compile_definitions(__idf_app_recovery PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_INFO) @@ -42,7 +42,7 @@ set(PROJECT_VER $ENV{PROJECT_VER}) # target_compile_definitions(__idf_esp_netif PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) # target_compile_definitions(__idf_freertos PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) -# target_compile_definitions(__idf_bt PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) +target_compile_definitions(__idf_bt PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_ERROR) # target_compile_definitions(__idf_mdns PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) # target_compile_definitions(__idf_tcpip_adapter PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) # target_compile_definitions(__idf_tcp_transport PRIVATE -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG) diff --git a/Dockerfile b/Dockerfile index ae8eda76..3397fbea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,33 +1,92 @@ -FROM ubuntu:18.04 +FROM ubuntu:20.04 -RUN apt-get update && apt-get install -y git wget libncurses-dev flex bison gperf \ - python python-pip python-setuptools python-serial python-click \ - python-cryptography python-future python-pyparsing \ - python-pyelftools cmake ninja-build ccache libusb-1.0 -RUN mkdir /workspace -WORKDIR /workspace +ARG DEBIAN_FRONTEND=noninteractive -# Download and checkout known good esp-idf commit -RUN git clone --recursive https://github.com/espressif/esp-idf.git esp-idf -RUN cd esp-idf && git checkout 4dac7c7df885adaa86a5c79f2adeaf8d68667349 -RUN git clone https://github.com/sle118/squeezelite-esp32.git +COPY components/wifi-manager/webapp/package.json /opt -# Download GCC 5.2.0 -RUN wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz -RUN tar -xzf xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz -RUN rm xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz +# We need libpython2.7 due to GDB tools +RUN : \ + && apt-get update \ + && apt-get install -y \ + apt-utils \ + bison \ + ca-certificates \ + ccache \ + check \ + curl \ + flex \ + git \ + gperf \ + lcov \ + libffi-dev \ + libncurses-dev \ + libpython2.7 \ + libusb-1.0-0-dev \ + make \ + ninja-build \ + python3 \ + python3-pip \ + unzip \ + wget \ + xz-utils \ + zip \ + npm \ + nodejs \ + && apt-get autoremove -y \ + && rm -rf /var/lib/apt/lists/* \ + && update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \ + && python -m pip install --upgrade \ + pip \ + virtualenv \ + && cd /opt \ + && npm install -g \ + && : -RUN rm -r /workspace/squeezelite-esp32 -RUN mkdir /workspace/squeezelite-esp32 +# To build the image for a branch or a tag of IDF, pass --build-arg IDF_CLONE_BRANCH_OR_TAG=name. +# To build the image with a specific commit ID of IDF, pass --build-arg IDF_CHECKOUT_REF=commit-id. +# It is possibe to combine both, e.g.: +# IDF_CLONE_BRANCH_OR_TAG=release/vX.Y +# IDF_CHECKOUT_REF=. +# The following commit contains the ldgen fix: eab738c79e063b3d6f4c345ea5e1d4f8caef725b +# to build an image using that commit: docker build . --build-arg IDF_CHECKOUT_REF=eab738c79e063b3d6f4c345ea5e1d4f8caef725b -t sle118/squeezelite-esp32-idfv4-master +# docker build . --build-arg IDF_CHECKOUT_REF=8bf14a9238329954c7c5062eeeda569529aedf75 -t sle118/squeezelite-esp32-idfv4-master +# To run the image interactive (windows): docker run --rm -v %cd%:/project -w /project -it sle118/squeezelite-esp32-idfv4-master +# to build the web app inside of the interactive session +# pushd components/wifi-manager/webapp/ && npm rebuild node-sass && npm run-script build && popd -# Setup PATH to use esp-idf and gcc-5.2.0 -RUN touch /root/.bashrc && \ - echo export PATH="\$PATH:/workspace/xtensa-esp32-elf/bin" >> /root/.bashrc && \ - echo export IDF_PATH=/workspace/esp-idf >> /root/.bashrc +ARG IDF_CLONE_URL=https://github.com/espressif/esp-idf.git +ARG IDF_CLONE_BRANCH_OR_TAG=master +ARG IDF_CHECKOUT_REF=eab738c79e063b3d6f4c345ea5e1d4f8caef725b -# OPTIONAL: Install vim for text editing in Bash -RUN apt-get update && apt-get install -y vim +ENV IDF_PATH=/opt/esp/idf +ENV IDF_TOOLS_PATH=/opt/esp -WORKDIR /workspace/squeezelite-esp32 -CMD ["bash"] +RUN echo IDF_CHECKOUT_REF=$IDF_CHECKOUT_REF IDF_CLONE_BRANCH_OR_TAG=$IDF_CLONE_BRANCH_OR_TAG && \ + git clone --recursive \ + ${IDF_CLONE_BRANCH_OR_TAG:+-b $IDF_CLONE_BRANCH_OR_TAG} \ + $IDF_CLONE_URL $IDF_PATH && \ + if [ -n "$IDF_CHECKOUT_REF" ]; then \ + cd $IDF_PATH && \ + git checkout $IDF_CHECKOUT_REF && \ + git submodule update --init --recursive; \ + fi +COPY docker/patches $IDF_PATH + + + +# Install all the required tools +RUN : \ + && update-ca-certificates --fresh \ + && $IDF_PATH/tools/idf_tools.py --non-interactive install required \ + && $IDF_PATH/tools/idf_tools.py --non-interactive install cmake \ + && $IDF_PATH/tools/idf_tools.py --non-interactive install-python-env \ + && rm -rf $IDF_TOOLS_PATH/dist \ + && : + +# Ccache is installed, enable it by default +ENV IDF_CCACHE_ENABLE=1 +COPY docker/entrypoint.sh /opt/esp/entrypoint.sh + +ENTRYPOINT [ "/opt/esp/entrypoint.sh" ] +CMD [ "/bin/bash" ] diff --git a/README.md b/README.md index 7f03f092..5bda7466 100644 --- a/README.md +++ b/README.md @@ -475,17 +475,19 @@ See squeezlite command line, but keys options are # Building everything yourself ## Setting up ESP-IDF ### Docker -You can use docker to build squeezelite-esp32 (optional) -First you need to build the Docker container: +A simple alternative to building the project's binaries is to leverage the same docker image that is being used on the GitHub Actions to build our releases. The instructions below assume that you have cloned the squeezelite-esp32 code that you want to build locally and that you have opened a command line/bash session in the folder that contains the code. +Pull the most recent docker image for the environment: ``` -docker build -t esp-idf . +docker pull sle118/squeezelite-esp32-idfv4-master ``` -Then you need to run the container: +Then run the container interactively : ``` -docker run -i -t -v `pwd`:/workspace/squeezelite-esp32 esp-idf +for windows: +docker run -v %cd%:/project -w /project -it sle118/squeezelite-esp32-idfv4-master +for linux: +docker run -it -v `pwd`:/workspace/squeezelite-esp32 sle118/squeezelite-esp32-idfv4-master ``` -The above command will mount this repo into the docker container and start a bash terminal -for you to then follow the below build steps +The above command will mount this repo into the docker container and start a bash terminal. From there, simply run idf.py build to build, etc. Note that at the time of writing these lines, flashing is not possible for docker running under windows https://github.com/docker/for-win/issues/1018. ### Manual Install of ESP-IDF You can install IDF manually on Linux or Windows (using the Subsystem for Linux) following the instructions at: https://www.instructables.com/id/ESP32-Development-on-Windows-Subsystem-for-Linux/ or see here https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html for a direct install. diff --git a/components/platform_console/cmd_system.c b/components/platform_console/cmd_system.c index 4dac6206..cb257b78 100644 --- a/components/platform_console/cmd_system.c +++ b/components/platform_console/cmd_system.c @@ -48,9 +48,13 @@ EXT_RAM_ATTR static struct { struct arg_end *end; } name_args; EXT_RAM_ATTR static struct { + #if CONFIG_CSPOT_SINK + struct arg_lit *cspot; + #endif struct arg_lit *btspeaker; struct arg_lit *airplay; struct arg_str *telnet; + #if WITH_TASKS_INFO struct arg_lit *stats; #endif @@ -687,6 +691,9 @@ static int do_set_services(int argc, char **argv) nerrors += enable_disable(f,"enable_airplay",set_services_args.airplay); nerrors += enable_disable(f,"enable_bt_sink",set_services_args.btspeaker); + #if CONFIG_CSPOT_SINK + nerrors += enable_disable(f,"enable_cspot",set_services_args.cspot); + #endif if(set_services_args.telnet->count>0){ if(strcasecmp(set_services_args.telnet->sval[0],"Disabled") == 0){ @@ -737,37 +744,37 @@ cJSON * configure_wifi_cb(){ cJSON * set_services_cb(){ cJSON * values = cJSON_CreateObject(); char * p=NULL; - if ((p = config_alloc_get(NVS_TYPE_STR, "enable_bt_sink")) != NULL) { - cJSON_AddBoolToObject(values,"BT_Speaker",strcmp(p,"1") == 0 || strcasecmp(p,"y") == 0); - FREE_AND_NULL(p); - } - if ((p = config_alloc_get(NVS_TYPE_STR, "enable_airplay")) != NULL) { - cJSON_AddBoolToObject(values,"AirPlay",strcmp(p,"1") == 0 || strcasecmp(p,"y") == 0); - FREE_AND_NULL(p); - } + console_set_bool_parameter(values,"enable_bt_sink",set_services_args.btspeaker); + console_set_bool_parameter(values,"enable_airplay",set_services_args.airplay); + #if CONFIG_CSPOT_SINK + console_set_bool_parameter(values,"enable_cspot",set_services_args.cspot); + #endif + #if WITH_TASKS_INFO + console_set_bool_parameter(values,"stats",set_services_args.stats); + #endif + if ((p = config_alloc_get(NVS_TYPE_STR, "telnet_enable")) != NULL) { if(strcasestr("YX",p)!=NULL){ - cJSON_AddStringToObject(values,"telnet","Telnet Only"); + cJSON_AddStringToObject(values,set_services_args.telnet->hdr.longopts,"Telnet Only"); } else if(strcasestr("D",p)!=NULL){ - cJSON_AddStringToObject(values,"telnet","Telnet and Serial"); + cJSON_AddStringToObject(values,set_services_args.telnet->hdr.longopts,"Telnet and Serial"); } else { - cJSON_AddStringToObject(values,"telnet","Disabled"); + cJSON_AddStringToObject(values,set_services_args.telnet->hdr.longopts,"Disabled"); } FREE_AND_NULL(p); } -#if WITH_TASKS_INFO - if((p = config_alloc_get_default(NVS_TYPE_STR, "stats", "n", 0))!=NULL){ - cJSON_AddBoolToObject(values,"stats",(*p == '1' || *p == 'Y' || *p == 'y')) ; - } -#endif + return values; } static void register_set_services(){ set_services_args.airplay = arg_lit0(NULL, "AirPlay", "AirPlay"); + #if CONFIG_CSPOT_SINK + set_services_args.cspot = arg_lit0(NULL, "cspot", "Spotify (cspot)"); + #endif set_services_args.btspeaker = arg_lit0(NULL, "BT_Speaker", "Bluetooth Speaker"); set_services_args.telnet= arg_str0("t", "telnet","Disabled|Telnet Only|Telnet and Serial","Telnet server. Use only for troubleshooting"); #if WITH_TASKS_INFO diff --git a/components/platform_console/platform_console.c b/components/platform_console/platform_console.c index 61ad40ce..a0d1f506 100644 --- a/components/platform_console/platform_console.c +++ b/components/platform_console/platform_console.c @@ -83,7 +83,17 @@ cJSON * get_cmd_list(){ } return list; } - +void console_set_bool_parameter(cJSON * root,char * nvs_name, struct arg_lit *arg){ + char * p=NULL; + if(!root) { + ESP_LOGE(TAG,"Invalid json parameter. Cannot set %s from %s",arg->hdr.longopts?arg->hdr.longopts:arg->hdr.glossary,nvs_name); + return; + } + if ((p = config_alloc_get(NVS_TYPE_STR, nvs_name)) != NULL) { + cJSON_AddBoolToObject(root,arg->hdr.longopts,strcmp(p,"1") == 0 || strcasecmp(p,"y") == 0); + FREE_AND_NULL(p); + } +} struct arg_end *getParmsEnd(struct arg_hdr * * argtable){ if(!argtable) return NULL; struct arg_hdr * *table = (struct arg_hdr * *)argtable; diff --git a/components/platform_console/platform_console.h b/components/platform_console/platform_console.h index 527591f9..e82669b5 100644 --- a/components/platform_console/platform_console.h +++ b/components/platform_console/platform_console.h @@ -22,6 +22,7 @@ typedef cJSON * parm_values_fn_t(void); esp_err_t cmd_to_json(const esp_console_cmd_t *cmd); esp_err_t cmd_to_json_with_cb(const esp_console_cmd_t *cmd, parm_values_fn_t parm_values_fn); int arg_parse_msg(int argc, char **argv, struct arg_hdr ** args); +void console_set_bool_parameter(cJSON * root,char * nvs_name, struct arg_lit *arg); cJSON * get_cmd_list(); #ifdef __cplusplus } diff --git a/components/platform_console/presets.json b/components/platform_console/presets.json index 329b833e..cf7bcd6d 100644 --- a/components/platform_console/presets.json +++ b/components/platform_console/presets.json @@ -36,6 +36,17 @@ } ] }, + +{ + "name": "Squeezeamp", + "config": [ + {"batt_config": "channel=7,scale=20.24"}, + {"dac_config": "model=TAS57xx,bck=33,ws=25,do=32,sda=27,scl=26,mute=14:0"}, + {"dac_controlset": ""}, + {"set_GPIO": "12=green,13=red,34=jack,2=spkfault"}, + {"spdif_config": "bck=33,ws=25,do=15"} + ] +}, { "name": "T-WATCH2020 by LilyGo", "config": [ diff --git a/components/tools/CMakeLists.txt b/components/tools/CMakeLists.txt index 14dad4c6..33b3491e 100644 --- a/components/tools/CMakeLists.txt +++ b/components/tools/CMakeLists.txt @@ -1,4 +1,4 @@ -idf_component_register(SRCS operator.cpp tools.c +idf_component_register(SRCS operator.cpp tools.c trace.c REQUIRES esp_common pthread INCLUDE_DIRS . ) diff --git a/components/tools/tools.h b/components/tools/tools.h index 785d22e0..f5a3f7e7 100644 --- a/components/tools/tools.h +++ b/components/tools/tools.h @@ -32,6 +32,15 @@ extern "C" { #define ESP_LOG_DEBUG_EVENT(tag,e) ESP_LOGD(tag,"evt: " e) +#ifdef ENABLE_MEMTRACE +void memtrace_print_delta(const char * msg, const char * tag, const char * function); +#define MEMTRACE_PRINT_DELTA() memtrace_print_delta(NULL,TAG,__FUNCTION__); +#define MEMTRACE_PRINT_DELTA_MESSAGE(x) memtrace_print_delta(x,TAG,__FUNCTION__); +#else +#define MEMTRACE_PRINT_DELTA() +#define MEMTRACE_PRINT_DELTA_MESSAGE(x) ESP_LOGD(TAG,"%s",x); +#endif + #ifndef FREE_AND_NULL #define FREE_AND_NULL(x) if(x) { free(x); x=NULL; } #endif diff --git a/components/tools/trace.c b/components/tools/trace.c index 0b479eb1..1d80419b 100644 --- a/components/tools/trace.c +++ b/components/tools/trace.c @@ -10,6 +10,7 @@ #include "freertos/task.h" #include "esp_event.h" #include "trace.h" +#include "tools.h" static const char TAG[] = "TRACE"; diff --git a/components/wifi-manager/network_manager_handlers.c b/components/wifi-manager/network_manager_handlers.c index e888c228..22e3103b 100644 --- a/components/wifi-manager/network_manager_handlers.c +++ b/components/wifi-manager/network_manager_handlers.c @@ -165,7 +165,9 @@ static state_machine_result_t handle_global_event(state_machine_t* state_machine switch (net_sm->Machine.Event) { case EN_UPDATE_STATUS: // handle the event, but don't swicth + MEMTRACE_PRINT_DELTA_MESSAGE("handle EN_UPDATE_STATUS - start"); network_status_update_basic_info(); + MEMTRACE_PRINT_DELTA_MESSAGE("handle EN_UPDATE_STATUS - end"); return EVENT_HANDLED; /* code */ break; diff --git a/components/wifi-manager/webapp/.eslintcache b/components/wifi-manager/webapp/.eslintcache index 4490b73c..dff990fa 100644 --- a/components/wifi-manager/webapp/.eslintcache +++ b/components/wifi-manager/webapp/.eslintcache @@ -1 +1 @@ -[{"/Users/mh/SynologyDrive/git/squeezelite-esp32/components/wifi-manager/webapp/src/js/custom.js":"1"},{"size":59815,"mtime":1618633783112,"results":"2","hashOfConfig":"3"},{"filePath":"4","messages":"5","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"15w6qa4","/Users/mh/SynologyDrive/git/squeezelite-esp32/components/wifi-manager/webapp/src/js/custom.js",[]] \ No newline at end of file +[{"/project/components/wifi-manager/webapp/src/js/custom.js":"1"},{"size":61745,"mtime":1638897104015,"results":"2","hashOfConfig":"3"},{"filePath":"4","messages":"5","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"mubdvi","/project/components/wifi-manager/webapp/src/js/custom.js",[]] \ No newline at end of file diff --git a/components/wifi-manager/webapp/webapp.cmake b/components/wifi-manager/webapp/webapp.cmake index 21eb09a7..d95a3d70 100644 --- a/components/wifi-manager/webapp/webapp.cmake +++ b/components/wifi-manager/webapp/webapp.cmake @@ -1,5 +1,5 @@ target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/favicon-32x32.png BINARY) target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/index.html.gz BINARY) -target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/index.0e064e.bundle.js.gz BINARY) -target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/node-modules.0e064e.bundle.js.gz BINARY) -target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/runtime.0e064e.bundle.js.gz BINARY) +target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/index.1be2f3.bundle.js.gz BINARY) +target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/node-modules.1be2f3.bundle.js.gz BINARY) +target_add_binary_data( __idf_wifi-manager ./webapp/webpack/dist/js/runtime.1be2f3.bundle.js.gz BINARY) diff --git a/components/wifi-manager/webapp/webpack.c b/components/wifi-manager/webapp/webpack.c index 1b39836b..81df9e15 100644 --- a/components/wifi-manager/webapp/webpack.c +++ b/components/wifi-manager/webapp/webpack.c @@ -4,31 +4,31 @@ extern const uint8_t _favicon_32x32_png_start[] asm("_binary_favicon_32x32_png_s extern const uint8_t _favicon_32x32_png_end[] asm("_binary_favicon_32x32_png_end"); extern const uint8_t _index_html_gz_start[] asm("_binary_index_html_gz_start"); extern const uint8_t _index_html_gz_end[] asm("_binary_index_html_gz_end"); -extern const uint8_t _index_0e064e_bundle_js_gz_start[] asm("_binary_index_0e064e_bundle_js_gz_start"); -extern const uint8_t _index_0e064e_bundle_js_gz_end[] asm("_binary_index_0e064e_bundle_js_gz_end"); -extern const uint8_t _node_modules_0e064e_bundle_js_gz_start[] asm("_binary_node_modules_0e064e_bundle_js_gz_start"); -extern const uint8_t _node_modules_0e064e_bundle_js_gz_end[] asm("_binary_node_modules_0e064e_bundle_js_gz_end"); -extern const uint8_t _runtime_0e064e_bundle_js_gz_start[] asm("_binary_runtime_0e064e_bundle_js_gz_start"); -extern const uint8_t _runtime_0e064e_bundle_js_gz_end[] asm("_binary_runtime_0e064e_bundle_js_gz_end"); +extern const uint8_t _index_1be2f3_bundle_js_gz_start[] asm("_binary_index_1be2f3_bundle_js_gz_start"); +extern const uint8_t _index_1be2f3_bundle_js_gz_end[] asm("_binary_index_1be2f3_bundle_js_gz_end"); +extern const uint8_t _node_modules_1be2f3_bundle_js_gz_start[] asm("_binary_node_modules_1be2f3_bundle_js_gz_start"); +extern const uint8_t _node_modules_1be2f3_bundle_js_gz_end[] asm("_binary_node_modules_1be2f3_bundle_js_gz_end"); +extern const uint8_t _runtime_1be2f3_bundle_js_gz_start[] asm("_binary_runtime_1be2f3_bundle_js_gz_start"); +extern const uint8_t _runtime_1be2f3_bundle_js_gz_end[] asm("_binary_runtime_1be2f3_bundle_js_gz_end"); const char * resource_lookups[] = { "/favicon-32x32.png", "/index.html.gz", - "/js/index.0e064e.bundle.js.gz", - "/js/node-modules.0e064e.bundle.js.gz", - "/js/runtime.0e064e.bundle.js.gz", + "/js/index.1be2f3.bundle.js.gz", + "/js/node-modules.1be2f3.bundle.js.gz", + "/js/runtime.1be2f3.bundle.js.gz", "" }; const uint8_t * resource_map_start[] = { _favicon_32x32_png_start, _index_html_gz_start, - _index_0e064e_bundle_js_gz_start, - _node_modules_0e064e_bundle_js_gz_start, - _runtime_0e064e_bundle_js_gz_start + _index_1be2f3_bundle_js_gz_start, + _node_modules_1be2f3_bundle_js_gz_start, + _runtime_1be2f3_bundle_js_gz_start }; const uint8_t * resource_map_end[] = { _favicon_32x32_png_end, _index_html_gz_end, - _index_0e064e_bundle_js_gz_end, - _node_modules_0e064e_bundle_js_gz_end, - _runtime_0e064e_bundle_js_gz_end + _index_1be2f3_bundle_js_gz_end, + _node_modules_1be2f3_bundle_js_gz_end, + _runtime_1be2f3_bundle_js_gz_end }; diff --git a/components/wifi-manager/webapp/webpack.h b/components/wifi-manager/webapp/webpack.h index 0a64a377..ebbdac44 100644 --- a/components/wifi-manager/webapp/webpack.h +++ b/components/wifi-manager/webapp/webpack.h @@ -1,40 +1,40 @@ /*********************************** webpack_headers -Hash: 0e064eadc7c8b7881633 +Hash: 1be2f373b8e586c66ebe Version: webpack 4.46.0 -Time: 9582ms -Built at: 2021-07-09 11 h 14 min 41 s +Time: 59080ms +Built at: 12/28/2021 5:04:54 PM Asset Size Chunks Chunk Names - ./js/index.0e064e.bundle.js 232 KiB 0 [emitted] [immutable] index - ./js/index.0e064e.bundle.js.br 32.7 KiB [emitted] - ./js/index.0e064e.bundle.js.gz 42 KiB [emitted] - ./js/node-modules.0e064e.bundle.js 266 KiB 1 [emitted] [immutable] [big] node-modules -./js/node-modules.0e064e.bundle.js.br 76.3 KiB [emitted] -./js/node-modules.0e064e.bundle.js.gz 88.7 KiB [emitted] - ./js/runtime.0e064e.bundle.js 1.46 KiB 2 [emitted] [immutable] runtime - ./js/runtime.0e064e.bundle.js.br 644 bytes [emitted] - ./js/runtime.0e064e.bundle.js.gz 722 bytes [emitted] + ./js/index.1be2f3.bundle.js 232 KiB 0 [emitted] [immutable] index + ./js/index.1be2f3.bundle.js.br 32.6 KiB [emitted] + ./js/index.1be2f3.bundle.js.gz 42 KiB [emitted] + ./js/node-modules.1be2f3.bundle.js 266 KiB 1 [emitted] [immutable] [big] node-modules +./js/node-modules.1be2f3.bundle.js.br 76.3 KiB [emitted] +./js/node-modules.1be2f3.bundle.js.gz 88.7 KiB [emitted] + ./js/runtime.1be2f3.bundle.js 1.46 KiB 2 [emitted] [immutable] runtime + ./js/runtime.1be2f3.bundle.js.br 644 bytes [emitted] + ./js/runtime.1be2f3.bundle.js.gz 722 bytes [emitted] favicon-32x32.png 634 bytes [emitted] index.html 21.7 KiB [emitted] - index.html.br 4.74 KiB [emitted] + index.html.br 4.76 KiB [emitted] index.html.gz 5.75 KiB [emitted] sprite.svg 4.4 KiB [emitted] - sprite.svg.br 898 bytes [emitted] -Entrypoint index [big] = ./js/runtime.0e064e.bundle.js ./js/node-modules.0e064e.bundle.js ./js/index.0e064e.bundle.js + sprite.svg.br 903 bytes [emitted] +Entrypoint index [big] = ./js/runtime.1be2f3.bundle.js ./js/node-modules.1be2f3.bundle.js ./js/index.1be2f3.bundle.js [6] ./node_modules/bootstrap/dist/js/bootstrap-exposed.js 437 bytes {1} [built] [11] ./src/sass/main.scss 1.55 KiB {0} [built] -[16] ./node_modules/remixicon/icons/Device/signal-wifi-fill.svg 340 bytes {1} [built] -[17] ./node_modules/remixicon/icons/Device/signal-wifi-3-fill.svg 344 bytes {1} [built] -[18] ./node_modules/remixicon/icons/Device/signal-wifi-2-fill.svg 344 bytes {1} [built] -[19] ./node_modules/remixicon/icons/Device/signal-wifi-1-fill.svg 344 bytes {1} [built] -[20] ./node_modules/remixicon/icons/Device/signal-wifi-line.svg 340 bytes {1} [built] -[21] ./node_modules/remixicon/icons/Device/battery-line.svg 332 bytes {1} [built] -[22] ./node_modules/remixicon/icons/Device/battery-low-line.svg 340 bytes {1} [built] -[23] ./node_modules/remixicon/icons/Device/battery-fill.svg 332 bytes {1} [built] -[24] ./node_modules/remixicon/icons/Media/headphone-fill.svg 335 bytes {1} [built] -[25] ./node_modules/remixicon/icons/Device/device-recover-fill.svg 346 bytes {1} [built] -[26] ./node_modules/remixicon/icons/Device/bluetooth-fill.svg 336 bytes {1} [built] -[27] ./node_modules/remixicon/icons/Device/bluetooth-connect-fill.svg 352 bytes {1} [built] +[16] ./node_modules/remixicon/icons/Device/signal-wifi-fill.svg 286 bytes {1} [built] +[17] ./node_modules/remixicon/icons/Device/signal-wifi-3-fill.svg 290 bytes {1} [built] +[18] ./node_modules/remixicon/icons/Device/signal-wifi-2-fill.svg 290 bytes {1} [built] +[19] ./node_modules/remixicon/icons/Device/signal-wifi-1-fill.svg 290 bytes {1} [built] +[20] ./node_modules/remixicon/icons/Device/signal-wifi-line.svg 286 bytes {1} [built] +[21] ./node_modules/remixicon/icons/Device/battery-line.svg 278 bytes {1} [built] +[22] ./node_modules/remixicon/icons/Device/battery-low-line.svg 286 bytes {1} [built] +[23] ./node_modules/remixicon/icons/Device/battery-fill.svg 278 bytes {1} [built] +[24] ./node_modules/remixicon/icons/Media/headphone-fill.svg 281 bytes {1} [built] +[25] ./node_modules/remixicon/icons/Device/device-recover-fill.svg 292 bytes {1} [built] +[26] ./node_modules/remixicon/icons/Device/bluetooth-fill.svg 282 bytes {1} [built] +[27] ./node_modules/remixicon/icons/Device/bluetooth-connect-fill.svg 298 bytes {1} [built] [38] ./src/index.ts + 1 modules 62.6 KiB {0} [built] | ./src/index.ts 1.4 KiB [built] | ./src/js/custom.js 61 KiB [built] @@ -43,14 +43,14 @@ Entrypoint index [big] = ./js/runtime.0e064e.bundle.js ./js/node-modules.0e064e. WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB). This can impact web performance. Assets: - ./js/node-modules.0e064e.bundle.js (266 KiB) + ./js/node-modules.1be2f3.bundle.js (266 KiB) WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance. Entrypoints: index (499 KiB) - ./js/runtime.0e064e.bundle.js - ./js/node-modules.0e064e.bundle.js - ./js/index.0e064e.bundle.js + ./js/runtime.1be2f3.bundle.js + ./js/node-modules.1be2f3.bundle.js + ./js/index.1be2f3.bundle.js WARNING in webpack performance recommendations: diff --git a/components/wifi-manager/webapp/webpack/dist/index.html b/components/wifi-manager/webapp/webpack/dist/index.html index 10396c2e..d61b0b69 100644 --- a/components/wifi-manager/webapp/webpack/dist/index.html +++ b/components/wifi-manager/webapp/webpack/dist/index.html @@ -1 +1 @@ -SqueezeESP32
Software Updates
VersionDate/TimePlatformBranchBit Depth
Local Firmware Upload
KeyValue
Usage Templates
Output
WiFi Status
JoinedNameSignalSecurity
Logs
TimestampMessage
Tasks
#Task NameCPUStateMin StackBase PriorityCur Priority
Credits

squeezelite-esp32
© 2020, philippe44, sle118, daduke
This software is released under the MIT License.

This app would not be possible without the following libraries:

  • squeezelite, © 2012-2019, Adrian Smith and Ralph Irving. Licensed under the GPL License.
  • esp32-wifi-manager, © 2017-2019, Tony Pottier. Licensed under the MIT License.
  • SpinKit, © 2015, Tobias Ahlin. Licensed under the MIT License.
  • jQuery, The jQuery Foundation. Licensed under the MIT License.
  • cJSON, © 2009-2017, Dave Gamble and cJSON contributors. Licensed under the MIT License.
  • esp32-rotary-encoder, © 2011-2019, David Antliff and Ben Buxton. Licensed under the GPL License.
  • tarablessd1306, © 2017-2018, Tara Keeling. Licensed under the MIT license.
  • CSpot, © 2020, feelfreelinux & alufers. Licensed under the GPL License.
Extras/Overrides
\ No newline at end of file +SqueezeESP32
Software Updates
VersionDate/TimePlatformBranchBit Depth
Local Firmware Upload
KeyValue
Usage Templates
Output
WiFi Status
JoinedNameSignalSecurity
Logs
TimestampMessage
Tasks
#Task NameCPUStateMin StackBase PriorityCur Priority
Credits

squeezelite-esp32
© 2020, philippe44, sle118, daduke
This software is released under the MIT License.

This app would not be possible without the following libraries:

  • squeezelite, © 2012-2019, Adrian Smith and Ralph Irving. Licensed under the GPL License.
  • esp32-wifi-manager, © 2017-2019, Tony Pottier. Licensed under the MIT License.
  • SpinKit, © 2015, Tobias Ahlin. Licensed under the MIT License.
  • jQuery, The jQuery Foundation. Licensed under the MIT License.
  • cJSON, © 2009-2017, Dave Gamble and cJSON contributors. Licensed under the MIT License.
  • esp32-rotary-encoder, © 2011-2019, David Antliff and Ben Buxton. Licensed under the GPL License.
  • tarablessd1306, © 2017-2018, Tara Keeling. Licensed under the MIT license.
Extras/Overrides
\ No newline at end of file diff --git a/components/wifi-manager/webapp/webpack/dist/index.html.br b/components/wifi-manager/webapp/webpack/dist/index.html.br index eb321dafa737cab8572dfd50bc8e9572f9781587..6c9a55d59743de6ac670cad86f1f2fee52e6342f 100644 GIT binary patch literal 4877 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 literal 4856 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 literal 5886 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 diff --git a/components/wifi-manager/webapp/webpack/dist/js/index.0e064e.bundle.js.gz b/components/wifi-manager/webapp/webpack/dist/js/index.0e064e.bundle.js.gz deleted file mode 100644 index 3b3c521ebdf9ef7bbb7dcf4ac4235b4312fb38a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42959 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 code {\n color: inherit; }\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #222;\n border-radius: 0.2rem; }\n kbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700; }\n\npre {\n display: block;\n font-size: 87.5%;\n color: inherit; }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal; }\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto; }\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px; } }\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px; } }\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px; } }\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px; } }\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px; }\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0; }\n .no-gutters > .col,\n .no-gutters > [class*="col-"] {\n padding-right: 0;\n padding-left: 0; }\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px; }\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.row-cols-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n\n.row-cols-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n\n.col-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n\n.col-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.col-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.col-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.col-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n\n.col-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n\n.col-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n\n.col-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.order-first {\n order: -1; }\n\n.order-last {\n order: 13; }\n\n.order-0 {\n order: 0; }\n\n.order-1 {\n order: 1; }\n\n.order-2 {\n order: 2; }\n\n.order-3 {\n order: 3; }\n\n.order-4 {\n order: 4; }\n\n.order-5 {\n order: 5; }\n\n.order-6 {\n order: 6; }\n\n.order-7 {\n order: 7; }\n\n.order-8 {\n order: 8; }\n\n.order-9 {\n order: 9; }\n\n.order-10 {\n order: 10; }\n\n.order-11 {\n order: 11; }\n\n.order-12 {\n order: 12; }\n\n.offset-1 {\n margin-left: 8.33333%; }\n\n.offset-2 {\n margin-left: 16.66667%; }\n\n.offset-3 {\n margin-left: 25%; }\n\n.offset-4 {\n margin-left: 33.33333%; }\n\n.offset-5 {\n margin-left: 41.66667%; }\n\n.offset-6 {\n margin-left: 50%; }\n\n.offset-7 {\n margin-left: 58.33333%; }\n\n.offset-8 {\n margin-left: 66.66667%; }\n\n.offset-9 {\n margin-left: 75%; }\n\n.offset-10 {\n margin-left: 83.33333%; }\n\n.offset-11 {\n margin-left: 91.66667%; }\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-sm-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-sm-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-sm-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-sm-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-sm-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-sm-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-sm-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-sm-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-sm-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-sm-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-sm-first {\n order: -1; }\n .order-sm-last {\n order: 13; }\n .order-sm-0 {\n order: 0; }\n .order-sm-1 {\n order: 1; }\n .order-sm-2 {\n order: 2; }\n .order-sm-3 {\n order: 3; }\n .order-sm-4 {\n order: 4; }\n .order-sm-5 {\n order: 5; }\n .order-sm-6 {\n order: 6; }\n .order-sm-7 {\n order: 7; }\n .order-sm-8 {\n order: 8; }\n .order-sm-9 {\n order: 9; }\n .order-sm-10 {\n order: 10; }\n .order-sm-11 {\n order: 11; }\n .order-sm-12 {\n order: 12; }\n .offset-sm-0 {\n margin-left: 0; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-md-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-md-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-md-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-md-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-md-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-md-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-md-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-md-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-md-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-md-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-md-first {\n order: -1; }\n .order-md-last {\n order: 13; }\n .order-md-0 {\n order: 0; }\n .order-md-1 {\n order: 1; }\n .order-md-2 {\n order: 2; }\n .order-md-3 {\n order: 3; }\n .order-md-4 {\n order: 4; }\n .order-md-5 {\n order: 5; }\n .order-md-6 {\n order: 6; }\n .order-md-7 {\n order: 7; }\n .order-md-8 {\n order: 8; }\n .order-md-9 {\n order: 9; }\n .order-md-10 {\n order: 10; }\n .order-md-11 {\n order: 11; }\n .order-md-12 {\n order: 12; }\n .offset-md-0 {\n margin-left: 0; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-lg-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-lg-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-lg-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-lg-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-lg-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-lg-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-lg-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-lg-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-lg-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-lg-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-lg-first {\n order: -1; }\n .order-lg-last {\n order: 13; }\n .order-lg-0 {\n order: 0; }\n .order-lg-1 {\n order: 1; }\n .order-lg-2 {\n order: 2; }\n .order-lg-3 {\n order: 3; }\n .order-lg-4 {\n order: 4; }\n .order-lg-5 {\n order: 5; }\n .order-lg-6 {\n order: 6; }\n .order-lg-7 {\n order: 7; }\n .order-lg-8 {\n order: 8; }\n .order-lg-9 {\n order: 9; }\n .order-lg-10 {\n order: 10; }\n .order-lg-11 {\n order: 11; }\n .order-lg-12 {\n order: 12; }\n .offset-lg-0 {\n margin-left: 0; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-xl-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-xl-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-xl-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-xl-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-xl-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-xl-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-xl-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-xl-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-xl-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-xl-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-xl-first {\n order: -1; }\n .order-xl-last {\n order: 13; }\n .order-xl-0 {\n order: 0; }\n .order-xl-1 {\n order: 1; }\n .order-xl-2 {\n order: 2; }\n .order-xl-3 {\n order: 3; }\n .order-xl-4 {\n order: 4; }\n .order-xl-5 {\n order: 5; }\n .order-xl-6 {\n order: 6; }\n .order-xl-7 {\n order: 7; }\n .order-xl-8 {\n order: 8; }\n .order-xl-9 {\n order: 9; }\n .order-xl-10 {\n order: 10; }\n .order-xl-11 {\n order: 11; }\n .order-xl-12 {\n order: 12; }\n .offset-xl-0 {\n margin-left: 0; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; } }\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #fff; }\n .table th,\n .table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #444; }\n .table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #444; }\n .table tbody + tbody {\n border-top: 2px solid #444; }\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem; }\n\n.table-bordered {\n border: 1px solid #444; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #444; }\n .table-bordered thead th,\n .table-bordered thead td {\n border-bottom-width: 2px; }\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0; }\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: #303030; }\n\n.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #c7d1db; }\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #97a9bc; }\n\n.table-hover .table-primary:hover {\n background-color: #b7c4d1; }\n .table-hover .table-primary:hover > td,\n .table-hover .table-primary:hover > th {\n background-color: #b7c4d1; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #cbcbcb; }\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #9e9e9e; }\n\n.table-hover .table-secondary:hover {\n background-color: #bebebe; }\n .table-hover .table-secondary:hover > td,\n .table-hover .table-secondary:hover > th {\n background-color: #bebebe; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #b8ecdf; }\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #7adcc3; }\n\n.table-hover .table-success:hover {\n background-color: #a4e7d6; }\n .table-hover .table-success:hover > td,\n .table-hover .table-success:hover > th {\n background-color: #a4e7d6; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #c6e2f5; }\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #95c9ec; }\n\n.table-hover .table-info:hover {\n background-color: #b0d7f1; }\n .table-hover .table-info:hover > td,\n .table-hover .table-info:hover > th {\n background-color: #b0d7f1; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #fce3bd; }\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #f9cc84; }\n\n.table-hover .table-warning:hover {\n background-color: #fbd9a5; }\n .table-hover .table-warning:hover > td,\n .table-hover .table-warning:hover > th {\n background-color: #fbd9a5; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f8cdc8; }\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #f3a29a; }\n\n.table-hover .table-danger:hover {\n background-color: #f5b8b1; }\n .table-hover .table-danger:hover > td,\n .table-hover .table-danger:hover > th {\n background-color: #f5b8b1; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #e8eaed; }\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #d4d9dd; }\n\n.table-hover .table-light:hover {\n background-color: #dadde2; }\n .table-hover .table-light:hover > td,\n .table-hover .table-light:hover > th {\n background-color: #dadde2; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c5c5c5; }\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #939393; }\n\n.table-hover .table-dark:hover {\n background-color: #b8b8b8; }\n .table-hover .table-dark:hover > td,\n .table-hover .table-dark:hover > th {\n background-color: #b8b8b8; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075); }\n .table-hover .table-active:hover > td,\n .table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table .thead-dark th {\n color: #fff;\n background-color: #303030;\n border-color: #434343; }\n\n.table .thead-light th {\n color: #444;\n background-color: #ebebeb;\n border-color: #444; }\n\n.table-dark {\n color: #fff;\n background-color: #303030; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th {\n border-color: #434343; }\n .table-dark.table-bordered {\n border: 0; }\n .table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05); }\n .table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075); }\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-sm > .table-bordered {\n border: 0; } }\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-md > .table-bordered {\n border: 0; } }\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-lg > .table-bordered {\n border: 0; } }\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-xl > .table-bordered {\n border: 0; } }\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive > .table-bordered {\n border: 0; }\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #444;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #222;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none; } }\n .form-control::-ms-expand {\n background-color: transparent;\n border: 0; }\n .form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #444; }\n .form-control:focus {\n color: #444;\n background-color: #fff;\n border-color: #739ac2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .form-control::placeholder {\n color: #888;\n opacity: 1; }\n .form-control:disabled, .form-control[readonly] {\n background-color: #ebebeb;\n opacity: 1; }\n\ninput[type="date"].form-control,\ninput[type="time"].form-control,\ninput[type="datetime-local"].form-control,\ninput[type="month"].form-control {\n appearance: none; }\n\nselect.form-control:focus::-ms-value {\n color: #444;\n background-color: #fff; }\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%; }\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5; }\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.17188rem;\n line-height: 1.5; }\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.825rem;\n line-height: 1.5; }\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 0.9375rem;\n line-height: 1.5;\n color: #fff;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0; }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0; }\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto; }\n\ntextarea.form-control {\n height: auto; }\n\n.form-group {\n margin-bottom: 1rem; }\n\n.form-text {\n display: block;\n margin-top: 0.25rem; }\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px; }\n .form-row > .col,\n .form-row > [class*="col-"] {\n padding-right: 5px;\n padding-left: 5px; }\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem; }\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem; }\n .form-check-input[disabled] ~ .form-check-label,\n .form-check-input:disabled ~ .form-check-label {\n color: #888; }\n\n.form-check-label {\n margin-bottom: 0; }\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem; }\n .form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0; }\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #00bc8c; }\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.825rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(0, 188, 140, 0.9);\n border-radius: 0.25rem; }\n .form-row > .col > .valid-tooltip,\n .form-row > [class*="col-"] > .valid-tooltip {\n left: 5px; }\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #00bc8c;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2300bc8c\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #00bc8c;\n padding-right: calc(0.75em + 2.3125rem);\n background: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2300bc8c\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }\n .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #00bc8c; }\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #00bc8c; }\n .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #00bc8c; }\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #00efb2;\n background-color: #00efb2; }\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #00bc8c; }\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #00bc8c; }\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #e74c3c; }\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.825rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(231, 76, 60, 0.9);\n border-radius: 0.25rem; }\n .form-row > .col > .invalid-tooltip,\n .form-row > [class*="col-"] > .invalid-tooltip {\n left: 5px; }\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #e74c3c;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' fill=\'none\' stroke=\'%23e74c3c\' viewBox=\'0 0 12 12\'%3e%3ccircle cx=\'6\' cy=\'6\' r=\'4.5\'/%3e%3cpath stroke-linejoin=\'round\' d=\'M5.8 3.6h.4L6 6.5z\'/%3e%3ccircle cx=\'6\' cy=\'8.2\' r=\'.6\' fill=\'%23e74c3c\' stroke=\'none\'/%3e%3c/svg%3e");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #e74c3c;\n padding-right: calc(0.75em + 2.3125rem);\n background: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' fill=\'none\' stroke=\'%23e74c3c\' viewBox=\'0 0 12 12\'%3e%3ccircle cx=\'6\' cy=\'6\' r=\'4.5\'/%3e%3cpath stroke-linejoin=\'round\' d=\'M5.8 3.6h.4L6 6.5z\'/%3e%3ccircle cx=\'6\' cy=\'8.2\' r=\'.6\' fill=\'%23e74c3c\' stroke=\'none\'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }\n .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #e74c3c; }\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #e74c3c; }\n .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #e74c3c; }\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #ed7669;\n background-color: #ed7669; }\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #e74c3c; }\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #e74c3c; }\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; }\n .form-inline .form-check {\n width: 100%; }\n @media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0; }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-plaintext {\n display: inline-block; }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto; }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0; }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0; }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center; }\n .form-inline .custom-control-label {\n margin-bottom: 0; } }\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #fff;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 0.9375rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none; } }\n .btn:hover {\n color: #fff;\n text-decoration: none; }\n .btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .btn.disabled, .btn:disabled {\n opacity: 0.65; }\n .btn:not(:disabled):not(.disabled) {\n cursor: pointer; }\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none; }\n\n.btn-primary {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-primary:hover {\n color: #fff;\n background-color: #2b4764;\n border-color: #28415b; }\n .btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #2b4764;\n border-color: #28415b;\n box-shadow: 0 0 0 0.2rem rgba(85, 115, 146, 0.5); }\n .btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #28415b;\n border-color: #243a53; }\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(85, 115, 146, 0.5); }\n\n.btn-secondary {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-secondary:hover {\n color: #fff;\n background-color: #313131;\n border-color: #2b2b2b; }\n .btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #313131;\n border-color: #2b2b2b;\n box-shadow: 0 0 0 0.2rem rgba(96, 96, 96, 0.5); }\n .btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #2b2b2b;\n border-color: #242424; }\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(96, 96, 96, 0.5); }\n\n.btn-success {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-success:hover {\n color: #fff;\n background-color: #009670;\n border-color: #008966; }\n .btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #009670;\n border-color: #008966;\n box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5); }\n .btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #008966;\n border-color: #007c5d; }\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5); }\n\n.btn-info {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-info:hover {\n color: #fff;\n background-color: #2384c6;\n border-color: #217dbb; }\n .btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #2384c6;\n border-color: #217dbb;\n box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5); }\n .btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #217dbb;\n border-color: #1f76b0; }\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5); }\n\n.btn-warning {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-warning:hover {\n color: #fff;\n background-color: #d4860b;\n border-color: #c87f0a; }\n .btn-warning:focus, .btn-warning.focus {\n color: #fff;\n background-color: #d4860b;\n border-color: #c87f0a;\n box-shadow: 0 0 0 0.2rem rgba(245, 171, 54, 0.5); }\n .btn-warning.disabled, .btn-warning:disabled {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n .show > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #c87f0a;\n border-color: #bc770a; }\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(245, 171, 54, 0.5); }\n\n.btn-danger {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-danger:hover {\n color: #fff;\n background-color: #e12e1c;\n border-color: #d62c1a; }\n .btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #e12e1c;\n border-color: #d62c1a;\n box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5); }\n .btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #d62c1a;\n border-color: #ca2a19; }\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5); }\n\n.btn-light {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-light:hover {\n color: #fff;\n background-color: #98a2ac;\n border-color: #919ca6; }\n .btn-light:focus, .btn-light.focus {\n color: #fff;\n background-color: #98a2ac;\n border-color: #919ca6;\n box-shadow: 0 0 0 0.2rem rgba(152, 159, 166, 0.5); }\n .btn-light.disabled, .btn-light:disabled {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n .show > .btn-light.dropdown-toggle {\n color: #fff;\n background-color: #919ca6;\n border-color: #8a95a1; }\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(152, 159, 166, 0.5); }\n\n.btn-dark {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-dark:hover {\n color: #fff;\n background-color: #1d1d1d;\n border-color: #171717; }\n .btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #1d1d1d;\n border-color: #171717;\n box-shadow: 0 0 0 0.2rem rgba(79, 79, 79, 0.5); }\n .btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #171717;\n border-color: #101010; }\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(79, 79, 79, 0.5); }\n\n.btn-outline-primary {\n color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:hover {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #375a7f;\n background-color: transparent; }\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n\n.btn-outline-secondary {\n color: #444;\n border-color: #444; }\n .btn-outline-secondary:hover {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #444;\n background-color: transparent; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n\n.btn-outline-success {\n color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:hover {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n .btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #00bc8c;\n background-color: transparent; }\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n\n.btn-outline-info {\n color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:hover {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n .btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #3498db;\n background-color: transparent; }\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n\n.btn-outline-warning {\n color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:hover {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #f39c12;\n background-color: transparent; }\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n .show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n\n.btn-outline-danger {\n color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:hover {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #e74c3c;\n background-color: transparent; }\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n\n.btn-outline-light {\n color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:hover {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n .btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #adb5bd;\n background-color: transparent; }\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n .show > .btn-outline-light.dropdown-toggle {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n\n.btn-outline-dark {\n color: #303030;\n border-color: #303030; }\n .btn-outline-dark:hover {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #303030;\n background-color: transparent; }\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n\n.btn-link {\n font-weight: 400;\n color: #00bc8c;\n text-decoration: none; }\n .btn-link:hover {\n color: #007053;\n text-decoration: underline; }\n .btn-link:focus, .btn-link.focus {\n text-decoration: underline; }\n .btn-link:disabled, .btn-link.disabled {\n color: #888;\n pointer-events: none; }\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.btn-block {\n display: block;\n width: 100%; }\n .btn-block + .btn-block {\n margin-top: 0.5rem; }\n\ninput[type="submit"].btn-block,\ninput[type="reset"].btn-block,\ninput[type="button"].btn-block {\n width: 100%; }\n\n.fade {\n transition: opacity 0.15s linear; }\n @media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none; } }\n .fade:not(.show) {\n opacity: 0; }\n\n.collapse:not(.show) {\n display: none; }\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease; }\n @media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none; } }\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative; }\n\n.dropdown-toggle {\n white-space: nowrap; }\n .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent; }\n .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 0.9375rem;\n color: #fff;\n text-align: left;\n list-style: none;\n background-color: #222;\n background-clip: padding-box;\n border: 1px solid #444;\n border-radius: 0.25rem; }\n\n.dropdown-menu-left {\n right: auto;\n left: 0; }\n\n.dropdown-menu-right {\n right: 0;\n left: auto; }\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0; }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0; }\n .dropdown-menu-md-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0; }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0; }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto; } }\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem; }\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent; }\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem; }\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid; }\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0; }\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem; }\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: ""; }\n\n.dropleft .dropdown-toggle::after {\n display: none; }\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent; }\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0; }\n\n.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {\n right: auto;\n bottom: auto; }\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #444; }\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #fff;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0; }\n .dropdown-item:hover, .dropdown-item:focus {\n color: #fff;\n text-decoration: none;\n background-color: #375a7f; }\n .dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #375a7f; }\n .dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent; }\n\n.dropdown-menu.show {\n display: block; }\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.825rem;\n color: #888;\n white-space: nowrap; }\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #fff; }\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto; }\n .btn-group > .btn:hover,\n .btn-group-vertical > .btn:hover {\n z-index: 1; }\n .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n .btn-group-vertical > .btn:focus,\n .btn-group-vertical > .btn:active,\n .btn-group-vertical > .btn.active {\n z-index: 1; }\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start; }\n .btn-toolbar .input-group {\n width: auto; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px; }\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem; }\n .dropdown-toggle-split::after,\n .dropup .dropdown-toggle-split::after,\n .dropright .dropdown-toggle-split::after {\n margin-left: 0; }\n .dropleft .dropdown-toggle-split::before {\n margin-right: 0; }\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center; }\n .btn-group-vertical > .btn,\n .btn-group-vertical > .btn-group {\n width: 100%; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px; }\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0; }\n .btn-group-toggle > .btn input[type="radio"],\n .btn-group-toggle > .btn input[type="checkbox"],\n .btn-group-toggle > .btn-group > .btn input[type="radio"],\n .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%; }\n .input-group > .form-control,\n .input-group > .form-control-plaintext,\n .input-group > .custom-select,\n .input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0; }\n .input-group > .form-control + .form-control,\n .input-group > .form-control + .custom-select,\n .input-group > .form-control + .custom-file,\n .input-group > .form-control-plaintext + .form-control,\n .input-group > .form-control-plaintext + .custom-select,\n .input-group > .form-control-plaintext + .custom-file,\n .input-group > .custom-select + .form-control,\n .input-group > .custom-select + .custom-select,\n .input-group > .custom-select + .custom-file,\n .input-group > .custom-file + .form-control,\n .input-group > .custom-file + .custom-select,\n .input-group > .custom-file + .custom-file {\n margin-left: -1px; }\n .input-group > .form-control:focus,\n .input-group > .custom-select:focus,\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3; }\n .input-group > .custom-file .custom-file-input:focus {\n z-index: 4; }\n .input-group > .form-control:not(:first-child),\n .input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group > .custom-file {\n display: flex;\n align-items: center; }\n .input-group > .custom-file:not(:last-child) .custom-file-label,\n .input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group:not(.has-validation) > .form-control:not(:last-child),\n .input-group:not(.has-validation) > .custom-select:not(:last-child),\n .input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .input-group.has-validation > .form-control:nth-last-child(n + 3),\n .input-group.has-validation > .custom-select:nth-last-child(n + 3),\n .input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group-prepend,\n.input-group-append {\n display: flex; }\n .input-group-prepend .btn,\n .input-group-append .btn {\n position: relative;\n z-index: 2; }\n .input-group-prepend .btn:focus,\n .input-group-append .btn:focus {\n z-index: 3; }\n .input-group-prepend .btn + .btn,\n .input-group-prepend .btn + .input-group-text,\n .input-group-prepend .input-group-text + .input-group-text,\n .input-group-prepend .input-group-text + .btn,\n .input-group-append .btn + .btn,\n .input-group-append .btn + .input-group-text,\n .input-group-append .input-group-text + .input-group-text,\n .input-group-append .input-group-text + .btn {\n margin-left: -1px; }\n\n.input-group-prepend {\n margin-right: -1px; }\n\n.input-group-append {\n margin-left: -1px; }\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #adb5bd;\n text-align: center;\n white-space: nowrap;\n background-color: #444;\n border: 1px solid #222;\n border-radius: 0.25rem; }\n .input-group-text input[type="radio"],\n .input-group-text input[type="checkbox"] {\n margin-top: 0; }\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px); }\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px); }\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem; }\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.40625rem;\n padding-left: 1.5rem;\n color-adjust: exact; }\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem; }\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.20313rem;\n opacity: 0; }\n .custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #375a7f;\n background-color: #375a7f; }\n .custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #739ac2; }\n .custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #97b3d2;\n border-color: #97b3d2; }\n .custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #888; }\n .custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #ebebeb; }\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top; }\n .custom-control-label::before {\n position: absolute;\n top: 0.20313rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: "";\n background-color: #fff;\n border: #adb5bd solid 1px; }\n .custom-control-label::after {\n position: absolute;\n top: 0.20313rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: "";\n background: 50% / 50% 50% no-repeat; }\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem; }\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z\'/%3e%3c/svg%3e"); }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #375a7f;\n background-color: #375a7f; }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'4\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e"); }\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%; }\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e"); }\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-switch {\n padding-left: 2.25rem; }\n .custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem; }\n .custom-switch .custom-control-label::after {\n top: calc(0.20313rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none; } }\n .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem); }\n .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #444;\n vertical-align: middle;\n background: #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat;\n border: 1px solid #222;\n border-radius: 0.25rem;\n appearance: none; }\n .custom-select:focus {\n border-color: #739ac2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-select:focus::-ms-value {\n color: #444;\n background-color: #fff; }\n .custom-select[multiple], .custom-select[size]:not([size="1"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none; }\n .custom-select:disabled {\n color: #888;\n background-color: #ebebeb; }\n .custom-select::-ms-expand {\n display: none; }\n .custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #444; }\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.825rem; }\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.17188rem; }\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0; }\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n overflow: hidden;\n opacity: 0; }\n .custom-file-input:focus ~ .custom-file-label {\n border-color: #739ac2;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-file-input[disabled] ~ .custom-file-label,\n .custom-file-input:disabled ~ .custom-file-label {\n background-color: #ebebeb; }\n .custom-file-input:lang(en) ~ .custom-file-label::after {\n content: "Browse"; }\n .custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse); }\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n overflow: hidden;\n font-weight: 400;\n line-height: 1.5;\n color: #adb5bd;\n background-color: #fff;\n border: 1px solid #222;\n border-radius: 0.25rem; }\n .custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #adb5bd;\n content: "Browse";\n background-color: #444;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0; }\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none; }\n .custom-range:focus {\n outline: 0; }\n .custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range::-moz-focus-outer {\n border: 0; }\n .custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none; } }\n .custom-range::-webkit-slider-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none; } }\n .custom-range::-moz-range-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none; } }\n .custom-range::-ms-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem; }\n .custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default; }\n .custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-moz-range-track {\n cursor: default; }\n .custom-range:disabled::-ms-thumb {\n background-color: #adb5bd; }\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none; } }\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n\n.nav-link {\n display: block;\n padding: 0.5rem 2rem; }\n .nav-link:hover, .nav-link:focus {\n text-decoration: none; }\n .nav-link.disabled {\n color: #adb5bd;\n pointer-events: none;\n cursor: default; }\n\n.nav-tabs {\n border-bottom: 1px solid #444; }\n .nav-tabs .nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #444 #444 transparent; }\n .nav-tabs .nav-link.disabled {\n color: #adb5bd;\n background-color: transparent;\n border-color: transparent; }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: #fff;\n background-color: #222;\n border-color: #444 #444 transparent; }\n .nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.nav-pills .nav-link {\n border-radius: 0.25rem; }\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #375a7f; }\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center; }\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center; }\n\n.tab-content > .tab-pane {\n display: none; }\n\n.tab-content > .active {\n display: block; }\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem; }\n .navbar .container,\n .navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between; }\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.32422rem;\n padding-bottom: 0.32422rem;\n margin-right: 1rem;\n font-size: 1.17188rem;\n line-height: inherit;\n white-space: nowrap; }\n .navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none; }\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n .navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem; }\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center; }\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.17188rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n .navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none; }\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: "";\n background: 50% / 100% 100% no-repeat; }\n\n.navbar-nav-scroll {\n max-height: 75vh;\n overflow-y: auto; }\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row; }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-sm .navbar-toggler {\n display: none; } }\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-md .navbar-nav {\n flex-direction: row; }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-md .navbar-toggler {\n display: none; } }\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row; }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-lg .navbar-toggler {\n display: none; } }\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row; }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-xl .navbar-toggler {\n display: none; } }\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0; }\n .navbar-expand .navbar-nav {\n flex-direction: row; }\n .navbar-expand .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand .navbar-toggler {\n display: none; }\n\n.navbar-light .navbar-brand {\n color: #222; }\n .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: #222; }\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(34, 34, 34, 0.7); }\n .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: #222; }\n .navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: #222; }\n\n.navbar-light .navbar-toggler {\n color: rgba(34, 34, 34, 0.7);\n border-color: rgba(34, 34, 34, 0.1); }\n\n.navbar-light .navbar-toggler-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'30\' height=\'30\' viewBox=\'0 0 30 30\'%3e%3cpath stroke=\'rgba%2834, 34, 34, 0.7%29\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' stroke-width=\'2\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e"); }\n\n.navbar-light .navbar-text {\n color: rgba(34, 34, 34, 0.7); }\n .navbar-light .navbar-text a {\n color: #222; }\n .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: #222; }\n\n.navbar-dark .navbar-brand {\n color: #fff; }\n .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff; }\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.6); }\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: #fff; }\n .navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff; }\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.6);\n border-color: rgba(255, 255, 255, 0.1); }\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'30\' height=\'30\' viewBox=\'0 0 30 30\'%3e%3cpath stroke=\'rgba%28255, 255, 255, 0.6%29\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' stroke-width=\'2\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e"); }\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.6); }\n .navbar-dark .navbar-text a {\n color: #fff; }\n .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff; }\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #303030;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n .card > hr {\n margin-right: 0;\n margin-left: 0; }\n .card > .list-group {\n border-top: inherit;\n border-bottom: inherit; }\n .card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n .card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n .card > .card-header + .list-group,\n .card > .list-group + .card-footer {\n border-top: 0; }\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem; }\n\n.card-title {\n margin-bottom: 0.75rem; }\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0; }\n\n.card-text:last-child {\n margin-bottom: 0; }\n\n.card-link:hover {\n text-decoration: none; }\n\n.card-link + .card-link {\n margin-left: 1.25rem; }\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: #444;\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n .card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: #444;\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n .card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0; }\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem; }\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%; }\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n\n.card-deck .card {\n margin-bottom: 15px; }\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px; }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px; } }\n\n.card-group > .card {\n margin-bottom: 15px; }\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap; }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0; }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0; } }\n\n.card-columns .card {\n margin-bottom: 0.75rem; }\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1; }\n .card-columns .card {\n display: inline-block;\n width: 100%; } }\n\n.accordion {\n overflow-anchor: none; }\n .accordion > .card {\n overflow: hidden; }\n .accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n .accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px; }\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #444;\n border-radius: 0.25rem; }\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem; }\n .breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #888;\n content: "/"; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none; }\n\n.breadcrumb-item.active {\n color: #888; }\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem; }\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: 0;\n line-height: 1.25;\n color: #fff;\n background-color: #00bc8c;\n border: 0 solid transparent; }\n .page-link:hover {\n z-index: 2;\n color: #fff;\n text-decoration: none;\n background-color: #00efb2;\n border-color: transparent; }\n .page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem; }\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #00efb2;\n border-color: transparent; }\n\n.page-item.disabled .page-link {\n color: #fff;\n pointer-events: none;\n cursor: auto;\n background-color: #007053;\n border-color: transparent; }\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.17188rem;\n line-height: 1.5; }\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem; }\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5; }\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem; }\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem; }\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none; } }\n a.badge:hover, a.badge:focus {\n text-decoration: none; }\n .badge:empty {\n display: none; }\n\n.btn .badge {\n position: relative;\n top: -1px; }\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem; }\n\n.badge-primary {\n color: #fff;\n background-color: #375a7f; }\n a.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #28415b; }\n a.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n\n.badge-secondary {\n color: #fff;\n background-color: #444; }\n a.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #2b2b2b; }\n a.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n\n.badge-success {\n color: #fff;\n background-color: #00bc8c; }\n a.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #008966; }\n a.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n\n.badge-info {\n color: #fff;\n background-color: #3498db; }\n a.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #217dbb; }\n a.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n\n.badge-warning {\n color: #fff;\n background-color: #f39c12; }\n a.badge-warning:hover, a.badge-warning:focus {\n color: #fff;\n background-color: #c87f0a; }\n a.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n\n.badge-danger {\n color: #fff;\n background-color: #e74c3c; }\n a.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #d62c1a; }\n a.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n\n.badge-light {\n color: #222;\n background-color: #adb5bd; }\n a.badge-light:hover, a.badge-light:focus {\n color: #222;\n background-color: #919ca6; }\n a.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n\n.badge-dark {\n color: #fff;\n background-color: #303030; }\n a.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #171717; }\n a.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #303030;\n border-radius: 0.3rem; }\n @media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem; } }\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0; }\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n\n.alert-heading {\n color: inherit; }\n\n.alert-link {\n font-weight: 700; }\n\n.alert-dismissible {\n padding-right: 3.90625rem; }\n .alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit; }\n\n.alert-primary {\n color: #1d2f42;\n background-color: #d7dee5;\n border-color: #c7d1db; }\n .alert-primary hr {\n border-top-color: #b7c4d1; }\n .alert-primary .alert-link {\n color: #0d161f; }\n\n.alert-secondary {\n color: #232323;\n background-color: #dadada;\n border-color: #cbcbcb; }\n .alert-secondary hr {\n border-top-color: #bebebe; }\n .alert-secondary .alert-link {\n color: #0a0a0a; }\n\n.alert-success {\n color: #006249;\n background-color: #ccf2e8;\n border-color: #b8ecdf; }\n .alert-success hr {\n border-top-color: #a4e7d6; }\n .alert-success .alert-link {\n color: #002f23; }\n\n.alert-info {\n color: #1b4f72;\n background-color: #d6eaf8;\n border-color: #c6e2f5; }\n .alert-info hr {\n border-top-color: #b0d7f1; }\n .alert-info .alert-link {\n color: #113249; }\n\n.alert-warning {\n color: #7e5109;\n background-color: #fdebd0;\n border-color: #fce3bd; }\n .alert-warning hr {\n border-top-color: #fbd9a5; }\n .alert-warning .alert-link {\n color: #4e3206; }\n\n.alert-danger {\n color: #78281f;\n background-color: #fadbd8;\n border-color: #f8cdc8; }\n .alert-danger hr {\n border-top-color: #f5b8b1; }\n .alert-danger .alert-link {\n color: #4f1a15; }\n\n.alert-light {\n color: #5a5e62;\n background-color: #eff0f2;\n border-color: #e8eaed; }\n .alert-light hr {\n border-top-color: #dadde2; }\n .alert-light .alert-link {\n color: #424547; }\n\n.alert-dark {\n color: #191919;\n background-color: #d6d6d6;\n border-color: #c5c5c5; }\n .alert-dark hr {\n border-top-color: #b8b8b8; }\n .alert-dark .alert-link {\n color: black; }\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.70313rem;\n background-color: #444;\n border-radius: 0.25rem; }\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #375a7f;\n transition: width 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none; } }\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none; } }\n\n.media {\n display: flex;\n align-items: flex-start; }\n\n.media-body {\n flex: 1; }\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem; }\n\n.list-group-item-action {\n width: 100%;\n color: #444;\n text-align: inherit; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #444;\n text-decoration: none;\n background-color: #444; }\n .list-group-item-action:active {\n color: #fff;\n background-color: #ebebeb; }\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #303030;\n border: 1px solid #444; }\n .list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit; }\n .list-group-item.disabled, .list-group-item:disabled {\n color: #888;\n pointer-events: none;\n background-color: #303030; }\n .list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .list-group-item + .list-group-item {\n border-top-width: 0; }\n .list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px; }\n\n.list-group-horizontal {\n flex-direction: row; }\n .list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; }\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row; }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row; }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row; }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row; }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n.list-group-flush {\n border-radius: 0; }\n .list-group-flush > .list-group-item {\n border-width: 0 0 1px; }\n .list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0; }\n\n.list-group-item-primary {\n color: #1d2f42;\n background-color: #c7d1db; }\n .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #1d2f42;\n background-color: #b7c4d1; }\n .list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #1d2f42;\n border-color: #1d2f42; }\n\n.list-group-item-secondary {\n color: #232323;\n background-color: #cbcbcb; }\n .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #232323;\n background-color: #bebebe; }\n .list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #232323;\n border-color: #232323; }\n\n.list-group-item-success {\n color: #006249;\n background-color: #b8ecdf; }\n .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #006249;\n background-color: #a4e7d6; }\n .list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #006249;\n border-color: #006249; }\n\n.list-group-item-info {\n color: #1b4f72;\n background-color: #c6e2f5; }\n .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #1b4f72;\n background-color: #b0d7f1; }\n .list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #1b4f72;\n border-color: #1b4f72; }\n\n.list-group-item-warning {\n color: #7e5109;\n background-color: #fce3bd; }\n .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #7e5109;\n background-color: #fbd9a5; }\n .list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #7e5109;\n border-color: #7e5109; }\n\n.list-group-item-danger {\n color: #78281f;\n background-color: #f8cdc8; }\n .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #78281f;\n background-color: #f5b8b1; }\n .list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #78281f;\n border-color: #78281f; }\n\n.list-group-item-light {\n color: #5a5e62;\n background-color: #e8eaed; }\n .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #5a5e62;\n background-color: #dadde2; }\n .list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #5a5e62;\n border-color: #5a5e62; }\n\n.list-group-item-dark {\n color: #191919;\n background-color: #c5c5c5; }\n .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #191919;\n background-color: #b8b8b8; }\n .list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #191919;\n border-color: #191919; }\n\n.close {\n float: right;\n font-size: 1.40625rem;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-shadow: none;\n opacity: .5; }\n .close:hover {\n color: #fff;\n text-decoration: none; }\n .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75; }\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0; }\n\na.close.disabled {\n pointer-events: none; }\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: #444;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem; }\n .toast:not(:last-child) {\n margin-bottom: 0.75rem; }\n .toast.showing {\n opacity: 1; }\n .toast.show {\n display: block;\n opacity: 1; }\n .toast.hide {\n display: none; }\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #888;\n background-color: #303030;\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.toast-body {\n padding: 0.75rem; }\n\n.modal-open {\n overflow: hidden; }\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0; }\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none; }\n .modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px); }\n @media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none; } }\n .modal.show .modal-dialog {\n transform: none; }\n .modal.modal-static .modal-dialog {\n transform: scale(1.02); }\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden; }\n .modal-dialog-scrollable .modal-header,\n .modal-dialog-scrollable .modal-footer {\n flex-shrink: 0; }\n .modal-dialog-scrollable .modal-body {\n overflow-y: auto; }\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem); }\n .modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: ""; }\n .modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%; }\n .modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none; }\n .modal-dialog-centered.modal-dialog-scrollable::before {\n content: none; }\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #303030;\n background-clip: padding-box;\n border: 1px solid #444;\n border-radius: 0.3rem;\n outline: 0; }\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000; }\n .modal-backdrop.fade {\n opacity: 0; }\n .modal-backdrop.show {\n opacity: 0.5; }\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #444;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto; }\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem; }\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #444;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px); }\n .modal-footer > * {\n margin: 0.25rem; }\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto; }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem); }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem); }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content; }\n .modal-sm {\n max-width: 300px; } }\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px; } }\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px; } }\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.825rem;\n word-wrap: break-word;\n opacity: 0; }\n .tooltip.show {\n opacity: 0.9; }\n .tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem; }\n .tooltip .arrow::before {\n position: absolute;\n content: "";\n border-color: transparent;\n border-style: solid; }\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {\n padding: 0.4rem 0; }\n .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {\n bottom: 0; }\n .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000; }\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {\n padding: 0 0.4rem; }\n .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000; }\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {\n padding: 0.4rem 0; }\n .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {\n top: 0; }\n .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000; }\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {\n padding: 0 0.4rem; }\n .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000; }\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.825rem;\n word-wrap: break-word;\n background-color: #303030;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n .popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem; }\n .popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: "";\n border-color: transparent;\n border-style: solid; }\n\n.bs-popover-top, .bs-popover-auto[x-placement^="top"] {\n margin-bottom: 0.5rem; }\n .bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow {\n bottom: calc(-0.5rem - 1px); }\n .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #303030; }\n\n.bs-popover-right, .bs-popover-auto[x-placement^="right"] {\n margin-left: 0.5rem; }\n .bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #303030; }\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {\n margin-top: 0.5rem; }\n .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow {\n top: calc(-0.5rem - 1px); }\n .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #303030; }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: "";\n border-bottom: 1px solid #444; }\n\n.bs-popover-left, .bs-popover-auto[x-placement^="left"] {\n margin-right: 0.5rem; }\n .bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #303030; }\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 0.9375rem;\n background-color: #444;\n border-bottom: 1px solid #373737;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .popover-header:empty {\n display: none; }\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #fff; }\n\n.carousel {\n position: relative; }\n\n.carousel.pointer-event {\n touch-action: pan-y; }\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n .carousel-inner::after {\n display: block;\n clear: both;\n content: ""; }\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none; } }\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block; }\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%); }\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%); }\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none; }\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1; }\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none; } }\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none; } }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9; }\n\n.carousel-control-prev {\n left: 0; }\n\n.carousel-control-next {\n right: 0; }\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: 50% / 100% 100% no-repeat; }\n\n.carousel-control-prev-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z\'/%3e%3c/svg%3e"); }\n\n.carousel-control-next-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z\'/%3e%3c/svg%3e"); }\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none; }\n .carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none; } }\n .carousel-indicators .active {\n opacity: 1; }\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center; }\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg); } }\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: .75s linear infinite spinner-border; }\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em; }\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0); }\n 50% {\n opacity: 1;\n transform: none; } }\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: .75s linear infinite spinner-grow; }\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem; }\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: 1.5s; } }\n\n.align-baseline {\n vertical-align: baseline !important; }\n\n.align-top {\n vertical-align: top !important; }\n\n.align-middle {\n vertical-align: middle !important; }\n\n.align-bottom {\n vertical-align: bottom !important; }\n\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n\n.align-text-top {\n vertical-align: text-top !important; }\n\n.bg-primary {\n background-color: #375a7f !important; }\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #28415b !important; }\n\n.bg-secondary {\n background-color: #444 !important; }\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #2b2b2b !important; }\n\n.bg-success {\n background-color: #00bc8c !important; }\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #008966 !important; }\n\n.bg-info {\n background-color: #3498db !important; }\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #217dbb !important; }\n\n.bg-warning {\n background-color: #f39c12 !important; }\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #c87f0a !important; }\n\n.bg-danger {\n background-color: #e74c3c !important; }\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #d62c1a !important; }\n\n.bg-light {\n background-color: #adb5bd !important; }\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #919ca6 !important; }\n\n.bg-dark {\n background-color: #303030 !important; }\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #171717 !important; }\n\n.bg-white {\n background-color: #fff !important; }\n\n.bg-transparent {\n background-color: transparent !important; }\n\n.border {\n border: 1px solid #dee2e6 !important; }\n\n.border-top {\n border-top: 1px solid #dee2e6 !important; }\n\n.border-right {\n border-right: 1px solid #dee2e6 !important; }\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important; }\n\n.border-left {\n border-left: 1px solid #dee2e6 !important; }\n\n.border-0 {\n border: 0 !important; }\n\n.border-top-0 {\n border-top: 0 !important; }\n\n.border-right-0 {\n border-right: 0 !important; }\n\n.border-bottom-0 {\n border-bottom: 0 !important; }\n\n.border-left-0 {\n border-left: 0 !important; }\n\n.border-primary {\n border-color: #375a7f !important; }\n\n.border-secondary {\n border-color: #444 !important; }\n\n.border-success {\n border-color: #00bc8c !important; }\n\n.border-info {\n border-color: #3498db !important; }\n\n.border-warning {\n border-color: #f39c12 !important; }\n\n.border-danger {\n border-color: #e74c3c !important; }\n\n.border-light {\n border-color: #adb5bd !important; }\n\n.border-dark {\n border-color: #303030 !important; }\n\n.border-white {\n border-color: #fff !important; }\n\n.rounded-sm {\n border-radius: 0.2rem !important; }\n\n.rounded {\n border-radius: 0.25rem !important; }\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important; }\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important; }\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-lg {\n border-radius: 0.3rem !important; }\n\n.rounded-circle {\n border-radius: 50% !important; }\n\n.rounded-pill {\n border-radius: 50rem !important; }\n\n.rounded-0 {\n border-radius: 0 !important; }\n\n.clearfix::after {\n display: block;\n clear: both;\n content: ""; }\n\n.d-none {\n display: none !important; }\n\n.d-inline {\n display: inline !important; }\n\n.d-inline-block {\n display: inline-block !important; }\n\n.d-block {\n display: block !important; }\n\n.d-table {\n display: table !important; }\n\n.d-table-row {\n display: table-row !important; }\n\n.d-table-cell {\n display: table-cell !important; }\n\n.d-flex {\n display: flex !important; }\n\n.d-inline-flex {\n display: inline-flex !important; }\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-row {\n display: table-row !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: flex !important; }\n .d-sm-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-row {\n display: table-row !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: flex !important; }\n .d-md-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-row {\n display: table-row !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: flex !important; }\n .d-lg-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-row {\n display: table-row !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: flex !important; }\n .d-xl-inline-flex {\n display: inline-flex !important; } }\n\n@media print {\n .d-print-none {\n display: none !important; }\n .d-print-inline {\n display: inline !important; }\n .d-print-inline-block {\n display: inline-block !important; }\n .d-print-block {\n display: block !important; }\n .d-print-table {\n display: table !important; }\n .d-print-table-row {\n display: table-row !important; }\n .d-print-table-cell {\n display: table-cell !important; }\n .d-print-flex {\n display: flex !important; }\n .d-print-inline-flex {\n display: inline-flex !important; } }\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden; }\n .embed-responsive::before {\n display: block;\n content: ""; }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object,\n .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0; }\n\n.embed-responsive-21by9::before {\n padding-top: 42.85714%; }\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%; }\n\n.embed-responsive-4by3::before {\n padding-top: 75%; }\n\n.embed-responsive-1by1::before {\n padding-top: 100%; }\n\n.flex-row {\n flex-direction: row !important; }\n\n.flex-column {\n flex-direction: column !important; }\n\n.flex-row-reverse {\n flex-direction: row-reverse !important; }\n\n.flex-column-reverse {\n flex-direction: column-reverse !important; }\n\n.flex-wrap {\n flex-wrap: wrap !important; }\n\n.flex-nowrap {\n flex-wrap: nowrap !important; }\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n\n.flex-fill {\n flex: 1 1 auto !important; }\n\n.flex-grow-0 {\n flex-grow: 0 !important; }\n\n.flex-grow-1 {\n flex-grow: 1 !important; }\n\n.flex-shrink-0 {\n flex-shrink: 0 !important; }\n\n.flex-shrink-1 {\n flex-shrink: 1 !important; }\n\n.justify-content-start {\n justify-content: flex-start !important; }\n\n.justify-content-end {\n justify-content: flex-end !important; }\n\n.justify-content-center {\n justify-content: center !important; }\n\n.justify-content-between {\n justify-content: space-between !important; }\n\n.justify-content-around {\n justify-content: space-around !important; }\n\n.align-items-start {\n align-items: flex-start !important; }\n\n.align-items-end {\n align-items: flex-end !important; }\n\n.align-items-center {\n align-items: center !important; }\n\n.align-items-baseline {\n align-items: baseline !important; }\n\n.align-items-stretch {\n align-items: stretch !important; }\n\n.align-content-start {\n align-content: flex-start !important; }\n\n.align-content-end {\n align-content: flex-end !important; }\n\n.align-content-center {\n align-content: center !important; }\n\n.align-content-between {\n align-content: space-between !important; }\n\n.align-content-around {\n align-content: space-around !important; }\n\n.align-content-stretch {\n align-content: stretch !important; }\n\n.align-self-auto {\n align-self: auto !important; }\n\n.align-self-start {\n align-self: flex-start !important; }\n\n.align-self-end {\n align-self: flex-end !important; }\n\n.align-self-center {\n align-self: center !important; }\n\n.align-self-baseline {\n align-self: baseline !important; }\n\n.align-self-stretch {\n align-self: stretch !important; }\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important; }\n .flex-sm-column {\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-sm-wrap {\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-sm-fill {\n flex: 1 1 auto !important; }\n .flex-sm-grow-0 {\n flex-grow: 0 !important; }\n .flex-sm-grow-1 {\n flex-grow: 1 !important; }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-sm-start {\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n justify-content: center !important; }\n .justify-content-sm-between {\n justify-content: space-between !important; }\n .justify-content-sm-around {\n justify-content: space-around !important; }\n .align-items-sm-start {\n align-items: flex-start !important; }\n .align-items-sm-end {\n align-items: flex-end !important; }\n .align-items-sm-center {\n align-items: center !important; }\n .align-items-sm-baseline {\n align-items: baseline !important; }\n .align-items-sm-stretch {\n align-items: stretch !important; }\n .align-content-sm-start {\n align-content: flex-start !important; }\n .align-content-sm-end {\n align-content: flex-end !important; }\n .align-content-sm-center {\n align-content: center !important; }\n .align-content-sm-between {\n align-content: space-between !important; }\n .align-content-sm-around {\n align-content: space-around !important; }\n .align-content-sm-stretch {\n align-content: stretch !important; }\n .align-self-sm-auto {\n align-self: auto !important; }\n .align-self-sm-start {\n align-self: flex-start !important; }\n .align-self-sm-end {\n align-self: flex-end !important; }\n .align-self-sm-center {\n align-self: center !important; }\n .align-self-sm-baseline {\n align-self: baseline !important; }\n .align-self-sm-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important; }\n .flex-md-column {\n flex-direction: column !important; }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-md-wrap {\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-md-fill {\n flex: 1 1 auto !important; }\n .flex-md-grow-0 {\n flex-grow: 0 !important; }\n .flex-md-grow-1 {\n flex-grow: 1 !important; }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-md-start {\n justify-content: flex-start !important; }\n .justify-content-md-end {\n justify-content: flex-end !important; }\n .justify-content-md-center {\n justify-content: center !important; }\n .justify-content-md-between {\n justify-content: space-between !important; }\n .justify-content-md-around {\n justify-content: space-around !important; }\n .align-items-md-start {\n align-items: flex-start !important; }\n .align-items-md-end {\n align-items: flex-end !important; }\n .align-items-md-center {\n align-items: center !important; }\n .align-items-md-baseline {\n align-items: baseline !important; }\n .align-items-md-stretch {\n align-items: stretch !important; }\n .align-content-md-start {\n align-content: flex-start !important; }\n .align-content-md-end {\n align-content: flex-end !important; }\n .align-content-md-center {\n align-content: center !important; }\n .align-content-md-between {\n align-content: space-between !important; }\n .align-content-md-around {\n align-content: space-around !important; }\n .align-content-md-stretch {\n align-content: stretch !important; }\n .align-self-md-auto {\n align-self: auto !important; }\n .align-self-md-start {\n align-self: flex-start !important; }\n .align-self-md-end {\n align-self: flex-end !important; }\n .align-self-md-center {\n align-self: center !important; }\n .align-self-md-baseline {\n align-self: baseline !important; }\n .align-self-md-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important; }\n .flex-lg-column {\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-lg-wrap {\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-lg-fill {\n flex: 1 1 auto !important; }\n .flex-lg-grow-0 {\n flex-grow: 0 !important; }\n .flex-lg-grow-1 {\n flex-grow: 1 !important; }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-lg-start {\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n justify-content: center !important; }\n .justify-content-lg-between {\n justify-content: space-between !important; }\n .justify-content-lg-around {\n justify-content: space-around !important; }\n .align-items-lg-start {\n align-items: flex-start !important; }\n .align-items-lg-end {\n align-items: flex-end !important; }\n .align-items-lg-center {\n align-items: center !important; }\n .align-items-lg-baseline {\n align-items: baseline !important; }\n .align-items-lg-stretch {\n align-items: stretch !important; }\n .align-content-lg-start {\n align-content: flex-start !important; }\n .align-content-lg-end {\n align-content: flex-end !important; }\n .align-content-lg-center {\n align-content: center !important; }\n .align-content-lg-between {\n align-content: space-between !important; }\n .align-content-lg-around {\n align-content: space-around !important; }\n .align-content-lg-stretch {\n align-content: stretch !important; }\n .align-self-lg-auto {\n align-self: auto !important; }\n .align-self-lg-start {\n align-self: flex-start !important; }\n .align-self-lg-end {\n align-self: flex-end !important; }\n .align-self-lg-center {\n align-self: center !important; }\n .align-self-lg-baseline {\n align-self: baseline !important; }\n .align-self-lg-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important; }\n .flex-xl-column {\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-xl-wrap {\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-xl-fill {\n flex: 1 1 auto !important; }\n .flex-xl-grow-0 {\n flex-grow: 0 !important; }\n .flex-xl-grow-1 {\n flex-grow: 1 !important; }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-xl-start {\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n justify-content: center !important; }\n .justify-content-xl-between {\n justify-content: space-between !important; }\n .justify-content-xl-around {\n justify-content: space-around !important; }\n .align-items-xl-start {\n align-items: flex-start !important; }\n .align-items-xl-end {\n align-items: flex-end !important; }\n .align-items-xl-center {\n align-items: center !important; }\n .align-items-xl-baseline {\n align-items: baseline !important; }\n .align-items-xl-stretch {\n align-items: stretch !important; }\n .align-content-xl-start {\n align-content: flex-start !important; }\n .align-content-xl-end {\n align-content: flex-end !important; }\n .align-content-xl-center {\n align-content: center !important; }\n .align-content-xl-between {\n align-content: space-between !important; }\n .align-content-xl-around {\n align-content: space-around !important; }\n .align-content-xl-stretch {\n align-content: stretch !important; }\n .align-self-xl-auto {\n align-self: auto !important; }\n .align-self-xl-start {\n align-self: flex-start !important; }\n .align-self-xl-end {\n align-self: flex-end !important; }\n .align-self-xl-center {\n align-self: center !important; }\n .align-self-xl-baseline {\n align-self: baseline !important; }\n .align-self-xl-stretch {\n align-self: stretch !important; } }\n\n.float-left {\n float: left !important; }\n\n.float-right {\n float: right !important; }\n\n.float-none {\n float: none !important; }\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important; }\n .float-sm-right {\n float: right !important; }\n .float-sm-none {\n float: none !important; } }\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important; }\n .float-md-right {\n float: right !important; }\n .float-md-none {\n float: none !important; } }\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important; }\n .float-lg-right {\n float: right !important; }\n .float-lg-none {\n float: none !important; } }\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important; }\n .float-xl-right {\n float: right !important; }\n .float-xl-none {\n float: none !important; } }\n\n.user-select-all {\n user-select: all !important; }\n\n.user-select-auto {\n user-select: auto !important; }\n\n.user-select-none {\n user-select: none !important; }\n\n.overflow-auto {\n overflow: auto !important; }\n\n.overflow-hidden {\n overflow: hidden !important; }\n\n.position-static {\n position: static !important; }\n\n.position-relative {\n position: relative !important; }\n\n.position-absolute {\n position: absolute !important; }\n\n.position-fixed {\n position: fixed !important; }\n\n.position-sticky {\n position: sticky !important; }\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal; }\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\n\n.shadow-none {\n box-shadow: none !important; }\n\n.w-25 {\n width: 25% !important; }\n\n.w-50 {\n width: 50% !important; }\n\n.w-75 {\n width: 75% !important; }\n\n.w-100 {\n width: 100% !important; }\n\n.w-auto {\n width: auto !important; }\n\n.h-25 {\n height: 25% !important; }\n\n.h-50 {\n height: 50% !important; }\n\n.h-75 {\n height: 75% !important; }\n\n.h-100 {\n height: 100% !important; }\n\n.h-auto {\n height: auto !important; }\n\n.mw-100 {\n max-width: 100% !important; }\n\n.mh-100 {\n max-height: 100% !important; }\n\n.min-vw-100 {\n min-width: 100vw !important; }\n\n.min-vh-100 {\n min-height: 100vh !important; }\n\n.vw-100 {\n width: 100vw !important; }\n\n.vh-100 {\n height: 100vh !important; }\n\n.m-0 {\n margin: 0 !important; }\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important; }\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important; }\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important; }\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important; }\n\n.m-1 {\n margin: 0.25rem !important; }\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important; }\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important; }\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important; }\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important; }\n\n.m-2 {\n margin: 0.5rem !important; }\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important; }\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important; }\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important; }\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important; }\n\n.m-3 {\n margin: 1rem !important; }\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important; }\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important; }\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important; }\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important; }\n\n.m-4 {\n margin: 1.5rem !important; }\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important; }\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important; }\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important; }\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important; }\n\n.m-5 {\n margin: 3rem !important; }\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important; }\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important; }\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important; }\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important; }\n\n.p-0 {\n padding: 0 !important; }\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important; }\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important; }\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important; }\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important; }\n\n.p-1 {\n padding: 0.25rem !important; }\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important; }\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important; }\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important; }\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important; }\n\n.p-2 {\n padding: 0.5rem !important; }\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important; }\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important; }\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important; }\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important; }\n\n.p-3 {\n padding: 1rem !important; }\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important; }\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important; }\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important; }\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important; }\n\n.p-4 {\n padding: 1.5rem !important; }\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important; }\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important; }\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important; }\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important; }\n\n.p-5 {\n padding: 3rem !important; }\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important; }\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important; }\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important; }\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important; }\n\n.m-n1 {\n margin: -0.25rem !important; }\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important; }\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important; }\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important; }\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important; }\n\n.m-n2 {\n margin: -0.5rem !important; }\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important; }\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important; }\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important; }\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important; }\n\n.m-n3 {\n margin: -1rem !important; }\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important; }\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important; }\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important; }\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important; }\n\n.m-n4 {\n margin: -1.5rem !important; }\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important; }\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important; }\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important; }\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important; }\n\n.m-n5 {\n margin: -3rem !important; }\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important; }\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important; }\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important; }\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important; }\n\n.m-auto {\n margin: auto !important; }\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important; }\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important; }\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important; }\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important; }\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important; }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important; }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important; }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important; }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem !important; }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important; }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important; }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important; }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem !important; }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important; }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important; }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important; }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem !important; }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important; }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important; }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important; }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem !important; }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important; }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important; }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important; }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem !important; }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important; }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important; }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important; }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important; }\n .p-sm-0 {\n padding: 0 !important; }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important; }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important; }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important; }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem !important; }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important; }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important; }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem !important; }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important; }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important; }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem !important; }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important; }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important; }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important; }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem !important; }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important; }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important; }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem !important; }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important; }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important; }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important; }\n .m-sm-n1 {\n margin: -0.25rem !important; }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important; }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important; }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important; }\n .m-sm-n2 {\n margin: -0.5rem !important; }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important; }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important; }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important; }\n .m-sm-n3 {\n margin: -1rem !important; }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important; }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important; }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important; }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important; }\n .m-sm-n4 {\n margin: -1.5rem !important; }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important; }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important; }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important; }\n .m-sm-n5 {\n margin: -3rem !important; }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important; }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important; }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important; }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important; }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important; }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important; }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important; }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important; }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important; }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important; }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important; }\n .m-md-1 {\n margin: 0.25rem !important; }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important; }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important; }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important; }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem !important; }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important; }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important; }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important; }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem !important; }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important; }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important; }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important; }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem !important; }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important; }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important; }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important; }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem !important; }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important; }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important; }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important; }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important; }\n .p-md-0 {\n padding: 0 !important; }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important; }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important; }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important; }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important; }\n .p-md-1 {\n padding: 0.25rem !important; }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important; }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important; }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important; }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem !important; }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important; }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important; }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important; }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem !important; }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important; }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important; }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important; }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem !important; }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important; }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important; }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important; }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem !important; }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important; }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important; }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important; }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important; }\n .m-md-n1 {\n margin: -0.25rem !important; }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important; }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important; }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important; }\n .m-md-n2 {\n margin: -0.5rem !important; }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important; }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important; }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important; }\n .m-md-n3 {\n margin: -1rem !important; }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important; }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important; }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important; }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important; }\n .m-md-n4 {\n margin: -1.5rem !important; }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important; }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important; }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important; }\n .m-md-n5 {\n margin: -3rem !important; }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important; }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important; }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important; }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important; }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important; }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important; }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important; }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important; }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important; }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important; }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem !important; }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important; }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important; }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important; }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem !important; }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important; }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important; }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important; }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem !important; }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important; }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important; }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important; }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem !important; }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important; }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important; }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important; }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem !important; }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important; }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important; }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important; }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important; }\n .p-lg-0 {\n padding: 0 !important; }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important; }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important; }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important; }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem !important; }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important; }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important; }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem !important; }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important; }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important; }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem !important; }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important; }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important; }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important; }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem !important; }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important; }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important; }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem !important; }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important; }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important; }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important; }\n .m-lg-n1 {\n margin: -0.25rem !important; }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important; }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important; }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important; }\n .m-lg-n2 {\n margin: -0.5rem !important; }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important; }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important; }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important; }\n .m-lg-n3 {\n margin: -1rem !important; }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important; }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important; }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important; }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important; }\n .m-lg-n4 {\n margin: -1.5rem !important; }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important; }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important; }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important; }\n .m-lg-n5 {\n margin: -3rem !important; }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important; }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important; }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important; }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important; }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important; }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important; }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important; }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important; }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important; }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important; }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem !important; }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important; }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important; }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important; }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem !important; }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important; }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important; }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important; }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem !important; }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important; }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important; }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important; }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem !important; }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important; }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important; }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important; }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem !important; }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important; }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important; }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important; }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important; }\n .p-xl-0 {\n padding: 0 !important; }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important; }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important; }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important; }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem !important; }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important; }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important; }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem !important; }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important; }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important; }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem !important; }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important; }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important; }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important; }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem !important; }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important; }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important; }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem !important; }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important; }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important; }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important; }\n .m-xl-n1 {\n margin: -0.25rem !important; }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important; }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important; }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important; }\n .m-xl-n2 {\n margin: -0.5rem !important; }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important; }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important; }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important; }\n .m-xl-n3 {\n margin: -1rem !important; }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important; }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important; }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important; }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important; }\n .m-xl-n4 {\n margin: -1.5rem !important; }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important; }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important; }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important; }\n .m-xl-n5 {\n margin: -3rem !important; }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important; }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important; }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important; }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important; }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important; }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important; }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important; } }\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: "";\n background-color: rgba(0, 0, 0, 0); }\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; }\n\n.text-justify {\n text-align: justify !important; }\n\n.text-wrap {\n white-space: normal !important; }\n\n.text-nowrap {\n white-space: nowrap !important; }\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.text-left {\n text-align: left !important; }\n\n.text-right {\n text-align: right !important; }\n\n.text-center {\n text-align: center !important; }\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important; }\n .text-sm-right {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important; }\n .text-md-right {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important; }\n .text-lg-right {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important; }\n .text-xl-right {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n\n.text-lowercase {\n text-transform: lowercase !important; }\n\n.text-uppercase {\n text-transform: uppercase !important; }\n\n.text-capitalize {\n text-transform: capitalize !important; }\n\n.font-weight-light {\n font-weight: 300 !important; }\n\n.font-weight-lighter {\n font-weight: lighter !important; }\n\n.font-weight-normal {\n font-weight: 400 !important; }\n\n.font-weight-bold {\n font-weight: 700 !important; }\n\n.font-weight-bolder {\n font-weight: bolder !important; }\n\n.font-italic {\n font-style: italic !important; }\n\n.text-white {\n color: #fff !important; }\n\n.text-primary {\n color: #375a7f !important; }\n\na.text-primary:hover, a.text-primary:focus {\n color: #20344a !important; }\n\n.text-secondary {\n color: #444 !important; }\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #1e1e1e !important; }\n\n.text-success {\n color: #00bc8c !important; }\n\na.text-success:hover, a.text-success:focus {\n color: #007053 !important; }\n\n.text-info {\n color: #3498db !important; }\n\na.text-info:hover, a.text-info:focus {\n color: #1d6fa5 !important; }\n\n.text-warning {\n color: #f39c12 !important; }\n\na.text-warning:hover, a.text-warning:focus {\n color: #b06f09 !important; }\n\n.text-danger {\n color: #e74c3c !important; }\n\na.text-danger:hover, a.text-danger:focus {\n color: #bf2718 !important; }\n\n.text-light {\n color: #adb5bd !important; }\n\na.text-light:hover, a.text-light:focus {\n color: #838f9b !important; }\n\n.text-dark {\n color: #303030 !important; }\n\na.text-dark:hover, a.text-dark:focus {\n color: #0a0a0a !important; }\n\n.text-body {\n color: #fff !important; }\n\n.text-muted {\n color: #888 !important; }\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important; }\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important; }\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n\n.text-decoration-none {\n text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important; }\n\n.text-reset {\n color: inherit !important; }\n\n.visible {\n visibility: visible !important; }\n\n.invisible {\n visibility: hidden !important; }\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important; }\n a:not(.btn) {\n text-decoration: underline; }\n abbr[title]::after {\n content: " (" attr(title) ")"; }\n pre {\n white-space: pre-wrap !important; }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr,\n img {\n page-break-inside: avoid; }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3; }\n h2,\n h3 {\n page-break-after: avoid; }\n @page {\n size: a3; }\n body {\n min-width: 992px !important; }\n .container {\n min-width: 992px !important; }\n .navbar {\n display: none; }\n .badge {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td,\n .table th {\n background-color: #fff !important; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important; }\n .table-dark {\n color: inherit; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #444; }\n .table .thead-dark th {\n color: inherit;\n border-color: #444; } }\n\n.blockquote-footer {\n color: #888; }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #375a7f; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #444; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #adb5bd; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #303030; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #00bc8c; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #3498db; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #e74c3c; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #f39c12; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-hover .table-primary:hover,\n.table-hover .table-primary:hover > th,\n.table-hover .table-primary:hover > td {\n background-color: #2f4d6d; }\n\n.table-hover .table-secondary:hover,\n.table-hover .table-secondary:hover > th,\n.table-hover .table-secondary:hover > td {\n background-color: #373737; }\n\n.table-hover .table-light:hover,\n.table-hover .table-light:hover > th,\n.table-hover .table-light:hover > td {\n background-color: #9fa8b2; }\n\n.table-hover .table-dark:hover,\n.table-hover .table-dark:hover > th,\n.table-hover .table-dark:hover > td {\n background-color: #232323; }\n\n.table-hover .table-success:hover,\n.table-hover .table-success:hover > th,\n.table-hover .table-success:hover > td {\n background-color: #00a379; }\n\n.table-hover .table-info:hover,\n.table-hover .table-info:hover > th,\n.table-hover .table-info:hover > td {\n background-color: #258cd1; }\n\n.table-hover .table-danger:hover,\n.table-hover .table-danger:hover > th,\n.table-hover .table-danger:hover > td {\n background-color: #e43725; }\n\n.table-hover .table-warning:hover,\n.table-hover .table-warning:hover > th,\n.table-hover .table-warning:hover > td {\n background-color: #e08e0b; }\n\n.table-hover .table-active:hover,\n.table-hover .table-active:hover > th,\n.table-hover .table-active:hover > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.input-group-addon {\n color: #fff; }\n\n.nav-tabs .nav-link,\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-link.active:focus,\n.nav-tabs .nav-link.active:hover,\n.nav-tabs .nav-item.open .nav-link,\n.nav-tabs .nav-item.open .nav-link:focus,\n.nav-tabs .nav-item.open .nav-link:hover,\n.nav-pills .nav-link,\n.nav-pills .nav-link.active,\n.nav-pills .nav-link.active:focus,\n.nav-pills .nav-link.active:hover,\n.nav-pills .nav-item.open .nav-link,\n.nav-pills .nav-item.open .nav-link:focus,\n.nav-pills .nav-item.open .nav-link:hover {\n color: #fff; }\n\n.breadcrumb a {\n color: #fff; }\n\n.pagination a:hover {\n text-decoration: none; }\n\n.close {\n opacity: .4; }\n .close:hover, .close:focus {\n opacity: 1; }\n\n.alert {\n border: none;\n color: #fff; }\n .alert a,\n .alert .alert-link {\n color: #fff;\n text-decoration: underline; }\n .alert-primary {\n background-color: #375a7f; }\n .alert-secondary {\n background-color: #444; }\n .alert-success {\n background-color: #00bc8c; }\n .alert-info {\n background-color: #3498db; }\n .alert-warning {\n background-color: #f39c12; }\n .alert-danger {\n background-color: #e74c3c; }\n .alert-light {\n background-color: #adb5bd; }\n .alert-dark {\n background-color: #303030; }\n\n.list-group-item-action {\n color: #fff; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n background-color: #444;\n color: #fff; }\n .list-group-item-action .list-group-item-heading {\n color: #fff; }\n\nbody {\n min-height: 100vh; }\n\n.border-bottom {\n border-width: 3px !important; }\n\n.border-top {\n border-width: 3px !important; }\n\ntr.hide {\n display: none; }\n\n.rebooting {\n display: none; }\n\ntd.value {\n width: 80%; }\n\n#boot-div {\n float: right; }\n\n/* body {\r\n border: 0;\r\n margin: 0;\r\n margin-bottom:50px;\r\n padding-left: 12px;\r\n padding-right: 12px;\r\n padding-bottom: 45px;\r\n}\r\na {\r\n color: #fff;\r\n transition: color .2s ease-out;\r\n text-decoration: none\r\n}\r\na:hover {\r\n color: #99f;\r\n text-decoration: none\r\n}\r\n.glyphicon {\r\n font-size: 18px;\r\n}\r\ninput:focus,\r\nselect:focus,\r\ntextarea:focus,\r\nbutton:focus {\r\n outline: none;\r\n}\r\n.blur {\r\n -webkit-filter: blur(2px);\r\n -moz-filter: blur(2px);\r\n -ms-filter: blur(2px);\r\n -o-filter: blur(2px);\r\n filter: blur(2px);\r\n}\r\n.ape {\r\n padding: 10px 0px 10px 10px;\r\n background-color: #444;\r\n}\r\n.ape:hover {\r\n cursor: pointer;\r\n}\r\nheader {\r\n border-bottom: 1px solid #000;\r\n border-top: 1px solid #000;\r\n}\r\nsection {\r\n border-bottom: 1px solid #000;\r\n border-top: 1px solid #000;\r\n}\r\nh1 {\r\n margin: 0;\r\n margin-top: 20px;\r\n padding: 10px;\r\n text-transform: uppercase;\r\n color: #888;\r\n font-size: 1.6em\r\n}\r\nh2 {\r\n margin: 0;\r\n margin-top: 20px;\r\n padding: 10px;\r\n text-transform: uppercase;\r\n color: #888;\r\n font-size: 1.0em\r\n}\r\nh3 {\r\n margin: 0;\r\n text-align: center;\r\n padding: 20px 0px 20px 0px;\r\n}\r\n.gr {\r\n color: green;\r\n}\r\n.rd {\r\n color: red;\r\n}\r\n#wifi-status {\r\n display: none;\r\n}\r\n#connect {\r\n display: none;\r\n}\r\n#connect_manual {\r\n display: none;\r\n}\r\n#manual_ssid {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n#manual_pwd {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n#pwd {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n.buttons {\r\n padding: 15px;\r\n}\r\n#join {\r\n float: right;\r\n}\r\n#manual_join {\r\n float: right;\r\n}\r\n#yes-disconnect {\r\n display: inline-block;\r\n}\r\n#no-disconnect {\r\n display: inline-block;\r\n}\r\n.tctr {\r\n text-align: center;\r\n}\r\n#connect-wait {\r\n display: none;\r\n}\r\n#connect-success {\r\n display: none;\r\n}\r\n#connect-fail {\r\n display: none;\r\n}\r\n#connect-details {\r\n display: none;\r\n}\r\n#diag-disconnect {\r\n display: none;\r\n}\r\n.fr {\r\n float: right;\r\n margin-right: 20px;\r\n} */\n/* .w0 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABzUlEQVRIS+WUTShEURTH3zyRhjQ+8hWxmCJMoSzEwsbCgi1LZRYW9pONptiwka9iI81CWFpYaEqNMkVKmpWN1IhYKN9ZDL/z3p3mxZh5g9X4168799xz/vPefedeLeuVC+3gdTgc07CsmCQ2DI2gg21Jci30wSpGt/CeghickTsHPVACDkgqp67rPgpO4E0ZZMIj7OHhxSvPtEyomcVDeFXJv+EZNvEsNa01rZfAuSUhThR2wU+ObJkbyhRNMMDaDIThBqy1MdZ3wAPawqfFC2Lj0Ab5kpBGxdAJs9TeW72ITUhCPZMjFYwwbwXpnkwlDzOIx50yXwP5c0MeggHGanNqSDqqBqQ7/Kxvg2zHAfMN8IE8uZhYO6eBnBXGKnOakLWfaQZ9jMRjSPXhZUuC5A9JjVFpKkeNSVVA0Tq8KJN0yFl4gilqbW2tm+SQKoybXIG8jcT34RSsh1Byt6iVg2ZLlRCg6JpROqEDpFheXZ5S9rcLFsl5YJwHad+MVA5y13w5lRY5oRsKjdm/Vz/7LR86zG+5wr+9NX+iOowjEO+aELEic+lv1ILppeUPosRst6QduTANgnE2mC+BnYswI1VwfYzCCL9dZij7pWkf6UeSTYAuE/QAAAAASUVORK5CYII=\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w1 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHiSURBVEhL5dRPKINxHMfxPVskpA35F3FYEVasHBYHFwcHrhyVZ8vBfblIceEi/4qLtINwdHCQUpQVKcnJRYqIg/J3OYz399nv0YPNtuzEt149+31/v+/n4fGYLVHpup4Rnyregd+K27TIghe63+8fx7wySqsPdbAj3qzha0MOV6ETiwTd4u0HUZxydgrtKISGj0xreG4gEAgycIRXFZCOR2yTQZSebeaa4Q1s7iOiDv/GM1bJLDJv0EHjzHLAdIFNjHBGHpkbxUo9utmbQBg3sM5G2d+AR24w82XznN4QmpGjXrCExRkXfJhk9t6aRW9YDtSwOFDNE9ZNyFLzKRczOegh406FL8ElG8JDM8S1Qtaq7KhEO0Y0TVtHGHusVxCEDy5oMLNqyVrgWm5kqaYw3mdVdmqQsENE8JbAPbY43yszMqiyHOr66QayL5XH0DJeVEgyUTxhjNmPR/vtBpZyc3hHDZohV5DfRvq7OMYtrDdZY7YwFpG8yhBi6JrrMFogww7IT1mOVsxy5oHrNIqRVpWgDtnGKn7log35xurfVxfPW/7QYT57Ybz7mapqgk9gvjU79ApiW5mpRkIvLTe4oJfyK5lKOQndgvG/wXoOSb8I061Svj4G0M9nZ6z198tmeweYtIrMYP17VAAAAABJRU5ErkJggg==\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w2 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHkSURBVEhL3dRLKERRGMDxuSPSkLzyilgo8iiUhVjYWFiwZancmSzsZSPFho28io1kISwtLKQURZGSrGykiFgo7yyG/zdzznRm5iK5Sk79uvd85/u++5hzx2Pb9q9yDLrJMWhIRB1sv98/ghlliFAXyuGFU21IbECSi9CKORrd4O0TQZyQO45mZMJCpKfZ3BcIBPooOMSravAdD9ikB63sJN1XN69kcQ8vKvknnrBMzyx9gRYCp0aCdo51DJIjr6wU2UoF2lkbxS6uYdYGWV9DtVxgMmbxjFg/apEM/ZQfyUADxqi9M3sRG5CEEib7KnjMvAaye2IbfUVupoMet6r5PDL0YjXBBY4Fai5kRxVCdscg66uQ17HDfAl9kDuXJzB3Thk5sxzzZa6DumHknN3QS+IBPvvh5ZVskN8ZU5+gz3XAlELRIp5Vk6/It/CIYWrjXm3URCkleUsV6iaXkKeR+DaOYH6EkrtCrXxoUf2iJoY8LFB0xXEA9ZBieXS5S3m/jZgi557jBGT7xvWKCxhyIP81ka/SgQ9NSDViURyDbvpTo82yrAPscl4HKxR1aRTT+BhvyhaxtPCSO6OKphfGBc6JZYaX3BnpNN1AUC7AfBrJoRUXR67X6+1BN+fp4dD/Hx7PO4o9VGuAapKIAAAAAElFTkSuQmCC\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w3 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAACAElEQVRIS7XUP0gbYRjH8VSpiBZJWvEflXYQKtqACg6ig4uDg651LPQSHLpLlyDoUhdpVdBFxEG0YwcHCQgRFJSCFKcuUohY6iC0VYtD9PuE9w3vXZ74h16HD3fv733e53KX9y7ied5/pYZhUkPHQ3TBSyQS7zFvTBC9RivKoK3NCwZS3IxBLNLoBFc3yOEbtR/Qj8d4gEJPt3lVMpkcY8E+Lk2D+/iDTXrQyquwfW3zdiZ38dcU/4tzrNHzib3AAMGhU2BlsYFxauSRtaDWaMMwc1PYwU+4a3PMryMuF5gJTH4ne4dOVMLeZSkx9GCatb/cXmQpKXjOYM+EB4w7ILsn2Og28mNe0ePUNF9CzE7GCZc5NpmxkB31FLI7xpn/DHkc24xXMQb55XIH7s55Qc0Cx0YZ29A2LJyzG95S+AU3/fHySNLUjwTWl9tzG7iqWbSCC9PkNvIunGGStUWP1jcwWijOmIW2yTHkbiTfwle4L6HUfmKtvGi+fr6BowHLLPrBMYVuyGK5dfmV8nx7MUvNb44fIdu3qFdR4KiDfGsKb6WiCn145GQ+ahgmNQyTGpYwxPOWP3qHc/mE+76apaih4hmND2B3TYasJlCjUkPFS5oeORfIkhVtSY0aKqI0TSP/bjCew10+hPf6D+r5fIziDefRwFxJahgmNQyPF7kGEsc1es+A2E4AAAAASUVORK5CYII=\') no-repeat left top;\r\n height: 24px;\r\n} */\n/* .pw {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABIUlEQVRIS+3VsU7CUBTGcYhBJCwqwcmEJ2DkCQgzb8ADmLgYWXTzMVjcGNjYGEAXgoSRhTg5OroYIyFY/h+hWGwvtzQ0LpzkF8i5l/uRQ2kTjuPEKrC5T79vzHWJO4wxwzeGuMY5AitsQBFvmEObvNQboQBfhQk4gQ5wD+zgBrcYrHrSwzE2KkxAHVrQWB6QgiqJLB7xA+2pYaNsAWm8QAsa0Sn+1gU+oT1NHGFdtoAcJtBCSw1DuaPqQiNdly0gj1doQaMwleavPc+IJUDffKeADO7Rxxe08A4dEOQD2qPXJ1xh+VuYAirQVaNGFFPov2MM0OXm/UAUZRwCtjoEWP1vQBXuLTgKPYRKMAacoY0oIboDNLB8+PgC4hLY3B8nsQCQEf56jLJoQAAAAABJRU5ErkJggg==\') no-repeat left top;\r\n height: 24px;\r\n} */\n/* SpinKit is licensed under the MIT License. Copyright (c) 2015 Tobias Ahlin */\n/* .spinner {\r\n width: 40px;\r\n height: 40px;\r\n \r\n position: relative;\r\n margin: 100px auto;\r\n }\r\n \r\n .double-bounce1, .double-bounce2 {\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 50%;\r\n background-color: #333;\r\n opacity: 0.6;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n \r\n -webkit-animation: bounce 2.0s infinite ease-in-out;\r\n animation: bounce 2.0s infinite ease-in-out;\r\n }\r\n \r\n .double-bounce2 {\r\n -webkit-animation-delay: -1.0s;\r\n animation-delay: -1.0s;\r\n }\r\n \r\n @-webkit-keyframes bounce {\r\n 0%, 100% { -webkit-transform: scale(0.0) }\r\n 50% { -webkit-transform: scale(1.0) }\r\n }\r\n \r\n @keyframes bounce {\r\n 0%, 100% { \r\n transform: scale(0.0);\r\n -webkit-transform: scale(0.0);\r\n } 50% { \r\n transform: scale(1.0);\r\n -webkit-transform: scale(1.0);\r\n }\r\n } */\n/* end of SpinKit */\n/* daduke stuff */\n/* input[type=\'text\'], input[type=\'password\'], textarea, select, option {\r\n background: #999;\r\n border: 0;\r\n padding: 4px;\r\n}\r\n\r\n.custom-switch {\r\n margin-left: 8px;\r\n}\r\n\r\n.custom-switch, .custom-radio {\r\n padding-left: 2.25rem;\r\n padding-bottom: 1rem;\r\n}\r\n\r\n.custom-checkbox > .custom-control-label {\r\n padding-top: 0.5rem;\r\n padding-left: 2rem;\r\n padding-bottom: 0.1rem;\r\n}\r\n\r\n.custom-switch .custom-control-label::before {\r\n left: -2.25rem;\r\n height: 2rem;\r\n width: 3.5rem;\r\n pointer-events: all;\r\n border-radius: 1rem;\r\n background-color: #f00;\r\n} */\n/* \r\n.custom-switch .custom-control-label::after {\r\n top: calc(0.25rem + 2px);\r\n left: calc(-2.25rem + 2px);\r\n width: calc(2rem - 4px);\r\n height: calc(2rem - 4px);\r\n background-color: #adb5bd;\r\n border-radius: 2rem;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\r\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .custom-switch .custom-control-label::after {\r\n transition: none;\r\n }\r\n} */\n/* \r\n.custom-switch .custom-control-input:checked ~ .custom-control-label::before {\r\n background-color: #0f0;\r\n}\r\n\r\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\r\n background-color: #fff;\r\n -webkit-transform: translateX(1.5rem); \r\n transform: translateX(1.5rem); \r\n}\r\n\r\ntextarea#autoexec1, textarea#fwurl, div#upload {\r\n width: 80%;\r\n}\r\n\r\ntable tr.MESSAGING_INFO {\r\n background: #123;\r\n}\r\n\r\ntable tr.MESSAGING_WARNING {\r\n background: #330;\r\n}\r\n\r\ntable tr.MESSAGING_ERROR {\r\n background: #300;\r\n}\r\n\r\ninput, textarea {\r\n border-radius: 3px;\r\n border: 1px solid transparent;\r\n border-top: none;\r\n border-bottom: 1px solid #DDD;\r\n box-shadow: inset 0 1px 2px rgba(0,0,0,.39), 0 -1px 1px #FFF, 0 1px 0 #FFF;\r\n}\r\n\r\n#otadiv {\r\n\tdisplay: none;\r\n}\r\n\r\n#btsinkdiv {\r\n\tdisplay: none;\r\n}\r\n\r\n.tooltip-inner {\r\n font-family: monospace, monospace;\r\n font-size: 70%;\r\n}\r\n\r\n#progress {\r\n width: 60%;\r\n}\r\n\r\n.progress-bar {\r\n color: #fff;\r\n background-color: #037AF0;\r\n}\r\n\r\nspan#flash-status {\r\n padding-left: 15px;\r\n font-size: 120%;\r\n} */\n/* #info {\r\n padding-top: 7px;\r\n float: right;\r\n display: grid;\r\n} */\n/* svg#battery {\r\n fill: #ddd;\r\n}\r\n\r\nsvg#output {\r\n fill: #ddd;\r\n padding-right: 4px;\r\n}\r\n\r\nsvg#jack {\r\n fill: #ddd;\r\n padding-right: 4px;\r\n} */\n/* \r\nul#navbar {\r\n border-bottom: 0px;\r\n}\r\n.navbar-nav {\r\n float: left;\r\n margin: 0;\r\n padding-top: 1rem;\r\n\r\n}\r\n#content {\r\n border-top: 1px solid black;\r\n} */\n/* .footer {\r\n position: fixed;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n background-color: #555;\r\n color: white;\r\n text-align: center;\r\n} */\n/* \r\n.sl {\r\n background-color: #053c1e;\r\n}\r\n.recovery {\r\n background-color: #3c0505;\r\n}\r\n\r\n\r\n\r\n\r\ndiv#message {\r\n display: none;\r\n color: #000;\r\n background: #f00;\r\n position:fixed;\r\n padding: 8px;\r\n top: 20%;\r\n left: 50%;\r\n width:20em;\r\n height:4em;\r\n text-align: center;\r\n margin-left: -10em; \r\n margin-top: -2em; \r\n border-radius: 8px;\r\n box-shadow: 0px 5px 2px -5px rgba(255, 255, 255, 0.5) inset, 0px 10px 20px -5px rgba(255, 255, 255, 0.1) inset, 0 0px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 1px rgba(0, 0, 0, 0.12), 0 1px 10px 0 rgba(0, 0, 0, 0.3);\r\n z-index: 20;\r\n} */\n/* \r\n */\n/* \r\n#searchfw {\r\n float: right;\r\n display: none;\r\n} */\n/* button#updateAP {\r\n float: right;\r\n display: inline;\r\n} */\n',""])},33:function(n,t){n.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEXIycuswsKMjI4rqqZyc3RQlpQ6jIEmJifW2dq5ursppJ8Om4zC0NAFdGYmmpb///8Hg3O4x8cHkoEggX0jko5Ks6/P0dM5r6ocoZb3+PgiiYVevrp/y8bg4uOS09FtxMDs7+7M6um529qoysik2tiNn72gAAAAF3RSTlP94Fr/Wf39BP26/////////////////kibhL0AAAGjSURBVDjLbZMJkoMgEEWtmETEJWpkiSC45P5nnF4wk7HmW2jLfzYIdFYUxbXUYp5nIbTOUFoLAR2ivIKZFQXYuu6TahSHmdAlAqWub0/QNI1jSxrHacKeWw9EdtH1xHbbyiRgCJn67JqVAr9nO2fJnBDMoUuYEvsfmxnJBM66Zj8/iYmaAPKlOvRNJAC/fz8OefINEAngAbYPEMiHTJCCAZrACciVMpCCgDEBKwsAowymMO3IAP3Btqa5vYJx0ZlcOSUZaE/AWznvnTHOyfZ/wMUQvAIg/wb27QNEH94BgGj+APsZiF8AXAhQQEMwkIYYLW7xvsENoyUoF0I0ysf0F2O743kDQNXzXM8+j8Eb6byzDEz7gtpsO1PgrXG5Nd6btNTP+YXarKTny1uQ9JiAN6vbqT9au+BzMQjAWtlq6BiYttdjiVVVqfXxWFWFkk6Cz0DTdYOFPmpHAAK/YQCJoTppQJ8A3TAxVAAhR439Bg5tKe7NgSDEje3mDsf+ovuGCUbYZb/BwoHS6ykHMYfo/U6lx8Xb/+qo3U/x/lf+VP9c/j9c3zy20WEMxgAAAABJRU5ErkJggg=="},37:function(n,t){},38:function(n,t,o){"use strict";o.r(t);o(6),o(11),o(16),o(17),o(18),o(19),o(20),o(21),o(22),o(23),o(24),o(25),o(26),o(27),o(28),o(29),o(30),o(31),o(32),o(33);var r=o(3),e=o.n(r),a=o(1),i=o.n(a),l=o(5),d=o.n(l),m=o(0);function c(n,t){var o;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(o=function(n,t){if(!n)return;if("string"==typeof n)return s(n,t);var o=Object.prototype.toString.call(n).slice(8,-1);"Object"===o&&n.constructor&&(o=n.constructor.name);if("Map"===o||"Set"===o)return Array.from(n);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return s(n,t)}(n))||t&&n&&"number"==typeof n.length){o&&(n=o);var r=0,e=function(){};return{s:e,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:e}}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 a,i=!0,l=!1;return{s:function(){o=n[Symbol.iterator]()},n:function(){var n=o.next();return i=n.done,n},e:function(n){l=!0,a=n},f:function(){try{i||null==o.return||o.return()}finally{if(l)throw a}}}}function s(n,t){(null==t||t>n.length)&&(t=n.length);for(var o=0,r=new Array(t);o")}}),Object.assign(Date.prototype,{toLocalShort:function(){return this.toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"})}});var p=1,b=17,g=2,f=18,u=4,h=20,x=8,v=24,w={bt_playing:"play-circle-fill",bt_disconnected:"bluetooth-fill",bt_neutral:"",bt_connected:"bluetooth-connect-fill",bt_disabled:"",play_arrow:"play-circle-fill",pause:"pause-circle-fill",stop:"stop-circle-fill","":""},y=[{desc:"Idle",sub:["bt_neutral"]},{desc:"Discovering",sub:["bt_disconnected"]},{desc:"Discovered",sub:["bt_disconnected"]},{desc:"Unconnected",sub:["bt_disconnected"]},{desc:"Connecting",sub:["bt_disconnected"]},{desc:"Connected",sub:["bt_connected","play_arrow","bt_playing","pause","stop"]},{desc:"Disconnecting",sub:["bt_disconnected"]}],k={MESSAGING_INFO:"badge-success",MESSAGING_WARNING:"badge-warning",MESSAGING_ERROR:"badge-danger"},A=0,S=1,z=3,E=4,_={0:"eRunning", +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{11:function(n,t,o){var r=o(12);"string"==typeof r&&(r=[[n.i,r,""]]);var e={hmr:!0,transform:void 0,insertInto:void 0};o(14)(r,e);r.locals&&(n.exports=r.locals)},12:function(n,t,o){(t=n.exports=o(13)(!1)).push([n.i,"@import url(https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap);",""]),t.push([n.i,'/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root {\n --blue: #375a7f;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #e74c3c;\n --orange: #fd7e14;\n --yellow: #f39c12;\n --green: #00bc8c;\n --teal: #20c997;\n --cyan: #3498db;\n --white: #fff;\n --gray: #888;\n --gray-dark: #303030;\n --primary: #375a7f;\n --secondary: #444;\n --success: #00bc8c;\n --info: #3498db;\n --warning: #f39c12;\n --danger: #e74c3c;\n --light: #adb5bd;\n --dark: #303030;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; }\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block; }\n\nbody {\n margin: 0;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #fff;\n text-align: left;\n background-color: #222; }\n\n[tabindex="-1"]:focus:not(:focus-visible) {\n outline: 0 !important; }\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible; }\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem; }\n\np {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none; }\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit; }\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem; }\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0; }\n\ndt {\n font-weight: 700; }\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; }\n\nblockquote {\n margin: 0 0 1rem; }\n\nb,\nstrong {\n font-weight: bolder; }\n\nsmall {\n font-size: 80%; }\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline; }\n\nsub {\n bottom: -.25em; }\n\nsup {\n top: -.5em; }\n\na {\n color: #00bc8c;\n text-decoration: none;\n background-color: transparent; }\n a:hover {\n color: #007053;\n text-decoration: underline; }\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none; }\n a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none; }\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n font-size: 1em; }\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar; }\n\nfigure {\n margin: 0 0 1rem; }\n\nimg {\n vertical-align: middle;\n border-style: none; }\n\nsvg {\n overflow: hidden;\n vertical-align: middle; }\n\ntable {\n border-collapse: collapse; }\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #888;\n text-align: left;\n caption-side: bottom; }\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent; }\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem; }\n\nbutton {\n border-radius: 0; }\n\nbutton:focus:not(:focus-visible) {\n outline: 0; }\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit; }\n\nbutton,\ninput {\n overflow: visible; }\n\nbutton,\nselect {\n text-transform: none; }\n\n[role="button"] {\n cursor: pointer; }\n\nselect {\n word-wrap: normal; }\n\nbutton,\n[type="button"],\n[type="reset"],\n[type="submit"] {\n -webkit-appearance: button; }\n\nbutton:not(:disabled),\n[type="button"]:not(:disabled),\n[type="reset"]:not(:disabled),\n[type="submit"]:not(:disabled) {\n cursor: pointer; }\n\nbutton::-moz-focus-inner,\n[type="button"]::-moz-focus-inner,\n[type="reset"]::-moz-focus-inner,\n[type="submit"]::-moz-focus-inner {\n padding: 0;\n border-style: none; }\n\ninput[type="radio"],\ninput[type="checkbox"] {\n box-sizing: border-box;\n padding: 0; }\n\ntextarea {\n overflow: auto;\n resize: vertical; }\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0; }\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal; }\n\nprogress {\n vertical-align: baseline; }\n\n[type="number"]::-webkit-inner-spin-button,\n[type="number"]::-webkit-outer-spin-button {\n height: auto; }\n\n[type="search"] {\n outline-offset: -2px;\n -webkit-appearance: none; }\n\n[type="search"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button; }\n\noutput {\n display: inline-block; }\n\nsummary {\n display: list-item;\n cursor: pointer; }\n\ntemplate {\n display: none; }\n\n[hidden] {\n display: none !important; }\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2; }\n\nh1, .h1 {\n font-size: 3rem; }\n\nh2, .h2 {\n font-size: 2.5rem; }\n\nh3, .h3 {\n font-size: 2rem; }\n\nh4, .h4 {\n font-size: 1.40625rem; }\n\nh5, .h5 {\n font-size: 1.17188rem; }\n\nh6, .h6 {\n font-size: 0.9375rem; }\n\n.lead {\n font-size: 1.17188rem;\n font-weight: 300; }\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2; }\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1); }\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400; }\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3; }\n\n.list-unstyled {\n padding-left: 0;\n list-style: none; }\n\n.list-inline {\n padding-left: 0;\n list-style: none; }\n\n.list-inline-item {\n display: inline-block; }\n .list-inline-item:not(:last-child) {\n margin-right: 0.5rem; }\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase; }\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.17188rem; }\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #888; }\n .blockquote-footer::before {\n content: "\\2014\\A0"; }\n\n.img-fluid {\n max-width: 100%;\n height: auto; }\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #222;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto; }\n\n.figure {\n display: inline-block; }\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1; }\n\n.figure-caption {\n font-size: 90%;\n color: #888; }\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word; }\n a > code {\n color: inherit; }\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #222;\n border-radius: 0.2rem; }\n kbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700; }\n\npre {\n display: block;\n font-size: 87.5%;\n color: inherit; }\n pre code {\n font-size: inherit;\n color: inherit;\n word-break: normal; }\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll; }\n\n.container,\n.container-fluid,\n.container-sm,\n.container-md,\n.container-lg,\n.container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto; }\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px; } }\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px; } }\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px; } }\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px; } }\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px; }\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0; }\n .no-gutters > .col,\n .no-gutters > [class*="col-"] {\n padding-right: 0;\n padding-left: 0; }\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px; }\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.row-cols-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n\n.row-cols-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n\n.col-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n\n.col-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n\n.col-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n\n.col-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n\n.col-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n\n.col-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n\n.col-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n\n.col-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n\n.order-first {\n order: -1; }\n\n.order-last {\n order: 13; }\n\n.order-0 {\n order: 0; }\n\n.order-1 {\n order: 1; }\n\n.order-2 {\n order: 2; }\n\n.order-3 {\n order: 3; }\n\n.order-4 {\n order: 4; }\n\n.order-5 {\n order: 5; }\n\n.order-6 {\n order: 6; }\n\n.order-7 {\n order: 7; }\n\n.order-8 {\n order: 8; }\n\n.order-9 {\n order: 9; }\n\n.order-10 {\n order: 10; }\n\n.order-11 {\n order: 11; }\n\n.order-12 {\n order: 12; }\n\n.offset-1 {\n margin-left: 8.33333%; }\n\n.offset-2 {\n margin-left: 16.66667%; }\n\n.offset-3 {\n margin-left: 25%; }\n\n.offset-4 {\n margin-left: 33.33333%; }\n\n.offset-5 {\n margin-left: 41.66667%; }\n\n.offset-6 {\n margin-left: 50%; }\n\n.offset-7 {\n margin-left: 58.33333%; }\n\n.offset-8 {\n margin-left: 66.66667%; }\n\n.offset-9 {\n margin-left: 75%; }\n\n.offset-10 {\n margin-left: 83.33333%; }\n\n.offset-11 {\n margin-left: 91.66667%; }\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-sm-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-sm-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-sm-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-sm-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-sm-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-sm-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-sm-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-sm-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-sm-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-sm-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-sm-first {\n order: -1; }\n .order-sm-last {\n order: 13; }\n .order-sm-0 {\n order: 0; }\n .order-sm-1 {\n order: 1; }\n .order-sm-2 {\n order: 2; }\n .order-sm-3 {\n order: 3; }\n .order-sm-4 {\n order: 4; }\n .order-sm-5 {\n order: 5; }\n .order-sm-6 {\n order: 6; }\n .order-sm-7 {\n order: 7; }\n .order-sm-8 {\n order: 8; }\n .order-sm-9 {\n order: 9; }\n .order-sm-10 {\n order: 10; }\n .order-sm-11 {\n order: 11; }\n .order-sm-12 {\n order: 12; }\n .offset-sm-0 {\n margin-left: 0; }\n .offset-sm-1 {\n margin-left: 8.33333%; }\n .offset-sm-2 {\n margin-left: 16.66667%; }\n .offset-sm-3 {\n margin-left: 25%; }\n .offset-sm-4 {\n margin-left: 33.33333%; }\n .offset-sm-5 {\n margin-left: 41.66667%; }\n .offset-sm-6 {\n margin-left: 50%; }\n .offset-sm-7 {\n margin-left: 58.33333%; }\n .offset-sm-8 {\n margin-left: 66.66667%; }\n .offset-sm-9 {\n margin-left: 75%; }\n .offset-sm-10 {\n margin-left: 83.33333%; }\n .offset-sm-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-md-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-md-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-md-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-md-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-md-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-md-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-md-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-md-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-md-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-md-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-md-first {\n order: -1; }\n .order-md-last {\n order: 13; }\n .order-md-0 {\n order: 0; }\n .order-md-1 {\n order: 1; }\n .order-md-2 {\n order: 2; }\n .order-md-3 {\n order: 3; }\n .order-md-4 {\n order: 4; }\n .order-md-5 {\n order: 5; }\n .order-md-6 {\n order: 6; }\n .order-md-7 {\n order: 7; }\n .order-md-8 {\n order: 8; }\n .order-md-9 {\n order: 9; }\n .order-md-10 {\n order: 10; }\n .order-md-11 {\n order: 11; }\n .order-md-12 {\n order: 12; }\n .offset-md-0 {\n margin-left: 0; }\n .offset-md-1 {\n margin-left: 8.33333%; }\n .offset-md-2 {\n margin-left: 16.66667%; }\n .offset-md-3 {\n margin-left: 25%; }\n .offset-md-4 {\n margin-left: 33.33333%; }\n .offset-md-5 {\n margin-left: 41.66667%; }\n .offset-md-6 {\n margin-left: 50%; }\n .offset-md-7 {\n margin-left: 58.33333%; }\n .offset-md-8 {\n margin-left: 66.66667%; }\n .offset-md-9 {\n margin-left: 75%; }\n .offset-md-10 {\n margin-left: 83.33333%; }\n .offset-md-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-lg-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-lg-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-lg-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-lg-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-lg-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-lg-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-lg-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-lg-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-lg-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-lg-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-lg-first {\n order: -1; }\n .order-lg-last {\n order: 13; }\n .order-lg-0 {\n order: 0; }\n .order-lg-1 {\n order: 1; }\n .order-lg-2 {\n order: 2; }\n .order-lg-3 {\n order: 3; }\n .order-lg-4 {\n order: 4; }\n .order-lg-5 {\n order: 5; }\n .order-lg-6 {\n order: 6; }\n .order-lg-7 {\n order: 7; }\n .order-lg-8 {\n order: 8; }\n .order-lg-9 {\n order: 9; }\n .order-lg-10 {\n order: 10; }\n .order-lg-11 {\n order: 11; }\n .order-lg-12 {\n order: 12; }\n .offset-lg-0 {\n margin-left: 0; }\n .offset-lg-1 {\n margin-left: 8.33333%; }\n .offset-lg-2 {\n margin-left: 16.66667%; }\n .offset-lg-3 {\n margin-left: 25%; }\n .offset-lg-4 {\n margin-left: 33.33333%; }\n .offset-lg-5 {\n margin-left: 41.66667%; }\n .offset-lg-6 {\n margin-left: 50%; }\n .offset-lg-7 {\n margin-left: 58.33333%; }\n .offset-lg-8 {\n margin-left: 66.66667%; }\n .offset-lg-9 {\n margin-left: 75%; }\n .offset-lg-10 {\n margin-left: 83.33333%; }\n .offset-lg-11 {\n margin-left: 91.66667%; } }\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%; }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%; }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%; }\n .row-cols-xl-3 > * {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%; }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%; }\n .row-cols-xl-6 > * {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; }\n .col-xl-1 {\n flex: 0 0 8.33333%;\n max-width: 8.33333%; }\n .col-xl-2 {\n flex: 0 0 16.66667%;\n max-width: 16.66667%; }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%; }\n .col-xl-4 {\n flex: 0 0 33.33333%;\n max-width: 33.33333%; }\n .col-xl-5 {\n flex: 0 0 41.66667%;\n max-width: 41.66667%; }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%; }\n .col-xl-7 {\n flex: 0 0 58.33333%;\n max-width: 58.33333%; }\n .col-xl-8 {\n flex: 0 0 66.66667%;\n max-width: 66.66667%; }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%; }\n .col-xl-10 {\n flex: 0 0 83.33333%;\n max-width: 83.33333%; }\n .col-xl-11 {\n flex: 0 0 91.66667%;\n max-width: 91.66667%; }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%; }\n .order-xl-first {\n order: -1; }\n .order-xl-last {\n order: 13; }\n .order-xl-0 {\n order: 0; }\n .order-xl-1 {\n order: 1; }\n .order-xl-2 {\n order: 2; }\n .order-xl-3 {\n order: 3; }\n .order-xl-4 {\n order: 4; }\n .order-xl-5 {\n order: 5; }\n .order-xl-6 {\n order: 6; }\n .order-xl-7 {\n order: 7; }\n .order-xl-8 {\n order: 8; }\n .order-xl-9 {\n order: 9; }\n .order-xl-10 {\n order: 10; }\n .order-xl-11 {\n order: 11; }\n .order-xl-12 {\n order: 12; }\n .offset-xl-0 {\n margin-left: 0; }\n .offset-xl-1 {\n margin-left: 8.33333%; }\n .offset-xl-2 {\n margin-left: 16.66667%; }\n .offset-xl-3 {\n margin-left: 25%; }\n .offset-xl-4 {\n margin-left: 33.33333%; }\n .offset-xl-5 {\n margin-left: 41.66667%; }\n .offset-xl-6 {\n margin-left: 50%; }\n .offset-xl-7 {\n margin-left: 58.33333%; }\n .offset-xl-8 {\n margin-left: 66.66667%; }\n .offset-xl-9 {\n margin-left: 75%; }\n .offset-xl-10 {\n margin-left: 83.33333%; }\n .offset-xl-11 {\n margin-left: 91.66667%; } }\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #fff; }\n .table th,\n .table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #444; }\n .table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #444; }\n .table tbody + tbody {\n border-top: 2px solid #444; }\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem; }\n\n.table-bordered {\n border: 1px solid #444; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #444; }\n .table-bordered thead th,\n .table-bordered thead td {\n border-bottom-width: 2px; }\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0; }\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: #303030; }\n\n.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #c7d1db; }\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #97a9bc; }\n\n.table-hover .table-primary:hover {\n background-color: #b7c4d1; }\n .table-hover .table-primary:hover > td,\n .table-hover .table-primary:hover > th {\n background-color: #b7c4d1; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #cbcbcb; }\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #9e9e9e; }\n\n.table-hover .table-secondary:hover {\n background-color: #bebebe; }\n .table-hover .table-secondary:hover > td,\n .table-hover .table-secondary:hover > th {\n background-color: #bebebe; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #b8ecdf; }\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #7adcc3; }\n\n.table-hover .table-success:hover {\n background-color: #a4e7d6; }\n .table-hover .table-success:hover > td,\n .table-hover .table-success:hover > th {\n background-color: #a4e7d6; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #c6e2f5; }\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #95c9ec; }\n\n.table-hover .table-info:hover {\n background-color: #b0d7f1; }\n .table-hover .table-info:hover > td,\n .table-hover .table-info:hover > th {\n background-color: #b0d7f1; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #fce3bd; }\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #f9cc84; }\n\n.table-hover .table-warning:hover {\n background-color: #fbd9a5; }\n .table-hover .table-warning:hover > td,\n .table-hover .table-warning:hover > th {\n background-color: #fbd9a5; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f8cdc8; }\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #f3a29a; }\n\n.table-hover .table-danger:hover {\n background-color: #f5b8b1; }\n .table-hover .table-danger:hover > td,\n .table-hover .table-danger:hover > th {\n background-color: #f5b8b1; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #e8eaed; }\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #d4d9dd; }\n\n.table-hover .table-light:hover {\n background-color: #dadde2; }\n .table-hover .table-light:hover > td,\n .table-hover .table-light:hover > th {\n background-color: #dadde2; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c5c5c5; }\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #939393; }\n\n.table-hover .table-dark:hover {\n background-color: #b8b8b8; }\n .table-hover .table-dark:hover > td,\n .table-hover .table-dark:hover > th {\n background-color: #b8b8b8; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075); }\n .table-hover .table-active:hover > td,\n .table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table .thead-dark th {\n color: #fff;\n background-color: #303030;\n border-color: #434343; }\n\n.table .thead-light th {\n color: #444;\n background-color: #ebebeb;\n border-color: #444; }\n\n.table-dark {\n color: #fff;\n background-color: #303030; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th {\n border-color: #434343; }\n .table-dark.table-bordered {\n border: 0; }\n .table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05); }\n .table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075); }\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-sm > .table-bordered {\n border: 0; } }\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-md > .table-bordered {\n border: 0; } }\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-lg > .table-bordered {\n border: 0; } }\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive-xl > .table-bordered {\n border: 0; } }\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .table-responsive > .table-bordered {\n border: 0; }\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #444;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #222;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none; } }\n .form-control::-ms-expand {\n background-color: transparent;\n border: 0; }\n .form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #444; }\n .form-control:focus {\n color: #444;\n background-color: #fff;\n border-color: #739ac2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .form-control::placeholder {\n color: #888;\n opacity: 1; }\n .form-control:disabled, .form-control[readonly] {\n background-color: #ebebeb;\n opacity: 1; }\n\ninput[type="date"].form-control,\ninput[type="time"].form-control,\ninput[type="datetime-local"].form-control,\ninput[type="month"].form-control {\n appearance: none; }\n\nselect.form-control:focus::-ms-value {\n color: #444;\n background-color: #fff; }\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%; }\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5; }\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.17188rem;\n line-height: 1.5; }\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.825rem;\n line-height: 1.5; }\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 0.9375rem;\n line-height: 1.5;\n color: #fff;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0; }\n .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0; }\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto; }\n\ntextarea.form-control {\n height: auto; }\n\n.form-group {\n margin-bottom: 1rem; }\n\n.form-text {\n display: block;\n margin-top: 0.25rem; }\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px; }\n .form-row > .col,\n .form-row > [class*="col-"] {\n padding-right: 5px;\n padding-left: 5px; }\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem; }\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem; }\n .form-check-input[disabled] ~ .form-check-label,\n .form-check-input:disabled ~ .form-check-label {\n color: #888; }\n\n.form-check-label {\n margin-bottom: 0; }\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem; }\n .form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0; }\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #00bc8c; }\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.825rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(0, 188, 140, 0.9);\n border-radius: 0.25rem; }\n .form-row > .col > .valid-tooltip,\n .form-row > [class*="col-"] > .valid-tooltip {\n left: 5px; }\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #00bc8c;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2300bc8c\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #00bc8c;\n padding-right: calc(0.75em + 2.3125rem);\n background: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2300bc8c\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }\n .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #00bc8c; }\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #00bc8c; }\n .was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #00bc8c; }\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #00efb2;\n background-color: #00efb2; }\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #00bc8c; }\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #00bc8c; }\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #00bc8c;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.25); }\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #e74c3c; }\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.825rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(231, 76, 60, 0.9);\n border-radius: 0.25rem; }\n .form-row > .col > .invalid-tooltip,\n .form-row > [class*="col-"] > .invalid-tooltip {\n left: 5px; }\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #e74c3c;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' fill=\'none\' stroke=\'%23e74c3c\' viewBox=\'0 0 12 12\'%3e%3ccircle cx=\'6\' cy=\'6\' r=\'4.5\'/%3e%3cpath stroke-linejoin=\'round\' d=\'M5.8 3.6h.4L6 6.5z\'/%3e%3ccircle cx=\'6\' cy=\'8.2\' r=\'.6\' fill=\'%23e74c3c\' stroke=\'none\'/%3e%3c/svg%3e");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }\n .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); }\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #e74c3c;\n padding-right: calc(0.75em + 2.3125rem);\n background: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' fill=\'none\' stroke=\'%23e74c3c\' viewBox=\'0 0 12 12\'%3e%3ccircle cx=\'6\' cy=\'6\' r=\'4.5\'/%3e%3cpath stroke-linejoin=\'round\' d=\'M5.8 3.6h.4L6 6.5z\'/%3e%3ccircle cx=\'6\' cy=\'8.2\' r=\'.6\' fill=\'%23e74c3c\' stroke=\'none\'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; }\n .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #e74c3c; }\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block; }\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #e74c3c; }\n .was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #e74c3c; }\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #ed7669;\n background-color: #ed7669; }\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #e74c3c; }\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #e74c3c; }\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #e74c3c;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25); }\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; }\n .form-inline .form-check {\n width: 100%; }\n @media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0; }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0; }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle; }\n .form-inline .form-control-plaintext {\n display: inline-block; }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto; }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0; }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0; }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center; }\n .form-inline .custom-control-label {\n margin-bottom: 0; } }\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #fff;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 0.9375rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none; } }\n .btn:hover {\n color: #fff;\n text-decoration: none; }\n .btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .btn.disabled, .btn:disabled {\n opacity: 0.65; }\n .btn:not(:disabled):not(.disabled) {\n cursor: pointer; }\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none; }\n\n.btn-primary {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-primary:hover {\n color: #fff;\n background-color: #2b4764;\n border-color: #28415b; }\n .btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #2b4764;\n border-color: #28415b;\n box-shadow: 0 0 0 0.2rem rgba(85, 115, 146, 0.5); }\n .btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n .show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #28415b;\n border-color: #243a53; }\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(85, 115, 146, 0.5); }\n\n.btn-secondary {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-secondary:hover {\n color: #fff;\n background-color: #313131;\n border-color: #2b2b2b; }\n .btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #313131;\n border-color: #2b2b2b;\n box-shadow: 0 0 0 0.2rem rgba(96, 96, 96, 0.5); }\n .btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #2b2b2b;\n border-color: #242424; }\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(96, 96, 96, 0.5); }\n\n.btn-success {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-success:hover {\n color: #fff;\n background-color: #009670;\n border-color: #008966; }\n .btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #009670;\n border-color: #008966;\n box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5); }\n .btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n .show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #008966;\n border-color: #007c5d; }\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 198, 157, 0.5); }\n\n.btn-info {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-info:hover {\n color: #fff;\n background-color: #2384c6;\n border-color: #217dbb; }\n .btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #2384c6;\n border-color: #217dbb;\n box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5); }\n .btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n .show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #217dbb;\n border-color: #1f76b0; }\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 167, 224, 0.5); }\n\n.btn-warning {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-warning:hover {\n color: #fff;\n background-color: #d4860b;\n border-color: #c87f0a; }\n .btn-warning:focus, .btn-warning.focus {\n color: #fff;\n background-color: #d4860b;\n border-color: #c87f0a;\n box-shadow: 0 0 0 0.2rem rgba(245, 171, 54, 0.5); }\n .btn-warning.disabled, .btn-warning:disabled {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n .show > .btn-warning.dropdown-toggle {\n color: #fff;\n background-color: #c87f0a;\n border-color: #bc770a; }\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(245, 171, 54, 0.5); }\n\n.btn-danger {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-danger:hover {\n color: #fff;\n background-color: #e12e1c;\n border-color: #d62c1a; }\n .btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #e12e1c;\n border-color: #d62c1a;\n box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5); }\n .btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n .show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #d62c1a;\n border-color: #ca2a19; }\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(235, 103, 89, 0.5); }\n\n.btn-light {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-light:hover {\n color: #fff;\n background-color: #98a2ac;\n border-color: #919ca6; }\n .btn-light:focus, .btn-light.focus {\n color: #fff;\n background-color: #98a2ac;\n border-color: #919ca6;\n box-shadow: 0 0 0 0.2rem rgba(152, 159, 166, 0.5); }\n .btn-light.disabled, .btn-light:disabled {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n .show > .btn-light.dropdown-toggle {\n color: #fff;\n background-color: #919ca6;\n border-color: #8a95a1; }\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(152, 159, 166, 0.5); }\n\n.btn-dark {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-dark:hover {\n color: #fff;\n background-color: #1d1d1d;\n border-color: #171717; }\n .btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #1d1d1d;\n border-color: #171717;\n box-shadow: 0 0 0 0.2rem rgba(79, 79, 79, 0.5); }\n .btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n .show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #171717;\n border-color: #101010; }\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(79, 79, 79, 0.5); }\n\n.btn-outline-primary {\n color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:hover {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #375a7f;\n background-color: transparent; }\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n\n.btn-outline-secondary {\n color: #444;\n border-color: #444; }\n .btn-outline-secondary:hover {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #444;\n background-color: transparent; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n .show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #444;\n border-color: #444; }\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n\n.btn-outline-success {\n color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:hover {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n .btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #00bc8c;\n background-color: transparent; }\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n .show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #00bc8c;\n border-color: #00bc8c; }\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n\n.btn-outline-info {\n color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:hover {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n .btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #3498db;\n background-color: transparent; }\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n .show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #3498db;\n border-color: #3498db; }\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n\n.btn-outline-warning {\n color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:hover {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #f39c12;\n background-color: transparent; }\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n .show > .btn-outline-warning.dropdown-toggle {\n color: #fff;\n background-color: #f39c12;\n border-color: #f39c12; }\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n\n.btn-outline-danger {\n color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:hover {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #e74c3c;\n background-color: transparent; }\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n .show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #e74c3c;\n border-color: #e74c3c; }\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n\n.btn-outline-light {\n color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:hover {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n .btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #adb5bd;\n background-color: transparent; }\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n .show > .btn-outline-light.dropdown-toggle {\n color: #222;\n background-color: #adb5bd;\n border-color: #adb5bd; }\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n\n.btn-outline-dark {\n color: #303030;\n border-color: #303030; }\n .btn-outline-dark:hover {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #303030;\n background-color: transparent; }\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n .show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #303030;\n border-color: #303030; }\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n .show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n\n.btn-link {\n font-weight: 400;\n color: #00bc8c;\n text-decoration: none; }\n .btn-link:hover {\n color: #007053;\n text-decoration: underline; }\n .btn-link:focus, .btn-link.focus {\n text-decoration: underline; }\n .btn-link:disabled, .btn-link.disabled {\n color: #888;\n pointer-events: none; }\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.btn-block {\n display: block;\n width: 100%; }\n .btn-block + .btn-block {\n margin-top: 0.5rem; }\n\ninput[type="submit"].btn-block,\ninput[type="reset"].btn-block,\ninput[type="button"].btn-block {\n width: 100%; }\n\n.fade {\n transition: opacity 0.15s linear; }\n @media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none; } }\n .fade:not(.show) {\n opacity: 0; }\n\n.collapse:not(.show) {\n display: none; }\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease; }\n @media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none; } }\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative; }\n\n.dropdown-toggle {\n white-space: nowrap; }\n .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent; }\n .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 0.9375rem;\n color: #fff;\n text-align: left;\n list-style: none;\n background-color: #222;\n background-clip: padding-box;\n border: 1px solid #444;\n border-radius: 0.25rem; }\n\n.dropdown-menu-left {\n right: auto;\n left: 0; }\n\n.dropdown-menu-right {\n right: 0;\n left: auto; }\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0; }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0; }\n .dropdown-menu-md-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0; }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto; } }\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0; }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto; } }\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem; }\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent; }\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem; }\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid; }\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0; }\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem; }\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: ""; }\n\n.dropleft .dropdown-toggle::after {\n display: none; }\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: "";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent; }\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0; }\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0; }\n\n.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {\n right: auto;\n bottom: auto; }\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #444; }\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #fff;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0; }\n .dropdown-item:hover, .dropdown-item:focus {\n color: #fff;\n text-decoration: none;\n background-color: #375a7f; }\n .dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #375a7f; }\n .dropdown-item.disabled, .dropdown-item:disabled {\n color: #adb5bd;\n pointer-events: none;\n background-color: transparent; }\n\n.dropdown-menu.show {\n display: block; }\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.825rem;\n color: #888;\n white-space: nowrap; }\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #fff; }\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; }\n .btn-group > .btn,\n .btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto; }\n .btn-group > .btn:hover,\n .btn-group-vertical > .btn:hover {\n z-index: 1; }\n .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n .btn-group-vertical > .btn:focus,\n .btn-group-vertical > .btn:active,\n .btn-group-vertical > .btn.active {\n z-index: 1; }\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start; }\n .btn-toolbar .input-group {\n width: auto; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px; }\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem; }\n .dropdown-toggle-split::after,\n .dropup .dropdown-toggle-split::after,\n .dropright .dropdown-toggle-split::after {\n margin-left: 0; }\n .dropleft .dropdown-toggle-split::before {\n margin-right: 0; }\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem; }\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem; }\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center; }\n .btn-group-vertical > .btn,\n .btn-group-vertical > .btn-group {\n width: 100%; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px; }\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .btn-group-vertical > .btn:not(:first-child),\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0; }\n .btn-group-toggle > .btn input[type="radio"],\n .btn-group-toggle > .btn input[type="checkbox"],\n .btn-group-toggle > .btn-group > .btn input[type="radio"],\n .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none; }\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%; }\n .input-group > .form-control,\n .input-group > .form-control-plaintext,\n .input-group > .custom-select,\n .input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n margin-bottom: 0; }\n .input-group > .form-control + .form-control,\n .input-group > .form-control + .custom-select,\n .input-group > .form-control + .custom-file,\n .input-group > .form-control-plaintext + .form-control,\n .input-group > .form-control-plaintext + .custom-select,\n .input-group > .form-control-plaintext + .custom-file,\n .input-group > .custom-select + .form-control,\n .input-group > .custom-select + .custom-select,\n .input-group > .custom-select + .custom-file,\n .input-group > .custom-file + .form-control,\n .input-group > .custom-file + .custom-select,\n .input-group > .custom-file + .custom-file {\n margin-left: -1px; }\n .input-group > .form-control:focus,\n .input-group > .custom-select:focus,\n .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3; }\n .input-group > .custom-file .custom-file-input:focus {\n z-index: 4; }\n .input-group > .form-control:not(:first-child),\n .input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group > .custom-file {\n display: flex;\n align-items: center; }\n .input-group > .custom-file:not(:last-child) .custom-file-label,\n .input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .input-group:not(.has-validation) > .form-control:not(:last-child),\n .input-group:not(.has-validation) > .custom-select:not(:last-child),\n .input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .input-group.has-validation > .form-control:nth-last-child(n + 3),\n .input-group.has-validation > .custom-select:nth-last-child(n + 3),\n .input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group-prepend,\n.input-group-append {\n display: flex; }\n .input-group-prepend .btn,\n .input-group-append .btn {\n position: relative;\n z-index: 2; }\n .input-group-prepend .btn:focus,\n .input-group-append .btn:focus {\n z-index: 3; }\n .input-group-prepend .btn + .btn,\n .input-group-prepend .btn + .input-group-text,\n .input-group-prepend .input-group-text + .input-group-text,\n .input-group-prepend .input-group-text + .btn,\n .input-group-append .btn + .btn,\n .input-group-append .btn + .input-group-text,\n .input-group-append .input-group-text + .input-group-text,\n .input-group-append .input-group-text + .btn {\n margin-left: -1px; }\n\n.input-group-prepend {\n margin-right: -1px; }\n\n.input-group-append {\n margin-left: -1px; }\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #adb5bd;\n text-align: center;\n white-space: nowrap;\n background-color: #444;\n border: 1px solid #222;\n border-radius: 0.25rem; }\n .input-group-text input[type="radio"],\n .input-group-text input[type="checkbox"] {\n margin-top: 0; }\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px); }\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.17188rem;\n line-height: 1.5;\n border-radius: 0.3rem; }\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px); }\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5;\n border-radius: 0.2rem; }\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem; }\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,\n.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,\n.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n\n.custom-control {\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.40625rem;\n padding-left: 1.5rem;\n color-adjust: exact; }\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem; }\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.20312rem;\n opacity: 0; }\n .custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #375a7f;\n background-color: #375a7f; }\n .custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #739ac2; }\n .custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #97b3d2;\n border-color: #97b3d2; }\n .custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #888; }\n .custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #ebebeb; }\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top; }\n .custom-control-label::before {\n position: absolute;\n top: 0.20312rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: "";\n background-color: #fff;\n border: #adb5bd solid 1px; }\n .custom-control-label::after {\n position: absolute;\n top: 0.20312rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: "";\n background: 50% / 50% 50% no-repeat; }\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem; }\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z\'/%3e%3c/svg%3e"); }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #375a7f;\n background-color: #375a7f; }\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'4\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e"); }\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%; }\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'12\' height=\'12\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e"); }\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-switch {\n padding-left: 2.25rem; }\n .custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem; }\n .custom-switch .custom-control-label::after {\n top: calc(0.20312rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none; } }\n .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem); }\n .custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(55, 90, 127, 0.5); }\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 0.9375rem;\n font-weight: 400;\n line-height: 1.5;\n color: #444;\n vertical-align: middle;\n background: #fff url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'4\' height=\'5\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23303030\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat;\n border: 1px solid #222;\n border-radius: 0.25rem;\n appearance: none; }\n .custom-select:focus {\n border-color: #739ac2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-select:focus::-ms-value {\n color: #444;\n background-color: #fff; }\n .custom-select[multiple], .custom-select[size]:not([size="1"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none; }\n .custom-select:disabled {\n color: #888;\n background-color: #ebebeb; }\n .custom-select::-ms-expand {\n display: none; }\n .custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #444; }\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.825rem; }\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.17188rem; }\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0; }\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n overflow: hidden;\n opacity: 0; }\n .custom-file-input:focus ~ .custom-file-label {\n border-color: #739ac2;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-file-input[disabled] ~ .custom-file-label,\n .custom-file-input:disabled ~ .custom-file-label {\n background-color: #ebebeb; }\n .custom-file-input:lang(en) ~ .custom-file-label::after {\n content: "Browse"; }\n .custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse); }\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n overflow: hidden;\n font-weight: 400;\n line-height: 1.5;\n color: #adb5bd;\n background-color: #fff;\n border: 1px solid #222;\n border-radius: 0.25rem; }\n .custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #adb5bd;\n content: "Browse";\n background-color: #444;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0; }\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none; }\n .custom-range:focus {\n outline: 0; }\n .custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #222, 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n .custom-range::-moz-focus-outer {\n border: 0; }\n .custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none; } }\n .custom-range::-webkit-slider-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none; } }\n .custom-range::-moz-range-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem; }\n .custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #375a7f;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none; }\n @media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none; } }\n .custom-range::-ms-thumb:active {\n background-color: #97b3d2; }\n .custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem; }\n .custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem; }\n .custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default; }\n .custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd; }\n .custom-range:disabled::-moz-range-track {\n cursor: default; }\n .custom-range:disabled::-ms-thumb {\n background-color: #adb5bd; }\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none; } }\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n\n.nav-link {\n display: block;\n padding: 0.5rem 2rem; }\n .nav-link:hover, .nav-link:focus {\n text-decoration: none; }\n .nav-link.disabled {\n color: #adb5bd;\n pointer-events: none;\n cursor: default; }\n\n.nav-tabs {\n border-bottom: 1px solid #444; }\n .nav-tabs .nav-link {\n margin-bottom: -1px;\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem; }\n .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #444 #444 transparent; }\n .nav-tabs .nav-link.disabled {\n color: #adb5bd;\n background-color: transparent;\n border-color: transparent; }\n .nav-tabs .nav-link.active,\n .nav-tabs .nav-item.show .nav-link {\n color: #fff;\n background-color: #222;\n border-color: #444 #444 transparent; }\n .nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n\n.nav-pills .nav-link {\n border-radius: 0.25rem; }\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #375a7f; }\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center; }\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center; }\n\n.tab-content > .tab-pane {\n display: none; }\n\n.tab-content > .active {\n display: block; }\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 1rem 1rem; }\n .navbar .container,\n .navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between; }\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.32422rem;\n padding-bottom: 0.32422rem;\n margin-right: 1rem;\n font-size: 1.17188rem;\n line-height: inherit;\n white-space: nowrap; }\n .navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none; }\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none; }\n .navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0; }\n .navbar-nav .dropdown-menu {\n position: static;\n float: none; }\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem; }\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center; }\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.17188rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n .navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none; }\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: "";\n background: 50% / 100% 100% no-repeat; }\n\n.navbar-nav-scroll {\n max-height: 75vh;\n overflow-y: auto; }\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row; }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-sm .navbar-toggler {\n display: none; } }\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-md .navbar-nav {\n flex-direction: row; }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-md .navbar-toggler {\n display: none; } }\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row; }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-lg .navbar-toggler {\n display: none; } }\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0; } }\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row; }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand-xl .navbar-toggler {\n display: none; } }\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0; }\n .navbar-expand .navbar-nav {\n flex-direction: row; }\n .navbar-expand .navbar-nav .dropdown-menu {\n position: absolute; }\n .navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem; }\n .navbar-expand > .container,\n .navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap; }\n .navbar-expand .navbar-nav-scroll {\n overflow: visible; }\n .navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto; }\n .navbar-expand .navbar-toggler {\n display: none; }\n\n.navbar-light .navbar-brand {\n color: #222; }\n .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: #222; }\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(34, 34, 34, 0.7); }\n .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: #222; }\n .navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3); }\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: #222; }\n\n.navbar-light .navbar-toggler {\n color: rgba(34, 34, 34, 0.7);\n border-color: rgba(34, 34, 34, 0.1); }\n\n.navbar-light .navbar-toggler-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'30\' height=\'30\' viewBox=\'0 0 30 30\'%3e%3cpath stroke=\'rgba%2834, 34, 34, 0.7%29\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' stroke-width=\'2\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e"); }\n\n.navbar-light .navbar-text {\n color: rgba(34, 34, 34, 0.7); }\n .navbar-light .navbar-text a {\n color: #222; }\n .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: #222; }\n\n.navbar-dark .navbar-brand {\n color: #fff; }\n .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff; }\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.6); }\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: #fff; }\n .navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25); }\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff; }\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.6);\n border-color: rgba(255, 255, 255, 0.1); }\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'30\' height=\'30\' viewBox=\'0 0 30 30\'%3e%3cpath stroke=\'rgba%28255, 255, 255, 0.6%29\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' stroke-width=\'2\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e"); }\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.6); }\n .navbar-dark .navbar-text a {\n color: #fff; }\n .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff; }\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #303030;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem; }\n .card > hr {\n margin-right: 0;\n margin-left: 0; }\n .card > .list-group {\n border-top: inherit;\n border-bottom: inherit; }\n .card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n .card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n .card > .card-header + .list-group,\n .card > .list-group + .card-footer {\n border-top: 0; }\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem; }\n\n.card-title {\n margin-bottom: 0.75rem; }\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0; }\n\n.card-text:last-child {\n margin-bottom: 0; }\n\n.card-link:hover {\n text-decoration: none; }\n\n.card-link + .card-link {\n margin-left: 1.25rem; }\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: #444;\n border-bottom: 1px solid rgba(0, 0, 0, 0.125); }\n .card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: #444;\n border-top: 1px solid rgba(0, 0, 0, 0.125); }\n .card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0; }\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem; }\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n border-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%; }\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px); }\n\n.card-deck .card {\n margin-bottom: 15px; }\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px; }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px; } }\n\n.card-group > .card {\n margin-bottom: 15px; }\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap; }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0; }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0; }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0; }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0; }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0; }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0; } }\n\n.card-columns .card {\n margin-bottom: 0.75rem; }\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1; }\n .card-columns .card {\n display: inline-block;\n width: 100%; } }\n\n.accordion {\n overflow-anchor: none; }\n .accordion > .card {\n overflow: hidden; }\n .accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0; }\n .accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0; }\n .accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px; }\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #444;\n border-radius: 0.25rem; }\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem; }\n .breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: 0.5rem;\n color: #888;\n content: "/"; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline; }\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none; }\n\n.breadcrumb-item.active {\n color: #888; }\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem; }\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: 0;\n line-height: 1.25;\n color: #fff;\n background-color: #00bc8c;\n border: 0 solid transparent; }\n .page-link:hover {\n z-index: 2;\n color: #fff;\n text-decoration: none;\n background-color: #00efb2;\n border-color: transparent; }\n .page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.25); }\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem; }\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem; }\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #00efb2;\n border-color: transparent; }\n\n.page-item.disabled .page-link {\n color: #fff;\n pointer-events: none;\n cursor: auto;\n background-color: #007053;\n border-color: transparent; }\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.17188rem;\n line-height: 1.5; }\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem; }\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem; }\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.825rem;\n line-height: 1.5; }\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem; }\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem; }\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none; } }\n a.badge:hover, a.badge:focus {\n text-decoration: none; }\n .badge:empty {\n display: none; }\n\n.btn .badge {\n position: relative;\n top: -1px; }\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem; }\n\n.badge-primary {\n color: #fff;\n background-color: #375a7f; }\n a.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #28415b; }\n a.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(55, 90, 127, 0.5); }\n\n.badge-secondary {\n color: #fff;\n background-color: #444; }\n a.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #2b2b2b; }\n a.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(68, 68, 68, 0.5); }\n\n.badge-success {\n color: #fff;\n background-color: #00bc8c; }\n a.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #008966; }\n a.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 188, 140, 0.5); }\n\n.badge-info {\n color: #fff;\n background-color: #3498db; }\n a.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #217dbb; }\n a.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.5); }\n\n.badge-warning {\n color: #fff;\n background-color: #f39c12; }\n a.badge-warning:hover, a.badge-warning:focus {\n color: #fff;\n background-color: #c87f0a; }\n a.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5); }\n\n.badge-danger {\n color: #fff;\n background-color: #e74c3c; }\n a.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #d62c1a; }\n a.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.5); }\n\n.badge-light {\n color: #222;\n background-color: #adb5bd; }\n a.badge-light:hover, a.badge-light:focus {\n color: #222;\n background-color: #919ca6; }\n a.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(173, 181, 189, 0.5); }\n\n.badge-dark {\n color: #fff;\n background-color: #303030; }\n a.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #171717; }\n a.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(48, 48, 48, 0.5); }\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #303030;\n border-radius: 0.3rem; }\n @media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem; } }\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0; }\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem; }\n\n.alert-heading {\n color: inherit; }\n\n.alert-link {\n font-weight: 700; }\n\n.alert-dismissible {\n padding-right: 3.90625rem; }\n .alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 0.75rem 1.25rem;\n color: inherit; }\n\n.alert-primary {\n color: #1d2f42;\n background-color: #d7dee5;\n border-color: #c7d1db; }\n .alert-primary hr {\n border-top-color: #b7c4d1; }\n .alert-primary .alert-link {\n color: #0d161f; }\n\n.alert-secondary {\n color: #232323;\n background-color: #dadada;\n border-color: #cbcbcb; }\n .alert-secondary hr {\n border-top-color: #bebebe; }\n .alert-secondary .alert-link {\n color: #0a0a0a; }\n\n.alert-success {\n color: #006249;\n background-color: #ccf2e8;\n border-color: #b8ecdf; }\n .alert-success hr {\n border-top-color: #a4e7d6; }\n .alert-success .alert-link {\n color: #002f23; }\n\n.alert-info {\n color: #1b4f72;\n background-color: #d6eaf8;\n border-color: #c6e2f5; }\n .alert-info hr {\n border-top-color: #b0d7f1; }\n .alert-info .alert-link {\n color: #113249; }\n\n.alert-warning {\n color: #7e5109;\n background-color: #fdebd0;\n border-color: #fce3bd; }\n .alert-warning hr {\n border-top-color: #fbd9a5; }\n .alert-warning .alert-link {\n color: #4e3206; }\n\n.alert-danger {\n color: #78281f;\n background-color: #fadbd8;\n border-color: #f8cdc8; }\n .alert-danger hr {\n border-top-color: #f5b8b1; }\n .alert-danger .alert-link {\n color: #4f1a15; }\n\n.alert-light {\n color: #5a5e62;\n background-color: #eff0f2;\n border-color: #e8eaed; }\n .alert-light hr {\n border-top-color: #dadde2; }\n .alert-light .alert-link {\n color: #424547; }\n\n.alert-dark {\n color: #191919;\n background-color: #d6d6d6;\n border-color: #c5c5c5; }\n .alert-dark hr {\n border-top-color: #b8b8b8; }\n .alert-dark .alert-link {\n color: black; }\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0; }\n to {\n background-position: 0 0; } }\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n line-height: 0;\n font-size: 0.70312rem;\n background-color: #444;\n border-radius: 0.25rem; }\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #375a7f;\n transition: width 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none; } }\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem; }\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes; }\n @media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none; } }\n\n.media {\n display: flex;\n align-items: flex-start; }\n\n.media-body {\n flex: 1; }\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: 0.25rem; }\n\n.list-group-item-action {\n width: 100%;\n color: #444;\n text-align: inherit; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #444;\n text-decoration: none;\n background-color: #444; }\n .list-group-item-action:active {\n color: #fff;\n background-color: #ebebeb; }\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #303030;\n border: 1px solid #444; }\n .list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit; }\n .list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit; }\n .list-group-item.disabled, .list-group-item:disabled {\n color: #888;\n pointer-events: none;\n background-color: #303030; }\n .list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #375a7f;\n border-color: #375a7f; }\n .list-group-item + .list-group-item {\n border-top-width: 0; }\n .list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px; }\n\n.list-group-horizontal {\n flex-direction: row; }\n .list-group-horizontal > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; }\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row; }\n .list-group-horizontal-sm > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-sm > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row; }\n .list-group-horizontal-md > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-md > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row; }\n .list-group-horizontal-lg > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-lg > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row; }\n .list-group-horizontal-xl > .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0; }\n .list-group-horizontal-xl > .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0; }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0; }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px; } }\n\n.list-group-flush {\n border-radius: 0; }\n .list-group-flush > .list-group-item {\n border-width: 0 0 1px; }\n .list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0; }\n\n.list-group-item-primary {\n color: #1d2f42;\n background-color: #c7d1db; }\n .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #1d2f42;\n background-color: #b7c4d1; }\n .list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #1d2f42;\n border-color: #1d2f42; }\n\n.list-group-item-secondary {\n color: #232323;\n background-color: #cbcbcb; }\n .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #232323;\n background-color: #bebebe; }\n .list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #232323;\n border-color: #232323; }\n\n.list-group-item-success {\n color: #006249;\n background-color: #b8ecdf; }\n .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #006249;\n background-color: #a4e7d6; }\n .list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #006249;\n border-color: #006249; }\n\n.list-group-item-info {\n color: #1b4f72;\n background-color: #c6e2f5; }\n .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #1b4f72;\n background-color: #b0d7f1; }\n .list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #1b4f72;\n border-color: #1b4f72; }\n\n.list-group-item-warning {\n color: #7e5109;\n background-color: #fce3bd; }\n .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #7e5109;\n background-color: #fbd9a5; }\n .list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #7e5109;\n border-color: #7e5109; }\n\n.list-group-item-danger {\n color: #78281f;\n background-color: #f8cdc8; }\n .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #78281f;\n background-color: #f5b8b1; }\n .list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #78281f;\n border-color: #78281f; }\n\n.list-group-item-light {\n color: #5a5e62;\n background-color: #e8eaed; }\n .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #5a5e62;\n background-color: #dadde2; }\n .list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #5a5e62;\n border-color: #5a5e62; }\n\n.list-group-item-dark {\n color: #191919;\n background-color: #c5c5c5; }\n .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #191919;\n background-color: #b8b8b8; }\n .list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #191919;\n border-color: #191919; }\n\n.close {\n float: right;\n font-size: 1.40625rem;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-shadow: none;\n opacity: .5; }\n .close:hover {\n color: #fff;\n text-decoration: none; }\n .close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75; }\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0; }\n\na.close.disabled {\n pointer-events: none; }\n\n.toast {\n flex-basis: 350px;\n max-width: 350px;\n font-size: 0.875rem;\n background-color: #444;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n opacity: 0;\n border-radius: 0.25rem; }\n .toast:not(:last-child) {\n margin-bottom: 0.75rem; }\n .toast.showing {\n opacity: 1; }\n .toast.show {\n display: block;\n opacity: 1; }\n .toast.hide {\n display: none; }\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #888;\n background-color: #303030;\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px); }\n\n.toast-body {\n padding: 0.75rem; }\n\n.modal-open {\n overflow: hidden; }\n .modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto; }\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0; }\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none; }\n .modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px); }\n @media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none; } }\n .modal.show .modal-dialog {\n transform: none; }\n .modal.modal-static .modal-dialog {\n transform: scale(1.02); }\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden; }\n .modal-dialog-scrollable .modal-header,\n .modal-dialog-scrollable .modal-footer {\n flex-shrink: 0; }\n .modal-dialog-scrollable .modal-body {\n overflow-y: auto; }\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem); }\n .modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n height: min-content;\n content: ""; }\n .modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%; }\n .modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none; }\n .modal-dialog-centered.modal-dialog-scrollable::before {\n content: none; }\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #303030;\n background-clip: padding-box;\n border: 1px solid #444;\n border-radius: 0.3rem;\n outline: 0; }\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000; }\n .modal-backdrop.fade {\n opacity: 0; }\n .modal-backdrop.show {\n opacity: 0.5; }\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #444;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto; }\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5; }\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem; }\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #444;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px); }\n .modal-footer > * {\n margin: 0.25rem; }\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll; }\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto; }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem); }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem); }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem); }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n height: min-content; }\n .modal-sm {\n max-width: 300px; } }\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px; } }\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px; } }\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.825rem;\n word-wrap: break-word;\n opacity: 0; }\n .tooltip.show {\n opacity: 0.9; }\n .tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem; }\n .tooltip .arrow::before {\n position: absolute;\n content: "";\n border-color: transparent;\n border-style: solid; }\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {\n padding: 0.4rem 0; }\n .bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {\n bottom: 0; }\n .bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000; }\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {\n padding: 0 0.4rem; }\n .bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000; }\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {\n padding: 0.4rem 0; }\n .bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {\n top: 0; }\n .bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000; }\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {\n padding: 0 0.4rem; }\n .bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem; }\n .bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000; }\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem; }\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.825rem;\n word-wrap: break-word;\n background-color: #303030;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem; }\n .popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem; }\n .popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: "";\n border-color: transparent;\n border-style: solid; }\n\n.bs-popover-top, .bs-popover-auto[x-placement^="top"] {\n margin-bottom: 0.5rem; }\n .bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow {\n bottom: calc(-0.5rem - 1px); }\n .bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #303030; }\n\n.bs-popover-right, .bs-popover-auto[x-placement^="right"] {\n margin-left: 0.5rem; }\n .bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #303030; }\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {\n margin-top: 0.5rem; }\n .bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow {\n top: calc(-0.5rem - 1px); }\n .bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #303030; }\n .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: "";\n border-bottom: 1px solid #444; }\n\n.bs-popover-left, .bs-popover-auto[x-placement^="left"] {\n margin-right: 0.5rem; }\n .bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0; }\n .bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25); }\n .bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #303030; }\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 0.9375rem;\n background-color: #444;\n border-bottom: 1px solid #373737;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px); }\n .popover-header:empty {\n display: none; }\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #fff; }\n\n.carousel {\n position: relative; }\n\n.carousel.pointer-event {\n touch-action: pan-y; }\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden; }\n .carousel-inner::after {\n display: block;\n clear: both;\n content: ""; }\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none; } }\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block; }\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%); }\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%); }\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none; }\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1; }\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none; } }\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none; } }\n .carousel-control-prev:hover, .carousel-control-prev:focus,\n .carousel-control-next:hover,\n .carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9; }\n\n.carousel-control-prev {\n left: 0; }\n\n.carousel-control-next {\n right: 0; }\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: 50% / 100% 100% no-repeat; }\n\n.carousel-control-prev-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z\'/%3e%3c/svg%3e"); }\n\n.carousel-control-next-icon {\n background-image: url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' width=\'8\' height=\'8\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z\'/%3e%3c/svg%3e"); }\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none; }\n .carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease; }\n @media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none; } }\n .carousel-indicators .active {\n opacity: 1; }\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center; }\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg); } }\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: .75s linear infinite spinner-border; }\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em; }\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0); }\n 50% {\n opacity: 1;\n transform: none; } }\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: .75s linear infinite spinner-grow; }\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem; }\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n animation-duration: 1.5s; } }\n\n.align-baseline {\n vertical-align: baseline !important; }\n\n.align-top {\n vertical-align: top !important; }\n\n.align-middle {\n vertical-align: middle !important; }\n\n.align-bottom {\n vertical-align: bottom !important; }\n\n.align-text-bottom {\n vertical-align: text-bottom !important; }\n\n.align-text-top {\n vertical-align: text-top !important; }\n\n.bg-primary {\n background-color: #375a7f !important; }\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #28415b !important; }\n\n.bg-secondary {\n background-color: #444 !important; }\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #2b2b2b !important; }\n\n.bg-success {\n background-color: #00bc8c !important; }\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #008966 !important; }\n\n.bg-info {\n background-color: #3498db !important; }\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #217dbb !important; }\n\n.bg-warning {\n background-color: #f39c12 !important; }\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #c87f0a !important; }\n\n.bg-danger {\n background-color: #e74c3c !important; }\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #d62c1a !important; }\n\n.bg-light {\n background-color: #adb5bd !important; }\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #919ca6 !important; }\n\n.bg-dark {\n background-color: #303030 !important; }\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #171717 !important; }\n\n.bg-white {\n background-color: #fff !important; }\n\n.bg-transparent {\n background-color: transparent !important; }\n\n.border {\n border: 1px solid #dee2e6 !important; }\n\n.border-top {\n border-top: 1px solid #dee2e6 !important; }\n\n.border-right {\n border-right: 1px solid #dee2e6 !important; }\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important; }\n\n.border-left {\n border-left: 1px solid #dee2e6 !important; }\n\n.border-0 {\n border: 0 !important; }\n\n.border-top-0 {\n border-top: 0 !important; }\n\n.border-right-0 {\n border-right: 0 !important; }\n\n.border-bottom-0 {\n border-bottom: 0 !important; }\n\n.border-left-0 {\n border-left: 0 !important; }\n\n.border-primary {\n border-color: #375a7f !important; }\n\n.border-secondary {\n border-color: #444 !important; }\n\n.border-success {\n border-color: #00bc8c !important; }\n\n.border-info {\n border-color: #3498db !important; }\n\n.border-warning {\n border-color: #f39c12 !important; }\n\n.border-danger {\n border-color: #e74c3c !important; }\n\n.border-light {\n border-color: #adb5bd !important; }\n\n.border-dark {\n border-color: #303030 !important; }\n\n.border-white {\n border-color: #fff !important; }\n\n.rounded-sm {\n border-radius: 0.2rem !important; }\n\n.rounded {\n border-radius: 0.25rem !important; }\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important; }\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important; }\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important; }\n\n.rounded-lg {\n border-radius: 0.3rem !important; }\n\n.rounded-circle {\n border-radius: 50% !important; }\n\n.rounded-pill {\n border-radius: 50rem !important; }\n\n.rounded-0 {\n border-radius: 0 !important; }\n\n.clearfix::after {\n display: block;\n clear: both;\n content: ""; }\n\n.d-none {\n display: none !important; }\n\n.d-inline {\n display: inline !important; }\n\n.d-inline-block {\n display: inline-block !important; }\n\n.d-block {\n display: block !important; }\n\n.d-table {\n display: table !important; }\n\n.d-table-row {\n display: table-row !important; }\n\n.d-table-cell {\n display: table-cell !important; }\n\n.d-flex {\n display: flex !important; }\n\n.d-inline-flex {\n display: inline-flex !important; }\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important; }\n .d-sm-inline {\n display: inline !important; }\n .d-sm-inline-block {\n display: inline-block !important; }\n .d-sm-block {\n display: block !important; }\n .d-sm-table {\n display: table !important; }\n .d-sm-table-row {\n display: table-row !important; }\n .d-sm-table-cell {\n display: table-cell !important; }\n .d-sm-flex {\n display: flex !important; }\n .d-sm-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important; }\n .d-md-inline {\n display: inline !important; }\n .d-md-inline-block {\n display: inline-block !important; }\n .d-md-block {\n display: block !important; }\n .d-md-table {\n display: table !important; }\n .d-md-table-row {\n display: table-row !important; }\n .d-md-table-cell {\n display: table-cell !important; }\n .d-md-flex {\n display: flex !important; }\n .d-md-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important; }\n .d-lg-inline {\n display: inline !important; }\n .d-lg-inline-block {\n display: inline-block !important; }\n .d-lg-block {\n display: block !important; }\n .d-lg-table {\n display: table !important; }\n .d-lg-table-row {\n display: table-row !important; }\n .d-lg-table-cell {\n display: table-cell !important; }\n .d-lg-flex {\n display: flex !important; }\n .d-lg-inline-flex {\n display: inline-flex !important; } }\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important; }\n .d-xl-inline {\n display: inline !important; }\n .d-xl-inline-block {\n display: inline-block !important; }\n .d-xl-block {\n display: block !important; }\n .d-xl-table {\n display: table !important; }\n .d-xl-table-row {\n display: table-row !important; }\n .d-xl-table-cell {\n display: table-cell !important; }\n .d-xl-flex {\n display: flex !important; }\n .d-xl-inline-flex {\n display: inline-flex !important; } }\n\n@media print {\n .d-print-none {\n display: none !important; }\n .d-print-inline {\n display: inline !important; }\n .d-print-inline-block {\n display: inline-block !important; }\n .d-print-block {\n display: block !important; }\n .d-print-table {\n display: table !important; }\n .d-print-table-row {\n display: table-row !important; }\n .d-print-table-cell {\n display: table-cell !important; }\n .d-print-flex {\n display: flex !important; }\n .d-print-inline-flex {\n display: inline-flex !important; } }\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden; }\n .embed-responsive::before {\n display: block;\n content: ""; }\n .embed-responsive .embed-responsive-item,\n .embed-responsive iframe,\n .embed-responsive embed,\n .embed-responsive object,\n .embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0; }\n\n.embed-responsive-21by9::before {\n padding-top: 42.85714%; }\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%; }\n\n.embed-responsive-4by3::before {\n padding-top: 75%; }\n\n.embed-responsive-1by1::before {\n padding-top: 100%; }\n\n.flex-row {\n flex-direction: row !important; }\n\n.flex-column {\n flex-direction: column !important; }\n\n.flex-row-reverse {\n flex-direction: row-reverse !important; }\n\n.flex-column-reverse {\n flex-direction: column-reverse !important; }\n\n.flex-wrap {\n flex-wrap: wrap !important; }\n\n.flex-nowrap {\n flex-wrap: nowrap !important; }\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n\n.flex-fill {\n flex: 1 1 auto !important; }\n\n.flex-grow-0 {\n flex-grow: 0 !important; }\n\n.flex-grow-1 {\n flex-grow: 1 !important; }\n\n.flex-shrink-0 {\n flex-shrink: 0 !important; }\n\n.flex-shrink-1 {\n flex-shrink: 1 !important; }\n\n.justify-content-start {\n justify-content: flex-start !important; }\n\n.justify-content-end {\n justify-content: flex-end !important; }\n\n.justify-content-center {\n justify-content: center !important; }\n\n.justify-content-between {\n justify-content: space-between !important; }\n\n.justify-content-around {\n justify-content: space-around !important; }\n\n.align-items-start {\n align-items: flex-start !important; }\n\n.align-items-end {\n align-items: flex-end !important; }\n\n.align-items-center {\n align-items: center !important; }\n\n.align-items-baseline {\n align-items: baseline !important; }\n\n.align-items-stretch {\n align-items: stretch !important; }\n\n.align-content-start {\n align-content: flex-start !important; }\n\n.align-content-end {\n align-content: flex-end !important; }\n\n.align-content-center {\n align-content: center !important; }\n\n.align-content-between {\n align-content: space-between !important; }\n\n.align-content-around {\n align-content: space-around !important; }\n\n.align-content-stretch {\n align-content: stretch !important; }\n\n.align-self-auto {\n align-self: auto !important; }\n\n.align-self-start {\n align-self: flex-start !important; }\n\n.align-self-end {\n align-self: flex-end !important; }\n\n.align-self-center {\n align-self: center !important; }\n\n.align-self-baseline {\n align-self: baseline !important; }\n\n.align-self-stretch {\n align-self: stretch !important; }\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important; }\n .flex-sm-column {\n flex-direction: column !important; }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-sm-wrap {\n flex-wrap: wrap !important; }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important; }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-sm-fill {\n flex: 1 1 auto !important; }\n .flex-sm-grow-0 {\n flex-grow: 0 !important; }\n .flex-sm-grow-1 {\n flex-grow: 1 !important; }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-sm-start {\n justify-content: flex-start !important; }\n .justify-content-sm-end {\n justify-content: flex-end !important; }\n .justify-content-sm-center {\n justify-content: center !important; }\n .justify-content-sm-between {\n justify-content: space-between !important; }\n .justify-content-sm-around {\n justify-content: space-around !important; }\n .align-items-sm-start {\n align-items: flex-start !important; }\n .align-items-sm-end {\n align-items: flex-end !important; }\n .align-items-sm-center {\n align-items: center !important; }\n .align-items-sm-baseline {\n align-items: baseline !important; }\n .align-items-sm-stretch {\n align-items: stretch !important; }\n .align-content-sm-start {\n align-content: flex-start !important; }\n .align-content-sm-end {\n align-content: flex-end !important; }\n .align-content-sm-center {\n align-content: center !important; }\n .align-content-sm-between {\n align-content: space-between !important; }\n .align-content-sm-around {\n align-content: space-around !important; }\n .align-content-sm-stretch {\n align-content: stretch !important; }\n .align-self-sm-auto {\n align-self: auto !important; }\n .align-self-sm-start {\n align-self: flex-start !important; }\n .align-self-sm-end {\n align-self: flex-end !important; }\n .align-self-sm-center {\n align-self: center !important; }\n .align-self-sm-baseline {\n align-self: baseline !important; }\n .align-self-sm-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important; }\n .flex-md-column {\n flex-direction: column !important; }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-md-wrap {\n flex-wrap: wrap !important; }\n .flex-md-nowrap {\n flex-wrap: nowrap !important; }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-md-fill {\n flex: 1 1 auto !important; }\n .flex-md-grow-0 {\n flex-grow: 0 !important; }\n .flex-md-grow-1 {\n flex-grow: 1 !important; }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-md-start {\n justify-content: flex-start !important; }\n .justify-content-md-end {\n justify-content: flex-end !important; }\n .justify-content-md-center {\n justify-content: center !important; }\n .justify-content-md-between {\n justify-content: space-between !important; }\n .justify-content-md-around {\n justify-content: space-around !important; }\n .align-items-md-start {\n align-items: flex-start !important; }\n .align-items-md-end {\n align-items: flex-end !important; }\n .align-items-md-center {\n align-items: center !important; }\n .align-items-md-baseline {\n align-items: baseline !important; }\n .align-items-md-stretch {\n align-items: stretch !important; }\n .align-content-md-start {\n align-content: flex-start !important; }\n .align-content-md-end {\n align-content: flex-end !important; }\n .align-content-md-center {\n align-content: center !important; }\n .align-content-md-between {\n align-content: space-between !important; }\n .align-content-md-around {\n align-content: space-around !important; }\n .align-content-md-stretch {\n align-content: stretch !important; }\n .align-self-md-auto {\n align-self: auto !important; }\n .align-self-md-start {\n align-self: flex-start !important; }\n .align-self-md-end {\n align-self: flex-end !important; }\n .align-self-md-center {\n align-self: center !important; }\n .align-self-md-baseline {\n align-self: baseline !important; }\n .align-self-md-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important; }\n .flex-lg-column {\n flex-direction: column !important; }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-lg-wrap {\n flex-wrap: wrap !important; }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important; }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-lg-fill {\n flex: 1 1 auto !important; }\n .flex-lg-grow-0 {\n flex-grow: 0 !important; }\n .flex-lg-grow-1 {\n flex-grow: 1 !important; }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-lg-start {\n justify-content: flex-start !important; }\n .justify-content-lg-end {\n justify-content: flex-end !important; }\n .justify-content-lg-center {\n justify-content: center !important; }\n .justify-content-lg-between {\n justify-content: space-between !important; }\n .justify-content-lg-around {\n justify-content: space-around !important; }\n .align-items-lg-start {\n align-items: flex-start !important; }\n .align-items-lg-end {\n align-items: flex-end !important; }\n .align-items-lg-center {\n align-items: center !important; }\n .align-items-lg-baseline {\n align-items: baseline !important; }\n .align-items-lg-stretch {\n align-items: stretch !important; }\n .align-content-lg-start {\n align-content: flex-start !important; }\n .align-content-lg-end {\n align-content: flex-end !important; }\n .align-content-lg-center {\n align-content: center !important; }\n .align-content-lg-between {\n align-content: space-between !important; }\n .align-content-lg-around {\n align-content: space-around !important; }\n .align-content-lg-stretch {\n align-content: stretch !important; }\n .align-self-lg-auto {\n align-self: auto !important; }\n .align-self-lg-start {\n align-self: flex-start !important; }\n .align-self-lg-end {\n align-self: flex-end !important; }\n .align-self-lg-center {\n align-self: center !important; }\n .align-self-lg-baseline {\n align-self: baseline !important; }\n .align-self-lg-stretch {\n align-self: stretch !important; } }\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important; }\n .flex-xl-column {\n flex-direction: column !important; }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important; }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important; }\n .flex-xl-wrap {\n flex-wrap: wrap !important; }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important; }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important; }\n .flex-xl-fill {\n flex: 1 1 auto !important; }\n .flex-xl-grow-0 {\n flex-grow: 0 !important; }\n .flex-xl-grow-1 {\n flex-grow: 1 !important; }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important; }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important; }\n .justify-content-xl-start {\n justify-content: flex-start !important; }\n .justify-content-xl-end {\n justify-content: flex-end !important; }\n .justify-content-xl-center {\n justify-content: center !important; }\n .justify-content-xl-between {\n justify-content: space-between !important; }\n .justify-content-xl-around {\n justify-content: space-around !important; }\n .align-items-xl-start {\n align-items: flex-start !important; }\n .align-items-xl-end {\n align-items: flex-end !important; }\n .align-items-xl-center {\n align-items: center !important; }\n .align-items-xl-baseline {\n align-items: baseline !important; }\n .align-items-xl-stretch {\n align-items: stretch !important; }\n .align-content-xl-start {\n align-content: flex-start !important; }\n .align-content-xl-end {\n align-content: flex-end !important; }\n .align-content-xl-center {\n align-content: center !important; }\n .align-content-xl-between {\n align-content: space-between !important; }\n .align-content-xl-around {\n align-content: space-around !important; }\n .align-content-xl-stretch {\n align-content: stretch !important; }\n .align-self-xl-auto {\n align-self: auto !important; }\n .align-self-xl-start {\n align-self: flex-start !important; }\n .align-self-xl-end {\n align-self: flex-end !important; }\n .align-self-xl-center {\n align-self: center !important; }\n .align-self-xl-baseline {\n align-self: baseline !important; }\n .align-self-xl-stretch {\n align-self: stretch !important; } }\n\n.float-left {\n float: left !important; }\n\n.float-right {\n float: right !important; }\n\n.float-none {\n float: none !important; }\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important; }\n .float-sm-right {\n float: right !important; }\n .float-sm-none {\n float: none !important; } }\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important; }\n .float-md-right {\n float: right !important; }\n .float-md-none {\n float: none !important; } }\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important; }\n .float-lg-right {\n float: right !important; }\n .float-lg-none {\n float: none !important; } }\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important; }\n .float-xl-right {\n float: right !important; }\n .float-xl-none {\n float: none !important; } }\n\n.user-select-all {\n user-select: all !important; }\n\n.user-select-auto {\n user-select: auto !important; }\n\n.user-select-none {\n user-select: none !important; }\n\n.overflow-auto {\n overflow: auto !important; }\n\n.overflow-hidden {\n overflow: hidden !important; }\n\n.position-static {\n position: static !important; }\n\n.position-relative {\n position: relative !important; }\n\n.position-absolute {\n position: absolute !important; }\n\n.position-fixed {\n position: fixed !important; }\n\n.position-sticky {\n position: sticky !important; }\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030; }\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030; }\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020; } }\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal; }\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }\n\n.shadow-none {\n box-shadow: none !important; }\n\n.w-25 {\n width: 25% !important; }\n\n.w-50 {\n width: 50% !important; }\n\n.w-75 {\n width: 75% !important; }\n\n.w-100 {\n width: 100% !important; }\n\n.w-auto {\n width: auto !important; }\n\n.h-25 {\n height: 25% !important; }\n\n.h-50 {\n height: 50% !important; }\n\n.h-75 {\n height: 75% !important; }\n\n.h-100 {\n height: 100% !important; }\n\n.h-auto {\n height: auto !important; }\n\n.mw-100 {\n max-width: 100% !important; }\n\n.mh-100 {\n max-height: 100% !important; }\n\n.min-vw-100 {\n min-width: 100vw !important; }\n\n.min-vh-100 {\n min-height: 100vh !important; }\n\n.vw-100 {\n width: 100vw !important; }\n\n.vh-100 {\n height: 100vh !important; }\n\n.m-0 {\n margin: 0 !important; }\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important; }\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important; }\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important; }\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important; }\n\n.m-1 {\n margin: 0.25rem !important; }\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important; }\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important; }\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important; }\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important; }\n\n.m-2 {\n margin: 0.5rem !important; }\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important; }\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important; }\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important; }\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important; }\n\n.m-3 {\n margin: 1rem !important; }\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important; }\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important; }\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important; }\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important; }\n\n.m-4 {\n margin: 1.5rem !important; }\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important; }\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important; }\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important; }\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important; }\n\n.m-5 {\n margin: 3rem !important; }\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important; }\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important; }\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important; }\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important; }\n\n.p-0 {\n padding: 0 !important; }\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important; }\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important; }\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important; }\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important; }\n\n.p-1 {\n padding: 0.25rem !important; }\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important; }\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important; }\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important; }\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important; }\n\n.p-2 {\n padding: 0.5rem !important; }\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important; }\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important; }\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important; }\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important; }\n\n.p-3 {\n padding: 1rem !important; }\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important; }\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important; }\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important; }\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important; }\n\n.p-4 {\n padding: 1.5rem !important; }\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important; }\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important; }\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important; }\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important; }\n\n.p-5 {\n padding: 3rem !important; }\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important; }\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important; }\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important; }\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important; }\n\n.m-n1 {\n margin: -0.25rem !important; }\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important; }\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important; }\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important; }\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important; }\n\n.m-n2 {\n margin: -0.5rem !important; }\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important; }\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important; }\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important; }\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important; }\n\n.m-n3 {\n margin: -1rem !important; }\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important; }\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important; }\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important; }\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important; }\n\n.m-n4 {\n margin: -1.5rem !important; }\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important; }\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important; }\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important; }\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important; }\n\n.m-n5 {\n margin: -3rem !important; }\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important; }\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important; }\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important; }\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important; }\n\n.m-auto {\n margin: auto !important; }\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important; }\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important; }\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important; }\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important; }\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important; }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important; }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important; }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important; }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important; }\n .m-sm-1 {\n margin: 0.25rem !important; }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important; }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important; }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important; }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important; }\n .m-sm-2 {\n margin: 0.5rem !important; }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important; }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important; }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important; }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important; }\n .m-sm-3 {\n margin: 1rem !important; }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important; }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important; }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important; }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important; }\n .m-sm-4 {\n margin: 1.5rem !important; }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important; }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important; }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important; }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important; }\n .m-sm-5 {\n margin: 3rem !important; }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important; }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important; }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important; }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important; }\n .p-sm-0 {\n padding: 0 !important; }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important; }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important; }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important; }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important; }\n .p-sm-1 {\n padding: 0.25rem !important; }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important; }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important; }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important; }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important; }\n .p-sm-2 {\n padding: 0.5rem !important; }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important; }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important; }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important; }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important; }\n .p-sm-3 {\n padding: 1rem !important; }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important; }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important; }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important; }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important; }\n .p-sm-4 {\n padding: 1.5rem !important; }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important; }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important; }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important; }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important; }\n .p-sm-5 {\n padding: 3rem !important; }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important; }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important; }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important; }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important; }\n .m-sm-n1 {\n margin: -0.25rem !important; }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important; }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important; }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important; }\n .m-sm-n2 {\n margin: -0.5rem !important; }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important; }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important; }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important; }\n .m-sm-n3 {\n margin: -1rem !important; }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important; }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important; }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important; }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important; }\n .m-sm-n4 {\n margin: -1.5rem !important; }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important; }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important; }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important; }\n .m-sm-n5 {\n margin: -3rem !important; }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important; }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important; }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important; }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important; }\n .m-sm-auto {\n margin: auto !important; }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important; }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important; }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important; }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important; }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important; }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important; }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important; }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important; }\n .m-md-1 {\n margin: 0.25rem !important; }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important; }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important; }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important; }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important; }\n .m-md-2 {\n margin: 0.5rem !important; }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important; }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important; }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important; }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important; }\n .m-md-3 {\n margin: 1rem !important; }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important; }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important; }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important; }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important; }\n .m-md-4 {\n margin: 1.5rem !important; }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important; }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important; }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important; }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important; }\n .m-md-5 {\n margin: 3rem !important; }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important; }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important; }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important; }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important; }\n .p-md-0 {\n padding: 0 !important; }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important; }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important; }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important; }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important; }\n .p-md-1 {\n padding: 0.25rem !important; }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important; }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important; }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important; }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important; }\n .p-md-2 {\n padding: 0.5rem !important; }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important; }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important; }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important; }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important; }\n .p-md-3 {\n padding: 1rem !important; }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important; }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important; }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important; }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important; }\n .p-md-4 {\n padding: 1.5rem !important; }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important; }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important; }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important; }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important; }\n .p-md-5 {\n padding: 3rem !important; }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important; }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important; }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important; }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important; }\n .m-md-n1 {\n margin: -0.25rem !important; }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important; }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important; }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important; }\n .m-md-n2 {\n margin: -0.5rem !important; }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important; }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important; }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important; }\n .m-md-n3 {\n margin: -1rem !important; }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important; }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important; }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important; }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important; }\n .m-md-n4 {\n margin: -1.5rem !important; }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important; }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important; }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important; }\n .m-md-n5 {\n margin: -3rem !important; }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important; }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important; }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important; }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important; }\n .m-md-auto {\n margin: auto !important; }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important; }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important; }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important; }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important; }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important; }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important; }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important; }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important; }\n .m-lg-1 {\n margin: 0.25rem !important; }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important; }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important; }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important; }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important; }\n .m-lg-2 {\n margin: 0.5rem !important; }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important; }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important; }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important; }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important; }\n .m-lg-3 {\n margin: 1rem !important; }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important; }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important; }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important; }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important; }\n .m-lg-4 {\n margin: 1.5rem !important; }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important; }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important; }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important; }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important; }\n .m-lg-5 {\n margin: 3rem !important; }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important; }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important; }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important; }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important; }\n .p-lg-0 {\n padding: 0 !important; }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important; }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important; }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important; }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important; }\n .p-lg-1 {\n padding: 0.25rem !important; }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important; }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important; }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important; }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important; }\n .p-lg-2 {\n padding: 0.5rem !important; }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important; }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important; }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important; }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important; }\n .p-lg-3 {\n padding: 1rem !important; }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important; }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important; }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important; }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important; }\n .p-lg-4 {\n padding: 1.5rem !important; }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important; }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important; }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important; }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important; }\n .p-lg-5 {\n padding: 3rem !important; }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important; }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important; }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important; }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important; }\n .m-lg-n1 {\n margin: -0.25rem !important; }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important; }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important; }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important; }\n .m-lg-n2 {\n margin: -0.5rem !important; }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important; }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important; }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important; }\n .m-lg-n3 {\n margin: -1rem !important; }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important; }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important; }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important; }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important; }\n .m-lg-n4 {\n margin: -1.5rem !important; }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important; }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important; }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important; }\n .m-lg-n5 {\n margin: -3rem !important; }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important; }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important; }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important; }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important; }\n .m-lg-auto {\n margin: auto !important; }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important; }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important; }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important; }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important; } }\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important; }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important; }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important; }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important; }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important; }\n .m-xl-1 {\n margin: 0.25rem !important; }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important; }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important; }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important; }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important; }\n .m-xl-2 {\n margin: 0.5rem !important; }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important; }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important; }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important; }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important; }\n .m-xl-3 {\n margin: 1rem !important; }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important; }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important; }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important; }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important; }\n .m-xl-4 {\n margin: 1.5rem !important; }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important; }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important; }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important; }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important; }\n .m-xl-5 {\n margin: 3rem !important; }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important; }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important; }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important; }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important; }\n .p-xl-0 {\n padding: 0 !important; }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important; }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important; }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important; }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important; }\n .p-xl-1 {\n padding: 0.25rem !important; }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important; }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important; }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important; }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important; }\n .p-xl-2 {\n padding: 0.5rem !important; }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important; }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important; }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important; }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important; }\n .p-xl-3 {\n padding: 1rem !important; }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important; }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important; }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important; }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important; }\n .p-xl-4 {\n padding: 1.5rem !important; }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important; }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important; }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important; }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important; }\n .p-xl-5 {\n padding: 3rem !important; }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important; }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important; }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important; }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important; }\n .m-xl-n1 {\n margin: -0.25rem !important; }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important; }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important; }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important; }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important; }\n .m-xl-n2 {\n margin: -0.5rem !important; }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important; }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important; }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important; }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important; }\n .m-xl-n3 {\n margin: -1rem !important; }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important; }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important; }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important; }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important; }\n .m-xl-n4 {\n margin: -1.5rem !important; }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important; }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important; }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important; }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important; }\n .m-xl-n5 {\n margin: -3rem !important; }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important; }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important; }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important; }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important; }\n .m-xl-auto {\n margin: auto !important; }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important; }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important; }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important; }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important; } }\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: "";\n background-color: rgba(0, 0, 0, 0); }\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; }\n\n.text-justify {\n text-align: justify !important; }\n\n.text-wrap {\n white-space: normal !important; }\n\n.text-nowrap {\n white-space: nowrap !important; }\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; }\n\n.text-left {\n text-align: left !important; }\n\n.text-right {\n text-align: right !important; }\n\n.text-center {\n text-align: center !important; }\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important; }\n .text-sm-right {\n text-align: right !important; }\n .text-sm-center {\n text-align: center !important; } }\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important; }\n .text-md-right {\n text-align: right !important; }\n .text-md-center {\n text-align: center !important; } }\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important; }\n .text-lg-right {\n text-align: right !important; }\n .text-lg-center {\n text-align: center !important; } }\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important; }\n .text-xl-right {\n text-align: right !important; }\n .text-xl-center {\n text-align: center !important; } }\n\n.text-lowercase {\n text-transform: lowercase !important; }\n\n.text-uppercase {\n text-transform: uppercase !important; }\n\n.text-capitalize {\n text-transform: capitalize !important; }\n\n.font-weight-light {\n font-weight: 300 !important; }\n\n.font-weight-lighter {\n font-weight: lighter !important; }\n\n.font-weight-normal {\n font-weight: 400 !important; }\n\n.font-weight-bold {\n font-weight: 700 !important; }\n\n.font-weight-bolder {\n font-weight: bolder !important; }\n\n.font-italic {\n font-style: italic !important; }\n\n.text-white {\n color: #fff !important; }\n\n.text-primary {\n color: #375a7f !important; }\n\na.text-primary:hover, a.text-primary:focus {\n color: #20344a !important; }\n\n.text-secondary {\n color: #444 !important; }\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #1e1e1e !important; }\n\n.text-success {\n color: #00bc8c !important; }\n\na.text-success:hover, a.text-success:focus {\n color: #007053 !important; }\n\n.text-info {\n color: #3498db !important; }\n\na.text-info:hover, a.text-info:focus {\n color: #1d6fa5 !important; }\n\n.text-warning {\n color: #f39c12 !important; }\n\na.text-warning:hover, a.text-warning:focus {\n color: #b06f09 !important; }\n\n.text-danger {\n color: #e74c3c !important; }\n\na.text-danger:hover, a.text-danger:focus {\n color: #bf2718 !important; }\n\n.text-light {\n color: #adb5bd !important; }\n\na.text-light:hover, a.text-light:focus {\n color: #838f9b !important; }\n\n.text-dark {\n color: #303030 !important; }\n\na.text-dark:hover, a.text-dark:focus {\n color: #0a0a0a !important; }\n\n.text-body {\n color: #fff !important; }\n\n.text-muted {\n color: #888 !important; }\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important; }\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important; }\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0; }\n\n.text-decoration-none {\n text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important;\n word-wrap: break-word !important; }\n\n.text-reset {\n color: inherit !important; }\n\n.visible {\n visibility: visible !important; }\n\n.invisible {\n visibility: hidden !important; }\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important; }\n a:not(.btn) {\n text-decoration: underline; }\n abbr[title]::after {\n content: " (" attr(title) ")"; }\n pre {\n white-space: pre-wrap !important; }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid; }\n thead {\n display: table-header-group; }\n tr,\n img {\n page-break-inside: avoid; }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3; }\n h2,\n h3 {\n page-break-after: avoid; }\n @page {\n size: a3; }\n body {\n min-width: 992px !important; }\n .container {\n min-width: 992px !important; }\n .navbar {\n display: none; }\n .badge {\n border: 1px solid #000; }\n .table {\n border-collapse: collapse !important; }\n .table td,\n .table th {\n background-color: #fff !important; }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important; }\n .table-dark {\n color: inherit; }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #444; }\n .table .thead-dark th {\n color: inherit;\n border-color: #444; } }\n\n.blockquote-footer {\n color: #888; }\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #375a7f; }\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #444; }\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #adb5bd; }\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #303030; }\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #00bc8c; }\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #3498db; }\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #e74c3c; }\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #f39c12; }\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.table-hover .table-primary:hover,\n.table-hover .table-primary:hover > th,\n.table-hover .table-primary:hover > td {\n background-color: #2f4d6d; }\n\n.table-hover .table-secondary:hover,\n.table-hover .table-secondary:hover > th,\n.table-hover .table-secondary:hover > td {\n background-color: #373737; }\n\n.table-hover .table-light:hover,\n.table-hover .table-light:hover > th,\n.table-hover .table-light:hover > td {\n background-color: #9fa8b2; }\n\n.table-hover .table-dark:hover,\n.table-hover .table-dark:hover > th,\n.table-hover .table-dark:hover > td {\n background-color: #232323; }\n\n.table-hover .table-success:hover,\n.table-hover .table-success:hover > th,\n.table-hover .table-success:hover > td {\n background-color: #00a379; }\n\n.table-hover .table-info:hover,\n.table-hover .table-info:hover > th,\n.table-hover .table-info:hover > td {\n background-color: #258cd1; }\n\n.table-hover .table-danger:hover,\n.table-hover .table-danger:hover > th,\n.table-hover .table-danger:hover > td {\n background-color: #e43725; }\n\n.table-hover .table-warning:hover,\n.table-hover .table-warning:hover > th,\n.table-hover .table-warning:hover > td {\n background-color: #e08e0b; }\n\n.table-hover .table-active:hover,\n.table-hover .table-active:hover > th,\n.table-hover .table-active:hover > td {\n background-color: rgba(0, 0, 0, 0.075); }\n\n.input-group-addon {\n color: #fff; }\n\n.nav-tabs .nav-link,\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-link.active:focus,\n.nav-tabs .nav-link.active:hover,\n.nav-tabs .nav-item.open .nav-link,\n.nav-tabs .nav-item.open .nav-link:focus,\n.nav-tabs .nav-item.open .nav-link:hover,\n.nav-pills .nav-link,\n.nav-pills .nav-link.active,\n.nav-pills .nav-link.active:focus,\n.nav-pills .nav-link.active:hover,\n.nav-pills .nav-item.open .nav-link,\n.nav-pills .nav-item.open .nav-link:focus,\n.nav-pills .nav-item.open .nav-link:hover {\n color: #fff; }\n\n.breadcrumb a {\n color: #fff; }\n\n.pagination a:hover {\n text-decoration: none; }\n\n.close {\n opacity: .4; }\n .close:hover, .close:focus {\n opacity: 1; }\n\n.alert {\n border: none;\n color: #fff; }\n .alert a,\n .alert .alert-link {\n color: #fff;\n text-decoration: underline; }\n .alert-primary {\n background-color: #375a7f; }\n .alert-secondary {\n background-color: #444; }\n .alert-success {\n background-color: #00bc8c; }\n .alert-info {\n background-color: #3498db; }\n .alert-warning {\n background-color: #f39c12; }\n .alert-danger {\n background-color: #e74c3c; }\n .alert-light {\n background-color: #adb5bd; }\n .alert-dark {\n background-color: #303030; }\n\n.list-group-item-action {\n color: #fff; }\n .list-group-item-action:hover, .list-group-item-action:focus {\n background-color: #444;\n color: #fff; }\n .list-group-item-action .list-group-item-heading {\n color: #fff; }\n\nbody {\n min-height: 100vh; }\n\n.border-bottom {\n border-width: 3px !important; }\n\n.border-top {\n border-width: 3px !important; }\n\ntr.hide {\n display: none; }\n\n.rebooting {\n display: none; }\n\ntd.value {\n width: 80%; }\n\n#boot-div {\n float: right; }\n\n/* body {\r\n border: 0;\r\n margin: 0;\r\n margin-bottom:50px;\r\n padding-left: 12px;\r\n padding-right: 12px;\r\n padding-bottom: 45px;\r\n}\r\na {\r\n color: #fff;\r\n transition: color .2s ease-out;\r\n text-decoration: none\r\n}\r\na:hover {\r\n color: #99f;\r\n text-decoration: none\r\n}\r\n.glyphicon {\r\n font-size: 18px;\r\n}\r\ninput:focus,\r\nselect:focus,\r\ntextarea:focus,\r\nbutton:focus {\r\n outline: none;\r\n}\r\n.blur {\r\n -webkit-filter: blur(2px);\r\n -moz-filter: blur(2px);\r\n -ms-filter: blur(2px);\r\n -o-filter: blur(2px);\r\n filter: blur(2px);\r\n}\r\n.ape {\r\n padding: 10px 0px 10px 10px;\r\n background-color: #444;\r\n}\r\n.ape:hover {\r\n cursor: pointer;\r\n}\r\nheader {\r\n border-bottom: 1px solid #000;\r\n border-top: 1px solid #000;\r\n}\r\nsection {\r\n border-bottom: 1px solid #000;\r\n border-top: 1px solid #000;\r\n}\r\nh1 {\r\n margin: 0;\r\n margin-top: 20px;\r\n padding: 10px;\r\n text-transform: uppercase;\r\n color: #888;\r\n font-size: 1.6em\r\n}\r\nh2 {\r\n margin: 0;\r\n margin-top: 20px;\r\n padding: 10px;\r\n text-transform: uppercase;\r\n color: #888;\r\n font-size: 1.0em\r\n}\r\nh3 {\r\n margin: 0;\r\n text-align: center;\r\n padding: 20px 0px 20px 0px;\r\n}\r\n.gr {\r\n color: green;\r\n}\r\n.rd {\r\n color: red;\r\n}\r\n#wifi-status {\r\n display: none;\r\n}\r\n#connect {\r\n display: none;\r\n}\r\n#connect_manual {\r\n display: none;\r\n}\r\n#manual_ssid {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n#manual_pwd {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n#pwd {\r\n border: none;\r\n width: 80%;\r\n padding: 10px 0px 10px 10px;\r\n display: block\r\n}\r\n.buttons {\r\n padding: 15px;\r\n}\r\n#join {\r\n float: right;\r\n}\r\n#manual_join {\r\n float: right;\r\n}\r\n#yes-disconnect {\r\n display: inline-block;\r\n}\r\n#no-disconnect {\r\n display: inline-block;\r\n}\r\n.tctr {\r\n text-align: center;\r\n}\r\n#connect-wait {\r\n display: none;\r\n}\r\n#connect-success {\r\n display: none;\r\n}\r\n#connect-fail {\r\n display: none;\r\n}\r\n#connect-details {\r\n display: none;\r\n}\r\n#diag-disconnect {\r\n display: none;\r\n}\r\n.fr {\r\n float: right;\r\n margin-right: 20px;\r\n} */\n/* .w0 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABzUlEQVRIS+WUTShEURTH3zyRhjQ+8hWxmCJMoSzEwsbCgi1LZRYW9pONptiwka9iI81CWFpYaEqNMkVKmpWN1IhYKN9ZDL/z3p3mxZh5g9X4168799xz/vPefedeLeuVC+3gdTgc07CsmCQ2DI2gg21Jci30wSpGt/CeghickTsHPVACDkgqp67rPgpO4E0ZZMIj7OHhxSvPtEyomcVDeFXJv+EZNvEsNa01rZfAuSUhThR2wU+ObJkbyhRNMMDaDIThBqy1MdZ3wAPawqfFC2Lj0Ab5kpBGxdAJs9TeW72ITUhCPZMjFYwwbwXpnkwlDzOIx50yXwP5c0MeggHGanNqSDqqBqQ7/Kxvg2zHAfMN8IE8uZhYO6eBnBXGKnOakLWfaQZ9jMRjSPXhZUuC5A9JjVFpKkeNSVVA0Tq8KJN0yFl4gilqbW2tm+SQKoybXIG8jcT34RSsh1Byt6iVg2ZLlRCg6JpROqEDpFheXZ5S9rcLFsl5YJwHad+MVA5y13w5lRY5oRsKjdm/Vz/7LR86zG+5wr+9NX+iOowjEO+aELEic+lv1ILppeUPosRst6QduTANgnE2mC+BnYswI1VwfYzCCL9dZij7pWkf6UeSTYAuE/QAAAAASUVORK5CYII=\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w1 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHiSURBVEhL5dRPKINxHMfxPVskpA35F3FYEVasHBYHFwcHrhyVZ8vBfblIceEi/4qLtINwdHCQUpQVKcnJRYqIg/J3OYz399nv0YPNtuzEt149+31/v+/n4fGYLVHpup4Rnyregd+K27TIghe63+8fx7wySqsPdbAj3qzha0MOV6ETiwTd4u0HUZxydgrtKISGj0xreG4gEAgycIRXFZCOR2yTQZSebeaa4Q1s7iOiDv/GM1bJLDJv0EHjzHLAdIFNjHBGHpkbxUo9utmbQBg3sM5G2d+AR24w82XznN4QmpGjXrCExRkXfJhk9t6aRW9YDtSwOFDNE9ZNyFLzKRczOegh406FL8ElG8JDM8S1Qtaq7KhEO0Y0TVtHGHusVxCEDy5oMLNqyVrgWm5kqaYw3mdVdmqQsENE8JbAPbY43yszMqiyHOr66QayL5XH0DJeVEgyUTxhjNmPR/vtBpZyc3hHDZohV5DfRvq7OMYtrDdZY7YwFpG8yhBi6JrrMFogww7IT1mOVsxy5oHrNIqRVpWgDtnGKn7log35xurfVxfPW/7QYT57Ybz7mapqgk9gvjU79ApiW5mpRkIvLTe4oJfyK5lKOQndgvG/wXoOSb8I061Svj4G0M9nZ6z198tmeweYtIrMYP17VAAAAABJRU5ErkJggg==\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w2 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHkSURBVEhL3dRLKERRGMDxuSPSkLzyilgo8iiUhVjYWFiwZancmSzsZSPFho28io1kISwtLKQURZGSrGykiFgo7yyG/zdzznRm5iK5Sk79uvd85/u++5hzx2Pb9q9yDLrJMWhIRB1sv98/ghlliFAXyuGFU21IbECSi9CKORrd4O0TQZyQO45mZMJCpKfZ3BcIBPooOMSravAdD9ikB63sJN1XN69kcQ8vKvknnrBMzyx9gRYCp0aCdo51DJIjr6wU2UoF2lkbxS6uYdYGWV9DtVxgMmbxjFg/apEM/ZQfyUADxqi9M3sRG5CEEib7KnjMvAaye2IbfUVupoMet6r5PDL0YjXBBY4Fai5kRxVCdscg66uQ17HDfAl9kDuXJzB3Thk5sxzzZa6DumHknN3QS+IBPvvh5ZVskN8ZU5+gz3XAlELRIp5Vk6/It/CIYWrjXm3URCkleUsV6iaXkKeR+DaOYH6EkrtCrXxoUf2iJoY8LFB0xXEA9ZBieXS5S3m/jZgi557jBGT7xvWKCxhyIP81ka/SgQ9NSDViURyDbvpTo82yrAPscl4HKxR1aRTT+BhvyhaxtPCSO6OKphfGBc6JZYaX3BnpNN1AUC7AfBrJoRUXR67X6+1BN+fp4dD/Hx7PO4o9VGuAapKIAAAAAElFTkSuQmCC\') no-repeat left top;\r\n height: 24px;\r\n}\r\n.w3 {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAACAElEQVRIS7XUP0gbYRjH8VSpiBZJWvEflXYQKtqACg6ig4uDg651LPQSHLpLlyDoUhdpVdBFxEG0YwcHCQgRFJSCFKcuUohY6iC0VYtD9PuE9w3vXZ74h16HD3fv733e53KX9y7ied5/pYZhUkPHQ3TBSyQS7zFvTBC9RivKoK3NCwZS3IxBLNLoBFc3yOEbtR/Qj8d4gEJPt3lVMpkcY8E+Lk2D+/iDTXrQyquwfW3zdiZ38dcU/4tzrNHzib3AAMGhU2BlsYFxauSRtaDWaMMwc1PYwU+4a3PMryMuF5gJTH4ne4dOVMLeZSkx9GCatb/cXmQpKXjOYM+EB4w7ILsn2Og28mNe0ePUNF9CzE7GCZc5NpmxkB31FLI7xpn/DHkc24xXMQb55XIH7s55Qc0Cx0YZ29A2LJyzG95S+AU3/fHySNLUjwTWl9tzG7iqWbSCC9PkNvIunGGStUWP1jcwWijOmIW2yTHkbiTfwle4L6HUfmKtvGi+fr6BowHLLPrBMYVuyGK5dfmV8nx7MUvNb44fIdu3qFdR4KiDfGsKb6WiCn145GQ+ahgmNQyTGpYwxPOWP3qHc/mE+76apaih4hmND2B3TYasJlCjUkPFS5oeORfIkhVtSY0aKqI0TSP/bjCew10+hPf6D+r5fIziDefRwFxJahgmNQyPF7kGEsc1es+A2E4AAAAASUVORK5CYII=\') no-repeat left top;\r\n height: 24px;\r\n} */\n/* .pw {\r\n background: url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABIUlEQVRIS+3VsU7CUBTGcYhBJCwqwcmEJ2DkCQgzb8ADmLgYWXTzMVjcGNjYGEAXgoSRhTg5OroYIyFY/h+hWGwvtzQ0LpzkF8i5l/uRQ2kTjuPEKrC5T79vzHWJO4wxwzeGuMY5AitsQBFvmEObvNQboQBfhQk4gQ5wD+zgBrcYrHrSwzE2KkxAHVrQWB6QgiqJLB7xA+2pYaNsAWm8QAsa0Sn+1gU+oT1NHGFdtoAcJtBCSw1DuaPqQiNdly0gj1doQaMwleavPc+IJUDffKeADO7Rxxe08A4dEOQD2qPXJ1xh+VuYAirQVaNGFFPov2MM0OXm/UAUZRwCtjoEWP1vQBXuLTgKPYRKMAacoY0oIboDNLB8+PgC4hLY3B8nsQCQEf56jLJoQAAAAABJRU5ErkJggg==\') no-repeat left top;\r\n height: 24px;\r\n} */\n/* SpinKit is licensed under the MIT License. Copyright (c) 2015 Tobias Ahlin */\n/* .spinner {\r\n width: 40px;\r\n height: 40px;\r\n \r\n position: relative;\r\n margin: 100px auto;\r\n }\r\n \r\n .double-bounce1, .double-bounce2 {\r\n width: 100%;\r\n height: 100%;\r\n border-radius: 50%;\r\n background-color: #333;\r\n opacity: 0.6;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n \r\n -webkit-animation: bounce 2.0s infinite ease-in-out;\r\n animation: bounce 2.0s infinite ease-in-out;\r\n }\r\n \r\n .double-bounce2 {\r\n -webkit-animation-delay: -1.0s;\r\n animation-delay: -1.0s;\r\n }\r\n \r\n @-webkit-keyframes bounce {\r\n 0%, 100% { -webkit-transform: scale(0.0) }\r\n 50% { -webkit-transform: scale(1.0) }\r\n }\r\n \r\n @keyframes bounce {\r\n 0%, 100% { \r\n transform: scale(0.0);\r\n -webkit-transform: scale(0.0);\r\n } 50% { \r\n transform: scale(1.0);\r\n -webkit-transform: scale(1.0);\r\n }\r\n } */\n/* end of SpinKit */\n/* daduke stuff */\n/* input[type=\'text\'], input[type=\'password\'], textarea, select, option {\r\n background: #999;\r\n border: 0;\r\n padding: 4px;\r\n}\r\n\r\n.custom-switch {\r\n margin-left: 8px;\r\n}\r\n\r\n.custom-switch, .custom-radio {\r\n padding-left: 2.25rem;\r\n padding-bottom: 1rem;\r\n}\r\n\r\n.custom-checkbox > .custom-control-label {\r\n padding-top: 0.5rem;\r\n padding-left: 2rem;\r\n padding-bottom: 0.1rem;\r\n}\r\n\r\n.custom-switch .custom-control-label::before {\r\n left: -2.25rem;\r\n height: 2rem;\r\n width: 3.5rem;\r\n pointer-events: all;\r\n border-radius: 1rem;\r\n background-color: #f00;\r\n} */\n/* \r\n.custom-switch .custom-control-label::after {\r\n top: calc(0.25rem + 2px);\r\n left: calc(-2.25rem + 2px);\r\n width: calc(2rem - 4px);\r\n height: calc(2rem - 4px);\r\n background-color: #adb5bd;\r\n border-radius: 2rem;\r\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\r\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .custom-switch .custom-control-label::after {\r\n transition: none;\r\n }\r\n} */\n/* \r\n.custom-switch .custom-control-input:checked ~ .custom-control-label::before {\r\n background-color: #0f0;\r\n}\r\n\r\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\r\n background-color: #fff;\r\n -webkit-transform: translateX(1.5rem); \r\n transform: translateX(1.5rem); \r\n}\r\n\r\ntextarea#autoexec1, textarea#fwurl, div#upload {\r\n width: 80%;\r\n}\r\n\r\ntable tr.MESSAGING_INFO {\r\n background: #123;\r\n}\r\n\r\ntable tr.MESSAGING_WARNING {\r\n background: #330;\r\n}\r\n\r\ntable tr.MESSAGING_ERROR {\r\n background: #300;\r\n}\r\n\r\ninput, textarea {\r\n border-radius: 3px;\r\n border: 1px solid transparent;\r\n border-top: none;\r\n border-bottom: 1px solid #DDD;\r\n box-shadow: inset 0 1px 2px rgba(0,0,0,.39), 0 -1px 1px #FFF, 0 1px 0 #FFF;\r\n}\r\n\r\n#otadiv {\r\n\tdisplay: none;\r\n}\r\n\r\n#btsinkdiv {\r\n\tdisplay: none;\r\n}\r\n\r\n.tooltip-inner {\r\n font-family: monospace, monospace;\r\n font-size: 70%;\r\n}\r\n\r\n#progress {\r\n width: 60%;\r\n}\r\n\r\n.progress-bar {\r\n color: #fff;\r\n background-color: #037AF0;\r\n}\r\n\r\nspan#flash-status {\r\n padding-left: 15px;\r\n font-size: 120%;\r\n} */\n/* #info {\r\n padding-top: 7px;\r\n float: right;\r\n display: grid;\r\n} */\n/* svg#battery {\r\n fill: #ddd;\r\n}\r\n\r\nsvg#output {\r\n fill: #ddd;\r\n padding-right: 4px;\r\n}\r\n\r\nsvg#jack {\r\n fill: #ddd;\r\n padding-right: 4px;\r\n} */\n/* \r\nul#navbar {\r\n border-bottom: 0px;\r\n}\r\n.navbar-nav {\r\n float: left;\r\n margin: 0;\r\n padding-top: 1rem;\r\n\r\n}\r\n#content {\r\n border-top: 1px solid black;\r\n} */\n/* .footer {\r\n position: fixed;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n background-color: #555;\r\n color: white;\r\n text-align: center;\r\n} */\n/* \r\n.sl {\r\n background-color: #053c1e;\r\n}\r\n.recovery {\r\n background-color: #3c0505;\r\n}\r\n\r\n\r\n\r\n\r\ndiv#message {\r\n display: none;\r\n color: #000;\r\n background: #f00;\r\n position:fixed;\r\n padding: 8px;\r\n top: 20%;\r\n left: 50%;\r\n width:20em;\r\n height:4em;\r\n text-align: center;\r\n margin-left: -10em; \r\n margin-top: -2em; \r\n border-radius: 8px;\r\n box-shadow: 0px 5px 2px -5px rgba(255, 255, 255, 0.5) inset, 0px 10px 20px -5px rgba(255, 255, 255, 0.1) inset, 0 0px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 1px rgba(0, 0, 0, 0.12), 0 1px 10px 0 rgba(0, 0, 0, 0.3);\r\n z-index: 20;\r\n} */\n/* \r\n */\n/* \r\n#searchfw {\r\n float: right;\r\n display: none;\r\n} */\n/* button#updateAP {\r\n float: right;\r\n display: inline;\r\n} */\n',""])},33:function(n,t){n.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEXIycuswsKMjI4rqqZyc3RQlpQ6jIEmJifW2dq5ursppJ8Om4zC0NAFdGYmmpb///8Hg3O4x8cHkoEggX0jko5Ks6/P0dM5r6ocoZb3+PgiiYVevrp/y8bg4uOS09FtxMDs7+7M6um529qoysik2tiNn72gAAAAF3RSTlP94Fr/Wf39BP26/////////////////kibhL0AAAGjSURBVDjLbZMJkoMgEEWtmETEJWpkiSC45P5nnF4wk7HmW2jLfzYIdFYUxbXUYp5nIbTOUFoLAR2ivIKZFQXYuu6TahSHmdAlAqWub0/QNI1jSxrHacKeWw9EdtH1xHbbyiRgCJn67JqVAr9nO2fJnBDMoUuYEvsfmxnJBM66Zj8/iYmaAPKlOvRNJAC/fz8OefINEAngAbYPEMiHTJCCAZrACciVMpCCgDEBKwsAowymMO3IAP3Btqa5vYJx0ZlcOSUZaE/AWznvnTHOyfZ/wMUQvAIg/wb27QNEH94BgGj+APsZiF8AXAhQQEMwkIYYLW7xvsENoyUoF0I0ysf0F2O743kDQNXzXM8+j8Eb6byzDEz7gtpsO1PgrXG5Nd6btNTP+YXarKTny1uQ9JiAN6vbqT9au+BzMQjAWtlq6BiYttdjiVVVqfXxWFWFkk6Cz0DTdYOFPmpHAAK/YQCJoTppQJ8A3TAxVAAhR439Bg5tKe7NgSDEje3mDsf+ovuGCUbYZb/BwoHS6ykHMYfo/U6lx8Xb/+qo3U/x/lf+VP9c/j9c3zy20WEMxgAAAABJRU5ErkJggg=="},37:function(n,t){},38:function(n,t,o){"use strict";o.r(t);o(6),o(11),o(16),o(17),o(18),o(19),o(20),o(21),o(22),o(23),o(24),o(25),o(26),o(27),o(28),o(29),o(30),o(31),o(32),o(33);var r=o(3),e=o.n(r),a=o(1),i=o.n(a),l=o(5),d=o.n(l),m=o(0);function c(n,t){var o;if("undefined"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(o=function(n,t){if(!n)return;if("string"==typeof n)return s(n,t);var o=Object.prototype.toString.call(n).slice(8,-1);"Object"===o&&n.constructor&&(o=n.constructor.name);if("Map"===o||"Set"===o)return Array.from(n);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return s(n,t)}(n))||t&&n&&"number"==typeof n.length){o&&(n=o);var r=0,e=function(){};return{s:e,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(n){throw n},f:e}}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 a,i=!0,l=!1;return{s:function(){o=n[Symbol.iterator]()},n:function(){var n=o.next();return i=n.done,n},e:function(n){l=!0,a=n},f:function(){try{i||null==o.return||o.return()}finally{if(l)throw a}}}}function s(n,t){(null==t||t>n.length)&&(t=n.length);for(var o=0,r=new Array(t);o")}}),Object.assign(Date.prototype,{toLocalShort:function(){return this.toLocaleString(void 0,{dateStyle:"short",timeStyle:"short"})}});var p=1,b=17,g=2,f=18,u=4,h=20,x=8,v=24,w={bt_playing:"play-circle-fill",bt_disconnected:"bluetooth-fill",bt_neutral:"",bt_connected:"bluetooth-connect-fill",bt_disabled:"",play_arrow:"play-circle-fill",pause:"pause-circle-fill",stop:"stop-circle-fill","":""},y=[{desc:"Idle",sub:["bt_neutral"]},{desc:"Discovering",sub:["bt_disconnected"]},{desc:"Discovered",sub:["bt_disconnected"]},{desc:"Unconnected",sub:["bt_disconnected"]},{desc:"Connecting",sub:["bt_disconnected"]},{desc:"Connected",sub:["bt_connected","play_arrow","bt_playing","pause","stop"]},{desc:"Disconnecting",sub:["bt_disconnected"]}],k={MESSAGING_INFO:"badge-success",MESSAGING_WARNING:"badge-warning",MESSAGING_ERROR:"badge-danger"},A=0,S=1,z=3,E=4,_={0:"eRunning", /*! < A task is querying the state of itself, so must be running. */ 1:"eReady", /*! < The task being queried is in a read or pending ready list. */ @@ -6,4 +6,4 @@ /*! < The task being queried is in the Blocked state. */ 3:"eSuspended", /*! < The task being queried is in the Suspended state, or is in the Blocked state with an infinite time out. */ -4:"eDeleted"},N={NONE:0,REBOOT_TO_RECOVERY:2,SET_FWURL:5,FLASHING:6,DONE:7,UPLOADING:8,ERROR:9},R=N.FLASH_NONE,j="",O=0,C=!1;function I(n){var t={timestamp:Date.now(),config:n};$.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(t),error:F})}function T(n){n.ota_dsc&&(j=n.ota_dsc),null!=n.ota_pct&&(O=n.ota_pct),R!=N.ERROR&&(!function(n){return R!=N.UPLOADING&&(""!=n.ota_dsc||n.ota_pct>0)}(n)?R==N.FLASHING?100==O?(R=N.DONE,$("#flashfilename").val("")):O<0&&C&&(console.log("End of flashing from older recovery"),""==n.ota_dsc&&(j="OTA Process Completed"),R=N.DONE):R==N.UPLOADING&&100==O&&(O=0,R=N.FLASHING):R=N.FLASHING)}function G(n){R=N.ERROR,B({ota_pct:0,ota_dsc:n,event:U.SET_ERROR})}function M(){$("#otadiv").modal(),O>=0&&L(),""!==j&&$("span#flash-status").html(j)}var U={SET_ERROR:function(n){var t;j=n.ota_dsc?n.ota_dsc:"Error",O=null!==(t=n.ota_pct)&&void 0!==t?t:0,$("#fwProgressLabel").parent().addClass("bg-danger"),L(),M()},START_OTA:function(){if(R==N.NONE||R==N.ERROR||null==R){if($("#fwProgressLabel").parent().removeClass("bg-danger"),R=N.REBOOT_TO_RECOVERY,H)j="Starting Update";else{j="Starting recovery mode...";var n={timestamp:Date.now()};$.ajax({url:"/recovery.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(n),error:function(n,t,o){var r;G("Unexpected error while trying to restart to recovery. (status=".concat(null!==(r=n.status)&&void 0!==r?r:"",", error=").concat(null!=o?o:""," ) "))},complete:function(n){console.log(n.responseText)}})}M()}else console.warn("Unexpected status while starting flashing")},FOUND_RECOVERY:function(n){console.log(JSON.stringify(n));var t=$("#fw-url-input").val();if(R==N.REBOOT_TO_RECOVERY){var o=$("#flashfilename")[0].files;if(o.length>0){j="Sending file to device.",R=N.UPLOADING;var r=new XMLHttpRequest;r.upload.addEventListener("progress",D,!1),r.onreadystatechange=function(){4===r.readyState&&(0!==r.status&&404!==r.status||(G("Upload Failed. Recovery version might not support uploading. Please use web update instead."),$("#flashfilename").val("")))},r.open("POST","/flash.json",!0),r.send(o[0])}else if(""==t)R=N.NONE;else{j="Saving firmware URL location.",R=N.SET_FWURL,I({fwurl:{value:$("#fw-url-input").val(),type:33}})}M()}},PROCESS_OTA_UPLOAD:function(n){R=N.UPLOADING,T(n),M()},PROCESS_OTA_STATUS:function(n){n.ota_pct>0&&(C=!0),R==N.REBOOT_TO_RECOVERY?(n.event=U.FOUND_RECOVERY,B(n)):R!=N.DONE||H?(T(n),R&&R>N.NONE&&O>=0&&M()):(R=N.NONE,$("#rTable tr.release").removeClass("table-success table-warning"),$("#fw-url-input").val(""))},PROCESS_OTA:function(n){T(n),R&&R>N.NONE&&O>=0&&M()}};function L(){$(".progress-bar").css("width",O+"%").attr("aria-valuenow",O).text(O+"%"),$(".progress-bar").html((R==N.DONE?100:O)+"%")}function B(n){n.event?n.event(n):console.error("Unexpected error while processing handle_flash_state")}function D(n){B({ota_pct:Math.round(n.loaded/n.total*100),ota_dsc:"Uploading file to device",event:U.PROCESS_OTA_UPLOAD})}function P(n){"bt"===n?($("#bt").prop("checked",!0),$("#o_bt").attr("display","inline"),$("#o_spdif").attr("display","none"),$("#o_i2s").attr("display","none"),on="bt"):"spdif"===n?($("#spdif").prop("checked",!0),$("#o_bt").attr("display","none"),$("#o_spdif").attr("display","inline"),$("#o_i2s").attr("display","none"),on="spdif"):($("#i2s").prop("checked",!0),$("#o_bt").attr("display","none"),$("#o_spdif").attr("display","none"),$("#o_i2s").attr("display","inline"),on="i2s")}function F(n,t,o){console.log(n.status),console.log(o),""!==o&&jn(o,"MESSAGING_ERROR")}function Y(n){$("#toast_"+n).css("display","none"),$("#toast_"+n).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass("table-success"),$("#msg_"+n).html("")}function J(n,t,o){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],e="table-success";"MESSAGING_WARNING"===t?e="table-warning":"MESSAGING_ERROR"===t&&(e="table-danger"),$("#toast_"+n).css("display","block"),$("#toast_"+n).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass(e);var a=o.substring(0,o.length-1).encodeHTML().replace(/\n/g,"
");a=($("#msg_"+n).html().length>0&&r?$("#msg_"+n).html()+"
":"")+a,$("#msg_"+n).html(a)}window.hideSurrounding=function(n){$(n).parent().parent().hide()},window.hFlash=function(){$("#flashfilename").val(""),B({event:U.START_OTA,url:$("#fw-url-input").val()})},window.handleReboot=function(n){"reboot_ota"==n?($("#reboot_ota_nav").removeClass("active").prop("disabled",!0),hn(500,"","reboot_ota")):($("#reboot_nav").removeClass("active"),hn(500,"",n))};var Q,V="https://api.github.com/repos/sle118/squeezelite-esp32/releases",H=!1,W=!1,Z=0,q="MESSAGING_INFO",K=!1,X=null,nn={},tn=null,on="",rn="",en="Squeezelite-ESP32",an="",ln=en,dn=en,mn={},cn={},sn="",pn=0,bn=1,gn=2;function fn(){K=!0,setTimeout(En,3e3)}function un(n){var t={};$("input.nvs").each((function(o,r){if(n)t[r.id]=r.value;else{var e=parseInt(r.attributes.nvs_type.value,10);""!==r.id&&(t[r.id]={},t[r.id].value=e===p||e===b||e===g||e===f||e===u||e===h||e===x||e===v?parseInt(r.value):r.value,t[r.id].type=e)}}));var o=$("#nvs-new-key").val(),r=$("#nvs-new-value").val();return""!==o&&(n?t[o]=r:(t[o]={},t[o].value=r,t[o].type=33)),t}function hn(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"reboot",r="/"+o+".json";$("tbody#tasks").empty(),$("#tasks_sect").css("visibility","collapse"),m.Promise.resolve({cmdname:t,url:r}).delay(n).then((function(n){n.cmdname.length>0?J(n.cmdname,"MESSAGING_WARNING","System is rebooting.\n",!0):jn("System is rebooting.\n","MESSAGING_WARNING"),console.log("now triggering reboot"),$("button[onclick*='handleReboot']").addClass("rebooting"),$.ajax({url:n.url,dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()}),error:F,complete:function(){console.log("reboot call completed"),m.Promise.resolve(n).delay(6e3).then((function(n){n.cmdname.length>0&&Y(n.cmdname),Nn(),Rn()}))}})}))}function xn(n){return $(".upf").filter((function(){return $(this).text().toUpperCase()===n.toUpperCase()})).length>0&&($("#splf").val(n).trigger("input"),!0)}function vn(n){return n>=-55?"signal-wifi-fill":n>=-60?"signal-wifi-3-fill":n>=-65?"signal-wifi-2-fill":n>=-70?"signal-wifi-1-fill":"signal-wifi-line"}function wn(){$.getJSON("/scan.json",e()(i.a.mark((function n(){return i.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,In(2e3);case 2:$.getJSON("/ap.json",(function(n){n.length>0&&(n.sort((function(n,t){var o=n.rssi,r=t.rssi;return or?-1:0})),kn(n))}));case 3:case"end":return n.stop()}}),n)}))))}function yn(n,t,o){return''.concat(n,'\n \n \t\n\t\t\t\t\n\t\t\t\n \n \n \n \n\n\n ')}function kn(n){var t="";if($("#wifiTable tr td:first-of-type").text(""),$("#wifiTable tr").removeClass("table-success table-warning"),n&&(n.forEach((function(n){t+=yn(n.ssid,n.rssi,n.auth)})),$("#wifiTable").html(t)),0==$(".manual_add").length&&($("#wifiTable").append(yn("Manual add",0,0)),$("#wifiTable tr:last").addClass("table-light text-dark").addClass("manual_add")),!mn.ssid||mn.urc!==A&&mn.urc!==E)$("span#foot-wifi").html("");else{var o,r='#wifiTable td:contains("'.concat(mn.ssid,'")');if(0==$(r).filter((function(){return $(this).text()===mn.ssid})).length)$("#wifiTable").prepend("".concat(yn(mn.ssid,null!==(o=mn.rssi)&&void 0!==o?o:0,0)));$(r).filter((function(){return $(this).text()===mn.ssid})).siblings().first().html("✓").parent().addClass(mn.urc===A?"table-success":"table-warning"),$("span#foot-wifi").html("SSID: ".concat(mn.ssid,", IP: ").concat(mn.ip,"")),$("#wifiStsIcon").attr("xlink:href",vn(mn.rssi))}}function An(n){console.debug(this.toLocaleString()+"\t"+n.nme+"\t"+n.cpu+"\t"+_[n.st]+"\t"+n.minstk+"\t"+n.bprio+"\t"+n.cprio+"\t"+n.num),$("tbody#tasks").append(''+n.num+""+n.nme+""+n.cpu+""+_[n.st]+""+n.minstk+""+n.bprio+""+n.cprio+"")}function Sn(n){return $("".concat("#cfg-audio-bt_source-sink_name"," option:contains('").concat(n,"')"))}function $n(n){if($("#WifiConnectDialog").is(":visible")){if(mn.ip&&$("#ipAddress").text(mn.ip),mn.ssid&&$("#connectedToSSID").text(mn.ssid),mn.gw&&$("#gateway").text(mn.gw),mn.netmask&&$("#netmask").text(mn.netmask),(void 0===cn.Action||cn.Action&&cn.Action==gn)&&($("*[class*='connecting']").hide(),$(".connecting-status").show()),nn.ap_ssid&&$("#apName").text(nn.ap_ssid),nn.ap_pwd&&$("#apPass").text(nn.ap_pwd),!n)return;switch(n.urc){case A:n.ssid&&n.ssid===cn.ssid&&($("*[class*='connecting']").hide(),$(".connecting-success").show(),cn.Action=gn);break;case S:cn.Action!=gn&&cn.ssid==n.ssid&&($("*[class*='connecting']").hide(),$(".connecting-fail").show());break;case z:break;case E:cn.Action!=gn&&cn.ssid!=n.ssid&&($("*[class*='connecting']").hide(),$(".connecting-fail").show())}}}function zn(n){(function(n){return n.urc!==mn.urc||n.ssid!==mn.ssid||n.gw!==mn.gw||n.netmask!==mn.netmask||n.ip!==mn.ip||n.rssi!==mn.rssi})(n)&&(mn=n,kn()),$n(n)}function En(){K&&fn(),W||(W=!0,$.getJSON("/messages.json",function(){var n=e()(i.a.mark((function n(t){var o,r,e,a,l,d,m,s,p,b,g;return i.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:o=c(t);try{for(e=function(){var n,t,o=r.value,e=o.current_time-o.sent_time;switch((a=new Date).setTime(a.getTime()-e),o.class){case"MESSAGING_CLASS_OTA":B({ota_pct:null!==(n=(l=JSON.parse(o.message)).ota_pct)&&void 0!==n?n:-1,ota_dsc:null!==(t=l.ota_dsc)&&void 0!==t?t:"",event:U.PROCESS_OTA});break;case"MESSAGING_CLASS_STATS":d=JSON.parse(o.message),console.debug(a.toLocalShort()+" - Number of running tasks: "+d.ntasks),console.debug(a.toLocalShort()+"\tname\tcpu\tstate\tminstk\tbprio\tcprio\tnum"),d.tasks?("collapse"===$("#tasks_sect").css("visibility")&&$("#tasks_sect").css("visibility","visible"),$("tbody#tasks").html(""),d.tasks.sort((function(n,t){return t.cpu-n.cpu})).forEach(An,a)):"visible"===$("#tasks_sect").css("visibility")&&($("tbody#tasks").empty(),$("#tasks_sect").css("visibility","collapse"));break;case"MESSAGING_CLASS_SYSTEM":On(o,a);break;case"MESSAGING_CLASS_CFGCMD":J((m=o.message.split(/((?:(?!\n)[\s\S])*)\n([\s\S]*)/g))[1],o.type,m[2],!0);break;case"MESSAGING_CLASS_BT":if($("#cfg-audio-bt_source-sink_name").is("input")){for(s=$("#cfg-audio-bt_source-sink_name")[0].attributes,p="",b=0;b "))}JSON.parse(o.message).forEach((function(n){Sn(n.name).length>0||($("#cfg-audio-bt_source-sink_name").append("")),On({type:o.type,message:"BT Audio device found: ".concat(n.name," RSSI: ").concat(n.rssi," ")},a)),Sn(n.name).attr("data-description","".concat(n.name," (").concat(n.rssi,"dB)")).attr("rssi",n.rssi).attr("value",n.name).text("".concat(n.name," [").concat(n.rssi,"dB]")).trigger("change")})),$("#cfg-audio-bt_source-sink_name").append($("".concat("#cfg-audio-bt_source-sink_name"," option")).remove().sort((function(n,t){return console.log("".concat(parseInt($(n).attr("rssi"))," < ").concat(parseInt($(t).attr("rssi"))," ? ")),parseInt($(n).attr("rssi"))[recovery]":"")),$("span#foot-fw").html("fw: ".concat(en,", mode: ").concat(H?"Recovery":ln,""))):$("span#flash-status").html(""),n.Voltage?($("#battery").attr("xlink:href","#".concat(function(n){if(n>0)return Cn(n,5.8,6.8)||Cn(n,8.8,10.2)||Cn(n,6.8,7.4)||Cn(n,10.2,11.1)||Cn(n,7.4,7.5)||Cn(n,11.1,11.25)?"battery-low-line":Cn(n,7.5,7.8)||Cn(n,11.25,11.7)?"battery-fill":"battery-line"}(n.Voltage))),$("#battery").show()):$("#battery").hide(),""!=(null!==(r=n.message)&&void 0!==r?r:"")&&an!=n.message&&(an=n.message,jn(n.message,"MESSAGING_INFO")),$("button[onclick*='handleReboot']").removeClass("rebooting"),void 0===Q||n.lms_ip!=sn&&n.lms_ip&&n.lms_port){var e="http://"+n.lms_ip+":"+n.lms_port;sn=n.lms_ip,$.ajax({url:e+"/plugins/SqueezeESP32/firmware/-check.bin",type:"HEAD",dataType:"text",cache:!1,error:function(){Q=""},success:function(){Q=e}})}$("#o_jack").attr("display",Number(n.Jack)?"inline":"none"),W=!1})).fail((function(n,t,o){F(n,0,o),W=!1})))}function _n(n,t,o){return void 0!==n.values[t]?n.values[t][o]:""}function Nn(){$.getJSON("/commands.json",(function(n){console.log(n),$(".orec").show(),n.commands.forEach((function(t){if(0===$("#flds-"+t.name).length){var o=t.name.split("-"),r="cfg"===o[0],e="#tab-"+o[0]+"-"+o[1],a="";a+='

'+t.help.encodeHTML().replace(/\n/g,"
")+'
',a+='
',t.argtable&&t.argtable.forEach((function(o){var r=o.datatype||"",e=t.name+"-"+o.longopts,i=_n(n,t.name,o.longopts),l="hasvalue="+o.hasvalue+" ";l+='longopts="'+o.longopts+'" ',l+='shortopts="'+o.shortopts+'" ',l+="checkbox="+o.checkbox+" ",l+='cmdname="'+t.name+'" ',l+='id="'+e+'" name="'+e+'" hasvalue="'+o.hasvalue+'" ';var d=o.mincount>0?"bg-success":"";"hidden"===o.glossary&&(l+=' style="visibility: hidden;"'),o.checkbox?(a+='
"):(a+='
",r.includes("|")?(d=r.startsWith("+")?" multiple ":"",r=r.replace("<","").replace("=","").replace(">",""),a+=""):a+='",a+='Previous value: '+(i||"")+""),a+="
"})),a+='
',a+='',r?(a+='',a+=''):a+='',a+="
",r?$(e).append(a):$("#commands-list").append(a)}})),n.commands.forEach((function(t){$("[cmdname="+t.name+"]:input").val(""),$("[cmdname="+t.name+"]:checkbox").prop("checked",!1),t.argtable&&t.argtable.forEach((function(o){var r="#"+t.name+"-"+o.longopts,e=_n(n,t.name,o.longopts);o.checkbox?$(r)[0].checked=e:(void 0!==e&&$(r).val(e).trigger("change"),0===$(r)[0].value.length&&(o.datatype||"").includes("|")&&($(r)[0].value="--"))}))}))})).fail((function(n,t,o){404==n.status?$(".orec").hide():F(n,0,o),$("#commands-list").empty(),W=!1}))}function Rn(){$.getJSON("/config.json",(function(n){$("#nvsTable tr").remove();var t=n.config?n.config:n;nn=t,Object.keys(t).sort().forEach((function(n){var o=t[n].value;if("autoexec"===n)"0"===t.autoexec.value?$("#disable-squeezelite")[0].checked=!0:$("#disable-squeezelite")[0].checked=!1;else if("autoexec1"===n){var r=/-o\s?(["][^"]*["]|[^-]+)/g.exec(o);r[1].toUpperCase().startsWith("I2S")?P("i2s"):r[1].toUpperCase().startsWith("SPDIF")?P("spdif"):r[1].toUpperCase().startsWith('"BT')&&P("bt")}else"host_name"===n?(o=o.replaceAll('"',""),$("input#dhcp-name1").val(o),$("input#dhcp-name2").val(o),$("#player").val(o),document.title=o,rn=o):"rel_api"===n&&(V=o);$("tbody#nvsTable").append(""+n+""),$("input#"+n).val(t[n].value)})),$("tbody#nvsTable").append(""),n.gpio?($("#pins").show(),$("tbody#gpiotable tr").remove(),n.gpio.forEach((function(n){$("tbody#gpiotable").append("'+n.group+""+n.name+""+n.gpio+""+(n.fixed?"Fixed":"Configuration")+"")}))):$("#pins").hide()})).fail((function(n,t,o){F(n,0,o),W=!1}))}function jn(n,t){On({message:n,type:t},new Date)}function On(n,t){var o="table-success";"MESSAGING_WARNING"===n.type?(o="table-warning","MESSAGING_INFO"===q&&(q="MESSAGING_WARNING")):"MESSAGING_ERROR"===n.type&&("MESSAGING_INFO"!==q&&"MESSAGING_WARNING"!==q||(q="MESSAGING_ERROR"),o="table-danger"),++Z>0&&($("#msgcnt").removeClass("badge-success"),$("#msgcnt").removeClass("badge-warning"),$("#msgcnt").removeClass("badge-danger"),$("#msgcnt").addClass(k[q]),$("#msgcnt").text(Z)),$("#syslogTable").append(""+t.toLocalShort()+""+n.message.encodeHTML()+"")}function Cn(n,t,o){return(n-t)*(n-o)<=0}function In(n){return new m.Promise((function(t){return setTimeout(t,n)}))}m.Promise.prototype.delay=function(n){return this.then((function(t){return new m.Promise((function(o){setTimeout((function(){o(t)}),n)}))}),(function(t){return new m.Promise((function(o,r){setTimeout((function(){r(t)}),n)}))}))},window.saveAutoexec1=function(n){J("cfg-audio-tmpl","MESSAGING_INFO","Saving.\n",!1);var t='squeezelite -b 500:2000 -d all=info -C 30 -W -n "'+$("#player").val()+'"';"bt"===on?(t+=' -o "BT" -R -Z 192000',J("cfg-audio-tmpl","MESSAGING_INFO","Remember to configure the Bluetooth audio device name.\n",!0)):t+="spdif"===on?" -o SPDIF -Z 192000":" -o I2S",""!==$("#optional").val()&&(t+=" "+$("#optional").val());var o={timestamp:Date.now()};o.config={autoexec1:{value:t,type:33},autoexec:{value:$("#disable-squeezelite").prop("checked")?"0":"1",type:33}},$.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(o),error:F,complete:function(t){t.responseText.result&&"OK"===JSON.parse(t.responseText).result?(J("cfg-audio-tmpl","MESSAGING_INFO","Done.\n",!0),n&&hn(1500,"cfg-audio-tmpl")):t.responseText.result?J("cfg-audio-tmpl","MESSAGING_WARNING",JSON.parse(t.responseText).Result+"\n",!0):J("cfg-audio-tmpl","MESSAGING_ERROR",t.statusText+"\n"),console.log(t.responseText)}}),console.log("sent data:",JSON.stringify(o))},window.handleDisconnect=function(){$.ajax({url:"/connect.json",dataType:"text",method:"DELETE",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()})})},window.handleConnect=function(){cn.ssid=$("#manual_ssid").val(),cn.pwd=$("#manual_pwd").val(),cn.dhcpname=$("#dhcp-name2").val(),$("*[class*='connecting']").hide(),$("#ssid-wait").text(cn.ssid),$(".connecting").show(),$.ajax({url:"/connect.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now(),ssid:cn.ssid,pwd:cn.pwd}),error:F}),fn()},$(document).ready((function(){$("#wifiTable").on("click","tr",(function(){})),$("#fw-url-input").on("input",(function(){$(this).val().length>8&&($(this).val().startsWith("http://")||$(this).val().startsWith("https://"))?$("#start-flash").show():$("#start-flash").hide()})),$(".upSrch").on("input",(function(){var n=this.value;$("#rTable tr").removeClass(this.id+"_hide"),n.length>0&&$("#rTable td:nth-child(".concat($(this).parent().index()+1,")")).filter((function(){return!$(this).text().toUpperCase().includes(n.toUpperCase())})).parent().addClass(this.id+"_hide"),$('[class*="_hide"]').hide(),$("#rTable tr").not('[class*="_hide"]').show()})),setTimeout(wn,1500),$("#otadiv").on("hidden.bs.modal",(function(){R=N.NONE})),$("#WifiConnectDialog").on("shown.bs.modal",(function(){$("*[class*='connecting']").hide(),cn.Action!==gn?($(".connecting-init").show(),$("#manual_ssid").trigger("focus")):$n()})),$("#WifiConnectDialog").on("hidden.bs.modal",(function(){$("#WifiConnectDialog input").val("")})),$("#uCnfrm").on("shown.bs.modal",(function(){$("#selectedFWURL").text($("#fw-url-input").val())})),$("input#show-commands")[0].checked=1===tn,$('a[href^="#tab-commands"]').hide(),$("#load-nvs").on("click",(function(){$("#nvsfilename").trigger("click")})),$("#clear-syslog").on("click",(function(){Z=0,q="MESSAGING_INFO",$("#msgcnt").text(""),$("#syslogTable").html("")})),$("#wifiTable").on("click","tr",(function(){cn.Action=pn,$(this).children("td:eq(1)").text()!=mn.ssid?$(this).is(":last-child")?(cn.Action=bn,cn.ssid="",$("#manual_ssid").val(cn.ssid)):(cn.ssid=$(this).children("td:eq(1)").text(),$("#manual_ssid").val(cn.ssid)):cn.Action=gn})),$("#ok-credits").on("click",(function(){$("#credits").slideUp("fast",(function(){})),$("#app").slideDown("fast",(function(){}))})),$("#acredits").on("click",(function(n){n.preventDefault(),$("#app").slideUp("fast",(function(){})),$("#credits").slideDown("fast",(function(){}))})),$("input#show-commands").on("click",(function(){this.checked=this.checked?1:0,this.checked?($('a[href^="#tab-commands"]').show(),tn=1):(tn=0,$('a[href^="#tab-commands"]').hide())})),$("input#show-nvs").on("click",(function(){this.checked=this.checked?1:0,this.checked?$('*[href*="-nvs"]').show():$('*[href*="-nvs"]').hide()})),$("#save-as-nvs").on("click",(function(){var n=un(!0),t=document.createElement("a");t.href=URL.createObjectURL(new Blob([JSON.stringify(n,null,2)],{type:"text/plain"})),t.setAttribute("download","nvs_config_"+rn+"_"+Date.now()+"json"),document.body.appendChild(t),t.click(),document.body.removeChild(t)})),$("#save-nvs").on("click",(function(){I(un(!1))})),$("#fwUpload").on("click",(function(){var n=document.getElementById("flashfilename").files;0===n.length?alert("No file selected!"):B({event:U.START_OTA,file:n[0]})})),$("[name=output-tmpl]").on("click",(function(){P(this.id)})),$("#chkUpdates").on("click",(function(){$("#rTable").html(""),$.getJSON(V,(function(n){var t=[];n.forEach((function(n){var o=n.name.split("#")[3];t.includes(o)||t.push(o)}));var o="";t.forEach((function(n){o+='"})),$("#fwbranch").append(o),n.forEach((function(n){var t="";n.assets.forEach((function(n){n.name.match(/\.bin$/)&&(t=n.browser_download_url)}));var o=n.name.split("#"),r=o[0],e=o[2],a=o[3],i=r.substr(r.lastIndexOf("-")+1);i="32"==i||"16"==i?i:"";var l=n.body;l=(l=(l=l.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- "),$("#rTable").append("\n ").concat(r,"").concat(new Date(n.created_at).toLocalShort(),"\n ").concat(e,"").concat(a,"").concat(i,""))})),$("#searchfw").css("display","inline"),xn(dn)||xn(ln),$("#rTable tr.release").on("click",(function(){var n=this.attributes.fwurl.value;Q&&(n=n.replace(/.*\/download\//,Q+"/plugins/SqueezeESP32/firmware/")),$("#fw-url-input").val(n),$("#start-flash").show(),$("#rTable tr.release").removeClass("table-success table-warning"),$(this).addClass("table-success table-warning")}))})).fail((function(){alert("failed to fetch release history!")}))})),$("#fwcheck").on("click",(function(){$("#releaseTable").html(""),$("#fwbranch").empty(),$.getJSON(V,(function(n){var t,o=0,r=[];n.forEach((function(n){var t=n.name.split("#")[3];r.includes(t)||r.push(t)})),r.forEach((function(n){t+='"})),$("#fwbranch").append(t),n.forEach((function(n){var t="";n.assets.forEach((function(n){n.name.match(/\.bin$/)&&(t=n.browser_download_url)}));var r=n.name.split("#"),e=r[0],a=r[1],i=r[2],l=r[3],d=n.body;d=(d=(d=d.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- ");var m=o++>6?" hide":"";$("#releaseTable").append(""+e+""+new Date(n.created_at).toLocalShort()+""+i+""+a+""+l+"")})),o>7&&($("#releaseTable").append(""),$("#showallbutton").on("click",(function(){$("tr.hide").removeClass("hide"),$("tr#showall").addClass("hide")}))),$("#searchfw").css("display","inline")})).fail((function(){alert("failed to fetch release history!")}))})),$("#updateAP").on("click",(function(){wn(),console.log("refresh AP")})),Rn(),Nn(),fn()})),window.setURL=function(n){var t=n.dataset.url;$('[data-url^="http"]').addClass("btn-success").removeClass("btn-danger"),$('[data-url="'+t+'"]').addClass("btn-danger").removeClass("btn-success"),Q&&(t=t.replace(/.*\/download\//,Q+"/plugins/SqueezeESP32/firmware/")),$("#fwurl").val(t)},window.runCommand=function(n,t){var o=n.attributes.cmdname.value;J(n.attributes.cmdname.value,"MESSAGING_INFO","Executing.",!1);var r=document.getElementById("flds-"+o);if(o+=" ",r)for(var e=r.querySelectorAll("select,input"),a=0;a0)}(n)?R==N.FLASHING?100==O?(R=N.DONE,$("#flashfilename").val("")):O<0&&C&&(console.log("End of flashing from older recovery"),""==n.ota_dsc&&(j="OTA Process Completed"),R=N.DONE):R==N.UPLOADING&&100==O&&(O=0,R=N.FLASHING):R=N.FLASHING)}function G(n){R=N.ERROR,B({ota_pct:0,ota_dsc:n,event:U.SET_ERROR})}function M(){$("#otadiv").modal(),O>=0&&L(),""!==j&&$("span#flash-status").html(j)}var U={SET_ERROR:function(n){var t;j=n.ota_dsc?n.ota_dsc:"Error",O=null!==(t=n.ota_pct)&&void 0!==t?t:0,$("#fwProgressLabel").parent().addClass("bg-danger"),L(),M()},START_OTA:function(){if(R==N.NONE||R==N.ERROR||null==R){if($("#fwProgressLabel").parent().removeClass("bg-danger"),R=N.REBOOT_TO_RECOVERY,H)j="Starting Update";else{j="Starting recovery mode...";var n={timestamp:Date.now()};$.ajax({url:"/recovery.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(n),error:function(n,t,o){var r;G("Unexpected error while trying to restart to recovery. (status=".concat(null!==(r=n.status)&&void 0!==r?r:"",", error=").concat(null!=o?o:""," ) "))},complete:function(n){console.log(n.responseText)}})}M()}else console.warn("Unexpected status while starting flashing")},FOUND_RECOVERY:function(n){console.log(JSON.stringify(n));var t=$("#fw-url-input").val();if(R==N.REBOOT_TO_RECOVERY){var o=$("#flashfilename")[0].files;if(o.length>0){j="Sending file to device.",R=N.UPLOADING;var r=new XMLHttpRequest;r.upload.addEventListener("progress",D,!1),r.onreadystatechange=function(){4===r.readyState&&(0!==r.status&&404!==r.status||(G("Upload Failed. Recovery version might not support uploading. Please use web update instead."),$("#flashfilename").val("")))},r.open("POST","/flash.json",!0),r.send(o[0])}else if(""==t)R=N.NONE;else{j="Saving firmware URL location.",R=N.SET_FWURL,I({fwurl:{value:$("#fw-url-input").val(),type:33}})}M()}},PROCESS_OTA_UPLOAD:function(n){R=N.UPLOADING,T(n),M()},PROCESS_OTA_STATUS:function(n){n.ota_pct>0&&(C=!0),R==N.REBOOT_TO_RECOVERY?(n.event=U.FOUND_RECOVERY,B(n)):R!=N.DONE||H?(T(n),R&&R>N.NONE&&O>=0&&M()):(R=N.NONE,$("#rTable tr.release").removeClass("table-success table-warning"),$("#fw-url-input").val(""))},PROCESS_OTA:function(n){T(n),R&&R>N.NONE&&O>=0&&M()}};function L(){$(".progress-bar").css("width",O+"%").attr("aria-valuenow",O).text(O+"%"),$(".progress-bar").html((R==N.DONE?100:O)+"%")}function B(n){n.event?n.event(n):console.error("Unexpected error while processing handle_flash_state")}function D(n){B({ota_pct:Math.round(n.loaded/n.total*100),ota_dsc:"Uploading file to device",event:U.PROCESS_OTA_UPLOAD})}function P(n){"bt"===n?($("#bt").prop("checked",!0),$("#o_bt").attr("display","inline"),$("#o_spdif").attr("display","none"),$("#o_i2s").attr("display","none"),on="bt"):"spdif"===n?($("#spdif").prop("checked",!0),$("#o_bt").attr("display","none"),$("#o_spdif").attr("display","inline"),$("#o_i2s").attr("display","none"),on="spdif"):($("#i2s").prop("checked",!0),$("#o_bt").attr("display","none"),$("#o_spdif").attr("display","none"),$("#o_i2s").attr("display","inline"),on="i2s")}function F(n,t,o){console.log(n.status),console.log(o),""!==o&&jn(o,"MESSAGING_ERROR")}function Y(n){$("#toast_"+n).css("display","none"),$("#toast_"+n).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass("table-success"),$("#msg_"+n).html("")}function J(n,t,o){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],e="table-success";"MESSAGING_WARNING"===t?e="table-warning":"MESSAGING_ERROR"===t&&(e="table-danger"),$("#toast_"+n).css("display","block"),$("#toast_"+n).removeClass("table-success").removeClass("table-warning").removeClass("table-danger").addClass(e);var a=o.substring(0,o.length-1).encodeHTML().replace(/\n/g,"
");a=($("#msg_"+n).html().length>0&&r?$("#msg_"+n).html()+"
":"")+a,$("#msg_"+n).html(a)}window.hideSurrounding=function(n){$(n).parent().parent().hide()},window.hFlash=function(){$("#flashfilename").val(""),B({event:U.START_OTA,url:$("#fw-url-input").val()})},window.handleReboot=function(n){"reboot_ota"==n?($("#reboot_ota_nav").removeClass("active").prop("disabled",!0),hn(500,"","reboot_ota")):($("#reboot_nav").removeClass("active"),hn(500,"",n))};var Q,V="https://api.github.com/repos/sle118/squeezelite-esp32/releases",H=!1,W=!1,Z=0,q="MESSAGING_INFO",K=!1,X=null,nn={},tn=null,on="",rn="",en="Squeezelite-ESP32",an="",ln=en,dn=en,mn={},cn={},sn="",pn=0,bn=1,gn=2;function fn(){K=!0,setTimeout(En,3e3)}function un(n){var t={};$("input.nvs").each((function(o,r){if(n)t[r.id]=r.value;else{var e=parseInt(r.attributes.nvs_type.value,10);""!==r.id&&(t[r.id]={},t[r.id].value=e===p||e===b||e===g||e===f||e===u||e===h||e===x||e===v?parseInt(r.value):r.value,t[r.id].type=e)}}));var o=$("#nvs-new-key").val(),r=$("#nvs-new-value").val();return""!==o&&(n?t[o]=r:(t[o]={},t[o].value=r,t[o].type=33)),t}function hn(n,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"reboot",r="/"+o+".json";$("tbody#tasks").empty(),$("#tasks_sect").css("visibility","collapse"),m.Promise.resolve({cmdname:t,url:r}).delay(n).then((function(n){n.cmdname.length>0?J(n.cmdname,"MESSAGING_WARNING","System is rebooting.\n",!0):jn("System is rebooting.\n","MESSAGING_WARNING"),console.log("now triggering reboot"),$("button[onclick*='handleReboot']").addClass("rebooting"),$.ajax({url:n.url,dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()}),error:F,complete:function(){console.log("reboot call completed"),m.Promise.resolve(n).delay(6e3).then((function(n){n.cmdname.length>0&&Y(n.cmdname),Nn(),Rn()}))}})}))}function xn(n){return $(".upf").filter((function(){return $(this).text().toUpperCase()===n.toUpperCase()})).length>0&&($("#splf").val(n).trigger("input"),!0)}function vn(n){return n>=-55?"signal-wifi-fill":n>=-60?"signal-wifi-3-fill":n>=-65?"signal-wifi-2-fill":n>=-70?"signal-wifi-1-fill":"signal-wifi-line"}function wn(){$.getJSON("/scan.json",e()(i.a.mark((function n(){return i.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,In(2e3);case 2:$.getJSON("/ap.json",(function(n){n.length>0&&(n.sort((function(n,t){var o=n.rssi,r=t.rssi;return or?-1:0})),kn(n))}));case 3:case"end":return n.stop()}}),n)}))))}function yn(n,t,o){return''.concat(n,'\n \n \t\n\t\t\t\t\n\t\t\t\n \n \n \n \n\n\n ')}function kn(n){var t="";if($("#wifiTable tr td:first-of-type").text(""),$("#wifiTable tr").removeClass("table-success table-warning"),n&&(n.forEach((function(n){t+=yn(n.ssid,n.rssi,n.auth)})),$("#wifiTable").html(t)),0==$(".manual_add").length&&($("#wifiTable").append(yn("Manual add",0,0)),$("#wifiTable tr:last").addClass("table-light text-dark").addClass("manual_add")),!mn.ssid||mn.urc!==A&&mn.urc!==E)$("span#foot-wifi").html("");else{var o,r='#wifiTable td:contains("'.concat(mn.ssid,'")');if(0==$(r).filter((function(){return $(this).text()===mn.ssid})).length)$("#wifiTable").prepend("".concat(yn(mn.ssid,null!==(o=mn.rssi)&&void 0!==o?o:0,0)));$(r).filter((function(){return $(this).text()===mn.ssid})).siblings().first().html("✓").parent().addClass(mn.urc===A?"table-success":"table-warning"),$("span#foot-wifi").html("SSID: ".concat(mn.ssid,", IP: ").concat(mn.ip,"")),$("#wifiStsIcon").attr("xlink:href",vn(mn.rssi))}}function An(n){console.debug(this.toLocaleString()+"\t"+n.nme+"\t"+n.cpu+"\t"+_[n.st]+"\t"+n.minstk+"\t"+n.bprio+"\t"+n.cprio+"\t"+n.num),$("tbody#tasks").append(''+n.num+""+n.nme+""+n.cpu+""+_[n.st]+""+n.minstk+""+n.bprio+""+n.cprio+"")}function Sn(n){return $("".concat("#cfg-audio-bt_source-sink_name"," option:contains('").concat(n,"')"))}function $n(n){if($("#WifiConnectDialog").is(":visible")){if(mn.ip&&$("#ipAddress").text(mn.ip),mn.ssid&&$("#connectedToSSID").text(mn.ssid),mn.gw&&$("#gateway").text(mn.gw),mn.netmask&&$("#netmask").text(mn.netmask),(void 0===cn.Action||cn.Action&&cn.Action==gn)&&($("*[class*='connecting']").hide(),$(".connecting-status").show()),nn.ap_ssid&&$("#apName").text(nn.ap_ssid.value),nn.ap_pwd&&$("#apPass").text(nn.ap_pwd.value),!n)return;switch(n.urc){case A:n.ssid&&n.ssid===cn.ssid&&($("*[class*='connecting']").hide(),$(".connecting-success").show(),cn.Action=gn);break;case S:cn.Action!=gn&&cn.ssid==n.ssid&&($("*[class*='connecting']").hide(),$(".connecting-fail").show());break;case z:break;case E:cn.Action!=gn&&cn.ssid!=n.ssid&&($("*[class*='connecting']").hide(),$(".connecting-fail").show())}}}function zn(n){(function(n){return n.urc!==mn.urc||n.ssid!==mn.ssid||n.gw!==mn.gw||n.netmask!==mn.netmask||n.ip!==mn.ip||n.rssi!==mn.rssi})(n)&&(mn=n,kn()),$n(n)}function En(){K&&fn(),W||(W=!0,$.getJSON("/messages.json",function(){var n=e()(i.a.mark((function n(t){var o,r,e,a,l,d,m,s,p,b,g;return i.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:o=c(t);try{for(e=function(){var n,t,o=r.value,e=o.current_time-o.sent_time;switch((a=new Date).setTime(a.getTime()-e),o.class){case"MESSAGING_CLASS_OTA":B({ota_pct:null!==(n=(l=JSON.parse(o.message)).ota_pct)&&void 0!==n?n:-1,ota_dsc:null!==(t=l.ota_dsc)&&void 0!==t?t:"",event:U.PROCESS_OTA});break;case"MESSAGING_CLASS_STATS":d=JSON.parse(o.message),console.debug(a.toLocalShort()+" - Number of running tasks: "+d.ntasks),console.debug(a.toLocalShort()+"\tname\tcpu\tstate\tminstk\tbprio\tcprio\tnum"),d.tasks?("collapse"===$("#tasks_sect").css("visibility")&&$("#tasks_sect").css("visibility","visible"),$("tbody#tasks").html(""),d.tasks.sort((function(n,t){return t.cpu-n.cpu})).forEach(An,a)):"visible"===$("#tasks_sect").css("visibility")&&($("tbody#tasks").empty(),$("#tasks_sect").css("visibility","collapse"));break;case"MESSAGING_CLASS_SYSTEM":On(o,a);break;case"MESSAGING_CLASS_CFGCMD":J((m=o.message.split(/((?:(?!\n)[\s\S])*)\n([\s\S]*)/g))[1],o.type,m[2],!0);break;case"MESSAGING_CLASS_BT":if($("#cfg-audio-bt_source-sink_name").is("input")){for(s=$("#cfg-audio-bt_source-sink_name")[0].attributes,p="",b=0;b "))}JSON.parse(o.message).forEach((function(n){Sn(n.name).length>0||($("#cfg-audio-bt_source-sink_name").append("")),On({type:o.type,message:"BT Audio device found: ".concat(n.name," RSSI: ").concat(n.rssi," ")},a)),Sn(n.name).attr("data-description","".concat(n.name," (").concat(n.rssi,"dB)")).attr("rssi",n.rssi).attr("value",n.name).text("".concat(n.name," [").concat(n.rssi,"dB]")).trigger("change")})),$("#cfg-audio-bt_source-sink_name").append($("".concat("#cfg-audio-bt_source-sink_name"," option")).remove().sort((function(n,t){return console.log("".concat(parseInt($(n).attr("rssi"))," < ").concat(parseInt($(t).attr("rssi"))," ? ")),parseInt($(n).attr("rssi"))[recovery]":"")),$("span#foot-fw").html("fw: ".concat(en,", mode: ").concat(H?"Recovery":ln,""))):$("span#flash-status").html(""),n.Voltage?($("#battery").attr("xlink:href","#".concat(function(n){if(n>0)return Cn(n,5.8,6.8)||Cn(n,8.8,10.2)||Cn(n,6.8,7.4)||Cn(n,10.2,11.1)||Cn(n,7.4,7.5)||Cn(n,11.1,11.25)?"battery-low-line":Cn(n,7.5,7.8)||Cn(n,11.25,11.7)?"battery-fill":"battery-line"}(n.Voltage))),$("#battery").show()):$("#battery").hide(),""!=(null!==(r=n.message)&&void 0!==r?r:"")&&an!=n.message&&(an=n.message,jn(n.message,"MESSAGING_INFO")),$("button[onclick*='handleReboot']").removeClass("rebooting"),void 0===Q||n.lms_ip!=sn&&n.lms_ip&&n.lms_port){var e="http://"+n.lms_ip+":"+n.lms_port;sn=n.lms_ip,$.ajax({url:e+"/plugins/SqueezeESP32/firmware/-check.bin",type:"HEAD",dataType:"text",cache:!1,error:function(){Q=""},success:function(){Q=e}})}$("#o_jack").attr("display",Number(n.Jack)?"inline":"none"),W=!1})).fail((function(n,t,o){F(n,0,o),W=!1})))}function _n(n,t,o){return void 0!==n.values[t]?n.values[t][o]:""}function Nn(){$.getJSON("/commands.json",(function(n){console.log(n),$(".orec").show(),n.commands.forEach((function(t){if(0===$("#flds-"+t.name).length){var o=t.name.split("-"),r="cfg"===o[0],e="#tab-"+o[0]+"-"+o[1],a="";a+='
'+t.help.encodeHTML().replace(/\n/g,"
")+'
',a+='
',t.argtable&&t.argtable.forEach((function(o){var r=o.datatype||"",e=t.name+"-"+o.longopts,i=_n(n,t.name,o.longopts),l="hasvalue="+o.hasvalue+" ";l+='longopts="'+o.longopts+'" ',l+='shortopts="'+o.shortopts+'" ',l+="checkbox="+o.checkbox+" ",l+='cmdname="'+t.name+'" ',l+='id="'+e+'" name="'+e+'" hasvalue="'+o.hasvalue+'" ';var d=o.mincount>0?"bg-success":"";"hidden"===o.glossary&&(l+=' style="visibility: hidden;"'),o.checkbox?(a+='
"):(a+='
",r.includes("|")?(d=r.startsWith("+")?" multiple ":"",r=r.replace("<","").replace("=","").replace(">",""),a+=""):a+='",a+='Previous value: '+(i||"")+""),a+="
"})),a+='
',a+='',r?(a+='',a+=''):a+='',a+="
",r?$(e).append(a):$("#commands-list").append(a)}})),n.commands.forEach((function(t){$("[cmdname="+t.name+"]:input").val(""),$("[cmdname="+t.name+"]:checkbox").prop("checked",!1),t.argtable&&t.argtable.forEach((function(o){var r="#"+t.name+"-"+o.longopts,e=_n(n,t.name,o.longopts);o.checkbox?$(r)[0].checked=e:(void 0!==e&&$(r).val(e).trigger("change"),0===$(r)[0].value.length&&(o.datatype||"").includes("|")&&($(r)[0].value="--"))}))}))})).fail((function(n,t,o){404==n.status?$(".orec").hide():F(n,0,o),$("#commands-list").empty(),W=!1}))}function Rn(){$.getJSON("/config.json",(function(n){$("#nvsTable tr").remove();var t=n.config?n.config:n;nn=t,Object.keys(t).sort().forEach((function(n){var o=t[n].value;if("autoexec"===n)"0"===t.autoexec.value?$("#disable-squeezelite")[0].checked=!0:$("#disable-squeezelite")[0].checked=!1;else if("autoexec1"===n){var r=/-o\s?(["][^"]*["]|[^-]+)/g.exec(o);r[1].toUpperCase().startsWith("I2S")?P("i2s"):r[1].toUpperCase().startsWith("SPDIF")?P("spdif"):r[1].toUpperCase().startsWith('"BT')&&P("bt")}else"host_name"===n?(o=o.replaceAll('"',""),$("input#dhcp-name1").val(o),$("input#dhcp-name2").val(o),$("#player").val(o),document.title=o,rn=o):"rel_api"===n&&(V=o);$("tbody#nvsTable").append(""+n+""),$("input#"+n).val(t[n].value)})),$("tbody#nvsTable").append(""),n.gpio?($("#pins").show(),$("tbody#gpiotable tr").remove(),n.gpio.forEach((function(n){$("tbody#gpiotable").append("'+n.group+""+n.name+""+n.gpio+""+(n.fixed?"Fixed":"Configuration")+"")}))):$("#pins").hide()})).fail((function(n,t,o){F(n,0,o),W=!1}))}function jn(n,t){On({message:n,type:t},new Date)}function On(n,t){var o="table-success";"MESSAGING_WARNING"===n.type?(o="table-warning","MESSAGING_INFO"===q&&(q="MESSAGING_WARNING")):"MESSAGING_ERROR"===n.type&&("MESSAGING_INFO"!==q&&"MESSAGING_WARNING"!==q||(q="MESSAGING_ERROR"),o="table-danger"),++Z>0&&($("#msgcnt").removeClass("badge-success"),$("#msgcnt").removeClass("badge-warning"),$("#msgcnt").removeClass("badge-danger"),$("#msgcnt").addClass(k[q]),$("#msgcnt").text(Z)),$("#syslogTable").append(""+t.toLocalShort()+""+n.message.encodeHTML()+"")}function Cn(n,t,o){return(n-t)*(n-o)<=0}function In(n){return new m.Promise((function(t){return setTimeout(t,n)}))}m.Promise.prototype.delay=function(n){return this.then((function(t){return new m.Promise((function(o){setTimeout((function(){o(t)}),n)}))}),(function(t){return new m.Promise((function(o,r){setTimeout((function(){r(t)}),n)}))}))},window.saveAutoexec1=function(n){J("cfg-audio-tmpl","MESSAGING_INFO","Saving.\n",!1);var t='squeezelite -b 500:2000 -d all=info -C 30 -W -n "'+$("#player").val()+'"';"bt"===on?(t+=' -o "BT" -R -Z 192000',J("cfg-audio-tmpl","MESSAGING_INFO","Remember to configure the Bluetooth audio device name.\n",!0)):t+="spdif"===on?" -o SPDIF -Z 192000":" -o I2S",""!==$("#optional").val()&&(t+=" "+$("#optional").val());var o={timestamp:Date.now()};o.config={autoexec1:{value:t,type:33},autoexec:{value:$("#disable-squeezelite").prop("checked")?"0":"1",type:33}},$.ajax({url:"/config.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify(o),error:F,complete:function(t){t.responseText.result&&"OK"===JSON.parse(t.responseText).result?(J("cfg-audio-tmpl","MESSAGING_INFO","Done.\n",!0),n&&hn(1500,"cfg-audio-tmpl")):t.responseText.result?J("cfg-audio-tmpl","MESSAGING_WARNING",JSON.parse(t.responseText).Result+"\n",!0):J("cfg-audio-tmpl","MESSAGING_ERROR",t.statusText+"\n"),console.log(t.responseText)}}),console.log("sent data:",JSON.stringify(o))},window.handleDisconnect=function(){$.ajax({url:"/connect.json",dataType:"text",method:"DELETE",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now()})})},window.handleConnect=function(){cn.ssid=$("#manual_ssid").val(),cn.pwd=$("#manual_pwd").val(),cn.dhcpname=$("#dhcp-name2").val(),$("*[class*='connecting']").hide(),$("#ssid-wait").text(cn.ssid),$(".connecting").show(),$.ajax({url:"/connect.json",dataType:"text",method:"POST",cache:!1,contentType:"application/json; charset=utf-8",data:JSON.stringify({timestamp:Date.now(),ssid:cn.ssid,pwd:cn.pwd}),error:F}),fn()},$(document).ready((function(){$("#wifiTable").on("click","tr",(function(){})),$("#fw-url-input").on("input",(function(){$(this).val().length>8&&($(this).val().startsWith("http://")||$(this).val().startsWith("https://"))?$("#start-flash").show():$("#start-flash").hide()})),$(".upSrch").on("input",(function(){var n=this.value;$("#rTable tr").removeClass(this.id+"_hide"),n.length>0&&$("#rTable td:nth-child(".concat($(this).parent().index()+1,")")).filter((function(){return!$(this).text().toUpperCase().includes(n.toUpperCase())})).parent().addClass(this.id+"_hide"),$('[class*="_hide"]').hide(),$("#rTable tr").not('[class*="_hide"]').show()})),setTimeout(wn,1500),$("#otadiv").on("hidden.bs.modal",(function(){R=N.NONE})),$("#WifiConnectDialog").on("shown.bs.modal",(function(){$("*[class*='connecting']").hide(),cn.Action!==gn?($(".connecting-init").show(),$("#manual_ssid").trigger("focus")):$n()})),$("#WifiConnectDialog").on("hidden.bs.modal",(function(){$("#WifiConnectDialog input").val("")})),$("#uCnfrm").on("shown.bs.modal",(function(){$("#selectedFWURL").text($("#fw-url-input").val())})),$("input#show-commands")[0].checked=1===tn,$('a[href^="#tab-commands"]').hide(),$("#load-nvs").on("click",(function(){$("#nvsfilename").trigger("click")})),$("#clear-syslog").on("click",(function(){Z=0,q="MESSAGING_INFO",$("#msgcnt").text(""),$("#syslogTable").html("")})),$("#wifiTable").on("click","tr",(function(){cn.Action=pn,$(this).children("td:eq(1)").text()!=mn.ssid?$(this).is(":last-child")?(cn.Action=bn,cn.ssid="",$("#manual_ssid").val(cn.ssid)):(cn.ssid=$(this).children("td:eq(1)").text(),$("#manual_ssid").val(cn.ssid)):cn.Action=gn})),$("#ok-credits").on("click",(function(){$("#credits").slideUp("fast",(function(){})),$("#app").slideDown("fast",(function(){}))})),$("#acredits").on("click",(function(n){n.preventDefault(),$("#app").slideUp("fast",(function(){})),$("#credits").slideDown("fast",(function(){}))})),$("input#show-commands").on("click",(function(){this.checked=this.checked?1:0,this.checked?($('a[href^="#tab-commands"]').show(),tn=1):(tn=0,$('a[href^="#tab-commands"]').hide())})),$("input#show-nvs").on("click",(function(){this.checked=this.checked?1:0,this.checked?$('*[href*="-nvs"]').show():$('*[href*="-nvs"]').hide()})),$("#save-as-nvs").on("click",(function(){var n=un(!0),t=document.createElement("a");t.href=URL.createObjectURL(new Blob([JSON.stringify(n,null,2)],{type:"text/plain"})),t.setAttribute("download","nvs_config_"+rn+"_"+Date.now()+"json"),document.body.appendChild(t),t.click(),document.body.removeChild(t)})),$("#save-nvs").on("click",(function(){I(un(!1))})),$("#fwUpload").on("click",(function(){var n=document.getElementById("flashfilename").files;0===n.length?alert("No file selected!"):B({event:U.START_OTA,file:n[0]})})),$("[name=output-tmpl]").on("click",(function(){P(this.id)})),$("#chkUpdates").on("click",(function(){$("#rTable").html(""),$.getJSON(V,(function(n){var t=[];n.forEach((function(n){var o=n.name.split("#")[3];t.includes(o)||t.push(o)}));var o="";t.forEach((function(n){o+='"})),$("#fwbranch").append(o),n.forEach((function(n){var t="";n.assets.forEach((function(n){n.name.match(/\.bin$/)&&(t=n.browser_download_url)}));var o=n.name.split("#"),r=o[0],e=o[2],a=o[3],i=r.substr(r.lastIndexOf("-")+1);i="32"==i||"16"==i?i:"";var l=n.body;l=(l=(l=l.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- "),$("#rTable").append("\n ").concat(r,"").concat(new Date(n.created_at).toLocalShort(),"\n ").concat(e,"").concat(a,"").concat(i,""))})),$("#searchfw").css("display","inline"),xn(dn)||xn(ln),$("#rTable tr.release").on("click",(function(){var n=this.attributes.fwurl.value;Q&&(n=n.replace(/.*\/download\//,Q+"/plugins/SqueezeESP32/firmware/")),$("#fw-url-input").val(n),$("#start-flash").show(),$("#rTable tr.release").removeClass("table-success table-warning"),$(this).addClass("table-success table-warning")}))})).fail((function(){alert("failed to fetch release history!")}))})),$("#fwcheck").on("click",(function(){$("#releaseTable").html(""),$("#fwbranch").empty(),$.getJSON(V,(function(n){var t,o=0,r=[];n.forEach((function(n){var t=n.name.split("#")[3];r.includes(t)||r.push(t)})),r.forEach((function(n){t+='"})),$("#fwbranch").append(t),n.forEach((function(n){var t="";n.assets.forEach((function(n){n.name.match(/\.bin$/)&&(t=n.browser_download_url)}));var r=n.name.split("#"),e=r[0],a=r[1],i=r[2],l=r[3],d=n.body;d=(d=(d=d.replace(/'/gi,'"')).replace(/[\s\S]+(### Revision Log[\s\S]+)### ESP-IDF Version Used[\s\S]+/,"$1")).replace(/- \(.+?\) /g,"- ");var m=o++>6?" hide":"";$("#releaseTable").append(""+e+""+new Date(n.created_at).toLocalShort()+""+i+""+a+""+l+"")})),o>7&&($("#releaseTable").append(""),$("#showallbutton").on("click",(function(){$("tr.hide").removeClass("hide"),$("tr#showall").addClass("hide")}))),$("#searchfw").css("display","inline")})).fail((function(){alert("failed to fetch release history!")}))})),$("#updateAP").on("click",(function(){wn(),console.log("refresh AP")})),Rn(),Nn(),fn()})),window.setURL=function(n){var t=n.dataset.url;$('[data-url^="http"]').addClass("btn-success").removeClass("btn-danger"),$('[data-url="'+t+'"]').addClass("btn-danger").removeClass("btn-success"),Q&&(t=t.replace(/.*\/download\//,Q+"/plugins/SqueezeESP32/firmware/")),$("#fwurl").val(t)},window.runCommand=function(n,t){var o=n.attributes.cmdname.value;J(n.attributes.cmdname.value,"MESSAGING_INFO","Executing.",!1);var r=document.getElementById("flds-"+o);if(o+=" ",r)for(var e=r.querySelectorAll("select,input"),a=0;a!4M7D$0AiIWp2 zakmD}IqIuy1S|m46obE($L_dzD8584yKfqQs0kyP6U}Dw`IC$*zk-4som*~&--Z`d zFbtehoB|yrNGzpD-;ORtSels`5SAu-9#76mMn6H zXRE=aA<>LhR8l2~HsRQOGc#cE^NN-CvX%>YSx0Qc`9vQXTXj7gp`UDm_q6D*Vu%AB zsh`r9fEQ;BjgpF_xVj77Hq`#1I1dwC{{8Xpzl@i<{2Lf64p_B6blt>nNPvdk;vVHL zY(iSeoUjFc)ZUv~avwmu(@v%`XU<60N_w%!F(3#Vm&*Y-lI@#7C#iV6#`3c-T%L>? zYE`Bp9wMpU+x0f|_?~l8e;^AxOnu0(0Tym1eGZ9?ejpDik0j3TyuQ0Nnl(GYL+j>Gaq& z^67M!$DhrZuQc3j)~%s03GU8pxE-osp96f*z5rqICzpF9Uwyx2bk^tseLaaOSu>sJOfbg z@wED0f9DnFSh1TW=@k`qDVobuB^y#|T!^Sghe`eBrYq{ZC5o0iKJG_Y4#NEYe*2_m zs9SB|Sc$NT3kkCUWlw`FO>ExgyuLb0(|ApYJ-u#wTQoi z@6jp}1al~A4o*?KwM6**Vrv2+c?0-U_GE_?A!m5_ga+mE4%h(CgsJv8CJ`k!j zjGgZAG_Tl7tSPT)w-uLU+S@D)6%TBL1aiwCTKvp_eZ9cug(5C4*7w4R4d~SP)71o= zXDG6f>|>!*UtnM{*vnvGadM70Qar34a%DPIp*7NkU_%{;&q*dnjBrIXCi;t-!39D1 zuLY{DE1qH$i?g+0WBzz0^bQn0v{6bBPD3v%u_B47dWv`Tog;YaeDtjJcXr7f)yS!` zv+rTk01HA+9wCmV8%~h!)qf)Oa#^vbl^%_4(^C1een3)Q!S!-|$_1j=B^y9g&(e83 z4Q~CV08Du+LQk3%C!}Ht-iRGxWT3w-eQ_-YCpoHC5<4>`WWVdIM3DS`@Yy-3e~6eF zOd1j{t|*pVNL znqzp^ccM~bZ2db^lN6Lf(kjmjJY0N)&4U2iK>s80V*Q;H1B>+}^3#++ze%xBCXGJa zVRpui@wAN2=J9)l)PY3N$MQ~d&jsWyEQMWM|yKInjLyH8+b=6Ks0t z;m5L@(-k-=>8B#OPb<5sYPaB_anl$`q>JXeg54!$K4ENe7LOzO<@(}H4VMu!+O@^* zXT1jj>PAwnC$Sx|EsWhWMUR}%a(cI=3;0LSs(C856UDnV?Z#@O_hCk5Vgjun^i1*H zuIFBXz!?RGz}#pO&Tq#qs7*v4WhhFtBwwdE#y{W6KuGCWZ@Gf|c5w&`lon1j7e8{h z?tD`lcDBII{jrr=U?O{>6`FrS^LR5-8`|KfkcR%bfK`^-Yo88z@EC9O#X_n%-~DE_ zF8VQ_w9O8oe|0`_mQfh>ae1Ye!`b`Oyb%}9Z|v$if?k1GtR)6zMLj1SjW1x-ErxkFS@;Nd8TBPef4PdIXiESD$%extALRTVL7 zc|E1;^;8JteZ(e_{)}yF&r4MxI^@hPn#i=T^%WGyFz>*5KD##Mk+6yK(^O*{KcForg=B#5i9sPB4oU!m&OafVQ5;5aP>J_< zE!y)+Q!{B*)g7+)gw8Wb74!)7kmbUpq$&R}j2A1VLPs@>%t^8Ro0q?3eR!JN1yvSp zo0cYH(0qhRyjz-jB@oL5dIOu7nx&xPNYYd@{-0e6>7^-zU_rIO)aSGJeiYYwbS(#K z5m)6f7Bu;9%T+&sSSHL`gsTUrSl2Z

Q-MVW^UPIGrj^+)jF*fkpfYGw3<|(9k%_ zu9oPAPcG010mhf5(aKx!0OX&X%&&QFP08X|vMNE8-{-<5OM??R1}(YdWG0dM;p4BiGeFB+{ic&+Q40TIX~Jb+rk=@g z#B_#6{C2l(u>+)ZFipm)o=XQ+2c93B+mon3M7?OG=;_L&oH!W|FVj&Lnrmt#B(jC3 zBZzF+&O2XJ8GelWQN9r)3h=i(C#)p9h4N{BTZmye&Rzw90Sj{jpg2&(=UtmPg)HBE zz8X+QQr+xE4H@zDJ_Sy_szj_PMP`)tmnV22zINE@bHy}(2I30{L=v>;Y@Mi8$A%UPMT73d>K6mGjtTEMfATcT3)jHpps1!C+j3<> z=xnt1)i@05^5VV0y&$?snpf_H1+ zMWJh;q@iBHS2@pCJddIyiJ%bdB93pDHaN5T$j#P3Dujp{1rMzy{Psk_lf6)?Cp?2) zIT~k4#-dx<-WTO<(0(&q)6DGd zZuVms-$J*FdL!v0dppwatZYl?c_rhqbt()wzJMa9NcMP>yuu2*UH?W&ZIzC|?KD^ z-WL6f#}ah2-ck`n9fjK>-7h3e)6yyGz<q`iJ~SBQS3ed>bUrF z1dB-_{-Cl4%TbphVl9OM%USs{Hp9nbxVF3`XC$eGZseN>QAIHF->2UR*%m@x{9>|Q zd%mJgar&xge8@?hI_uddKtw|jjD3FVDP!x&r;L|fwi6V_FNy`?3M<&6zCv@aF92)5jP_Ej%i6N6VM(KMuDJe7)7Umc6Pe>uumK5Jf zdY<5mSJT8Y`-c4jSQioOI>+(SONlMT?+5LTUJQ;RxjITCLu|aMR!_0r$3YQ^IbErR zVT?=$LqX4)a08eG0(D{q9QvQ}{!_sVBd^eqzQ}q9k#I8I*3U6}Z2HdU9+cy?5@{N> z$VjDF3F=H^H|@$UXj5;L_QiR;A2w9)mp)!28|%v^R;0Q||0FqM1qaG`En1Wg-k!=S zy-#K7;!{UTDIdF4u;I*Ur_NQI9H98MLEtVj2e&y)dKGORT~@ji1BoyGxh-#OH~7au zvnK|fI?@gzL>Fg^AU6iMGjNq*#J^L-kQk!t-BYs{ytcCH3d4b@hKHx}RXzN#1&5N) z_sNTjV(O3r%H=j>D)!kEf38Oqm=FpTcp@k%d}_d$$nn5LkQZo)m`tfPe;5^!Yg0tH z#7UVGf|z1ljXjasN69%ozG_AQ-Z|$mXu*6?YO61^Q>gq!Tq<;j!!MX_#y4tRi&m?E zULAY2$N`bRY=GX+)A%3{Nub_y!#?;}^j`u#89p3Vcr3Q){XxVbxG(Cm>)lm-J}i4C z(rz9WC}DSn(b4LiS2fk~+%I!JQn_isytHuZ;(dRIze-`~bp0VZ9X7?Dept#MIF|xA z(?9BxP}FBNL7s7j)xDa56M(DjhnmM^$)AeG&8A^TSnkn%ExzOfxN5N z&d0;T|HI(m;-L{=-lO--qeiJ&Y|T}2nld(BOJHRU+*k=}krR*0po~?tr*C9he1F=% z&xHd(CxE@46doH!?JS})9y(=i)vkUa^Ek#E%jw-Cn6$+W`87MJ(rAoE_lbYGs5ue2 zovM`mo`I-iOv(y%P-|EN&$YTpDE|^s`qTRTsrtL<606W+u_qy>={ZAyJmpbz2W0R; zykb{OigT8)4?|+R_PyvLUaMI%1hP6*YHMi+_#VuuxheB1owbkgt|3ou?PvQMK|Pnt z1-AXz+B`_`iA#RUHWb2Lp$~kAs6}(PZy!;^snVxy4+yWluwkP0Ww8z$KQzClQpfQa zN{D3808)D$ZXW7&Vu{(WG}bgn4kmJ2<#Aq|?@ChE0#5Ez84hD$?om-Ft_NuCW#k

%++oxOj!5J*_@?%oWB9+YFotvn*t=~z5`Dvxw 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

SP^m9ueDxjC9h&PAFPL!N5)PZ9Q`h zWbmQFN%*49C}Q(2#|ufjfbR@;Pf3((l)AM+3eqG$C8PaA7h72Jel`AkZe2!&?VcE4 z9Wd2cWTF8VBn%hQy#Tp3@+&ei2Ej%6X=mnb=)B3E((j595M{BK>7h@VU;!TqA&O8K!S)Rpv#zY#=+lEo3^+uWUg{c4 z+LyxS;uA0h6dJBcT}X)qn*yQSI&n;hRQa*{G3K=v0f#w38`6#*9gRmiU^bMNj{KSy z+H1WZ8|wrIsO?^purQXK&-a~1E$T7ATh6bxWvel!rEL82S8?)MYe=9XYYiFbOg(>e z^>KWE3r$R0?Qdop`Q!c>+kD zp_|2xu5~HY;Dgkjli2L)jy)>Cl7(WP!|LVzv99-t1D_Q;@V0j{;~t-#-EBr%;aD?T z!C8Ws-?3^gTfqOlmxtI5eIxNQ8XLxDMY{me$BhfhtIe)v!2CCl(=oKY<}Y~(+jb%d zx_KH39uk)~EPe!ap_n|#=4;cUg2MsP3oVnjB4(M8-;|5r7gBx%!lZs#pJK@esVtP| z$ZRsypXb^RE(MJp8Ss|nnexCyQGjRlj7ps9>w&H2p%lV0P<1nQ%B>=uTn8)d;ORtO z;o@dg00~8z8p7`;pFD7DGq00^IhU3d@9u(v#1+Qg-1%e9flHr>>n6L`y#tz#s5mhd zE&w4`^R75PK=+57tj6Ng6k1}Qf~d3a@`2+(dyArt_%O@Xg_)5g><=r!L6T%s1BX&tc42QyQYPb{LJc?MN+0ss?%zGJ ziC6x`LGA4GO7Ph}u{Q3rq9qnpu)ukdvrgecbM3Qa;8lZaiJOU<8&sGP8)LZ=NZwm& z^P|MOZ?13a7pTSGBRX@;ls^O&A<$i?kxw(en4Fn z7tyKb95B54p#k{eCZig+lQn10;oNLRLY+(Mvi9}EFR7MgWVOMWIt$22|2YFiX&2<2tUr&Kbi>pm4?x6yVd84_3f4~{%mYd z0?-0_J>w$@vH}Z5%W+ZyjwAHQDD`MOz+&|5(>W{9em#U`M<_*bHlzx$Hy)qPQmPI6 WV|gUa!;z8SWG1s&aUsWdB!U8i_Rj?X literal 0 HcmV?d00001 diff --git a/components/wifi-manager/webapp/webpack/dist/js/index.1be2f3.bundle.js.gz b/components/wifi-manager/webapp/webpack/dist/js/index.1be2f3.bundle.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..8efedc53ad145b0e4951e67e7ab3e200d0cfaf4a GIT binary patch literal 42961 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 literal 0 HcmV?d00001 diff --git a/components/wifi-manager/webapp/webpack/dist/js/node-modules.0e064e.bundle.js b/components/wifi-manager/webapp/webpack/dist/js/node-modules.1be2f3.bundle.js similarity index 100% rename from components/wifi-manager/webapp/webpack/dist/js/node-modules.0e064e.bundle.js rename to components/wifi-manager/webapp/webpack/dist/js/node-modules.1be2f3.bundle.js diff --git a/components/wifi-manager/webapp/webpack/dist/js/node-modules.0e064e.bundle.js.br b/components/wifi-manager/webapp/webpack/dist/js/node-modules.1be2f3.bundle.js.br similarity index 100% rename from components/wifi-manager/webapp/webpack/dist/js/node-modules.0e064e.bundle.js.br rename to components/wifi-manager/webapp/webpack/dist/js/node-modules.1be2f3.bundle.js.br diff --git a/components/wifi-manager/webapp/webpack/dist/js/node-modules.0e064e.bundle.js.gz b/components/wifi-manager/webapp/webpack/dist/js/node-modules.1be2f3.bundle.js.gz similarity index 98% rename from components/wifi-manager/webapp/webpack/dist/js/node-modules.0e064e.bundle.js.gz rename to components/wifi-manager/webapp/webpack/dist/js/node-modules.1be2f3.bundle.js.gz index 3a8dcc3f77c7d99710b3870d9f8e8fe302f8f5a9..dd48b74a4b28c21a431eb3b1b8717f535c31b006 100644 GIT binary patch delta 24 dcmX?cl=Z|>RxbH&4h9flVs7Nx%Eh=Z2>@D-22lV2 delta 24 dcmX?cl=Z|>RxbH&4h9fl;%emD%Eh=Z2>@Eg23P<9 diff --git a/components/wifi-manager/webapp/webpack/dist/js/runtime.0e064e.bundle.js b/components/wifi-manager/webapp/webpack/dist/js/runtime.1be2f3.bundle.js similarity index 100% rename from components/wifi-manager/webapp/webpack/dist/js/runtime.0e064e.bundle.js rename to components/wifi-manager/webapp/webpack/dist/js/runtime.1be2f3.bundle.js diff --git a/components/wifi-manager/webapp/webpack/dist/js/runtime.0e064e.bundle.js.br b/components/wifi-manager/webapp/webpack/dist/js/runtime.1be2f3.bundle.js.br similarity index 100% rename from components/wifi-manager/webapp/webpack/dist/js/runtime.0e064e.bundle.js.br rename to components/wifi-manager/webapp/webpack/dist/js/runtime.1be2f3.bundle.js.br diff --git a/components/wifi-manager/webapp/webpack/dist/js/runtime.0e064e.bundle.js.gz b/components/wifi-manager/webapp/webpack/dist/js/runtime.1be2f3.bundle.js.gz similarity index 90% rename from components/wifi-manager/webapp/webpack/dist/js/runtime.0e064e.bundle.js.gz rename to components/wifi-manager/webapp/webpack/dist/js/runtime.1be2f3.bundle.js.gz index 2954601a13c51d151c65986122b242de0fea6c64..dad20807cb3cdff08551e7beb74294cc4e1ab6f4 100644 GIT binary patch delta 19 Ycmcb_dWn@wzMF#q1elmNa-CoT04$3G^#A|> delta 19 Ycmcb_dWn@wzMF#q1emxsa-CoT04%Np`~Uy| diff --git a/components/wifi-manager/webapp/webpack/dist/sprite.svg b/components/wifi-manager/webapp/webpack/dist/sprite.svg index b7409a42..b19c2047 100644 --- a/components/wifi-manager/webapp/webpack/dist/sprite.svg +++ b/components/wifi-manager/webapp/webpack/dist/sprite.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/components/wifi-manager/webapp/webpack/dist/sprite.svg.br b/components/wifi-manager/webapp/webpack/dist/sprite.svg.br index 3abab261f1fb3c08f484968e82fe31bc7a8a0580..92a3edfefc19a51ae5851e36cdb17abe0407c8ab 100644 GIT binary patch literal 903 zcmV;219X@Kw*_fDEc`U(tK?79a3=0;JihT^{GBFaAJ#zbTdHqWK(9Y$|fQY~vM{msT z{?gU>iv+00b6kyqvPX7P=bwLLl^)@OOE^uO&y_kA=Ob++fFW$BLa-ZC`uXPA>~^f$UxH8n%Wp(;mv49yD6m= z3MoUCs!XBv`n0;S`L5r{_6;;QT5{ZJDdw`L0)=QE$$ zTclh%hYf{KV5%Vl@e4K0F@oe4QM}5;X9`hCo(dWSAD1pb#(ay#STJGW@HMOsf+{xDB)mOZ?< z(GZ_QLI=R%dank9DTssZ0;BWz8nxtO0YmL%S&Nm%z3@Su*lUoi?lO-LKFJF~n?>OG zP@6r*uiDj-F~lDcx=rk`afl}zx3gvE9rx4;>J}6ka0NOA!ZaGVCW2L^dVPrsA-8WL zlpH%#ds8$wH{OZ1Pm5ebhrw*LwVTN~nuUuQ<1HeJzt6BVuzp&8i98BoVQU)rGm7d;_;72F_5(`vbKb+DzGx+PK6IfiSmBBR)I|RJU#g* zF%rUxXSp__q|i(4YgYwNnQy8t2B0Yu?@dSG+;f4&STBe!*Ee4AYsRwT&e=J{(Tsm; z4O%VLRMx@XdS) dllYDi3gOP2$>&8T-b!Z8p>Vph1@3vV?*X17yI}wT literal 898 zcmV-|1AY7(oDl%53hXxAN3}b+i?D}#L1|?hMB6Y`u^+hN2&QHjSp4A9Y&hvYUAL@4 z5lEOOIOx;)hUfs|cf0F9tV#mPP704o48kfIBwnCm7y0|ZY*)QVg!}*R=jxY`Hg7w9 zZKs>0xDfa6T}O=LMu*2anLmUdyC*^9?fNz z2)3}DJn(#fBb>aMsb#we0dR-gIHWNV9_A&UO|kQy+Cf(KS?E0Yc0G5G-odVf`_B)v zwPiWy$YYcrK)!L_2Zz_}|EP1H+6K)Ap(lJqItRfDfhUWy$VJ3L$oIZ4v&ElET^koz zXw&M^ZX&k=;!9M#3KUAyXKFDv@A}QrK7)%}1KH}75Od{LuXj)SIPWQxJwuh3ea%Ym zXk(v5P9$7JzQa9K&Ek15?W2QUvZ+^14^|*{(jda8Q6i zVa4N26t<-dDJ9|Xvb14_>u5z?lBTPb)7ktmV7-ie&SRzis+t2}C>M+uQr!__5UG|I zumyy9U?Gsy>C!m_cCk-jtaS;=bfCSDSQ1x10)DRPyhSU$Z+XR?@t;PHEl-2CFQD-j z=B^^%NSdH6yYXm=4OjwXY0&tCd1%X4ib+X7bbj;mu3-RlFJSu=f%6=-PUp5uJNY&@ z*|W0ALgpNy?=r4!SkGsS;frLcMY5RvhMF<8vzS}kWO{064a20oRJq>W_#`g`xC#Ts z+m~9SeXU&;8NvAXyw0?5OYJ3|cicWJ=N*`vC8Q?rU^H*^= zK(b}2HY|H+ynSR!F!Fp^bul1@$iHXG0?VEdwy<8yx?EoxVb+Xk#ErIdaIGGH)C@{0 z4&~^)>>0(>S=oPB?e9@ob?%%xDhq@CjrzoIv{l}qrc9eFXn{uWP&zDP?oC01JMqmU YCxprzLt0e$X)Af!n!;Y$0yQtz3?7=wbpQYW diff --git a/components/wifi-manager/webapp/webpack/webpack.prod.js b/components/wifi-manager/webapp/webpack/webpack.prod.js index 781a507c..34d7df7a 100644 --- a/components/wifi-manager/webapp/webpack/webpack.prod.js +++ b/components/wifi-manager/webapp/webpack/webpack.prod.js @@ -181,8 +181,8 @@ module.exports = merge(common, { }); console.log('Post build completed.'); - }), - new BundleAnalyzerPlugin() + }) + //, new BundleAnalyzerPlugin() ] }); diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 00000000..7cf15f19 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -e + +. $IDF_PATH/export.sh + +exec "$@" diff --git a/docker/hooks/build b/docker/hooks/build new file mode 100644 index 00000000..f9829511 --- /dev/null +++ b/docker/hooks/build @@ -0,0 +1,14 @@ +#!/bin/bash + +# This file gets executed to build the image on the Docker Hub. +# See https://docs.docker.com/docker-hub/builds/advanced/#build-hook-examples for details. + +set -euo pipefail + +echo "Building for branch ${SOURCE_BRANCH}, commit ${SOURCE_COMMIT}" + +docker build \ + --build-arg IDF_CLONE_BRANCH_OR_TAG=${SOURCE_BRANCH} \ + --build-arg IDF_CHECKOUT_REF=${SOURCE_COMMIT} \ + -f $DOCKERFILE_PATH \ + -t $IMAGE_NAME . diff --git a/docker/patches/tools/ldgen/fragments.py b/docker/patches/tools/ldgen/fragments.py new file mode 100644 index 00000000..238f198f --- /dev/null +++ b/docker/patches/tools/ldgen/fragments.py @@ -0,0 +1,607 @@ +# +# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: Apache-2.0 +# +import abc +import os +import re +from collections import namedtuple +from enum import Enum + +from entity import Entity +from pyparsing import (Combine, Forward, Group, Keyword, Literal, OneOrMore, Optional, Or, ParseFatalException, + Suppress, Word, ZeroOrMore, alphanums, alphas, delimitedList, indentedBlock, nums, + originalTextFor, restOfLine) +from sdkconfig import SDKConfig + + +class FragmentFile(): + """ + Processes a fragment file and stores all parsed fragments. For + more information on how this class interacts with classes for the different fragment types, + see description of Fragment. + """ + + def __init__(self, fragment_file, sdkconfig): + try: + fragment_file = open(fragment_file, 'r') + except TypeError: + pass + + path = os.path.realpath(fragment_file.name) + + indent_stack = [1] + + class parse_ctx: + fragment = None # current fragment + key = '' # current key + keys = list() # list of keys parsed + key_grammar = None # current key grammar + + @staticmethod + def reset(): + parse_ctx.fragment_instance = None + parse_ctx.key = '' + parse_ctx.keys = list() + parse_ctx.key_grammar = None + + def fragment_type_parse_action(toks): + parse_ctx.reset() + parse_ctx.fragment = FRAGMENT_TYPES[toks[0]]() # create instance of the fragment + return None + + def expand_conditionals(toks, stmts): + try: + stmt = toks['value'] + stmts.append(stmt) + except KeyError: + try: + conditions = toks['conditional'] + for condition in conditions: + try: + _toks = condition[1] + _cond = condition[0] + if sdkconfig.evaluate_expression(_cond): + expand_conditionals(_toks, stmts) + break + except IndexError: + expand_conditionals(condition[0], stmts) + except KeyError: + for tok in toks: + expand_conditionals(tok, stmts) + + def key_body_parsed(pstr, loc, toks): + stmts = list() + expand_conditionals(toks, stmts) + + if parse_ctx.key_grammar.min and len(stmts) < parse_ctx.key_grammar.min: + raise ParseFatalException(pstr, loc, "fragment requires at least %d values for key '%s'" % + (parse_ctx.key_grammar.min, parse_ctx.key)) + + if parse_ctx.key_grammar.max and len(stmts) > parse_ctx.key_grammar.max: + raise ParseFatalException(pstr, loc, "fragment requires at most %d values for key '%s'" % + (parse_ctx.key_grammar.max, parse_ctx.key)) + + try: + parse_ctx.fragment.set_key_value(parse_ctx.key, stmts) + except Exception as e: + raise ParseFatalException(pstr, loc, "unable to add key '%s'; %s" % (parse_ctx.key, str(e))) + return None + + key = Word(alphanums + '_') + Suppress(':') + key_stmt = Forward() + + condition_block = indentedBlock(key_stmt, indent_stack) + key_stmts = OneOrMore(condition_block) + key_body = Suppress(key) + key_stmts + key_body.setParseAction(key_body_parsed) + + condition = originalTextFor(SDKConfig.get_expression_grammar()).setResultsName('condition') + if_condition = Group(Suppress('if') + condition + Suppress(':') + condition_block) + elif_condition = Group(Suppress('elif') + condition + Suppress(':') + condition_block) + else_condition = Group(Suppress('else') + Suppress(':') + condition_block) + conditional = (if_condition + Optional(OneOrMore(elif_condition)) + Optional(else_condition)).setResultsName('conditional') + + def key_parse_action(pstr, loc, toks): + key = toks[0] + + if key in parse_ctx.keys: + raise ParseFatalException(pstr, loc, "duplicate key '%s' value definition" % parse_ctx.key) + + parse_ctx.key = key + parse_ctx.keys.append(key) + + try: + parse_ctx.key_grammar = parse_ctx.fragment.get_key_grammars()[key] + key_grammar = parse_ctx.key_grammar.grammar + except KeyError: + raise ParseFatalException(pstr, loc, "key '%s' is not supported by fragment" % key) + except Exception as e: + raise ParseFatalException(pstr, loc, "unable to parse key '%s'; %s" % (key, str(e))) + + key_stmt << (conditional | Group(key_grammar).setResultsName('value')) + + return None + + def name_parse_action(pstr, loc, toks): + parse_ctx.fragment.name = toks[0] + + key.setParseAction(key_parse_action) + + ftype = Word(alphas).setParseAction(fragment_type_parse_action) + fid = Suppress(':') + Word(alphanums + '_.').setResultsName('name') + fid.setParseAction(name_parse_action) + header = Suppress('[') + ftype + fid + Suppress(']') + + def fragment_parse_action(pstr, loc, toks): + key_grammars = parse_ctx.fragment.get_key_grammars() + required_keys = set([k for (k,v) in key_grammars.items() if v.required]) + present_keys = required_keys.intersection(set(parse_ctx.keys)) + if present_keys != required_keys: + raise ParseFatalException(pstr, loc, 'required keys %s for fragment not found' % + list(required_keys - present_keys)) + return parse_ctx.fragment + + fragment_stmt = Forward() + fragment_block = indentedBlock(fragment_stmt, indent_stack) + + fragment_if_condition = Group(Suppress('if') + condition + Suppress(':') + fragment_block) + fragment_elif_condition = Group(Suppress('elif') + condition + Suppress(':') + fragment_block) + fragment_else_condition = Group(Suppress('else') + Suppress(':') + fragment_block) + fragment_conditional = (fragment_if_condition + Optional(OneOrMore(fragment_elif_condition)) + + Optional(fragment_else_condition)).setResultsName('conditional') + + fragment = (header + OneOrMore(indentedBlock(key_body, indent_stack, False))).setResultsName('value') + fragment.setParseAction(fragment_parse_action) + fragment.ignore('#' + restOfLine) + + deprecated_mapping = DeprecatedMapping.get_fragment_grammar(sdkconfig, fragment_file.name).setResultsName('value') + + fragment_stmt << (Group(deprecated_mapping) | Group(fragment) | Group(fragment_conditional)) + + def fragment_stmt_parsed(pstr, loc, toks): + stmts = list() + expand_conditionals(toks, stmts) + return stmts + + parser = ZeroOrMore(fragment_stmt) + parser.setParseAction(fragment_stmt_parsed) + + self.fragments = parser.parseFile(fragment_file, parseAll=True) + + for fragment in self.fragments: + fragment.path = path + + +class Fragment(): + """ + Base class for a fragment that can be parsed from a fragment file. All fragments + share the common grammar: + + [type:name] + key1:value1 + key2:value2 + ... + + Supporting a new fragment type means deriving a concrete class which specifies + key-value pairs that the fragment supports and what to do with the parsed key-value pairs. + + The new fragment must also be appended to FRAGMENT_TYPES, specifying the + keyword for the type and the derived class. + + The key of the key-value pair is a simple keyword string. Other parameters + that describe the key-value pair is specified in Fragment.KeyValue: + 1. grammar - pyparsing grammar to parse the value of key-value pair + 2. min - the minimum number of value in the key entry, None means no minimum + 3. max - the maximum number of value in the key entry, None means no maximum + 4. required - if the key-value pair is required in the fragment + + Setting min=max=1 means that the key has a single value. + + FragmentFile provides conditional expression evaluation, enforcing + the parameters for Fragment.Keyvalue. + """ + __metaclass__ = abc.ABCMeta + + KeyValue = namedtuple('KeyValue', 'grammar min max required') + + IDENTIFIER = Word(alphas + '_', alphanums + '_') + ENTITY = Word(alphanums + '.-_$+') + + @abc.abstractmethod + def set_key_value(self, key, parse_results): + pass + + @abc.abstractmethod + def get_key_grammars(self): + pass + + +class Sections(Fragment): + """ + Fragment which contains list of input sections. + + [sections:] + entries: + .section1 + .section2 + ... + """ + + # Unless quoted, symbol names start with a letter, underscore, or point + # and may include any letters, underscores, digits, points, and hyphens. + GNU_LD_SYMBOLS = Word(alphas + '_.', alphanums + '._-') + + entries_grammar = Combine(GNU_LD_SYMBOLS + Optional('+')) + + grammars = { + 'entries': Fragment.KeyValue(entries_grammar.setResultsName('section'), 1, None, True) + } + + """ + Utility function that returns a list of sections given a sections fragment entry, + with the '+' notation and symbol concatenation handled automatically. + """ + @staticmethod + def get_section_data_from_entry(sections_entry, symbol=None): + if not symbol: + sections = list() + sections.append(sections_entry.replace('+', '')) + sections.append(sections_entry.replace('+', '.*')) + return sections + else: + if sections_entry.endswith('+'): + section = sections_entry.replace('+', '.*') + expansion = section.replace('.*', '.' + symbol) + return (section, expansion) + else: + return (sections_entry, None) + + def set_key_value(self, key, parse_results): + if key == 'entries': + self.entries = set() + for result in parse_results: + self.entries.add(result['section']) + + def get_key_grammars(self): + return self.__class__.grammars + + +class Scheme(Fragment): + """ + Fragment which defines where the input sections defined in a Sections fragment + is going to end up, the target. The targets are markers in a linker script template + (see LinkerScript in linker_script.py). + + [scheme:] + entries: + sections1 -> target1 + ... + """ + + grammars = { + 'entries': Fragment.KeyValue(Fragment.IDENTIFIER.setResultsName('sections') + Suppress('->') + + Fragment.IDENTIFIER.setResultsName('target'), 1, None, True) + } + + def set_key_value(self, key, parse_results): + if key == 'entries': + self.entries = set() + for result in parse_results: + self.entries.add((result['sections'], result['target'])) + + def get_key_grammars(self): + return self.__class__.grammars + + +class Mapping(Fragment): + """ + Fragment which attaches a scheme to entities (see Entity in entity.py), specifying where the input + sections of the entity will end up. + + [mapping:] + archive: lib1.a + entries: + obj1:symbol1 (scheme1); section1 -> target1 KEEP SURROUND(sym1) ... + obj2 (scheme2) + ... + + Ultimately, an `entity (scheme)` entry generates an + input section description (see https://sourceware.org/binutils/docs/ld/Input-Section.html) + in the output linker script. It is possible to attach 'flags' to the + `entity (scheme)` to generate different output commands or to + emit additional keywords in the generated input section description. The + input section description, as well as other output commands, is defined in + output_commands.py. + """ + + class Flag(): + PRE_POST = (Optional(Suppress(',') + Suppress('pre').setParseAction(lambda: True).setResultsName('pre')) + + Optional(Suppress(',') + Suppress('post').setParseAction(lambda: True).setResultsName('post'))) + + class Surround(Flag): + def __init__(self, symbol): + self.symbol = symbol + self.pre = True + self.post = True + + @staticmethod + def get_grammar(): + # SURROUND(symbol) + # + # '__symbol_start', '__symbol_end' is generated before and after + # the corresponding input section description, respectively. + grammar = (Keyword('SURROUND').suppress() + + Suppress('(') + + Fragment.IDENTIFIER.setResultsName('symbol') + + Suppress(')')) + + grammar.setParseAction(lambda tok: Mapping.Surround(tok.symbol)) + return grammar + + def __eq__(self, other): + return (isinstance(other, Mapping.Surround) and + self.symbol == other.symbol) + + class Align(Flag): + + def __init__(self, alignment, pre=True, post=False): + self.alignment = alignment + self.pre = pre + self.post = post + + @staticmethod + def get_grammar(): + # ALIGN(alignment, [, pre, post]). + # + # Generates alignment command before and/or after the corresponding + # input section description, depending whether pre, post or + # both are specified. + grammar = (Keyword('ALIGN').suppress() + + Suppress('(') + + Word(nums).setResultsName('alignment') + + Mapping.Flag.PRE_POST + + Suppress(')')) + + def on_parse(tok): + alignment = int(tok.alignment) + if tok.pre == '' and tok.post == '': + res = Mapping.Align(alignment) + elif tok.pre != '' and tok.post == '': + res = Mapping.Align(alignment, tok.pre) + elif tok.pre == '' and tok.post != '': + res = Mapping.Align(alignment, False, tok.post) + else: + res = Mapping.Align(alignment, tok.pre, tok.post) + return res + + grammar.setParseAction(on_parse) + return grammar + + def __eq__(self, other): + return (isinstance(other, Mapping.Align) and + self.alignment == other.alignment and + self.pre == other.pre and + self.post == other.post) + + class Keep(Flag): + + def __init__(self): + pass + + @staticmethod + def get_grammar(): + # KEEP() + # + # Surrounds input section description with KEEP command. + grammar = Keyword('KEEP()').setParseAction(Mapping.Keep) + return grammar + + def __eq__(self, other): + return isinstance(other, Mapping.Keep) + + class Sort(Flag): + class Type(Enum): + NAME = 0 + ALIGNMENT = 1 + INIT_PRIORITY = 2 + + def __init__(self, first, second=None): + self.first = first + self.second = second + + @staticmethod + def get_grammar(): + # SORT([sort_by_first, sort_by_second]) + # + # where sort_by_first, sort_by_second = {name, alignment, init_priority} + # + # Emits SORT_BY_NAME, SORT_BY_ALIGNMENT or SORT_BY_INIT_PRIORITY + # depending on arguments. Nested sort follows linker script rules. + keywords = Keyword('name') | Keyword('alignment') | Keyword('init_priority') + grammar = (Keyword('SORT').suppress() + Suppress('(') + + keywords.setResultsName('first') + + Optional(Suppress(',') + keywords.setResultsName('second')) + Suppress(')')) + + grammar.setParseAction(lambda tok: Mapping.Sort(tok.first, tok.second if tok.second != '' else None)) + return grammar + + def __eq__(self, other): + return (isinstance(other, Mapping.Sort) and + self.first == other.first and + self.second == other.second) + + def __init__(self): + Fragment.__init__(self) + self.entries = set() + # k = (obj, symbol, scheme) + # v = list((section, target), Mapping.Flag)) + self.flags = dict() + self.deprecated = False + + def set_key_value(self, key, parse_results): + if key == 'archive': + self.archive = parse_results[0]['archive'] + elif key == 'entries': + for result in parse_results: + obj = None + symbol = None + scheme = None + + obj = result['object'] + + try: + symbol = result['symbol'] + except KeyError: + pass + + scheme = result['scheme'] + + mapping = (obj, symbol, scheme) + self.entries.add(mapping) + + try: + parsed_flags = result['sections_target_flags'] + except KeyError: + parsed_flags = [] + + if parsed_flags: + entry_flags = [] + for pf in parsed_flags: + entry_flags.append((pf.sections, pf.target, list(pf.flags))) + + try: + existing_flags = self.flags[mapping] + except KeyError: + existing_flags = list() + self.flags[mapping] = existing_flags + + existing_flags.extend(entry_flags) + + def get_key_grammars(self): + # There are three possible patterns for mapping entries: + # obj:symbol (scheme) + # obj (scheme) + # * (scheme) + # Flags can be specified for section->target in the scheme specified, ex: + # obj (scheme); section->target SURROUND(symbol), section2->target2 ALIGN(4) + obj = Fragment.ENTITY.setResultsName('object') + symbol = Suppress(':') + Fragment.IDENTIFIER.setResultsName('symbol') + scheme = Suppress('(') + Fragment.IDENTIFIER.setResultsName('scheme') + Suppress(')') + + # The flags are specified for section->target in the scheme specified + sections_target = Scheme.grammars['entries'].grammar + + flag = Or([f.get_grammar() for f in [Mapping.Keep, Mapping.Align, Mapping.Surround, Mapping.Sort]]) + + section_target_flags = Group(sections_target + Group(OneOrMore(flag)).setResultsName('flags')) + + pattern1 = obj + symbol + pattern2 = obj + pattern3 = Literal(Entity.ALL).setResultsName('object') + + entry = ((pattern1 | pattern2 | pattern3) + scheme + + Optional(Suppress(';') + delimitedList(section_target_flags).setResultsName('sections_target_flags'))) + + grammars = { + 'archive': Fragment.KeyValue(Or([Fragment.ENTITY, Word(Entity.ALL)]).setResultsName('archive'), 1, 1, True), + 'entries': Fragment.KeyValue(entry, 0, None, True) + } + + return grammars + + +class DeprecatedMapping(): + """ + Mapping fragment with old grammar in versions older than ESP-IDF v4.0. Does not conform to + requirements of the Fragment class and thus is limited when it comes to conditional expression + evaluation. + """ + + # Name of the default condition entry + DEFAULT_CONDITION = 'default' + + @staticmethod + def get_fragment_grammar(sdkconfig, fragment_file): + + # Match header [mapping] + header = Suppress('[') + Suppress('mapping') + Suppress(']') + + # There are three possible patterns for mapping entries: + # obj:symbol (scheme) + # obj (scheme) + # * (scheme) + obj = Fragment.ENTITY.setResultsName('object') + symbol = Suppress(':') + Fragment.IDENTIFIER.setResultsName('symbol') + scheme = Suppress('(') + Fragment.IDENTIFIER.setResultsName('scheme') + Suppress(')') + + pattern1 = Group(obj + symbol + scheme) + pattern2 = Group(obj + scheme) + pattern3 = Group(Literal(Entity.ALL).setResultsName('object') + scheme) + + mapping_entry = pattern1 | pattern2 | pattern3 + + # To simplify parsing, classify groups of condition-mapping entry into two types: normal and default + # A normal grouping is one with a non-default condition. The default grouping is one which contains the + # default condition + mapping_entries = Group(ZeroOrMore(mapping_entry)).setResultsName('mappings') + + normal_condition = Suppress(':') + originalTextFor(SDKConfig.get_expression_grammar()) + default_condition = Optional(Suppress(':') + Literal(DeprecatedMapping.DEFAULT_CONDITION)) + + normal_group = Group(normal_condition.setResultsName('condition') + mapping_entries) + default_group = Group(default_condition + mapping_entries).setResultsName('default_group') + + normal_groups = Group(ZeroOrMore(normal_group)).setResultsName('normal_groups') + + # Any mapping fragment definition can have zero or more normal group and only one default group as a last entry. + archive = Suppress('archive') + Suppress(':') + Fragment.ENTITY.setResultsName('archive') + entries = Suppress('entries') + Suppress(':') + (normal_groups + default_group).setResultsName('entries') + + mapping = Group(header + archive + entries) + mapping.ignore('#' + restOfLine) + + def parsed_deprecated_mapping(pstr, loc, toks): + fragment = Mapping() + fragment.archive = toks[0].archive + fragment.name = re.sub(r'[^0-9a-zA-Z]+', '_', fragment.archive) + fragment.deprecated = True + + fragment.entries = set() + condition_true = False + for entries in toks[0].entries[0]: + condition = next(iter(entries.condition.asList())).strip() + condition_val = sdkconfig.evaluate_expression(condition) + + if condition_val: + for entry in entries[1]: + fragment.entries.add((entry.object, None if entry.symbol == '' else entry.symbol, entry.scheme)) + condition_true = True + break + + if not fragment.entries and not condition_true: + try: + entries = toks[0].entries[1][1] + except IndexError: + entries = toks[0].entries[1][0] + for entry in entries: + fragment.entries.add((entry.object, None if entry.symbol == '' else entry.symbol, entry.scheme)) + + if not fragment.entries: + fragment.entries.add(('*', None, 'default')) + + dep_warning = str(ParseFatalException(pstr, loc, + 'Warning: Deprecated old-style mapping fragment parsed in file %s.' % fragment_file)) + + print(dep_warning) + return fragment + + mapping.setParseAction(parsed_deprecated_mapping) + return mapping + + +FRAGMENT_TYPES = { + 'sections': Sections, + 'scheme': Scheme, + 'mapping': Mapping +}