[
  {
    "path": ".gitignore",
    "content": "#Aurora test things\ncolourtest_from_youtube.mp4\n*.jpg\n*.jpeg\nenv/*\n.vscode/\naudio.py\nauroraspec.py\nspec.py\nnohup.out\nconfig.ini \nconfig.ini.bak \nLEDTests/\n\n\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\ncover/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\n.pybuilder/\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n#   For a library or package, you might want to ignore these files since the code is\n#   intended to run in multiple environments; otherwise, check them in:\n# .python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# pytype static type analyzer\n.pytype/\n\n# Cython debug symbols\ncython_debug/"
  },
  {
    "path": "Aurora.py",
    "content": "# Main Aurora python file, runs the webserver and the Aurora client, configs are loaded from extensions directory\nimport cherrypy\nimport os\nimport multiprocessing\nimport time\nimport json\nimport cherrypy\nimport configparser\nimport threading\nimport glob\nimport importlib\nimport inspect\nimport base64\nimport logging\nfrom urllib.request import urlopen\nimport board\nimport neopixel\nimport cv2\nimport sys\nfrom shutil import copyfile\n\nfrom jinja2 import Environment, FileSystemLoader\n\nenv = Environment(loader=FileSystemLoader(\"webserver/templates\"))\n\n\nclass AuroraManager:\n    def __init__(self):\n        self.config_file = \"./config.ini\"\n        self.config = {}  # config dict\n        self.extensions = {}\n\n        self.extensions_dir = False\n        self.current_extension = False\n        self.current_extension_name = False\n        self.current_extension_meta = False\n        self.screenshot_path = False\n        self.extension_started = False\n        self.loopRunning = False\n        self.messages = []\n        self.enabled = False\n        self.screenshot_b64 = \"\"\n        self.pixel_image_b64 = \"\"\n        self.vid = False\n        self.neoPixels = False\n\n        # Ironically we need to load the config to figure out the logging level, so if config fails... S.O.L\n        # process config file\n        self.loadConfig()\n\n        # Set logging\n        logging.basicConfig(\n            format=\"%(asctime)s %(message)s\", datefmt=\"%m/%d/%Y %I:%M:%S %p\"\n        )\n        self.debug = bool(os.environ[\"AURORA_DEBUG\"])\n        logging.info(\n            \"DEBUG OS ENV: {} status: {}\".format(\n                os.environ[\"AURORA_DEBUG\"], bool(os.environ[\"AURORA_DEBUG\"])\n            )\n        )\n        if self.debug == True:\n            logging.getLogger().setLevel(logging.DEBUG)\n        else:\n            logging.info(\"SET DEBUG OFF\")\n            logging.getLogger().setLevel(logging.ERROR)\n\n        # Setup NeoPixels\n        self.setupNeoPixels()\n\n        # Setup HDMI\n        self.setupHDMI()\n\n        # populate extensions\n        self.populateExtensions()\n\n        # set/load the extension\n        self.setCurrentExtension(self.current_extension_name)\n\n    def setupNeoPixels(self):\n        try:\n            # this is janky and show() speed is impacted by the number of pixels, but we cant re-init this :(\n            self.neoPixels = neopixel.NeoPixel(board.D18, 500, auto_write=False)\n            self.neoPixels.fill((0, 0, 0))  # turn them off when we initialise\n            self.neoPixels.show()  # ironic.\n        except Exception as e:\n            # Lets not get here chaps.\n            self.log(\n                \"Error during initialisation of NeoPixel:{}\".format(str(e)),\n            )\n            sys.exit(1)\n\n    def setupHDMI(self):\n        self.vid = False\n        # Setup HDMI input\n        try:\n            # Try Setup Video Capture devices\n            for i in range(0, 10):\n                self.log(\"Trying video device {}.\".format(i))\n                testVid = cv2.VideoCapture(i)\n                test, frame = testVid.read()\n                if test:\n                    self.vid = testVid\n                    self.log(\"Using video device {}.\".format(i))\n                    self.vid.set(cv2.CAP_PROP_SATURATION, 255)\n                    break\n                else:\n                    logging.error(\"device {} failed\".format(i))\n            if self.vid == False:\n                self.log(\"Failed to initialise video device\")\n                sys.exit(1)\n\n            self.vid.set(cv2.CAP_PROP_BUFFERSIZE, 2)\n            self.vid_w = int(self.vid.get(cv2.CAP_PROP_FRAME_WIDTH))\n            self.vid_h = int(self.vid.get(cv2.CAP_PROP_FRAME_HEIGHT))\n            self.log(\n                \"Initialized Aurora with feed of {} x {}\".format(self.vid_w, self.vid_h)\n            )\n\n            # Lets save initial values\n            self.config[\"HDMI_INITIAL\"][\"HDMI_BRIGHTNESS\"] = str(\n                int(self.vid.get(cv2.CAP_PROP_BRIGHTNESS))\n            )\n            self.config[\"HDMI_INITIAL\"][\"HDMI_SATURATION\"] = str(\n                int(self.vid.get(cv2.CAP_PROP_SATURATION))\n            )\n            self.config[\"HDMI_INITIAL\"][\"HDMI_CONTRAST\"] = str(\n                int(self.vid.get(cv2.CAP_PROP_CONTRAST))\n            )\n            self.config[\"HDMI_INITIAL\"][\"HDMI_HUE\"] = str(\n                int(self.vid.get(cv2.CAP_PROP_HUE))\n            )\n            self.saveConfig()\n            self.log(\n                \"Default State:\\nBrightness:{} Saturation: {} Contrast: {} Hue: {}\".format(\n                    int(self.vid.get(cv2.CAP_PROP_BRIGHTNESS)),\n                    int(self.vid.get(cv2.CAP_PROP_SATURATION)),\n                    int(self.vid.get(cv2.CAP_PROP_CONTRAST)),\n                    int(self.vid.get(cv2.CAP_PROP_HUE)),\n                )\n            )\n        except Exception as e:\n            # Lets not get here either!\n            self.log(\"Error during initialisation of HDMI capture:{}\".format(str(e)))\n            sys.exit(1)\n\n        # Let set the HDMI input settings\n        try:\n            self.vid.set(\n                cv2.CAP_PROP_SATURATION, int(self.config[\"HDMI\"][\"HDMI_SATURATION\"])\n            )\n            self.vid.set(\n                cv2.CAP_PROP_BRIGHTNESS, int(self.config[\"HDMI\"][\"HDMI_BRIGHTNESS\"])\n            )\n            self.vid.set(\n                cv2.CAP_PROP_CONTRAST, int(self.config[\"HDMI\"][\"HDMI_CONTRAST\"])\n            )\n            self.vid.set(cv2.CAP_PROP_HUE, int(self.config[\"HDMI\"][\"HDMI_HUE\"]))\n\n        except Exception as e:\n            # Lets not get here chaps.\n            self.log(\"Error during initialisation of HDMI:{}\".format(str(e)))\n            sys.exit(1)\n\n    def saveConfig(self):\n        with open(self.config_file, \"w\") as configfile:\n            self.config.write(configfile)\n        self.loadConfig()\n\n    def log(self, message):\n        logging.info(message)\n\n    # Load the config file\n    def loadConfig(self):\n        self.config = configparser.ConfigParser()\n        self.config.optionxform = str\n        self.config.read(self.config_file)\n\n        # Lets load the enviroment variables\n        for key, val in self.config[\"AURORA\"].items():\n            os.environ[key] = val\n            self.log(\"setting key {} to {}\".format(key, val))\n\n        # Setup extensions dir\n        self.extensions_dir = self.config[\"EXTENSIONS\"][\"directory\"]\n\n        # Set default extension\n        self.current_extension_name = self.config[\"EXTENSIONS\"][\"current_extension\"]\n\n        # set screenshotpath\n        self.screenshot_path = self.config[\"GENERAL\"][\"screenshot_path\"]\n\n        # set pixel image path\n        self.pixel_image_path = self.config[\"GENERAL\"][\"pixel_image_path\"]\n\n        # set enabled flag\n        self.enabled = self.config.getboolean(\"GENERAL\", \"enabled\")\n\n    # Get a particular extension\n    def getExtensionClass(self, extension_name, extension_dir):\n        module = importlib.import_module(\n            extension_dir + \".\" + extension_name, package=extension_name\n        )\n        importlib.reload(module)\n        x = False\n        try:\n            extensionClass = getattr(module, extension_name)\n            x = extensionClass(self.neoPixels, self.vid)\n            logging.info(\n                \"Loaded: {} from ./{}/{}.py\".format(\n                    x.Name, extension_dir, extension_name\n                )\n            )\n        except Exception as e:\n            self.addMessage(\n                \"Could not load module from ./{}/{}.py error: {}\".format(\n                    extension_dir, extension_name, str(e)\n                )\n            )\n            logging.info(\n                \"Could not load module from ./{}/{}.py error: {}\".format(\n                    extension_dir, extension_name, str(e)\n                )\n            )\n\n        return x\n\n    def fetchMeta(self, extension, filename):\n        if extension == False:\n            return False\n        extension_meta = {}\n        extension_meta[\"Author\"] = extension.Author\n        extension_meta[\"Description\"] = extension.Description\n        extension_meta[\"Name\"] = extension.Name\n        extension_meta[\"FileName\"] = filename\n        return extension_meta\n\n    # Populate all the extensions from the extensions class\n    def populateExtensions(self):\n        self.extensions = {}\n        extension_dir = self.extensions_dir\n        for file in glob.glob(\"./{}/*.py\".format(extension_dir)):\n            filename = os.path.splitext(os.path.basename(file))[0]\n\n            # Ignore __ files\n            if filename.startswith(\"__\"):\n                continue\n\n            if filename not in [\"exampleExtension2\", \"Aurora_Configure\"]:\n                x = self.getExtensionClass(filename, extension_dir)\n                if x != False:\n                    extension_meta = self.fetchMeta(x, filename)\n                    self.extensions[filename] = extension_meta\n\n    def addMessage(self, msg):\n\n        if msg not in self.messages:\n            self.messages.append(msg)\n\n    # Get the current extension to be run\n    def getCurrentExtension(self):\n        os.environ[\"AURORA_CURRENT_EXTENSION_NAME\"] = self.current_extension_name\n        current_extension = self.getExtensionClass(\n            self.current_extension_name, self.extensions_dir\n        )\n        self.current_extension = current_extension\n        return current_extension\n\n    def setCurrentExtension(self, new_current_extension):\n        tempExt = self.getExtensionClass(new_current_extension, self.extensions_dir)\n        if tempExt != False:\n\n            while self.loopRunning == True:\n                # lets wait this out or things get REEAAAL funky\n                time.sleep(0.001)\n\n            if self.extension_started == True:\n                self.tearDownExtension()\n                self.extension_started = False\n\n            self.current_extension = tempExt\n            self.current_extension_name = new_current_extension\n\n            os.environ[\"AURORA_CURRENT_EXTENSION_NAME\"] = new_current_extension\n            self.current_extension_meta = self.fetchMeta(\n                self.current_extension, new_current_extension\n            )\n            self.setupExtension()\n\n            if new_current_extension != \"Aurora_Configure\":\n                self.config.set(\n                    \"EXTENSIONS\", \"current_extension\", self.current_extension_name\n                )\n                self.saveConfig()\n                self.extension_started = True\n\n    def takeScreenshot(self):\n        self.current_extension.takeScreenShot(self.screenshot_path)\n\n    def makePixelImage(self):\n        self.current_extension.makePixelFrame(self.pixel_image_path)\n\n    def setupExtension(self):\n        self.current_extension.setup()\n        self.extension_started = True\n\n    def tearDownExtension(self):\n        self.extension_started = False\n        self.current_extension.teardown()\n\n    def loop(self):\n        if self.enabled == True:  # only if the entire thing is enabled\n            if self.extension_started != False:  # only loop if the extension is started\n                # lets let other processes know we are in the middle of a loop\n                self.loopRunning = True\n                try:\n                    self.current_extension.visualise()\n                except Exception as e:\n                    self.log(\"Error in visualise: {}\".format(str(e)))\n                self.loopRunning = False\n\n\nclass Aurora_Webserver(object):\n    def __init__(self, Manager):\n        self.manager = Manager\n\n    @cherrypy.tools.json_out()\n    @cherrypy.expose\n    def status(self):\n        self.manager.loadConfig()\n        enabled_status = self.manager.enabled\n        current_extension = self.manager.current_extension.Name\n        current_extension_class = self.manager.current_extension_name\n        with open(\"VERSION\", \"r\") as f:\n            current_version = f.read()\n        tmpl = env.get_template(\"status.json\")\n        template_variables = {}\n        template_variables[\"current_extension\"] = current_extension\n        template_variables[\"current_extension_class\"] = current_extension_class\n        template_variables[\"enabled\"] = enabled_status\n        template_variables[\"current_version\"] = current_version\n        return tmpl.render(template_variables)\n\n    @cherrypy.expose\n    def about(self):\n        self.manager.loadConfig()\n        current_version = \"Cannot read version\"\n        with open(\"VERSION\", \"r\") as f:\n            current_version = f.read()\n        github_version = \"Cannot read from github\"\n        try:\n            githubURL = (\n                \"https://raw.githubusercontent.com/AndrewMohawk/Aurora/master/VERSION\"\n            )\n            github_page = urlopen(githubURL)\n            github_version = github_page.read().decode(\"utf-8\").strip()\n\n        except Exception as e:\n            self.manager.log(\"Exception trying to open github page:{}\".format(str(e)))\n            # we cant connect to github?\n            pass\n\n        tmpl = env.get_template(\"about.html\")\n        template_variables = {}\n        template_variables[\"current_version\"] = current_version\n        template_variables[\"github_version\"] = github_version\n        template_variables[\"extensions_meta\"] = self.manager.extensions\n        template_variables[\n            \"current_extension_meta\"\n        ] = self.manager.current_extension_meta\n        template_variables[\"config\"] = {\n            section: dict(self.manager.config[section])\n            for section in self.manager.config.sections()\n        }\n        template_variables[\"page\"] = \"about\"\n        template_variables[\"msg\"] = self.manager.messages\n        self.manager.messages = []\n        return tmpl.render(template_variables)\n\n    @cherrypy.expose\n    def index(self):\n        if self.manager.current_extension_name == \"Aurora_Configure\":\n            # process config file\n            self.manager.loadConfig()\n            # set/load the extension\n            self.manager.setCurrentExtension(self.manager.current_extension_name)\n            self.manager.setupExtension()\n\n        self.manager.populateExtensions()\n        tmpl = env.get_template(\"index.html\")\n\n        template_variables = {}\n\n        template_variables[\"extensions_meta\"] = self.manager.extensions\n        template_variables[\n            \"current_extension_meta\"\n        ] = self.manager.current_extension_meta\n        if self.manager.current_extension != False:\n            template_variables[\"fps\"] = self.manager.current_extension.FPS_avg\n        else:\n            template_variables[\"fps\"] = 0\n        template_variables[\"configured\"] = self.manager.config.getboolean(\n            \"GENERAL\", \"configured\"\n        )\n        template_variables[\"enabled\"] = self.manager.config.getboolean(\n            \"GENERAL\", \"enabled\"\n        )\n        template_variables[\"page\"] = \"home\"\n        template_variables[\"msg\"] = self.manager.messages\n        self.manager.messages = []\n        return tmpl.render(template_variables)\n\n    @cherrypy.expose\n    def view(self):\n        if self.manager.current_extension_name == \"Aurora_Configure\":\n            # process config file\n            self.manager.loadConfig()\n            # set/load the extension\n            self.manager.setCurrentExtension(self.manager.current_extension_name)\n            self.manager.setupExtension()\n\n        self.manager.populateExtensions()\n        tmpl = env.get_template(\"view.html\")\n        self.screenshot()\n        template_variables = {}\n\n        template_variables[\"extensions_meta\"] = self.manager.extensions\n        template_variables[\n            \"current_extension_meta\"\n        ] = self.manager.current_extension_meta\n        if self.manager.current_extension != False:\n            template_variables[\"fps\"] = self.manager.current_extension.FPS_avg\n        else:\n            template_variables[\"fps\"] = 0\n        template_variables[\"configured\"] = self.manager.config.getboolean(\n            \"GENERAL\", \"configured\"\n        )\n        template_variables[\"enabled\"] = self.manager.config.getboolean(\n            \"GENERAL\", \"enabled\"\n        )\n        template_variables[\"page\"] = \"view\"\n        template_variables[\"msg\"] = self.manager.messages\n        self.manager.messages = []\n        return tmpl.render(template_variables)\n\n    @cherrypy.expose\n    def configure(self):\n        if self.manager.enabled == False:  # Its turned off, we need it on to config\n            self.manager.enabled = True\n        self.manager.setCurrentExtension(\"Aurora_Configure\")\n        # self.manager.setCurrentExtension(\"Aurora_Ambient_AutoCrop\")\n        self.manager.extension_started = False  # so it doesnt loop visualise\n        self.manager.current_extension.visualise()\n        self.screenshot()\n\n        tmpl = env.get_template(\"configure.html\")\n        template_variables = {}\n        template_variables[\n            \"pixels_darkthreshold\"\n        ] = self.manager.current_extension.darkThreshhold\n        template_variables[\"pixels_left\"] = self.manager.current_extension.pixelsLeft\n        template_variables[\"pixels_right\"] = self.manager.current_extension.pixelsRight\n        template_variables[\"pixels_top\"] = self.manager.current_extension.pixelsTop\n        template_variables[\n            \"pixels_bottom\"\n        ] = self.manager.current_extension.pixelsBottom\n        # template_variables[\"hdmi_saturation\"] = self.manager.config.getint(\n        #     \"HDMI\", \"HDMI_SATURATION\"\n        # )\n        # template_variables[\"hdmi_brightness\"] = self.manager.config.getint(\n        #     \"HDMI\", \"HDMI_BRIGHTNESS\"\n        # )\n        # template_variables[\"hdmi_hue\"] = self.manager.config.getint(\"HDMI\", \"HDMI_HUE\")\n        # template_variables[\"hdmi_contrast\"] = self.manager.config.getint(\n        #     \"HDMI\", \"HDMI_CONTRAST\"\n        # )\n        # template_variables[\"hdmi_brightness_default\"] = int(self.manager.config[\"HDMI_INITIAL\"][\"HDMI_BRIGHTNESS\"])\n        # template_variables[\"hdmi_saturation_default\"] = int(self.manager.config[\"HDMI_INITIAL\"][\"HDMI_SATURATION\"])\n        # template_variables[\"hdmi_contrast_default\"] = int(self.manager.config[\"HDMI_INITIAL\"][\"HDMI_CONTRAST\"])\n        # template_variables[\"hdmi_hue_default\"] = int(self.manager.config[\"HDMI_INITIAL\"][\"HDMI_HUE\"])\n        template_variables[\"hdmi_gamma\"] = self.manager.current_extension.gamma\n        template_variables[\"page\"] = \"configure\"\n        template_variables[\"msg\"] = self.manager.messages\n        self.manager.messages = []\n\n        return tmpl.render(template_variables)\n\n    @cherrypy.tools.json_out()\n    @cherrypy.expose\n    def toggleEnable(self):\n        if self.manager.enabled:\n            self.manager.tearDownExtension()\n        else:\n            self.manager.setupExtension()\n\n        self.manager.enabled = not self.manager.enabled\n\n        return {\"status\": self.manager.enabled}\n\n    @cherrypy.tools.json_in()\n    @cherrypy.tools.json_out()\n    @cherrypy.expose\n    def update_config(self):\n        input_json = cherrypy.request.json\n        if \"enabled\" in input_json:\n            try:\n                return_json = {\"status\": \"ok\"}\n                enabled_status = input_json[\"enabled\"]\n                self.manager.enabled = enabled_status\n                if enabled_status == False:\n                    # we are turning it off, tear down the extension\n                    self.manager.tearDownExtension()\n                    return_json[\"message\"] = \"Aurora successfully turned off\"\n                elif enabled_status == True:\n                    # we are turning it on, lets put everything back\n                    self.manager.setupExtension()\n                    return_json[\"message\"] = \"Aurora successfully turned on\"\n\n                self.manager.config.set(\"GENERAL\", \"enabled\", str(enabled_status))\n                self.manager.saveConfig()\n                return return_json\n\n            except Exception as e:\n                return {\"status\": \"error\", \"error\": str(e)}\n                pass\n        else:\n            return {\"status\": \"error\", \"error\": \"No setting found in request\"}\n\n    @cherrypy.tools.json_out()\n    @cherrypy.tools.json_in()\n    @cherrypy.expose\n    def update_HDMI_config(self):\n        input_json = cherrypy.request.json\n        # saturation = int(input_json[\"hdmi_saturation\"])\n        # hue = int(input_json[\"hdmi_hue\"])\n        # contrast = int(input_json[\"hdmi_contrast\"])\n        # brightness = int(input_json[\"hdmi_brightness\"])\n\n        errors = []\n        try:\n            gamma = float(input_json[\"hdmi_gamma\"])\n            self.manager.current_extension.gamma = gamma\n            if \"save\" in input_json:\n                self.manager.config.set(\"AURORA\", \"AURORA_GAMMA\", str(gamma))\n                self.manager.saveConfig()\n                self.manager.addMessage(\"Saved config!\")\n\n            # self.manager.vid.set(cv2.CAP_PROP_SATURATION, saturation)\n            # self.manager.vid.set(cv2.CAP_PROP_HUE, hue)\n            # self.manager.vid.set(cv2.CAP_PROP_BRIGHTNESS, brightness)\n            # self.manager.vid.set(cv2.CAP_PROP_CONTRAST, contrast)\n\n            # self.manager.log(\n            #     \"Brightness:{} Saturation: {} Contrast: {} Hue: {}\".format(\n            #         int(self.manager.vid.get(cv2.CAP_PROP_BRIGHTNESS)),\n            #         int(self.manager.vid.get(cv2.CAP_PROP_SATURATION)),\n            #         int(self.manager.vid.get(cv2.CAP_PROP_CONTRAST)),\n            #         int(self.manager.vid.get(cv2.CAP_PROP_HUE)),\n            #     )\n            # )\n\n            # for i in range(5):\n            #     self.manager.vid.read()\n\n            self.manager.takeScreenshot()\n        except Exception as e:\n            errors.append(str(e))\n            pass\n\n        if len(errors) == 0:\n            return {\"status\": \"ok\"}\n        else:\n            error_string = \",\".join(errors)\n            return {\"status\": \"error\", \"error\": error_string}\n\n    @cherrypy.tools.json_out()\n    @cherrypy.tools.json_in()\n    @cherrypy.expose\n    def update_LED_config(self):\n        input_json = cherrypy.request.json\n        pixelcount_left = self.manager.current_extension.pixelsLeft\n        pixelcount_right = self.manager.current_extension.pixelsRight\n        pixelcount_top = self.manager.current_extension.pixelsTop\n        pixelcount_bottom = self.manager.current_extension.pixelsBottom\n        pixel_darkthreshold = self.manager.current_extension.darkThreshhold\n\n        configChange = False\n\n        errors = []\n        if \"darkthreshhold\" in input_json:\n            try:\n\n                dt = int(input_json[\"darkthreshhold\"])\n                if dt != pixel_darkthreshold:\n                    configChange = True\n                    pixel_darkthreshold = dt\n            except Exception as e:\n                errors.append(str(e))\n                pass  # whatever, you are doing bad things with input\n\n        if \"pixelcount_left\" in input_json:\n            try:\n                led_input_count = int(input_json[\"pixelcount_left\"])\n                if led_input_count != pixelcount_left:\n                    configChange = True\n                    pixelcount_left = led_input_count\n            except Exception as e:\n                errors.append(str(e))\n                pass  # whatever, you are doing bad things with input\n\n        if \"pixelcount_right\" in input_json:\n            try:\n                led_input_count = int(input_json[\"pixelcount_right\"])\n                if led_input_count != pixelcount_right:\n                    configChange = True\n                    pixelcount_right = led_input_count\n            except Exception as e:\n                errors.append(str(e))\n                pass  # whatever, you are doing bad things with input\n\n        if \"pixelcount_top\" in input_json:\n            try:\n                led_input_count = int(input_json[\"pixelcount_top\"])\n                if led_input_count != pixelcount_top:\n                    configChange = True\n                    pixelcount_top = led_input_count\n            except Exception as e:\n                errors.append(str(e))\n                pass  # whatever, you are doing bad things with input\n\n        if \"pixelcount_bottom\" in input_json:\n            try:\n                led_input_count = int(input_json[\"pixelcount_bottom\"])\n                if led_input_count != pixelcount_bottom:\n                    configChange = True\n                    pixelcount_bottom = led_input_count\n            except Exception as e:\n                errors.append(str(e))\n                pass  # whatever, you are doing bad things with input\n\n        pixelcount_total = (\n            pixelcount_left + pixelcount_right + pixelcount_top + pixelcount_bottom\n        )\n\n        try:\n            self.manager.current_extension.pixelsCount = pixelcount_total\n            self.manager.current_extension.pixelsLeft = pixelcount_left\n            self.manager.current_extension.pixelsRight = pixelcount_right\n            self.manager.current_extension.pixelsTop = pixelcount_top\n            self.manager.current_extension.pixelsBottom = pixelcount_bottom\n            self.manager.current_extension.setup()\n            self.manager.current_extension.visualise()\n        except Exception as e:\n            errors.append(str(e))\n\n        if \"save\" in input_json:\n            try:\n                self.manager.config.set(\n                    \"AURORA\", \"AURORA_PIXELCOUNT_LEFT\", str(pixelcount_left)\n                )\n                self.manager.config.set(\n                    \"AURORA\", \"AURORA_PIXELCOUNT_RIGHT\", str(pixelcount_right)\n                )\n                self.manager.config.set(\n                    \"AURORA\", \"AURORA_PIXELCOUNT_TOP\", str(pixelcount_top)\n                )\n                self.manager.config.set(\n                    \"AURORA\", \"AURORA_PIXELCOUNT_BOTTOM\", str(pixelcount_bottom)\n                )\n                self.manager.config.set(\n                    \"AURORA\", \"AURORA_PIXELCOUNT_TOTAL\", str(pixelcount_total)\n                )\n                self.manager.config.set(\n                    \"AURORA\", \"AURORA_DARKTHRESHOLD\", str(pixel_darkthreshold)\n                )\n                self.manager.config.set(\"GENERAL\", \"configured\", \"True\")\n                self.manager.saveConfig()\n                self.manager.addMessage(\"Saved config!\")\n            except Exception as e:\n                logging.error(str(e))\n                errors.append(str(e))\n\n        if len(errors) == 0:\n            return {\"status\": \"ok\"}\n        else:\n            error_string = \",\".join(errors)\n            return {\"status\": \"error\", \"error\": error_string}\n\n    @cherrypy.tools.json_out()\n    @cherrypy.tools.json_in()\n    @cherrypy.expose\n    def update_extension(self):\n        input_json = cherrypy.request.json\n        if \"extension_name\" in input_json:\n            extension_name = input_json[\"extension_name\"]\n            self.manager.setCurrentExtension(extension_name)\n\n        return {\"status\": \"ok\"}\n\n    @cherrypy.tools.json_out()\n    @cherrypy.expose\n    def screenshot(self):\n        self.manager.takeScreenshot()\n        self.manager.makePixelImage()\n\n        if self.manager.current_extension != False:\n            return {\"status\": \"ok\"}\n        else:\n            return {\n                \"status\": \"error\",\n                \"error\": \"Could not take screenshot and build pixel image\",\n            }\n\n    @cherrypy.expose\n    def load_screenshot(self, **params):\n        screenshot_path = self.manager.screenshot_path\n        # Its not enabled, it doesnt use HDMI or its got a 1x1 image (ie nothing on)\n        if (\n            self.manager.enabled == False\n            or self.manager.current_extension.noHDMI == True\n            or (\n                self.manager.current_extension.vid_h == 1\n                or self.manager.current_extension.vid_w == 1\n            )\n        ):\n            screenshot_path = os.getcwd() + \"/webserver/static/img/emptyimage.jpg\"\n        try:\n            f = open(screenshot_path, \"rb\")\n            contents = f.read()\n            f.close()\n            return contents\n        except Exception as e:\n            self.manager.log(\n                \"Error loading image {}: Err: {}\".format(\n                    self.manager.screenshot_path, str(e)\n                )\n            )\n            return False\n\n    @cherrypy.expose\n    def load_pixel_image(self, **params):\n        try:\n            f = open(self.manager.pixel_image_path, \"rb\")\n            contents = f.read()\n            f.close()\n            return contents\n        except Exception as e:\n            self.manager.log(\n                \"Error loading image {}: Err: {}\".format(\n                    self.manager.pixel_image_path, str(e)\n                )\n            )\n            return False\n\n\nif __name__ == \"__main__\":\n\n    AuroraManager = AuroraManager()\n\n    if AuroraManager.config.getboolean(\"WEBSERVER\", \"enabled\") == True:\n\n        conf = {\n            \"/\": {\n                \"tools.sessions.on\": True,\n                \"tools.staticdir.root\": os.path.abspath(os.getcwd()),\n            },\n            \"/assets\": {\n                \"tools.staticdir.on\": True,\n                \"tools.staticdir.dir\": \"./webserver/static\",\n            },\n            \"/favicon.ico\": {\n                \"tools.staticfile.on\": True,\n                \"tools.staticfile.filename\": os.path.abspath(os.getcwd())\n                + \"/webserver/static/favicon/favicon.ico\",\n            },\n        }\n\n        cherrypy.config.update(\n            {\"log.screen\": False, \"log.access_file\": \"\", \"log.error_file\": \"\"}\n        )\n        cherrypy.config.update(\n            {\n                \"server.socket_port\": AuroraManager.config.getint(\n                    \"WEBSERVER\", \"server_port\"\n                )\n            }\n        )\n        cherrypy.config.update(\n            {\"server.socket_host\": AuroraManager.config.get(\"WEBSERVER\", \"listen_host\")}\n        )\n        cherrypy.config.update({\"engine.autoreload.on\": False})\n\n        cherrypy.tree.mount(Aurora_Webserver(AuroraManager), \"/\", conf)\n\n        cherrypy.engine.start()\n\n    while True:\n        AuroraManager.loop()\n        time.sleep(0.001)\n\n    # do other work\n"
  },
  {
    "path": "README.md",
    "content": "[![Slack](https://img.shields.io/badge/slack-chat-green.svg)](https://join.slack.com/t/auroraambientlighting/shared_invite/zt-sib46ode-0rE3GqXFEcHd_H_y_nG~oA) \n\n![Aurora Example](https://github.com/AndrewMohawk/Aurora/raw/master/github/Aurora_Ambient_Light_test_video.gif)\n\n# Aurora\nAurora is an ambient light system built with an HDMI switch, and HDMI capture card, a Raspberry Pi and an LED strip. There is a full writeup of how this came to be at https://www.andrewmohawk.com/2021/05/25/aurora-ambient-lighting/ and a build guide at https://www.andrewmohawk.com/2021/05/24/aurora-how-to-build/\n\n# Help\nFeel free to submit PRs for the project to improve the code base or add your own visualisations. Please remember to update the VERSION when you are doing a new PR. If you *need* help with any part of the project feel free to email or you can join the gitter at https://gitter.im/AuroraAmbientLighting/community \n\n# Extending\nWhile the documentation for extending and building your own hasnt been fully written up, the TL;DR is to copy the example extenion in the `extensions` folder, change the metadata and restart Aurora with `sudo service aurora restart`, once it has picked up the new file you can simply make changes and then click load extension in the main interface. \n\nPlease note when changing your `visualise` function you need to make it non-locking or the interface will not be able to communicate with it. The interface will pause for 0.01s before running visualise() again between each run\n\n# Install\nThe install for this requires a hardware and software setup. You can follow the install guide at https://www.andrewmohawk.com/2021/05/24/aurora-how-to-build/ \n\nThe flow diagram looks as follows:\n![Aurora Flow diagram](https://www.andrewmohawk.com/wp-content/uploads/2021/05/Aurora-Flow-Diagram.png)\n\nFor just grabbing the software you can use this one liner:\n```\nwget https://raw.githubusercontent.com/AndrewMohawk/Aurora/master/install.sh -O - | sudo /bin/bash\n```\n\n\n"
  },
  {
    "path": "VERSION",
    "content": "0.42-catsdontlikefireworks\n"
  },
  {
    "path": "__init__.py",
    "content": ""
  },
  {
    "path": "apt-requirements.txt",
    "content": ""
  },
  {
    "path": "aurora.service",
    "content": "[Unit]\nDescription=Aurora light system\nAfter=multi-user.target\nStartLimitInterval=200\nStartLimitBurst=5\n[Service]\nWorkingDirectory=/opt/Aurora/\nUser=root\nType=idle\nExecStart=/usr/bin/sudo /usr/bin/python3 Aurora.py 2>&1 > /var/log/Aurora.log \nRestart=always\nRestartSec=30s\n[Install]\nWantedBy=multi-user.target\n"
  },
  {
    "path": "extensions/Aurora_Ambient_16x9.py",
    "content": "from lib.AuroraExtension import AuroraExtension\nimport time\n\nimport numpy as np\nimport pandas as pd\nimport cv2\n\n\nclass Aurora_Ambient_16x9(AuroraExtension):\n    def __init__(self, NeoPixels, HDMI):\n        super().__init__(NeoPixels, HDMI)\n        self.Author = \"Andrew MacPherson (@AndrewMohawk)\"\n        self.Description = \"This extension takes the HDMI input and crops the image to 16:9 (hopefully) removing the black borders\"\n        self.Name = \"Aurora Ambient Lighting (16x9)\"\n        self.count = 0\n        self.current_frame = False\n        self.aspect_cropped_frame = False\n        self.percent = 3\n        self.aspectRatio = 16.0 / 9.0\n\n    def aspectCrop(self, image, ratio):\n        vid_h, vid_w, channels = image.shape\n        # work out the size of the 'gaps'\n        aspectRatioGap = vid_h - (vid_w / self.aspectRatio)\n        aspectRatioGap = aspectRatioGap / 2  # since we want to put some top and bottom\n        aspectRatioGap = int(aspectRatioGap)\n        aspect_frame = image[aspectRatioGap : vid_h - aspectRatioGap, 0:vid_w]\n        return aspect_frame\n\n    def takeScreenShot(self, filepath):\n        ret, self.current_frame = self.getFrame()\n        vid_h, vid_w, channels = self.current_frame.shape\n        aspectRatioGap = vid_h - (vid_w / self.aspectRatio)\n        aspectRatioGap = aspectRatioGap / 2  # since we want to put some top and bottom\n        aspectRatioGap = int(aspectRatioGap)\n        borderEdges = [0, aspectRatioGap, 0, aspectRatioGap]\n        return super().takeScreenShot(filepath, borderEdges=borderEdges)\n\n    def visualise(self):\n        # Capture the video frame\n        ret, self.current_frame = self.getFrame()\n        self.aspect_cropped_frame = self.aspectCrop(\n            self.current_frame, self.aspectRatio\n        )\n        self.visualiseFrame(self.aspect_cropped_frame)\n"
  },
  {
    "path": "extensions/Aurora_Ambient_AutoCrop.py",
    "content": "from lib.AuroraExtension import AuroraExtension\nimport time\nimport datetime\nimport numpy as np\nimport pandas as pd\nimport cv2\n\n\nclass Aurora_Ambient_AutoCrop(AuroraExtension):\n    def __init__(self, NeoPixels, HDMI):\n        super().__init__(NeoPixels, HDMI)\n        self.Author = \"Andrew MacPherson (@AndrewMohawk)\"\n        self.Description = \"This extension takes the HDMI input and calculates a border (including cropping for black borders) to work out ambient lighting for behind the display.\"\n        self.Name = \"Aurora Ambient Lighting ( AutoCrop )\"\n        self.count = 0\n        self.current_frame = False\n        self.cropped_frame = False\n        self.percent = 3\n        self.edgeDarkness = (\n            5  # this defines the darkness that makes the edges for autocrop\n        )\n\n    def takeScreenShot(self, filepath, autocrop=False):\n        return super().takeScreenShot(filepath, self.edgeDarkness)\n\n    def autocrop(self, image, threshold=0):\n        \"\"\"Crops any edges below or equal to threshold\n        Crops blank image to 1x1.\n        Returns cropped image.\n        \"\"\"\n        if len(image.shape) == 3:\n            flatImage = np.max(image, 2)\n        else:\n            flatImage = image\n        assert len(flatImage.shape) == 2\n\n        rows = np.where(np.max(flatImage, 0) > threshold)[0]\n        if rows.size:\n            cols = np.where(np.max(flatImage, 1) > threshold)[0]\n            image = image[cols[0] : cols[-1] + 1, rows[0] : rows[-1] + 1]\n        else:\n            image = image[:1, :1]\n\n        return image\n\n    def visualise(self):\n        # Capture the video frame\n        # stopwatchStartTime = datetime.datetime.now()\n        # totalStartTime = stopwatchStartTime\n        ret, self.current_frame = self.getFrame()\n        self.vid_h, self.vid_w, self.channels = self.current_frame.shape\n        # self.log(f\"GetFrame: {datetime.datetime.now()-stopwatchStartTime}\")\n\n        # stopwatchStartTime = datetime.datetime.now()\n        self.autocropped_frame = self.autocrop(self.current_frame, self.edgeDarkness)\n        # self.log(f\"AutoCropTime: {datetime.datetime.now()-stopwatchStartTime}\")\n\n        self.visualiseFrame(self.autocropped_frame)\n"
  },
  {
    "path": "extensions/Aurora_Ambient_NoCrop.py",
    "content": "from lib.AuroraExtension import AuroraExtension\nimport time\nimport datetime\nimport numpy as np\nimport pandas as pd\nimport cv2\n\n\nclass Aurora_Ambient_NoCrop(AuroraExtension):\n    def __init__(self, NeoPixels, HDMI):\n        super().__init__(NeoPixels, HDMI)\n        self.Author = \"Andrew MacPherson (@AndrewMohawk)\"\n        self.Description = \"This extension takes the HDMI input and calculates a border (WITHOUT cropping) to work out ambient lighting for behind the display. This one is slightly faster as it doesnt need to do any of the maths to work out the cropping.\"\n        self.Name = \"Aurora Ambient Lighting ( No crop )\"\n        self.count = 0\n        self.current_frame = False\n        self.percent = 3\n\n    def autocrop(self, image, threshold=0):\n        \"\"\"Crops any edges below or equal to threshold\n        Crops blank image to 1x1.\n        Returns cropped image.\n        \"\"\"\n        if len(image.shape) == 3:\n            flatImage = np.max(image, 2)\n        else:\n            flatImage = image\n        assert len(flatImage.shape) == 2\n\n        rows = np.where(np.max(flatImage, 0) > threshold)[0]\n        if rows.size:\n            cols = np.where(np.max(flatImage, 1) > threshold)[0]\n            image = image[cols[0] : cols[-1] + 1, rows[0] : rows[-1] + 1]\n        else:\n            image = image[:1, :1]\n\n        return image\n\n    def takeScreenShot(self, filepath):\n        screenshot_frame = self.current_frame\n        widthPixels = int(self.vid_w * (self.percent / 100)) + 1\n        heightPixels = int(self.vid_h * (self.percent / 100) * 2) + 1\n\n        colour = (0, 0, 255)\n        # top\n        screenshot_frame = cv2.rectangle(\n            screenshot_frame, (0, 0), (self.vid_w, heightPixels), (0, 0, 255), 1\n        )\n        # bottom\n        screenshot_frame = cv2.rectangle(\n            screenshot_frame,\n            (0, self.vid_h - heightPixels),\n            (self.vid_w, self.vid_h),\n            (0, 0, 255),\n            1,\n        )\n        # left\n        screenshot_frame = cv2.rectangle(\n            screenshot_frame, (0, 0), (widthPixels, self.vid_h), (0, 0, 255), 1\n        )\n        # right\n        screenshot_frame = cv2.rectangle(\n            screenshot_frame,\n            (self.vid_w - widthPixels, 0),\n            (self.vid_w, self.vid_h),\n            (0, 0, 255),\n            1,\n        )\n\n        cv2.imwrite(filepath, screenshot_frame)\n\n        return True\n\n    def visualise(self):\n        # Capture the video frame\n        ret, self.current_frame = self.getFrame()\n        self.visualiseFrame(self.current_frame)\n"
  },
  {
    "path": "extensions/Aurora_AudioSpectogram.py",
    "content": "from lib.AuroraExtension import AuroraExtension\nimport time\nimport datetime\nimport numpy as np\nimport pandas as pd\nimport sounddevice as sd\nfrom time import sleep\nimport sys\nfrom collections import deque\nimport math\n\n\nclass Aurora_AudioSpectogram(AuroraExtension):\n    def __init__(self, NeoPixels, HDMI):\n        super().__init__(NeoPixels, HDMI)\n        self.Author = \"Andrew MacPherson (@AndrewMohawk)\"\n        self.Description = \"This extension creates a rainbow audio spectogram, based somewhat on the code found at https://python-sounddevice.readthedocs.io/en/0.3.3/examples.html\"\n        self.Name = \"Aurora Audio Spectrogram\"\n        self.count = 0\n        self.current_frame = False\n        self.columns = 100\n        self.gain = 10\n        self.low = 10\n        self.high = 2500\n        # Lets find the right device\n        self.deviceID = sd.default.device[\"input\"]\n\n        self.log(\"Starting Audio spectogram with Device {}\".format(self.deviceID))\n        self.samplerate = sd.query_devices(self.deviceID, \"input\")[\"default_samplerate\"]\n        self.delta_f = (self.high - self.low) / (self.columns - 1)\n        self.fftsize = math.ceil(self.samplerate / self.delta_f)\n        self.low_bin = math.floor(self.low / self.delta_f)\n        self.threshhold = 40\n\n        self.pixelCount_nobottom = self.pixelsLeft + self.pixelsRight + self.pixelsTop\n\n        self.streamstarted = False\n        self.noHDMI = True\n\n    def takeScreenShot(self, filepath):\n        # We have no screenshot since... well its just LEDs\n        return True\n\n    def startAudioStream(self):\n        if self.streamstarted == True:\n            while self.streamstarted == True:\n                with sd.InputStream(\n                    device=self.deviceID,\n                    channels=1,\n                    callback=self.visualiseAudio,\n                    blocksize=int(self.samplerate * 50 / 1000),\n                    samplerate=self.samplerate,\n                ):\n                    # running stream\n                    sd.wait()\n\n    def teardown(self):\n        # incase things need to be broken down\n        self.log(\"Tearing down {}\".format(self.Name))\n        self.fade_out_pixels()\n        sd.stop()\n\n    def fadeToBlack(self, pixelPos):\n        fadeValue = 128\n        b, g, r = self.pixels[pixelPos]\n\n        r = 0 if r <= 10 else int(r - (r * fadeValue / 255))\n        g = 0 if g <= 10 else int(g - (g * fadeValue / 255))\n        b = 0 if b <= 10 else int(b - (b * fadeValue / 255))\n\n        self.pixels[pixelPos] = (b, g, r)\n\n    def wheel(self, pos):\n        # Input a value 0 to 255 to get a color value.\n        # The colours are a transition r - g - b - back to r.\n        if pos < 0 or pos > 255:\n            return (0, 0, 0)\n        if pos < 85:\n            return (255 - pos * 3, pos * 3, 0)\n        if pos < 170:\n            pos -= 85\n            return (0, 255 - pos * 3, pos * 3)\n        pos -= 170\n        return (pos * 3, 0, 255 - pos * 3)\n\n    def rainbow_cycle(self, j):\n        for i in range(self.pixelCount_nobottom):\n            rc_index = (i * 256 // self.pixelCount_nobottom) + j\n            self.pixels[i] = self.wheel(rc_index & 255)\n        self.getFrame(False)  # hack to have 'FPS'\n        self.pixels.show()\n\n    def visualiseAudio(self, indata, frames, time, status):\n        if any(indata):\n\n            magnitude = np.abs(np.fft.rfft(indata[:, 0], n=self.fftsize))\n            magnitude *= self.gain / self.fftsize\n            audio_channels = []\n\n            for x in magnitude[self.low_bin : self.low_bin + self.columns]:\n                audio_channel_val = int(np.clip(x, 0, 1) * (255))\n\n                if audio_channel_val >= self.threshhold:\n                    audio_channels.append(audio_channel_val)\n                else:\n                    audio_channels.append(0)\n\n            d = deque(audio_channels)\n            d.rotate(self.pixelsLeft)  # start top left? why not.\n            audio_channels = list(d)\n\n            chan_led_width = round(self.pixelCount_nobottom / len(audio_channels))\n\n            for key, val in enumerate(audio_channels):\n\n                first_pixel = key * chan_led_width\n                last_pixel = first_pixel + chan_led_width - 1\n                if last_pixel > self.pixelCount_nobottom:\n                    last_pixel = self.pixelCount_nobottom - 1\n\n                for pNum in range(first_pixel, last_pixel + 1):\n                    col = self.wheel(pNum)\n                    if val != 0:\n                        self.pixels[pNum] = col\n                    else:\n                        self.fadeToBlack(pNum)\n\n            count = 0\n            for x in audio_channels:\n                if x != 0:\n                    count += 1\n\n            testLine = \"\"\n            for i in range(len(audio_channels)):\n                testLine += str(audio_channels[i]).zfill(2) + \"|\"\n\n            count = 0\n            for x in self.pixels:\n                if x != [0, 0, 0]:\n                    count += 1\n\n            self.pixels.show()\n        else:\n            self.log(\"No Audio data in\")\n\n    def visualise(self):\n        with sd.InputStream(\n            device=self.deviceID,\n            channels=1,\n            callback=self.visualiseAudio,\n            blocksize=int(self.samplerate * 50 / 1000),\n            samplerate=self.samplerate,\n        ):\n            # running stream\n            sd.wait()\n\n        time.sleep(0.01)\n"
  },
  {
    "path": "extensions/Aurora_Configure.py",
    "content": "from lib.AuroraExtension import AuroraExtension\nimport neopixel\nimport time\nimport datetime\nimport numpy as np\nimport pandas as pd\nimport board\nimport cv2\nimport sys\n\n\nclass Aurora_Configure(AuroraExtension):\n    def __init__(self, NeoPixels, HDMI):\n        super().__init__(NeoPixels, HDMI)\n        self.Author = \"Andrew MacPherson (@AndrewMohawk)\"\n        self.Description = \"This extension configures the LEDs\"\n        self.Name = \"Aurora Ambient Lighting Configuration\"\n        self.count = 0\n        self.current_frame = False\n        self.percent = 3\n\n    def setup(self):\n        return True\n\n    def visualise(self):\n        # Capture the video frame\n        ret, self.current_frame = self.getFrame()\n        self.vid_h, self.vid_w, self.channels = self.current_frame.shape\n        pos = 0\n\n        colour = (255, 0, 0)  # red\n\n        for i in range(pos, pos + self.pixelsLeft):\n            self.pixels[i] = colour\n\n        pos = pos + self.pixelsLeft\n\n        colour = (0, 255, 0)  # green\n        for x in range(pos, pos + self.pixelsTop):\n            self.pixels[x] = colour\n\n        pos = pos + self.pixelsTop\n        colour = (0, 0, 255)  # blue\n        for y in range(pos, pos + self.pixelsRight):\n            self.pixels[y] = colour\n\n        pos = pos + self.pixelsRight\n\n        colour = (255, 255, 255)  # white\n        for z in range(pos, pos + self.pixelsBottom):\n            self.pixels[z] = colour\n\n        self.pixels.show()\n"
  },
  {
    "path": "extensions/Aurora_Meteor.py",
    "content": "from lib.AuroraExtension import AuroraExtension\nimport time\nimport datetime\nimport numpy as np\nimport pandas as pd\nimport cv2\nfrom random import randint\n\n\nclass Aurora_Meteor(AuroraExtension):\n    def __init__(self, NeoPixels, HDMI):\n        super().__init__(NeoPixels, HDMI)\n        self.Author = \"Andrew MacPherson (@AndrewMohawk)\"\n        self.Description = (\n            \"This has a 'meteor' effect in a random colour that shoots around the strip\"\n        )\n        self.Name = \"Aurora Meteor Display ( LED Only )\"\n        self.count = 0\n        self.current_frame = False\n        self.meteorSize = 10\n        self.currentCol = (255, 0, 0)\n        self.noHDMI = True\n        self.startTime = time.time()\n\n    def takeScreenShot(self, filepath):\n        # We have no screenshot since... well its just LEDs\n        return True\n\n    def fadeToBlack(self, pixelPos):\n        fadeValue = 64\n        b, g, r = self.pixels[pixelPos]\n\n        r = 0 if r <= 10 else int(r - (r * fadeValue / 255))\n        g = 0 if g <= 10 else int(g - (g * fadeValue / 255))\n        b = 0 if b <= 10 else int(b - (b * fadeValue / 255))\n\n        self.pixels[pixelPos] = (b, g, r)\n\n    def meteorRain(self, i, col):\n\n        # Fade out\n        for j in range(self.pixelsCount):\n            if randint(0, 10) > 5:\n                self.fadeToBlack(j)\n\n        for j in range(self.meteorSize):\n            if (i - j < self.pixelsCount) and (i - j >= 0):\n                self.pixels[i - j] = col\n\n        self.pixels.show()\n\n    def visualise(self):\n\n        # visualise!\n        self.count += 5\n        self.meteorRain(self.count, self.currentCol)\n        if self.count >= self.pixelsCount + self.meteorSize:\n            end = time.time()\n            diff = end - self.startTime\n            self.startTime = time.time()\n            self.count = 0\n            self.currentCol = (randint(0, 255), randint(0, 255), randint(0, 255))\n"
  },
  {
    "path": "extensions/Aurora_Rainbow.py",
    "content": "from lib.AuroraExtension import AuroraExtension\nimport time\nimport datetime\nimport numpy as np\nimport pandas as pd\nimport cv2\n\n\nclass Aurora_Rainbow(AuroraExtension):\n    def __init__(self, NeoPixels, HDMI):\n        super().__init__(NeoPixels, HDMI)\n        self.Author = \"Andrew MacPherson (@AndrewMohawk)\"\n        self.Description = \"This extension displays a rainbow pattern on the LEDs, a lot of this code is from https://learn.adafruit.com/circuitpython-essentials/circuitpython-neopixel\"\n        self.Name = \"Aurora Rainbow Display ( LED Only )\"\n        self.count = 0\n        self.current_frame = False\n        self.noHDMI = True\n\n    def takeScreenShot(self, filepath):\n        # We have no screenshot since... well its just LEDs\n        return True\n\n    def wheel(self, pos):\n        # Input a value 0 to 255 to get a color value.\n        # The colours are a transition r - g - b - back to r.\n        if pos < 0 or pos > 255:\n            return (0, 0, 0)\n        if pos < 85:\n            return (255 - pos * 3, pos * 3, 0)\n        if pos < 170:\n            pos -= 85\n            return (0, 255 - pos * 3, pos * 3)\n        pos -= 170\n        return (pos * 3, 0, 255 - pos * 3)\n\n    def rainbow_cycle(self, j):\n        for i in range(self.pixelsCount):\n            rc_index = (i * 256 // self.pixelsCount) + j\n            self.pixels[i] = self.wheel(rc_index & 255)\n        self.getFrame(False)  # hack to have 'FPS'\n        self.pixels.show()\n\n    def visualise(self):\n\n        # visualise!\n        self.count += 1\n        self.rainbow_cycle(self.count)\n        if self.count == 255:\n            self.count = 0\n\n        time.sleep(0.01)\n"
  },
  {
    "path": "extensions/__init__.py",
    "content": ""
  },
  {
    "path": "extensions/exampleExtension.py",
    "content": "from lib.AuroraExtension import AuroraExtension\nimport time\nfrom random import randint, choice\nimport numpy as np\nimport cv2\n\n\nclass exampleExtension(AuroraExtension):\n    def __init__(self, NeoPixels, HDMI):\n        super().__init__(NeoPixels, HDMI)\n        self.Author = \"Andrew MacPherson (@AndrewMohawk)\"\n        self.Description = \"Extension Example\"\n        self.Name = \"example extension\"\n        self.count = 0\n        self.randomLED = 0\n        self.randomSize = 0\n        self.log(\"Extension {} Initiated\".format(self.Name))\n\n    # This doesnt need to be implemented, but can if you want\n    # def takeScreenShot(self, filepath):\n\n    # Fade LEDs to Black (so they dont instantly drop off)\n    def fadeToBlack(self, pixelPos):\n        fadeValue = 0.2\n        b, g, r = self.pixels[pixelPos]\n\n        r = 0 if r <= 10 else int(r - (r * fadeValue))\n        g = 0 if g <= 10 else int(g - (g * fadeValue))\n        b = 0 if b <= 10 else int(b - (b * fadeValue))\n        self.pixels[pixelPos] = (b, g, r)\n\n    # Fade LEDs to bright (or first block to 255) so they dont just spotlight\n    def fadeToBright(self, pixelPos):\n\n        fadeValue = 1.2\n        b, g, r = self.pixels[pixelPos]\n\n        if r == 255 or g == 255 or b == 255:\n            return\n        r = 255 if r >= 200 else int(r + (r * fadeValue))\n        g = 255 if g >= 200 else int(g + (g * fadeValue))\n        b = 255 if b >= 200 else int(b + (b * fadeValue))\n\n        self.pixels[pixelPos] = (b, g, r)\n\n    # This will 'visualise' whatever you want and will be called every ~0.01s\n    def visualise(self):\n\n        # Grab a 'frame' of the screen:\n        ret, self.current_frame = self.getFrame()\n\n        # Theres something on the screen\n        if ret:\n            self.count = self.count + 1\n\n            if self.count <= 1:\n                if self.count == 1:\n                    self.log(\"Setting up colours\")\n                # Lets get a random size for our group of pixels between 5 and 50\n                self.randomSize = randint(5, 50)\n\n                # Lets pick a random LED to turn on\n                self.randomLED = randint(0, self.pixelsCount - self.randomSize)\n\n                # Lets get a random starting colour that we will scale up\n                self.colour = (randint(0, 10), randint(0, 10), randint(0, 10))\n\n                # Set the colour\n                for x in range(self.randomLED, self.randomLED + self.randomSize):\n                    self.pixels[x] = self.colour\n\n            elif self.count < 20:\n                if self.count == 2:\n                    self.log(\"Fading up colours\")\n                # Fade it up\n                for fade_up_pixel in range(\n                    self.randomLED, (self.randomLED + self.randomSize)\n                ):\n                    self.fadeToBright(fade_up_pixel)\n\n            elif self.count < 40:\n                if self.count == 21:\n                    self.log(\"Fading out colours\")\n                for fade_out_pixel in range(\n                    self.randomLED, (self.randomLED + self.randomSize)\n                ):\n                    self.fadeToBlack(fade_out_pixel)\n\n            else:\n                if self.count == 40:\n                    self.log(\"Resetting colours\")\n                self.count = 0\n\n            # And show it\n            self.pixels.show()\n"
  },
  {
    "path": "install.sh",
    "content": "#!/bin/bash\necho -e \"\n ▄▄▄       █    ██  ██▀███   ▒█████   ██▀███   ▄▄▄      \n▒████▄     ██  ▓██▒▓██ ▒ ██▒▒██▒  ██▒▓██ ▒ ██▒▒████▄    \n▒██  ▀█▄  ▓██  ▒██░▓██ ░▄█ ▒▒██░  ██▒▓██ ░▄█ ▒▒██  ▀█▄  \n░██▄▄▄▄██ ▓▓█  ░██░▒██▀▀█▄  ▒██   ██░▒██▀▀█▄  ░██▄▄▄▄██ \n ▓█   ▓██▒▒▒█████▓ ░██▓ ▒██▒░ ████▓▒░░██▓ ▒██▒ ▓█   ▓██▒\n ▒▒   ▓▒█░░▒▓▒ ▒ ▒ ░ ▒▓ ░▒▓░░ ▒░▒░▒░ ░ ▒▓ ░▒▓░ ▒▒   ▓▒█░\n  ▒   ▒▒ ░░░▒░ ░ ░   ░▒ ░ ▒░  ░ ▒ ▒░   ░▒ ░ ▒░  ▒   ▒▒ ░\n  ░   ▒    ░░░ ░ ░   ░░   ░ ░ ░ ░ ▒    ░░   ░   ░   ▒   \n      ░  ░   ░        ░         ░ ░     ░           ░  ░\n                -Install Script-\n                @AndrewMohawk                                                        \n\"\nINSTALLDIR=\"/opt/Aurora\"\nif [[ $EUID -ne 0 ]]; then\n   echo \"This script must be run as root, please use sudo\" \n   exit 1\nfi\n\nif [ -d \"$INSTALLDIR\" ] \nthen\n    echo \"Directory $INSTALLDIR exists. Please remove before performing a clean install\" \n    exit 1\nfi\necho \"[+] Creating Install Directory\"\necho \"------------------------------\"\nmkdir $INSTALLDIR\ncd $INSTALLDIR\necho \"[+] Updating APT and installing dependencies\"\necho \"------------------------------\"\napt update\napt-get install -y libatlas-base-dev libportaudio2 python3-pip git python3-opencv\necho \"[+] Git Cloning Aurora base\"\necho \"------------------------------\"\ngit clone https://github.com/AndrewMohawk/Aurora.git .\ncp config.ini.bak config.ini\necho \"[+] Installing Python Requirements\"\necho \"------------------------------\"\npip3 install -r requirements.txt\necho \"[+] Installing Service\"\necho \"------------------------------\"\ncp aurora.service /etc/systemd/system\nsystemctl enable aurora.service\nsystemctl start aurora.service\necho \"[+] Service Status\"\necho \"------------------------------\"\necho \"Aurora status: `systemctl is-active aurora.service`\"\necho \"[+] Last 20 lines of aurora log\"\necho \"------------------------------\"\njournalctl -u aurora -n 20 --no-pager\necho -e \"\n ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ \n(___|___|___|___|___|___|___|___|___|___|___|___)\n        \"\necho \"Complete. You can now browse to the web interface to configure any changes you may need.\"\nlocalip=$(hostname -I)\necho \"This will likely be: http://$localip\"\n"
  },
  {
    "path": "requirements.txt",
    "content": "numpy >= 1.16.5\npandas\nopencv-python==4.5.1.48\ncherrypy\nconfigparser\nadafruit-circuitpython-neopixel\nblinker\njinja2\nsounddevice\npyaudio\n"
  },
  {
    "path": "update.sh",
    "content": "#!/bin/bash\necho -e \"\n ▄▄▄       █    ██  ██▀███   ▒█████   ██▀███   ▄▄▄      \n▒████▄     ██  ▓██▒▓██ ▒ ██▒▒██▒  ██▒▓██ ▒ ██▒▒████▄    \n▒██  ▀█▄  ▓██  ▒██░▓██ ░▄█ ▒▒██░  ██▒▓██ ░▄█ ▒▒██  ▀█▄  \n░██▄▄▄▄██ ▓▓█  ░██░▒██▀▀█▄  ▒██   ██░▒██▀▀█▄  ░██▄▄▄▄██ \n ▓█   ▓██▒▒▒█████▓ ░██▓ ▒██▒░ ████▓▒░░██▓ ▒██▒ ▓█   ▓██▒\n ▒▒   ▓▒█░░▒▓▒ ▒ ▒ ░ ▒▓ ░▒▓░░ ▒░▒░▒░ ░ ▒▓ ░▒▓░ ▒▒   ▓▒█░\n  ▒   ▒▒ ░░░▒░ ░ ░   ░▒ ░ ▒░  ░ ▒ ▒░   ░▒ ░ ▒░  ▒   ▒▒ ░\n  ░   ▒    ░░░ ░ ░   ░░   ░ ░ ░ ░ ▒    ░░   ░   ░   ▒   \n      ░  ░   ░        ░         ░ ░     ░           ░  ░\n                -Update Script-\n                @AndrewMohawk                                                        \n\"\nINSTALLDIR=\"/opt/Aurora\"\nif [[ $EUID -ne 0 ]]; then\n   echo \"This script must be run as root, please use sudo\" \n   exit 1\nfi\n\nif [ ! -d \"$INSTALLDIR\" ] \nthen\n    echo \"Directory $INSTALLDIR Does not exist. Please run install first or update the install directory\" \n    exit 1\nfi\ncd $INSTALLDIR\nif [ -d .git ]; then\n    echo \"[+] Git Cloning Aurora base\"\n    echo \"------------------------------\"\n    git pull \n    echo \"[+] Stopping Aurora\"\n    echo \"------------------------------\"\n    service aurora stop \n    echo \"[+] Service Status\"\n    echo \"------------------------------\"\n    echo \"Aurora status: `systemctl is-active aurora.service`\"\n    echo \"[+] Starting Aurora\"\n    echo \"------------------------------\"\n    service aurora start \n    echo \"[+] Service Status\"\n    echo \"------------------------------\"\n    echo \"Aurora status: `systemctl is-active aurora.service`\"\n    echo \"[+] Last 20 lines of aurora log\"\n    echo \"------------------------------\"\n    journalctl -u aurora -n 20 --no-pager\n    echo -e \"\n ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ \n(___|___|___|___|___|___|___|___|___|___|___|___)\n        \"\n    echo \"Complete. You can now browse to the web interface to configure any changes you may need.\"\n    localip=$(hostname -I)\n    echo \"This will likely be: http://$localip\"\n\nelse\n    echo \"This install directory ($INSTALLDIR) is *NOT* a git repo.\"\nfi;\n"
  },
  {
    "path": "webserver/static/css/bootstrap.css",
    "content": "/*!\n * Bootstrap v4.5 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\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: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\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}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.46875rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\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}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):hover {\n  color: inherit;\n  text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n  -ms-overflow-style: scrollbar;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\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}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\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}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.46875rem;\n  font-weight: 500;\n  line-height: 1.2;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 0.9375rem;\n  margin-bottom: 0.9375rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 0.9375rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.46875rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\n.container {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container, .container-sm {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container, .container-sm, .container-md {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container, .container-sm, .container-md, .container-lg {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container, .container-sm, .container-md, .container-lg, .container-xl {\n    max-width: 1140px;\n  }\n}\n\n.row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\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\n.col {\n  flex-basis: 0;\n  flex-grow: 1;\n  min-width: 0;\n  max-width: 100%;\n}\n\n.row-cols-1 > * {\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.row-cols-2 > * {\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.row-cols-3 > * {\n  flex: 0 0 33.33333%;\n  max-width: 33.33333%;\n}\n\n.row-cols-4 > * {\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.row-cols-5 > * {\n  flex: 0 0 20%;\n  max-width: 20%;\n}\n\n.row-cols-6 > * {\n  flex: 0 0 16.66667%;\n  max-width: 16.66667%;\n}\n\n.col-auto {\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  flex: 0 0 8.33333%;\n  max-width: 8.33333%;\n}\n\n.col-2 {\n  flex: 0 0 16.66667%;\n  max-width: 16.66667%;\n}\n\n.col-3 {\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  flex: 0 0 33.33333%;\n  max-width: 33.33333%;\n}\n\n.col-5 {\n  flex: 0 0 41.66667%;\n  max-width: 41.66667%;\n}\n\n.col-6 {\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  flex: 0 0 58.33333%;\n  max-width: 58.33333%;\n}\n\n.col-8 {\n  flex: 0 0 66.66667%;\n  max-width: 66.66667%;\n}\n\n.col-9 {\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  flex: 0 0 83.33333%;\n  max-width: 83.33333%;\n}\n\n.col-11 {\n  flex: 0 0 91.66667%;\n  max-width: 91.66667%;\n}\n\n.col-12 {\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  order: -1;\n}\n\n.order-last {\n  order: 13;\n}\n\n.order-0 {\n  order: 0;\n}\n\n.order-1 {\n  order: 1;\n}\n\n.order-2 {\n  order: 2;\n}\n\n.order-3 {\n  order: 3;\n}\n\n.order-4 {\n  order: 4;\n}\n\n.order-5 {\n  order: 5;\n}\n\n.order-6 {\n  order: 6;\n}\n\n.order-7 {\n  order: 7;\n}\n\n.order-8 {\n  order: 8;\n}\n\n.order-9 {\n  order: 9;\n}\n\n.order-10 {\n  order: 10;\n}\n\n.order-11 {\n  order: 11;\n}\n\n.order-12 {\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.33333%;\n}\n\n.offset-2 {\n  margin-left: 16.66667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.33333%;\n}\n\n.offset-5 {\n  margin-left: 41.66667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.33333%;\n}\n\n.offset-8 {\n  margin-left: 66.66667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.33333%;\n}\n\n.offset-11 {\n  margin-left: 91.66667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    flex-basis: 0;\n    flex-grow: 1;\n    min-width: 0;\n    max-width: 100%;\n  }\n  .row-cols-sm-1 > * {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-sm-2 > * {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-sm-3 > * {\n    flex: 0 0 33.33333%;\n    max-width: 33.33333%;\n  }\n  .row-cols-sm-4 > * {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-sm-5 > * {\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-sm-6 > * {\n    flex: 0 0 16.66667%;\n    max-width: 16.66667%;\n  }\n  .col-sm-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    flex: 0 0 8.33333%;\n    max-width: 8.33333%;\n  }\n  .col-sm-2 {\n    flex: 0 0 16.66667%;\n    max-width: 16.66667%;\n  }\n  .col-sm-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    flex: 0 0 33.33333%;\n    max-width: 33.33333%;\n  }\n  .col-sm-5 {\n    flex: 0 0 41.66667%;\n    max-width: 41.66667%;\n  }\n  .col-sm-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    flex: 0 0 58.33333%;\n    max-width: 58.33333%;\n  }\n  .col-sm-8 {\n    flex: 0 0 66.66667%;\n    max-width: 66.66667%;\n  }\n  .col-sm-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    flex: 0 0 83.33333%;\n    max-width: 83.33333%;\n  }\n  .col-sm-11 {\n    flex: 0 0 91.66667%;\n    max-width: 91.66667%;\n  }\n  .col-sm-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    order: -1;\n  }\n  .order-sm-last {\n    order: 13;\n  }\n  .order-sm-0 {\n    order: 0;\n  }\n  .order-sm-1 {\n    order: 1;\n  }\n  .order-sm-2 {\n    order: 2;\n  }\n  .order-sm-3 {\n    order: 3;\n  }\n  .order-sm-4 {\n    order: 4;\n  }\n  .order-sm-5 {\n    order: 5;\n  }\n  .order-sm-6 {\n    order: 6;\n  }\n  .order-sm-7 {\n    order: 7;\n  }\n  .order-sm-8 {\n    order: 8;\n  }\n  .order-sm-9 {\n    order: 9;\n  }\n  .order-sm-10 {\n    order: 10;\n  }\n  .order-sm-11 {\n    order: 11;\n  }\n  .order-sm-12 {\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.33333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.66667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.33333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.66667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.33333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.66667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.33333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.66667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    flex-basis: 0;\n    flex-grow: 1;\n    min-width: 0;\n    max-width: 100%;\n  }\n  .row-cols-md-1 > * {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-md-2 > * {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-md-3 > * {\n    flex: 0 0 33.33333%;\n    max-width: 33.33333%;\n  }\n  .row-cols-md-4 > * {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-md-5 > * {\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-md-6 > * {\n    flex: 0 0 16.66667%;\n    max-width: 16.66667%;\n  }\n  .col-md-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    flex: 0 0 8.33333%;\n    max-width: 8.33333%;\n  }\n  .col-md-2 {\n    flex: 0 0 16.66667%;\n    max-width: 16.66667%;\n  }\n  .col-md-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    flex: 0 0 33.33333%;\n    max-width: 33.33333%;\n  }\n  .col-md-5 {\n    flex: 0 0 41.66667%;\n    max-width: 41.66667%;\n  }\n  .col-md-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    flex: 0 0 58.33333%;\n    max-width: 58.33333%;\n  }\n  .col-md-8 {\n    flex: 0 0 66.66667%;\n    max-width: 66.66667%;\n  }\n  .col-md-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    flex: 0 0 83.33333%;\n    max-width: 83.33333%;\n  }\n  .col-md-11 {\n    flex: 0 0 91.66667%;\n    max-width: 91.66667%;\n  }\n  .col-md-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    order: -1;\n  }\n  .order-md-last {\n    order: 13;\n  }\n  .order-md-0 {\n    order: 0;\n  }\n  .order-md-1 {\n    order: 1;\n  }\n  .order-md-2 {\n    order: 2;\n  }\n  .order-md-3 {\n    order: 3;\n  }\n  .order-md-4 {\n    order: 4;\n  }\n  .order-md-5 {\n    order: 5;\n  }\n  .order-md-6 {\n    order: 6;\n  }\n  .order-md-7 {\n    order: 7;\n  }\n  .order-md-8 {\n    order: 8;\n  }\n  .order-md-9 {\n    order: 9;\n  }\n  .order-md-10 {\n    order: 10;\n  }\n  .order-md-11 {\n    order: 11;\n  }\n  .order-md-12 {\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.33333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.66667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.33333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.66667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.33333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.66667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.33333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.66667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    flex-basis: 0;\n    flex-grow: 1;\n    min-width: 0;\n    max-width: 100%;\n  }\n  .row-cols-lg-1 > * {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-lg-2 > * {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-lg-3 > * {\n    flex: 0 0 33.33333%;\n    max-width: 33.33333%;\n  }\n  .row-cols-lg-4 > * {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-lg-5 > * {\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-lg-6 > * {\n    flex: 0 0 16.66667%;\n    max-width: 16.66667%;\n  }\n  .col-lg-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    flex: 0 0 8.33333%;\n    max-width: 8.33333%;\n  }\n  .col-lg-2 {\n    flex: 0 0 16.66667%;\n    max-width: 16.66667%;\n  }\n  .col-lg-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    flex: 0 0 33.33333%;\n    max-width: 33.33333%;\n  }\n  .col-lg-5 {\n    flex: 0 0 41.66667%;\n    max-width: 41.66667%;\n  }\n  .col-lg-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    flex: 0 0 58.33333%;\n    max-width: 58.33333%;\n  }\n  .col-lg-8 {\n    flex: 0 0 66.66667%;\n    max-width: 66.66667%;\n  }\n  .col-lg-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    flex: 0 0 83.33333%;\n    max-width: 83.33333%;\n  }\n  .col-lg-11 {\n    flex: 0 0 91.66667%;\n    max-width: 91.66667%;\n  }\n  .col-lg-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    order: -1;\n  }\n  .order-lg-last {\n    order: 13;\n  }\n  .order-lg-0 {\n    order: 0;\n  }\n  .order-lg-1 {\n    order: 1;\n  }\n  .order-lg-2 {\n    order: 2;\n  }\n  .order-lg-3 {\n    order: 3;\n  }\n  .order-lg-4 {\n    order: 4;\n  }\n  .order-lg-5 {\n    order: 5;\n  }\n  .order-lg-6 {\n    order: 6;\n  }\n  .order-lg-7 {\n    order: 7;\n  }\n  .order-lg-8 {\n    order: 8;\n  }\n  .order-lg-9 {\n    order: 9;\n  }\n  .order-lg-10 {\n    order: 10;\n  }\n  .order-lg-11 {\n    order: 11;\n  }\n  .order-lg-12 {\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.33333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.66667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.33333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.66667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.33333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.66667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.33333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.66667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    flex-basis: 0;\n    flex-grow: 1;\n    min-width: 0;\n    max-width: 100%;\n  }\n  .row-cols-xl-1 > * {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .row-cols-xl-2 > * {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .row-cols-xl-3 > * {\n    flex: 0 0 33.33333%;\n    max-width: 33.33333%;\n  }\n  .row-cols-xl-4 > * {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .row-cols-xl-5 > * {\n    flex: 0 0 20%;\n    max-width: 20%;\n  }\n  .row-cols-xl-6 > * {\n    flex: 0 0 16.66667%;\n    max-width: 16.66667%;\n  }\n  .col-xl-auto {\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    flex: 0 0 8.33333%;\n    max-width: 8.33333%;\n  }\n  .col-xl-2 {\n    flex: 0 0 16.66667%;\n    max-width: 16.66667%;\n  }\n  .col-xl-3 {\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    flex: 0 0 33.33333%;\n    max-width: 33.33333%;\n  }\n  .col-xl-5 {\n    flex: 0 0 41.66667%;\n    max-width: 41.66667%;\n  }\n  .col-xl-6 {\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    flex: 0 0 58.33333%;\n    max-width: 58.33333%;\n  }\n  .col-xl-8 {\n    flex: 0 0 66.66667%;\n    max-width: 66.66667%;\n  }\n  .col-xl-9 {\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    flex: 0 0 83.33333%;\n    max-width: 83.33333%;\n  }\n  .col-xl-11 {\n    flex: 0 0 91.66667%;\n    max-width: 91.66667%;\n  }\n  .col-xl-12 {\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    order: -1;\n  }\n  .order-xl-last {\n    order: 13;\n  }\n  .order-xl-0 {\n    order: 0;\n  }\n  .order-xl-1 {\n    order: 1;\n  }\n  .order-xl-2 {\n    order: 2;\n  }\n  .order-xl-3 {\n    order: 3;\n  }\n  .order-xl-4 {\n    order: 4;\n  }\n  .order-xl-5 {\n    order: 5;\n  }\n  .order-xl-6 {\n    order: 6;\n  }\n  .order-xl-7 {\n    order: 7;\n  }\n  .order-xl-8 {\n    order: 8;\n  }\n  .order-xl-9 {\n    order: 9;\n  }\n  .order-xl-10 {\n    order: 10;\n  }\n  .order-xl-11 {\n    order: 11;\n  }\n  .order-xl-12 {\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.33333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.66667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.33333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.66667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.33333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.66667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.33333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.66667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 0.9375rem;\n  color: #212529;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\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\n.table .thead-dark th {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #454d55;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\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  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\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  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\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  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\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  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(1.5em + 1.5rem + 2px);\n  padding: 0.75rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0);\n}\n\n.form-control::placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\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}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.75rem + 1px);\n  padding-bottom: calc(0.75rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: 0.75rem 0;\n  margin-bottom: 0;\n  font-size: 1rem;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(1.5em + 1rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: inline-flex;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\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\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\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.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\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\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: calc(1.5em + 1.5rem);\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='%2328a745' 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.375rem) center;\n  background-size: calc(0.75em + 0.75rem) calc(0.75em + 0.75rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: calc(1.5em + 1.5rem);\n  background-position: top calc(0.375em + 0.375rem) right calc(0.375em + 0.375rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc(0.75em + 2.875rem);\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='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, 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='%2328a745' 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\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.75rem) calc(0.75em + 0.75rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\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\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\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: #34ce57;\n  background-color: #34ce57;\n}\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 rgba(40, 167, 69, 0.25);\n}\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: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\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.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\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\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(1.5em + 1.5rem);\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' 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='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: right calc(0.375em + 0.375rem) center;\n  background-size: calc(0.75em + 0.75rem) calc(0.75em + 0.75rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: calc(1.5em + 1.5rem);\n  background-position: top calc(0.375em + 0.375rem) right calc(0.375em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(0.75em + 2.875rem);\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='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' 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='%23dc3545' stroke='none'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.75rem) calc(0.75em + 0.75rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\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\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\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: #e4606d;\n  background-color: #e4606d;\n}\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 rgba(220, 53, 69, 0.25);\n}\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: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: flex;\n  flex-flow: row wrap;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\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  }\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  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\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  }\n  .form-inline .custom-control {\n    align-items: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.75rem 0.75rem;\n  font-size: 1rem;\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}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: 0;\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n  cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\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: #0062cc;\n  border-color: #005cbf;\n}\n\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 rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\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: #545b62;\n  border-color: #4e555b;\n}\n\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 rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\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: #1e7e34;\n  border-color: #1c7430;\n}\n\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 rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\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: #117a8b;\n  border-color: #10707f;\n}\n\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 rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:hover {\n  color: #212529;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  color: #212529;\n  background-color: #e0a800;\n  border-color: #d39e00;\n  box-shadow: 0 0 0 0 rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\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 rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\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: #bd2130;\n  border-color: #b21f2d;\n}\n\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 rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n  box-shadow: 0 0 0 0 rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #212529;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\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 rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\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: #1d2124;\n  border-color: #171a1d;\n}\n\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 rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\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: #007bff;\n  border-color: #007bff;\n}\n\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 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\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: #6c757d;\n  border-color: #6c757d;\n}\n\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 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\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: #28a745;\n  border-color: #28a745;\n}\n\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 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\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: #17a2b8;\n  border-color: #17a2b8;\n}\n\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 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\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: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\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 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\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: #dc3545;\n  border-color: #dc3545;\n}\n\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 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\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: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\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 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\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: #343a40;\n  border-color: #343a40;\n}\n\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 rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: underline;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\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: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item {\n  display: flex;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  display: inline-block;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\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}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\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: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\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\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\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\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\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\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\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\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\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\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\n.dropdown-divider {\n  height: 0;\n  margin: 0.46875rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\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: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1.5rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1.5rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\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\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\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\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\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\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\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\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\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}\n\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\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\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\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  width: 100%;\n}\n\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}\n\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}\n\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}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\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}\n\n.input-group > .custom-file {\n  display: flex;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\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\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: 0.75rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(1.5em + 1rem + 2px);\n}\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.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\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\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.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .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\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\n.custom-control {\n  position: relative;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  left: 0;\n  z-index: -1;\n  width: 1rem;\n  height: 1.25rem;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\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}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\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\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\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\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\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\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 2.25rem;\n}\n\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}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 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}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fff;\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(1.5em + 1.5rem + 2px);\n  padding: 0.75rem 1.75rem 0.75rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\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='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select:-moz-focusring {\n  color: transparent;\n  text-shadow: 0 0 0 #495057;\n}\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.875rem;\n}\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.25rem;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(1.5em + 1.5rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(1.5em + 1.5rem + 2px);\n  margin: 0;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\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 + 1.5rem + 2px);\n  padding: 0.75rem 0.75rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\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 + 1.5rem);\n  padding: 0.75rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: 1rem;\n  padding: 0;\n  background-color: transparent;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0 rgba(0, 123, 255, 0);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0 rgba(0, 123, 255, 0);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0 rgba(0, 123, 255, 0);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\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}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\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}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\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}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\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}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0;\n  margin-left: 0;\n  background-color: #007bff;\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}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\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}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\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}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\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: #fff;\n  background-clip: border-box;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group {\n  border-top: inherit;\n  border-bottom: inherit;\n}\n\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}\n\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}\n\n.card-body {\n  flex: 1 1 auto;\n  min-height: 1px;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n  border-top: 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\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\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\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}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  flex-shrink: 0;\n  width: 100%;\n}\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\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\n.card-deck .card {\n  margin-bottom: 15px;\n}\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  }\n  .card-deck .card {\n    flex: 1 0 0%;\n    margin-right: 15px;\n    margin-bottom: 0;\n    margin-left: 15px;\n  }\n}\n\n.card-group > .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    display: flex;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\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  }\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  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\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  }\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}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\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  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n  border-radius: 0;\n  margin-bottom: -1px;\n}\n\n.pagination {\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 3;\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0);\n}\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\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 3;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\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\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\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\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\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\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}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #fff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #fff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #fff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #fff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #212529;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #212529;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #fff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #212529;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #fff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\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.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\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\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\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\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\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\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\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\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\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\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  line-height: 0;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\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: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\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\n.progress-bar-animated {\n  animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    animation: none;\n  }\n}\n\n.media {\n  display: flex;\n  align-items: flex-start;\n}\n\n.media-body {\n  flex: 1;\n}\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\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: inherit;\n  border-top-right-radius: inherit;\n}\n\n.list-group-item:last-child {\n  border-bottom-right-radius: inherit;\n  border-bottom-left-radius: inherit;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n  border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n  margin-top: -1px;\n  border-top-width: 1px;\n}\n\n.list-group-horizontal {\n  flex-direction: row;\n}\n\n.list-group-horizontal > .list-group-item:first-child {\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item:last-child {\n  border-top-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal > .list-group-item.active {\n  margin-top: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item {\n  border-top-width: 1px;\n  border-left-width: 0;\n}\n\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n  margin-left: -1px;\n  border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    flex-direction: row;\n  }\n  .list-group-horizontal-md > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-md > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl > .list-group-item:first-child {\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item:last-child {\n    border-top-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item.active {\n    margin-top: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item {\n    border-top-width: 1px;\n    border-left-width: 0;\n  }\n  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n    margin-left: -1px;\n    border-left-width: 1px;\n  }\n}\n\n.list-group-flush {\n  border-radius: 0;\n}\n\n.list-group-flush > .list-group-item {\n  border-width: 0 0 1px;\n}\n\n.list-group-flush > .list-group-item:last-child {\n  border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n}\n\na.close.disabled {\n  pointer-events: none;\n}\n\n.toast {\n  max-width: 350px;\n  overflow: hidden;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\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  backdrop-filter: blur(10px);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: flex;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\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\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: transform 0.3s ease-out;\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n  transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  height: min-content;\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  flex-direction: column;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  outline: 0;\n}\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}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\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 #dee2e6;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n  padding: 1rem 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\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 #dee2e6;\n  border-bottom-right-radius: calc(0.3rem - 1px);\n  border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n  margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n    height: min-content;\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    transform: rotate(360deg);\n  }\n}\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: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n  0% {\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    transform: none;\n  }\n}\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: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\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\n.embed-responsive-21by9::before {\n  padding-top: 42.85714%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  flex-direction: row !important;\n}\n\n.flex-column {\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  align-content: center !important;\n}\n\n.align-content-between {\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  align-self: auto !important;\n}\n\n.align-self-start {\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.user-select-all {\n  user-select: all !important;\n}\n\n.user-select-auto {\n  user-select: auto !important;\n}\n\n.user-select-none {\n  user-select: none !important;\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports (position: sticky) {\n  .sticky-top {\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\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\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\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.3125rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.3125rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.3125rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.3125rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.3125rem !important;\n}\n\n.m-2 {\n  margin: 0.625rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.625rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.625rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.625rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.625rem !important;\n}\n\n.m-3 {\n  margin: 0.9375rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 0.9375rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 0.9375rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 0.9375rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 0.9375rem !important;\n}\n\n.m-4 {\n  margin: 1.875rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.875rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.875rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.875rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.875rem !important;\n}\n\n.m-5 {\n  margin: 2.8125rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 2.8125rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 2.8125rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 2.8125rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 2.8125rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.3125rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.3125rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.3125rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.3125rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.3125rem !important;\n}\n\n.p-2 {\n  padding: 0.625rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.625rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.625rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.625rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.625rem !important;\n}\n\n.p-3 {\n  padding: 0.9375rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 0.9375rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 0.9375rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 0.9375rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 0.9375rem !important;\n}\n\n.p-4 {\n  padding: 1.875rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.875rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.875rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.875rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.875rem !important;\n}\n\n.p-5 {\n  padding: 2.8125rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 2.8125rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 2.8125rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 2.8125rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 2.8125rem !important;\n}\n\n.m-n1 {\n  margin: -0.3125rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.3125rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.3125rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.3125rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.3125rem !important;\n}\n\n.m-n2 {\n  margin: -0.625rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.625rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.625rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.625rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.625rem !important;\n}\n\n.m-n3 {\n  margin: -0.9375rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -0.9375rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -0.9375rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -0.9375rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -0.9375rem !important;\n}\n\n.m-n4 {\n  margin: -1.875rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.875rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.875rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.875rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.875rem !important;\n}\n\n.m-n5 {\n  margin: -2.8125rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -2.8125rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -2.8125rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -2.8125rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -2.8125rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.3125rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.3125rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.3125rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.3125rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.3125rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.625rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.625rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.625rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.625rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.625rem !important;\n  }\n  .m-sm-3 {\n    margin: 0.9375rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 0.9375rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 0.9375rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 0.9375rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 0.9375rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.875rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.875rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.875rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.875rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.875rem !important;\n  }\n  .m-sm-5 {\n    margin: 2.8125rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 2.8125rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 2.8125rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 2.8125rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 2.8125rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.3125rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.3125rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.3125rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.3125rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.3125rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.625rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.625rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.625rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.625rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.625rem !important;\n  }\n  .p-sm-3 {\n    padding: 0.9375rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 0.9375rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 0.9375rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 0.9375rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 0.9375rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.875rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.875rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.875rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.875rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.875rem !important;\n  }\n  .p-sm-5 {\n    padding: 2.8125rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 2.8125rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 2.8125rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 2.8125rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 2.8125rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.3125rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.3125rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.3125rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.3125rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.3125rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.625rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.625rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.625rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.625rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.625rem !important;\n  }\n  .m-sm-n3 {\n    margin: -0.9375rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -0.9375rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -0.9375rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -0.9375rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -0.9375rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.875rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.875rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.875rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.875rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.875rem !important;\n  }\n  .m-sm-n5 {\n    margin: -2.8125rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -2.8125rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -2.8125rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -2.8125rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -2.8125rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.3125rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.3125rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.3125rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.3125rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.3125rem !important;\n  }\n  .m-md-2 {\n    margin: 0.625rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.625rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.625rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.625rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.625rem !important;\n  }\n  .m-md-3 {\n    margin: 0.9375rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 0.9375rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 0.9375rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 0.9375rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 0.9375rem !important;\n  }\n  .m-md-4 {\n    margin: 1.875rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.875rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.875rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.875rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.875rem !important;\n  }\n  .m-md-5 {\n    margin: 2.8125rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 2.8125rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 2.8125rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 2.8125rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 2.8125rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.3125rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.3125rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.3125rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.3125rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.3125rem !important;\n  }\n  .p-md-2 {\n    padding: 0.625rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.625rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.625rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.625rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.625rem !important;\n  }\n  .p-md-3 {\n    padding: 0.9375rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 0.9375rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 0.9375rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 0.9375rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 0.9375rem !important;\n  }\n  .p-md-4 {\n    padding: 1.875rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.875rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.875rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.875rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.875rem !important;\n  }\n  .p-md-5 {\n    padding: 2.8125rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 2.8125rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 2.8125rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 2.8125rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 2.8125rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.3125rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.3125rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.3125rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.3125rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.3125rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.625rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.625rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.625rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.625rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.625rem !important;\n  }\n  .m-md-n3 {\n    margin: -0.9375rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -0.9375rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -0.9375rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -0.9375rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -0.9375rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.875rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.875rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.875rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.875rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.875rem !important;\n  }\n  .m-md-n5 {\n    margin: -2.8125rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -2.8125rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -2.8125rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -2.8125rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -2.8125rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.3125rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.3125rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.3125rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.3125rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.3125rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.625rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.625rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.625rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.625rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.625rem !important;\n  }\n  .m-lg-3 {\n    margin: 0.9375rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 0.9375rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 0.9375rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 0.9375rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 0.9375rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.875rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.875rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.875rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.875rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.875rem !important;\n  }\n  .m-lg-5 {\n    margin: 2.8125rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 2.8125rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 2.8125rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 2.8125rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 2.8125rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.3125rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.3125rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.3125rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.3125rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.3125rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.625rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.625rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.625rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.625rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.625rem !important;\n  }\n  .p-lg-3 {\n    padding: 0.9375rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 0.9375rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 0.9375rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 0.9375rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 0.9375rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.875rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.875rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.875rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.875rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.875rem !important;\n  }\n  .p-lg-5 {\n    padding: 2.8125rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 2.8125rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 2.8125rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 2.8125rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 2.8125rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.3125rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.3125rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.3125rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.3125rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.3125rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.625rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.625rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.625rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.625rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.625rem !important;\n  }\n  .m-lg-n3 {\n    margin: -0.9375rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -0.9375rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -0.9375rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -0.9375rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -0.9375rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.875rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.875rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.875rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.875rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.875rem !important;\n  }\n  .m-lg-n5 {\n    margin: -2.8125rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -2.8125rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -2.8125rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -2.8125rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -2.8125rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.3125rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.3125rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.3125rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.3125rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.3125rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.625rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.625rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.625rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.625rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.625rem !important;\n  }\n  .m-xl-3 {\n    margin: 0.9375rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 0.9375rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 0.9375rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 0.9375rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 0.9375rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.875rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.875rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.875rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.875rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.875rem !important;\n  }\n  .m-xl-5 {\n    margin: 2.8125rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 2.8125rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 2.8125rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 2.8125rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 2.8125rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.3125rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.3125rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.3125rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.3125rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.3125rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.625rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.625rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.625rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.625rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.625rem !important;\n  }\n  .p-xl-3 {\n    padding: 0.9375rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 0.9375rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 0.9375rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 0.9375rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 0.9375rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.875rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.875rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.875rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.875rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.875rem !important;\n  }\n  .p-xl-5 {\n    padding: 2.8125rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 2.8125rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 2.8125rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 2.8125rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 2.8125rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.3125rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.3125rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.3125rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.3125rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.3125rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.625rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.625rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.625rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.625rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.625rem !important;\n  }\n  .m-xl-n3 {\n    margin: -0.9375rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -0.9375rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -0.9375rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -0.9375rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -0.9375rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.875rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.875rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.875rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.875rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.875rem !important;\n  }\n  .m-xl-n5 {\n    margin: -2.8125rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -2.8125rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -2.8125rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -2.8125rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -2.8125rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\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\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\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\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: inline-flex !important;\n  }\n}\n\n.flex-row {\n  flex-direction: row !important;\n}\n\n.flex-column {\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  align-content: center !important;\n}\n\n.align-content-between {\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  align-self: auto !important;\n}\n\n.align-self-start {\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    align-self: stretch !important;\n  }\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.3125rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.3125rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.3125rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.3125rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.3125rem !important;\n}\n\n.m-2 {\n  margin: 0.625rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.625rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.625rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.625rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.625rem !important;\n}\n\n.m-3 {\n  margin: 0.9375rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 0.9375rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 0.9375rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 0.9375rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 0.9375rem !important;\n}\n\n.m-4 {\n  margin: 1.875rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.875rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.875rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.875rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.875rem !important;\n}\n\n.m-5 {\n  margin: 2.8125rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 2.8125rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 2.8125rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 2.8125rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 2.8125rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.3125rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.3125rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.3125rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.3125rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.3125rem !important;\n}\n\n.p-2 {\n  padding: 0.625rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.625rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.625rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.625rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.625rem !important;\n}\n\n.p-3 {\n  padding: 0.9375rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 0.9375rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 0.9375rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 0.9375rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 0.9375rem !important;\n}\n\n.p-4 {\n  padding: 1.875rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.875rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.875rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.875rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.875rem !important;\n}\n\n.p-5 {\n  padding: 2.8125rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 2.8125rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 2.8125rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 2.8125rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 2.8125rem !important;\n}\n\n.m-n1 {\n  margin: -0.3125rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.3125rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.3125rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.3125rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.3125rem !important;\n}\n\n.m-n2 {\n  margin: -0.625rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.625rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.625rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.625rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.625rem !important;\n}\n\n.m-n3 {\n  margin: -0.9375rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -0.9375rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -0.9375rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -0.9375rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -0.9375rem !important;\n}\n\n.m-n4 {\n  margin: -1.875rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.875rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.875rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.875rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.875rem !important;\n}\n\n.m-n5 {\n  margin: -2.8125rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -2.8125rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -2.8125rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -2.8125rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -2.8125rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.3125rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.3125rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.3125rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.3125rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.3125rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.625rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.625rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.625rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.625rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.625rem !important;\n  }\n  .m-sm-3 {\n    margin: 0.9375rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 0.9375rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 0.9375rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 0.9375rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 0.9375rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.875rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.875rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.875rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.875rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.875rem !important;\n  }\n  .m-sm-5 {\n    margin: 2.8125rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 2.8125rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 2.8125rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 2.8125rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 2.8125rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.3125rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.3125rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.3125rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.3125rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.3125rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.625rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.625rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.625rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.625rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.625rem !important;\n  }\n  .p-sm-3 {\n    padding: 0.9375rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 0.9375rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 0.9375rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 0.9375rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 0.9375rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.875rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.875rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.875rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.875rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.875rem !important;\n  }\n  .p-sm-5 {\n    padding: 2.8125rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 2.8125rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 2.8125rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 2.8125rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 2.8125rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.3125rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.3125rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.3125rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.3125rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.3125rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.625rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.625rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.625rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.625rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.625rem !important;\n  }\n  .m-sm-n3 {\n    margin: -0.9375rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -0.9375rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -0.9375rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -0.9375rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -0.9375rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.875rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.875rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.875rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.875rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.875rem !important;\n  }\n  .m-sm-n5 {\n    margin: -2.8125rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -2.8125rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -2.8125rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -2.8125rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -2.8125rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.3125rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.3125rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.3125rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.3125rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.3125rem !important;\n  }\n  .m-md-2 {\n    margin: 0.625rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.625rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.625rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.625rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.625rem !important;\n  }\n  .m-md-3 {\n    margin: 0.9375rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 0.9375rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 0.9375rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 0.9375rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 0.9375rem !important;\n  }\n  .m-md-4 {\n    margin: 1.875rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.875rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.875rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.875rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.875rem !important;\n  }\n  .m-md-5 {\n    margin: 2.8125rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 2.8125rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 2.8125rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 2.8125rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 2.8125rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.3125rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.3125rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.3125rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.3125rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.3125rem !important;\n  }\n  .p-md-2 {\n    padding: 0.625rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.625rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.625rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.625rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.625rem !important;\n  }\n  .p-md-3 {\n    padding: 0.9375rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 0.9375rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 0.9375rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 0.9375rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 0.9375rem !important;\n  }\n  .p-md-4 {\n    padding: 1.875rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.875rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.875rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.875rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.875rem !important;\n  }\n  .p-md-5 {\n    padding: 2.8125rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 2.8125rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 2.8125rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 2.8125rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 2.8125rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.3125rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.3125rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.3125rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.3125rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.3125rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.625rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.625rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.625rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.625rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.625rem !important;\n  }\n  .m-md-n3 {\n    margin: -0.9375rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -0.9375rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -0.9375rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -0.9375rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -0.9375rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.875rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.875rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.875rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.875rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.875rem !important;\n  }\n  .m-md-n5 {\n    margin: -2.8125rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -2.8125rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -2.8125rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -2.8125rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -2.8125rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.3125rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.3125rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.3125rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.3125rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.3125rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.625rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.625rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.625rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.625rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.625rem !important;\n  }\n  .m-lg-3 {\n    margin: 0.9375rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 0.9375rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 0.9375rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 0.9375rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 0.9375rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.875rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.875rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.875rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.875rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.875rem !important;\n  }\n  .m-lg-5 {\n    margin: 2.8125rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 2.8125rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 2.8125rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 2.8125rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 2.8125rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.3125rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.3125rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.3125rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.3125rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.3125rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.625rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.625rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.625rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.625rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.625rem !important;\n  }\n  .p-lg-3 {\n    padding: 0.9375rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 0.9375rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 0.9375rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 0.9375rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 0.9375rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.875rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.875rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.875rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.875rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.875rem !important;\n  }\n  .p-lg-5 {\n    padding: 2.8125rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 2.8125rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 2.8125rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 2.8125rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 2.8125rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.3125rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.3125rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.3125rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.3125rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.3125rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.625rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.625rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.625rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.625rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.625rem !important;\n  }\n  .m-lg-n3 {\n    margin: -0.9375rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -0.9375rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -0.9375rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -0.9375rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -0.9375rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.875rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.875rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.875rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.875rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.875rem !important;\n  }\n  .m-lg-n5 {\n    margin: -2.8125rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -2.8125rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -2.8125rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -2.8125rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -2.8125rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.3125rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.3125rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.3125rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.3125rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.3125rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.625rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.625rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.625rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.625rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.625rem !important;\n  }\n  .m-xl-3 {\n    margin: 0.9375rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 0.9375rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 0.9375rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 0.9375rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 0.9375rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.875rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.875rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.875rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.875rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.875rem !important;\n  }\n  .m-xl-5 {\n    margin: 2.8125rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 2.8125rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 2.8125rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 2.8125rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 2.8125rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.3125rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.3125rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.3125rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.3125rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.3125rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.625rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.625rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.625rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.625rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.625rem !important;\n  }\n  .p-xl-3 {\n    padding: 0.9375rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 0.9375rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 0.9375rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 0.9375rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 0.9375rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.875rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.875rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.875rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.875rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.875rem !important;\n  }\n  .p-xl-5 {\n    padding: 2.8125rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 2.8125rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 2.8125rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 2.8125rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 2.8125rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.3125rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.3125rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.3125rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.3125rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.3125rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.625rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.625rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.625rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.625rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.625rem !important;\n  }\n  .m-xl-n3 {\n    margin: -0.9375rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -0.9375rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -0.9375rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -0.9375rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -0.9375rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.875rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.875rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.875rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.875rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.875rem !important;\n  }\n  .m-xl-n5 {\n    margin: -2.8125rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -2.8125rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -2.8125rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -2.8125rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -2.8125rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n"
  },
  {
    "path": "webserver/static/css/style.css",
    "content": "/*\n\n1.  Table of Contents \n2.  Typography\n3.  Structure\n4.  Page Logos\n5.  Highlight Colors\n6.  Header and Page Title\n7.  Footer Menu\n8.  Menu Structure & Design\n9.  General Utility Classes\n10. Preloader\n11. Buttons\n12. Icons\n13. Accordion\n14. Offline Detection\n15. Add to Home\n16. Ads\n17. Alerts\n18. Notifications\n19. Back to Top\n20. Cards\n21. Chips\n22. Dividers\n23. Switches\n24. Radios & Checkboxes\n25. Input Styles\n26. Range Sliders\n27. List Groups\n28. Toasts\n29. Snackbars\n30. Pagination\n31. Search\n32. Tabs\n33. Working Hours\n34. Iframes\n35. Page Calendar\n36. Page Chat\n37. Page Contact\n38. Page Map\n39. Page Media\n40. Page Timeline\n41. Page Interests\n42. Page VCard\n43. Dark Mode Settings\n44. Demo Styles - Can be Removed\n45. Lightbox Plugin\n46. Owl Carousel\n\n*/\n/*Typography Settings*/\nbody {\n  font-size: 13px;\n  font-family: \"Roboto\", sans-serif !important;\n  line-height: 24px !important;\n  color: #727272 !important;\n  background-color: #f8fbfb;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  font-weight: 700;\n  color: #1f1f1f;\n  font-family: \"Inter\", sans-serif !important;\n  margin-bottom: 5px;\n  letter-spacing: -0.8px;\n}\n\nh1 {\n  font-size: 24px;\n  line-height: 30px;\n  padding-bottom: 5px;\n}\n\nh2 {\n  font-size: 21px;\n  line-height: 25px;\n}\n\nh3 {\n  font-size: 20px;\n  line-height: 24px;\n}\n\nh4 {\n  font-size: 18px;\n  line-height: 23px;\n}\n\nh5 {\n  font-size: 16px;\n  line-height: 22px;\n}\n\na {\n  text-decoration: none !important;\n}\n\np {\n  color: #727272;\n  margin-bottom: 30px;\n  padding-bottom: 0px;\n}\n\n.price-sup {\n  display: inline-block;\n  transform: translateY(-10px);\n}\n\nh1 .badge, h2 .badge, h3 .badge, h4 .badge, h5 .badge {\n  transform: translateY(-3px);\n}\n\n/*Page Stucture Settings*/\n#page {\n  overflow-x: hidden;\n  position: relative;\n}\n\n.page-content {\n  position: relative;\n  transition: all 300ms ease;\n  z-index: 90;\n  padding-bottom: 80px;\n  padding-bottom: calc(80px + (constant(safe-area-inset-bottom))*1.1);\n  padding-bottom: calc(80px + (env(safe-area-inset-bottom))*1.1);\n}\n\n.page-content-bg {\n  z-index: 52;\n  position: fixed;\n  top: -1250px;\n  bottom: -1250px;\n  transform: translate3d(0, 0, 0);\n  left: -50px;\n  right: -50px;\n}\n\n.content-box {\n  background-color: #FFFFFF;\n  border-radius: 20px;\n  margin-left: 15px;\n  margin-right: 15px;\n  box-shadow: 0 2px 14px 0 rgba(0, 0, 0, 0.08);\n}\n\n/*Content Boxes*/\n.content {\n  margin: 20px 15px 20px 15px;\n}\n\n.content p:last-child {\n  margin-bottom: 0px;\n}\n\n.content-full {\n  margin: 0px;\n}\n\n.content-boxed {\n  padding: 20px 15px 0px 15px;\n}\n\n/*Logos*/\n.header-logo {\n  background-size: 28px 28px;\n  width: 50px;\n}\n\n.footer .footer-logo {\n  background-size: 80px 80px;\n  height: 80px !important;\n  margin-bottom: 20px !important;\n}\n\n.theme-light .header .header-logo {\n  background-image: url(../images/preload-logo.png);\n}\n\n.theme-dark .header .header-logo {\n  background-image: url(../images/preload-logo.png);\n}\n\n.theme-light .footer .footer-logo {\n  background-image: url(../images/preload-logo.png);\n}\n\n.theme-dark .footer .footer-logo {\n  background-image: url(../images/preload-logo.png);\n}\n\n/* Generating Color Pack*/\n.color-highlight {\n  color: #4A89DC !important;\n}\n\n.bg-highlight {\n  background-color: #4A89DC !important;\n  color: #FFF !important;\n}\n\n.border-highlight {\n  border-color: #4A89DC !important;\n}\n\n.gradient-highlight {\n  background-image: linear-gradient(to bottom, #5D9CEC, #4A89DC) !important;\n}\n\n.gradient-menu {\n  background-image: linear-gradient(130deg, #7ea5f6, #ff384c) !important;\n}\n\n.color-highlight-light {\n  color: #5D9CEC !important;\n}\n\n.bg-highlight-light {\n  background-color: #5D9CEC !important;\n  color: #FFF !important;\n}\n\n.bg-highlight-fade {\n  background-color: !important;\n  color: #FFF !important;\n}\n\n.color-highlight-dark {\n  color: #4A89DC !important;\n}\n\n.color-icon-highlight {\n  stroke: #4A89DC !important;\n  fill: !important;\n}\n\n.bg-highlight-dark {\n  background-color: #4A89DC !important;\n  color: #FFF !important;\n}\n\n.border-highlight-light {\n  border-color: #5D9CEC !important;\n}\n\n.border-highlight-dark {\n  border-color: #4A89DC !important;\n}\n\n.gradient-highlight {\n  background-image: linear-gradient(to bottom, #5D9CEC, #4A89DC);\n}\n\n.color-green-light {\n  color: #A0D468 !important;\n}\n\n.bg-green-light {\n  background-color: #A0D468 !important;\n  color: #FFF !important;\n}\n\n.bg-green-fade {\n  background-color: rgba(140, 193, 82, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-green-dark {\n  color: #8CC152 !important;\n}\n\n.color-icon-green {\n  stroke: #8CC152 !important;\n  fill: rgba(140, 193, 82, 0.3) !important;\n}\n\n.bg-green-dark {\n  background-color: #8CC152 !important;\n  color: #FFF !important;\n}\n\n.border-green-light {\n  border-color: #A0D468 !important;\n}\n\n.border-green-dark {\n  border-color: #8CC152 !important;\n}\n\n.gradient-green {\n  background-image: linear-gradient(to bottom, #A0D468, #8CC152);\n}\n\n.color-red-light {\n  color: #ED5565 !important;\n}\n\n.bg-red-light {\n  background-color: #ED5565 !important;\n  color: #FFF !important;\n}\n\n.bg-red-fade {\n  background-color: rgba(218, 68, 83, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-red-dark {\n  color: #DA4453 !important;\n}\n\n.color-icon-red {\n  stroke: #DA4453 !important;\n  fill: rgba(218, 68, 83, 0.3) !important;\n}\n\n.bg-red-dark {\n  background-color: #DA4453 !important;\n  color: #FFF !important;\n}\n\n.border-red-light {\n  border-color: #ED5565 !important;\n}\n\n.border-red-dark {\n  border-color: #DA4453 !important;\n}\n\n.gradient-red {\n  background-image: linear-gradient(to bottom, #ED5565, #DA4453);\n}\n\n.color-orange-light {\n  color: #FC6E51 !important;\n}\n\n.bg-orange-light {\n  background-color: #FC6E51 !important;\n  color: #FFF !important;\n}\n\n.bg-orange-fade {\n  background-color: rgba(233, 87, 63, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-orange-dark {\n  color: #E9573F !important;\n}\n\n.color-icon-orange {\n  stroke: #E9573F !important;\n  fill: rgba(233, 87, 63, 0.3) !important;\n}\n\n.bg-orange-dark {\n  background-color: #E9573F !important;\n  color: #FFF !important;\n}\n\n.border-orange-light {\n  border-color: #FC6E51 !important;\n}\n\n.border-orange-dark {\n  border-color: #E9573F !important;\n}\n\n.gradient-orange {\n  background-image: linear-gradient(to bottom, #FC6E51, #E9573F);\n}\n\n.color-yellow-light {\n  color: #FFCE54 !important;\n}\n\n.bg-yellow-light {\n  background-color: #FFCE54 !important;\n  color: #FFF !important;\n}\n\n.bg-yellow-fade {\n  background-color: rgba(246, 187, 66, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-yellow-dark {\n  color: #F6BB42 !important;\n}\n\n.color-icon-yellow {\n  stroke: #F6BB42 !important;\n  fill: rgba(246, 187, 66, 0.3) !important;\n}\n\n.bg-yellow-dark {\n  background-color: #F6BB42 !important;\n  color: #FFF !important;\n}\n\n.border-yellow-light {\n  border-color: #FFCE54 !important;\n}\n\n.border-yellow-dark {\n  border-color: #F6BB42 !important;\n}\n\n.gradient-yellow {\n  background-image: linear-gradient(to bottom, #FFCE54, #F6BB42);\n}\n\n.color-blue-light {\n  color: #5D9CEC !important;\n}\n\n.bg-blue-light {\n  background-color: #5D9CEC !important;\n  color: #FFF !important;\n}\n\n.bg-blue-fade {\n  background-color: rgba(74, 137, 220, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-blue-dark {\n  color: #4A89DC !important;\n}\n\n.color-icon-blue {\n  stroke: #4A89DC !important;\n  fill: rgba(74, 137, 220, 0.3) !important;\n}\n\n.bg-blue-dark {\n  background-color: #4A89DC !important;\n  color: #FFF !important;\n}\n\n.border-blue-light {\n  border-color: #5D9CEC !important;\n}\n\n.border-blue-dark {\n  border-color: #4A89DC !important;\n}\n\n.gradient-blue {\n  background-image: linear-gradient(to bottom, #5D9CEC, #4A89DC);\n}\n\n.color-teal-light {\n  color: #A0CECB !important;\n}\n\n.bg-teal-light {\n  background-color: #A0CECB !important;\n  color: #FFF !important;\n}\n\n.bg-teal-fade {\n  background-color: rgba(125, 177, 177, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-teal-dark {\n  color: #7DB1B1 !important;\n}\n\n.color-icon-teal {\n  stroke: #7DB1B1 !important;\n  fill: rgba(125, 177, 177, 0.3) !important;\n}\n\n.bg-teal-dark {\n  background-color: #7DB1B1 !important;\n  color: #FFF !important;\n}\n\n.border-teal-light {\n  border-color: #A0CECB !important;\n}\n\n.border-teal-dark {\n  border-color: #7DB1B1 !important;\n}\n\n.gradient-teal {\n  background-image: linear-gradient(to bottom, #A0CECB, #7DB1B1);\n}\n\n.color-mint-light {\n  color: #48CFAD !important;\n}\n\n.bg-mint-light {\n  background-color: #48CFAD !important;\n  color: #FFF !important;\n}\n\n.bg-mint-fade {\n  background-color: rgba(55, 188, 155, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-mint-dark {\n  color: #37BC9B !important;\n}\n\n.color-icon-mint {\n  stroke: #37BC9B !important;\n  fill: rgba(55, 188, 155, 0.3) !important;\n}\n\n.bg-mint-dark {\n  background-color: #37BC9B !important;\n  color: #FFF !important;\n}\n\n.border-mint-light {\n  border-color: #48CFAD !important;\n}\n\n.border-mint-dark {\n  border-color: #37BC9B !important;\n}\n\n.gradient-mint {\n  background-image: linear-gradient(to bottom, #48CFAD, #37BC9B);\n}\n\n.color-pink-light {\n  color: #EC87C0 !important;\n}\n\n.bg-pink-light {\n  background-color: #EC87C0 !important;\n  color: #FFF !important;\n}\n\n.bg-pink-fade {\n  background-color: rgba(215, 112, 173, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-pink-dark {\n  color: #D770AD !important;\n}\n\n.color-icon-pink {\n  stroke: #D770AD !important;\n  fill: rgba(215, 112, 173, 0.3) !important;\n}\n\n.bg-pink-dark {\n  background-color: #D770AD !important;\n  color: #FFF !important;\n}\n\n.border-pink-light {\n  border-color: #EC87C0 !important;\n}\n\n.border-pink-dark {\n  border-color: #D770AD !important;\n}\n\n.gradient-pink {\n  background-image: linear-gradient(to bottom, #EC87C0, #D770AD);\n}\n\n.color-magenta-light {\n  color: #AC92EC !important;\n}\n\n.bg-magenta-light {\n  background-color: #AC92EC !important;\n  color: #FFF !important;\n}\n\n.bg-magenta-fade {\n  background-color: rgba(150, 122, 220, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-magenta-dark {\n  color: #967ADC !important;\n}\n\n.color-icon-magenta {\n  stroke: #967ADC !important;\n  fill: rgba(150, 122, 220, 0.3) !important;\n}\n\n.bg-magenta-dark {\n  background-color: #967ADC !important;\n  color: #FFF !important;\n}\n\n.border-magenta-light {\n  border-color: #AC92EC !important;\n}\n\n.border-magenta-dark {\n  border-color: #967ADC !important;\n}\n\n.gradient-magenta {\n  background-image: linear-gradient(to bottom, #AC92EC, #967ADC);\n}\n\n.color-brown-light {\n  color: #BAA286 !important;\n}\n\n.bg-brown-light {\n  background-color: #BAA286 !important;\n  color: #FFF !important;\n}\n\n.bg-brown-fade {\n  background-color: rgba(170, 142, 105, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-brown-dark {\n  color: #AA8E69 !important;\n}\n\n.color-icon-brown {\n  stroke: #AA8E69 !important;\n  fill: rgba(170, 142, 105, 0.3) !important;\n}\n\n.bg-brown-dark {\n  background-color: #AA8E69 !important;\n  color: #FFF !important;\n}\n\n.border-brown-light {\n  border-color: #BAA286 !important;\n}\n\n.border-brown-dark {\n  border-color: #AA8E69 !important;\n}\n\n.gradient-brown {\n  background-image: linear-gradient(to bottom, #BAA286, #AA8E69);\n}\n\n.color-gray-light {\n  color: #e2e5ea !important;\n}\n\n.bg-gray-light {\n  background-color: #e2e5ea !important;\n  color: #FFF !important;\n}\n\n.bg-gray-fade {\n  background-color: rgba(170, 178, 189, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-gray-dark {\n  color: #AAB2BD !important;\n}\n\n.color-icon-gray {\n  stroke: #AAB2BD !important;\n  fill: rgba(170, 178, 189, 0.3) !important;\n}\n\n.bg-gray-dark {\n  background-color: #AAB2BD !important;\n  color: #FFF !important;\n}\n\n.border-gray-light {\n  border-color: #e2e5ea !important;\n}\n\n.border-gray-dark {\n  border-color: #AAB2BD !important;\n}\n\n.gradient-gray {\n  background-image: linear-gradient(to bottom, #e2e5ea, #AAB2BD);\n}\n\n.color-dark-light {\n  color: #656D78 !important;\n}\n\n.bg-dark-light {\n  background-color: #656D78 !important;\n  color: #FFF !important;\n}\n\n.bg-dark-fade {\n  background-color: rgba(67, 74, 84, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-dark-dark {\n  color: #434A54 !important;\n}\n\n.color-icon-dark {\n  stroke: #434A54 !important;\n  fill: rgba(67, 74, 84, 0.3) !important;\n}\n\n.bg-dark-dark {\n  background-color: #434A54 !important;\n  color: #FFF !important;\n}\n\n.border-dark-light {\n  border-color: #656D78 !important;\n}\n\n.border-dark-dark {\n  border-color: #434A54 !important;\n}\n\n.gradient-dark {\n  background-image: linear-gradient(to bottom, #656D78, #434A54);\n}\n\n.color-white-light {\n  color: #FFF !important;\n}\n\n.bg-white-light {\n  background-color: #FFF !important;\n  color: #FFF !important;\n}\n\n.bg-white-fade {\n  background-color: rgba(255, 255, 255, 0.7) !important;\n  color: #FFF !important;\n}\n\n.color-white-dark {\n  color: #FFF !important;\n}\n\n.color-icon-white {\n  stroke: #FFF !important;\n  fill: rgba(255, 255, 255, 0.3) !important;\n}\n\n.bg-white-dark {\n  background-color: #FFF !important;\n  color: #FFF !important;\n}\n\n.border-white-light {\n  border-color: #FFF !important;\n}\n\n.border-white-dark {\n  border-color: #FFF !important;\n}\n\n.gradient-white {\n  background-image: linear-gradient(to bottom, #FFF, #FFF);\n}\n\n/*Social Colors*/\n.color-facebook {\n  color: #3b5998 !important;\n}\n\n.bg-facebook {\n  background-color: #3b5998 !important;\n}\n\n.color-linkedin {\n  color: #0077B5 !important;\n}\n\n.bg-linkedin {\n  background-color: #0077B5 !important;\n}\n\n.color-twitter {\n  color: #4099ff !important;\n}\n\n.bg-twitter {\n  background-color: #4099ff !important;\n}\n\n.color-google {\n  color: #d34836 !important;\n}\n\n.bg-google {\n  background-color: #d34836 !important;\n}\n\n.color-whatsapp {\n  color: #34AF23 !important;\n}\n\n.bg-whatsapp {\n  background-color: #34AF23 !important;\n}\n\n.color-pinterest {\n  color: #C92228 !important;\n}\n\n.bg-pinterest {\n  background-color: #C92228 !important;\n}\n\n.color-mail {\n  color: #3498db !important;\n}\n\n.bg-mail {\n  background-color: #3498db !important;\n}\n\n.color-phone {\n  color: #27ae60 !important;\n}\n\n.bg-phone {\n  background-color: #27ae60 !important;\n}\n\n.color-instagram {\n  color: #e1306c !important;\n}\n\n.bg-instagram {\n  background-color: #e1306c !important;\n}\n\n/*Default Colors*/\n.color-white {\n  color: #FFF !important;\n}\n\n.color-black {\n  color: #000 !important;\n}\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n/*--Header---*/\n.header-title span {\n  font-family: \"Inter\", sans-serif;\n}\n\n.footer-title span {\n  font-family: \"Inter\", sans-serif;\n}\n\n.header-logo {\n  color: rgba(0, 0, 0, 0) !important;\n}\n\n.header-logo span {\n  display: none;\n  display: none;\n}\n\n.header {\n  -webkit-backdrop-filter: saturate(180%) blur(20px);\n  backdrop-filter: saturate(180%) blur(20px);\n  background-color: rgba(255, 255, 255, 0.7);\n  position: fixed;\n  top: 0px;\n  left: 0px;\n  right: 0px;\n  height: 50px;\n  z-index: 99;\n  transition: all 300ms ease;\n  border-bottom: solid 1px rgba(0, 0, 0, 0.08);\n}\n\n.header .header-title {\n  position: absolute;\n  height: 50px;\n  line-height: 49px;\n  font-size: 14px;\n  color: #000;\n  font-weight: 600;\n  z-index: 1;\n  font-family: \"Inter\", sans-serif;\n}\n\n.header .header-logo {\n  background-repeat: no-repeat;\n  background-position: center center;\n  height: 100%;\n  position: absolute;\n  z-index: 1;\n  left: 50%;\n}\n\n.header .header-icon {\n  position: absolute;\n  height: 50px;\n  width: 45px;\n  text-align: center;\n  line-height: 49px;\n  font-size: 12px;\n  color: #1f1f1f;\n  border: none;\n  -webkit-appearance: none;\n  appearance: none;\n  background-color: rgba(0, 0, 0, 0) !important;\n}\n\n.header .dropdown-menu {\n  z-index: 99;\n}\n\n.footer .footer-logo {\n  background-repeat: no-repeat;\n  background-position: center center;\n  height: 100%;\n  position: absolute;\n  z-index: 1;\n  left: 50%;\n}\n\n.header-auto-show {\n  opacity: 0;\n  pointer-events: none;\n  transition: all 300ms ease;\n}\n\n.header-active {\n  opacity: 1;\n  pointer-events: all;\n  transition: all 300ms ease;\n}\n\n.header-always-show .header {\n  margin-top: 0px !important;\n}\n\n.header-static {\n  position: relative !important;\n}\n\n.header-transparent {\n  background-color: rgba(0, 0, 0, 0) !important;\n  box-shadow: none !important;\n  border: none !important;\n}\n\n.header-clear {\n  padding-top: 50px;\n}\n\n.header-clear-small {\n  padding-top: 20px;\n}\n\n.header-clear-medium {\n  padding-top: 70px;\n}\n\n.header-clear-large {\n  padding-top: 85px;\n}\n\n.header-icon .badge {\n  position: absolute;\n  margin-left: -5px;\n  color: #FFF !important;\n  width: 16px;\n  text-align: center;\n  line-height: 16px;\n  padding: 0px;\n  padding-left: 1px !important;\n  border-radius: 18px;\n  margin-top: 7px;\n  font-size: 11px;\n}\n\n.header-transparent-light {\n  background-color: rgba(0, 0, 0, 0);\n  box-shadow: none !important;\n}\n\n.header-transparent-light a {\n  color: #FFF;\n}\n\n.header-transparent-dark {\n  background-color: rgba(0, 0, 0, 0);\n  box-shadow: none !important;\n}\n\n.header-transparent-dark a {\n  color: #000;\n}\n\n.header-logo-center .header-icon-1 {\n  left: 0px;\n}\n\n.header-logo-center .header-icon-2 {\n  left: 45px;\n}\n\n.header-logo-center .header-icon-3 {\n  right: 45px;\n}\n\n.header-logo-center .header-icon-4 {\n  right: 0px;\n}\n\n.header-logo-center .header-title {\n  width: 150px;\n  left: 50%;\n  margin-left: -75px;\n  text-align: center;\n}\n\n.header-logo-center .header-logo {\n  background-position: center center;\n  width: 150px !important;\n  left: 50%;\n  margin-left: -75px;\n  text-align: center;\n}\n\n.header-logo-left .header-icon-1 {\n  right: 0px;\n}\n\n.header-logo-left .header-icon-2 {\n  right: 45px;\n}\n\n.header-logo-left .header-icon-3 {\n  right: 90px;\n}\n\n.header-logo-left .header-icon-4 {\n  right: 135px;\n}\n\n.header-logo-left .header-logo {\n  left: 0px !important;\n  margin-left: 0px !important;\n}\n\n.header-logo-left .header-title {\n  left: 15px !important;\n  margin-left: 0px !important;\n}\n\n.header-logo-right .header-icon-1 {\n  left: 0px;\n}\n\n.header-logo-right .header-icon-2 {\n  left: 45px;\n}\n\n.header-logo-right .header-icon-3 {\n  left: 90px;\n}\n\n.header-logo-right .header-icon-4 {\n  left: 135px;\n}\n\n.header-logo-right .header-logo {\n  left: auto !important;\n  right: 20px !important;\n  margin-left: 0px !important;\n}\n\n.header-logo-right .header-title {\n  left: auto !important;\n  right: 20px !important;\n  margin-left: 0px !important;\n}\n\n.header-logo-app .header-icon-1 {\n  left: 0px;\n}\n\n.header-logo-app .header-icon-2 {\n  right: 2px;\n}\n\n.header-logo-app .header-icon-3 {\n  right: 45px;\n}\n\n.header-logo-app .header-icon-4 {\n  right: 90px;\n}\n\n.header-logo-app .header-logo {\n  left: 0px !important;\n  margin-left: 40px !important;\n}\n\n.header-logo-app .header-title {\n  left: 0px !important;\n  margin-left: 50px !important;\n}\n\n.footer-logo span {\n  display: none;\n}\n\n.header-demo {\n  z-index: 98 !important;\n  position: relative;\n}\n\n.is-on-homescreen .notch-clear {\n  padding-top: calc(0px + (constant(safe-area-inset-top))*0.8) !important;\n  padding-top: calc(0px + (env(safe-area-inset-top))*0.8) !important;\n}\n\n.is-on-homescreen .header-clear-notch {\n  padding-top: calc(0px + (constant(safe-area-inset-top))*0.8) !important;\n  padding-top: calc(0px + (env(safe-area-inset-top))*0.8) !important;\n}\n\n.is-on-homescreen .header-clear-small {\n  padding-top: calc(20px + (constant(safe-area-inset-top))*0.8) !important;\n  padding-top: calc(20px + (env(safe-area-inset-top))*0.8) !important;\n}\n\n.is-on-homescreen .header-clear-medium {\n  padding-top: calc(70px + (constant(safe-area-inset-top))*0.8) !important;\n  padding-top: calc(70px + (env(safe-area-inset-top))*0.8) !important;\n}\n\n.is-on-homescreen .header-clear-large {\n  padding-top: calc(85px + (constant(safe-area-inset-top))*0.8) !important;\n  padding-top: calc(85px + (env(safe-area-inset-top))*0.8) !important;\n}\n\n.is-on-homescreen .header {\n  height: calc(50px + (constant(safe-area-inset-top))*0.8) !important;\n  height: calc(50px + (env(safe-area-inset-top))*0.8) !important;\n}\n\n.is-on-homescreen .header-icon {\n  margin-top: calc((constant(safe-area-inset-top))*0.8) !important;\n  margin-top: calc((env(safe-area-inset-top))*0.8) !important;\n}\n\n.is-on-homescreen .header-title {\n  margin-top: calc((constant(safe-area-inset-top))*0.8) !important;\n  margin-top: calc((env(safe-area-inset-top))*0.8) !important;\n}\n\n.is-on-homescreen .page-title {\n  padding-top: calc((constant(safe-area-inset-top))*0.8) !important;\n  padding-top: calc((env(safe-area-inset-top))*0.8) !important;\n}\n\n/*Page Titles*/\n.page-title {\n  display: flex;\n  transition: all 300ms ease;\n  margin-top: 23px;\n  margin-bottom: 30px;\n}\n\n.page-title-fixed {\n  dislay: flex;\n  position: fixed;\n  left: 0px;\n  right: 0px;\n}\n\n.page-title-over {\n  z-index: 99;\n}\n\n.page-title-clear {\n  height: calc(90px + (constant(safe-area-inset-top))*0.8) !important;\n  height: calc(90px + (env(safe-area-inset-top))*0.8) !important;\n}\n\n.page-title h1 {\n  margin-right: auto;\n  font-weight: 700 !important;\n  font-size: 28px;\n  padding-top: 3px;\n  margin-left: 15px;\n}\n\n.page-title div {\n  margin-right: auto;\n}\n\n.page-title p {\n  font-weight: 500;\n  margin-top: -9px;\n  margin-bottom: -10px;\n  margin-left: 15px;\n}\n\n.page-title-icon {\n  float: left;\n  z-index: 2;\n  height: 38px;\n  width: 38px;\n  margin-right: 13.33333px;\n  line-height: 39px;\n  border-radius: 16px;\n  text-align: center;\n}\n\n.page-content-top {\n  position: fixed;\n  left: 0px;\n  right: 0px;\n  z-index: 53;\n}\n\n.page-content-top .owl-carousel {\n  touch-action: pan-x;\n}\n\n/*-Footer Menu-*/\n#footer-bar {\n  position: fixed;\n  bottom: 0px;\n  left: 0px;\n  right: 0px;\n  z-index: 98;\n  -webkit-backdrop-filter: saturate(180%) blur(20px);\n  backdrop-filter: saturate(180%) blur(20px);\n  background-color: rgba(255, 255, 255, 0.7);\n  display: flex;\n  min-height: 61px;\n  border-top: solid 1px rgba(0, 0, 0, 0.05);\n  text-align: center;\n  transition: transform 350ms ease !important;\n}\n\n#footer-bar a {\n  color: #1f1f1f;\n  padding-top: 12px;\n  position: relative;\n  flex: 1 1 auto;\n}\n\n#footer-bar a span {\n  position: relative;\n  z-index: 2;\n  display: block;\n  font-size: 10px;\n  font-weight: 500;\n  margin-top: -6px;\n  opacity: 0.7;\n  font-family: \"Roboto\", sans-serif !important;\n}\n\n#footer-bar a i {\n  font-size: 18px;\n  position: relative;\n  z-index: 2;\n}\n\n#footer-bar a svg {\n  transform: translateY(-6px);\n}\n\n#footer-bar .badge {\n  font-style: normal;\n  z-index: 5;\n  top: 0px;\n  position: absolute;\n  margin-left: 3px;\n  color: #FFF !important;\n  width: 18px;\n  text-align: center;\n  line-height: 18px;\n  padding: 0px;\n  padding-left: 0px !important;\n  border-radius: 18px;\n  margin-top: 7px;\n  font-size: 11px;\n}\n\n.footer-bar-2 .active-nav {\n  color: #FFF !important;\n}\n\n.footer-bar-2 .active-nav strong {\n  background-color: #5D9CEC;\n  position: absolute;\n  width: 80px;\n  left: 50%;\n  transform: translateX(-50%);\n  top: 0px;\n  bottom: 0px;\n}\n\n.footer-bar-4 .active-nav {\n  color: #FFF !important;\n}\n\n.footer-bar-4 .active-nav strong {\n  position: absolute;\n  width: 47px;\n  height: 47px;\n  border-radius: 60px;\n  left: 50%;\n  top: 50%;\n  background-color: #5D9CEC;\n  transform: translate(-50%, -50%);\n  bottom: 0px;\n}\n\n.footer-bar-4 .active-nav i {\n  padding-top: 8px;\n}\n\n.footer-bar-4 span {\n  display: none !important;\n}\n\n.footer-bar-4 i {\n  padding-top: 10px;\n}\n\n.footer-bar-5 .active-nav strong {\n  background-color: #5D9CEC;\n  position: absolute;\n  width: 50px;\n  height: 2px;\n  border-radius: 60px;\n  left: 50%;\n  top: 0px;\n  transform: translateX(-50%);\n}\n\n.footer-bar-1 .active-nav strong {\n  background-color: #5D9CEC;\n  position: absolute;\n  width: 50px;\n  height: 2px;\n  border-radius: 60px;\n  left: 50%;\n  bottom: 0px;\n  transform: translateX(-50%);\n}\n\n.footer-bar-6 u {\n  background-color: rgba(255, 255, 255, 0.2);\n}\n\n.footer-bar-6 {\n  margin-left: -3px;\n}\n\n.footer-bar-6 span {\n  font-size: 11px !important;\n}\n\n.footer-bar-6 i {\n  transform: translateY(-2px);\n  opacity: 0.7;\n}\n\n.footer-bar-6 .circle-nav strong {\n  position: absolute;\n  width: 50px;\n  height: 50px;\n  border-radius: 50px;\n  left: 50%;\n  top: -23px;\n  z-index: 0;\n  transform: translateX(-50%);\n  box-shadow: 0 5px 15px 0 rgba(0, 0, 0, 0.09);\n  animation: footerAni 1s infinite;\n  background-image: linear-gradient(to bottom, #1b55bf 0%, #1740bf 100%) !important;\n}\n\n@keyframes footerAni {\n  0% {\n    transform: scale(1, 1) translateX(-50%);\n  }\n  50% {\n    transform: scale(1.05, 1.05) translateX(-48%);\n  }\n}\n\n.footer-bar-6 .circle-nav span {\n  font-size: 11px !important;\n  margin-top: -8px !important;\n}\n\n.footer-bar-6 .circle-nav i {\n  transform: translateY(-21px) translateX(0px);\n  color: #FFF !important;\n  opacity: 1 !important;\n  font-size: 20px !important;\n  position: relative;\n  z-index: 2;\n}\n\n.footer-bar-6 .circle-nav svg {\n  width: 25px !important;\n  height: 25px !important;\n  stroke: #FFF !important;\n  fill: rgba(255, 255, 255, 0.1) !important;\n  transform: translateY(-25px) translateX(-1px) !important;\n  position: relative;\n  z-index: 2;\n}\n\n.footer-bar-6 .circle-nav u {\n  position: absolute;\n  left: 0px;\n  right: 0px;\n  width: 50px;\n  border-radius: 50px;\n  height: 50px;\n  z-index: 0;\n}\n\n.footer-bar-6 .active-nav em {\n  position: absolute;\n  width: 60px;\n  height: 4px;\n  border-radius: 60px;\n  left: 50%;\n  top: 57px;\n  transform: translateX(-50%);\n  background-image: linear-gradient(to bottom, #1b55bf 0%, #1740bf 100%) !important;\n}\n\n.footer-bar-3 span {\n  display: none !important;\n}\n\n.footer-bar-3 .active-nav {\n  padding-top: 11px !important;\n}\n\n.footer-bar-3 .active-nav span {\n  display: block !important;\n  color: #5D9CEC;\n}\n\n.footer-bar-3 .active-nav i {\n  color: #5D9CEC;\n}\n\n.footer-bar-3 a {\n  padding-top: 18px !important;\n}\n\n.footer-menu-hidden {\n  transition: all 100ms ease;\n  transform: translateY(100%) !important;\n}\n\n.footer-bar-white * {\n  color: #FFF;\n}\n\n#footer-bar.position-relative {\n  z-index: 2 !important;\n}\n\n.is-ios #footer-bar {\n  height: calc(65px + (constant(safe-area-inset-bottom))*1.1);\n  height: calc(65px + (env(safe-area-inset-bottom))*1.1);\n}\n\n.is-not-ios .footer-menu-clear {\n  height: 70px;\n  display: block;\n}\n\n.is-not-ios .footer {\n  padding-bottom: 0px;\n}\n\n.is-not-ios #footer-menu a i {\n  padding-top: 13px;\n}\n\n.is-not-ios #footer-menu a span {\n  opacity: 0.6;\n}\n\n/*Menus & Action Sheets & Modals*/\n/*--Menu System---*/\n.menu-title {\n  position: relative;\n}\n\n.menu-title h1 {\n  font-size: 28px;\n  font-weight: 700;\n  padding: 20px 0px 10px 15px;\n}\n\n.menu-title p {\n  font-weight: 600;\n  font-size: 12px;\n  margin: 15px 0px -25px 15px !important;\n  padding: 0px 0px 0px 0px;\n}\n\n.menu-title a {\n  font-size: 20px;\n  color: #dc3545;\n  position: absolute;\n  text-align: center;\n  width: 55px;\n  right: 0px;\n  top: 50%;\n  margin-top: -13px;\n}\n\n.menu-bg {\n  background-color: #f8fbfb;\n}\n\n.menu-hider {\n  position: fixed;\n  top: -100px;\n  bottom: -100px;\n  left: 0px;\n  right: 0px;\n  background-color: rgba(0, 0, 0, 0.35);\n  z-index: 100;\n  pointer-events: none;\n  opacity: 0;\n  transition: all 300ms ease;\n}\n\n.menu {\n  position: fixed;\n  -webkit-backdrop-filter: saturate(180%) blur(20px);\n  backdrop-filter: saturate(180%) blur(20px);\n  background-color: rgba(255, 255, 255, 0.8);\n  z-index: 101;\n  overflow: scroll;\n  transition: all 300ms ease;\n  -webkit-overflow-scrolling: touch;\n}\n\n.menu .content {\n  margin-bottom: 0px !important;\n}\n\n.menu-box-left {\n  left: 0px;\n  top: 0px !important;\n  width: 250px;\n  height: 100%;\n  bottom: 0px;\n  transform: translate3d(-100%, 0, 0);\n}\n\n.menu-box-right {\n  display: none;\n  right: 0px;\n  transform: translateX(100%);\n  top: 0px !important;\n  height: 100%;\n  bottom: 0px;\n  width: 250px;\n}\n\n.menu-box-top {\n  transform: translate3d(0, -115%, 0);\n  top: 0px;\n  left: 0px;\n  right: 0px;\n  height: 300px;\n}\n\n.menu-box-bottom {\n  bottom: 0px;\n  left: 0px;\n  right: 0px;\n  height: 300px;\n  transform: translate3d(0, 110%, 0);\n}\n\n.menu-box-modal {\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -40%);\n  opacity: 0;\n  pointer-events: none;\n  transition: all 200ms ease;\n}\n\n.menu-box-top.menu-box-detached {\n  top: 10px;\n  left: 10px;\n  right: 10px;\n}\n\n.menu-box-bottom.menu-box-detached {\n  bottom: 20px;\n  left: 10px;\n  right: 10px;\n}\n\n.menu-box-left.menu-active {\n  transform: translate3d(0%, 0, 0) !important;\n}\n\n.menu-box-right.menu-active {\n  transform: translate3d(0%, 0, 0) !important;\n}\n\n.menu-box-top.menu-active {\n  transform: translate3d(0%, 0, 0) !important;\n}\n\n.is-on-homescreen .menu-box-top.menu-active {\n  transform: translate3d(0%, 40px, 0) !important;\n}\n\n.menu-box-bottom.menu-active {\n  transform: translate3d(0%, 20px, 0) !important;\n}\n\n.menu-box-bottom-full.menu-active {\n  transform: translate3d(0%, 0px, 0) !important;\n}\n\n.menu-box-modal.menu-active {\n  transition: all 200ms ease;\n  pointer-events: all !important;\n  opacity: 1 !important;\n  transform: translate(-50%, -50%) !important;\n}\n\n.menu-hider.menu-active {\n  transition: all 300ms ease;\n  opacity: 1;\n  pointer-events: all;\n}\n\n.menu-hider.menu-active.menu-active-clear {\n  background-color: rgba(0, 0, 0, 0) !important;\n}\n\n.menu-box-left[data-menu-effect=\"menu-reveal\"] {\n  opacity: 0;\n  pointer-events: none;\n  transform: translate(0px) !important;\n  z-index: 96;\n}\n\n.menu-box-right[data-menu-effect=\"menu-reveal\"] {\n  opacity: 0;\n  pointer-events: none;\n  transform: translate(0px) !important;\n  z-index: 96;\n}\n\n.menu-active.menu {\n  opacity: 1 !important;\n  transition: all 300ms ease;\n  pointer-events: all !important;\n}\n\n/*Menu Update*/\n#menu-update {\n  background-color: #FFF;\n  position: fixed;\n  z-index: 9999;\n  width: 310px;\n  height: 430px;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  opacity: 0;\n  pointer-events: none;\n  border-radius: 10px;\n  transition: all 300ms ease;\n}\n\n.menu-active {\n  opacity: 1 !important;\n}\n\n.menu-active-no-click {\n  opacity: 1;\n  background-color: rgba(0, 0, 0, 0.7);\n  pointer-events: all !important;\n}\n\n#menu-install-pwa-ios {\n  overflow: visible !important;\n}\n\n.fa-ios-arrow {\n  transform: translateY(4px);\n}\n\n.theme-light .fa-ios-arrow {\n  color: #FFF !important;\n}\n\n.menu-open {\n  overflow: hidden !important;\n}\n\n/*Menu Design*/\n/*Menu*/\n.menu-divider {\n  padding-left: 16px;\n  text-transform: uppercase;\n  font-weight: 700;\n  font-size: 11px;\n  letter-spacing: 0.3px;\n}\n\n.menu-list a {\n  padding-left: 55px;\n  color: #7e8793;\n  font-size: 13px;\n  font-weight: 500;\n  font-family: \"Inter\", sans-serif;\n  line-height: 48px;\n  display: block;\n}\n\n.menu-list a i {\n  font-size: 15px;\n  height: 45px;\n  color: #707883 !important;\n  width: 50px;\n  text-align: center;\n  line-height: 48px;\n  position: absolute;\n  margin-left: -50px;\n}\n\n.menu-list-image a {\n  position: relative;\n}\n\n.menu-list-image {\n  padding-top: 5px;\n  padding-left: 10px;\n}\n\n.menu-list-image img {\n  height: 33px;\n  color: #707883 !important;\n  width: 33px;\n  margin-top: 8px;\n  border-radius: 13px !important;\n  text-align: center;\n  line-height: 45px;\n  position: absolute;\n  margin-left: -47px;\n}\n\n.theme-light .menu .active-nav {\n  font-weight: 700;\n  color: #000 !important;\n}\n\n.theme-dark .menu .active-nav {\n  font-weight: 700;\n  color: #FFF !important;\n}\n\n.menu-list .active-nav i {\n  color: #4A89DC !important;\n}\n\n.menu-content {\n  min-height: 100%;\n}\n\n.menu-list-large a {\n  position: relative;\n  padding-left: 65px;\n  color: #7e8793;\n  font-size: 13px;\n  font-weight: 500;\n  font-family: \"Inter\", sans-serif;\n  line-height: 50px;\n  display: block;\n}\n\n.menu-list-large a span {\n  border-radius: 12px;\n  position: absolute;\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n  text-align: center;\n  left: 18px;\n  top: 50%;\n  margin-top: -15px;\n}\n\n.menu-list-large .badge, .menu-list-image .badge {\n  position: absolute;\n  right: 18px;\n  top: 50%;\n  margin-top: -12px;\n  font-weight: 600;\n  font-size: 10px;\n  padding: 6px 9px;\n  border-radius: 7px;\n}\n\n.menu-list-large .fa-angle-right, .menu-list-image .fa-angle-right {\n  position: absolute;\n  right: 27px;\n  font-size: 10px;\n  opacity: 0.5;\n  margin-top: -6px;\n  top: 50%;\n}\n\n.list-menu {\n  font-family: \"Inter\", sans-serif;\n  margin: 0px 25px 0px 10px;\n}\n\n.list-menu a i:first-child {\n  border-radius: 12px;\n  height: 32px !important;\n  line-height: 33px !important;\n  width: 32px !important;\n  box-shadow: 0 5px 30px 0 rgba(0, 0, 0, 0.11), 0 5px 15px 0 rgba(0, 0, 0, 0.02);\n}\n\n.list-menu a img {\n  border-radius: 12px;\n  height: 32px !important;\n  line-height: 32px !important;\n  width: 32px !important;\n  margin-left: 5px !important;\n  box-shadow: 0 5px 30px 0 rgba(0, 0, 0, 0.11), 0 5px 15px 0 rgba(0, 0, 0, 0.02);\n}\n\n.list-menu a {\n  border: none !important;\n}\n\n.list-menu .badge {\n  padding: 6px 9px !important;\n  font-size: 10px !important;\n  font-weight: 500 !important;\n  margin-right: 2px;\n  transform: translateY(-2px);\n  border: 0px !important;\n  border-radius: 8px;\n}\n\n.list-menu .custom-control {\n  margin-top: -44px !important;\n}\n\n.list-menu span {\n  font-weight: 500;\n  padding-left: 7px;\n  color: #7e8793;\n}\n\n.list-menu .menu-active span {\n  color: #000;\n  font-weight: 700;\n}\n\n/*Sticky Utility / Secondary Classes*/\n/*Rounded Borders*/\n.rounded-0 {\n  border-radius: 0px !important;\n}\n\n.rounded-xs {\n  border-radius: 5px !important;\n}\n\n.rounded-s {\n  border-radius: 8px !important;\n}\n\n.rounded-sm {\n  border-radius: 12px !important;\n}\n\n.rounded-m {\n  border-radius: 20px !important;\n}\n\n.rounded-l {\n  border-radius: 30px !important;\n}\n\n.rounded-xl {\n  border-radius: 50px !important;\n}\n\n/*Shadows*/\n.shadow-none {\n  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0) !important;\n}\n\n.shadow-0 {\n  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0) !important;\n}\n\n.shadow-xs {\n  box-shadow: 0px 0px 5px 2px rgba(0, 0, 0, 0.04) !important;\n}\n\n.shadow-s {\n  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1) !important;\n}\n\n.shadow-m {\n  box-shadow: 0 2px 14px 0 rgba(0, 0, 0, 0.08) !important;\n}\n\n.shadow-l {\n  box-shadow: 0 5px 15px 0 rgba(0, 0, 0, 0.09) !important;\n}\n\n.shadow-xl {\n  box-shadow: 0 5px 30px 0 rgba(0, 0, 0, 0.11), 0 5px 15px 0 rgba(0, 0, 0, 0.02) !important;\n}\n\n.shadow-xxl {\n  box-shadow: 0 5px 30px 0 rgba(0, 0, 0, 0.2), 0 5px 25px 0 rgba(0, 0, 0, 0.2) !important;\n}\n\n/*Line Height Control*/\n.line-height-xs {\n  line-height: 14px !important;\n}\n\n.line-height-s {\n  line-height: 17px !important;\n}\n\n.line-height-m {\n  line-height: 24px !important;\n}\n\n.line-height-l {\n  line-height: 26px !important;\n}\n\n.line-height-xl {\n  line-height: 37px !important;\n}\n\n.line-height-xxl {\n  line-height: 45px !important;\n}\n\n/*Text Shadow*/\n.text-shadow-s {\n  text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.4);\n}\n\n.text-shadow-l {\n  text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.4);\n}\n\n/*Boxed Text*/\n.boxed-text-xl, .boxed-text-l, .boxed-text-m, .boxed-text-s {\n  display: block;\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.boxed-text-xl {\n  width: 90%;\n  max-width: 340px;\n}\n\n.boxed-text-l {\n  width: 85%;\n  max-width: 300px;\n}\n\n.boxed-text-m {\n  width: 80%;\n  max-width: 300px;\n}\n\n.boxed-text-s {\n  width: 70%;\n  max-width: 260px;\n}\n\n.border-xs {\n  border: solid 1px !important;\n}\n\n.border-s {\n  border: solid 2px !important;\n}\n\n.border-m {\n  border: solid 3px !important;\n}\n\n.border-l {\n  border: solid 4px !important;\n}\n\n.border-xl {\n  border: solid 5px !important;\n}\n\n/*Font Weights*/\n.font-200 {\n  font-weight: 200;\n}\n\n.font-300 {\n  font-weight: 300;\n}\n\n.font-400 {\n  font-weight: 400;\n}\n\n.font-500 {\n  font-weight: 500;\n}\n\n.font-600 {\n  font-weight: 600;\n}\n\n.font-700 {\n  font-weight: 700;\n}\n\n.font-800 {\n  font-weight: 800;\n}\n\n.font-900 {\n  font-weight: 900;\n}\n\n/*Opacity Values - Used for Contrasting Text, example opacity-30 will make the opacity 0.3*/\n.opacity-0 {\n  opacity: 0;\n}\n\n.opacity-10 {\n  opacity: 0.1;\n}\n\n.opacity-20 {\n  opacity: 0.2;\n}\n\n.opacity-30 {\n  opacity: 0.3;\n}\n\n.opacity-40 {\n  opacity: 0.4;\n}\n\n.opacity-50 {\n  opacity: 0.5;\n}\n\n.opacity-60 {\n  opacity: 0.6;\n}\n\n.opacity-70 {\n  opacity: 0.7;\n}\n\n.opacity-80 {\n  opacity: 0.8;\n}\n\n.opacity-85 {\n  opacity: 0.85;\n}\n\n.opacity-90 {\n  opacity: 0.9;\n}\n\n/*Font Array - Better Typography Control, example font-30 class will make the font size 30px*/\n.font-8 {\n  font-size: 8px !important;\n}\n\n.font-9 {\n  font-size: 9px !important;\n}\n\n.font-10 {\n  font-size: 10px !important;\n}\n\n.font-11 {\n  font-size: 11px !important;\n}\n\n.font-12 {\n  font-size: 12px !important;\n}\n\n.font-13 {\n  font-size: 13px !important;\n}\n\n.font-14 {\n  font-size: 14px !important;\n}\n\n.font-15 {\n  font-size: 15px !important;\n}\n\n.font-16 {\n  font-size: 16px !important;\n}\n\n.font-17 {\n  font-size: 17px !important;\n}\n\n.font-18 {\n  font-size: 18px !important;\n}\n\n.font-19 {\n  font-size: 19px !important;\n}\n\n.font-20 {\n  font-size: 20px !important;\n}\n\n.font-21 {\n  font-size: 21px !important;\n}\n\n.font-22 {\n  font-size: 22px !important;\n}\n\n.font-23 {\n  font-size: 23px !important;\n}\n\n.font-24 {\n  font-size: 24px !important;\n}\n\n.font-25 {\n  font-size: 25px !important;\n}\n\n.font-26 {\n  font-size: 26px !important;\n}\n\n.font-27 {\n  font-size: 27px !important;\n}\n\n.font-28 {\n  font-size: 28px !important;\n}\n\n.font-29 {\n  font-size: 29px !important;\n}\n\n.font-30 {\n  font-size: 30px !important;\n}\n\n.font-31 {\n  font-size: 31px !important;\n}\n\n.font-32 {\n  font-size: 32px !important;\n}\n\n.font-33 {\n  font-size: 33px !important;\n}\n\n.font-34 {\n  font-size: 34px !important;\n}\n\n.font-35 {\n  font-size: 35px !important;\n}\n\n.font-36 {\n  font-size: 36px !important;\n}\n\n.font-37 {\n  font-size: 37px !important;\n}\n\n.font-38 {\n  font-size: 38px !important;\n}\n\n.font-39 {\n  font-size: 39px !important;\n}\n\n.font-40 {\n  font-size: 40px !important;\n}\n\n.font-41 {\n  font-size: 41px !important;\n}\n\n.font-42 {\n  font-size: 42px !important;\n}\n\n.font-43 {\n  font-size: 43px !important;\n}\n\n.font-44 {\n  font-size: 44px !important;\n}\n\n.font-45 {\n  font-size: 45px !important;\n}\n\n.font-46 {\n  font-size: 46px !important;\n}\n\n.font-47 {\n  font-size: 47px !important;\n}\n\n.font-48 {\n  font-size: 48px !important;\n}\n\n.font-49 {\n  font-size: 49px !important;\n}\n\n.font-50 {\n  font-size: 50px !important;\n}\n\n/*Rotate*/\n.rotate-45 {\n  transform-origin: center;\n  transform: rotate(45deg) !important;\n}\n\n.rotate-90 {\n  transform-origin: center;\n  transform: rotate(90deg) !important;\n}\n\n.rotate-135 {\n  transform-origin: center;\n  transform: rotate(135deg) !important;\n}\n\n.rotate-180 {\n  transform-origin: center;\n  transform: rotate(180deg) !important;\n}\n\n.rotate-225 {\n  transform-origin: center;\n  transform: rotate(225deg) !important;\n}\n\n.rotate-270 {\n  transform-origin: center;\n  transform: rotate(270deg) !important;\n}\n\n.rotate-315 {\n  transform-origin: center;\n  transform: rotate(315deg) !important;\n}\n\n/*Scaling Animation*/\n@keyframes scale-animation {\n  0% {\n    transform: scale(1, 1);\n  }\n  50% {\n    transform: scale(1.05, 1.05);\n  }\n  0% {\n    transform: scale(1, 1);\n  }\n}\n\n.scale-box {\n  animation: scale-animation 1.5s;\n  animation-iteration-count: infinite;\n}\n\n@keyframes scale-icon {\n  0% {\n    transform: scale(1, 1);\n  }\n  50% {\n    transform: scale(1.3, 1.3);\n  }\n  0% {\n    transform: scale(1, 1);\n  }\n}\n\n.scale-icon {\n  animation: scale-icon 1.5s;\n  animation-iteration-count: infinite;\n}\n\n/*Control Classes*/\n::-webkit-scrollbar {\n  display: none;\n}\n\nimg.mx-auto {\n  display: block;\n}\n\n.disabled {\n  display: none !important;\n}\n\n.no-click {\n  pointer-events: none !important;\n}\n\n.no-outline {\n  outline: none !important;\n}\n\n.fixed-height-page {\n  overflow-y: hidden !important;\n  min-height: 100% !important;\n}\n\n/*Prealoder*/\n#preloader {\n  position: fixed;\n  top: 0px;\n  left: 0px;\n  right: 0px;\n  bottom: 0px;\n  z-index: 99999;\n  transition: all 150ms ease;\n}\n\n#preloader .spinner-border {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  margin-left: -15px;\n}\n\n.preloader-hide {\n  opacity: 0;\n  pointer-events: none;\n}\n\n.theme-light #preloader {\n  background-color: #FFF;\n}\n\n.theme-dark #preloader {\n  background-color: #0f1117;\n}\n\n/*Buttons*/\n.btn {\n  font-family: \"Inter\", sans-serif;\n  transition: all 300ms ease;\n  color: #FFF;\n}\n\n.btn:hover {\n  opacity: 0.9;\n  color: #FFF;\n}\n\n.btn-full {\n  display: block;\n}\n\n.btn-xxs, .btn-xs, .btn-s, .btn-sm, .btn-m, .btn-l {\n  font-size: 12px;\n}\n\n.btn-xxs {\n  padding: 6px 10px !important;\n}\n\n.btn-xs {\n  padding: 7px 14px !important;\n}\n\n.btn-s {\n  padding: 8px 18px !important;\n}\n\n.btn-sm {\n  padding: 10px 18px !important;\n}\n\n.btn-m {\n  padding: 13px 20px !important;\n}\n\n.btn-l {\n  padding: 14px 26px !important;\n}\n\n.btn-xl {\n  padding: 15px 30px !important;\n  font-size: 15px !important;\n}\n\n.btn-xxl {\n  padding: 17px 34px !important;\n  font-size: 17px !important;\n}\n\n.btn-uppercase {\n  text-transform: uppercase;\n}\n\n.btn-center-xs {\n  width: 100px;\n  margin: 0 auto;\n  display: block;\n}\n\n.btn-center-s {\n  width: 120px;\n  margin: 0 auto;\n  display: block;\n}\n\n.btn-center-m {\n  width: 160px;\n  margin: 0 auto;\n  display: block;\n}\n\n.btn-center-l {\n  width: 220px;\n  margin: 0 auto;\n  display: block;\n}\n\n.btn-center-xl {\n  width: 250px;\n  margin: 0 auto;\n  display: block;\n}\n\n.btn.bg-highlight {\n  color: #FFF;\n}\n\n.btn-3d {\n  transition: all 150ms ease;\n  border: none;\n  border-bottom: solid 4px;\n}\n\n.btn-3d:hover {\n  border-width: 2px !important;\n}\n\n.btn:focus {\n  outline: none !important;\n}\n\n.btn-margins {\n  margin-left: 17px;\n  margin-right: 17px;\n  margin-bottom: 30px;\n}\n\n.under-slider-btn {\n  z-index: 50;\n  position: relative;\n  margin-top: -20px;\n}\n\n.btn-icon:hover {\n  color: #FFF;\n}\n\n.btn-icon {\n  padding-left: 50px !important;\n  overflow: hidden;\n  position: relative;\n}\n\n.btn-icon i {\n  position: absolute;\n  left: 0px;\n  top: 0px;\n  line-height: 43px;\n  width: 40px;\n  height: 100%;\n  background-color: rgba(0, 0, 0, 0.1);\n}\n\n/*Icons*/\n.icon:hover {\n  color: #FFF;\n}\n\n.icon {\n  display: inline-block;\n  position: relative;\n  text-align: center;\n  color: #FFF;\n}\n\n.icon-xxs i {\n  width: 32px;\n  line-height: 32px;\n  font-size: 13px;\n}\n\n.icon-xs i {\n  width: 38px;\n  line-height: 38px;\n  font-size: 14px;\n}\n\n.icon-sm i {\n  width: 40px;\n  line-height: 40px;\n  font-size: 15px;\n}\n\n.icon-s i {\n  width: 40px;\n  line-height: 40px;\n  font-size: 15px;\n}\n\n.icon-m i {\n  width: 45px;\n  line-height: 45px;\n  font-size: 16px;\n}\n\n.icon-l i {\n  width: 51px;\n  line-height: 51px;\n  font-size: 17px;\n}\n\n.icon-xl i {\n  width: 55px;\n  line-height: 55px;\n  font-size: 18px;\n}\n\n.icon-xxl i {\n  width: 60px;\n  line-height: 60px;\n  font-size: 19px;\n}\n\n.icon-center {\n  display: block;\n  margin: 0 auto;\n}\n\n.icon-border {\n  border: solid 1px;\n  color: inherit;\n}\n\n.icon-20 {\n  width: 20px;\n}\n\n.icon-30 {\n  width: 30px;\n}\n\n.icon-40 {\n  width: 40px;\n}\n\n.icon-50 {\n  width: 50px;\n}\n\n.icon-60 {\n  width: 60px;\n}\n\n.icon-70 {\n  width: 70px;\n}\n\n.icon-80 {\n  width: 80px;\n}\n\n.icon-90 {\n  width: 90px;\n}\n\n/*Accordion Settings*/\n.accordion * {\n  outline: 0 !important;\n  box-shadow: 0px !important;\n  box-shadow: none !important;\n}\n\n.accordion .btn:first-child {\n  width: 100%;\n}\n\n.accordion .card {\n  transition: all 0ms ease !important;\n}\n\n.accordion button {\n  transition: all 0ms ease !important;\n}\n\n.accordion [data-card-height] button {\n  width: 100%;\n}\n\n.btn.accordion-btn i:first-child {\n  width: 18px;\n  text-align: center;\n}\n\n.btn.accordion-btn {\n  text-align: left !important;\n  padding: 15px 17px;\n  font-size: 13px;\n  font-weight: 700;\n}\n\n.accordion-icon {\n  float: right;\n  transition: all 250ms ease;\n  margin-top: 5px;\n}\n\n[aria-expanded=\"true\"] .fa-plus {\n  transform: rotate(45deg);\n}\n\n[aria-expanded=\"true\"] .fa-arrow-down {\n  transform: rotate(180deg);\n}\n\n[aria-expanded=\"true\"] .fa-chevron-down {\n  transform: rotate(180deg);\n}\n\n[aria-expanded=\"true\"] .fa-angle-down {\n  transform: rotate(180deg);\n}\n\n/*Offline Detector*/\n.offline-message {\n  position: fixed;\n  transform: translateY(-200%);\n  padding-bottom: 0px;\n  text-align: center;\n  text-transform: uppercase;\n  font-weight: 900;\n  transition: all 300ms ease;\n  top: 0px;\n  left: 0px;\n  right: 0px;\n  z-index: 9999;\n  line-height: 55px;\n}\n\n.online-message {\n  position: fixed;\n  transform: translateY(-200%);\n  padding-bottom: 0px;\n  text-align: center;\n  text-transform: uppercase;\n  font-weight: 900;\n  transition: all 300ms ease;\n  top: 0px;\n  left: 0px;\n  right: 0px;\n  z-index: 9999;\n  line-height: 55px;\n}\n\n.is-on-homescreen .offline-message {\n  padding-top: 30px !important;\n}\n\n.is-on-homescreen .online-message {\n  padding-top: 30px !important;\n}\n\n.offline-message-active {\n  transform: translateY(0%);\n}\n\n.online-message-active {\n  transform: translateY(0%);\n}\n\n/*---Added to Home---*/\n.add-to-home-visible {\n  opacity: 1 !important;\n  pointer-events: all !important;\n}\n\n.add-to-home {\n  position: fixed;\n  background-color: #000;\n  z-index: 99;\n  left: 15px;\n  right: 15px;\n  border-radius: 10px;\n  height: 80px;\n  opacity: 0;\n  pointer-events: none;\n  transition: all 250ms ease;\n}\n\n.add-to-home .close-add-to-home {\n  pointer-events: none;\n}\n\n.add-to-home h1 {\n  position: absolute;\n  padding-left: 75px;\n  padding-top: 8px;\n  color: #FFF;\n  font-size: 13px;\n}\n\n.add-to-home p {\n  color: #ced4da;\n  position: absolute;\n  font-size: 11px;\n  padding-right: 20px;\n  padding-left: 75px;\n  padding-top: 35px;\n  line-height: 14px;\n}\n\n.add-to-home img {\n  width: 45px;\n  margin-top: 17px;\n  margin-left: 15px;\n}\n\n.add-to-home-ios {\n  bottom: 25px;\n}\n\n.add-to-home-ios i {\n  width: 40px;\n  text-align: center;\n  position: absolute;\n  font-size: 30px;\n  left: 50%;\n  bottom: -18px !important;\n  margin-left: -21px;\n  transform: rotate(180deg);\n  color: #000;\n  display: block;\n}\n\n.add-to-home-ios .close-add-to-home i {\n  color: #e34e47 !important;\n}\n\n.add-to-home-ios .close-add-to-home {\n  position: absolute;\n  right: 13px;\n  top: 13px;\n  transform: scale(0.5, 0.5);\n}\n\n.add-to-home-android {\n  top: 20px;\n}\n\n.add-to-home-android i {\n  width: 40px;\n  text-align: center;\n  position: absolute;\n  top: -18px;\n  right: 15px;\n  font-size: 30px;\n  margin-left: -20px;\n  color: #000;\n  display: block;\n}\n\n.add-to-home-android .close-add-to-home i {\n  color: #e34e47 !important;\n}\n\n.add-to-home-android .close-add-to-home {\n  position: absolute;\n  right: 2px;\n  top: 20px;\n  transform: scale(0.5, 0.5);\n}\n\n.show-on-homescreen {\n  display: none;\n}\n\n.is-on-homescreen .show-on-homescreen {\n  display: block !important;\n}\n\n/*Ads*/\n.ad-300x50 {\n  margin: 0 auto;\n  width: 300px;\n  height: 50px;\n}\n\n.ad-300x250 {\n  margin: 0 auto;\n  width: 300px;\n  height: 250px;\n}\n\n.ad-300x50-fixed {\n  left: 50%;\n  margin-left: -150px;\n  bottom: 60px;\n  bottom: calc(85px + (constant(safe-area-inset-bottom))*1.1) !important;\n  bottom: calc(85px + (env(safe-area-inset-bottom))*1.1) !important;\n  position: fixed;\n  z-index: 90;\n}\n\n.ad-time-close {\n  position: absolute;\n  right: 10px;\n  top: 10px;\n  width: 30px;\n  height: 30px;\n  line-height: 27px;\n  text-align: center;\n  border: solid 2px;\n  border-radius: 30px;\n}\n\n/*Scroll Fixed Ads*/\n.scroll-ad-visible {\n  transform: translateY(0%) !important;\n}\n\n.is-on-homescreen .scroll-ad {\n  bottom: 110px;\n}\n\n.scroll-ad {\n  position: fixed;\n  bottom: 75px;\n  left: 10px;\n  right: 10px;\n  background-color: #FFF;\n  z-index: 93;\n  height: 80px;\n  box-shadow: 0px 0px 5px 2px rgba(0, 0, 0, 0.04);\n  border-radius: 12px;\n  transform: translateY(150%);\n  transition: all 300ms ease;\n}\n\n.scroll-ad img {\n  width: 60px;\n  position: absolute;\n  margin: 10px;\n  border-radius: 10px;\n}\n\n.scroll-ad h1 {\n  display: block;\n  font-size: 18px;\n  padding: 7px 0px 0px 80px;\n  margin-bottom: -3px;\n}\n\n.scroll-ad em {\n  padding: 0px 85px 0px 80px;\n  font-style: normal;\n  font-size: 11px;\n  opacity: 0.7;\n  display: block;\n  line-height: 15px;\n}\n\n.scroll-ad a {\n  width: 60px;\n  font-size: 9px;\n  right: 15px;\n  text-transform: uppercase;\n  text-align: center;\n  font-weight: 700;\n  position: absolute;\n  top: 50%;\n  border-radius: 5px;\n  transform: translateY(-50%);\n}\n\n.alert h4 {\n  padding-left: 47px;\n  margin-bottom: -5px;\n}\n\n.alert button {\n  position: absolute;\n  right: 0px;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 50px;\n  text-align: center;\n}\n\n.alert button span {\n  background-color: transparent;\n}\n\n.alert button:active {\n  box-shadow: none !important;\n  border: none !important;\n  outline: none !important;\n}\n\n.alert button:focus {\n  box-shadow: none !important;\n  border: none !important;\n  outline: none !important;\n}\n\n.alert span {\n  background-color: rgba(255, 255, 255, 0.2);\n  position: absolute;\n  left: -1px;\n  top: -1px;\n  bottom: -1px;\n  width: 47px;\n}\n\n.alert span i {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n.alert strong {\n  padding-left: 47px;\n  font-weight: 400;\n}\n\n.alert-content button {\n  top: 35px !important;\n}\n\n/*Notifications*/\n.notification {\n  position: fixed;\n  top: 10px;\n  left: 10px;\n  right: 10px;\n  z-index: 101;\n  border-radius: 10px;\n  -webkit-backdrop-filter: saturate(180%) blur(20px);\n  backdrop-filter: saturate(180%) blur(20px);\n  transform: translateY(-120%);\n  transition: all 250ms ease;\n}\n\n.notification .notification-icon {\n  padding: 5px 5px;\n  display: block;\n  background-color: #343a40;\n}\n\n.notification .notification-icon i:first-child {\n  margin: 0px 5px 0px 10px;\n  font-size: 10px;\n}\n\n.notification .notification-icon i:last-child {\n  position: absolute;\n  right: 0px;\n  line-height: 30px;\n  width: 40px;\n  text-align: center;\n}\n\n.notification .notification-icon em {\n  font-size: 11px;\n  text-transform: uppercase;\n  font-style: normal;\n}\n\n.notification h1 {\n  margin: 10px 15px -7px 15px;\n}\n\n.notification p {\n  line-height: 15px;\n  margin: 5px 15px 18px 15px;\n  color: #FFF;\n}\n\n.notification.show {\n  transform: translateY(0%) !important;\n}\n\n.is-ios.is-on-homescreen .notification.show {\n  transform: translateY(30px) !important;\n}\n\n.notification-android {\n  left: 5px;\n  right: 5px;\n  top: 5px;\n  border-radius: 3px;\n}\n\n.notification-android i {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-55%);\n  width: 35px;\n  margin-left: 15px;\n  line-height: 35px;\n  border-radius: 35px;\n  text-align: center;\n  font-size: 13px;\n}\n\n.notification-android h1 {\n  padding-left: 55px;\n}\n\n.notification-android p {\n  padding-right: 60px;\n  padding-left: 55px;\n  font-size: 12px;\n}\n\n.notification-android strong {\n  position: absolute;\n  right: 20px;\n  top: 20px;\n  font-size: 10px;\n  font-weight: 400;\n  font-style: normal;\n}\n\n.notification-android .notification-buttons {\n  width: 100%;\n  margin-left: 70px;\n  padding-top: 5px;\n  border-top: solid 1px rgba(255, 255, 255, 0.1);\n}\n\n.notification-android .notification-buttons i {\n  opacity: 0.6;\n  font-size: 11px;\n  position: relative;\n  float: left;\n  margin: 0px 10px 0px 0px;\n  width: auto;\n  transform: translateY(-22px);\n}\n\n.notification-android a {\n  font-size: 11px;\n  color: #FFF;\n  text-transform: uppercase;\n  text-align: left;\n  font-weight: 500;\n}\n\n.notification-material {\n  left: 0px;\n  right: 0px;\n  top: 0px;\n  border-radius: 0px;\n}\n\n.notification-material strong {\n  font-size: 10px;\n  font-weight: 400;\n}\n\n.notification-material em {\n  text-transform: none !important;\n}\n\n.notification-material .notification-icon {\n  background-color: rgba(0, 0, 0, 0) !important;\n  margin-bottom: -15px;\n}\n\n.notification-material img {\n  position: absolute;\n  width: 50px;\n  border-radius: 50px;\n  right: 20px;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n.notification-material p {\n  padding-right: 50px;\n}\n\n/*Back to Top*/\n.content .back-to-top-badge {\n  transform: translate(0, 0) !important;\n  width: 130px;\n  margin: 10px auto 20px auto !important;\n  left: auto;\n  bottom: auto;\n  display: block;\n  position: relative !important;\n}\n\n.content .back-to-top-icon {\n  transform: scale(1, 1) translate(0, 0px) !important;\n  margin: 0px auto 30px auto;\n  right: auto;\n  bottom: auto;\n  display: block;\n  position: relative !important;\n}\n\n.back-to-top-badge {\n  position: fixed;\n  z-index: 90;\n  bottom: 80px;\n  left: 50%;\n  transform: translate(-50%, 70px);\n  display: inline-block;\n  padding: 5px 20px;\n  border-radius: 35px;\n  color: #FFF;\n  text-align: center;\n  font-size: 12px;\n  transition: all 300ms ease;\n}\n\n.back-to-top-badge i {\n  padding: 0px 10px 0px 0px;\n}\n\n.back-to-top-icon {\n  position: fixed;\n  z-index: 9999;\n  bottom: 70px;\n  right: 15px;\n  display: inline-block;\n  width: 35px;\n  line-height: 35px;\n  border-radius: 35px;\n  color: #FFF;\n  text-align: center;\n  font-size: 12px;\n  transform: scale(0, 0);\n  transition: all 300ms ease;\n}\n\n.back-to-top-icon span {\n  display: none;\n}\n\n.back-to-top-badge.back-to-top-visible {\n  transform: translate(-50%, 0px);\n}\n\n.back-to-top-icon.back-to-top-visible {\n  transform: scale(1, 1);\n}\n\n.back-to-top-icon-square {\n  border-radius: 0px;\n}\n\n.back-to-top-icon-round {\n  border-radius: 5px;\n}\n\n.back-to-top-icon-circle {\n  border-radius: 40px;\n}\n\n/*Extending Cards Features*/\n.row {\n  margin-bottom: 30px;\n}\n\n.card {\n  -webkit-transform: translate3d(0, 0, 0);\n  background-size: cover;\n  border: 0px !important;\n  max-height: 150000px;\n  margin-bottom: 30px;\n  background-position: center center !important;\n}\n\n.cover-slider .card {\n  margin-bottom: 0px !important;\n}\n\n[data-card-height=\"cover\"].card {\n  margin-bottom: 0px !important;\n}\n\n.card-style {\n  overflow: hidden;\n  margin: 0px 15px 30px 15px;\n  border-radius: 20px;\n  border: none;\n  box-shadow: 0 4px 24px 0 rgba(0, 0, 0, 0.1);\n}\n\n.card-style .card-body {\n  padding: 15px;\n}\n\n.card-style .card-overlay {\n  border-radius: 20px;\n}\n\n.card-style-full {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n\n.card-body {\n  z-index: 2;\n}\n\n.card-header {\n  z-index: 2;\n}\n\n.card-footer {\n  z-index: 2;\n}\n\n.card-top {\n  z-index: 2;\n  position: absolute;\n  left: 0px;\n  right: 0px;\n  top: 0px;\n}\n\n.card-bottom {\n  z-index: 2;\n  position: absolute;\n  left: 0px;\n  right: 0px;\n  bottom: 0px;\n}\n\n.card-center {\n  z-index: 2;\n  position: absolute;\n  left: 0px;\n  right: 0px;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n.card-overlay {\n  left: 0px;\n  right: 0px;\n  top: 0px;\n  bottom: 0px;\n  position: absolute;\n  z-index: 1;\n}\n\n.card-image {\n  display: block;\n  width: 100%;\n  min-height: 250px;\n  overflow: hidden;\n  position: absolute;\n  width: 100%;\n}\n\n.card-image img {\n  transition: all 450ms ease;\n}\n\n.card-fixed {\n  position: fixed;\n  left: 0px;\n  right: 0px;\n}\n\n.card-clear {\n  pointer-events: none;\n  margin-bottom: -30px;\n  opacity: 0;\n}\n\n.card-overflow {\n  overflow: visible !important;\n  z-index: 20;\n}\n\n[data-card-height] p {\n  padding-bottom: 0px;\n}\n\n/*Card Effects*/\n.card-scale-image {\n  transform: scale(1.05, 1.05) !important;\n}\n\n.card-rotate-image {\n  transform: rotate(5deg) scale(1.2, 1.2) !important;\n}\n\n.card-grayscale-image {\n  filter: grayscale(100%);\n}\n\n.card-blur-image {\n  filter: blur(5px);\n}\n\n.card-hide-image {\n  opacity: 0 !important;\n}\n\n.card-hide div {\n  transition: all 300ms ease;\n}\n\n.card-hide * {\n  transition: all 300ms ease;\n}\n\n.polaroid-effect {\n  background-color: #FFF;\n  padding: 5px;\n  border: solid 1px rgba(0, 0, 0, 0.1);\n}\n\n.card-scale * {\n  transition: all 300ms ease;\n}\n\n.card-rotate * {\n  transition: all 300ms ease;\n}\n\n.card-grayscale * {\n  transition: all 300ms ease;\n}\n\n.card-blur * {\n  transition: all 300ms ease;\n}\n\n.card-overlay {\n  background-position: center center;\n  background-size: cover !important;\n}\n\n.card-overlay-infinite {\n  position: absolute;\n  left: 0px;\n  right: 0px;\n  bottom: 0px;\n  width: 2000px;\n  height: 100%;\n  z-index: 0;\n  animation: infiniteBG 600s;\n  animation-iteration-count: infinite;\n  animation-timing-function: linear;\n  background-image: url(images/mountain.jpg);\n  background-size: cover;\n  background-repeat: repeat;\n  background-position: left center;\n  transform: translateX(0px);\n}\n\n@keyframes infiniteBG {\n  0% {\n    transform: translateX(0px);\n  }\n  50% {\n    transform: translateX(-1400px);\n  }\n  100% {\n    transform: translateX(0px);\n  }\n}\n\n.card-overlay-zoom {\n  position: absolute;\n  left: 0px;\n  right: 0px;\n  bottom: 0px;\n  top: 0px;\n  height: 100%;\n  z-index: 0;\n  animation: zoomBG 30s;\n  animation-iteration-count: infinite;\n  animation-timing-function: linear;\n  background-size: cover;\n  background-repeat: repeat;\n  background-position: center center;\n  transform: translateX(0px);\n}\n\n@keyframes zoomBG {\n  0% {\n    transform: scale(1, 1);\n  }\n  50% {\n    transform: scale(1.5, 1.5);\n  }\n  100% {\n    transform: scale(1, 1);\n  }\n}\n\n.card-overlay-rotate {\n  position: absolute;\n  margin-top: -25%;\n  margin-left: -25%;\n  width: 150%;\n  height: 160%;\n  z-index: 0;\n  animation: rotateBG 50s;\n  animation-iteration-count: infinite;\n  animation-timing-function: linear;\n  background-repeat: repeat;\n  background-position: center center;\n}\n\n@keyframes rotateBG {\n  0% {\n    transform: rotate(0deg);\n  }\n  50% {\n    transform: rotate(45deg);\n  }\n  100% {\n    transform: rotate(0deg);\n  }\n}\n\n/*Card Full Left & Right*/\n.theme-dark .drag-line {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.drag-line {\n  width: 45px;\n  height: 3px;\n  border-radius: 10px;\n  background-color: rgba(0, 0, 0, 0.1);\n  margin: 15px auto -15px auto;\n  animation: moveDragLine 1.5s infinite;\n}\n\n@keyframes moveDragLine {\n  0% {\n    transform: translateY(0px);\n  }\n  20% {\n    transform: translateY(-3px);\n  }\n  40% {\n    transform: translateY(1px);\n  }\n  45% {\n    transform: translateY(0px);\n  }\n}\n\n.card-full-left, .card-full-left .card-overlay {\n  margin-left: 0px !important;\n  border-top-left-radius: 0px !important;\n  border-bottom-left-radius: 0px !important;\n}\n\n.card-full-right, .card-full-right .card-overlay {\n  margin-right: 0px !important;\n  border-top-right-radius: 0px !important;\n  border-bottom-right-radius: 0px !important;\n}\n\n/*Chips*/\n.chip {\n  display: inline-block;\n  margin: 0px 10px 15px 0px;\n  border-radius: 30px;\n  padding-right: 15px;\n}\n\n.chip * {\n  font-size: 12px;\n}\n\n.chip span {\n  line-height: 29px;\n}\n\n.chip i {\n  width: 30px;\n  line-height: 30px;\n  border-radius: 30px;\n  display: inline-block;\n  text-align: center;\n  margin-right: 5px;\n}\n\n.chip img {\n  display: inline;\n  margin-right: 9px;\n  border-radius: 30px;\n  width: 30px;\n  line-height: 30px;\n}\n\n.chip-s {\n  transform: scale(1, 1);\n}\n\n.chip-m {\n  transform: scale(1.05, 1.05);\n}\n\n.chip-l {\n  transform: scale(1.15, 1.15);\n}\n\n.chip-xl {\n  transform: scale(1.2, 1.2);\n}\n\n/*Dividers*/\n.divider {\n  height: 1px;\n  display: block;\n  background-color: rgba(0, 0, 0, 0.05);\n  margin-bottom: 30px;\n}\n\n.divider-margins {\n  margin: 0px 17px 30px 17px;\n}\n\n.divider-icon {\n  height: 1px;\n  display: block;\n  background-color: rgba(0, 0, 0, 0.05);\n  margin-bottom: 50px;\n}\n\n.divider-icon i {\n  position: absolute;\n  width: 50px;\n  background-color: #f8fbfb;\n  text-align: center;\n  margin-top: -8px;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n.card .divider-icon i {\n  background-color: #FFF;\n}\n\n.divider-small {\n  height: 2px;\n  width: 80px;\n  margin: auto;\n}\n\n/*Custom Switches*/\n.custom-control * {\n  cursor: pointer;\n  user-select: none !important;\n}\n\n.switch-is-unchecked {\n  display: none;\n}\n\n.switch-is-checked {\n  display: block;\n}\n\n.switch-s {\n  transform: scale(0.8, 0.8);\n}\n\n/*iOS Switcher*/\n.ios-switch {\n  padding-left: 10px;\n}\n\n.ios-switch label::before {\n  background-color: #e8e9ea;\n  pointer-events: all;\n  margin-top: -3px;\n  margin-left: -1px;\n  width: 58px !important;\n  height: 32px !important;\n  border-radius: 50px !important;\n}\n\n.ios-switch label::after {\n  margin-top: -2px;\n  z-index: 6;\n  width: 30px !important;\n  height: 30px !important;\n  transition: all 250ms ease;\n  border-radius: 50px !important;\n  background-color: #FFF;\n  border: solid 1px rgba(152, 152, 152, 0.4);\n  transition: all 250ms ease;\n}\n\n.ios-input:checked ~ .custom-control-label::after {\n  -webkit-transform: translateX(26px) !important;\n}\n\n.ios-input:checked ~ .custom-control-label::before {\n  background-color: #8CC152 !important;\n}\n\n.highlight-switch .ios-input:checked ~ .custom-control-label::before {\n  background-color: #4A89DC !important;\n}\n\n.ios-switch-icon label::before {\n  background-color: #DA4453 !important;\n}\n\n.ios-switch-icon i {\n  line-height: 32px;\n  pointer-events: none;\n  z-index: 5;\n  position: absolute;\n  left: 10px;\n}\n\n.ios-switch-icon i:last-child {\n  z-index: 5;\n  position: absolute;\n  margin-left: 29px;\n}\n\n.ios-switch-icon span {\n  font-size: 9px;\n  font-weight: 700;\n  color: #FFF;\n  line-height: 32px;\n  pointer-events: none;\n  z-index: 5;\n  position: absolute;\n  left: 10px;\n}\n\n.ios-switch-icon span:last-child {\n  z-index: 5;\n  position: absolute;\n  margin-left: 24px;\n}\n\n/*Android Switcher*/\n.android-switch {\n  padding-left: 10px;\n}\n\n.android-switch label::before {\n  pointer-events: all;\n  margin-top: 0px;\n  margin-left: -2px;\n  width: 53px !important;\n  height: 17px !important;\n  border-radius: 50px !important;\n  background-color: #AAB2BD;\n}\n\n.android-switch label::after {\n  border: solid 1px rgba(0, 0, 0, 0.1) !important;\n  margin-top: -6px;\n  margin-left: -3px;\n  width: 28px !important;\n  height: 28px !important;\n  background-color: #FFF !important;\n  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2) !important;\n  border-radius: 50px !important;\n  transition: all 250ms ease;\n}\n\n.android-input {\n  transform: translateY(1px) !important;\n}\n\n.android-input:checked ~ .custom-control-label::after {\n  background-color: #458be3 !important;\n  border: none !important;\n  -webkit-transform: translateX(30px) !important;\n}\n\n.android-input:checked ~ .custom-control-label::before {\n  background-color: #458be3 !important;\n}\n\n[data-activate] {\n  cursor: pointer;\n  display: block;\n  width: 100%;\n}\n\n/*Classic Switcher*/\n.classic-switch input {\n  display: none;\n}\n\n.classic-switch label::before {\n  pointer-events: all;\n  width: 40px !important;\n  height: 40px !important;\n  transform: translateX(11px);\n  margin-top: -10px;\n  border: none;\n  background-color: rgba(0, 0, 0, 0) !important;\n}\n\n.classic-switch i {\n  pointer-events: none;\n  transition: all 250ms ease;\n}\n\n.classic-input:checked ~ .custom-control-label::after {\n  -webkit-transform: translateX(26px) !important;\n}\n\n.classic-input:checked ~ .fa-plus {\n  color: #DA4453 !important;\n  transform: rotate(45deg);\n  transition: all 250ms ease;\n}\n\n.classic-input:checked ~ .fa-angle-down {\n  color: #DA4453 !important;\n  transform: rotate(180deg);\n  transition: all 250ms ease;\n}\n\n.classic-input:checked ~ .fa-circle {\n  color: #DA4453 !important;\n  transform: scale(1.3, 1.3);\n  transition: all 250ms ease;\n}\n\n/*Interests Page*/\n.icon-check input {\n  position: absolute !important;\n  transform: translateX(-150524px);\n}\n\n.icon-check .fa-check-circle {\n  display: none;\n}\n\n.icon-check i {\n  width: 20px;\n  text-align: center;\n  pointer-events: none;\n  position: absolute;\n  left: 30px;\n  top: 0px;\n  height: 24px;\n  line-height: 24px;\n}\n\n.icon-check {\n  margin-left: -30px;\n  margin-right: 10px;\n  margin-bottom: 10px;\n  cursor: pointer;\n  position: relative;\n  width: auto;\n  display: block;\n}\n\n.icon-check label {\n  cursor: pointer;\n  font-size: 13px;\n  padding: 0px 15px 0px 40px;\n}\n\n.icon-check .icon-check-2 {\n  display: none;\n}\n\n.icon-check input:checked ~ .icon-check-1 {\n  opacity: 0 !important;\n  display: none !important;\n}\n\n.icon-check input:checked ~ .icon-check-2 {\n  display: block;\n}\n\n/*Input Style 1*/\n.input-style-1 {\n  position: relative;\n}\n\n.input-style-1 input {\n  border-width: 1px;\n  font-size: 13px;\n  display: block;\n  width: 100%;\n  height: 50px;\n  line-height: 50px;\n  margin-bottom: 10px;\n  border: none;\n  background-color: rgba(0, 0, 0, 0);\n  border-bottom: solid 1px rgba(0, 0, 0, 0.08);\n  transition: all 250ms ease;\n}\n\n.input-style-1 input:focus {\n  border-bottom: solid 1px black;\n}\n\n.input-style-1 textarea {\n  border-width: 1px;\n  font-size: 13px;\n  display: block;\n  width: 100%;\n  height: 50px;\n  line-height: 28px;\n  padding-right: 15px;\n  padding-top: 14px;\n  margin-top: -5px;\n  margin-bottom: 15px;\n  background-color: rgba(0, 0, 0, 0);\n  margin-left: 0px !important;\n  padding-left: 0px !important;\n  text-indent: 0px !important;\n  border: none;\n  border-bottom: solid 1px rgba(0, 0, 0, 0.08);\n  transition: all 250ms ease;\n}\n\n.input-style-1 textarea:focus {\n  line-height: 24px;\n  height: 150px;\n  transition: all 250ms ease;\n}\n\n.input-style-1 span {\n  color: #007bff !important;\n  font-weight: 500;\n  position: absolute;\n  font-size: 10px;\n  margin-top: -3px;\n  opacity: 0;\n  pointer-events: none;\n  transition: all 250ms ease;\n}\n\n.input-style-1 em {\n  position: absolute;\n  top: 14px;\n  font-size: 10px;\n  font-style: normal;\n  right: 0px;\n  color: #dee2e6;\n}\n\n.input-style-1 em i {\n  font-size: 12px;\n  width: 15px;\n  text-align: center;\n  margin-top: 7px;\n  display: block;\n}\n\n.input-style-1 input[type=\"month\"] {\n  color: #6c757d;\n}\n\n.input-style-1 input[type=\"date\"] {\n  border-width: 1px;\n  font-size: 13px;\n  display: block;\n  width: 100%;\n  height: 50px;\n  line-height: 50px;\n  margin-bottom: 15px;\n  background-color: rgba(0, 0, 0, 0);\n  border-bottom: solid 1px rgba(0, 0, 0, 0.08);\n  transition: all 250ms ease;\n  color: #6c757d;\n}\n\n.input-style-1 input[type=\"date\"]::-webkit-inner-spin-button {\n  opacity: 0;\n}\n\n.input-style-1 input[type=\"date\"]::-webkit-calendar-picker-indicator {\n  opacity: 0;\n}\n\n.input-style-1 input[type=\"date\"]::-webkit-clear-button {\n  opacity: 0;\n}\n\n.input-style-1 select {\n  border-width: 1px;\n  color: #6c757d;\n  border: none;\n  border-bottom: solid 1px rgba(0, 0, 0, 0.08);\n  box-sizing: border-box;\n  margin-bottom: 15px;\n  height: 50px;\n  line-height: 50px;\n  border-radius: 0px;\n  width: 100%;\n  box-shadow: none;\n  -webkit-appearance: none;\n  background-color: rgba(0, 0, 0, 0);\n  font-size: 14px;\n}\n\n.input-style-1 select:focus {\n  border-bottom: solid 1px black;\n}\n\n.input-style-1-active {\n  opacity: 1 !important;\n}\n\n.input-style-1-inactive {\n  color: #dee2e6 !important;\n}\n\n.input-style-1.has-icon .input-icon {\n  position: absolute;\n  z-index: 10;\n  margin-top: 20px;\n  margin-left: 0px;\n}\n\n.input-style-1.has-icon input {\n  padding-left: 30px;\n}\n\n.input-style-1.has-icon span {\n  margin-left: 25px;\n}\n\n.input-style-1.has-icon .input-style-1-active {\n  transform: translateX(-25px);\n  transition: all 150ms ease;\n}\n\ninput[type=\"range\"] {\n  -webkit-appearance: none;\n  height: 20px;\n  width: 100%;\n  outline: none;\n}\n\ninput[type=\"range\"]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  width: 20px;\n  height: 20px;\n  background: #F26B5E;\n  position: relative;\n  z-index: 3;\n}\n\ninput[type=\"range\"]::-webkit-slider-thumb:after {\n  content: \" \";\n  height: 10px;\n  position: absolute;\n  z-index: 1;\n  right: 20px;\n  top: 5px;\n  background: #ff5b32;\n}\n\n/*Input Style 2*/\n.input-style-2 {\n  margin-bottom: 15px;\n  position: relative;\n}\n\n.input-style-2 span {\n  pointer-events: none;\n  color: #000 !important;\n  position: absolute;\n  font-size: 13px;\n  z-index: 1;\n  height: 22px;\n  line-height: 20px;\n  padding: 2px 5px 2px 5px;\n  top: 14px;\n  left: 10px;\n  right: 10px;\n  background-color: #FFF;\n  transition: all 150ms ease;\n}\n\n.input-style-2 .input-style-1-active {\n  color: #007bff !important;\n  transform: translateY(-25px);\n  transition: all 150ms ease;\n}\n\n.input-style-2 em {\n  position: absolute;\n  right: 10px;\n  z-index: 2;\n  font-size: 10px;\n  font-style: normal;\n  color: #dee2e6;\n  line-height: 53px;\n}\n\n.input-style-2 em i {\n  font-size: 12px !important;\n  margin-top: 5px !important;\n}\n\n.input-style-2 input {\n  border-width: 1px;\n  background-color: rgba(0, 0, 0, 0);\n  border-radius: 10px !important;\n  border-color: rgba(0, 0, 0, 0.1);\n  display: block;\n  width: 100%;\n  height: 50px;\n  line-height: 50px;\n  padding: 0px 14px;\n  font-size: 13px;\n  -webkit-appearance: none;\n}\n\n.input-style-2 textarea {\n  border-width: 1px;\n  background-color: rgba(0, 0, 0, 0);\n  border-radius: 10px !important;\n  display: block;\n  border-color: rgba(0, 0, 0, 0.1);\n  width: 100%;\n  height: 50px;\n  line-height: 50px;\n  padding: 0px 14px;\n  font-size: 13px;\n  -webkit-appearance: none;\n  transition: all 250ms ease;\n}\n\n.input-style-2 textarea:focus {\n  padding-top: 14px;\n  line-height: 24px;\n  height: 150px;\n  transition: all 250ms ease;\n}\n\n.input-style-2 select {\n  border-width: 1px;\n  background-color: rgba(0, 0, 0, 0);\n  border-radius: 10px !important;\n  display: block;\n  border-color: rgba(0, 0, 0, 0.1);\n  width: 100%;\n  height: 50px;\n  line-height: 50px;\n  padding: 0px 14px;\n  font-size: 13px;\n  -webkit-appearance: none;\n}\n\n.input-style-2 input[type=\"date\"]::-webkit-inner-spin-button, .input-style-2 input[type=\"month\"]::-webkit-inner-spin-button {\n  opacity: 0;\n}\n\n.input-style-2 input[type=\"date\"]::-webkit-calendar-picker-indicator, .input-style-2 input[type=\"month\"]::-webkit-calendar-picker-indicator {\n  opacity: 0;\n}\n\n.input-style-2 input[type=\"date\"]::-webkit-clear-button, .input-style-2 input[type=\"month\"]::-webkit-clear-button {\n  opacity: 0;\n}\n\nspan.input-style-1-active {\n  opacity: 1;\n  padding-right: 10px !important;\n  right: auto !important;\n}\n\n.input-style-2.has-icon .input-icon {\n  position: absolute;\n  z-index: 10;\n  margin-top: 20px;\n  margin-left: 15px;\n}\n\n.input-style-2.has-icon input {\n  padding-left: 40px;\n}\n\n.input-style-2.has-icon span {\n  margin-left: 25px;\n}\n\n.input-style-2.has-icon .input-style-1-active {\n  transform: translate(-25px, -25px);\n  transition: all 150ms ease;\n}\n\n.input-light i {\n  color: #FFF;\n}\n\n.input-light span {\n  color: #FFF !important;\n}\n\n.input-light em {\n  color: #6c757d !important;\n}\n\n.input-light input {\n  color: #FFF !important;\n  border-bottom: solid 1px rgba(255, 255, 255, 0.1) !important;\n}\n\n.input-light input::placeholder {\n  color: #FFF;\n}\n\n/*File Upload*/\n.upload-file {\n  text-indent: -999px;\n  outline: none;\n  width: 100%;\n  height: 45px;\n  color: rgba(0, 0, 0, 0) !important;\n}\n\n.upload-file-text {\n  pointer-events: none;\n  margin-top: -36px !important;\n  text-align: center;\n  color: #FFF;\n  height: 10px;\n  text-transform: uppercase;\n  font-weight: 900;\n}\n\n.file-data input[type='file'] {\n  font-size: 0px !important;\n}\n\ninput {\n  font-size: 13px !important;\n}\n\ninput::placeholder {\n  font-size: 13px !important;\n}\n\ninput:focus {\n  outline: none;\n}\n\nselect:focus {\n  outline: none;\n}\n\ntextarea {\n  font-size: 13px !important;\n}\n\ntextarea:focus {\n  outline: none;\n}\n\nbutton:focus {\n  outline: none;\n}\n\n.tooltip {\n  font-size: 13px;\n}\n\ncode {\n  font-size: 11px;\n  line-height: 22px;\n}\n\n.stepper {\n  width: 102px;\n  border: solid 1px rgba(0, 0, 0, 0.1);\n}\n\n.stepper:after {\n  content: \"\";\n  display: table;\n  clear: both;\n}\n\n.stepper input {\n  height: 33px;\n  width: 33px;\n  float: left;\n  border: none !important;\n  text-align: center;\n  display: block;\n  line-height: 33px;\n  font-size: 11px !important;\n  background-color: transparent;\n}\n\n.stepper input::-webkit-outer-spin-button {\n  -webkit-appearance: none;\n  margin: 0;\n}\n\n.stepper input::-webkit-inner-spin-button {\n  -webkit-appearance: none;\n  margin: 0;\n}\n\n.stepper a {\n  text-align: center;\n  width: 33px;\n  height: 33px;\n  line-height: 33px;\n  font-size: 9px;\n}\n\n.stepper a:first-child {\n  float: left;\n  border-right: solid 1px rgba(0, 0, 0, 0.1);\n}\n\n.stepper a:last-child {\n  float: right;\n  border-left: solid 1px rgba(0, 0, 0, 0.1);\n}\n\n/*Range Sliders*/\n.ios-slider {\n  height: 40px !important;\n  background: linear-gradient(to right, #5D9CEC 0%, #5D9CEC 100%);\n  background-size: 100% 3px;\n  background-position: center;\n  background-repeat: no-repeat;\n}\n\n.ios-slider::-webkit-slider-thumb {\n  background-color: #FFF !important;\n  border: solid 1px rgba(0, 0, 0, 0.1);\n  border-radius: 30px;\n  height: 25px !important;\n  width: 25px !important;\n  box-shadow: -3px 3px 10px 1px rgba(0, 0, 0, 0.2) !important;\n}\n\n.material-slider {\n  height: 40px !important;\n  background: linear-gradient(to right, #CCD1D9 0%, #CCD1D9 100%);\n  background-size: 100% 18px;\n  background-position: center;\n  background-repeat: no-repeat;\n  padding: 0px 3px 0px 3px;\n}\n\n.material-slider::-webkit-slider-thumb {\n  background-color: #1f1f1f !important;\n  border: solid 1px rgba(0, 0, 0, 0.1);\n  height: 10px !important;\n  width: 30px !important;\n}\n\n.classic-slider {\n  height: 20px !important;\n  background-color: #FFF;\n  border: solid 1px rgba(0, 0, 0, 0.1);\n  border-radius: 30px !important;\n  background-size: 100% 25px;\n  background-position: center;\n  background-repeat: no-repeat;\n  background-color: rgba(0, 0, 0, 0);\n  padding: 0px 3px 0px 3px;\n  -webkit-box-shadow: inset 0 2px 2px 1px rgba(0, 0, 0, 0.1);\n  box-shadow: inset 0 2px 2px 1px rgba(0, 0, 0, 0.1);\n}\n\n.classic-slider::-webkit-slider-thumb {\n  background-color: #007bff !important;\n  border: solid 1px rgba(0, 0, 0, 0);\n  height: 16px !important;\n  border-radius: 20px;\n  width: 16px !important;\n  box-shadow: -3px 3px 10px 1px rgba(0, 0, 0, 0.2) !important;\n}\n\n.range-slider-icons {\n  padding: 0px 30px 0px 30px;\n}\n\n.range-slider.range-slider-icons i {\n  position: absolute;\n  top: 0px;\n  height: 44px;\n  line-height: 44px;\n  text-align: center;\n}\n\n.range-slider {\n  position: relative;\n}\n\n.range-slider .fa-range-icon-1 {\n  left: 0px;\n}\n\n.range-slider .fa-range-icon-2 {\n  right: 0px;\n}\n\n/*List Groups*/\n.check-visited .visited-link i:last-child::before {\n  opacity: 0;\n}\n\n.check-visited .visited-link i:last-child::after {\n  font-family: \"Font Awesome 5 Free\";\n  font-weight: 900;\n  position: absolute;\n  right: 13px;\n  font-size: 16px;\n  margin-top: 0.5px;\n  content: \"\\f058\";\n  opacity: 1;\n  color: #A0D468;\n}\n\n.list-custom-small {\n  line-height: 50px;\n}\n\n.list-custom-small .badge {\n  position: absolute;\n  right: 15px;\n  margin-top: 16px !important;\n  font-size: 9px;\n  padding: 5px 8px 5px 8px;\n  font-weight: 700;\n}\n\n.list-custom-small a {\n  color: #1f1f1f;\n  font-weight: 600;\n  font-size: 13px;\n  border-bottom: solid 1px rgba(0, 0, 0, 0.05);\n}\n\n.list-custom-small a img {\n  margin-left: 0px;\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n  margin-top: 10px;\n  text-align: center;\n  float: left;\n  margin-right: 10px;\n}\n\n.list-custom-small a i:first-child {\n  margin-left: 0px;\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n  margin-top: 10px;\n  text-align: center;\n  float: left;\n  margin-right: 10px;\n}\n\n.list-custom-small a i:last-child {\n  float: right;\n  font-size: 10px;\n  opacity: 0.5;\n}\n\n.list-custom-small i {\n  line-height: 50px;\n}\n\n.list-custom-small .custom-control {\n  z-index: 10;\n  position: absolute;\n  right: 40px;\n  margin-top: -40px;\n}\n\n.list-custom-small .custom-control input {\n  transform: translateY(-5px) !important;\n}\n\n.menu .list-custom-small a i:first-child {\n  margin-left: 6px;\n}\n\n.list-custom-large a {\n  line-height: 70px;\n  color: #1f1f1f;\n  font-weight: 500;\n  font-size: 13px;\n  border-bottom: solid 1px rgba(0, 0, 0, 0.05);\n}\n\n.list-custom-large a span:not(.badge) {\n  font-family: \"Inter\", sans-serif;\n  font-weight: 600;\n  font-size: 14px;\n  letter-spacing: -0.3px;\n  position: absolute;\n  margin-top: -7px;\n}\n\n.list-custom-large a strong {\n  font-size: 7px;\n  position: absolute;\n  font-size: 12px;\n  margin-top: 11px;\n  color: #adb5bd;\n  font-weight: 500;\n}\n\n.list-custom-large a img {\n  width: 32px;\n  height: 32px;\n  line-height: 32px;\n  margin-top: 21px;\n  text-align: center;\n  float: left;\n  margin-right: 15px;\n}\n\n.list-custom-large a i:first-child {\n  width: 32px;\n  height: 32px;\n  line-height: 32px;\n  margin-top: 21px;\n  text-align: center;\n  float: left;\n  margin-right: 15px;\n}\n\n.list-custom-large a i:last-child {\n  float: right;\n  font-size: 10px;\n}\n\n.list-custom-large .badge {\n  position: absolute;\n  right: 10px;\n  margin-top: 30px;\n  font-size: 9px;\n  padding: 5px 8px 5px 8px;\n  font-weight: 700;\n}\n\n.list-custom-large i {\n  line-height: 74px;\n}\n\n.list-custom-large .custom-control {\n  z-index: 10;\n  position: absolute;\n  right: 40px;\n  margin-top: 22px;\n}\n\n.list-custom-large .custom-control input {\n  transform: translateY(-12px) !important;\n}\n\n.list-boxes a {\n  line-height: 60px;\n  margin-bottom: 10px;\n  color: #1f1f1f;\n  font-weight: 500;\n  font-size: 13px;\n  border-bottom: solid 1px rgba(0, 0, 0, 0.05);\n}\n\n.list-boxes a span:not(.badge) {\n  padding-left: 10px;\n  font-size: 14px;\n  position: absolute;\n  margin-top: -4px;\n}\n\n.list-boxes a strong {\n  padding-left: 10px;\n  font-size: 7px;\n  position: absolute;\n  font-size: 11px;\n  margin-top: 10px;\n  color: #6c757d;\n  font-weight: 500;\n}\n\n.list-boxes a i:first-child {\n  width: 40px;\n  float: left;\n  padding-left: 15px;\n}\n\n.list-boxes a i:last-child {\n  float: right;\n  font-size: 16px;\n  margin-top: -5px;\n  margin-right: 15px;\n}\n\n.list-boxes a u {\n  position: absolute;\n  right: 0px;\n  margin-right: 9px;\n  width: 60px;\n  font-size: 7px;\n  text-align: center;\n  margin-top: 13px;\n  text-decoration: none;\n}\n\n.list-boxes .badge {\n  position: absolute;\n  right: 10px;\n  margin-top: 30px;\n  font-size: 9px;\n  padding: 5px 8px 5px 8px;\n  font-weight: 700;\n}\n\n.list-boxes i {\n  line-height: 64px;\n}\n\n.short-border {\n  margin-left: 45px;\n}\n\n.short-border i:first-child {\n  margin-left: -45px;\n  margin-top: 23px;\n}\n\n.list-group .badge {\n  z-index: 2;\n}\n\n.list-icon-0 a i:first-child {\n  margin-left: 0px !important;\n}\n\n.icon-list {\n  margin-left: 0px;\n  padding-left: 0px;\n}\n\n.icon-list li {\n  list-style: none;\n}\n\n.icon-list li i {\n  width: 20px;\n  padding-right: 10px;\n}\n\n/*Badge Text in Lists*/\n.badge-text {\n  margin-top: 13px !important;\n  transform: translateY(-3px);\n  padding-right: 20px !important;\n}\n\n/*Todo List*/\n.todo-list.list-custom-large a {\n  min-height: 70px;\n}\n\n.todo-list.list-custom-small a {\n  min-height: 40px;\n}\n\n.todo-list .icon-check {\n  float: right;\n  margin-right: 28px;\n}\n\n/*Toasts*/\n.toast-tiny {\n  z-index: 90;\n  position: fixed;\n  left: 50%;\n  line-height: 35px;\n  padding: 0px 20px;\n  color: #FFF;\n  transition: all 200ms ease;\n  max-width: auto !important;\n  font-size: 12px;\n  border-radius: 60px;\n  border: 0px !important;\n}\n\n.toast-bottom {\n  bottom: 80px;\n  bottom: calc(80px + (constant(safe-area-inset-bottom))*1.1) !important;\n  bottom: calc(80px + (env(safe-area-inset-bottom))*1.1) !important;\n  transform: translate(-50%, 160px) scale(0, 0);\n}\n\n.toast-bottom.toast-tiny.show {\n  transform: translate(-50%, 0px) scale(1, 1);\n}\n\n.toast-top {\n  top: 60px;\n  top: calc(65px + (constant(safe-area-inset-bottom))*1.1) !important;\n  top: calc(65px + (env(safe-area-inset-bottom))*1.1) !important;\n  transform: translate(-50%, -100px) scale(0, 0);\n}\n\n.toast-top.toast-tiny.show {\n  transform: translate(-50%, 0px) scale(1, 1);\n}\n\n.toast-center {\n  opacity: 0;\n  top: 50%;\n  transform: translate(-50.1%, 0px) scale(0, 0);\n}\n\n.toast-center.toast-tiny.show {\n  opacity: 1;\n  transform: translate(-50.1%, 0px) scale(1, 1);\n}\n\n/*Snackbars*/\n.snackbar-toast {\n  bottom: 70px !important;\n  bottom: calc(70px + (constant(safe-area-inset-bottom))*1.1) !important;\n  bottom: calc(70px + (env(safe-area-inset-bottom))*1.1) !important;\n  position: fixed;\n  left: 10px !important;\n  right: 10px !important;\n  padding: 0px 18px;\n  line-height: 50px;\n  border-radius: 8px;\n  overflow: hidden;\n  z-index: 95;\n  transform: translateY(150px);\n  transition: all 300ms ease;\n}\n\n.snackbar-toast.show {\n  transform: translateY(-20px);\n}\n\n/*Pagination*/\n.pagination {\n  margin-bottom: 30px;\n}\n\n.pagination .page-link {\n  padding: 10px 14px;\n}\n\n.pagination .page-item {\n  margin-right: 5px;\n  margin-left: 5px;\n}\n\n.page-item.active a {\n  color: #FFF !important;\n}\n\n/*Search*/\n.search-results {\n  overflow: scroll;\n}\n\n.disabled-search-list {\n  position: relative;\n  max-height: 0px !important;\n  padding: 0px !important;\n  margin: 0px !important;\n  overflow: hidden;\n}\n\n.disabled-search {\n  display: none;\n}\n\n.search-box {\n  line-height: 50px;\n  border: solid 1px rgba(0, 0, 0, 0.08);\n}\n\n.search-box input {\n  outline: none !important;\n  width: 100%;\n  background-color: rgba(0, 0, 0, 0);\n  padding-left: 40px;\n  line-height: 45px;\n}\n\n.search-box .fa-search {\n  position: absolute;\n  left: 0px;\n  line-height: 52px;\n  padding: 0px 15px 0px 30px;\n}\n\n.search-box a {\n  position: absolute;\n  right: 15px;\n  font-size: 14px;\n  line-height: 52px;\n  width: 45px;\n  text-align: center;\n}\n\n.search-box input.bg-white {\n  color: #000 !important;\n}\n\n.search-color input {\n  color: #FFF;\n}\n\n.search-color input::placeholder {\n  color: #FFF;\n}\n\n.search-color i {\n  color: #FFF !important;\n  z-index: 10;\n}\n\n.search-icon-list {\n  padding-left: 10px;\n  padding-top: 10px;\n}\n\n.search-icon-list a {\n  color: #1f1f1f;\n  line-height: 35px;\n}\n\n.search-icon-list a i {\n  padding-right: 10px;\n}\n\n.search-page .search-result-list {\n  position: relative;\n  min-height: 80px;\n  margin-bottom: 20px;\n}\n\n.search-page .search-results img {\n  width: 80px;\n  position: absolute;\n  border-radius: 10px;\n}\n\n.search-page .search-results h1 {\n  font-size: 15px;\n  font-weight: 600;\n  padding-left: 100px;\n  margin-bottom: 0px;\n}\n\n.search-page .search-results p {\n  font-size: 12px;\n  line-height: 20px;\n  padding-left: 100px;\n  padding-right: 80px;\n}\n\n.search-page .search-results a {\n  position: absolute;\n  right: 0px;\n  height: 30px;\n  line-height: 31px;\n  padding: 0px 12px;\n  top: 50%;\n  transform: translateY(-50%);\n  color: #FFF;\n  font-size: 10px;\n  font-weight: 500;\n  border-radius: 10px;\n}\n\n/*Tabs*/\n.tab-content {\n  display: none;\n  position: relative;\n  -webkit-transform: translate3d(0, 0, 0);\n}\n\n.tab-controls a {\n  font-family: \"Inter\", sans-serif;\n  border: solid 1px rgba(0, 0, 0, 0.07);\n  text-align: center;\n  float: left;\n  font-size: 12px;\n  margin-right: -1px;\n  color: #1f1f1f;\n  font-weight: 600;\n  background-color: #FFF;\n  transition: all 250ms ease;\n}\n\n.tab-controls a:last-child {\n  border-right: none !important;\n  border: solid 1px rgba(0, 0, 0, 0.07);\n}\n\n.tabs-large a {\n  height: 45px;\n  line-height: 45px;\n  font-size: 14px;\n}\n\n.tabs-medium a {\n  height: 40px;\n  line-height: 40px;\n  font-size: 13px;\n}\n\n.tabs-small a {\n  height: 33px;\n  line-height: 33px;\n  font-size: 12px;\n}\n\n.tabs-rounded {\n  border-radius: 11px;\n}\n\n.tabs-rounded a:first-child {\n  border-top-left-radius: 11px !important;\n  border-bottom-left-radius: 11px !important;\n}\n\n.tabs-rounded a:last-child {\n  border-top-right-radius: 11px !important;\n  border-bottom-right-radius: 11px !important;\n}\n\n.tabs-circled a:first-child {\n  border-top-left-radius: 30px !important;\n  border-bottom-left-radius: 30px !important;\n}\n\n.tabs-circled a:last-child {\n  border-top-right-radius: 30px !important;\n  border-bottom-right-radius: 30px !important;\n}\n\n.tabs-no-border * {\n  background-color: transparent !important;\n  border: none !important;\n}\n\n.tabs-no-border a {\n  padding: 0px 8px;\n}\n\n.border-tab {\n  border-top-width: 0px !important;\n  border-right-width: 0px !important;\n  border-left-width: 0px !important;\n  border-bottom-width: 3px !important;\n  padding-bottom: 12px !important;\n  border-style: solid !important;\n}\n\n/*Working Hours*/\n.working-hours {\n  border-radius: 5px;\n}\n\n.working-hours p {\n  padding-top: 34px;\n  padding-bottom: 15px !important;\n  line-height: 0px;\n  padding-left: 10px;\n  padding-right: 10px;\n  margin-top: -8px !important;\n  width: 33.3%;\n  float: left;\n  margin-bottom: 10px;\n  display: inline-block;\n}\n\n.working-hours p:nth-child(2) {\n  text-align: center;\n}\n\n.working-hours p:last-child {\n  text-align: right;\n}\n\n.working-hours::after {\n  content: \"\";\n  clear: both;\n  display: table;\n}\n\n/*Responsive Videos and iframes*/\n.max-iframe {\n  max-height: 200px !important;\n  height: 300px !important;\n  padding-bottom: 0px !important;\n  margin: 0 auto;\n}\n\n.responsive-iframe {\n  position: relative;\n  padding-bottom: 56.25%;\n  height: 0;\n  overflow: hidden;\n  max-width: 100%;\n}\n\n.responsive-iframe iframe {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: none;\n}\n\n.responsive-iframe object {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: none;\n}\n\n.responsive-iframe embed {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: none;\n}\n\n/*PageApp Calendar*/\n.calendar {\n  position: relative;\n  background-color: #FFF;\n  overflow: hidden;\n}\n\n.cal-title {\n  color: #FFF;\n  line-height: 60px;\n  margin-bottom: 0px;\n  padding: 0px 15px;\n}\n\n.cal-sub-title {\n  color: #FFF;\n  line-height: 60px;\n  margin-bottom: 0px;\n  padding: 0px 15px;\n}\n\n.cal-title-right {\n  float: right;\n  margin-top: -60px;\n  line-height: 62px;\n  height: 50px;\n  padding-right: 20px;\n}\n\n.cal-title-left {\n  float: left;\n  margin-top: -60px;\n  line-height: 62px;\n  height: 50px;\n  padding-left: 20px;\n}\n\n.cal-days a {\n  position: relative;\n  width: 14.28%;\n  float: left;\n  text-align: center;\n  height: 35px;\n  line-height: 35px;\n  color: #FFF;\n  z-index: 3;\n  font-weight: 800;\n}\n\n.cal-disabled {\n  color: #ced4da !important;\n}\n\n.cal-selected span {\n  z-index: 2;\n  position: relative;\n  color: #FFF;\n}\n\n.cal-selected i {\n  color: #000;\n  z-index: 0;\n  opacity: 1;\n  font-size: 32px;\n  position: absolute;\n  width: 32px;\n  height: 32px;\n  margin-top: 50%;\n  left: 50%;\n  margin: 7px 0px 0px -16px;\n  text-align: center;\n  line-height: 32px;\n}\n\n.cal-dates a {\n  width: 14.2857142857%;\n  float: left;\n  text-align: center;\n  line-height: 45px;\n  color: #1f1f1f;\n  font-weight: 500;\n}\n\n.theme-dark .cal-dates a {\n  color: #FFF !important;\n}\n\n.theme-dark .cal-disabled {\n  opacity: 0.3;\n}\n\n.cal-dates-border a {\n  overflow: hidden;\n  border-right: solid 1px rgba(0, 0, 0, 0.05);\n  border-bottom: solid 1px rgba(0, 0, 0, 0.05);\n}\n\n.cal-schedule {\n  min-height: 80px;\n  border-bottom: solid 1px rgba(0, 0, 0, 0.055);\n}\n\n.cal-schedule em {\n  line-height: 20px;\n  padding: 20px 0px 0px 20px;\n  position: absolute;\n  font-size: 11px;\n  font-style: normal;\n}\n\n.cal-schedule strong {\n  color: #000;\n  display: block;\n  padding: 17px 0px 0px 100px;\n  font-size: 14px;\n}\n\n.cal-schedule span {\n  display: block;\n  font-size: 10px;\n  color: #adb5bd;\n  margin-top: 0px;\n}\n\n.cal-schedule span i {\n  width: 50px;\n  display: inline-block;\n  text-align: center;\n  padding: 0px 20px 0px 102px;\n}\n\n.theme-dark .cal-schedule strong {\n  color: #FFF !important;\n}\n\n.theme-dark .cal-schedule span {\n  color: #FFF !important;\n  opacity: 0.5;\n}\n\n.cal-message {\n  display: block;\n}\n\n.cal-message i {\n  position: absolute;\n  height: 40px;\n  line-height: 43px;\n  font-size: 27px;\n  right: 20px;\n}\n\n.cal-message strong {\n  display: block;\n  line-height: 20px;\n  font-weight: 400;\n  font-size: 11px;\n  padding-left: 20px;\n}\n\n/*-Pageapp Chat-*/\n.speech-left {\n  max-width: 240px;\n  float: right;\n  border-bottom-right-radius: 0px !important;\n  color: #FFF;\n}\n\n.speech-right {\n  max-width: 240px;\n  float: left;\n  border-bottom-left-radius: 0px !important;\n}\n\n.speach-image {\n  padding: 0px !important;\n}\n\n.speach-image img {\n  margin: 0px;\n}\n\n.speech-last {\n  margin-bottom: 0px !important;\n}\n\n.speech-bubble {\n  position: relative;\n  border-radius: 17px;\n  padding: 10px 15px;\n  margin-bottom: 15px;\n  line-height: 22px;\n  font-size: 13px;\n  background-color: #dee2e6;\n  overflow: hidden;\n}\n\n.speech-bubble:after {\n  content: '';\n  display: block;\n  clear: both;\n}\n\n.speech-read {\n  font-size: 10px;\n  font-style: normal;\n  display: block;\n  text-align: right;\n  font-weight: 500;\n  color: #adb5bd;\n  margin-bottom: 80px;\n}\n\n.speach-input input {\n  width: 100%;\n  display: block;\n  line-height: 45px;\n  height: 45px;\n  margin-top: 8px;\n  border-radius: 45px;\n}\n\n.speach-icon a {\n  padding-top: 0px !important;\n  display: block;\n  border-radius: 35px;\n  width: 35px;\n  height: 35px;\n  line-height: 38px;\n  margin-top: 3px;\n  transform: translateY(10px);\n}\n\n/*Contact Form*/\n.menu input[type=\"text\"] {\n  height: 35px;\n  line-height: 35px;\n}\n\n.menu textarea {\n  height: 85px !important;\n  padding-top: 3px !important;\n}\n\n.menu .form-field {\n  margin-bottom: 5px;\n}\n\n.menu .form-field label {\n  font-size: 12px;\n  margin-bottom: -10px;\n}\n\n.form-field span {\n  position: absolute;\n  right: 20px;\n  font-size: 9px;\n  opacity: 0.5;\n}\n\n.form-field input {\n  box-shadow: none;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background-color: rgba(0, 0, 0, 0) !important;\n  border-radius: 10px;\n  margin: 0px 0px 15px 0px;\n}\n\n.form-field textarea {\n  box-shadow: none;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background-color: rgba(0, 0, 0, 0) !important;\n  border-radius: 10px;\n  margin: 0px 0px 15px 0px;\n}\n\n.form-name input {\n  line-height: 40px;\n  border: solid 1px rgba(0, 0, 0, 0.1);\n  width: 100%;\n  padding: 0px 10px 0px 10px;\n}\n\n.form-email input {\n  line-height: 40px;\n  border: solid 1px rgba(0, 0, 0, 0.1);\n  width: 100%;\n  padding: 0px 10px 0px 10px;\n}\n\n.form-text textarea {\n  height: 145px;\n  line-height: 24px;\n  width: 100%;\n  border: solid 1px rgba(0, 0, 0, 0.1);\n  padding: 10px 10px 0px 10px;\n  margin-bottom: 30px;\n}\n\n.contactSubmitButton {\n  width: 100%;\n  display: block;\n  border-radius: 10px;\n  color: #FFF !important;\n  padding: 12px 0px !important;\n}\n\n.fieldHasError {\n  border: solid 1px #BF263C !important;\n}\n\n/*Map Full*/\n.map-full .caption, .map-full .card-overlay {\n  transition: all 350ms ease;\n}\n\n.hide-map {\n  position: absolute;\n  margin-top: -120px;\n  width: 200px;\n  left: 50%;\n  margin-left: -100px;\n  text-align: center;\n  opacity: 0;\n  z-index: 2;\n}\n\n.map-full .card {\n  z-index: 2;\n  position: absolute;\n  top: 0px;\n  left: 0px;\n  right: 0px;\n  bottom: 0px;\n}\n\n.map-full iframe {\n  position: absolute;\n  width: 102vw;\n  height: 100vh;\n  z-index: 1;\n}\n\n.activate-map {\n  opacity: 1 !important;\n  transition: all 250ms ease;\n  transition: all 350ms ease;\n}\n\n.deactivate-map {\n  opacity: 0 !important;\n  pointer-events: none;\n  transition: all 350ms ease;\n}\n\n/*Filter*/\n.gallery-filter-links, .gallery-filter-select * {\n  overflow: visible !important;\n}\n\n.gallery-filter-all {\n  float: left !important;\n  padding-left: 0px !important;\n}\n\n.gallery-filter-controls {\n  padding: 0px;\n  margin: 0px;\n}\n\n.gallery-filter-controls li {\n  list-style: none;\n  cursor: pointer;\n  float: right;\n  padding-left: 15px;\n  font-weight: 500;\n  color: #1f1f1f;\n  font-size: 13px;\n  transition: all 350ms ease;\n}\n\n.gallery-filter-controls li:first-child {\n  padding-right: 30px;\n}\n\n.gallery-filter-controls {\n  width: 100%;\n  box-sizing: border-box;\n  display: block;\n}\n\n.gallery-filter-controls-hidden {\n  position: absolute;\n  width: 50px;\n  left: -50000px;\n}\n\n.gallery-filter-links, .gallery-filter-select {\n  transition: height 350ms ease;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n\n.gallery-filter-links a, .gallery-filter-select a {\n  width: 33.3%;\n  padding: 5px;\n  display: block;\n  transition: height 350ms ease;\n}\n\n.gallery-filter-links a img, .gallery-filter-select a img {\n  display: block;\n  width: 100%;\n  box-shadow: 0 2px 14px 0 rgba(0, 0, 0, 0.08);\n}\n\n/*Collection*/\n.gallery-collection-round a img {\n  border-radius: 10px;\n}\n\n.gallery-collection a {\n  width: 48%;\n  float: left;\n  position: relative;\n}\n\n.gallery-collection a:nth-child(2n+2) {\n  margin-left: 4%;\n  margin-bottom: 4%;\n}\n\n.gallery-collection a img {\n  width: 50%;\n  float: left;\n  padding: 1px;\n}\n\n.gallery-collection i {\n  position: absolute;\n  width: 50px;\n  height: 50px;\n  line-height: 50px;\n  left: 50%;\n  top: 50%;\n  z-index: 10;\n  margin-top: -25px;\n  margin-left: -25px;\n  text-align: center;\n  background-color: #FFFFFF;\n  border-radius: 50px;\n  font-size: 17px;\n  color: #1f1f1f;\n}\n\n/*Gallery Views*/\n.gallery-view-controls a {\n  float: left;\n  width: 33.3%;\n  text-align: center;\n  height: 50px;\n  line-height: 50px;\n  font-size: 16px;\n  color: #1f1f1f;\n}\n\n.theme-dark .gallery-view-controls a {\n  color: #FFF;\n}\n\n.theme-dark .gallery-view-controls {\n  border-bottom: solid 1px rgba(255, 255, 255, 0.07);\n}\n\n.gallery-view-controls {\n  border-bottom: solid 1px rgba(0, 0, 0, 0.05);\n  margin-bottom: 30px;\n}\n\n.gallery-view-1 a {\n  width: 30%;\n  float: left;\n}\n\n.gallery-view-1 .caption {\n  display: none;\n}\n\n.gallery-view-2 .caption {\n  display: none;\n}\n\n.gallery-view-3 .caption {\n  padding-top: 20px;\n}\n\n.gallery-view-1 a {\n  margin-bottom: 5%;\n}\n\n.gallery-view-1 a:nth-child(3n-1) {\n  margin: auto 5% auto 5%;\n}\n\n.gallery-view-2 a {\n  width: 47.5%;\n  margin-bottom: 5%;\n  float: left;\n}\n\n.gallery-view-2 a:nth-child(2n-1) {\n  margin-right: 5%;\n}\n\n/*Page Timeline*/\n.timeline-cover {\n  height: 430px;\n  width: 100%;\n  position: fixed;\n  z-index: 1;\n  top: 0px;\n  background-position: center center;\n  background-size: cover;\n  margin-top: 50px;\n}\n\n.timeline-cover .overlay {\n  opacity: 0.8;\n}\n\n.timeline-cover .content {\n  z-index: 10;\n}\n\n.timeline-body {\n  position: relative;\n  margin-top: 300px;\n  padding-top: 5px;\n  z-index: 2;\n  background-color: #f0f0f0;\n  padding-bottom: 10px;\n  box-shadow: none !important;\n}\n\n.timeline-header {\n  height: 55px;\n  border-bottom: solid 1px rgba(255, 255, 255, 0.5);\n}\n\n.timeline-header .back-button {\n  position: absolute;\n  top: 0px;\n  left: 0px;\n  width: 50px;\n  height: 50px;\n  text-align: center;\n  line-height: 50px;\n  font-size: 16px;\n  color: #FFF;\n  z-index: 11;\n}\n\n.timeline-header .menu-icon {\n  position: absolute;\n  top: 2px;\n  right: 0px;\n  width: 50px;\n  height: 50px;\n  text-align: center;\n  line-height: 50px;\n  font-size: 16px;\n  color: #FFF;\n  z-index: 11;\n}\n\n.timeline-header .menu-icon em {\n  background-color: #FFF;\n}\n\n.timeline-logo {\n  background-position: center;\n  background-repeat: no-repeat;\n  position: absolute;\n  z-index: 10;\n  width: 100%;\n}\n\n.timeline-deco {\n  background-color: rgba(0, 0, 0, 0.08);\n  position: absolute;\n  top: 0px;\n  z-index: 0;\n  bottom: 0px;\n  left: 43px;\n  width: 1px;\n}\n\n.timeline-item-content, .timeline-item-content-full {\n  border: solid 1px rgba(0, 0, 0, 0.1);\n  background-color: #FFF;\n  margin: 0px 15px 30px 90px;\n  padding: 20px 15px;\n}\n\n.timeline-item {\n  position: relative;\n  z-index: 2;\n}\n\n.timeline-item-content-full {\n  padding: 0px;\n}\n\n.timeline-item-content-full h5 {\n  padding: 5px 15px 15px 15px;\n}\n\n.timeline-item .timeline-icon {\n  color: #FFF;\n  position: absolute;\n  width: 45px;\n  height: 45px;\n  left: 21px;\n  line-height: 45px;\n  border-radius: 45px;\n  top: 25px;\n  font-size: 18px;\n  text-align: center;\n}\n\n/*Timeline Center*/\n.timeline-cover-center .timeline-sub-heading,\n.timeline-cover-center .timeline-heading {\n  padding-left: 0px;\n  text-align: center;\n}\n\n.timeline-cover-center .timeline-image {\n  top: 50%;\n  bottom: auto;\n  margin-top: -150px;\n  left: 50%;\n  margin-left: -60px;\n  background-size: 120px 120px;\n  width: 120px;\n  height: 120px;\n  border-radius: 100px;\n}\n\n.timeline-body-center {\n  padding-bottom: 40px;\n}\n\n.timeline-body-center .timeline-icon {\n  width: 60px;\n  height: 60px;\n  left: 50%;\n  line-height: 60px;\n  margin-left: -31px;\n  margin-top: -115px;\n}\n\n.timeline-body-center .timeline-deco {\n  left: 50%;\n  margin-left: -1px;\n}\n\n.timeline-body-center .timeline-item-content,\n.timeline-body-center .timeline-item-content-full {\n  margin: 120px 20px 20px 20px !important;\n  padding: 20px;\n}\n\n/*Interests Page*/\n.interest-check input {\n  position: absolute !important;\n  transform: translateX(-150524px);\n}\n\n.interest-check .fa-check-circle {\n  display: none;\n}\n\n.interest-check i {\n  width: 20px;\n  text-align: center;\n  pointer-events: none;\n  position: absolute;\n  left: 30px;\n  top: 0px;\n  height: 40px;\n  line-height: 40px;\n}\n\n.interest-check {\n  margin-left: -20px;\n  margin-right: 10px;\n  margin-bottom: 35px;\n  height: 22px;\n  cursor: pointer;\n  position: relative;\n  width: auto;\n  display: inline-block;\n}\n\n.interest-check label {\n  cursor: pointer;\n  font-weight: 500;\n  font-size: 13px;\n  font-family: \"Inter\", sans-serif;\n  padding: 8px 15px 8px 40px;\n}\n\n.interest-check input:checked ~ .fa {\n  display: block !important;\n}\n\n.interest-check input:checked ~ label {\n  color: #FFF !important;\n  background-color: #4A89DC !important;\n}\n\n.interest-check input:checked ~ .fa:last-child,\n.interest-check input:checked ~ .fab:last-child,\n.interest-check input:checked ~ .fas:last-child,\n.interest-check input:checked ~ .far:last-child {\n  display: none !important;\n}\n\n/*Page VCard*/\n.vcard-title {\n  font-size: 18px;\n  text-transform: uppercase;\n}\n\n.vcard-field {\n  line-height: 50px;\n  border-left: 0px !important;\n  border-top: 0px !important;\n  border-right: 0px !important;\n  padding-top: 15px;\n  border-bottom: solid 1px rgba(0, 0, 0, 0.05);\n  position: relative;\n}\n\n.vcard-field strong {\n  position: absolute;\n  margin-top: -18px;\n  color: #ababab;\n  font-weight: 400;\n  font-size: 10px;\n}\n\n.vcard-field i {\n  position: absolute;\n  top: 25px;\n  width: 15px;\n  text-align: center;\n  right: 0px;\n  opacity: 0.3;\n}\n\n.vcard-field a {\n  color: #000;\n  font-weight: 400;\n  font-size: 14px;\n  margin-top: -10px;\n  margin-bottom: 10px;\n  opacity: 0.7;\n}\n\n/*Gradient Adjustments*/\n.bg-gradient {\n  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0.1) 30%, rgba(0, 0, 0, 0.8) 70%, black 100%);\n}\n\n.bg-gradient-fade {\n  bottom: 0px !important;\n}\n\n.theme-light .bg-gradient-fade {\n  background: linear-gradient(to bottom, rgba(240, 240, 240, 0) 0%, rgba(240, 240, 240, 0.99) 65%, #f0f0f0 100%);\n}\n\n.theme-dark .bg-gradient-fade {\n  background: linear-gradient(to bottom, rgba(27, 29, 33, 0) 0%, rgba(27, 29, 33, 0.99) 65%, #1b1d21 100%);\n}\n\n.theme-light .bg-gradient-fade-small {\n  background: linear-gradient(to bottom, rgba(240, 240, 240, 0) 0%, rgba(240, 240, 240, 0.2) 50%, rgba(240, 240, 240, 0.9) 75%, #f0f0f0 100%);\n}\n\n.theme-dark .bg-gradient-fade-small {\n  background: linear-gradient(to bottom, rgba(27, 29, 33, 0) 0%, rgba(27, 29, 33, 0.2) 50%, rgba(27, 29, 33, 0.9) 75%, #1b1d21 100%);\n}\n\n/*Page Tint*/\n.theme-dark .page-content-bg div {\n  position: fixed;\n  top: -50px;\n  bottom: -50px;\n  left: -50px;\n  right: -50px;\n  background-color: rgba(0, 0, 0, 0.6);\n}\n\n/*Basic Colors*/\n.color-white {\n  color: #FFF !important;\n}\n\n.color-black {\n  color: #000 !important;\n}\n\n.bg-white {\n  background-color: #FFF !important;\n}\n\n.bg-black {\n  background-color: #000 !important;\n}\n\n/*Main Color Settings*/\n.theme-dark .bg-theme {\n  background-color: #0f1117 !important;\n}\n\n.theme-light .bg-theme {\n  background-color: #FFF !important;\n}\n\n.theme-light .color-theme {\n  color: #0f1117 !important;\n}\n\n.theme-dark .color-theme {\n  color: #FFF !important;\n}\n\n/*Hide Show Based on Color Scheme*/\n.theme-dark .show-on-theme-dark {\n  display: block;\n}\n\n.theme-dark .show-on-theme-light {\n  display: none;\n}\n\n.theme-light .show-on-theme-light {\n  display: block;\n}\n\n.theme-light .show-on-theme-dark {\n  display: none;\n}\n\n/*Dark Theme Settings*/\n.theme-dark p {\n  color: #898989;\n}\n\n.theme-dark h1,\n.theme-dark h2,\n.theme-dark h3,\n.theme-dark h4,\n.theme-dark h5,\n.theme-dark h6,\n.theme-dark #footer-bar a i,\n.theme-dark #footer-bar a span\n.theme-dark p strong {\n  color: #FFF;\n}\n\n.theme-dark .accordion-btn,\n.theme-dark .menu .nav-title,\n.theme-dark .menu .nav a i,\n.theme-dark .menu .nav a span,\n.theme-dark .menu .nav .active-nav i,\n.theme-dark .menu .nav .active-nav span,\n.theme-dark .header .header-icon,\n.theme-dark .header .header-title,\n.theme-dark .search-header .fa-search,\n.theme-dark .color-theme,\n.theme-dark .countdown div,\n.theme-dark .list-group i:last-child,\n.theme-dark .search-icon-list a,\n.theme-dark .fac label,\n.theme-dark .pagination a,\n.theme-dark .accordion-style-2 a,\n.theme-dark .input-style-1 .input-icon,\n.theme-dark .input-style-2 .input-icon,\n.theme-dark .input-style-1 span,\n.theme-dark .input-style-2 span,\n.theme-dark .input-style-1 input,\n.theme-dark .input-style-2 input,\n.theme-dark input,\n.theme-dark .contact-form i,\n.theme-dark .demo-icon-font article,\n.theme-dark [data-tab],\n.theme-dark span:not(.badge),\n.theme-dark .profile-2 .profile-stats a,\n.theme-dark .vcard-field *,\n.theme-dark .search-header input,\n.theme-dark .search-header input::placeholder,\n.theme-dark .footer .footer-title {\n  color: #FFF !important;\n}\n\n.theme-dark,\n.theme-dark .page-bg,\n.theme-dark #page,\n.theme-dark .loader-main,\n.theme-dark .instant-article,\n.theme-dark .divider-icon i,\n.theme-dark .table tr.even td,\n.theme-dark .timeline-body,\n.theme-dark table,\n.theme-dark td {\n  background-color: #1b1d21 !important;\n}\n\n.theme-dark .ios-switch label::before,\n.theme-dark .android-switch label::before {\n  background-color: #1b1d21;\n  border: solid 1px rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark .footer,\n.theme-dark .card,\n.theme-dark #preloader {\n  background-color: #0f1117;\n}\n\n.theme-dark .input-style-2 span {\n  background-color: #000;\n}\n\n.theme-dark .card .input-style-2 span,\n.theme-dark .card.input-style span,\n.theme-dark .bg-theme {\n  background-color: #0f1117 !important;\n}\n\n.theme-dark .menu .input-style-1 span,\n.theme-dark .menu .input-style-2 span {\n  background-color: rgba(23, 26, 31, 0.8) !important;\n}\n\n.theme-dark .link-list-3 a,\n.theme-dark .pricing-1,\n.theme-dark .pricing-2,\n.theme-dark .pricing-3,\n.theme-dark .pricing-4,\n.theme-dark .search-box,\n.theme-dark .link-list-2 a,\n.theme-dark .vcard-field,\n.theme-dark table {\n  border: solid 1px rgba(255, 255, 255, 0.05);\n}\n\n.theme-dark input::placeholder,\n.theme-dark textarea::placeholder,\n.theme-dark select::placeholder,\n.theme-dark select,\n.theme-dark .stepper,\n.theme-dark .form-field input,\n.theme-dark .form-field textarea {\n  color: #FFF !important;\n  border-color: rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark .input-style-1 input,\n.theme-dark .input-style-1 select,\n.theme-dark .input-style-1 textarea,\n.theme-dark input,\n.theme-dark textarea,\n.theme-dark select {\n  border-color: rgba(255, 255, 255, 0.05);\n}\n\n.theme-dark .input-style-1 input:focus,\n.theme-dark .input-style-1 select:focus,\n.theme-dark .input-style-1 textarea:focus,\n.theme-dark input:focus,\n.theme-dark textarea:focus,\n.theme-dark select:focus {\n  border-color: #495057 !important;\n}\n\n.theme-dark .list-custom-large a,\n.theme-dark .list-custom-small a {\n  border-color: rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark .input-style-1 em,\n.theme-dark .input-style-2 em {\n  color: #898989;\n}\n\n.theme-dark .timeline-deco {\n  background-color: rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark .footer-links,\n.theme-dark #footer-bar,\n.theme-dark .footer-copyright {\n  border-top: solid 1px rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark .border-bottom {\n  border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark .border-top {\n  border-top: 1px solid rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark .border-left {\n  border-left: 1px solid rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark .border-right {\n  border-right: 1px solid rgba(255, 255, 255, 0.05) !important;\n}\n\n.theme-dark th,\n.theme-dark .polaroid-effect,\n.theme-dark .timeline-item-content,\n.theme-dark .tab-controls,\n.theme-dark .timeline-item-content-full {\n  background-color: #21252a !important;\n  color: #FFF;\n}\n\n.theme-dark .divider,\n.theme-dark .menu .nav a:hover,\n.theme-dark .menu .nav .active-subnav,\n.theme-dark .menu .nav .divider {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.theme-dark .menu-hider {\n  background-color: rgba(0, 0, 0, 0.7);\n}\n\n.theme-dark .gallery-filter-controls li {\n  color: #FFF;\n}\n\n.theme-dark .gallery-view-controls a {\n  color: #FFF;\n}\n\n.theme-dark .gallery-view-controls {\n  border-bottom: solid 1px rgba(255, 255, 255, 0.05);\n}\n\n.theme-dark .tab-controls a {\n  background-color: #21252a;\n  border: solid 1px rgba(255, 255, 255, 0.05);\n}\n\n.theme-dark .form-control:focus,\n.theme-dark .form-control {\n  background-color: transparent !important;\n}\n\n.theme-dark .tabs-no-border a {\n  background-color: transparent !important;\n}\n\n.theme-dark .header,\n.theme-dark #footer-bar {\n  background-color: rgba(11, 14, 18, 0.8);\n  color: #FFF;\n}\n\n.theme-dark .menu,\n.theme-dark .interest-check label {\n  background-color: rgba(23, 26, 31, 0.8);\n  color: #FFF;\n}\n\n/*Styles used to showcase the demo product on ThemeForest and create backgrounds. These can be deleted to increase speed of loading*/\n.bg-0 {\n  background-image: url(../images/pictures/0l.jpg);\n}\n\n.bg-1 {\n  background-image: url(../images/pictures/1.jpg);\n}\n\n.bg-2 {\n  background-image: url(../images/pictures/2.jpg);\n}\n\n.bg-3 {\n  background-image: url(../images/pictures/3.jpg);\n}\n\n.bg-4 {\n  background-image: url(../images/pictures/4.jpg);\n}\n\n.bg-5 {\n  background-image: url(../images/pictures/5.jpg);\n}\n\n.bg-6 {\n  background-image: url(../images/pictures/6.jpg);\n}\n\n.bg-7 {\n  background-image: url(../images/pictures/7.jpg);\n}\n\n.bg-8 {\n  background-image: url(../images/pictures/8.jpg);\n}\n\n.bg-9 {\n  background-image: url(../images/pictures/9.jpg);\n}\n\n.bg-10 {\n  background-image: url(../images/pictures/10.jpg);\n}\n\n.bg-11 {\n  background-image: url(../images/pictures/11.jpg);\n}\n\n.bg-12 {\n  background-image: url(../images/pictures/12.jpg);\n}\n\n.bg-13 {\n  background-image: url(../images/pictures/13.jpg);\n}\n\n.bg-14 {\n  background-image: url(../images/pictures/14.jpg);\n}\n\n.bg-15 {\n  background-image: url(../images/pictures/15.jpg);\n}\n\n.bg-16 {\n  background-image: url(../images/header.png);\n}\n\n.bg-17 {\n  background-image: url(../images/pictures/17.jpg);\n}\n\n.bg-18 {\n  background-image: url(../images/pictures/18.jpg);\n}\n\n.bg-19 {\n  background-image: url(../images/pictures/19.jpg);\n}\n\n.bg-20 {\n  background-image: url(../images/pictures/20.jpg);\n}\n\n.bg-21 {\n  background-image: url(../images/pictures/21.jpg);\n}\n\n.bg-22 {\n  background-image: url(../images/pictures/22.jpg);\n}\n\n.bg-23 {\n  background-image: url(../images/pictures/23.jpg);\n}\n\n.bg-24 {\n  background-image: url(../images/pictures/24.jpg);\n}\n\n.bg-25 {\n  background-image: url(../images/pictures/25.jpg);\n}\n\n.bg-26 {\n  background-image: url(../images/pictures/26.jpg);\n}\n\n.bg-27 {\n  background-image: url(../images/pictures/27.jpg);\n}\n\n.bg-28 {\n  background-image: url(../images/pictures/28.jpg);\n}\n\n.bg-29 {\n  background-image: url(../images/pictures/29.jpg);\n}\n\n.bg-30 {\n  background-image: url(../images/pictures/30.jpg);\n}\n\n.bg-31 {\n  background-image: url(../images/pictures/31.jpg);\n}\n\n.bg-32 {\n  background-image: url(../images/pictures/32.jpg);\n}\n\n.bg-33 {\n  background-image: url(../images/pictures/33.jpg);\n}\n\n.bg-34 {\n  background-image: url(../images/pictures/34.jpg);\n}\n\n.bg-aurora{\n  background-image: url(../images/header.png);\n}\n\n/*Demo Colors*/\n.demo-color {\n  display: block;\n  width: 100%;\n  line-height: 45px;\n  padding-left: 10px;\n  text-transform: capitalize;\n  border-bottom: solid 1px rgba(255, 255, 255, 0.05);\n}\n\n.demo-color strong {\n  display: block;\n  font-size: 9px;\n  margin-top: -25px;\n  padding-bottom: 3px;\n  font-weight: 400;\n  opacity: 0.8;\n}\n\n.demo-color span {\n  font-size: 10px;\n  position: absolute;\n  right: 20px;\n  line-height: 48px;\n  color: rgba(255, 255, 255, 0.5);\n}\n\n/* Lightbox v2.10.0 Copyright 2007, 2018 Lokesh Dhakar Released under the MIT license */\n.lb-loader, .lightbox {\n  position: fixed;\n  text-align: center;\n  line-height: 0;\n  left: 0;\n}\n\n.lb-dataContainer:after, .lb-outerContainer:after {\n  content: \"\";\n  clear: both;\n}\n\nhtml.lb-disable-scrolling {\n  overflow: hidden;\n  position: fixed;\n  height: 100vh;\n  width: 100vw;\n}\n\n.lightboxOverlay {\n  position: fixed;\n  top: 0;\n  bottom: 0 !important;\n  left: 0;\n  z-index: 9999;\n  height: 100% !important;\n  width: 100% !important;\n  background-color: #000;\n  filter: alpha(Opacity=80);\n  opacity: 1;\n  display: none;\n  overflow: hidden;\n}\n\n.lightbox {\n  right: 0;\n  bottom: 0;\n  top: 50% !important;\n  transform: translateY(-50%);\n  width: 100%;\n  z-index: 10000;\n  font-weight: 400;\n}\n\n.lightbox .lb-image {\n  display: block;\n  height: auto;\n  max-width: inherit;\n  max-height: none;\n  border-radius: 3px;\n}\n\n.lightbox a img {\n  border: none;\n}\n\n.lb-outerContainer {\n  width: 250px;\n  height: 250px;\n  margin: 0 auto;\n  border-radius: 4px;\n  background-color: rgba(255, 255, 255, 0);\n}\n\n.lb-outerContainer:after {\n  display: table;\n}\n\n.lb-loader {\n  top: 50%;\n  height: 25%;\n  width: 100%;\n}\n\n.lb-cancel {\n  display: block;\n  width: 32px;\n  height: 32px;\n  margin: 0 auto;\n  background: url(../images/loading.gif) no-repeat;\n}\n\n.lb-nav {\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n  z-index: 10;\n}\n\n.lb-container > .nav {\n  left: 0;\n}\n\n.lb-nav a {\n  outline: 0;\n  background-image: url(data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==);\n}\n\n.lb-next, .lb-prev {\n  height: 100%;\n  cursor: pointer;\n  display: block;\n}\n\n.lb-nav a.lb-prev {\n  width: 34%;\n  left: 0;\n  float: left;\n  background: url(../images/prev.png) left 48% no-repeat;\n  filter: alpha(Opacity=0);\n  opacity: 0;\n  -webkit-transition: opacity .6s;\n  -moz-transition: opacity .6s;\n  -o-transition: opacity .6s;\n  transition: opacity .6s;\n}\n\n.lb-nav a.lb-prev:hover {\n  filter: alpha(Opacity=100);\n  opacity: 1;\n}\n\n.lb-nav a.lb-next {\n  width: 64%;\n  right: 0;\n  float: right;\n  background: url(../images/next.png) right 48% no-repeat;\n  filter: alpha(Opacity=0);\n  opacity: 0;\n  -webkit-transition: opacity .6s;\n  -moz-transition: opacity .6s;\n  -o-transition: opacity .6s;\n  transition: opacity .6s;\n}\n\n.lb-nav a.lb-next:hover {\n  filter: alpha(Opacity=100);\n  opacity: 1;\n}\n\n.lb-dataContainer {\n  margin: 0 auto;\n  padding-top: 5px;\n  border-bottom-left-radius: 4px;\n  border-bottom-right-radius: 4px;\n}\n\n.lb-dataContainer:after {\n  display: table;\n}\n\n.lb-data {\n  padding: 0 4px;\n  color: #ccc;\n}\n\n.lb-data .lb-details {\n  width: 85%;\n  float: left;\n  text-align: left;\n  line-height: 1.1em;\n}\n\n.lb-data .lb-caption a {\n  color: #4ae;\n}\n\n.lb-data .lb-number {\n  display: block;\n  clear: left;\n  padding-bottom: 1em;\n  font-size: 12px;\n  color: #999;\n}\n\n.lb-data .lb-close {\n  display: block;\n  float: right;\n  width: 30px;\n  height: 30px;\n  background: url(../images/close.png) top right no-repeat;\n  text-align: right;\n  outline: 0;\n  filter: alpha(Opacity=70);\n  opacity: .7;\n  -webkit-transition: opacity .2s;\n  -moz-transition: opacity .2s;\n  -o-transition: opacity .2s;\n  transition: opacity .2s;\n}\n\n.lb-dataContainer, .lb-details {\n  width: 100% !important;\n  position: fixed;\n}\n\n.lb-data .lb-close:hover {\n  cursor: pointer;\n  filter: alpha(Opacity=100);\n  opacity: 1;\n}\n\n.lb-outerContainer {\n  position: fixed !important;\n  left: 50%;\n  top: 50%;\n  transform: translate(-50%, -50%) !important;\n}\n\n.lb-dataContainer {\n  bottom: -50%;\n  left: 0;\n  right: 0;\n}\n\n.lb-closeContainer {\n  position: fixed;\n  left: 50%;\n  bottom: -50%;\n  padding-bottom: 70px;\n  transform: scale(0.8, 0.8);\n  margin-left: -15px;\n}\n\n.lb-details {\n  padding-top: 30px;\n  top: -50%;\n  left: 0;\n  right: 0;\n  text-align: center !important;\n}\n\n.lb-data .lb-caption {\n  font-weight: 700;\n  line-height: 1em;\n  font-size: 16px;\n  padding-bottom: 5px;\n}\n\n/* Owl Custom Settings*/\n.task-slider {\n  transform: translateX(-35px);\n}\n\n.task-slider .owl-stage-outer {\n  overflow: visible !important;\n}\n\n.single-slider {\n  z-index: 50 !important;\n}\n\n.single-slider img {\n  width: 100% !important;\n}\n\n.under-slider-btn {\n  z-index: 90;\n  margin-top: -53px;\n  margin-bottom: 0px;\n}\n\n.double-slider {\n  padding-left: 15px !important;\n  padding-right: 15px;\n}\n\n.double-slider .owl-stage-outer {\n  overflow: visible !important;\n}\n\n.double-slider .under-slider-button {\n  margin-bottom: -50px;\n}\n\n.cta-buttons {\n  display: block;\n  width: 280px;\n  margin: 0px auto -1px auto;\n  z-index: 10;\n}\n\n.cta-buttons a {\n  display: inline-block;\n}\n\n.owl-has-controls .owl-nav {\n  display: block !important;\n}\n\n.owl-has-controls .owl-prev {\n  margin-left: 15px;\n}\n\n.owl-has-controls .owl-next {\n  margin-right: 15px;\n}\n\n.slider-boxed {\n  padding: 0px 15px;\n}\n\n.slider-boxed * {\n  overflow: visible !important;\n}\n\n.slider-boxed .owl-nav {\n  margin-top: -25px !important;\n}\n\n.slider-boxed .owl-dots {\n  transform: translateX(0px) !important;\n}\n\n.carousel-boxed {\n  padding: 0px 15px;\n}\n\n.card-slider * {\n  overflow: visible !important;\n}\n\n.card-carousel * {\n  overflow: visible !important;\n}\n\n.cover-slider .owl-dots {\n  transform: translateY(-70px) !important;\n}\n\n.walkthrough-slider .owl-dots {\n  transform: translateY(-22px) !important;\n}\n\n.cover-button-bottom {\n  position: absolute;\n  left: 50px;\n  right: 50px;\n  bottom: 70px;\n  z-index: 99;\n  font-size: 12px;\n}\n\n.cover-button-top {\n  position: absolute;\n  width: 170px;\n  left: 50%;\n  margin-left: -85px;\n  top: 20px;\n  top: calc(20px + (constant(safe-area-inset-top))*1.1) !important;\n  top: calc(20px + (env(safe-area-inset-top))*1.1) !important;\n  z-index: 99;\n  font-size: 12px;\n}\n\n.cover-next {\n  position: absolute;\n  z-index: 99;\n  bottom: 20px;\n  right: 0px;\n}\n\n.cover-prev {\n  position: absolute;\n  z-index: 99;\n  bottom: 20px;\n  left: 0px;\n}\n\n.cover-slider {\n  touch-action: pan-x;\n}\n\n.cover-slider .content {\n  margin-bottom: 0px !important;\n}\n\n/* Owl Carousel v2.2.1 Copyright 2013-2017 David Deutsch  Licensed under  ()*/\n@keyframes \"fadeOut\" {\n  0% {\n    opacity: 1;\n  }\n  100% {\n    opacity: 0;\n  }\n}\n\n.owl-carousel {\n  -webkit-tap-highlight-color: transparent;\n  position: relative;\n  display: none;\n  width: 100%;\n  z-index: 1;\n}\n\n.owl-carousel .owl-item {\n  -webkit-backface-visibility: hidden;\n  -moz-backface-visibility: hidden;\n  -ms-backface-visibility: hidden;\n  -webkit-tap-highlight-color: transparent;\n  position: relative;\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n  min-height: 1px;\n  float: left;\n  -webkit-backface-visibility: hidden;\n  -webkit-touch-callout: none;\n}\n\n.owl-carousel .owl-item img {\n  display: block;\n  transform-style: preserve-3d;\n}\n\n.owl-carousel .owl-item .owl-lazy {\n  opacity: 0;\n  transition: opacity .4s ease;\n}\n\n.owl-carousel .owl-item img.owl-lazy {\n  transform-style: preserve-3d;\n}\n\n.owl-carousel .owl-wrapper {\n  -webkit-backface-visibility: hidden;\n  -moz-backface-visibility: hidden;\n  -ms-backface-visibility: hidden;\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  -ms-transform: translate3d(0, 0, 0);\n}\n\n.owl-carousel .owl-stage {\n  position: relative;\n  -ms-touch-action: pan-Y;\n  -moz-backface-visibility: hidden;\n}\n\n.owl-carousel .owl-stage:after {\n  content: \".\";\n  display: block;\n  clear: both;\n  visibility: hidden;\n  line-height: 0;\n  height: 0;\n}\n\n.owl-carousel .owl-stage-outer {\n  position: relative;\n  overflow: hidden;\n  -webkit-transform: translate3d(0, 0, 0);\n}\n\n.owl-carousel .owl-dots.disabled {\n  display: none;\n}\n\n.owl-carousel .owl-nav.disabled {\n  display: none;\n}\n\n.owl-carousel .owl-dot {\n  cursor: pointer;\n  cursor: hand;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.owl-carousel .owl-nav .owl-next {\n  cursor: pointer;\n  cursor: hand;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.owl-carousel .owl-nav .owl-prev {\n  cursor: pointer;\n  cursor: hand;\n  -webkit-user-select: none;\n  -khtml-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.owl-carousel .animated {\n  animation-duration: 1s;\n  animation-fill-mode: both;\n}\n\n.owl-carousel .owl-animated-in {\n  z-index: 0;\n}\n\n.owl-carousel .owl-animated-out {\n  z-index: 1;\n}\n\n.owl-carousel .fadeOut {\n  animation-name: fadeOut;\n}\n\n.owl-carousel .owl-video-wrapper {\n  position: relative;\n  height: 100%;\n  background: #000;\n}\n\n.owl-carousel .owl-video-play-icon {\n  position: absolute;\n  height: 80px;\n  width: 80px;\n  left: 50%;\n  top: 50%;\n  margin-left: -40px;\n  margin-top: -40px;\n  background: url(owl.video.play.png) no-repeat;\n  cursor: pointer;\n  z-index: 1;\n  -webkit-backface-visibility: hidden;\n  transition: transform .1s ease;\n}\n\n.owl-carousel .owl-video-play-icon:hover {\n  -ms-transform: scale(1.3, 1.3);\n  transform: scale(1.3, 1.3);\n}\n\n.owl-carousel .owl-video-playing .owl-video-play-icon {\n  display: none;\n}\n\n.owl-carousel .owl-video-playing .owl-video-tn {\n  display: none;\n}\n\n.owl-carousel .owl-video-tn {\n  opacity: 0;\n  height: 100%;\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: contain;\n  transition: opacity .4s ease;\n}\n\n.owl-carousel .owl-video-frame {\n  position: relative;\n  z-index: 1;\n  height: 100%;\n  width: 100%;\n}\n\n.owl-carousel .card {\n  overflow: hidden !important;\n}\n\n.owl-dots {\n  -webkit-backface-visibility: hidden;\n  -moz-backface-visibility: hidden;\n  -ms-backface-visibility: hidden;\n  text-align: center;\n  bottom: 5px;\n  width: 100%;\n  backface-visibility: hidden;\n}\n\n.no-js .owl-carousel {\n  display: block;\n}\n\n.owl-carousel.owl-loaded {\n  display: block;\n}\n\n.owl-carousel.owl-loading {\n  opacity: 0;\n  display: block;\n}\n\n.owl-carousel.owl-hidden {\n  opacity: 0;\n}\n\n.owl-carousel.owl-refresh .owl-item {\n  visibility: hidden;\n}\n\n.owl-carousel.owl-drag .owl-item {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.owl-carousel.owl-grab {\n  cursor: move;\n  cursor: grab;\n}\n\n.owl-carousel.owl-rtl {\n  direction: rtl;\n}\n\n.owl-carousel.owl-rtl .owl-item {\n  float: right;\n}\n\n.owl-height {\n  transition: all 250ms ease !important;\n  min-height: 500px;\n  height: auto !important;\n  height: 500px;\n}\n\n.owl-auto-height .owl-height {\n  transition: all 250ms ease-in-out !important;\n}\n\n.owl-dot {\n  -webkit-appearance: none;\n  appearance: none;\n  border: none !important;\n  overflow: hidden;\n  height: 14px;\n  transform: scale(0.8, 0.8);\n  transition: all 250ms ease;\n  border-radius: 50px;\n  display: inline-block;\n  background: rgba(139, 139, 139, 0.9);\n  margin-left: 3px;\n  margin-right: 3px;\n}\n\n.owl-dot.active {\n  transition: all 250ms ease;\n  background: #cacaca;\n}\n\n.owl-no-dots .owl-dots {\n  display: none !important;\n}\n\n.owl-no-dots .cover-content-bottom {\n  bottom: 0;\n  padding-bottom: 0;\n}\n\n.owl-nav {\n  position: absolute;\n  top: 50%;\n  z-index: 10;\n  left: 0;\n  right: 0;\n}\n\n.owl-next {\n  -webkit-appearance: none;\n  appearance: none;\n  background-color: transparent !important;\n  border: none !important;\n  width: 40px;\n  height: 50px;\n  position: absolute;\n  color: #FFF;\n  line-height: 50px;\n  text-align: center;\n  font-size: 30px;\n  margin-top: -25px;\n  right: 0;\n}\n\n.owl-prev {\n  -webkit-appearance: none;\n  appearance: none;\n  background-color: transparent !important;\n  border: none !important;\n  width: 40px;\n  height: 50px;\n  position: absolute;\n  color: #FFF;\n  line-height: 50px;\n  text-align: center;\n  font-size: 30px;\n  margin-top: -25px;\n  left: 0;\n}\n\n.owl-has-dots .owl-dots {\n  margin-top: 20px;\n  margin-bottom: 0;\n}\n\n.owl-has-dots-over .owl-dots {\n  margin-top: -40px;\n  margin-bottom: 10px;\n}\n\n.cover-slider {\n  touch-action: pan-x;\n  margin-bottom: 0;\n}\n\n.cover-slider .owl-dots {\n  z-index: 99;\n  margin-top: -27px;\n  transform: translateY(-110px) !important;\n}\n\n.cover-slider [data-height=cover] {\n  margin-bottom: 0 !important;\n}\n\n.next-slide {\n  color: #FFF;\n  width: 35px;\n  line-height: 35px;\n  text-align: center;\n  position: absolute;\n  margin-top: -10px;\n  top: 50%;\n  transform: translateY(-70%);\n  z-index: 99;\n  right: 15px;\n}\n\n.prev-slide {\n  color: #FFF;\n  width: 35px;\n  line-height: 35px;\n  text-align: center;\n  position: absolute;\n  margin-top: -10px;\n  top: 50%;\n  transform: translateY(-70%);\n  z-index: 99;\n  left: 15px;\n}\n\n.owl-dots-over .owl-dots {\n  transform: translateY(-60px);\n  margin-bottom: -10px;\n}\n\n.owl-dots-cover .owl-dots {\n  transform: translateY(-20px) !important;\n  margin-bottom: 3px;\n}\n\n.owl-dots-under .owl-dots {\n  transform: translateY(0px);\n  margin-bottom: 10px;\n}\n\n.owl-dots-small .owl-dots {\n  transform: translateY(-20px);\n  margin-bottom: 10px;\n}\n\n.owl-dots-no-footer .owl-dots {\n  transform: translateY(-18px) !important;\n}\n\n.double-slider {\n  touch-action: pan-x;\n  margin-left: -20px;\n}\n\n.slider-boxed {\n  margin-left: -20px;\n}\n\n/* Owl Custom Settings*/\n.task-slider {\n  transform: translateX(-35px);\n}\n\n.task-slider .owl-stage-outer {\n  overflow: visible !important;\n}\n\n.story-slider .owl-stage-outer {\n  overflow: visible !important;\n}\n\n.story-slider {\n  margin-left: -20px;\n}\n\n.topic-slider h1 a {\n  color: #cacaca;\n}\n\n/*Owl Carousel Buttons*/\n.owl-bottom-button {\n  position: fixed;\n  bottom: 0px;\n  left: 0px;\n  right: 0px;\n  z-index: 2;\n}\n"
  },
  {
    "path": "webserver/static/images/icons/license.txt",
    "content": "https://www.iconfinder.com/iconsets/round-varieties\r\n\r\n19 PNG icons by Creaticca Ltd  - License: Creative Commons (Attribution 3.0 Unported)"
  },
  {
    "path": "webserver/static/images/undraw/_license_and_link.rtf",
    "content": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf2512\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;\\f1\\froman\\fcharset0 Times-Roman;\\f2\\fswiss\\fcharset0 Helvetica-Bold;\n}\n{\\colortbl;\\red255\\green255\\blue255;\\red0\\green0\\blue233;\\red63\\green63\\blue63;\\red255\\green255\\blue255;\n}\n{\\*\\expandedcolortbl;;\\cssrgb\\c0\\c0\\c93333;\\cssrgb\\c31373\\c31373\\c31373;\\cssrgb\\c100000\\c100000\\c100000;\n}\n\\margl1440\\margr1440\\vieww25360\\viewh18140\\viewkind0\n\\pard\\tx566\\tx1133\\tx1700\\tx2267\\tx2834\\tx3401\\tx3968\\tx4535\\tx5102\\tx5669\\tx6236\\tx6803\\pardirnatural\\partightenfactor0\n\n\\f0\\fs36 \\cf0 \\\nFree Illustrations URL: {\\field{\\*\\fldinst{HYPERLINK \"https://undraw.co/illustrations\"}}{\\fldrslt \n\\f1\\fs24 \\cf2 \\expnd0\\expndtw0\\kerning0\n\\ul \\ulc2 \\outl0\\strokewidth0 \\strokec2 https://undraw.co/illustrations}}\\\nLicense URL: {\\field{\\*\\fldinst{HYPERLINK \"https://undraw.co/license\"}}{\\fldrslt \n\\f1\\fs24 \\cf2 \\expnd0\\expndtw0\\kerning0\n\\ul \\ulc2 \\outl0\\strokewidth0 \\strokec2 https://undraw.co/license}}\\\n\\pard\\pardeftab720\\sa480\\partightenfactor0\n\n\\f2\\b\\fs32 \\cf3 \\cb4 \\expnd0\\expndtw0\\kerning0\n\\outl0\\strokewidth0 \\strokec3 Copyright\\'a02020\\'a0Katerina Limpitsouni\\\n\\pard\\pardeftab720\\sl480\\sa320\\partightenfactor0\n\n\\f0\\b0 \\cf3 All images, assets and vectors published on unDraw can be used for free. You can use them for noncommercial and commercial purposes. You do not need to ask permission from or provide credit to the creator or unDraw.\\\nMore precisely, unDraw grants you an nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use the assets provided from unDraw for free, including for commercial purposes, without permission from or attributing the creator or unDraw. This license does not include the right to compile assets, vectors or images from unDraw to replicate a similar or competing service, in any form or distribute the assets in packs. This extends to automated and non-automated ways to link, embed, scrape, search or download the assets included on the website without our consent.\\\n\\pard\\pardeftab720\\sa480\\partightenfactor0\n\n\\f2\\b \\cf3 Regarding brand logos that are included:\\\n\\pard\\pardeftab720\\sl480\\sa320\\partightenfactor0\n\n\\f0\\b0 \\cf3 Are registered trademarks of their respected owners. Are included on a promotional basis and do not represent an association with unDraw or its users. Do not indicate any kind of endorsement of the trademark holder towards unDraw, nor vice versa. Are provided with the sole purpose to represent the actual brand/service/company that has registered the trademark and must not be used otherwise.\\\n}"
  },
  {
    "path": "webserver/static/js/aurora-configure.js",
    "content": "function fetch_config_data() {\n  ajax_send_data = {}\n  ajax_send_data[\"pixelcount_left\"] = $('#aurora_configure_left').val()\n  ajax_send_data[\"pixelcount_right\"] = $('#aurora_configure_right').val()\n  ajax_send_data[\"pixelcount_top\"] = $('#aurora_configure_top').val()\n  ajax_send_data[\"pixelcount_bottom\"] = $('#aurora_configure_bottom').val()\n  ajax_send_data[\"darkthreshhold\"] = $('#aurora_config_darkthreshhold').val()\n  ajax_send_data[\"hdmi_gamma\"] = $('#hdmi_gamma').val()\n  return ajax_send_data\n}\n$('#aurora_configure_save_button').on(\"click\", function (event) {\n\n  ajax_send_data = fetch_config_data()\n  ajax_send_data[\"save\"] = true\n  ajax_save_config = make_AJAX_Call(\"/update_LED_config\", ajax_send_data)\n  if (ajax_save_config[\"status\"] == \"ok\") {\n    reload_pixel_image();\n    create_snackbar(\"Pixel Configuration\", \"Successfully saved system config\", \"success\")\n  }\n});\n\n\n//Stepper Add\n$('.stepper-add').on('click',function(){\n  var num = +$(this).parent().find('input').val() + 1;\n  $(this).parent().find('input').val(num);\n  //return false;\n});\n$('.stepper-sub').on('click',function(){\n  var num = $(this).parent().find('input').val() - 1;\n  if(num >= 0){$(this).parent().find('input').val(num);}\n  //return false;\n});\n\n$('.stepper-add, .stepper-sub').on(\"click\", function (event) {\n\n  ajax_send_data = fetch_config_data()\n  ajax_response = make_AJAX_Call(\"/update_LED_config\", ajax_send_data);\n  if (ajax_response[\"status\"] == \"ok\") {\n    reload_pixel_image();\n  }\n})\n\n\n$('#hdmi_hue, #hdmi_saturation,#hdmi_brightness,#hdmi_contrast,#hdmi_gamma').on(\"slideStop\", function (event) {\n  val = $(this).val()\n  id = $(this).attr(\"id\")\n  setHDMIValues();\n})\n\nfunction save_hdmi_image()\n{\n  ajax_send_data = fetch_config_data()\n  ajax_send_data[\"save\"] = true\n  ajax_response = make_AJAX_Call(\"/update_HDMI_config\", ajax_send_data);\n  if (ajax_response[\"status\"] == \"ok\") {\n    make_AJAX_Call(\"/screenshot/\", {})\n    reload_hdmi_image();\n  }\n}\n\nfunction reloadImages() {\n  make_AJAX_Call(\"/screenshot/\", {})\n  d = new Date();\n  $(\"#image_screenshot\").attr(\"src\", \"/load_screenshot?\" + d.getTime());\n  $(\"#image_pixels\").attr(\"src\", \"/load_pixel_image?\" + d.getTime());\n  secondsBeforeReload = 5;\n}\n\nfunction setHDMIValues()\n{\n  ajax_send_data = fetch_config_data()\n  ajax_response = make_AJAX_Call(\"/update_HDMI_config\", ajax_send_data);\n  if (ajax_response[\"status\"] == \"ok\") {\n    make_AJAX_Call(\"/screenshot/\", {})\n    reload_hdmi_image();\n  }\n}\nfunction reset_gamma(hue_gamma)\n{\n  $('#hdmi_gamma').slider('setValue',hue_gamma)\n  setHDMIValues()\n}\n\n"
  },
  {
    "path": "webserver/static/js/aurora-generic.js",
    "content": "currentAjaxRequest = null; // Stores our current ajax request so we can cancel it if we do another\n\nfunction togglePower()\n{\n    make_AJAX_Call(\"/toggleEnable\",[],function() {\n        $('#powerToggle').toggleClass(\"color-theme\")\n    })\n}\n\nfunction make_AJAX_Call(url, data_dict, callback_function = false) {\n\n    return_result = false;\n    async_state = false\n    if (callback_function) {\n        async_state = true\n    }\n\n    currentAjaxRequest = $.ajax({\n        type: \"POST\",\n        url: url,\n        data: JSON.stringify(data_dict),\n        contentType: 'application/json',\n        dataType: 'json',\n        async: async_state, //we wait for these!\n        success: function (data) {\n            if (data[\"status\"] == \"error\") {\n                create_snackbar(\"Aurora Error\", data[\"error\"], \"error\")\n            }\n            if (callback_function) {\n                callback_function(data)\n            }\n\n            return_result = data\n        },\n        error: function (data) {\n            console.log(\"Error with AJAX reqest to \" + url + \" with ASync set to \" + async_state + \" returned the following:\");\n            console.log(data);\n            return_result = data\n        },\n        beforeSend: function () {\n            if (currentAjaxRequest != null) {\n                currentAjaxRequest.abort();\n            }\n        },\n    });\n    //console.log(\"returning \" + return_result[\"status\"])\n    return return_result\n\n}\n\nfunction create_snackbar(heading, message, type) {\n    col = \"bg-highlight\"\n    if (type == \"success\") {\n        col = \"bg-green-dark\"\n    }\n    else if (type == \"error\") {\n        col = \"bg-red-dark\"\n    }\n\n    snackDivUniqueID = \"aurora_snackbar\"\n    snackDiv = $('<div id=\"' + snackDivUniqueID + '\" class=\"snackbar-toast ' + col + ' bg-green-dark\" data-delay=\"6000\" data-autohide=\"true\"><button type=\"button\" class=\"ml-2 mb-1 close\" data-dismiss=\"toast\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button><h1 class=\"color-white font-20 pt-3 pb-3 mb-n4\">' + heading + '</h1> <p class=\"color-white mb-0 pb-1\">' + message + '</p></div>')\n\n    $('#' + snackDivUniqueID).remove(); // if the prev one exists lets get rid of it\n\n    $('body').prepend(snackDiv);\n    $('#' + snackDivUniqueID).toast('show');\n    return \"okay done\"\n}\n\n\n//These arent that 'generic', but its used on multiple pages so its going here.\n\nfunction showExtensionDetails(name) {\n    if ($('#extension_details').is(':visible') == false) {\n        $('#extension_details').slideDown();\n    }\n    //The 'extensions' dict is loaded onto pages that have it\n    //TODO: this is hacky and should be properly loaded in\n    extDetails = extensions[name]\n\n    $('#ext_description').text(extDetails.Description)\n    $('#ext_author').text(extDetails.Author)\n\n}\n\nfunction loadExtension(extension_name = false) {\n    if (extension_name == false) {\n        extension_name = $('#aurora_extension_dropdown').val()\n    }\n    data = { 'extension_name': extension_name }\n    ajax_response = make_AJAX_Call(\"/update_extension\", data)\n    console.log(ajax_response);\n    if (ajax_response[\"status\"] == \"ok\") {\n        create_snackbar(\"Extension Load\", \"Successfully loaded extension\", \"success\")\n    }\n\n\n}\n\nfunction reload_pixel_image() {\n\n    pixel_image_reload = make_AJAX_Call(\"/screenshot/\", {})\n    //console.log(pixel_image_reload)\n    if (pixel_image_reload[\"status\"] == \"ok\") {\n        d = new Date();\n        $(\"#pixel_image\").attr(\"src\", \"/load_pixel_image?\" + d.getTime());\n    }\n    else {\n        console.log(pixel_image_reload)\n    }\n}\n\nfunction reload_hdmi_image() {\n\n    pixel_image_reload = make_AJAX_Call(\"/screenshot/\", {})\n\n    d = new Date();\n    $(\"#image_screenshot\").attr(\"src\", \"/load_screenshot?\" + d.getTime());\n    console.log(\"/load_screenshot?\" + d.getTime())\n\n}\n\n\n"
  },
  {
    "path": "webserver/static/js/aurora-index.js",
    "content": "function change_system_status()\n{\n    \n    $('#toggle_aurora_enabled').prop(\"disabled\",true)\n    enabled_stats = $('#toggle_aurora_enabled').prop('checked');\n    \n    data = {\"enabled\":enabled_stats}\n    system_status_call = make_AJAX_Call(\"/update_config\",data,toast_system_status)\n    \n\n    $('#toggle_aurora_enabled').prop(\"disabled\",false)\n    \n    \n}\n\nfunction toast_system_status(system_status_call)\n{\n    if(system_status_call[\"status\"] == \"ok\")\n    {\n        if(system_status_call[\"message\"])\n        {\n            create_snackbar(\"System Enabled Status\",system_status_call[\"message\"],\"success\")\n        }\n        else\n        {\n            create_snackbar(\"System Enabled Status\",\"Successfully saved system config\",\"success\")\n        }\n    }\n    \n\n}\n\n\n\n$('#aurora_extension_dropdown').on(\"change\", function() { showExtensionDetails(this.value)})\n\n$('#toggle_aurora_enabled').on('click',function(){ change_system_status() })"
  },
  {
    "path": "webserver/static/js/aurora-view.js",
    "content": "function change_system_status() {\n\n    $('#toggle_aurora_enabled').prop(\"disabled\", true)\n    enabled_stats = $('#toggle_aurora_enabled').prop('checked');\n\n    data = { \"enabled\": enabled_stats }\n    system_status_call = make_AJAX_Call(\"/update_config\", data, toast_system_status)\n\n\n    $('#toggle_aurora_enabled').prop(\"disabled\", false)\n\n\n}\n\nfunction toast_system_status(system_status_call) {\n    if (system_status_call[\"status\"] == \"ok\") {\n        create_snackbar(\"System Enabled Status\", \"Successfully saved system config\", \"success\")\n    }\n\n}\n\n\n\n$('#aurora_extension_dropdown').on(\"change\", function () { showExtensionDetails(this.value) })\n\n$('#toggle_aurora_enabled').on('click', function () { change_system_status() })\n\nvar secondsBeforeReload = 5;\n\nfunction reloadImages() {\n    make_AJAX_Call(\"/screenshot/\", {})\n    d = new Date();\n    $(\"#image_screenshot\").attr(\"src\", \"/load_screenshot?\" + d.getTime());\n    $(\"#image_pixels\").attr(\"src\", \"/load_pixel_image?\" + d.getTime());\n    secondsBeforeReload = 5;\n}\nfunction reloadCounter() {\n    if ($('#toggle_images_reload').prop(\"checked\")) {\n        secondsBeforeReload--\n        $('#reloadTime').text(\"(reloading in \" + secondsBeforeReload + \"s)\")\n        if (secondsBeforeReload == 0) {\n            reloadImages();\n\n        }\n    }\n\n}\nvar reloadTimer = setInterval(reloadCounter, 1000);\n\n"
  },
  {
    "path": "webserver/static/js/custom.js",
    "content": "$(window).on('load',function(){\r\n    $('.menu').css('display','block');\r\n    $('#preloader').addClass('preloader-hide');\r\n})\r\n \r\n$(document).ready(function(){      \r\n    'use strict'\t\r\n    \r\n    /*Global Settings*/\r\n    var isAJAX = false; //Enables or disable AJAX page transitions and loading.\r\n    var isDevMode = false; // Enables development mode. Clean cache & Stops BG & Highlights from changing defaults and adds reload button for PWA refresh\r\n    \r\n    /*PWA Settings*/\r\n    var pwaEnabled = true; // activate the PWA and all settings below\r\n    var pwaNoCache = true; // always keep the cache clear to serve the freshest possible content\r\n    var pwaRemind = 1; // how many days after the user rejects / clicks maybe later to re-show the install pwa window. set 0 to always.\r\n    \r\n    /*Menu Extender Global Function*/\r\n    $.fn.showMenu = function() {$(this).addClass('menu-active'); $('#footer-bar').addClass('footer-menu-hidden');setTimeout(function(){$('.menu-hider').addClass('menu-active');},250);}; \r\n    $.fn.hideMenu = function() {$(this).removeClass('menu-active'); $('#footer-bar').removeClass('footer-menu-hidden');$('.menu-hider').removeClass('menu-active');}; \r\n\r\n    //ADD YOUR CUSTOM JAVASCRIPT CODES HERE! \r\n    //Do not put inside HTML files.\r\n    //The init_template() function will be triggered when pages open.\r\n  \r\n  \r\n\r\n\r\n\tfunction init_template(){        \r\n        \r\n        $(\"#hdmi_hue, #hdmi_saturation,#hdmi_brightness,#hdmi_contrast,#hdmi_gamma\").slider({\r\n            tooltip: 'always'\r\n        });\r\n        \r\n        \r\n        //Disable Page Jump on Empty Links.\r\n        $('a').on('click', function(){var attrs = $(this).attr('href'); if(attrs === '#'){return false;}});\r\n        \r\n        //Adding Background for Gradient\r\n        if(!$('.menu-hider').length){$('#page').append('<div class=\"menu-hider\"><div>');}\r\n                \r\n        var menu = $('.menu'),\r\n            body = $('body'),\r\n            menuFixed = $('.nav-fixed'),\r\n            menuFooter = $('#footer-bar'),\r\n            menuClose = $('.close-menu'),\r\n            header = $('.header'),\r\n            pageAll = $('#page'),\r\n            pageContent = $('.page-content'),\r\n            headerAndContent = $('.header, .page-content, #footer-bar');\r\n\r\n        \r\n        //Menu Required Variables\r\n        function menuFunctions(){\r\n            //Adding Menu Hider\r\n            if(!$('.menu-hider').length){$('#page').append('<div class=\"menu-hider\"><div>');}\r\n            //Defining Function Variables\r\n            var menuHider = $('.menu-hider');\r\n            var menuDeployer = $('[data-menu]');\r\n            \r\n            //Appling settings to each menu based on user preferences.\r\n            menu.each(function(){\r\n                var menuHeight = $(this).data('menu-height');\r\n                var menuWidth = $(this).data('menu-width');\r\n                var menuActive = $(this).data('menu-active');\r\n                if($(this).hasClass('menu-box-right')){$(this).css(\"width\",menuWidth);}    \r\n                if($(this).hasClass('menu-box-left')){$(this).css(\"width\",menuWidth);}      \r\n                if($(this).hasClass('menu-box-bottom')){$(this).css(\"height\",menuHeight);}  \r\n                if($(this).hasClass('menu-box-top')){$(this).css(\"height\",menuHeight);}           \r\n                if($(this).hasClass('menu-box-modal')){$(this).css({\"height\":menuHeight, \"width\":menuWidth});}\r\n            });    \r\n            \r\n            $('.menu a').on('click',function(){$('body').removeClass('modal-open');})\r\n\r\n            //Menu Deploy Click\r\n            menuDeployer.on('click',function(){     \r\n                menu.removeClass('menu-active');\r\n                menuHider.addClass('menu-active');\r\n                var menuData = $(this).data('menu');\r\n                var menuID = $('#'+menuData);\r\n                var menuEffect = $('#'+menuData).data('menu-effect');\r\n                var menuWidth = menuID.data('menu-width');\r\n                var menuHeight = menuID.data('menu-height');\r\n                $('body').addClass('modal-open');\r\n                if(menuID.hasClass('menu-header-clear')){menuHider.addClass('menu-active-clear');}  \r\n                function menuActivate(){menuID = 'menu-active' ? menuID.addClass('menu-active') : menuID.removeClass('menu-active');}               \r\n                if(menuID.hasClass('menu-box-bottom')){$('#footer-bar').addClass('footer-menu-hidden');}\r\n                if(menuEffect === \"menu-parallax\"){\r\n                    if(menuID.hasClass('menu-box-bottom')){headerAndContent.css(\"transform\", \"translateY(\"+(menuHeight/5)*(-1)+\"px)\");}    \r\n                    if(menuID.hasClass('menu-box-top')){headerAndContent.css(\"transform\", \"translateY(\"+(menuHeight/5)+\"px)\");}       \r\n                    if(menuID.hasClass('menu-box-left')){headerAndContent.css(\"transform\", \"translateX(\"+(menuWidth/5)+\"px)\");}       \r\n                    if(menuID.hasClass('menu-box-right')){headerAndContent.css(\"transform\", \"translateX(\"+(menuWidth/5)*(-1)+\"px)\");}\r\n                }    \r\n                if(menuEffect === \"menu-push\"){\r\n                    if(menuID.hasClass('menu-box-bottom')){headerAndContent.css(\"transform\", \"translateY(\"+(menuHeight)*(-1)+\"px)\");}    \r\n                    if(menuID.hasClass('menu-box-top')){headerAndContent.css(\"transform\", \"translateY(\"+(menuHeight)+\"px)\");}       \r\n                    if(menuID.hasClass('menu-box-left')){headerAndContent.css(\"transform\", \"translateX(\"+(menuWidth)+\"px)\");}       \r\n                    if(menuID.hasClass('menu-box-right')){headerAndContent.css(\"transform\", \"translateX(\"+(menuWidth)*(-1)+\"px)\");}\r\n                }       \r\n                if(menuEffect === \"menu-push-full\"){\r\n                    if(menuID.hasClass('menu-box-left')){headerAndContent.css(\"transform\", \"translateX(100%)\");}       \r\n                    if(menuID.hasClass('menu-box-right')){headerAndContent.css(\"transform\", \"translateX(-100%)\");}\r\n                }\r\n                \r\n                if(menuID.data('menu-hide')){\r\n                    $(this).addClass('no-click')\r\n                    $('.menu-hider').addClass('no-click')\r\n                    var menuHideTime = menuID.data('menu-hide');\r\n                    $(this).addClass('menu-active');\r\n                    menuHider.addClass('menu-active');\r\n                    setTimeout(function(){\r\n                        menuDeployer.removeClass('no-click')\r\n                        menu.removeClass('menu-active');\r\n                        menuHider.removeClass('menu-active menu-active-clear no-click');\r\n                        headerAndContent.css('transform','translate(0,0)');\r\n                        menuHider.css('transform','translate(0,0)');\r\n                        $('#footer-bar').removeClass('footer-menu-hidden');\r\n                        $('body').removeClass('modal-open');\r\n                    },menuHideTime)\r\n                }\r\n                \r\n                menuActivate();\r\n                return false;\r\n            });\r\n\r\n            var autoActivateMenu = $('[data-auto-activate]');\r\n            if (autoActivateMenu.length){\r\n                var autoActivateTimeout = (autoActivateMenu.data('auto-activate'))*1000\r\n                console.log(autoActivateTimeout)\r\n                if(autoActivateTimeout){\r\n                    setTimeout(function(){\r\n                        autoActivateMenu.addClass('menu-active');\r\n                        menuHider.addClass('menu-active');\r\n                    },autoActivateTimeout);\r\n                } else {\r\n                    autoActivateMenu.addClass('menu-active');\r\n                    menuHider.addClass('menu-active');\r\n                }\r\n            }\r\n\r\n            //Allows clicking even if menu is loaded externally.\r\n            $('.menu-hider, .close-menu, .menu-close').on('click', function(){\r\n                menu.removeClass('menu-active');\r\n                menuHider.removeClass('menu-active menu-active-clear');\r\n                headerAndContent.css('transform','translate(0,0)');\r\n                menuHider.css('transform','translate(0,0)');\r\n                $('#footer-bar').removeClass('footer-menu-hidden');\r\n                $('body').removeClass('modal-open');\r\n                return false;\r\n            });\r\n\r\n            //Setting Active Menu\r\n            if($('#menu-main').length){\r\n                var menuActive = $('#menu-main').data('menu-active');\r\n                $('#'+menuActive).addClass('menu-active');\r\n            }\r\n            \r\n            //Detecting and Selecting Active Submenu.\r\n            setTimeout(function(){\r\n                var menuActive = $('#menu-main').data('menu-active');\r\n                $('#'+menuActive).addClass('nav-item-active');\r\n                $('[data-submenu]').on('click',function(){\r\n                    $(this).toggleClass('nav-item-active');\r\n                    $(this).find('.fa-chevron-right').toggleClass('rotate-90');\r\n                   var subID = $(this).data('submenu');\r\n                    $('#'+subID).slideToggle(250);\r\n                    return false;\r\n                });\r\n                $('[data-submenu]').each(function(){\r\n                    var subID = $(this).data('submenu');\r\n                    var subChildren = $('#'+subID).children().length;\r\n                    $(this).find('strong').html(subChildren);\r\n                });\r\n                if($('.nav-item-active').data('submenu')){\r\n                    $('.nav-item-active').find('.fa-chevron-right').toggleClass('rotate-90');\r\n                    var subID = $('.nav-item-active').data('submenu');\r\n                    $('#'+subID).slideDown(250);\r\n                } \r\n                if($('.nav-item-active').parent().hasClass('submenu')){\r\n                    $('.nav-item-active').parent().slideDown(250);\r\n                }\r\n            },250);\r\n        }\r\n\r\n        //Disabling & Enabling Dark Transitions in Dark Mode to Speed up Performance.\r\n        function allowTransitions(){$('body').find('#transitions-remove').remove();}\r\n        function removeTransitions(){$('body').append('<style id=\"transitions-remove\">.btn, .header, #footer-bar, .menu-box, .menu-active{transition:all 0ms ease!important;}</style>');}\r\n\r\n        //Dark Mode\r\n        function darkMode(){            \r\n            var darkSwitch = $('[data-toggle-theme-switch], [data-toggle-theme], [data-toggle-theme-switch] input, [data-toggle-theme] input');\r\n            $('[data-toggle-theme], [data-toggle-theme-switch]').off().on('click',function(){\r\n                removeTransitions();\r\n                $('body').toggleClass('theme-light theme-dark');\r\n                    if($('body').hasClass('detect-theme')){$('body').removeClass('detect-theme');}\r\n                    if($('body').hasClass('theme-light')){\r\n                        darkSwitch.prop('checked', false); \r\n                        localStorage.setItem('Appkit-Theme','light-mode')\r\n                    }\r\n                    if($('body').hasClass('theme-dark')){\r\n                        darkSwitch.prop('checked', true); \r\n                        localStorage.setItem('Appkit-Theme','dark-mode')\r\n                    }\r\n                setTimeout(function(){allowTransitions();},150);\r\n                return false;\r\n            })\r\n            if (localStorage.getItem('Appkit-Theme') == \"dark-mode\") {darkSwitch.prop('checked', true); $('body').removeClass('theme-light').addClass('theme-dark');}\r\n            if (localStorage.getItem('Appkit-Theme') == \"light-mode\") {darkSwitch.prop('checked', false); $('body').removeClass('theme-dark').addClass('theme-light');}\r\n\r\n            //Auto Dark Mode\r\n            function activateDarkMode(){\r\n                $('body').removeClass('theme-light').addClass('theme-dark'); \r\n                $('#dark-mode-detected').removeClass('disabled'); \r\n                localStorage.setItem('Appkit-Theme','dark-mode')\r\n            }\r\n            function activateLightMode(){\r\n                $('body').removeClass('theme-dark').addClass('theme-light'); \r\n                $('#dark-mode-detected').removeClass('disabled'); \r\n                localStorage.setItem('Appkit-Theme','light-mode')\r\n            }\r\n            function activateNoPreference(){$('#manual-mode-detected').removeClass('disabled');}        \r\n\r\n            function setColorScheme() {\r\n                const isDarkMode = window.matchMedia(\"(prefers-color-scheme: dark)\").matches\r\n                const isLightMode = window.matchMedia(\"(prefers-color-scheme: light)\").matches\r\n                const isNoPreference = window.matchMedia(\"(prefers-color-scheme: no-preference)\").matches\r\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener(e => e.matches && activateDarkMode())\r\n                window.matchMedia(\"(prefers-color-scheme: light)\").addListener(e => e.matches && activateLightMode())\r\n                window.matchMedia(\"(prefers-color-scheme: no-preference)\").addListener(e => e.matches && activateNoPreference())\r\n                if(isDarkMode) activateDarkMode();\r\n                if(isLightMode) activateLightMode();\r\n            }\r\n            \r\n            if($('body').hasClass('detect-theme')){setColorScheme();}\r\n            $('.detect-dark-mode').on('click',function(){ $('body').addClass('detect-theme'); setColorScheme(); return false;});\r\n            $('.disable-auto-dark-mode').on('click',function(){ $('body').removeClass('detect-theme'); $(this).remove(); return false;});\r\n        }\r\n        darkMode();\r\n        \r\n        //Footer Menu Active Elements\r\n        if($('.footer-bar-2, .footer-bar-4, .footer-bar-5, .footer-bar-6').length){\r\n            if(!$('.footer-bar-1 strong, .footer-bar-2 strong, .footer-bar-4 strong, .footer-bar-5 strong, .footer-bar-6 strong').length){\r\n                $('.footer-bar-1 .active-nav, .footer-bar-2 .active-nav, .footer-bar-4 .active-nav, .footer-bar-5 .active-nav, .footer-bar-6 .circle-nav').append('<strong><u></u></strong>')\r\n                $('.footer-bar-6 .active-nav').append('<em></em>')\r\n            }\r\n        }\r\n        \r\n        \r\n        //Adding Local Storage for Visited Links\r\n        localStorage.setItem('z_AppKit-Visited:' + window.location.pathname, 'Page Visited');\r\n        $.fn.visited = function (className) {\r\n            className = className || false;\r\n            $(this).each(function (index, element) {\r\n                if (element.host == window.location.host &&\r\n                    localStorage.getItem('z_AppKit-Visited:' + element.pathname) ||\r\n                    localStorage.getItem('z_AppKit-Visited:' + element.pathname + '/')) {\r\n                    if (className) {\r\n                        $(element).addClass(className);\r\n                        $(element).find('.badge').addClass('disabled');\r\n                    } else {\r\n                        $(element).attr('data-visited', true);\r\n                    }\r\n                }\r\n            });\r\n        };\r\n        \r\n        //Scroll to Old Position in Lists\r\n        $('.list-group a').on('click',function(){if($(this).attr('href') != '#'){localStorage.setItem('z_Appkit-Visited-Scroll-Position', $(window).scrollTop());}})\r\n        if($('.check-visited').length){\r\n            setTimeout(function(){\r\n                var getScroll = localStorage.getItem('z_Appkit-Visited-Scroll-Position');\r\n                $(window).scrollTop(getScroll)\r\n                 localStorage.removeItem('z_Appkit-Visited-Scroll-Position');\r\n            },200);\r\n        }\r\n\r\n        //Visited Link\r\n        function visited_check(){$('.check-visited a').visited('visited-link');}\r\n        visited_check();\r\n        \r\n        //Back Button in Header\r\n        var backButton = $('.back-button, [data-back-button]');\r\n        backButton.on('click', function() {\r\n            window.history.go(-1);\r\n        });\r\n        \r\n\t\t//Copyright Year \r\n        var copyrightYear = $('.copyright-year, #copyright-year');\r\n        var dteNow = new Date(); var intYear = dteNow.getFullYear();\r\n        copyrightYear.html(intYear);\r\n        \r\n        //Back to top Badge\r\n        var backToTopBadge = $('.back-to-top-badge, .back-to-top-icon');\r\n\r\n        function backToTop(){\r\n            $('.back-to-top, [data-back-to-top], .back-to-top-badge, .back-to-top-icon').on( \"click\", function(e){\r\n                e.preventDefault();\r\n                $('html, body, .page-content').animate({\r\n                    scrollTop: 0\r\n                }, 350);\r\n                return false;\r\n            });\r\n        }\r\n        backToTop();\r\n        \r\n        function show_back_to_top_badge(){backToTopBadge.addClass('back-to-top-visible');}\r\n        function hide_back_to_top_badge(){backToTopBadge.removeClass('back-to-top-visible');}\r\n\r\n        //Detect Ad Blocker\r\n        if($(\"#adblock-detect img\").css('display') == \"none\") {\r\n            $('#adblock-message').removeClass('disabled');\r\n        } else {\r\n            $('#adblock-message, #adblock-detect').addClass('disabled');\r\n        }\r\n\r\n        \r\n        //Activate Ads Demo\r\n        \r\n        $('.activate-scroll-ad').on('click', function(){$('#scroll-ad').removeClass('disabled'); $('#fixed-ad').addClass('disabled')})\r\n        $('.activate-fixed-ad').on('click', function(){$('#scroll-ad').addClass('disabled'); $('#fixed-ad').removeClass('disabled')})\r\n        \r\n        //Scroll Ads\r\n        var scrollAd = $('.scroll-ad');\r\n        function show_scroll_ad(){scrollAd.addClass('scroll-ad-visible');}\r\n        function hide_scroll_ad(){scrollAd.removeClass('scroll-ad-visible');}\r\n\r\n        //Scroll Over Page Top\r\n        setTimeout(function(){\r\n            var pageContentTopHeight = $('.page-content-top').height();\r\n            $('.page-content-top-clear').css('height', pageContentTopHeight);\r\n        },25);\r\n\r\n        \r\n        $(window).on('scroll', function () {\r\n            var pageContentTop = $('.page-title');\r\n            var total_scroll_height = document.body.scrollHeight\r\n            var pageContentTopHeightScroll = pageContentTop.height()    \r\n\r\n            var outside_top = ($(this).scrollTop() > pageContentTopHeightScroll);\r\n            var inside_top = ($(this).scrollTop() <= pageContentTopHeightScroll);\r\n            var inside_header = ($(this).scrollTop() <= 150);\r\n            var passed_header = ($(this).scrollTop() >= 0); //250  \r\n            var footer_reached = ($(this).scrollTop() >= (total_scroll_height - ($(window).height() + 300 )));\r\n\r\n            \r\n            if(outside_top == true){\r\n                $('.header-auto-show').addClass('header-active');\r\n                pageContentTop.css('opacity','0')\r\n            }     \r\n            if(inside_top == true){\r\n                $('.header-auto-show').removeClass('header-active');\r\n                pageContentTop.css('opacity','1')\r\n            }\r\n            if (inside_header === true) {\r\n                hide_back_to_top_badge();\r\n                hide_scroll_ad();\r\n                if(!pageContentTop.length){\r\n                    $('.header-auto-show').removeClass('header-active');\r\n                }\r\n            }\r\n            else if(passed_header === true){\r\n                show_back_to_top_badge();\r\n                show_scroll_ad();\r\n                if(!pageContentTop.length){\r\n                    $('.header-auto-show').addClass('header-active');\r\n                }\r\n            } \r\n            if (footer_reached == true){\r\n                hide_back_to_top_badge();\r\n                hide_scroll_ad();\r\n            }\r\n        });\r\n        \r\n        \r\n        //Visit Detection\r\n        var visitDetection = $('.visit-detection');\r\n        if(visitDetection.length){\r\n            var lastVisitValue = localStorage.getItem('Appkit-Last-Visited');\r\n            var d = new Date();\r\n            var strDate = d.getFullYear() + \"/\" + (d.getMonth()+1) + \"/\" + d.getDate();\r\n            var strTime = d.getHours() + \":\" + d.getMinutes() + \":\" + d.getSeconds();\r\n            if(!lastVisitValue){\r\n                $('.never-visited').show();\r\n                $('.before-visited').hide();\r\n                localStorage.setItem('Appkit-Last-Visited', '<br>Your last visit was ' + strDate +' at '+ strTime)\r\n            } else {\r\n                $('.visit-before-time').html(lastVisitValue);\r\n                $('.never-visited').hide();\r\n                $('.before-visited').show();\r\n                localStorage.setItem('Appkit-Last-Visited', '<br>Your last visit was ' + strDate +' at '+ strTime)\r\n            }\r\n        }        \r\n\r\n\r\n        //Tabs//\r\n        var tab = $('.tab-controls');\r\n        function activate_tabs(){\r\n            var tabTrigger = $('.tab-controls a');\r\n            tab.each(function(){\r\n                var tabItems = $(this).parent().find('.tab-controls').data('tab-items');\r\n                var tabWidth = $(this).width();\r\n                var tabActive = $(this).find('a[data-tab-active]');\r\n                var tabID = $('#'+tabActive.data('tab'));\r\n                var tabBg = $(this).data('tab-active');\r\n                $(this).find('a[data-tab]').css(\"width\", (100/tabItems)+'%');\r\n                tabActive.addClass(tabBg);\r\n                tabActive.addClass(tabBg);\r\n                tabID.slideDown(0);\r\n            });\r\n            tabTrigger.on('click',function(){\r\n                var tabData = $(this).data('tab');\r\n                var tabID = $('#'+tabData);\r\n                var tabContent = $(this).parent().parent().find('.tab-content');\r\n                var tabContent = $(this).parent().parent().parent().find('.tab-content');\r\n                var tabOrder = $(this).data('tab-order');\r\n                var tabBg = $(this).parent().parent().find('.tab-controls').data('tab-active');\r\n                $(this).parent().find(tabTrigger).removeClass(tabBg);\r\n                $(this).addClass(tabBg);\r\n                $(this).parent().find('a').removeClass('no-click');\r\n                $(this).addClass('no-click');\r\n                tabContent.slideUp(250);\r\n                tabID.slideDown(250);\r\n            });\r\n        }\r\n        if(tab.length){activate_tabs()}\r\n\r\n        //Text Resizer\r\n       $(\".text-size-increase\").click(function() {$(\".text-size-changer *\").css(\"font-size\",\"+=1\");}); \r\n       $(\".text-size-decrease\").click(function() {$(\".text-size-changer *\").css(\"font-size\",\"-=1\");});\r\n       $(\".text-size-default\").click(function() {$(\".text-size-changer *\").css(\"font-size\", \"\");});\r\n        \r\n        //Search Menu Functions\r\n        function search_menu(){\r\n            $('[data-search]').on('keyup', function() {\r\n                var searchVal = $(this).val();\r\n                if (searchVal != '') {\r\n                    $('.search-results').removeClass('disabled');\r\n                    $('[data-filter-item]').addClass('disabled');\r\n                    $('[data-filter-item][data-filter-name*=\"' + searchVal.toLowerCase() + '\"]').removeClass('disabled');\r\n                } \r\n                if (searchVal == '') {\r\n                    console.log('test')\r\n                    setTimeout(function(){$('.search-results').addClass('disabled');},10);\r\n                    $('[data-filter-item]').removeClass('disabled');\r\n                }\r\n\r\n                var searchTotalItems = $('.search-results [data-filter-item]').length;                \r\n                var search_results_error = $('.search-no-results');\r\n                var search_results_active = $('.search-results').find('[data-filter-item].disabled');\r\n                if (search_results_active.length == searchTotalItems) {\r\n                    $('.search-no-results').removeClass('disabled');\r\n                    $('.search-results').addClass('disabled');\r\n                }else{\r\n                    $('.search-no-results').addClass('disabled');\r\n                    $('.search-results').removeClass('disabled');\r\n                }            \r\n            });\r\n            return false;\r\n        }\r\n        search_menu();\r\n\r\n        //Owl Carousel Sliders\r\n        setTimeout(function(){\r\n            $('.user-slider').owlCarousel({loop:false, margin:20, nav:false, lazyLoad:true, items:1, autoplay: false, dots:false, autoplayTimeout:4000});\t\t\r\n            $('.news-slider').owlCarousel({loop:true, margin:20, nav:false, stagePadding:30, lazyLoad:true, items:5, autoplay: false, dots:false, autoplayTimeout:4000});\t\t\r\n            $('.topic-slider').owlCarousel({loop:true, margin:0, nav:false, stagePadding:40, lazyLoad:true, items:2, autoWidth:true, autoplay: false, dots:false, autoplayTimeout:4000});\t\t\r\n            $('.story-slider').owlCarousel({loop:true, margin:20, nav:false, stagePadding:30, lazyLoad:true, items:4, autoplay: false, dots:false, autoplayTimeout:4000});\t\t\r\n            $('.single-slider').owlCarousel({loop:true, margin:20, nav:false, lazyLoad:true, items:1, autoplay: true, autoplayTimeout:4000});\t\t\r\n            $('.fast-slider').owlCarousel({loop:true, margin:20, nav:false, lazyLoad:true, items:1, autoplay: true, autoplayTimeout:2000});\t\t\r\n            $('.boxed-slider').owlCarousel({loop:true, margin:20, stagePadding:50, nav:false, lazyLoad:true, items:1, autoplay: false, autoplayTimeout:4000});\t\t\r\n            $('.card-slider').owlCarousel({loop:true, margin:20, nav:false, lazyLoad:true, stagePadding:50, items:1, autoplay: true, autoplayTimeout:4000});\t\t\r\n            $('.cover-slider').owlCarousel({loop:false, margin:0, nav:false, lazyLoad:true, items:1, autoplay: true, autoplayTimeout:6000});\t\t\r\n            $('.double-slider').owlCarousel({loop: true, stagePadding:20, margin: 23, nav: false, items: 2,  dots: false});\t\t\r\n            $('.task-slider').owlCarousel({loop:true, margin:20, nav:false, stagePadding:50, lazyLoad:true, items:2, autoplay: false, autoplayTimeout:4000});\t\t\r\n            $('.next-slide, .next-slide-arrow, .next-slide-text, .cover-next').on('click',function(){$(this).parent().find('.owl-carousel').trigger('next.owl.carousel');});\t\t\r\n            $('.prev-slide, .prev-slide-arrow, .prev-slide-text, .cover-prev').on('click',function(){$(this).parent().find('.owl-carousel').trigger('prev.owl.carousel');});\t\t\r\n            $('.next-slide-user').on('click',function(){$(this).closest('.owl-carousel').trigger('next.owl.carousel');});\t\t\r\n            $('.prev-slide-user').on('click',function(){$(this).closest('.owl-carousel').trigger('prev.owl.carousel');});\t\t\r\n        },10);\r\n        setTimeout(function(){\r\n            $('.owl-prev, .owl-next').addClass('bg-highlight');\r\n        })\r\n\r\n        //Detect Mobile OS//\r\n        var isMobile = {\r\n            Android: function() {return navigator.userAgent.match(/Android/i);},\r\n            iOS: function() {return navigator.userAgent.match(/iPhone|iPad|iPod/i);},\r\n            Windows: function() {return navigator.userAgent.match(/IEMobile/i);},\r\n            any: function() {return (isMobile.Android() || isMobile.iOS() || isMobile.Windows());}\r\n        };\r\n        if (!isMobile.any()) {\r\n            $('body').addClass('is-not-ios');\r\n            $('.show-ios, .show-android').addClass('disabled');\r\n            $('.show-no-device').removeClass('disabled');\r\n        }\r\n        if (isMobile.Android()) {\r\n            $('body').addClass('is-not-ios');\r\n            $('head').append('<meta name=\"theme-color\" content=\"#FFFFFF\"> />');\r\n            $('.show-android').removeClass('disabled');\r\n            $('.show-ios, .show-no-device, .simulate-android, .simulate-iphones').addClass('disabled');\r\n        }\r\n        if (isMobile.iOS()) {\r\n            $('body').addClass('is-ios');\r\n            $('.show-ios').removeClass('disabled');\r\n            $('.show-android, .show-no-device, .simulate-android, .simulate-iphones').addClass('disabled');\r\n        }\r\n\r\n\r\n        //Toast, Snackbars and Notifications\r\n        $('[data-toast]').on('click',function(){\r\n            $('.toast, .snackbar-toast, .notification').toast('hide'); \r\n            $('#'+$(this).data('toast')).toast('show'); \r\n            return false;\r\n        });\r\n        $('[data-dismiss]').on('click',function(){\r\n            var thisData = $(this).data('dismiss');\r\n            $('#'+thisData).toast('hide');\r\n        });\r\n        \r\n        //Tooltips\r\n        $(function () {\r\n          $('[data-toggle=\"tooltip\"]').tooltip()\r\n        })\r\n        \r\n        //Cancel Collapse Jump on Click\r\n        if($('[data-toggle=\"collapse\"]').length){\r\n            $('[data-toggle=\"collapse\"]').on('click',function(e){\r\n                e.preventDefault();\r\n            });\r\n        }\r\n\r\n        \r\n\r\n        //Switches\r\n        $('.ios-input, .android-input, .classic-input').on('click',function(){\r\n            var id = $(this).attr('id');\r\n            var data = $('[data-switch='+id+']')\r\n            if(data.length){data.stop().animate({height: 'toggle'},250);}\r\n        });\r\n        $('[data-activate]').on('click',function(){\r\n            var activateCheck = $(this).data('activate');\r\n            $('#'+activateCheck).trigger('click');\r\n        });\r\n\r\n        $('[data-trigger-switch]').on('click',function(){\r\n            var thisID = $(this).data('trigger-switch');\r\n            if ($('#'+thisID).prop('checked')) {\r\n                $('#'+thisID).prop('checked', false);\r\n            } else {\r\n                $('#'+thisID).prop('checked', true);\r\n            }        \r\n        })\r\n\r\n        //Working Hours \r\n        var businessHours =  $('.business-hours');\r\n            function activate_business_hours(){\r\n            if(businessHours.length){\r\n                var getTime = new Date(Date.now());\r\n                var getDay = 'day-' + (new Date().toLocaleDateString('en', {weekday:'long'})).toLowerCase();\r\n                var timeNow = getTime.getHours() + \":\" + getTime.getMinutes();\r\n                var currentWorkDay =  $('.'+getDay);\r\n                var closedMessage = businessHours.data('closed-message').toString();\r\n                var closedMessageUnder = businessHours.data('closed-message-under').toString();\r\n                var openedMessage = businessHours.data('opened-message').toString();\r\n                var openedMessageUnder = businessHours.data('opened-message-under').toString();\r\n\r\n                var mondayOpen = $('[data-monday]').data('open');\r\n                var mondayClose = $('[data-monday]').data('close');\r\n                var mondayTime = \"'Monday' : ['\"+mondayOpen+\"','\"+mondayClose+\"'],\"\r\n\r\n\r\n                $('.business-hours').openingTimes({\r\n                    //SET OPENING HOURS BELOW\r\n                    openingTimes: {\r\n                        'Monday'    : ['08:00' ,'17:00' ],\r\n                        'Tuesday'   : ['08:00' ,'17:30' ],\r\n                        'Wednesday' : ['08:00' ,'17:00' ],\r\n                        'Thursday'  : ['08:00' ,'17:00' ],\r\n                        'Friday'    : ['09:00' ,'18:55' ],\r\n                        'Saturday'  : ['09:00' ,'12:00' ]\r\n                        //Sunday removed, that means it's closed.\r\n                    },\r\n                    openClass:\"bg-green-dark is-business-opened\",\r\n                    closedClass:\"bg-red-dark is-business-closed\"\r\n                });    \r\n                if(businessHours.hasClass('is-business-opened')){\r\n                    $('.show-business-opened').removeClass('disabled');\r\n                    $('.show-business-closed').addClass('disabled');\r\n                    businessHours.find('h1').html(openedMessage);\r\n                    businessHours.find('p').html(openedMessageUnder);\r\n                    businessHours.find('#business-hours-mail').remove();\r\n                    currentWorkDay.addClass('bg-green-dark');\r\n                } else {\r\n                    $('.show-business-opened').addClass('disabled');\r\n                    $('.show-business-closed').removeClass('disabled');\r\n                    businessHours.find('h1').html(closedMessage);\r\n                    businessHours.find('p').html(closedMessageUnder);\r\n                    businessHours.find('#business-hours-call').remove();\r\n                    currentWorkDay.addClass('bg-red-dark');\r\n                }\r\n\r\n                currentWorkDay.find('p').addClass('color-white');\r\n            };\r\n        }\r\n        if(businessHours.length){activate_business_hours()}\r\n\r\n        //Adding added-to-homescreen class to be targeted when used as PWA.\r\n        function ath(){\r\n            (function(a, b, c) {\r\n                if (c in b && b[c]) {\r\n                    var d, e = a.location,\r\n                        f = /^(a|html)$/i;\r\n                    a.addEventListener(\"click\", function(a) {\r\n                        d = a.target;\r\n                        while (!f.test(d.nodeName)) d = d.parentNode;\r\n                        \"href\" in d && (d.href.indexOf(\"http\") || ~d.href.indexOf(e.host)) && (a.preventDefault(), e.href = d.href)\r\n                    }, !1);\r\n                    $('.add-to-home').addClass('disabled');\r\n                    $('body').addClass('is-on-homescreen');\r\n                }\r\n            })(document, window.navigator, \"standalone\")\r\n        }\r\n        ath();\r\n        \r\n        //Add to Home Banners\r\n        $('.simulate-android-badge').on('click',function(){$('.add-to-home').removeClass('add-to-home-ios').addClass('add-to-home-visible add-to-home-android');});\r\n        $('.simulate-iphone-badge').on('click',function(){$('.add-to-home').removeClass('add-to-home-android').addClass('add-to-home-visible add-to-home-ios');});\r\n        $('.add-to-home').on('click',function(){$('.add-to-home').removeClass('add-to-home-visible');})\r\n        $('.simulate-android-banner').on('click',function(){$('#menu-install-pwa-android, .menu-hider').addClass('menu-active')})\r\n        $('.simulate-ios-banner').on('click',function(){$('#menu-install-pwa-ios, .menu-hider').addClass('menu-active')})\r\n        \r\n        \r\n        //Extending Card Features\r\n        function card_extender(){       \r\n            /*Set Page Content to Min 100vh*/\r\n            if($('.is-on-homescreen').length){\r\n                var pageTitle = $('.page-title').height;\r\n                var windowHeight = screen.height;\r\n                $('.page-content, #page').css('min-height', windowHeight - pageTitle);\r\n            } \r\n            if(!$('.is-on-homescreen').length){\r\n                var pageTitle = $('.page-title').height;\r\n                 var windowHeight = window.innerHeight\r\n                $('.page-content, #page').css('min-height', windowHeight - pageTitle);\r\n            } \r\n            \r\n            $('.card-full').css('min-height', windowHeight);\r\n\r\n            $('[data-card-height]').each(function(){\r\n                var cardHeight = $(this).data('card-height');\r\n                $(this).css('height', cardHeight);\r\n                if(cardHeight == \"cover\"){\r\n                    if(header.length && menuFooter.length){\r\n                       $(this).css('height', windowHeight) \r\n                       $('.map-full, .map-full iframe').css('height', windowHeight) \r\n                    } else {\r\n                       $(this).css('height', windowHeight)\r\n                       $('.map-full, .map-full iframe').css('height', windowHeight)\r\n                    }\r\n                }\r\n                if(cardHeight == \"cover-card\"){\r\n                   $(this).css('height', windowHeight  - 200) \r\n                   $('.map-full, .map-full iframe').css('height', windowHeight - 200) \r\n                }\r\n                if(cardHeight == \"story-card\"){\r\n                   $(this).css('height', windowHeight-80) \r\n                }\r\n            });\r\n        }\r\n        card_extender();\r\n\r\n        $(window).resize(function(){\r\n            card_extender();\r\n        });\r\n        \r\n        //Color Changer\r\n        function highlightLoader(){\r\n            $('[data-highlight-style]').on('click',function(){\r\n                $('.highlight-changer a').removeClass('menu-active');\r\n                $(this).addClass('menu-active');\r\n                var getHighlight = $(this).data('highlight-style');\r\n                localStorage.setItem('AppKit-Highlight', getHighlight);\r\n                $('#highlight').remove();\r\n                $('head').append( $('<link rel=\"stylesheet\" id=\"highlight\" type=\"text/css\" />').attr('href', getHighlight) );\r\n                return false;\r\n            });\r\n            var rememberHighlight = localStorage.getItem('AppKit-Highlight');\r\n            if (rememberHighlight != null){$('.highlight-changer a').removeClass('menu-active');}\r\n            $('a[data-highlight-style=\"'+rememberHighlight+'\"]').addClass('menu-active');\r\n            $('head').append( $('<link rel=\"stylesheet\" id=\"highlight\" type=\"text/css\" />').attr('href', rememberHighlight) );\r\n        }\r\n        highlightLoader();\r\n        \r\n        //Show Map\r\n        $('.show-map, .hide-map').on('click',function(){\r\n            $('.map-full .caption').toggleClass('deactivate-map');\r\n            $('.map-but-1, .map-but-2').toggleClass('deactivate-map');\r\n            $('.map-full .hide-map').toggleClass('activate-map');\r\n        });    \r\n\r\n\r\n        //Card Hovers\r\n        $('.card-scale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-scale-image');});  \r\n        $('.card-grayscale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-grayscale-image');});         \r\n        $('.card-rotate').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-rotate-image');});       \r\n        $('.card-blur').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-blur-image');});      \r\n        $('.card-hide').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('.card-center, .card-bottom, .card-top, .card-overlay').toggleClass('card-hide-image');});\r\n\r\n\r\n        //Reading Time\r\n        $('#reading-progress-text').each(function(i) {\r\n            var readingWords = $(this).text().split(' ').length;\r\n            var readingMinutes = Math.floor(readingWords / 250);\r\n            var readingSeconds = readingWords % 60\r\n            $('.reading-progress-words').append(readingWords);\r\n            $('.reading-progress-time').append(readingMinutes + ':' + readingSeconds);\r\n        });      \r\n\r\n        //Timed Ads\r\n        var menuHider = $('.menuHider');\r\n        if($('[data-auto-show-ad]').length){\r\n            var time = $('[data-auto-show-ad]').data('auto-show-ad');\r\n            setTimeout(function(){\r\n                $('[data-auto-show-ad]').trigger('click');\r\n            },time*1000);\r\n        }\r\n        $('[data-timed-ad]').on('click', function(){            \r\n            var counter = $(this).data('timed-ad');\r\n            var adwin = $('#'+$(this).data('menu'));\r\n            menuHider.addClass('no-click');\r\n            adwin.find('.ad-time-close').addClass('no-click');\r\n            adwin.find('.ad-time-close i').addClass('disabled');\r\n            adwin.find('.ad-time-close span').removeClass('disabled');\r\n\r\n            var interval = setInterval(function() {\r\n                counter--;\r\n                // Display 'counter' wherever you want to display it.\r\n                if (counter <= 0) {\r\n                    menuHider.removeClass('no-click');\r\n                    adwin.find('.ad-time-close').removeClass('no-click');\r\n                    adwin.find('.ad-time-close i').removeClass('disabled');\r\n                    adwin.find('.ad-time-close span').addClass('disabled');\r\n                    clearInterval(interval);\r\n                    return;\r\n                }else{\r\n                    adwin.find('.ad-time-close span').html(counter);\r\n                }\r\n            }, 1000);\r\n        });\r\n\r\n        //Countdown\r\n        function countdown(dateEnd) {\r\n            var timer, years, days, hours, minutes, seconds;\r\n            dateEnd = new Date(dateEnd);\r\n            dateEnd = dateEnd.getTime();\r\n            if (isNaN(dateEnd)) {return;}\r\n            timer = setInterval(calculate, 1);\r\n            function calculate() {\r\n                var dateStart = new Date();\r\n                var dateStart = new Date(dateStart.getUTCFullYear(), dateStart.getUTCMonth(), dateStart.getUTCDate(), dateStart.getUTCHours(), dateStart.getUTCMinutes(), dateStart.getUTCSeconds());\r\n                var timeRemaining = parseInt((dateEnd - dateStart.getTime()) / 1000)\r\n                if (timeRemaining >= 0) {\r\n                    years = parseInt(timeRemaining / 31536000);\r\n                    timeRemaining = (timeRemaining % 31536000);\r\n                    days = parseInt(timeRemaining / 86400);\r\n                    timeRemaining = (timeRemaining % 86400);\r\n                    hours = parseInt(timeRemaining / 3600);\r\n                    timeRemaining = (timeRemaining % 3600);\r\n                    minutes = parseInt(timeRemaining / 60);\r\n                    timeRemaining = (timeRemaining % 60);\r\n                    seconds = parseInt(timeRemaining);\r\n                    if ($('.countdown').length) {\r\n                        $(\".countdown #years\")[0].innerHTML = parseInt(years, 10);\r\n                        $(\".countdown #days\")[0].innerHTML = parseInt(days, 10);\r\n                        $(\".countdown #hours\")[0].innerHTML = (\"0\" + hours).slice(-2);\r\n                        $(\".countdown #minutes\")[0].innerHTML = (\"0\" + minutes).slice(-2);\r\n                        $(\".countdown #seconds\")[0].innerHTML = (\"0\" + seconds).slice(-2);\r\n                    }\r\n                } else {return;}\r\n            }\r\n\r\n            function display(days, hours, minutes, seconds) {}\r\n        }\r\n        countdown('01/19/2030 03:14:07 AM');\r\n\r\n        //Accordion Icons\r\n        $('.accordion-btn').on('click',function(){\r\n            $(this).addClass('no-click');\r\n            $('.accordion-icon').removeClass('rotate-180');\r\n            if($(this).attr(\"aria-expanded\") == \"true\"){\r\n                $(this).parent().find('.accordion-icon').removeClass('rotate-180');\r\n            } else {\r\n                $(this).parent().find('.accordion-icon').addClass('rotate-180');\r\n            }\r\n            setTimeout(function(){$('.accordion-btn').removeClass('no-click');},250);\r\n        })\r\n\r\n        //Caption Hovers\r\n        $('.caption-scale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-scale-image');});  \r\n        $('.caption-grayscale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-grayscale-image');});         \r\n        $('.caption-rotate').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-rotate-image');});       \r\n        $('.caption-blur').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-blur-image');});      \r\n        $('.caption-hide').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('.caption-center, .caption-bottom, .caption-top, .caption-overlay').toggleClass('caption-hide-image');});\r\n\r\n        //File Upload\r\n        var uploadFile = $('.upload-file');\r\n        function activate_upload_file(){\r\n            function readURL(input) {\r\n                if (input.files && input.files[0]) {\r\n                var reader = new FileReader();\r\n                reader.onload = function(e) {\r\n                        $('.file-data img').attr('src', e.target.result);\r\n                        $('.file-data img').attr('class','img-fluid rounded-xs mt-4');\r\n                    }\r\n                    reader.readAsDataURL(input.files[0]);\r\n                }\r\n            }\r\n            $(\".upload-file\").change(function(e) {\r\n                readURL(this);\r\n                var fileName = e.target.files[0].name;\r\n                $('.upload-file-data').removeClass('disabled');\r\n                $('.upload-file-name').html(e.target.files[0].name)\r\n                $('.upload-file-modified').html(e.target.files[0].lastModifiedDate);\r\n                $('.upload-file-size').html(e.target.files[0].size/1000+'kb')\r\n                $('.upload-file-type').html(e.target.files[0].type)\r\n            });\r\n        };\r\n        if(uploadFile.length){activate_upload_file();}\r\n        \r\n        //Interest Check\r\n        \r\n\r\n        //Task List Check on Click\r\n        var todo = $('.todo-list');\r\n        function activate_todo_list(){\r\n            $('.todo-list a').each(function(){\r\n                if($(this).find('.form-check-input').prop('checked')){\r\n                    $(this).addClass('opacity-70');\r\n                } else {\r\n                    $(this).removeClass('opacity-70');\r\n                }\r\n            })\r\n            $('.todo-list a').on('click',function(){\r\n                if($(this).find('input').attr('checked')){\r\n                    $(this).removeClass('opacity-70')\r\n                    $(this).find('input').removeAttr('checked')\r\n                } else {\r\n                    $(this).addClass('opacity-70')\r\n                    $(this).find('input').attr('checked','true')\r\n                }\r\n                return false;\r\n            })\r\n        }\r\n        if(todo.length){activate_todo_list();}\r\n        \r\n        var checkedCard = $('.check-card');\r\n        function activate_checked_card(){\r\n            $('.check-card').on('click',function(){\r\n                if($(this).find('input').attr('checked')){\r\n                    $('.check-card').find('input').removeAttr('checked')\r\n                    $(this).find('input').removeAttr('checked')\r\n                } else {\r\n                    $('.check-card').find('input').removeAttr('checked')\r\n                    $(this).find('input').attr('checked','true')\r\n                }\r\n                return false;\r\n            })\r\n        }\r\n        if(checkedCard.length){activate_checked_card();}\r\n\r\n        //Age Verification\r\n        var checkAge = $('.check-age');\r\n        function activate_age_checker(){\r\n            console.log('active');\r\n        $(\".check-age\").on('click',function(){    \r\n            var dateBirghtDay = $(\"#date-birth-day\").val();\r\n            var dateBirthMonth = $(\"#date-birth-month\").val();\r\n            var dateBirthYear = $(\"#date-birth-year\").val();\r\n            var age = 18;\r\n            var mydate = new Date();\r\n            mydate.setFullYear(dateBirthYear, dateBirthMonth-1, dateBirghtDay);\r\n\r\n            var currdate = new Date();\r\n            var setDate = new Date();\r\n            setDate.setFullYear(mydate.getFullYear() + age, dateBirthMonth-1, dateBirghtDay);\r\n\r\n            if ((currdate - setDate) > 0){\r\n                console.log(\"above 18\");\r\n                $('#menu-age').removeClass('menu-active')\r\n                $('#menu-age-okay').addClass('menu-active');\r\n            }else{\r\n                $('#menu-age').removeClass('menu-active')\r\n                $('#menu-age-fail').addClass('menu-active');\r\n            }\r\n            return true;\r\n        });\r\n        } \r\n        if(checkAge.length){activate_age_checker();}\r\n\r\n\r\n        //Geolocation\r\n        var geoLocation = $('.get-location');\r\n        function activate_geolocation(){\r\n            if (\"geolocation\" in navigator) {\r\n                $('.location-support').html('Your browser and device <strong class=\"color-green-dark\">support</strong> Geolocation.');\r\n            } else {\r\n                $('.location-support').html('Your browser and device <strong class=\"color-red-dark\">support</strong> Geolocation.');\r\n            }\r\n            function geoLocate() {\r\n                const locationCoordinates = document.querySelector('.location-coordinates');\r\n                function success(position) {\r\n                    const latitude  = position.coords.latitude;\r\n                    const longitude = position.coords.longitude;\r\n                    locationCoordinates.innerHTML = '<strong>Longitude:</strong> ' + longitude + '<br><strong>Latitude:</strong> '+ latitude;\r\n\r\n                    var mapL1 = 'http://maps.google.com/maps?q=';\r\n                    var mapL2 = latitude+',';\r\n                    var mapL3 = longitude;\r\n                    var mapL4 = '&z=18&t=h&output=embed'\r\n                    var mapL5 = '&z=18&t=h'\r\n                    var mapLinkEmbed = mapL1 + mapL2 + mapL3 + mapL4;\r\n                    var mapLinkAddress = mapL1 + mapL2 + mapL3 + mapL5;\r\n\r\n                    $('.location-map').after('<iframe class=\"location-map\" src=\"'+mapLinkEmbed+'\"></iframe> <div class=\"clearfix\"></div>');\r\n                    $('.location-map').parent().after(' <a href='+mapLinkAddress+' class=\"btn btn-full btn-l bg-red-dark rounded-0 font-700 mb-n1\">View on Google Maps</a>');\r\n                }\r\n                function error() {\r\n                    locationCoordinates.textContent = 'Unable to retrieve your location';\r\n                }\r\n                if (!navigator.geolocation) {\r\n                    locationCoordinates.textContent = 'Geolocation is not supported by your browser';\r\n                } else {\r\n                    locationCoordinates.textContent = 'Locating';\r\n                    navigator.geolocation.getCurrentPosition(success, error);\r\n                }\r\n            }\r\n            $('.get-location').on('click',function(){\r\n                $(this).addClass('disabled');\r\n                geoLocate();\r\n            });\r\n        };\r\n        if(geoLocation.length){activate_geolocation();}\r\n\r\n        var emailValidator = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\\.)+[A-Z]{2,4}$/i;\r\n        var phoneValidator = /^((\\+[1-9]{1,4}[ \\-]*)|(\\([0-9]{2,3}\\)[ \\-]*)|([0-9]{2,4})[ \\-]*)*?[0-9]{3,4}?[ \\-]*[0-9]{3,4}?$/;\r\n        var nameValidator = /[A-Za-z]{2}[A-Za-z]*[ ]?[A-Za-z]*/;\r\n        var passwordValidator = /[A-Za-z]{2}[A-Za-z]*[ ]?[A-Za-z]*/;\r\n        var urlValidator = /^(http|https)?:\\/\\/[a-zA-Z0-9-\\.]+\\.[a-z]{2,4}/;\r\n        var textareaValidator = /[A-Za-z]{2}[A-Za-z]*[ ]?[A-Za-z]*/;\r\n        var validIcon = \"<i class='fa fa-check color-green-dark'></i>\";\r\n        var invalidIcon = \"<i class='fa fa-exclamation-triangle color-red-light'></i>\";\r\n\r\n        $('.input-required input, .input-required select, .input-required textarea').on('focusin keyup',function(){\r\n            var spanValue = $(this).parent().find('span').text();\r\n            if($(this).val() != spanValue && $(this).val() != \"\"){\r\n                $(this).parent().find('span').addClass('input-style-1-active').removeClass('input-style-1-inactive');\r\n            }    \r\n            if($(this).val() === \"\"){\r\n                $(this).parent().find('span').removeClass('input-style-1-inactive input-style-1-active');\r\n            }\r\n        });      \r\n        $('.input-required input, .input-required select, .input-required textarea').on('focusout',function(){\r\n            var spanValue = $(this).parent().find('span').text();\r\n            if($(this).val() === \"\"){\r\n                $(this).parent().find('span').removeClass('input-style-1-inactive input-style-1-active');\r\n            }\r\n            $(this).parent().find('span').addClass('input-style-1-inactive')\r\n        });\r\n        $('.input-required select').on('focusout',function(){\r\n            var getValue = $(this)[0].value;\r\n            if(getValue === \"default\"){\r\n                $(this).parent().find('em').html(invalidIcon)\r\n                $(this).parent().find('span').removeClass('input-style-1-inactive input-style-1-active');\r\n            } \r\n            if(getValue != \"default\"){\r\n                $(this).parent().find('em').html(validIcon)\r\n            }                \r\n        });\r\n        $('.input-required input[type=\"email\"]').on('focusout',function(){if (emailValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === \"\"){$(this).parent().find('em').html(\"(required)\");}else{$(this).parent().find('em').html(invalidIcon);}}});       \r\n        $('.input-required input[type=\"tel\"]').on('focusout',function(){if (phoneValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === \"\"){$(this).parent().find('em').html(\"(required)\");}else{$(this).parent().find('em').html(invalidIcon);}}});\r\n        $('.input-required input[type=\"password\"]').on('focusout',function(){if (passwordValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === \"\"){$(this).parent().find('em').html(\"(required)\");}else{$(this).parent().find('em').html(invalidIcon);}}});          \r\n        $('.input-required input[type=\"url\"]').on('focusout',function(){if (urlValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === \"\"){$(this).parent().find('em').html(\"(required)\");}else{$(this).parent().find('em').html(invalidIcon);}}});  \r\n        $('.input-required input[type=\"name\"]').on('focusout',function(){if (nameValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === \"\"){$(this).parent().find('em').html(\"(required)\");}else{$(this).parent().find('em').html(invalidIcon);}}});      \r\n        $('.input-required textarea').on('focusout',function(){if (textareaValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === \"\"){$(this).parent().find('em').html(\"(required)\");}else{$(this).parent().find('em').html(invalidIcon);}}});  \r\n\r\n\r\n        //Set Today Date to Date Inputs\r\n        Date.prototype.toDateInputValue = (function() {\r\n            var local = new Date(this);\r\n            local.setMinutes(this.getMinutes() - this.getTimezoneOffset());\r\n            return local.toJSON().slice(0,10);\r\n        });\r\n        $('input[type=\"date\"]').val(new Date().toDateInputValue());\r\n\r\n        //QR Generator\r\n        var generateQR = $('.generate-qr-result, .generate-qr-auto');\r\n        function activate_qr_generator(){\r\n            //QR Code Generator \r\n            var qr_auto_link = window.location.href;\r\n            var qr_api_address = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=';\r\n\r\n            $('.generate-qr-auto').attr('src', qr_api_address+qr_auto_link)\r\n            $('.generate-qr-button').on('click',function(){\r\n                if($(this).parent().find('.fa').hasClass('fa-exclamation-triangle')){\r\n                    console.log('Invalid URL');\r\n                } else {\r\n                    var get_qr_url = $('.generate-qr-input').val();\r\n                    if(!get_qr_url == ''){\r\n                        $('.generate-qr-result').empty();\r\n                        setTimeout(function(){\r\n                            $('.generate-qr-result').append('<img class=\"mx-auto polaroid-effect shadow-l mt-4 delete-qr\" width=\"200\" src=\"'+qr_api_address+get_qr_url+'\" alt=\"img\"><p class=\"font-11 text-center mb-0\">'+get_qr_url+'</p>')\r\n                        },30);\r\n                    }\r\n                }\r\n            });\r\n        }\r\n        if(generateQR.length){activate_qr_generator();}\r\n\r\n        //Vibrate Buttons\r\n        var vibrateButton = $('[data-vibrate]');\r\n        function activate_vibration(){\r\n            $('[data-vibrate]').on('click',function(){var vibrateTime = $(this).data('vibrate'); window.navigator.vibrate(vibrateTime);});\r\n            $('.start-vibrating').on('click',function(){var vibrateTimeInput = $('.vibrate-demo').val(); window.navigator.vibrate(vibrateTimeInput);})\r\n            $('.stop-vibrating').on('click',function(){window.navigator.vibrate(0); $('.vibrate-demo').val(''); });\r\n        }\r\n        if(vibrateButton.length){\r\n            activate_vibration();\r\n        }\r\n\r\n        //Sharing\r\n        function sharingLinks(){\r\n            var share_link = window.location.href;\r\n            var share_title = document.title;\r\n            $('.shareToFacebook').prop(\"href\", \"https://www.facebook.com/sharer/sharer.php?u=\"+share_link)\r\n            $('.shareToLinkedIn').prop(\"href\", \"https://www.linkedin.com/shareArticle?mini=true&url=\"+share_link+\"&title=\"+share_title+\"&summary=&source=\")\r\n            $('.shareToTwitter').prop(\"href\", \"https://twitter.com/home?status=\"+share_link)\r\n            $('.shareToPinterest').prop(\"href\", \"https://pinterest.com/pin/create/button/?url=\" + share_link)\r\n            $('.shareToWhatsApp').prop(\"href\", \"whatsapp://send?text=\" + share_link)\r\n            $('.shareToMail').prop(\"href\", \"mailto:?body=\" + share_link);\r\n            //Copy Link\r\n            $('.shareToCopyLink').on('click',function(element){\r\n                $(this).parent().find('p').html('Link Copied');\r\n                $(this).removeClass('color-blue-dark').addClass('color-green-dark');\r\n                $(this).find('i').attr('class','');\r\n                $(this).find('i').attr('class','fa fa-check font-12');\r\n                setTimeout(function(){\r\n                    $('.shareToCopyLink').parent().find('p').html('Copy Link');\r\n                    $('.shareToCopyLink').removeClass('color-green-dark').addClass('color-blue-dark');\r\n                    $('.shareToCopyLink').find('i').attr('class','');\r\n                    $('.shareToCopyLink').find('i').attr('class','fa fa-link font-14');\r\n                },1000);\r\n                var $temp = $(\"<input>\");\r\n                $(\"body\").append($temp);\r\n                $temp.val(share_link).select();\r\n                document.execCommand(\"copy\");\r\n                $temp.remove();\r\n            });\r\n\r\n        };\r\n        sharingLinks();\r\n\r\n        //Preload Image\r\n        var preloadImages = $('.preload-img');\r\n        $(function() {preloadImages.lazyload({threshold : 500});});\r\n\r\n        //LightBox\r\n        $('[data-lightbox]').addClass('default-link');\r\n        lightbox.option({alwaysShowNavOnTouchDevices:true, 'resizeDuration': 200, 'wrapAround': false})\r\n        $('#lightbox').hammer().on(\"swipe\", function (event) {\r\n            if (event.gesture.direction === 4) {\r\n                $('#lightbox a.lb-prev').trigger('click');\r\n            } else if (event.gesture.direction === 2) {\r\n                $('#lightbox a.lb-next').trigger('click');\r\n            }\r\n        });\r\n        \r\n        \r\n\r\n        //Filterable\r\n        if($('.gallery-filter-links').length > 0){ \r\n            $('.gallery-filter-links').filterizr();\r\n            $('.gallery-filter-active').addClass('color-highlight');\r\n        }\t\t\r\n        if($('.gallery-filter-select').length > 0){\r\n            $('.gallery-filter-select').filterizr();\r\n            $('#filter-select').change(function(){\r\n                var filterFind = $(this).val(); \r\n                $('[data-filter='+filterFind+']').trigger('click');\r\n            })\r\n        }\r\n        $('.gallery-filter-controls li').on('click',function(){\r\n            $('.gallery-filter-controls li').removeClass('gallery-filter-active color-highlight');\t\r\n            $(this).addClass('gallery-filter-active color-highlight');\t\r\n        });\r\n\r\n        //Gallery Views // Added in 2.0\r\n        var galleryViews = $('.gallery-views');\r\n        var galleryViewControls = $('.gallery-view-controls a');\r\n        var galleryView1 = $('.gallery-view-1-activate');\r\n        var galleryView2 = $('.gallery-view-2-activate');\r\n        var galleryView3 = $('.gallery-view-3-activate');\r\n\r\n        galleryView1.on('click',function(){\r\n            galleryViewControls.removeClass('color-highlight');\r\n            $(this).addClass('color-highlight');\r\n            galleryViews.removeClass().addClass('gallery-views gallery-view-1');\r\n        });\r\n        galleryView2.on('click',function(){\r\n            galleryViewControls.removeClass('color-highlight');\r\n            $(this).addClass('color-highlight');\r\n            galleryViews.removeClass().addClass('gallery-views gallery-view-2');\r\n        });  \r\n        galleryView3.on('click',function(){\r\n            galleryViewControls.removeClass('color-highlight');\r\n            $(this).addClass('color-highlight');\r\n            galleryViews.removeClass().addClass('gallery-views gallery-view-3');\r\n        });\r\n\r\n        //Contact Form\r\n        var formSubmitted = \"false\";\r\n        jQuery(document).ready(function(e) {\r\n            function t(t, n) {\r\n                formSubmitted = \"true\";\r\n                var r = e(\"#\" + t).serialize();\r\n                e.post(e(\"#\" + t).attr(\"action\"), r, function(n) {\r\n                    e(\"#\" + t).addClass('disabled');\r\n                    $('.contact-form').addClass('disabled');\r\n                    e(\".formSuccessMessageWrap\").fadeIn(500)\r\n                })\r\n            }\r\n            function n(n, r) {\r\n                e(\".formValidationError\").hide();\r\n                e(\".fieldHasError\").removeClass(\"fieldHasError\");\r\n                e(\"#\" + n + \" .requiredField\").each(function(i) {\r\n                    if (e(this).val() == \"\" || e(this).val() == e(this).attr(\"data-dummy\")) {\r\n                        e(this).val(e(this).attr(\"data-dummy\"));\r\n                        e(this).focus();\r\n                        e(this).addClass(\"fieldHasError\");\r\n                        e(\"#\" + e(this).attr(\"id\") + \"Error\").fadeIn(300);\r\n                        return false\r\n                    }\r\n                    if (e(this).hasClass(\"requiredEmailField\")) {\r\n                        var s = /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$/;\r\n                        var o = \"#\" + e(this).attr(\"id\");\r\n                        if (!s.test(e(o).val())) {\r\n                            e(o).focus();\r\n                            e(o).addClass(\"fieldHasError\");\r\n                            e(o + \"Error2\").fadeIn(300);\r\n                            return false\r\n                        }\r\n                    }\r\n                    if (formSubmitted == \"false\" && i == e(\"#\" + n + \" .requiredField\").length - 1) {\r\n                        t(n, r)\r\n                    }\r\n                })\r\n            }\r\n            e(\".formSuccessMessageWrap\").hide(0);\r\n            e(\".formValidationError\").fadeOut(0);\r\n            e('input[type=\"text\"], input[type=\"password\"], textarea').focus(function() {\r\n                if (e(this).val() == e(this).attr(\"data-dummy\")) {\r\n                    e(this).val(\"\")\r\n                }\r\n            });\r\n            e(\"input, textarea\").blur(function() {\r\n                if (e(this).val() == \"\") {\r\n                    e(this).val(e(this).attr(\"data-dummy\"))\r\n                }\r\n            });\r\n            e(\".contactSubmitButton\").on('click',function() {\r\n                n(e(this).attr(\"data-formId\"));\r\n                return false\r\n            })\r\n        });\r\n        \r\n        //Charts\r\n\t\tif($('.chart').length > 0){\r\n\t\t\tvar loadJS = function(url, implementationCode, location){\r\n\t\t\t\tvar scriptTag = document.createElement('script');\r\n\t\t\t\tscriptTag.src = url;\r\n\t\t\t\tscriptTag.onload = implementationCode;\r\n\t\t\t\tscriptTag.onreadystatechange = implementationCode;\r\n\t\t\t\tlocation.appendChild(scriptTag);\r\n\t\t\t};\r\n\t\t\tvar call_charts_to_page = function(){\r\n                \r\n                var walletChart = $('#wallet-chart');\r\n                var pieChart = $('#pie-chart');\r\n                var doughnutChart = $('#doughnut-chart');\r\n                var polarChart = $('#polar-chart');\r\n                var verticalChart = $('#vertical-chart');\r\n                var horizontalChart = $('#horizontal-chart');\r\n                var lineChart = $('#line-chart');\r\n\r\n                if(walletChart.length){\r\n                    var walletDemoChart = new Chart(walletChart, {\r\n                        type: 'bar',\r\n                        data: {\r\n                          labels: [\"Jun\", \"Jul\", \"Aug\"],\r\n                          datasets: [\r\n                            {\r\n                              label: \"Expenses\",\r\n                              backgroundColor: \"#ED5565\",\r\n                              data: [100,100,130]\r\n                            }, {\r\n                              label: \"Income\",\r\n                              backgroundColor: \"#A0D468\",\r\n                              data: [170,145,165]\r\n                            }, {\r\n                              label: \"Subscriptions\",\r\n                              backgroundColor: \"#4A89DC\",\r\n                              data: [71,50,70]\r\n                            }\r\n                          ]\r\n                        },\r\n                        options: {\r\n                            responsive: true, maintainAspectRatio:false,\r\n                            legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},\r\n                            title: {display: false}\r\n                        }\r\n                    });\t\r\n                }\r\n                \r\n                if(pieChart.length){\r\n                    var pieDemoChart = new Chart(pieChart, {\r\n                        type: 'pie',\r\n                        data: {\r\n                          labels: [\"Facebook\", \"Twitter\", \"WhatsApp\"],\r\n                          datasets: [{\r\n                            backgroundColor: [\"#4A89DC\", \"#4FC1E9\", \"#A0D468\"],\r\n                            borderColor:\"rgba(255,255,255,0.5)\",\r\n                            data: [7000,3000,2000]\r\n                          }]\r\n                        },\r\n                        options: {\r\n                            responsive: true, maintainAspectRatio:false,\r\n                            legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},\r\n                            tooltips:{enabled:true}, animation:{duration:1500}\r\n                        }\r\n                    });\t\t\r\n                }\r\n\r\n                if(doughnutChart.length){\r\n                    var doughnutDemoChart = new Chart(doughnutChart, {\r\n                        type: 'doughnut',\r\n                        data: {\r\n                          labels: [\"Apple\", \"Samsung\", \"Google\"],\r\n                          datasets: [{\r\n                            backgroundColor: [\"#CCD1D9\", \"#5D9CEC\",\"#FC6E51\"],\r\n                            borderColor:\"rgba(255,255,255,0.5)\",\r\n                            data: [5500,4000,3000]\r\n                          }]\r\n                        },\r\n                        options: {\r\n                            responsive: true, maintainAspectRatio:false,\r\n                            legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},\r\n                            tooltips:{enabled:true}, animation:{duration:1500}, layout:{ padding: {bottom: 30}}\r\n                        }\r\n                    });\t\t\r\n                }\r\n\r\n                if(polarChart.length){\r\n                    var polarDemoChart = new Chart(polarChart, {\r\n                        type: 'polarArea',\r\n                        data: {\r\n                          labels: [\"Windows\", \"Mac\", \"Linux\"],\r\n                          datasets: [{\r\n                            backgroundColor: [\"#CCD1D9\", \"#5D9CEC\",\"#FC6E51\"],\r\n                            borderColor:\"rgba(255,255,255,0.5)\",\r\n                            data: [7000,10000,5000]\r\n                          }]\r\n                        },\r\n                        options: {\r\n                            responsive: true, maintainAspectRatio:false,\r\n                            legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},\r\n                            tooltips:{enabled:true}, animation:{duration:1500}, layout:{ padding: {bottom: 30}}\r\n                        }\r\n                    });\t\r\n                }\r\n\r\n                if (verticalChart.length){\r\n                    var verticalDemoChart = new Chart(verticalChart, {\r\n                        type: 'bar',\r\n                        data: {\r\n                          labels: [\"2010\", \"2015\", \"2020\",],\r\n                          datasets: [\r\n                            {\r\n                              label: \"iOS\",\r\n                              backgroundColor: \"#A0D468\",\r\n                              data: [900,1000,1150]\r\n                            }, {\r\n                              label: \"Android\",\r\n                              backgroundColor: \"#4A89DC\",\r\n                              data: [890,950,1100]\r\n                            }\r\n                          ]\r\n                        },\r\n                        options: {\r\n                            responsive: true, maintainAspectRatio:false,\r\n                            legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},\r\n                            title: {display: false}\r\n                        }\r\n                    });\t\r\n                }\r\n\r\n                if(horizontalChart.length){\r\n                    var horizontalDemoChart = new Chart(horizontalChart, {\r\n                        type: 'horizontalBar',\r\n                        data: {\r\n                          labels: [\"2010\", \"2013\", \"2016\", \"2020\"],\r\n                          datasets: [\r\n                            {\r\n                              label: \"Mobile\",\r\n                              backgroundColor: \"#BF263C\",\r\n                              data: [330,400,580,590]\r\n                            }, {\r\n                              label: \"Responsive\",\r\n                              backgroundColor: \"#EC87C0\",\r\n                              data: [390,450,550,570]\r\n                            }\r\n                          ]\r\n                        },\r\n                        options: {\r\n                            legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},\r\n                            title: {display: false}\r\n                        }\r\n                    });\t\r\n                }\r\n\r\n                if(lineChart.length){\r\n                    var lineDemoChart = new Chart(lineChart, {\r\n                      type: 'line',\r\n                      data: {\r\n                        labels: [2000,2005,2010,2015,2010],\r\n                        datasets: [{ \r\n                            data: [500,400,300,200,300],\r\n                            label: \"Desktop Web\",\r\n                            borderColor: \"#D8334A\"\r\n                          }, { \r\n                            data: [0,100,300,400,500],\r\n                            label: \"Mobile Web\",\r\n                            borderColor: \"#4A89DC\"\r\n                          }\r\n                        ]\r\n                      },\r\n                      options: {\r\n                        responsive: true, maintainAspectRatio:false,\r\n                        legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},\r\n                        title: {display: false}\r\n                      }\r\n                    });\r\n                }\r\n\t\t\t}\r\n\t\t\tloadJS('scripts/charts.js', call_charts_to_page, document.body);\r\n\t\t}        \r\n        \r\n        //Activate the PWA    \r\n        if(pwaEnabled === true){\r\n            \r\n            //Setting Timeout Before Prompt Shows Again if Dismissed\r\n            var now = new Date(); var start = new Date(now.getFullYear(), 0, 0); var diff = now - start; var oneDay = 1000 * 60 * 60 * 24; var day = Math.floor(diff / oneDay);\r\n            var dismissDate = localStorage.getItem('Appkit-PWA-Timeout-Value');\r\n            if((day - dismissDate) > pwaRemind){\r\n                localStorage.removeItem('Appkit-PWA-Prompt')\r\n            } \r\n                \r\n            //Dismiss Prompt Button\r\n            $('.pwa-dismiss').on('click',function(){\r\n                console.log('User Closed Add to Home / PWA Prompt')\r\n                localStorage.setItem('Appkit-PWA-Prompt', 'install-rejected');\r\n                $('body').find('#menu-install-pwa-android, #menu-install-pwa-ios, .menu-hider').removeClass('menu-active'); \r\n                localStorage.setItem('Appkit-PWA-Timeout-Value', day);\r\n            });\r\n\r\n            //Detecting Mobile Operating Systems\r\n            var isMobile = {\r\n                Android: function() {return navigator.userAgent.match(/Android/i);},\r\n                iOS: function() {return navigator.userAgent.match(/iPhone|iPad|iPod/i);},\r\n                any: function() {return (isMobile.Android() || isMobile.iOS() || isMobile.Windows());}\r\n            };\r\n            var isInWebAppiOS = (window.navigator.standalone == true);\r\n            var isInWebAppChrome = (window.matchMedia('(display-mode: standalone)').matches);\r\n\r\n            //Trigger Install Prompt for Android\r\n            if (isMobile.Android()) {\r\n                function showInstallPrompt(){\r\n                    if($('#menu-install-pwa-android, .add-to-home').length){\r\n                        if (localStorage.getItem('Appkit-PWA-Prompt') != \"install-rejected\") {\r\n                            setTimeout(function(){\r\n                                $('.add-to-home').addClass('add-to-home-visible add-to-home-android');\r\n                                $('#menu-install-pwa-android, .menu-hider').addClass('menu-active')\r\n                            },4500);\r\n                            console.log('Triggering PWA Window for Android');\r\n                        } else {\r\n                            console.log('PWA Install Rejected. Will Show Again in '+ (dismissDate-day + pwaRemind)+' Days')\r\n                        }\r\n                    } else {\r\n                        console.log('The div #menu-install-pwa-android was not found. Please add this div to show the install window')\r\n                    }\r\n                }\r\n                let deferredPrompt;\r\n                window.addEventListener('beforeinstallprompt', (e) => {\r\n                    e.preventDefault();\r\n                    deferredPrompt = e;\r\n                    showInstallPrompt();\r\n                });\r\n                $('.pwa-install').on('click',function(e){\r\n                  deferredPrompt.prompt();\r\n                  deferredPrompt.userChoice\r\n                    .then((choiceResult) => {\r\n                      if (choiceResult.outcome === 'accepted') {\r\n                        //console.log('User accepted the A2HS prompt');\r\n                      } else {\r\n                        //console.log('User dismissed the A2HS prompt');\r\n                      }\r\n                      deferredPrompt = null;\r\n                    });\r\n                });\r\n                window.addEventListener('appinstalled', (evt) => {\r\n                    $('#menu-install-pwa-android, .menu-hider').removeClass('menu-active')\r\n                });\r\n            }  \r\n\r\n            //Trigger Install Guide iOS\r\n            if (isMobile.iOS()) {\r\n                if(!isInWebAppiOS){\r\n                    if($('#menu-install-pwa-ios, .add-to-home').length){\r\n                        if (localStorage.getItem('Appkit-PWA-Prompt') != \"install-rejected\") {\r\n                            console.log('Triggering PWA Window for iOS');\r\n                            setTimeout(function(){\r\n                                $('.add-to-home').addClass('add-to-home-visible add-to-home-ios');\r\n                                $('#menu-install-pwa-ios, .menu-hider').addClass('menu-active');\r\n                            },4500);\r\n                        } else {\r\n                            console.log('PWA Install Rejected. Will Show Again in '+ (dismissDate-day + pwaRemind)+' Days')\r\n                        };\r\n                    } else {\r\n                        console.log('The div #menu-install-pwa-ios was not found. Please add this div to show the install window')\r\n                    }\r\n                }\r\n            }    \r\n\r\n            //Adding Offline Alerts\r\n            var offlineAlerts = $('.offline-message');\r\n            if(!offlineAlerts.length){\r\n                $('body').append('<p class=\"offline-message bg-red-dark color-white center-text uppercase ultrabold\">No internet connection detected</p> ');\r\n                $('body').append('<p class=\"online-message bg-green-dark color-white center-text uppercase ultrabold\">You are back online</p>');\r\n            }\r\n            //Offline Function Show\r\n            function isOffline(){\r\n                $('.offline-message').addClass('offline-message-active');\r\n                $('.online-message').removeClass('online-message-active');\r\n                setTimeout(function(){$('.offline-message').removeClass('offline-message-active');},2000);\r\n            }\r\n            //Online Function Show\r\n            function isOnline(){\r\n                $('.online-message').addClass('online-message-active');\r\n                $('.offline-message').removeClass('offline-message-active');\r\n                setTimeout(function(){$('.online-message').removeClass('online-message-active');},2000);\r\n            }    \r\n            $('.simulate-offline').on('click',function(){isOffline();})\r\n            $('.simulate-online').on('click',function(){isOnline();})\r\n\r\n            //Disable links to other pages if offline. Warning! Enabling offline for iOS can cause issues\r\n            function returnFalse(){ var detectHREF = $(this).attr('href'); if(detectHREF.match(/.html/)){isOffline(); return false; }  }  \r\n\r\n            //Check if Online / Offline\r\n            function updateOnlineStatus(event) {var condition = navigator.onLine ? \"online\" : \"offline\"; isOnline(); console.log( 'Connection: Online'); $(\"a\").off( \"click\", returnFalse );}\r\n            function updateOfflineStatus(event) {isOffline();$(\"a\").on( \"click\", returnFalse ); console.log( 'Connection: Offline');}\r\n            window.addEventListener('online',  updateOnlineStatus);\r\n            window.addEventListener('offline', updateOfflineStatus);\r\n\r\n            // if(pwaNoCache == true){\r\n            //     caches.delete('workbox-runtime').then(function() {});\r\n            //     sessionStorage.clear()\r\n            //     caches.keys().then(cacheNames => {\r\n            //       cacheNames.forEach(cacheName => {\r\n            //         caches.delete(cacheName);\r\n            //       });\r\n            //     });\r\n            // }\r\n        }\r\n\r\n        //Externally loaded menu system.\r\n        var menuLoad = $('[data-menu-load]');\r\n        menuLoad.each(function(){\r\n            var loader = $(this).data('menu-load');\r\n            $(this).load(loader);\r\n        }).promise().done(function(){ \r\n            setTimeout(function(){\r\n                sharingLinks();\r\n                card_extender();\r\n                darkMode();\r\n                menuFunctions();\r\n                sharingLinks();\r\n                highlightLoader();\r\n                backToTop();\r\n            },500);\r\n        });\r\n\r\n        //Local Error Message\r\n        if (window.location.protocol === \"file:\"){$('a').on('mouseover',function(){console.log(\"You are seeing these errors because your file is on your local computer. For real life simulations please use a Live Server or a Local Server such as AMPPS or WAMPP or simulate a  Live Preview using a Code Editor like http://brackets.io (it's 100% free) - PWA functions and AJAX Page Transitions will only work in these scenarios.\");});}         \r\n    }\r\n    //Activating all the plugins\r\n\tsetTimeout(init_template, 0);\r\n               \r\n    //Activate AJAX Transitions    \r\n    if(isAJAX === true){\r\n        $(function(){\r\n            'use strict';\r\n            var options = {\r\n                prefetch: false,\r\n                prefetchOn: 'mouseover',\r\n                cacheLength: 100,\r\n                scroll: true, \r\n                blacklist: '.default-link',\r\n                forms: 'contactForm',\r\n                onStart: {\r\n                    duration:180, // Duration of our animation\r\n                    render: function ($container) {\r\n                    $container.addClass('is-exiting');// Add your CSS animation reversing class\r\n                        $('.menu, .menu-hider').removeClass('menu-active');\r\n                        $('#preloader').removeClass('preloader-hide');\r\n                        return false;\r\n                    }\r\n                },\r\n                onReady: {\r\n                    duration: 30,\r\n                    render: function ($container, $newContent) {\r\n                        $container.removeClass('is-exiting');// Remove your CSS animation reversing class\r\n                        $container.html($newContent);// Inject the new content\r\n                        setTimeout(init_template, 0)//Timeout required to properly initiate all JS Functions. \r\n                        $('#preloader').removeClass('preloader-hide');\r\n                    }\r\n                },\r\n                onAfter: function($container, $newContent) {\r\n                    //Back Button Scroll Stop\r\n                    if ('scrollRestoration' in history) {history.scrollRestoration = 'manual';}\r\n                    setTimeout(function(){\r\n                        $('.menu').css('display','block');\r\n                        $('#preloader').addClass('preloader-hide');\r\n                    },180);\r\n                }\r\n            };\r\n          var smoothState = $('#page').smoothState(options).data('smoothState');\r\n           smoothState.clear();\r\n        });\r\n    }\r\n\r\n    //Activate Development mode. Keeps caches clear.\r\n    if(isDevMode === true){\r\n        if(!$('.reloader').length){$('body').append('<a href=\"#\" class=\"reloader\" style=\"opacity:1; position:fixed; background-color:#000; color:#FFF; z-index:9999; bottom:100px; left:50%; margin-left:-70px; border-radius:10px; width:140px; line-height:40px; text-align:center;\">Developer Mode</a>');}\r\n        $('.reloader').on('click',function(){window.location.reload(true);})\r\n        caches.delete('workbox-runtime').then(function(){});\r\n        sessionStorage.clear()\r\n        localStorage.clear();\r\n        caches.keys().then(cacheNames => {\r\n          cacheNames.forEach(cacheName => {\r\n            caches.delete(cacheName);\r\n          });\r\n        });\r\n    }\r\n    \r\n    //Registering The Service Worker    \r\n    if(pwaEnabled === true){\r\n        if ('serviceWorker' in navigator) {\r\n          window.addEventListener('load', function() {\r\n            navigator.serviceWorker.register('_service-worker.js', {scope: ''});\r\n          });\r\n        }    \r\n    }    \r\n}); "
  },
  {
    "path": "webserver/static/js/jquery.js",
    "content": "/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(e,t){\"use strict\";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return\"function\"==typeof t&&\"number\"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement(\"script\");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?l[c.call(e)]||\"object\":typeof e}var b=\"3.3.1\",w=function(e,t){return new w.fn.init(e,t)},T=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;w.fn=w.prototype={jquery:\"3.3.1\",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\"boolean\"==typeof a&&(l=a,a=arguments[s]||{},s++),\"object\"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:\"jQuery\"+(\"3.3.1\"+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==c.call(e))&&(!(t=i(e))||\"function\"==typeof(n=f.call(t,\"constructor\")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?\"\":(e+\"\").replace(T,\"\")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,\"string\"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),\"function\"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){l[\"[object \"+t+\"]\"]=t.toLowerCase()});function C(e){var t=!!e&&\"length\"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b=\"sizzle\"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",M=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",R=\"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",I=\"\\\\[\"+M+\"*(\"+R+\")(?:\"+M+\"*([*^$|!~]?=)\"+M+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+R+\"))|)\"+M+\"*\\\\]\",W=\":(\"+R+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+I+\")*)|.*)\\\\)|)\",$=new RegExp(M+\"+\",\"g\"),B=new RegExp(\"^\"+M+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+M+\"+$\",\"g\"),F=new RegExp(\"^\"+M+\"*,\"+M+\"*\"),_=new RegExp(\"^\"+M+\"*([>+~]|\"+M+\")\"+M+\"*\"),z=new RegExp(\"=\"+M+\"*([^\\\\]'\\\"]*?)\"+M+\"*\\\\]\",\"g\"),X=new RegExp(W),U=new RegExp(\"^\"+R+\"$\"),V={ID:new RegExp(\"^#(\"+R+\")\"),CLASS:new RegExp(\"^\\\\.(\"+R+\")\"),TAG:new RegExp(\"^(\"+R+\"|[*])\"),ATTR:new RegExp(\"^\"+I),PSEUDO:new RegExp(\"^\"+W),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+P+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\\d$/i,Q=/^[^{]+\\{\\s*\\[native \\w/,J=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,K=/[+~]/,Z=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+M+\"?|(\"+M+\")|.)\",\"ig\"),ee=function(e,t,n){var r=\"0x\"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ne=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&(\"form\"in e||\"label\"in e)},{dir:\"parentNode\",next:\"legend\"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],\"string\"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+\" \"]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if(\"object\"!==t.nodeName.toLowerCase()){(c=t.getAttribute(\"id\"))?c=c.replace(te,ne):t.setAttribute(\"id\",c=b),s=(h=a(e)).length;while(s--)h[s]=\"#\"+c+\" \"+ve(h[s]);v=h.join(\",\"),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute(\"id\")}}}return u(e.replace(B,\"$1\"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+\" \")>r.cacheLength&&delete t[e.shift()],t[n+\" \"]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split(\"|\"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return\"input\"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return(\"input\"===n||\"button\"===n)&&t.type===e}}function de(e){return function(t){return\"form\"in t?t.parentNode&&!1===t.disabled?\"label\"in t?\"label\"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:\"label\"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&\"HTML\"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener(\"unload\",re,!1):i.attachEvent&&i.attachEvent(\"onunload\",re)),n.attributes=ue(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute(\"id\")===t}},r.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return n&&n.value===t}},r.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML=\"<a id='\"+b+\"'></a><select id='\"+b+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",e.querySelectorAll(\"[msallowcapture^='']\").length&&y.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||y.push(\"\\\\[\"+M+\"*(?:value|\"+P+\")\"),e.querySelectorAll(\"[id~=\"+b+\"-]\").length||y.push(\"~=\"),e.querySelectorAll(\":checked\").length||y.push(\":checked\"),e.querySelectorAll(\"a#\"+b+\"+*\").length||y.push(\".#.+[+~]\")}),ue(function(e){e.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var t=d.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&y.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&y.push(\":enabled\",\":disabled\"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&y.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),y.push(\",.*:\")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,\"*\"),m.call(e,\"[s!='']:x\"),v.push(\"!=\",W)}),y=y.length&&new RegExp(y.join(\"|\")),v=v.length&&new RegExp(v.join(\"|\")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,\"='$1']\"),n.matchesSelector&&g&&!S[t+\" \"]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+\"\").replace(te,ne)},oe.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n=\"\",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||\"\").replace(Z,ee),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&E(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?\"!=\"===t:!t||(i+=\"\",\"=\"===t?i===n:\"!=\"===t?i!==n:\"^=\"===t?n&&0===i.indexOf(n):\"*=\"===t?n&&i.indexOf(n)>-1:\"$=\"===t?n&&i.slice(-n.length)===n:\"~=\"===t?(\" \"+i.replace($,\" \")+\" \").indexOf(n)>-1:\"|=\"===t&&(i===n||i.slice(0,n.length+1)===n+\"-\"))}},CHILD:function(e,t,n,r,i){var o=\"nth\"!==e.slice(0,3),a=\"last\"!==e.slice(-4),s=\"of-type\"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?\"nextSibling\":\"previousSibling\",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g=\"only\"===e&&!h&&\"nextSibling\"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error(\"unsupported pseudo: \"+e);return i[b]?i(t):i.length>1?(n=[e,e,\"\",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,\"$1\"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||\"\")||oe.error(\"unsupported lang: \"+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute(\"xml:lang\")||t.getAttribute(\"lang\"))return(n=n.toLowerCase())===e||0===n.indexOf(e+\"-\")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+\" \"];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B,\" \")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&\"parentNode\"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||\"*\",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[\" \"],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:\" \"===e[u-2].type?\"*\":\"\"})).replace(B,\"$1\"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m=\"0\",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG(\"*\",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+\" \"];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p=\"function\"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&\"ID\"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split(\"\").sort(D).join(\"\")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement(\"fieldset\"))}),ue(function(e){return e.innerHTML=\"<a href='#'></a>\",\"#\"===e.firstChild.getAttribute(\"href\")})||le(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML=\"<input/>\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||le(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute(\"disabled\")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[\":\"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):\"string\"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,\"string\"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,\"string\"==typeof e){if(!(i=\"<\"===e[0]&&\">\"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,\"parentNode\")},parentsUntil:function(e,t,n){return k(e,\"parentNode\",n)},next:function(e){return P(e,\"nextSibling\")},prev:function(e){return P(e,\"previousSibling\")},nextAll:function(e){return k(e,\"nextSibling\")},prevAll:function(e){return k(e,\"previousSibling\")},nextUntil:function(e,t,n){return k(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return k(e,\"previousSibling\",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,\"iframe\")?e.contentDocument:(N(e,\"template\")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return\"Until\"!==e.slice(-5)&&(r=n),r&&\"string\"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\\x20\\t\\r\\n\\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e=\"string\"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:\"\")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&\"string\"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n=\"\",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=\"\"),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[[\"notify\",\"progress\",w.Callbacks(\"memory\"),w.Callbacks(\"memory\"),2],[\"resolve\",\"done\",w.Callbacks(\"once memory\"),w.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",w.Callbacks(\"once memory\"),w.Callbacks(\"once memory\"),1,\"rejected\"]],r=\"pending\",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},\"catch\":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+\"With\"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError(\"Thenable self-resolution\");l=e&&(\"object\"==typeof e||\"function\"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+\"With\"](this===o?void 0:this,arguments),this},o[t[0]+\"With\"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),\"pending\"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn(\"jQuery.Deferred exception: \"+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)[\"catch\"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener(\"DOMContentLoaded\",_),e.removeEventListener(\"load\",_),w.ready()}\"complete\"===r.readyState||\"loading\"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener(\"DOMContentLoaded\",_),e.addEventListener(\"load\",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\"object\"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,\"ms-\").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,ee=/[A-Z]/g;function te(e){return\"true\"===e||\"false\"!==e&&(\"null\"===e?null:e===+e+\"\"?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(ee,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,\"hasDataAttrs\"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf(\"data-\")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks(\"once memory\").add(function(){J.remove(e,[t+\"queue\",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return\"string\"!=typeof e&&(t=e,e=\"fx\",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),\"fx\"===e&&\"inprogress\"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";while(a--)(n=J.get(o[a],e+\"queueHooks\"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,ie=new RegExp(\"^(?:([+-])=|)(\"+re+\")([a-z%]*)$\",\"i\"),oe=[\"Top\",\"Right\",\"Bottom\",\"Left\"],ae=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&w.contains(e.ownerDocument,e)&&\"none\"===w.css(e,\"display\")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,\"\")},u=s(),l=n&&n[3]||(w.cssNumber[t]?\"\":\"px\"),c=(w.cssNumber[t]||\"px\"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,\"display\"),t.parentNode.removeChild(t),\"none\"===i&&(i=\"block\"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?(\"none\"===n&&(i[o]=J.get(r,\"display\")||null,i[o]||(r.style.display=\"\")),\"\"===r.style.display&&ae(r)&&(i[o]=ce(r))):\"none\"!==n&&(i[o]=\"none\",J.set(r,\"display\",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i,he=/^$|^module$|\\/(?:java|ecma)script/i,ge={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],\"globalEval\",!t||J.get(t[n],\"globalEval\"))}var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if(\"object\"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement(\"div\")),s=(de.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=\"\"}else p.push(t.createTextNode(o));f.textContent=\"\",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),\"script\"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||\"\")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement(\"div\")),t=r.createElement(\"input\");t.setAttribute(\"type\",\"radio\"),t.setAttribute(\"checked\",\"checked\"),t.setAttribute(\"name\",\"t\"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML=\"<textarea>x</textarea>\",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){\"string\"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return\"undefined\"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||\"\").match(M)||[\"\"]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||\"\").match(M)||[\"\"]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||\"\").split(\".\").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,\"handle events\")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,\"events\")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!(\"click\"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:\"focusin\"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:\"focusout\"},click:{trigger:function(){if(\"checkbox\"===this.type&&this.click&&N(this,\"input\"))return this.click(),!1},_default:function(e){return N(e.target,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,\"char\":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,Ae=/<script|<style|<link/i,je=/checked\\s*(?:[^=]|=\\s*.checked.)/i,qe=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function Le(e,t){return N(e,\"table\")&&N(11!==t.nodeType?t:t.firstChild,\"tr\")?w(e).children(\"tbody\")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function Oe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();\"input\"===n&&pe.test(e.type)?t.checked=e.checked:\"input\"!==n&&\"textarea\"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&\"string\"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,\"script\"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,\"script\"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||\"\")&&!J.access(l,\"globalEval\")&&w.contains(c,l)&&(l.src&&\"module\"!==(l.type||\"\").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,\"\"),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,\"script\")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,\"<$1></$2>\")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,\"script\")).length>0&&ve(a,!u&&ye(e,\"script\")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp(\"^(\"+re+\")(?!px)[a-z%]+$\",\"i\"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join(\"|\"),\"i\");!function(){function t(){if(c){l.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",c.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i=\"1%\"!==t.top,u=12===n(t.marginLeft),c.style.right=\"60%\",s=36===n(t.right),o=36===n(t.width),c.style.position=\"absolute\",a=36===c.offsetWidth||\"absolute\",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement(\"div\"),c=r.createElement(\"div\");c.style&&(c.style.backgroundClip=\"content-box\",c.cloneNode(!0).style.backgroundClip=\"\",h.clearCloneStyle=\"content-box\"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(\"\"!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+\"\":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Ve={letterSpacing:\"0\",fontWeight:\"400\"},Ge=[\"Webkit\",\"Moz\",\"ms\"],Ye=r.createElement(\"div\").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function Ze(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?(\"content\"===n&&(u-=w.css(e,\"padding\"+oe[a],!0,i)),\"margin\"!==n&&(u-=w.css(e,\"border\"+oe[a]+\"Width\",!0,i))):(u+=w.css(e,\"padding\"+oe[a],!0,i),\"padding\"!==n?u+=w.css(e,\"border\"+oe[a]+\"Width\",!0,i):s+=w.css(e,\"border\"+oe[a]+\"Width\",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o=\"border-box\"===w.css(e,\"boxSizing\",!1,r),a=o;if(We.test(i)){if(!n)return i;i=\"auto\"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),(\"auto\"===i||!parseFloat(i)&&\"inline\"===w.css(e,\"display\",!1,r))&&(i=e[\"offset\"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?\"border\":\"content\"),a,r,i)+\"px\"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o=\"number\"),null!=n&&n===n&&(\"number\"===o&&(n+=i&&i[3]||(w.cssNumber[s]?\"\":\"px\")),h.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),\"normal\"===i&&t in Ve&&(i=Ve[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each([\"height\",\"width\"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a=\"border-box\"===w.css(e,\"boxSizing\",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,\"border\",!1,o)-.5)),s&&(i=ie.exec(n))&&\"px\"!==(i[3]||\"px\")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,\"marginLeft\"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),w.each({margin:\"\",padding:\"\",border:\"Width\"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o=\"string\"==typeof n?n.split(\" \"):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},\"margin\"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?\"\":\"px\")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=oe[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f=\"width\"in t||\"height\"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,\"fxshow\");n.queue||(null==(a=w._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,\"fx\").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(g?\"hide\":\"show\")){if(\"show\"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,\"display\")),\"none\"===(c=w.css(e,\"display\"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,\"display\"),fe([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=l)&&\"none\"===w.css(e,\"float\")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l=\"none\"===c?\"\":c)),h.display=\"inline-block\")),n.overflow&&(h.overflow=\"hidden\",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?\"hidden\"in y&&(g=y.hidden):y=J.access(e,\"fxshow\",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,\"fxshow\");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&\"expand\"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=[\"*\"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&\"object\"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,\"finish\"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return\"string\"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||\"fx\",[]),this.each(function(){var t=!0,i=null!=e&&e+\"queueHooks\",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||\"fx\"),this.each(function(){var t,n=J.get(this),r=n[e+\"queue\"],i=n[e+\"queueHooks\"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each([\"toggle\",\"show\",\"hide\"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||\"boolean\"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut(\"show\"),slideUp:ut(\"hide\"),slideToggle:ut(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||\"fx\",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement(\"input\"),t=r.createElement(\"select\").appendChild(r.createElement(\"option\"));e.type=\"checkbox\",h.checkOn=\"\"!==e.value,h.optSelected=t.selected,(e=r.createElement(\"input\")).value=\"t\",e.type=\"radio\",h.radioValue=\"t\"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return\"undefined\"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&\"radio\"===t&&N(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,\"tabindex\");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{\"for\":\"htmlFor\",\"class\":\"className\"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(\" \")}function mt(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function xt(e){return Array.isArray(e)?e:\"string\"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&\" \"+vt(i)+\" \"){a=0;while(o=t[a++])r.indexOf(\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=vt(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&\" \"+vt(i)+\" \"){a=0;while(o=t[a++])while(r.indexOf(\" \"+o+\" \")>-1)r=r.replace(\" \"+o+\" \",\" \");i!==(s=vt(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(e,t){var n=typeof e,r=\"string\"===n||Array.isArray(e);return\"boolean\"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&\"boolean\"!==n||((t=mt(this))&&J.set(this,\"__className__\",t),this.setAttribute&&this.setAttribute(\"class\",t||!1===e?\"\":J.get(this,\"__className__\")||\"\"))})},hasClass:function(e){var t,n,r=0;t=\" \"+e+\" \";while(n=this[r++])if(1===n.nodeType&&(\" \"+vt(mt(n))+\" \").indexOf(t)>-1)return!0;return!1}});var bt=/\\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i=\"\":\"number\"==typeof i?i+=\"\":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?\"\":e+\"\"})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&\"set\"in t&&void 0!==t.set(this,i,\"value\")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&\"get\"in t&&void 0!==(n=t.get(i,\"value\"))?n:\"string\"==typeof(n=i.value)?n.replace(bt,\"\"):null==n?\"\":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,\"value\");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,\"optgroup\"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each([\"radio\",\"checkbox\"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}),h.focusin=\"onfocusin\"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,\"type\")?t.type:t,x=f.call(t,\"namespace\")?t.namespace.split(\".\"):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(\".\")>-1&&(m=(x=m.split(\".\")).shift(),x.sort()),c=m.indexOf(\":\")<0&&\"on\"+m,t=t[w.expando]?t:new w.Event(m,\"object\"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join(\".\"),t.rnamespace=t.namespace?new RegExp(\"(^|\\\\.)\"+x.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,\"events\")||{})[t.type]&&J.get(s,\"handle\"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\\?/;w.parseXML=function(t){var n;if(!t||\"string\"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,\"text/xml\")}catch(e){n=void 0}return n&&!n.getElementsByTagName(\"parsererror\").length||w.error(\"Invalid XML: \"+t),n};var St=/\\[\\]$/,Dt=/\\r?\\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+\"[\"+(\"object\"==typeof i&&null!=i?t:\"\")+\"]\",i,n,r)});else if(n||\"object\"!==x(t))r(e,t);else for(i in t)jt(e+\"[\"+i+\"]\",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join(\"&\")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,\"elements\");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(\":disabled\")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,\"\\r\\n\")}}):{name:t.name,value:n.replace(Dt,\"\\r\\n\")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\\/\\//,It={},Wt={},$t=\"*/\".concat(\"*\"),Bt=r.createElement(\"a\");Bt.href=Ct.href;function Ft(e){return function(t,n){\"string\"!=typeof t&&(n=t,t=\"*\");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])\"+\"===r[0]?(r=r.slice(1)||\"*\",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return\"string\"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i[\"*\"]&&a(\"*\")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while(\"*\"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e[\"throws\"])t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:\"GET\",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":$t,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){\"object\"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks(\"once memory\"),x=h.statusCode||{},b={},T={},C=\"canceled\",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+\"\").replace(Rt,Ct.protocol+\"//\"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||\"*\").toLowerCase().match(M)||[\"\"],null==h.crossDomain){l=r.createElement(\"a\");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+\"//\"+Bt.host!=l.protocol+\"//\"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&\"string\"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger(\"ajaxStart\"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,\"\"),h.hasContent?h.data&&h.processData&&0===(h.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(h.data=h.data.replace(qt,\"+\")):(d=h.url.slice(o.length),h.data&&(h.processData||\"string\"==typeof h.data)&&(o+=(kt.test(o)?\"&\":\"?\")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,\"$1\"),d=(kt.test(o)?\"&\":\"?\")+\"_=\"+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader(\"If-Modified-Since\",w.lastModified[o]),w.etag[o]&&E.setRequestHeader(\"If-None-Match\",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader(\"Content-Type\",h.contentType),E.setRequestHeader(\"Accept\",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+(\"*\"!==h.dataTypes[0]?\", \"+$t+\"; q=0.01\":\"\"):h.accepts[\"*\"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C=\"abort\",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger(\"ajaxSend\",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort(\"timeout\")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,\"No Transport\");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||\"\",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader(\"Last-Modified\"))&&(w.lastModified[o]=T),(T=E.getResponseHeader(\"etag\"))&&(w.etag[o]=T)),204===t||\"HEAD\"===h.type?C=\"nocontent\":304===t?C=\"notmodified\":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C=\"error\",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+\"\",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?\"ajaxSuccess\":\"ajaxError\",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger(\"ajaxComplete\",[E,h]),--w.active||w.event.trigger(\"ajaxStop\")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,\"json\")},getScript:function(e,t){return w.get(e,void 0,t,\"script\")}}),w.each([\"get\",\"post\"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,\"throws\":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&\"withCredentials\"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i[\"X-Requested-With\"]||(i[\"X-Requested-With\"]=\"XMLHttpRequest\");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,\"abort\"===e?s.abort():\"error\"===e?\"number\"!=typeof s.status?o(0,\"error\"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,\"text\"!==(s.responseType||\"text\")||\"string\"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n(\"error\"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n(\"abort\");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),w.ajaxTransport(\"script\",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(\"<script>\").prop({charset:e.scriptCharset,src:e.url}).on(\"load error\",n=function(e){t.remove(),n=null,e&&o(\"error\"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\\?(?=&|$)|\\?\\?/;w.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Yt.pop()||w.expando+\"_\"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter(\"json jsonp\",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?\"url\":\"string\"==typeof t.data&&0===(t.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Qt.test(t.data)&&\"data\");if(s||\"jsonp\"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,\"$1\"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?\"&\":\"?\")+t.jsonp+\"=\"+i),t.converters[\"script json\"]=function(){return a||w.error(i+\" was not called\"),a[0]},t.dataTypes[0]=\"json\",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),\"script\"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument(\"\").body;return e.innerHTML=\"<form></form><form></form>\",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if(\"string\"!=typeof e)return[];\"boolean\"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),a.length>0&&w.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?w(\"<div>\").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,\"position\"),f=w(e),p={};\"static\"===c&&(e.style.position=\"relative\"),s=f.offset(),o=w.css(e,\"top\"),u=w.css(e,\"left\"),(l=(\"absolute\"===c||\"fixed\"===c)&&(o+u).indexOf(\"auto\")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),\"using\"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===w.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===w.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,\"borderTopWidth\",!0),i.left+=w.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-w.css(r,\"marginTop\",!0),left:t.left-i.left-w.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===w.css(e,\"position\"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(e,t){var n=\"pageYOffset\"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each([\"top\",\"left\"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+\"px\":n})}),w.each({Height:\"height\",Width:\"width\"},function(e,t){w.each({padding:\"inner\"+e,content:t,\"\":\"outer\"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||\"boolean\"!=typeof i),s=n||(!0===i||!0===o?\"margin\":\"border\");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf(\"outer\")?t[\"inner\"+e]:t.document.documentElement[\"client\"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body[\"scroll\"+e],o[\"scroll\"+e],t.body[\"offset\"+e],o[\"offset\"+e],o[\"client\"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),w.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});"
  },
  {
    "path": "webserver/static/menu/menu-main.html",
    "content": "<div class=\"card rounded-0 bg-aurora\" data-card-height=\"150\">\r\n    <div class=\"card-top\">\r\n        <a href=\"#\" class=\"close-menu float-right mr-2 text-center mt-3 icon-40 notch-clear\"><i class=\"fa fa-times color-white\"></i></a>\r\n    </div>\r\n    <div class=\"card-bottom\">\r\n        <h1 class=\"color-white pl-3 mb-n1 font-28\">Aurora</h1>\r\n        <p class=\"mb-2 pl-3 font-12 color-white opacity-50\">Ambient Lighting</p>\r\n    </div>\r\n    <div class=\"card-overlay bg-gradient\"></div>\r\n</div>\r\n\r\n<div class=\"mt-4\"></div>\r\n\r\n<h6 class=\"menu-divider\">Aurora</h6>\r\n<div class=\"list-group list-custom-small list-menu\">\r\n    \r\n    <a id=\"nav-homepages\" href=\"/\">\r\n        <i class=\"fa fa-home gradient-green color-white\"></i>\r\n        <span>Home</span>\r\n        <i class=\"fa fa-angle-right\"></i>\r\n    </a>     \r\n    <a id=\"nav-components\" href=\"/about/\">\r\n        <i class=\"fa fa-layer-group gradient-blue color-white\"></i>\r\n        <span>About</span>\r\n        <i class=\"fa fa-angle-right\"></i>\r\n    </a>        \r\n    \r\n    <a id=\"nav-media\" href=\"/view/\">\r\n        <i class=\"fa fa-camera gradient-red color-white\"></i>\r\n        <span>View</span>\r\n        <i class=\"fa fa-angle-right\"></i>\r\n    </a>     \r\n    \r\n</div>\r\n\r\n<h6 class=\"menu-divider mt-4\">settings</h6>\r\n<div class=\"list-group list-custom-small list-menu\">\r\n    <a href=\"#\" data-menu=\"menu-colors\">\r\n        <i class=\"fa fa-wrench gradient-highlight color-white\"></i>\r\n        <span>Configuration</span>\r\n        <i class=\"fa fa-angle-right\"></i>\r\n    </a>        \r\n    <a href=\"#\" data-toggle-theme data-trigger-switch=\"switch-dark-mode\">\r\n        <i class=\"fa fa-moon gradient-dark color-white\"></i>\r\n        <span>Dark Mode</span>\r\n        <div class=\"custom-control scale-switch ios-switch highlight-switch switch-s\">\r\n            <input type=\"checkbox\" class=\"ios-input\" id=\"switch-22\">\r\n            <label class=\"custom-control-label\" for=\"switch-1\"></label>\r\n        </div>\r\n    </a>     \r\n</div>\r\n\r\n\r\n<h6 class=\"menu-divider mt-4\">Contacts</h6>\r\n<div class=\"list-group list-custom-small list-menu\">\r\n    <a href=\"https://www.twitter.com/AndrewMohawk\" target=\"_blank\">\r\n        <i class=\"fab fa-twitter color-blue-dark pl-1 pr-1\"></i>\r\n        <span>Twitter </span>\r\n        <i class=\"fa fa-angle-right\"></i>\r\n    </a>     \r\n    <a href=\"https://github.com/AndrewMohawk/Aurora\" target=\"_blank\">\r\n        <i class=\"fab fa-github color-black-dark pl-1 pr-1\"></i>\r\n        <span>Github </span>\r\n        <i class=\"fa fa-angle-right\"></i>\r\n    </a>     \r\n       \r\n</div>\r\n\r\n\r\n\r\n"
  },
  {
    "path": "webserver/templates/about.html",
    "content": "{% include 'header.html' %}\r\n        {% if configured == False %}\r\n        <div class=\"alert mr-3 ml-3 rounded-s bg-yellow-dark\" role=\"alert\">\r\n            <span class=\"alert-icon color-white\"><i class=\"fa fa-exclamation-triangle font-18\"></i></span>\r\n            <h4 class=\"color-white font-\">Not configured</h4>\r\n            <strong class=\"alert-icon-text color-white \" >Please <a href=\"/configure/\" class=\"color-dark-dark font-700 text-uppercase\" style=\"text-decoration: underline;\">configure</a> your LEDs now</strong>\r\n            <button type=\"button\" class=\"close color-white opacity-60 font-16\" data-vibrate=\"50\" data-dismiss=\"alert\" aria-label=\"Close\">&times;</button>\r\n        </div> \r\n        {% endif %}\r\n        \r\n        <div class=\"card card-style alert\" role=\"aldddert\">\r\n            <div class=\"d-flex py-2\">\r\n                <div>\r\n                    <i class=\"fab fa-github color-black-dark mr-3 fa-3x \"></i>\r\n                </div>\r\n                <div>\r\n                    <p class=\"color-highlight mb-n1 font-12 font-600\">Update from GitHub</p>\r\n                    <h1 class=\"mb-0\">Update Aurora</h1>\r\n                </div>\r\n                \r\n            </div>\r\n            <div class=\"\">\r\n                <strong>Current Version:</strong> {{current_version}}<br/>\r\n                <strong>GitHub Version:</strong> {{github_version}}<br/>\r\n\r\n                \r\n            </div>\r\n        </div>\r\n        \r\n        <div class=\"card card-style alert\" role=\"aldddert\">\r\n            <div class=\"d-flex py-2\">\r\n                <div>\r\n                    <i class=\"fa fa-check-circle mr-3 scale-box fa-3x color-green-dark\"></i>\r\n                </div>\r\n                <div>\r\n                    <p class=\"color-highlight mb-n1 font-12 font-600\">Current loaded config</p>\r\n                    <h1 class=\"mb-0\">Configuration</h1>\r\n                </div>\r\n                \r\n            </div>\r\n            <div class=\"pl-5\">\r\n                <table>\r\n                    <thead>\r\n                        <tr>\r\n                            <th>Key</th>\r\n                            <th>Value</th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody>\r\n                        {% for key, value in config.items() %}\r\n                            {% for key2, value2 in value.items() %}\r\n                                <tr><td>{{key2}}</td><td>{{value2}}</td></tr>\r\n                            {% endfor %}\r\n                        {% endfor %}\r\n                    </tbody>\r\n                </table>\r\n                \r\n            </div>\r\n        </div>\r\n        \r\n\r\n        \r\n        <!-- These are specific and dynamic to this page -->\r\n        <script type=\"text/javascript\">\r\n            var extensions = {{extensions_meta}}\r\n        </script>\r\n        {% include 'footer.html' %}"
  },
  {
    "path": "webserver/templates/configure.html",
    "content": "{% include 'header.html' %}\r\n<div class=\"card card-style\" style=\"max-width:40rem;\">\r\n    <div class=\"content mb-0\">\r\n        <p class=\"mb-n1 color-highlight font-600\">Aurora</p>\r\n        <h1>Pixel Configuration</h1>\r\n        <p class=\"mb-1\">\r\n            Your LED strip will be showing the colours depicted in the image below, look at the colours and configure\r\n            the amount of LEDs per side accordingly, once you are happy hit save!\r\n        </p>\r\n        <div class=\"row mb-1 text-center d-flex justify-content-center\">\r\n            <div class=\"col-12 pl-5  justify-content-center text-center d-flex\">Darkness threshold:&nbsp;\r\n                    <div class=\"stepper rounded-s display:block\">\r\n                        <a href=\"#\" class=\"stepper-sub\"><i class=\"fa fa-minus color-red-dark\"></i></a>\r\n                        <input type=\"number\" id=\"aurora_config_darkthreshhold\" min=\"1\" max=\"250\" value=\"{{pixels_darkthreshold}}\">\r\n                        <a href=\"#\" class=\"stepper-add\"><i class=\"fa fa-plus color-green-dark\"></i></a>\r\n                    </div>\r\n                \r\n            </div>\r\n        </div>\r\n        <div class=\"row mb-1 text-center d-flex justify-content-center\">\r\n            <div class=\"col-4 \">\r\n                Left:\r\n                <div class=\"mx-auto\">\r\n                    <div class=\"stepper rounded-s float-left\">\r\n                        <a href=\"#\" class=\"stepper-sub\"><i class=\"fa fa-minus color-red-dark\"></i></a>\r\n                        <input type=\"number\" id=\"aurora_configure_left\" min=\"1\" max=\"250\" value=\"{{pixels_left}}\">\r\n                        <a href=\"#\" class=\"stepper-add\"><i class=\"fa fa-plus color-green-dark\"></i></a>\r\n                    </div>\r\n                    <div class=\"clearfix\"></div>\r\n                </div>\r\n            </div>\r\n            <div class=\"col-4\">\r\n                Right:\r\n                <div class=\"mx-auto\">\r\n                    <div class=\"stepper rounded-s float-left\">\r\n                        <a href=\"#\" class=\"stepper-sub\"><i class=\"fa fa-minus color-red-dark\"></i></a>\r\n                        <input type=\"number\" id=\"aurora_configure_right\" min=\"1\" max=\"250\" value=\"{{pixels_right}}\">\r\n                        <a href=\"#\" class=\"stepper-add\"><i class=\"fa fa-plus color-green-dark\"></i></a>\r\n                    </div>\r\n                    <div class=\"clearfix\"></div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"row mb-3 text-center d-flex justify-content-center\">\r\n            <div class=\"col-4 \">\r\n                Top:\r\n                <div class=\"mx-auto\">\r\n                    <div class=\"stepper rounded-s float-left\">\r\n                        <a href=\"#\" class=\"stepper-sub\"><i class=\"fa fa-minus color-red-dark\"></i></a>\r\n                        <input type=\"number\" min=\"1\" id=\"aurora_configure_top\" max=\"250\" value=\"{{pixels_top}}\">\r\n                        <a href=\"#\" class=\"stepper-add\"><i class=\"fa fa-plus color-green-dark\"></i></a>\r\n                    </div>\r\n                    <div class=\"clearfix\"></div>\r\n                </div>\r\n            </div>\r\n            <div class=\"col-4\">\r\n                Bottom:\r\n                <div class=\"mx-auto\">\r\n                    <div class=\"stepper rounded-s float-left\">\r\n                        <a href=\"#\" class=\"stepper-sub\"><i class=\"fa fa-minus color-red-dark\"></i></a>\r\n                        <input type=\"number\" min=\"1\" id=\"aurora_configure_bottom\" max=\"250\" value=\"{{pixels_bottom}}\">\r\n                        <a href=\"#\" class=\"stepper-add\"><i class=\"fa fa-plus color-green-dark\"></i></a>\r\n                    </div>\r\n                    <div class=\"clearfix\"></div>\r\n                </div>\r\n            </div>\r\n\r\n        </div>\r\n        <div class=\"d-flex justify-content-center\">\r\n            <a href=\"#\" id=\"aurora_configure_save_button\"\r\n                class=\"btn btn-m btn-full mb-3 rounded-xs text-uppercase font-900 shadow-s bg-green-dark\">Save\r\n                Configuration</a>\r\n        </div>\r\n\r\n        <p>\r\n            <img class=\"img-fluid\" id=\"pixel_image\" src=\"/load_pixel_image/\" />\r\n        </p>\r\n        <div class=\"col-4 pt-2\">\r\n            <!-- <div class=\"row mb-2\">\r\n                    <div class=\"\">\r\n                        Saturation:&nbsp;&nbsp;\r\n                    </div>\r\n                    <div>\r\n                        <input id=\"hdmi_saturation\" type=\"range\" data-slider-min=\"0\" data-slider-max=\"255\" data-slider-step=\"1\"\r\n                        data-slider-value=\"{{hdmi_saturation}}\" />\r\n                    </div>\r\n                </div>\r\n                <div class=\"row mb-2\">\r\n                    <div class=\"\">\r\n                        Brightness\r\n                    </div>\r\n                    <div>\r\n                        <input id=\"hdmi_brightness\" type=\"range\" data-slider-min=\"0\" data-slider-max=\"255\" data-slider-step=\"1\"\r\n                    data-slider-value=\"{{hdmi_brightness}}\" />\r\n                    </div>\r\n                </div>\r\n                <div class=\"row mb-2\">\r\n                    <div class=\"\">\r\n                        Contrast\r\n                    </div>\r\n                    <div>\r\n                        <input id=\"hdmi_contrast\" type=\"range\" data-slider-min=\"0\" data-slider-max=\"255\" data-slider-step=\"1\"\r\n                    data-slider-value=\"{{hdmi_contrast}}\" />\r\n                    </div>\r\n                </div>\r\n                <div class=\"row mb-2\">\r\n                    <div class=\"\">\r\n                        Hue\r\n                    </div>\r\n                    <div>\r\n                        <input id=\"hdmi_hue\" type=\"range\" data-slider-min=\"0\" data-slider-max=\"255\" data-slider-step=\"1\"\r\n                    data-slider-value=\"{{hdmi_hue}}\" />\r\n                    </div>\r\n                </div> \r\n                \r\n                <div class=\"row mb-2\">\r\n                    <div class=\"pr-3\">\r\n                        Gamma\r\n                    </div>\r\n                    <div>\r\n                        <input id=\"hdmi_gamma\" type=\"range\" data-slider-min=\"0\" data-slider-max=\"10\" data-slider-step=\"0.5\"\r\n                    data-slider-value=\"{{hdmi_gamma}}\" />\r\n                    </div>\r\n                </div>\r\n\r\n  \r\n\r\n            \r\n            <a href=\"#\" id=\"resetHDMI\" onclick=\"reset_gamma('{{hdmi_gamma}}')\"\r\n                class=\"btn btn-3d btn-sm  mb-3 rounded-xs text-uppercase font-900 shadow-s border-red-dark bg-red-light\">Reset</a>\r\n            <a href=\"#\" onclick=\"reloadImages();\" id=\"reloadHMDI\"\r\n                class=\"btn btn-3d btn-sm  mb-3 rounded-xs text-uppercase font-900 shadow-s border-blue-dark bg-blue-light\">Reload\r\n                Image</a>\r\n                <a href=\"#\" onclick=\"save_hdmi_image();\" id=\"aurora_configure_save_button\"\r\n                class=\"btn btn-sm mb-3 rounded-xs text-uppercase font-900 shadow-s bg-green-dark\">Save\r\n                Configuration</a>\r\n\r\n        </div>\r\n        <p>\r\n            <img class=\"img-fluid\" id=\"image_screenshot\" src=\"/load_screenshot\"  />\r\n            \r\n        </p>\r\n        -->\r\n        <div class=\"d-flex justify-content-center\">\r\n            \r\n        </div>\r\n\r\n    </div>\r\n\r\n\r\n</div>\r\n{% include 'footer.html' %}"
  },
  {
    "path": "webserver/templates/footer.html",
    "content": "</div>\n<!-- Page content ends here-->\n\n\n\n<!-- Main Menu-->\n<div id=\"menu-main\" class=\"menu menu-box-left rounded-0\" data-menu-load=\"/assets/menu/menu-main.html\"\n    data-menu-width=\"280\" data-menu-active=\"nav-pages\"></div>\n\n<!-- Share Menu-->\n<!-- <div id=\"menu-share\" class=\"menu menu-box-bottom rounded-m\" data-menu-load=\"menu-share.html\" data-menu-height=\"370\"></div>   -->\n\n<!-- Colors Menu-->\n<!-- <div id=\"menu-colors\" class=\"menu menu-box-bottom rounded-m\" data-menu-load=\"menu-colors.html\" data-menu-height=\"480\"></div>  -->\n\n\n</div>\n\n<div>\n    <a href=\"#\" class=\"back-to-top-icon back-to-top-icon-circle bg-highlight color-white shadow-m\"><i\n            class=\"fa fa-angle-up\"></i></a>\n</div>\n\n<script type=\"text/javascript\" src=\"/assets/js/jquery.js\"></script>\n<script type=\"text/javascript\" src=\"/assets/js/bootstrap.min.js\"></script>\n<script type=\"text/javascript\" src=\"/assets/js/bootstrap-slider.min.js\"></script>\n\n<script type=\"text/javascript\" src=\"/assets/js/aurora-generic.js\"></script>\n{%if page==\"home\" %}\n<script type=\"text/javascript\" src=\"/assets/js/aurora-index.js\"></script>\n{%elif page==\"configure\" %}\n<script type=\"text/javascript\" src=\"/assets/js/aurora-configure.js\"></script>\n{%elif page==\"view\" %}\n<script type=\"text/javascript\" src=\"/assets/js/aurora-view.js\"></script>\n{% endif %}\n<script type=\"text/javascript\" src=\"/assets/js/custom.js\"></script>\n</body>"
  },
  {
    "path": "webserver/templates/header.html",
    "content": "<!DOCTYPE HTML>\n<html lang=\"en\">\n\n<head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n    <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n    <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\n    <meta name=\"viewport\"\n        content=\"width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, viewport-fit=cover\" />\n    <title>Aurora Ambient Lighting</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/bootstrap.css\">\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/bootstrap-slider.min.css\">\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/style.css\">\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/fonts/css/fontawesome-all.min.css\">\n\n\n</head>\n\n<body class=\"theme-light\" data-highlight=\"green\">\n\n    <div id=\"preloader\">\n        <div class=\"spinner-border color-highlight\" role=\"status\"></div>\n    </div>\n\n    <div id=\"page\">\n\n        <div class=\"header header-fixed header-logo-center header-auto-show\">\n            <a href=\"/\" class=\"header-title\">Aurora</a>\n            <a href=\"#\" data-back-button class=\"header-icon header-icon-1\"><i class=\"fas fa-chevron-left\"></i></a>\n            <a href=\"#\" data-menu=\"menu-main\" class=\"header-icon header-icon-4\"><i class=\"fas fa-bars\"></i></a>\n            <a href=\"#\" data-toggle-theme class=\"header-icon header-icon-3 show-on-theme-dark\"><i\n                    class=\"fas fa-sun\"></i></a>\n            <a href=\"#\" data-toggle-theme class=\"header-icon header-icon-3 show-on-theme-light\"><i\n                    class=\"fas fa-moon\"></i></a>\n        </div>\n\n        <div id=\"footer-bar\" class=\"footer-bar-6\">\n            <a href=\"/about/\"><i\n                    class=\"fa fa-layer-group {% if page == 'about' %}active-nav{% endif %}\"></i><span>About</span></a>\n            <a href=\"/configure/\"><i\n                    class=\"fa fa-wrench {% if page == 'configure' %}active-nav{% endif %}\"></i><span>Config</span></a>\n            <a href=\"/\" class=\"circle-nav  {% if page == 'home' %}active-nav{% endif %}\"><i\n                    class=\"fa fa-home\"></i><span>Aurora</span></a>\n            <a href=\"/view/\"><i\n                    class=\"fa fa-camera {% if page == 'view' %}active-nav{% endif %}\"></i><span>View</span></a>\n            <a href=\"#\" data-menu=\"menu-main\"><i class=\"fa fa-bars\"></i><span>Menu</span></a>\n        </div>\n\n        <div class=\"page-title page-title-fixed\">\n            <h1 class=\"font-24\">Aurora</h1>\n            <a href=\"#\" id=\"toggle-power-header\" onclick=\"togglePower()\" class=\"page-title-icon shadow-xl bg-theme \" ><i\n                    class=\"fa fa-power-off {%if enabled == True %}color-theme{% endif %}\" id=\"powerToggle\" ></i></a>\n            <a href=\"/configure/\" class=\"page-title-icon shadow-xl bg-theme color-theme\" data-menu=\"\"><i\n                class=\"fa fa-wrench\"></i></a>\n            <a href=\"#\" class=\"page-title-icon shadow-xl bg-theme color-theme show-on-theme-light\" data-toggle-theme><i\n                    class=\"fa fa-moon\"></i></a>\n            <a href=\"#\" class=\"page-title-icon shadow-xl bg-theme color-theme show-on-theme-dark\" data-toggle-theme><i\n                    class=\"fa fa-lightbulb color-yellow-dark\"></i></a>\n            <a href=\"#\" class=\"page-title-icon shadow-xl bg-theme color-theme\" data-menu=\"menu-main\"><i\n                    class=\"fa fa-bars\"></i></a>\n        </div>\n        <div class=\"page-title-clear\"></div>\n\n\n        <div class=\"page-content\">\n\n\n            <div id=\"menu-warning-2\" class=\"menu menu-box-modal bg-red-dark rounded-m\" data-menu-height=\"310\"\n                data-menu-width=\"350\">\n                <h1 class=\"text-center mt-4\"><i\n                        class=\"fa fa-3x fa-times-circle scale-box color-white shadow-xl rounded-circle\"></i></h1>\n                <h1 class=\"text-center mt-3 text-uppercase color-white font-700\">Wooops!</h1>\n                <p class=\"boxed-text-l color-white opacity-70\">\n                    You can continue with your previous actions.<br> Easy to attach these to success calls.\n                </p>\n                <a href=\"#\"\n                    class=\"close-menu btn btn-m btn-center-l button-s shadow-l rounded-s text-uppercase font-600 bg-white color-black\">Hmmm,\n                    Check again?</a>\n            </div>"
  },
  {
    "path": "webserver/templates/index.html",
    "content": "{% include 'header.html' %}\r\n        {% if configured == False %}\r\n        <div class=\"alert mr-3 ml-3 rounded-s bg-yellow-dark\" role=\"alert\">\r\n            <span class=\"alert-icon color-white\"><i class=\"fa fa-exclamation-triangle font-18\"></i></span>\r\n            <h4 class=\"color-white font-\">Not configured</h4>\r\n            <strong class=\"alert-icon-text color-white \" >Please <a href=\"/configure/\" class=\"color-dark-dark font-700 text-uppercase\" style=\"text-decoration: underline;\">configure</a> your LEDs now</strong>\r\n            <button type=\"button\" class=\"close color-white opacity-60 font-16\" data-vibrate=\"50\" data-dismiss=\"alert\" aria-label=\"Close\">&times;</button>\r\n        </div> \r\n        {% endif %}\r\n        \r\n        <div class=\"d-flex content\">\r\n            <div class=\"pt-1\">\r\n                <h5 data-activate=\"toggle_aurora_enabled\" class=\"font-700 font-14\">System Status</h5>\r\n            </div>\r\n            <div class=\"ml-auto mr-4 pr-2\">\r\n                <div class=\"custom-control ios-switch ios-switch-icon\">\r\n                    <input data-vibrate=\"200\" type=\"checkbox\" {%if enabled == True %}checked=\"checked\"{% endif %} style=\"visibility: hidden\" class=\"ios-input\" id=\"toggle_aurora_enabled\">\r\n                    <label class=\"custom-control-label\" for=\"toggle_aurora_enabled\"></label>\r\n                    <span>ON</span>\r\n                    <span>OFF</span>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"card card-style alert\" role=\"aldddert\">\r\n            <div class=\"d-flex py-2\">\r\n                <div>\r\n                    <i class=\"fa fa-check-circle mr-3 scale-box fa-4x color-green-dark\"></i>\r\n                </div>\r\n                <div>\r\n                    <p class=\"color-highlight mb-n1 font-12 font-600\">Current Loaded extension</p>\r\n                    <h1 class=\"mb-0\">{%if current_extension_meta == False %}\r\n                            No extension currently running.\r\n                            {% endif %}{{current_extension_meta['Name']}}  \r\n                    </h1>\r\n                </div>\r\n                \r\n            </div>\r\n            <div class=\"mb-0\">\r\n                {{current_extension_meta['Description']}}\r\n                <div class=\"font-600 font-11 color-highlight mb-0\">{{current_extension_meta['Author']}}</div>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"card card-style\">\r\n            <div class=\"content\">\r\n                \r\n                <h1>Load Extension</h1>\r\n                <span class=\"color-highlight\">Select an extension</span>\r\n                <div class=\"input-style input-style-2 input-required\">\r\n                    <em><i class=\"fa fa-angle-down\"></i></em>\r\n                    <select id=\"aurora_extension_dropdown\">    \r\n                        {% for key,extension_meta in extensions_meta.items() %}\r\n                        <option value='{{extension_meta['FileName']}}' {% if extension_meta['Name'] == current_extension_meta['Name'] %} selected=\"selected\" {% endif %}}>{{extension_meta['Name']}}</option>\r\n                        {% endfor %}\r\n                    </select>\r\n                </div>\r\n                <span class=\"color-highlight\">Extension Details</span><div class=\"divider bg-highlight mb-2\"></div>\r\n                <span id=\"ext_description\">\r\n                    Please select an extension\r\n                </span><br/>\r\n                <span class=\"color-highlight\">Extension Author</span><div class=\"divider bg-highlight mb-2\"></div>\r\n                <div id=\"ext_author\">\r\n                </div>\r\n                <div class=\"pt-2\">\r\n                \r\n                <a href=\"#\" class=\"btn btn-3d btn-m btn-full mb-3 rounded-sm text-uppercase font-900 shadow-s  border-blue-dark bg-blue-light\"  onclick=\"loadExtension();\">Load Extension</a>\r\n                </div>\r\n    \r\n    \r\n            </div>\r\n            </div>\r\n\r\n        <div class=\"card card-style\">\r\n            <div class=\"content mb-0\">\r\n                \r\n                <div class=\"row mb-0\">\r\n                    <div class=\"col-4 pr-1\">\r\n                        <a href=\"/about/\" class=\"btn btn-3d btn-sm btn-full mb-3 rounded-xs text-uppercase font-900 shadow-s border-red-dark bg-red-light\">About</a>\r\n                    </div>\r\n                    <div class=\"col-4 pl-1 pr-1\">\r\n                        <a href=\"/view/\" class=\"btn btn-3d btn-sm btn-full mb-3 rounded-xs text-uppercase font-900 shadow-s  border-green-dark bg-green-light\">Display</a>\r\n                    </div>\r\n                    <div class=\"col-4 pl-1\">\r\n                        <a href=\"/configure/\" class=\"btn btn-3d btn-sm btn-full mb-3 rounded-xs text-uppercase font-900 shadow-s  border-blue-dark bg-blue-light\">Config</a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        \r\n        <!-- These are specific and dynamic to this page -->\r\n        <script type=\"text/javascript\">\r\n            var extensions = {{extensions_meta}}\r\n        </script>\r\n        {% include 'footer.html' %}"
  },
  {
    "path": "webserver/templates/menu-colors.html",
    "content": "<div class=\"menu-title\">\r\n    <p class=\"color-highlight font-600\">Choose your Favorite</p>\r\n    <h1>Highlight</h1>\r\n    <a href=\"#\" class=\"close-menu\"><i class=\"fa fa-times-circle\"></i></a>\r\n</div>\r\n<div class=\"divider divider-margins mt-3 mb-2\"></div>\r\n<div class=\"content mt-0 ml-0 mr-0\">\r\n    <div class=\"row mb-0\">\r\n        <div class=\"col-6\">\r\n            <div class=\"highlight-changer list-group list-custom-small list-menu\">\r\n                <a href=\"#\" class=\"menu-active\" data-highlight-style=\"styles/highlights/highlight-blue.css\">\r\n                    <i class=\"gradient-blue color-white\"></i>\r\n                    <span>Blue</span>\r\n                </a>     \r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-red.css\">\r\n                    <i class=\"gradient-red color-white\"></i>\r\n                    <span>Red</span>\r\n                </a>        \r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-orange.css\">\r\n                    <i class=\"gradient-orange color-white\"></i>\r\n                    <span>Orange</span>\r\n                </a>     \r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-green.css\">\r\n                    <i class=\"gradient-green color-white\"></i>\r\n                    <span>Green</span>\r\n                </a>        \r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-yellow.css\">\r\n                    <i class=\"gradient-yellow color-white\"></i>\r\n                    <span>Yellow</span>\r\n                </a>        \r\n            </div>\r\n        </div>\r\n        <div class=\"col-6\">\r\n            <div class=\"highlight-changer list-group list-custom-small list-menu\">\r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-dark.css\">\r\n                    <i class=\"gradient-dark color-white\"></i>\r\n                    <span>Dark</span>\r\n                </a>        \r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-gray.css\">\r\n                    <i class=\"gradient-gray color-white\"></i>\r\n                    <span>Gray</span>\r\n                </a>     \r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-teal.css\">\r\n                    <i class=\"gradient-teal color-white\"></i>\r\n                    <span>Teal</span>\r\n                </a>        \r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-magenta.css\">\r\n                    <i class=\"gradient-magenta color-white\"></i>\r\n                    <span>Plum</span>\r\n                </a>       \r\n                <a href=\"#\" data-highlight-style=\"styles/highlights/highlight-brown.css\">\r\n                    <i class=\"gradient-brown color-white\"></i>\r\n                    <span>Brown</span>\r\n                </a>     \r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n<div class=\"divider divider-margins mt-2\"></div>\r\n<a href=\"#\" class=\"close-menu btn btn-margins btn-m font-13 rounded-s shadow-xl btn-full gradient-highlight border-0 font-700 text-uppercase\">Awesome</a>\r\n"
  },
  {
    "path": "webserver/templates/menu-footer.html",
    "content": "<div class=\"card card-style\">\r\n    <h4 class=\"font-28 text-center color-theme font-800 pt-3 mt-3\">AppKit</h4>\r\n    <p class=\"boxed-text-l mb-4\">\r\n        Built to match the design trends and give your page the awesome facelift it deserves.\r\n    </p>\r\n    <div class=\"text-center mb-4\">\r\n        <a href=\"#\" class=\"icon icon-xs rounded-sm shadow-l mr-1 bg-facebook\"><i class=\"fab fa-facebook-f\"></i></a>\r\n        <a href=\"#\" class=\"icon icon-xs rounded-sm shadow-l mr-1 bg-twitter\"><i class=\"fab fa-twitter\"></i></a>\r\n        <a href=\"#\" class=\"icon icon-xs rounded-sm shadow-l mr-1 bg-phone\"><i class=\"fa fa-phone\"></i></a>\r\n        <a href=\"#\" data-menu=\"menu-share\" class=\"icon icon-xs rounded-sm mr-1 shadow-l bg-red-dark\"><i class=\"fa fa-share-alt\"></i></a>\r\n        <a href=\"#\" class=\"back-to-top icon icon-xs rounded-sm shadow-l bg-highlight color-white\"><i class=\"fa fa-arrow-up\"></i></a>\r\n    </div>\r\n    <div class=\"divider mb-3\"></div>\r\n    <div class=\"row text-center mb-3 pl-3 pr-3\">\r\n        <a class=\"font-11 col-4\" href=\"#\">Privacy Policy</a>\r\n        <a class=\"font-11 col-4\" href=\"#\">Terms of Service</a>\r\n        <a class=\"font-11 col-4\" href=\"#\">Contact Support</a>\r\n    </div>\r\n</div>\r\n"
  },
  {
    "path": "webserver/templates/menu-share.html",
    "content": "<div class=\"menu-title\">\r\n    <p class=\"color-highlight\">Tap a link to</p>\r\n    <h1>Share</h1>\r\n    <a href=\"#\" class=\"close-menu\"><i class=\"fa fa-times-circle\"></i></a>\r\n</div>\r\n<div class=\"divider divider-margins mt-3 mb-0\"></div>\r\n<div class=\"content mt-0\">\r\n    <div class=\"list-group list-custom-small list-icon-0\">\r\n        <a href=\"#\" class=\"shareToFacebook\">\r\n            <i class=\"fab fa-facebook-f font-12 bg-facebook color-white shadow-l rounded-s\"></i>\r\n            <span>Facebook</span>\r\n            <i class=\"fa fa-angle-right pr-1\"></i>\r\n        </a>\r\n        <a href=\"#\" class=\"shareToTwitter\">\r\n            <i class=\"fab fa-twitter font-12 bg-twitter color-white shadow-l rounded-s\"></i>\r\n            <span>Twitter</span>\r\n            <i class=\"fa fa-angle-right pr-1\"></i>\r\n        </a>\r\n        <a href=\"#\" class=\"shareToLinkedIn\">\r\n            <i class=\"fab fa-linkedin-in font-12 bg-linkedin color-white shadow-l rounded-s\"></i>\r\n            <span>LinkedIn</span>\r\n            <i class=\"fa fa-angle-right pr-1\"></i>\r\n        </a>\r\n        <a href=\"#\" class=\"shareToWhatsApp\">\r\n            <i class=\"fab fa-whatsapp font-12 bg-whatsapp color-white shadow-l rounded-s\"></i>\r\n            <span>WhatsApp</span>\r\n            <i class=\"fa fa-angle-right pr-1\"></i>\r\n        </a>\r\n        <a href=\"#\" class=\"shareToEmail border-0\">\r\n            <i class=\"fa fa-envelope font-12 bg-mail color-white shadow-l rounded-s\"></i>\r\n            <span>Email</span>\r\n            <i class=\"fa fa-angle-right pr-1\"></i>\r\n        </a>\r\n    </div>\r\n</div>\r\n"
  },
  {
    "path": "webserver/templates/status.json",
    "content": "{\n    \"enabled\": {{enabled}},\n    \"current_extension\": \"{{current_extension}}\",\n    \"current_extension_class\": \"{{current_extension_class}}\",\n    \"current_version\": \"{{current_version}}\"\n}"
  },
  {
    "path": "webserver/templates/view.html",
    "content": "    {% include 'header.html' %}\r\n\r\n    \r\n\r\n    <div class=\"row mb-1 text-center d-flex justify-content-center\">\r\n        <div class=\"card card-style\">\r\n            <div class=\"content\">\r\n                <p class=\"mb-n1 color-highlight font-600\">Pixels (Currently: {{fps}} FPS)</p>\r\n                <h1>NeoPixel View</h1>\r\n                <div class=\"d-flex content\">\r\n                    <div class=\"pt-1\">\r\n                        <h5 data-activate=\"toggle_images_reload\" class=\"font-700 font-14\"><a title=\"Reload now\" href=\"#\" onclick=\"reloadImages();\" class=\"icon icon-xs rounded-xl icon-border border-green-dark icon-border color-green-dark\"><i class=\"fa fa-retweet\"></i></a>&nbsp;&nbsp;Auto Reload <span id=\"reloadTime\">(reloading in 5s)</span></h5>\r\n                    </div>\r\n                    <div class=\"ml-auto mr-4 pr-2\">\r\n                        <div class=\"custom-control ios-switch ios-switch-icon\">\r\n                            <input data-vibrate=\"200\" type=\"checkbox\"  style=\"visibility: hidden\" class=\"ios-input\" id=\"toggle_images_reload\">\r\n                            <label class=\"custom-control-label\" for=\"toggle_images_reload\"></label>\r\n                            <span>ON</span>\r\n                            <span>OFF</span>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <h1>HDMI View</h1>\r\n                <p>\r\n                    <img class=\"img-fluid\" id=\"image_screenshot\" src=\"/load_screenshot\"  />\r\n                    \r\n                </p>\r\n            </div>\r\n        </div>\r\n        <div class=\"card card-style\">\r\n            <div class=\"content\">\r\n                <p class=\"mb-n1 color-highlight font-600\">Image</p>\r\n                <h1>Pixel Image View</h1>\r\n                <p>\r\n                    <img class=\"img-fluid\" id=\"image_pixels\" src=\"/load_pixel_image\"  />\r\n                </p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n       {% include 'footer.html' %}"
  }
]