diff --git a/searx/static/themes/marlo/.eslintrc.json b/searx/static/themes/marlo/.eslintrc.json new file mode 100644 index 000000000..df53fcce8 --- /dev/null +++ b/searx/static/themes/marlo/.eslintrc.json @@ -0,0 +1,28 @@ +{ + "env": { + "browser": true, + "es2021": true, + "node": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 12 + }, + "rules": { + "indent": ["error", 2], + "keyword-spacing": ["error", { "before": true, "after": true }], + "no-trailing-spaces": 2, + "space-before-function-paren": ["error", "always"], + "space-infix-ops": "error", + "comma-spacing": ["error", { "before": false, "after": true }], + "brace-style": ["error", "1tbs", { "allowSingleLine": true }], + "curly": ["error", "multi-line"], + "block-spacing": ["error", "always"], + "dot-location": ["error", "property"], + "key-spacing": ["error", { "beforeColon": false, "afterColon": true }], + "spaced-comment": ["error", "always", { + "line": { "markers": ["*package", "!", "/", ",", "="] }, + "block": { "balanced": true, "markers": ["*package", "!", ",", ":", "::", "flow-include"], "exceptions": ["*"] } + }] + } +} diff --git a/searx/static/themes/marlo/.gitattributes b/searx/static/themes/marlo/.gitattributes new file mode 100644 index 000000000..dc8d7a30e --- /dev/null +++ b/searx/static/themes/marlo/.gitattributes @@ -0,0 +1,2 @@ +leaflet.css -diff +leaflet.js -diff diff --git a/searx/static/themes/marlo/.gitignore b/searx/static/themes/marlo/.gitignore new file mode 100644 index 000000000..5e5272738 --- /dev/null +++ b/searx/static/themes/marlo/.gitignore @@ -0,0 +1,2 @@ +/node_modules +package-lock.json diff --git a/searx/static/themes/marlo/.jshintrc b/searx/static/themes/marlo/.jshintrc new file mode 100644 index 000000000..ba7bc2965 --- /dev/null +++ b/searx/static/themes/marlo/.jshintrc @@ -0,0 +1,8 @@ +{ + "proto": true, + "globals": { + "browser": true, + "jQuery": false, + "devel": true + } +} diff --git a/searx/static/themes/marlo/.stylelintrc.json b/searx/static/themes/marlo/.stylelintrc.json new file mode 100644 index 000000000..be082eeb4 --- /dev/null +++ b/searx/static/themes/marlo/.stylelintrc.json @@ -0,0 +1,7 @@ +{ + "extends": "stylelint-config-standard", + "rules": { + "declaration-empty-line-before": null, + "no-invalid-position-at-import-rule": null + } +} diff --git a/searx/static/themes/marlo/css/images/layers-2x.png b/searx/static/themes/marlo/css/images/layers-2x.png new file mode 100644 index 000000000..200c333dc Binary files /dev/null and b/searx/static/themes/marlo/css/images/layers-2x.png differ diff --git a/searx/static/themes/marlo/css/images/layers.png b/searx/static/themes/marlo/css/images/layers.png new file mode 100644 index 000000000..1a72e5784 Binary files /dev/null and b/searx/static/themes/marlo/css/images/layers.png differ diff --git a/searx/static/themes/marlo/css/images/marker-icon-2x.png b/searx/static/themes/marlo/css/images/marker-icon-2x.png new file mode 100644 index 000000000..88f9e5018 Binary files /dev/null and b/searx/static/themes/marlo/css/images/marker-icon-2x.png differ diff --git a/searx/static/themes/marlo/css/images/marker-icon.png b/searx/static/themes/marlo/css/images/marker-icon.png new file mode 100644 index 000000000..950edf246 Binary files /dev/null and b/searx/static/themes/marlo/css/images/marker-icon.png differ diff --git a/searx/static/themes/marlo/css/images/marker-shadow.png b/searx/static/themes/marlo/css/images/marker-shadow.png new file mode 100644 index 000000000..9fd297953 Binary files /dev/null and b/searx/static/themes/marlo/css/images/marker-shadow.png differ diff --git a/searx/static/themes/marlo/css/leaflet.css b/searx/static/themes/marlo/css/leaflet.css new file mode 100644 index 000000000..9ade8dc49 --- /dev/null +++ b/searx/static/themes/marlo/css/leaflet.css @@ -0,0 +1,661 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg { + max-width: none !important; + max-height: none !important; + } +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + width: auto; + padding: 0; + } + +.leaflet-container img.leaflet-tile { + /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ + mix-blend-mode: plus-lighter; +} + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +svg.leaflet-zoom-animated { + will-change: transform; +} + +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline-offset: 1px; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-size: 12px; + font-size: 0.75rem; + line-height: 1.5; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover, +.leaflet-bar a:focus { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + font-size: 13px; + font-size: 1.08333em; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.8); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + line-height: 1.4; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover, +.leaflet-control-attribution a:focus { + text-decoration: underline; + } +.leaflet-attribution-flag { + display: inline !important; + vertical-align: baseline !important; + width: 1em; + height: 0.6669em; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + white-space: nowrap; + -moz-box-sizing: border-box; + box-sizing: border-box; + background: rgba(255, 255, 255, 0.8); + text-shadow: 1px 1px #fff; + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 24px 13px 20px; + line-height: 1.3; + font-size: 13px; + font-size: 1.08333em; + min-height: 1px; + } +.leaflet-popup-content p { + margin: 17px 0; + margin: 1.3em 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-top: -1px; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + pointer-events: auto; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + border: none; + text-align: center; + width: 24px; + height: 24px; + font: 16px/24px Tahoma, Verdana, sans-serif; + color: #757575; + text-decoration: none; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover, +.leaflet-container a.leaflet-popup-close-button:focus { + color: #585858; + } +.leaflet-popup-scrolled { + overflow: auto; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + -ms-zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-interactive { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } + +/* Printing */ + +@media print { + /* Prevent printers from removing background-images of controls. */ + .leaflet-control { + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } + } diff --git a/searx/static/themes/marlo/css/searxng-rtl.min.css b/searx/static/themes/marlo/css/searxng-rtl.min.css new file mode 100644 index 000000000..dd04a8481 --- /dev/null +++ b/searx/static/themes/marlo/css/searxng-rtl.min.css @@ -0,0 +1 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3D7B7B;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3D7B7B;font-style:italic}.code-highlight .cm{color:#3D7B7B;font-style:italic}.code-highlight .cp{color:#9C6500}.code-highlight .cpf{color:#3D7B7B;font-style:italic}.code-highlight .c1{color:#3D7B7B;font-style:italic}.code-highlight .cs{color:#3D7B7B;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#E40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#CB3F38;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#AA5D1F;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#A45A77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#A45A77}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:#64708d}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#FFAD66}:root.theme-auto .code-highlight .l{color:#D5FF80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#FFAD66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#FFAD66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#FFAD66}:root.theme-auto .code-highlight .kd{color:#FFAD66}:root.theme-auto .code-highlight .kn{color:#FFAD66}:root.theme-auto .code-highlight .kp{color:#FFAD66}:root.theme-auto .code-highlight .kr{color:#FFAD66}:root.theme-auto .code-highlight .kt{color:#73D0FF}:root.theme-auto .code-highlight .ld{color:#D5FF80}:root.theme-auto .code-highlight .m{color:#DFBFFF}:root.theme-auto .code-highlight .s{color:#D5FF80}:root.theme-auto .code-highlight .na{color:#FFD173}:root.theme-auto .code-highlight .nb{color:#FFD173}:root.theme-auto .code-highlight .nc{color:#73D0FF}:root.theme-auto .code-highlight .no{color:#FFD173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95E6CB}:root.theme-auto .code-highlight .ne{color:#73D0FF}:root.theme-auto .code-highlight .nf{color:#FFD173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#FFD173}:root.theme-auto .code-highlight .nt{color:#5CCFE6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#FFAD66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#DFBFFF}:root.theme-auto .code-highlight .mf{color:#DFBFFF}:root.theme-auto .code-highlight .mh{color:#DFBFFF}:root.theme-auto .code-highlight .mi{color:#DFBFFF}:root.theme-auto .code-highlight .mo{color:#DFBFFF}:root.theme-auto .code-highlight .sa{color:#F29E74}:root.theme-auto .code-highlight .sb{color:#D5FF80}:root.theme-auto .code-highlight .sc{color:#D5FF80}:root.theme-auto .code-highlight .dl{color:#D5FF80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#D5FF80}:root.theme-auto .code-highlight .se{color:#95E6CB}:root.theme-auto .code-highlight .sh{color:#D5FF80}:root.theme-auto .code-highlight .si{color:#95E6CB}:root.theme-auto .code-highlight .sx{color:#95E6CB}:root.theme-auto .code-highlight .sr{color:#95E6CB}:root.theme-auto .code-highlight .s1{color:#D5FF80}:root.theme-auto .code-highlight .ss{color:#DFBFFF}:root.theme-auto .code-highlight .bp{color:#5CCFE6}:root.theme-auto .code-highlight .fm{color:#FFD173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#DFBFFF}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:#64708d}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#FFAD66}:root.theme-dark .code-highlight .l{color:#D5FF80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#FFAD66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#FFAD66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#FFAD66}:root.theme-dark .code-highlight .kd{color:#FFAD66}:root.theme-dark .code-highlight .kn{color:#FFAD66}:root.theme-dark .code-highlight .kp{color:#FFAD66}:root.theme-dark .code-highlight .kr{color:#FFAD66}:root.theme-dark .code-highlight .kt{color:#73D0FF}:root.theme-dark .code-highlight .ld{color:#D5FF80}:root.theme-dark .code-highlight .m{color:#DFBFFF}:root.theme-dark .code-highlight .s{color:#D5FF80}:root.theme-dark .code-highlight .na{color:#FFD173}:root.theme-dark .code-highlight .nb{color:#FFD173}:root.theme-dark .code-highlight .nc{color:#73D0FF}:root.theme-dark .code-highlight .no{color:#FFD173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95E6CB}:root.theme-dark .code-highlight .ne{color:#73D0FF}:root.theme-dark .code-highlight .nf{color:#FFD173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#FFD173}:root.theme-dark .code-highlight .nt{color:#5CCFE6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#FFAD66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#DFBFFF}:root.theme-dark .code-highlight .mf{color:#DFBFFF}:root.theme-dark .code-highlight .mh{color:#DFBFFF}:root.theme-dark .code-highlight .mi{color:#DFBFFF}:root.theme-dark .code-highlight .mo{color:#DFBFFF}:root.theme-dark .code-highlight .sa{color:#F29E74}:root.theme-dark .code-highlight .sb{color:#D5FF80}:root.theme-dark .code-highlight .sc{color:#D5FF80}:root.theme-dark .code-highlight .dl{color:#D5FF80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#D5FF80}:root.theme-dark .code-highlight .se{color:#95E6CB}:root.theme-dark .code-highlight .sh{color:#D5FF80}:root.theme-dark .code-highlight .si{color:#95E6CB}:root.theme-dark .code-highlight .sx{color:#95E6CB}:root.theme-dark .code-highlight .sr{color:#95E6CB}:root.theme-dark .code-highlight .s1{color:#D5FF80}:root.theme-dark .code-highlight .ss{color:#DFBFFF}:root.theme-dark .code-highlight .bp{color:#5CCFE6}:root.theme-dark .code-highlight .fm{color:#FFD173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#DFBFFF}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:#64708d}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:right;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:left;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-left:1rem;padding-bottom:0;padding-right:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:10000;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked):not([disabled]):not(.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:right;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:100;margin-top:3.5rem;border-radius:.8rem;box-shadow:0 2px 8px rgba(34,38,46,.25)}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{right:56.75rem!important;left:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;right:60rem;left:0;top:7.6rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:right}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;overflow-y:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;right:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;left:6rem;padding-top:.4rem;padding-left:.5rem;padding-bottom:.4rem;padding-right:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;left:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;left:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{left:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;right:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-left:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.stats_endpoint .github-issue-button:hover{background-color:#2ea043}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:right}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:right}table tr.pref-group th{font-weight:400;text-align:right;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:right;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:right;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-left:1rem;margin-bottom:0;margin-right:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:left;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:right;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-left:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;right:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:right}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{right:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-left:2em;padding-right:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-left:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active,button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:2}#q{width:100%;padding-right:1rem;padding-left:0!important;border-radius:0 .8rem .8rem 0}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:.8rem 0 0 .8rem}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-right:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-left:0;margin-bottom:0;margin-right:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:right;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:10000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-left:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-left:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}@media screen and (min-width:50em){.center-aligment-yes #main_results{--center-page-width:48rem}}@media screen and (min-width:62rem){.center-aligment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-aligment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-aligment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-aligment-yes #main_results #urls{margin-right:3rem}.center-aligment-yes #main_results #sidebar{margin-left:1rem}.center-aligment-yes #main_results #backToTop{right:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-aligment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-aligment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-aligment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-aligment-yes #main_results .search_filters{margin-right:.5rem;width:var(--center-page-width)}.center-aligment-yes #main_results #results{margin-left:2rem;margin-right:10rem}.center-aligment-yes #main_results #results.image-detail-open,.center-aligment-yes #main_results #results.only_template_images{align-self:flex-start}.center-aligment-yes #main_results #results:not(.only_template_images):not(.image-detail-open){margin-right:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-aligment-yes #main_results #results:not(.only_template_images):not(.image-detail-open) #backToTop{right:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-aligment-yes #main_results #results .result .content{max-width:inherit}.center-aligment-yes #main_results #urls{margin-right:0}.center-aligment-yes #main_results #sidebar{margin-left:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(-1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-right:.2rem solid var(--color-result-vim-arrow);border-radius:10px 0 0 10px}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-right:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_wrapper{display:flex;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:right;padding-top:.6rem;padding-left:1rem;width:20rem;height:unset}.result img.image{float:right;padding-top:.6rem;padding-left:1rem;width:7rem;max-height:7rem;object-fit:scale-down;object-position:right top}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-left:.5rem;margin-right:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:rgba(0,0,0,.5);padding:.3rem .5rem;font-size:.9rem;color:#fff;border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:left!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:right}.result-map table td{vertical-align:top;text-align:right}.hidden{display:none!important}#results{margin-top:1rem;margin-left:2rem;margin-bottom:0;margin-right:10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsable{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsable{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin-left:auto;margin-top:5px;margin-right:10px;margin-bottom:10px}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-left:.25em;margin-bottom:.5em;margin-right:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;left:1rem;text-align:left;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-left:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;right:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (max-width:calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (max-width:52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-aligment-no #links_on_top span{display:none}.center-aligment-no .page_with_header{margin:2rem .5rem;width:auto}.center-aligment-no #infoboxes{position:inherit;max-width:inherit}.center-aligment-no #infoboxes .infobox{clear:both}.center-aligment-no #infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}.center-aligment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-aligment-no #sidebar input{border:0}.center-aligment-no .result .thumbnail{max-width:98%}.center-aligment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-aligment-no .result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-aligment-no .result-images{border-bottom:none!important}.center-aligment-no .image_result{max-width:98%}.center-aligment-no .image_result img{max-width:98%}.center-aligment-no #backToTop{display:none}.center-aligment-no #pagination{margin:2rem 0 0 0!important}.center-aligment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content min-content 1fr min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{right:auto;left:1rem}#main_results div#results.only_template_images #pagination{margin-left:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:right;max-width:10em;margin-top:.5em;margin-left:.5em;margin-bottom:.5em;margin-right:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:left;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;left:10px}#main_index #links_on_top{top:.5rem;left:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 10px;border-radius:10px}.result-images{margin:0;height:6rem;background:var(--color-base-background-mobile)}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-right:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}#q,#sidebar .infobox dt bdi{direction:rtl}#urls{direction:initial;text-align:right}#urls .result .url_wrapper{justify-content:end}#main_results div#results.only_template_images #urls{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{direction:rtl}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{direction:ltr}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url span{direction:rtl;float:right}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{border-width:0 0 0 2rem;background-position-x:-2rem}}#vim-hotkeys-help table{direction:ltr;text-align:left}#main_preferences h1,#main_stats h1{background-position-x:100%}.bar-chart-serie1,.bar-chart-serie2{float:right}.engine-stats .engine-name,.engine-stats .engine-reliability,.engine-stats .engine-score,.engine-stats .response-time,.engine-stats .result-count{text-align:right}/*# sourceMappingURL=searxng-rtl.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/marlo/css/searxng-rtl.min.css.map b/searx/static/themes/marlo/css/searxng-rtl.min.css.map new file mode 100644 index 000000000..fc1b4ec46 --- /dev/null +++ b/searx/static/themes/marlo/css/searxng-rtl.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/generated/pygments.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/style-rtl.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/embedded.less","src/less/info.less","src/less/new_issue.less","src/less/stats.less","src/less/result_templates.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style-center.less","src/less/style.less"],"names":[],"mappings":"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,mCACH,eAAA,EACA,gBAAA,SAEA,sCACA,sCACE,OAAA,KAIJ,2BACE,MAAA,MAGF,4BACE,MAAA,KACA,WAAA,MAGF,kCACE,WAAA,MAMJ,YADqB,wCADA,wCAGnB,MAAA,MAGF,eACE,WAAA,KAEK,kCACH,UAAA,OACA,OAAA,KAAA,EAAA,KAAA,EACA,OAAA,IAAA,MAAkB,2BPqBpB,WAAA,MOjBK,wCADA,wCAED,QAAA,MAGI,sDACJ,aAAA,IAAA,MAAA,MAA8B,2BAC9B,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAKN,iBACE,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGF,iBACE,MAAO,kBACP,QAAA,aAGF,eACE,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGF,kBACE,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGF,kBACE,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGF,MACE,MAAA,EACA,OAAA,EAMC,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,QACC,MAAA,KCpGJ,aACE,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECLF,YACE,WAAA,KAGF,OACE,WAAA,OAEA,cACE,WAAgB,wBAAA,UAChB,WAAA,KACA,OAAA,KAAA,KACA,oBAAA,OACA,gBAAA,QAGF,UACE,UAAA,IACA,WAAA,OAGF,eACA,sBACE,OAAA,EAAA,KACA,WAAA,QACA,OAAA,QACA,QAAA,EACA,QAAA,MAGF,uBACE,QAAA,MACA,OAAA,IAAA,EAGQ,uBACR,QAAA,IAAA,KACA,cAAA,kBAImC,sCAEnC,aACE,UAAA,IAIJ,YACE,WAA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","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\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 border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgba(0, 0, 0, 0.2);\n --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgba(255, 255, 255, 0.2);\n --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 6rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 7.6rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.17.2\n*/\n\n\n.code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #ffffcc }\n .c { color: #3D7B7B; font-style: italic } /* Comment */\n .err { border: 1px solid #FF0000 } /* Error */\n .k { color: #008000; font-weight: bold } /* Keyword */\n .o { color: #666666 } /* Operator */\n .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n .cp { color: #9C6500 } /* Comment.Preproc */\n .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n .gd { color: #A00000 } /* Generic.Deleted */\n .ge { font-style: italic } /* Generic.Emph */\n .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n .gr { color: #E40000 } /* Generic.Error */\n .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n .gi { color: #008400 } /* Generic.Inserted */\n .go { color: #717171 } /* Generic.Output */\n .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n .gs { font-weight: bold } /* Generic.Strong */\n .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n .gt { color: #0044DD } /* Generic.Traceback */\n .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n .kp { color: #008000 } /* Keyword.Pseudo */\n .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n .kt { color: #B00040 } /* Keyword.Type */\n .m { color: #666666 } /* Literal.Number */\n .s { color: #BA2121 } /* Literal.String */\n .na { color: #687822 } /* Name.Attribute */\n .nb { color: #008000 } /* Name.Builtin */\n .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n .no { color: #880000 } /* Name.Constant */\n .nd { color: #AA22FF } /* Name.Decorator */\n .ni { color: #717171; font-weight: bold } /* Name.Entity */\n .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n .nf { color: #0000FF } /* Name.Function */\n .nl { color: #767600 } /* Name.Label */\n .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n .nt { color: #008000; font-weight: bold } /* Name.Tag */\n .nv { color: #19177C } /* Name.Variable */\n .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n .w { color: #bbbbbb } /* Text.Whitespace */\n .mb { color: #666666 } /* Literal.Number.Bin */\n .mf { color: #666666 } /* Literal.Number.Float */\n .mh { color: #666666 } /* Literal.Number.Hex */\n .mi { color: #666666 } /* Literal.Number.Integer */\n .mo { color: #666666 } /* Literal.Number.Oct */\n .sa { color: #BA2121 } /* Literal.String.Affix */\n .sb { color: #BA2121 } /* Literal.String.Backtick */\n .sc { color: #BA2121 } /* Literal.String.Char */\n .dl { color: #BA2121 } /* Literal.String.Delimiter */\n .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n .s2 { color: #BA2121 } /* Literal.String.Double */\n .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n .sh { color: #BA2121 } /* Literal.String.Heredoc */\n .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n .sx { color: #008000 } /* Literal.String.Other */\n .sr { color: #A45A77 } /* Literal.String.Regex */\n .s1 { color: #BA2121 } /* Literal.String.Single */\n .ss { color: #19177C } /* Literal.String.Symbol */\n .bp { color: #008000 } /* Name.Builtin.Pseudo */\n .fm { color: #0000FF } /* Name.Function.Magic */\n .vc { color: #19177C } /* Name.Variable.Class */\n .vg { color: #19177C } /* Name.Variable.Global */\n .vi { color: #19177C } /* Name.Variable.Instance */\n .vm { color: #19177C } /* Name.Variable.Magic */\n .il { color: #666666 } /* Literal.Number.Integer.Long */\n}\n\n.code-highlight-dark(){\n .code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #6e7681 }\n .c { color: #7e8aa1 } /* Comment */\n .err { color: #f88f7f } /* Error */\n .esc { color: #d4d2c8 } /* Escape */\n .g { color: #d4d2c8 } /* Generic */\n .k { color: #FFAD66 } /* Keyword */\n .l { color: #D5FF80 } /* Literal */\n .n { color: #d4d2c8 } /* Name */\n .o { color: #FFAD66 } /* Operator */\n .x { color: #d4d2c8 } /* Other */\n .p { color: #d4d2c8 } /* Punctuation */\n .ch { color: #f88f7f; font-style: italic } /* Comment.Hashbang */\n .cm { color: #7e8aa1 } /* Comment.Multiline */\n .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */\n .cpf { color: #7e8aa1 } /* Comment.PreprocFile */\n .c1 { color: #7e8aa1 } /* Comment.Single */\n .cs { color: #7e8aa1; font-style: italic } /* Comment.Special */\n .gd { color: #f88f7f; background-color: #3d1e20 } /* Generic.Deleted */\n .ge { color: #d4d2c8; font-style: italic } /* Generic.Emph */\n .ges { color: #d4d2c8 } /* Generic.EmphStrong */\n .gr { color: #f88f7f } /* Generic.Error */\n .gh { color: #d4d2c8 } /* Generic.Heading */\n .gi { color: #6ad4af; background-color: #19362c } /* Generic.Inserted */\n .go { color: #7e8aa1 } /* Generic.Output */\n .gp { color: #d4d2c8 } /* Generic.Prompt */\n .gs { color: #d4d2c8; font-weight: bold } /* Generic.Strong */\n .gu { color: #d4d2c8 } /* Generic.Subheading */\n .gt { color: #f88f7f } /* Generic.Traceback */\n .kc { color: #FFAD66 } /* Keyword.Constant */\n .kd { color: #FFAD66 } /* Keyword.Declaration */\n .kn { color: #FFAD66 } /* Keyword.Namespace */\n .kp { color: #FFAD66 } /* Keyword.Pseudo */\n .kr { color: #FFAD66 } /* Keyword.Reserved */\n .kt { color: #73D0FF } /* Keyword.Type */\n .ld { color: #D5FF80 } /* Literal.Date */\n .m { color: #DFBFFF } /* Literal.Number */\n .s { color: #D5FF80 } /* Literal.String */\n .na { color: #FFD173 } /* Name.Attribute */\n .nb { color: #FFD173 } /* Name.Builtin */\n .nc { color: #73D0FF } /* Name.Class */\n .no { color: #FFD173 } /* Name.Constant */\n .nd { color: #7e8aa1; font-weight: bold; font-style: italic } /* Name.Decorator */\n .ni { color: #95E6CB } /* Name.Entity */\n .ne { color: #73D0FF } /* Name.Exception */\n .nf { color: #FFD173 } /* Name.Function */\n .nl { color: #d4d2c8 } /* Name.Label */\n .nn { color: #d4d2c8 } /* Name.Namespace */\n .nx { color: #d4d2c8 } /* Name.Other */\n .py { color: #FFD173 } /* Name.Property */\n .nt { color: #5CCFE6 } /* Name.Tag */\n .nv { color: #d4d2c8 } /* Name.Variable */\n .ow { color: #FFAD66 } /* Operator.Word */\n .pm { color: #d4d2c8 } /* Punctuation.Marker */\n .w { color: #d4d2c8 } /* Text.Whitespace */\n .mb { color: #DFBFFF } /* Literal.Number.Bin */\n .mf { color: #DFBFFF } /* Literal.Number.Float */\n .mh { color: #DFBFFF } /* Literal.Number.Hex */\n .mi { color: #DFBFFF } /* Literal.Number.Integer */\n .mo { color: #DFBFFF } /* Literal.Number.Oct */\n .sa { color: #F29E74 } /* Literal.String.Affix */\n .sb { color: #D5FF80 } /* Literal.String.Backtick */\n .sc { color: #D5FF80 } /* Literal.String.Char */\n .dl { color: #D5FF80 } /* Literal.String.Delimiter */\n .sd { color: #7e8aa1 } /* Literal.String.Doc */\n .s2 { color: #D5FF80 } /* Literal.String.Double */\n .se { color: #95E6CB } /* Literal.String.Escape */\n .sh { color: #D5FF80 } /* Literal.String.Heredoc */\n .si { color: #95E6CB } /* Literal.String.Interpol */\n .sx { color: #95E6CB } /* Literal.String.Other */\n .sr { color: #95E6CB } /* Literal.String.Regex */\n .s1 { color: #D5FF80 } /* Literal.String.Single */\n .ss { color: #DFBFFF } /* Literal.String.Symbol */\n .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */\n .fm { color: #FFD173 } /* Name.Function.Magic */\n .vc { color: #d4d2c8 } /* Name.Variable.Class */\n .vg { color: #d4d2c8 } /* Name.Variable.Global */\n .vi { color: #d4d2c8 } /* Name.Variable.Instance */\n .vm { color: #d4d2c8 } /* Name.Variable.Magic */\n .il { color: #DFBFFF } /* Literal.Number.Integer.Long */\n }\n}\n","@import \"../generated/pygments.less\";\n\n.codelines {\n margin: @results-margin 0 0 0;\n padding: @result-padding 0 0 0;\n}\n\n.code-highlight-sxng() {\n .code-highlight {\n pre {\n overflow: auto;\n margin: 0;\n padding: 0 0 0.75rem 0;\n }\n\n .linenos {\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n margin-right: 8px;\n text-align: right;\n }\n\n span.linenos {\n color: #64708d;\n }\n }\n}\n\n.code-highlight-sxng();\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .code-highlight-dark();\n .code-highlight-sxng();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .code-highlight-dark();\n .code-highlight-sxng();\n}\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n .ltr-text-align-left();\n .rounded-corners;\n\n .close {\n .ltr-float-right();\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n padding-top: 0;\n .ltr-padding-right(1rem);\n padding-bottom: 0;\n .ltr-padding-left(0);\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-error-block {\n .dialog();\n\n display: block;\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 10000000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow-x: auto;\n overflow-y: hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\nul.tabs {\n border-bottom: 1px solid var(--color-toolkit-tabs-section-border);\n list-style: none;\n padding-left: 0;\n\n li {\n display: flex;\n }\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label,\n & > li > a {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n color: unset;\n\n .disable-user-select();\n\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n }\n\n & > label:hover,\n & > li > a:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 2;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\ninput.checkbox-onoff[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n display: inline-block;\n width: 2.5em;\n height: 0.7em;\n box-shadow: none !important;\n margin: 0 16px;\n border-radius: 10px;\n position: relative;\n\n /* focus & hover */\n &:focus,\n &:hover {\n outline: none;\n }\n\n &:focus::after {\n content: \"\";\n position: absolute;\n width: 3.5em;\n height: 1.65em;\n border: 1px solid var(--color-btn-background);\n border-radius: 12px;\n box-shadow: var(--color-btn-background) 0 0 3px;\n z-index: 10000;\n top: -0.55em;\n left: -0.6em;\n }\n\n &::before {\n position: absolute;\n top: -0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 0.75em;\n width: 1.875em;\n height: 1.875em;\n border-radius: 50%;\n }\n}\n\n/* check mark\nreversed-checkbox displays unchecked checkedboxes as checked, and vice versa.\nsee https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313\n*/\ninput.checkbox-onoff[type=\"checkbox\"],\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"]:checked {\n background: var(--color-toolkit-checkbox-onoff-off-background);\n\n &::before {\n left: -0.5em;\n content: \"\\2715\";\n color: var(--color-toolkit-checkbox-onoff-off-mark-color);\n background: var(--color-toolkit-checkbox-onoff-off-mark-background);\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]:checked,\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"] {\n background: var(--color-toolkit-checkbox-onoff-on-background);\n\n &::before {\n left: calc(100% - 1.5em);\n content: \"\\2713\";\n color: var(--color-toolkit-checkbox-onoff-on-mark-color);\n background: var(--color-toolkit-checkbox-onoff-on-mark-background);\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n input[type=checkbox]:not(.checkbox-onoff) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n top: 0;\n left: 0;\n border: 2px solid var(--color-toolkit-checkbox-input-border);\n .rounded-corners(0.3em);\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 3px;\n left: 2px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n\n &:checked::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can't be focused, show only the check mark\n input[type=checkbox][disabled]:not(.checkbox-onoff) {\n border: inherit;\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input.checkbox[type=checkbox]:not(:checked):not([disabled]):not(.checkbox-onoff):hover::after {\n opacity: 0.5;\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 1000000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n\n.show-content-button() {\n padding: 5px 10px;\n .rounded-corners-tiny;\n background: var(--color-show-btn-background);\n color: var(--color-show-btn-font);\n cursor: pointer;\n\n &:hover {\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n }\n}\n",".ltr-left(@offset) {\n right: @offset;\n}\n\n.ltr-right(@offset) {\n left: @offset;\n}\n\n.ltr-margin-right(@offset) {\n margin-left: @offset;\n}\n\n.ltr-margin-left(@offset) {\n margin-right: @offset;\n}\n\n.ltr-border-right(@offset) {\n border-left: @offset;\n}\n\n.ltr-border-left(@offset) {\n border-right: @offset;\n}\n\n.ltr-padding-right(@offset) {\n padding-left: @offset;\n}\n\n.ltr-padding-left(@offset) {\n padding-right: @offset;\n}\n\n.ltr-float-left() {\n float: right;\n}\n\n.ltr-float-right() {\n float: left;\n}\n\n.ltr-text-align-right() {\n text-align: left;\n}\n\n.ltr-rounded-left-corners(@radius) {\n border-radius: 0 @radius @radius 0;\n}\n\n.ltr-rounded-top-left-corners(@radius) {\n border-radius: 0 @radius 0 0;\n}\n\n.ltr-rounded-bottom-left-corners(@radius) {\n border-radius: 0 0 @radius 0;\n}\n\n.ltr-rounded-right-corners(@radius) {\n border-radius: @radius 0 0 @radius;\n}\n\n.ltr-rounded-top-right-corners(@radius) {\n border-radius: @radius 0 0 0;\n}\n\n.ltr-rounded-bottom-right-corners(@radius) {\n border-radius: 0 0 0 @radius;\n}\n\n.ltr-text-align-left() {\n text-align: right;\n}\n\n.ltr-border-left-width(@offset) {\n border-right-width: @offset;\n}\n\n.ltr-border-right-width(@offset) {\n border-left-width: @offset;\n}\n\n.ltr-transform() {\n transform: scale(-1, 1);\n}\n\n@import \"style.less\";\n\n#q,\n#sidebar .infobox dt bdi {\n direction: rtl;\n}\n\n// URL are displayed LTR but align on the right\n#urls {\n direction: initial;\n text-align: right;\n\n .result .url_wrapper {\n justify-content: end;\n }\n}\n\n// Image flexbox\n#main_results div#results.only_template_images #urls {\n direction: rtl;\n}\n\n// Image detail\n#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p {\n direction: rtl;\n\n &.result-url {\n // Display URL using the LTR direction\n direction: ltr;\n\n span {\n // And put the label on the right\n direction: rtl;\n float: right;\n }\n }\n}\n\n// select HTML element\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n border-width: 0 0 0 2rem;\n background-position-x: -2rem;\n }\n}\n\n// vim hotkey helps is not translated\n#vim-hotkeys-help table {\n direction: ltr;\n text-align: left;\n}\n\n// Logo on the right\n#main_preferences h1,\n#main_stats h1 {\n background-position-x: 100%;\n}\n\n// patch of stats.less\n.bar-chart-serie1,\n.bar-chart-serie2 {\n float: right;\n}\n\n.engine-stats .engine-name,\n.engine-stats .engine-score,\n.engine-stats .result-count,\n.engine-stats .response-time,\n.engine-stats .engine-reliability {\n text-align: right;\n}\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n width: @search-width;\n max-height: 0;\n overflow-y: hidden;\n .ltr-text-align-left();\n\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 0.5rem 1rem;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n max-height: 32rem;\n overflow-y: auto;\n z-index: 100;\n margin-top: 3.5rem;\n border-radius: 0.8rem;\n box-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n width: 100%;\n\n > ul > li {\n padding: 1rem;\n }\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n .ltr-left(56.75rem) !important;\n .ltr-right(inherit);\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n .ltr-left(60rem);\n .ltr-right(0);\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 10000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n height: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n height: 19rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n margin-bottom: 0;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin: 0.8rem 0;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n .ltr-text-align-left();\n }\n\n p.result-content {\n height: 2rem;\n line-height: unset;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow-x: hidden;\n overflow-y: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n .ltr-left(1rem);\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n .ltr-right(6rem);\n // center the icon by moving it slightly on the left\n padding-top: 0.4rem;\n .ltr-padding-right(0.5rem);\n padding-bottom: 0.4rem;\n .ltr-padding-left(0.3rem);\n }\n\n a.result-detail-next {\n top: 1rem;\n .ltr-right(2rem);\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 2000002;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n .ltr-right(50%);\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n .ltr-right(1rem);\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n .ltr-margin-right(1rem);\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]::before {\n transition: left 0.25s;\n}\n","iframe[src^=\"https://w.soundcloud.com\"] {\n height: 120px;\n}\n\niframe[src^=\"https://www.deezer.com\"] {\n // The real size is 92px, but 94px are needed to avoid an inner scrollbar of\n // the embedded HTML.\n height: 94px;\n}\n\niframe[src^=\"https://www.mixcloud.com\"] {\n // the embedded player from mixcloud has some quirks: initial there is an\n // issue with an image URL that is blocked since it is an a Cross-Origin\n // request. The alternative text (Mixcloud Logo then cause an\n // scrollbar in the inner of the iframe we can't avoid. Another quirk comes\n // when pressing the play button, somtimes the shown player has an height of\n // 200px, somtimes 250px.\n height: 250px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer\"] {\n // show playlist\n height: 350px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer/track\"] {\n // hide playlist\n height: 120px;\n}\n\niframe[src^=\"https://genius.com/songs\"] {\n height: 65px;\n}\n",".info-page {\n code {\n font-family: monospace;\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n.stats_endpoint {\n .github-issue-button {\n display: block;\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 16px;\n color: white;\n background-color: #238636;\n border: #2ea043;\n border-radius: 10px !important;\n box-shadow: rgba(0, 0, 0, 0) 0 0 0 0;\n }\n\n .github-issue-button:hover {\n background-color: #2ea043;\n }\n\n .issue-hide {\n display: none;\n }\n\n input[type=checked] {\n position: absolute;\n }\n\n label {\n margin: 1rem 1rem 1rem 0;\n }\n\n .step_content {\n margin: 1rem 1rem 1rem 2rem;\n }\n\n .step1,\n .step2 {\n visibility: hidden;\n }\n\n .step1_delay {\n transition: visibility 0s linear 4s;\n }\n\n #step1:checked ~ .step1,\n #step2:checked ~ .step2 {\n visibility: visible;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.engine-stats {\n border-spacing: 0;\n border-collapse: collapse;\n\n tr td,\n tr th {\n border-bottom: 1px solid var(--color-result-border);\n padding: 0.25rem;\n }\n\n table.engine-tooltip {\n border-spacing: 0;\n border-collapse: collapse;\n\n td,\n th {\n border: none;\n }\n }\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .engine-reliability {\n text-align: right;\n }\n}\n\ntable.engine-error th.engine-error-type,\ntable.engine-error td.engine-error-type,\nfailed-test {\n width: 10rem;\n}\n\n.engine-errors {\n margin-top: 3rem;\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem 0 3rem 0;\n border: 1px solid var(--color-result-border);\n .ltr-text-align-left();\n\n tr th,\n tr td {\n padding: 0.5rem;\n }\n\n & span.log_parameters {\n border-right: 1px solid solid var(--color-result-border);\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid #deb15b;\n margin: 1px 0;\n float: left;\n}\n\n.bar0 {\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.osm-map-box {\n height: 300px;\n width: 100%;\n margin: 10px 0;\n}\n","#main_index {\n margin-top: 26vh;\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n","table {\n border-collapse: collapse;\n\n th,\n td {\n text-align: center;\n padding: 1rem 0.5rem;\n .ltr-text-align-left();\n }\n\n tr.pref-group th {\n font-weight: normal;\n .ltr-text-align-left();\n background: var(--color-settings-table-group-background);\n }\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n .ltr-float-left();\n width: 300px;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n .value {\n margin: 0;\n padding: 0;\n .ltr-float-left();\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n }\n\n select {\n width: 14rem;\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n .ltr-float-right();\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n .bang {\n .ltr-text-align-left();\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n\n .category {\n .ltr-margin-right(0.5rem);\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n table.table_engines {\n th.name {\n /* stylelint-disable */\n label {\n cursor: pointer;\n }\n /* stylelint-enable */\n\n .engine-tooltip {\n margin-top: 1.8rem;\n .ltr-left(calc((100% - 85em) / 2 + 10em));\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n\n .bang {\n margin: 0.3rem;\n }\n }\n }\n\n .checkbox-col,\n .name,\n .shortcut {\n .ltr-text-align-left();\n }\n }\n\n table.cookies {\n width: 100%;\n direction: ltr;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n #toggle-all-engines-container {\n width: max-content;\n margin-left: auto;\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n #copy-hash-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n div.selectable_url {\n pre {\n width: auto;\n flex-grow: 1;\n }\n }\n }\n\n #pref-hash-input {\n width: 100%;\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n .ltr-left(10em) !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding-top: 1.5em;\n .ltr-padding-right(2em);\n .ltr-padding-left(@results-offset - 3rem);\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n column-gap: 1.2rem;\n row-gap: 1rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category_checkbox,\n.category_button {\n display: inline-block;\n position: relative;\n .ltr-margin-right(1rem);\n padding: 0;\n}\n\n.category_checkbox {\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\nbutton.category_button {\n background-color: inherit;\n color: var(--color-base-font);\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n align-items: center;\n text-transform: capitalize;\n font-size: 0.9em;\n border: none;\n border-bottom: 2px solid transparent;\n\n svg {\n padding-right: 0.2rem;\n }\n\n &.selected,\n &:active,\n &:focus-within {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#categories_container:has(button.category_button:focus-within) button.category_button.selected {\n color: var(--color-base-font);\n border-bottom: none;\n}\n\n#search_logo {\n padding: 0.5rem 10px 0 10px;\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n\n .help {\n display: none;\n }\n\n &:hover .help {\n display: block;\n position: absolute;\n background: var(--color-base-background);\n padding: 1rem 0.6rem 0.6rem 0;\n z-index: 1000;\n width: 100%;\n left: -0.1rem;\n }\n}\n\n#search_view {\n padding: 0.5rem 0.3rem 0 0.5rem;\n grid-area: search;\n\n body.results_endpoint & {\n padding: 0.5rem 2.8rem 0 0;\n }\n}\n\n.search_box {\n border-radius: 0.8rem;\n width: @search-width;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n box-shadow: var(--color-search-shadow);\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8rem;\n margin: 0;\n padding: 0.8rem 0.2rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 10000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\nhtml.no-js #clear_search.hide_if_nojs {\n display: none;\n}\n\n#q,\n#send_search {\n display: block;\n margin: 0;\n padding: 0.8rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 2;\n}\n\n#q {\n width: 100%;\n .ltr-padding-left(1rem);\n .ltr-padding-right(0) !important;\n .ltr-rounded-left-corners(0.8rem);\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n .ltr-rounded-right-corners(0.8rem);\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n .ltr-border-left(1px solid var(--color-search-border));\n}\n\n.search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset + 0.6rem);\n display: flex;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-tablet-offset + 3rem);\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n }\n}\n\n@media screen and (max-width: @tablet) and (hover: none) {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category_checkbox {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n .ltr-text-align-left();\n overflow-x: scroll;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n column-gap: 0;\n row-gap: 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n width: 98%;\n display: flex;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n .search_filters {\n margin: 0 10px;\n padding: 0.5rem 0;\n }\n\n .category {\n display: inline-block;\n width: auto;\n margin: 0;\n\n svg {\n display: none;\n }\n }\n\n .category_checkbox {\n label {\n padding: 1rem !important;\n margin: 0 !important;\n }\n }\n\n .category_button {\n padding: 1rem !important;\n margin: 0 !important;\n }\n\n #search_view:focus-within {\n display: block;\n background-color: var(--color-search-background);\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n z-index: 10000;\n\n .search_box {\n border-bottom: 1px solid var(--color-search-border);\n width: 100%;\n border-radius: 0;\n box-shadow: none;\n\n #send_search {\n .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile.\n }\n\n * {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n .ltr-margin-right(2.6rem);\n transition: margin 0.1s;\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n","/*\n--center-page-width overrides the less variable @results-width when the results are centered\nsee the CSS rules for #results in style.less ( grid-template-columns and gap).\n\nIn this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3).\n\nAll rules starts with \".center-aligment-yes #main_results\" to be enabled only\non the /search URL and when the \"center alignment\" preference is enabled.\n*/\n\n@media screen and (min-width: @phone) {\n .center-aligment-yes #main_results {\n --center-page-width: 48rem;\n }\n}\n\n@media screen and (min-width: 62rem) {\n .center-aligment-yes #main_results {\n --center-page-width: 60rem;\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-aligment-yes #main_results {\n --center-page-width: 73rem;\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // any change must be reset in @media screen and (min-width: @tablet) { ... }\n .center-aligment-yes #main_results {\n #results {\n grid-template-columns: 60% calc(40% - @results-gap);\n margin-left: 0;\n margin-right: 0;\n }\n\n #urls {\n .ltr-margin-left(3rem);\n }\n\n #sidebar {\n .ltr-margin-right(1rem);\n }\n\n #backToTop {\n .ltr-left(calc(60% + 1rem));\n }\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-aligment-yes #main_results {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n #search {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n #search_header {\n grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);\n grid-template-areas: \"na logo search\" \"na spacer categories\";\n column-gap: 1.2rem; // from search.less\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n .search_filters {\n .ltr-margin-left(0.5rem);\n width: var(--center-page-width);\n }\n\n #results {\n // from style.less (when screen width = @tablet, reset layout from tablet)\n .ltr-margin-right(2rem);\n .ltr-margin-left(@results-offset);\n //\n\n &.only_template_images,\n &.image-detail-open {\n // * grid-template-columns and .ltr-margin-left are set in style.less\n // * With .image-detail-open.only_template_images, the width is set in detail.less\n // * #results is going to be centered because of the #main_results rules,\n // align-self aligns the results on the left or right according to the language.\n align-self: flex-start;\n }\n\n &:not(.only_template_images):not(.image-detail-open) {\n // the gap is set in style.less\n .ltr-margin-left(1.5rem);\n grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width;\n\n #backToTop {\n .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2));\n }\n }\n\n .result .content {\n max-width: inherit;\n }\n }\n\n // from style.less (when screen width = @tablet, reset layout from tablet)\n #urls {\n .ltr-margin-left(0);\n }\n\n #sidebar {\n .ltr-margin-right(0);\n }\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n@import \"embedded.less\";\n@import \"info.less\";\n@import \"new_issue.less\";\n@import \"stats.less\";\n@import \"result_templates.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// to center the results\n@import \"style-center.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n .ltr-transform();\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n\n scroll-behavior: smooth;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n.page_with_header {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n.page_with_header .logo {\n height: 40px;\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"],\n.button {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));\n .ltr-rounded-right-corners(10px);\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n\n span.title,\n span.source {\n color: var(--color-result-image-span-font-selected);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n .ltr-border-left(0.2rem solid transparent);\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: smaller !important;\n margin-left: 0.5rem;\n }\n\n .content,\n .stat {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .altlink a {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_wrapper {\n display: flex;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-wrap: nowrap;\n overflow: hidden;\n flex-direction: row;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex-basis: content;\n flex-grow: 0;\n flex-shrink: 1;\n text-align: right;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date,\n .result_length,\n .result_author,\n .result_shipping,\n .result_source_country {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n .result_price {\n font-size: 1.2em;\n color: var(--color-result-description-highlight-font);\n }\n\n img {\n &.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 20rem;\n height: unset; // remove heigth value that was needed for lazy loading\n }\n\n &.image {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 7rem;\n max-height: 7rem;\n object-fit: scale-down;\n object-position: right top;\n }\n }\n\n .break {\n clear: both;\n }\n}\n\n.result-paper,\n.result-packages {\n .attributes {\n display: table;\n border-spacing: 0.125rem;\n\n div {\n display: table-row;\n\n span {\n font-size: 0.9rem;\n margin-top: 0.25rem;\n display: table-cell;\n\n time {\n font-size: 0.9rem;\n }\n }\n\n span:first-child {\n color: var(--color-base-font);\n min-width: 10rem;\n }\n\n span:nth-child(2) {\n color: var(--color-result-publishdate-font);\n }\n }\n }\n\n .content {\n margin-top: 0.25rem;\n }\n\n .comments {\n font-size: 0.9rem;\n margin: 0.25rem 0 0 0;\n padding: 0;\n word-wrap: break-word;\n line-height: 1.24;\n font-style: italic;\n }\n}\n\n.result-packages {\n .attributes {\n margin-top: 0.3rem;\n }\n}\n\n.template_group_images {\n display: flex;\n flex-wrap: wrap;\n}\n\n.template_group_images::after {\n flex-grow: 10;\n content: \"\";\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.audio-control audio {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.embedded-content iframe {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.result-videos .embedded-video iframe {\n width: 100%;\n aspect-ratio: 16 / 9;\n padding: 10px 0 0 0;\n}\n\n@supports not (aspect-ratio: 1 / 1) {\n // support older browsers which do not have aspect-ratio\n // https://caniuse.com/?search=aspect-ratio\n .result-videos .embedded-video iframe {\n height: calc(@results-width * 9 / 16);\n }\n}\n\n.engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin-top: 0;\n margin-bottom: 0;\n .ltr-margin-right(0.5rem);\n .ltr-margin-left(0);\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n flex-grow: 1;\n padding: 0.5rem 0.5rem 3rem 0.5rem;\n margin: 0.25rem;\n border: none !important;\n height: @results-image-row-height;\n\n & > a {\n position: relative;\n outline: none;\n }\n\n img {\n margin: 0;\n padding: 0;\n border: none;\n height: 100%;\n width: 100%;\n object-fit: cover;\n vertical-align: bottom;\n background: var(--color-result-image-background);\n }\n\n .image_resolution {\n position: absolute;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 50%);\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n color: #fff;\n border-top-left-radius: 0.3rem;\n }\n\n span.title,\n span.source {\n display: block;\n position: absolute;\n\n width: 100%;\n font-size: 0.9rem;\n color: var(--color-result-image-span-font);\n padding: 0.5rem 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span.source {\n padding: 1.8rem 0 0 0;\n font-size: 0.7rem;\n }\n}\n\n.result-map {\n img.image {\n .ltr-float-right() !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n .ltr-text-align-left();\n }\n\n td {\n vertical-align: top;\n .ltr-text-align-left();\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin-top: 1rem;\n .ltr-margin-right(2rem);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset);\n display: grid;\n grid-template-columns: @results-width @results-sidebar-width;\n grid-template-rows: min-content min-content 1fr min-content;\n gap: 0 @results-gap;\n grid-template-areas:\n \"corrections sidebar\"\n \"answers sidebar\"\n \"urls sidebar\"\n \"pagination sidebar\";\n}\n\n#results #sidebar *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#apis .wrapper {\n display: flex;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: column;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n width: calc(100%);\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#infoboxes .title,\n#suggestions .title,\n#search_url .title,\n#engines_msg .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\nsummary.title {\n cursor: pointer;\n padding-top: 1em;\n}\n\n.sidebar-collapsable {\n border-top: 1px solid var(--color-sidebar-border);\n padding-bottom: 0.5em;\n}\n\n#sidebar-end-collapsable {\n border-bottom: 1px solid var(--color-sidebar-border);\n width: 100%;\n}\n\n#answers {\n grid-area: answers;\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n\n span {\n overflow-wrap: anywhere;\n }\n\n .answer {\n display: flex;\n flex-direction: column;\n }\n\n .answer-url {\n margin-left: auto;\n margin-top: 5px;\n margin-right: 10px;\n margin-bottom: 10px;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n .attributes {\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin-top: 0.5em;\n .ltr-margin-right(0.25em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n padding: 0;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#apis {\n input {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n}\n\n#search_url {\n div.selectable_url {\n pre {\n float: left;\n width: 200em;\n }\n }\n\n button#copy_url {\n float: right;\n padding: 0.4rem;\n margin-left: 0.5rem;\n border-radius: 0.3rem;\n display: none; // will be shown by JS.\n }\n}\n\n#links_on_top {\n position: absolute;\n .ltr-right(1rem);\n .ltr-text-align-right();\n top: 2.7rem;\n padding: 0;\n border: 0;\n display: flex;\n align-items: center;\n font-size: 1em;\n color: var(--color-search-font);\n\n a {\n display: flex;\n align-items: center;\n margin-left: 1em;\n\n svg {\n font-size: 1.2em;\n .ltr-margin-right(0.125em);\n }\n }\n\n a,\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n.numbered_pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.page_number {\n background: transparent !important;\n color: var(--color-result-link-font) !important;\n text-decoration: underline;\n}\n\n.page_number_current {\n background: transparent;\n color: var(--color-result-link-visited-font);\n border: none;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));\n transition: opacity 0.5s;\n opacity: 0;\n pointer-events: none;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n pointer-events: all;\n}\n\n/*\n tablet layout\n*/\n\n.results-tablet() {\n #links_on_top {\n span {\n display: none;\n }\n }\n\n .page_with_header {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n .ltr-float-left();\n max-width: 10em;\n margin-top: 0.5em;\n .ltr-margin-right(0.5em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n }\n }\n }\n\n #sidebar {\n margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: 3px 0 0 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 0 auto;\n justify-content: center;\n display: grid;\n grid-template-columns: @results-width;\n grid-template-rows: min-content min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"answers\"\n \"sidebar\"\n \"urls\"\n \"pagination\";\n }\n}\n\n@media screen and (max-width: calc(@tablet - 0.5px)) {\n #links_on_top {\n span {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: 52rem) {\n body.results_endpoint {\n #links_on_top {\n .link_on_top_about,\n .link_on_top_donate {\n display: none;\n }\n }\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // when .center-aligment-yes, see style-center.less\n // the media query includes \"min-width: @phone\"\n // because the phone layout includes the tablet layout unconditionally.\n .center-aligment-no {\n .results-tablet();\n }\n}\n\n/* Misc */\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: min-content min-content min-content 1fr min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"answers\"\n \"sidebar\"\n \"urls\"\n \"pagination\";\n\n #sidebar {\n display: none;\n }\n\n #urls {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n }\n\n #urls::after {\n flex-grow: 10;\n content: \"\";\n }\n\n #backToTop {\n .ltr-left(auto);\n .ltr-right(1rem);\n }\n\n #pagination {\n .ltr-margin-right(4rem);\n }\n}\n\n/*\n phone layout\n*/\n\n@media screen and (max-width: @phone) {\n // based on the tablet layout\n .results-tablet();\n\n html {\n background-color: var(--color-base-background-mobile);\n }\n\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 0 auto;\n }\n\n #links_on_top {\n top: 1.4rem;\n .ltr-right(10px);\n }\n\n #main_index #links_on_top {\n top: 0.5rem;\n .ltr-right(0.5rem);\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n background: var(--color-result-background);\n border: 1px solid var(--color-result-background);\n margin: 1rem 10px;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n height: @results-image-row-height-phone;\n background: var(--color-base-background-mobile);\n }\n\n .infobox {\n border: none !important;\n background-color: var(--color-sidebar-background);\n }\n\n .numbered_pagination {\n display: none;\n }\n\n .result-paper,\n .result-packages {\n .attributes {\n display: block;\n\n div {\n display: block;\n\n span {\n display: inline;\n }\n\n span:first-child {\n font-weight: bold;\n }\n\n span:nth-child(2) {\n .ltr-margin-left(0.5rem);\n }\n }\n }\n }\n}\n\n/*\n small-phone layout\n*/\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file diff --git a/searx/static/themes/marlo/css/searxng.min.css b/searx/static/themes/marlo/css/searxng.min.css new file mode 100644 index 000000000..5cbf4e44d --- /dev/null +++ b/searx/static/themes/marlo/css/searxng.min.css @@ -0,0 +1 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{--color-base-font:#444;--color-base-font-rgb:68,68,68;--color-base-background:#fff;--color-base-background-mobile:#f2f5f8;--color-url-font:#334999;--color-url-visited-font:#9822c3;--color-header-background:#fdfbff;--color-header-border:#ddd;--color-footer-background:#fdfbff;--color-footer-border:#ddd;--color-sidebar-border:#ddd;--color-sidebar-font:#000;--color-sidebar-background:#fff;--color-backtotop-font:#444;--color-backtotop-border:#ddd;--color-backtotop-background:#fff;--color-btn-background:#3050ff;--color-btn-font:#fff;--color-show-btn-background:#bbb;--color-show-btn-font:#000;--color-search-border:#bbb;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#fff;--color-search-font:#222;--color-search-background-hover:#3050ff;--color-error:#db3434;--color-error-background:#fae1e1;--color-warning:#dbba34;--color-warning-background:#faf5e1;--color-success:#42db34;--color-success-background:#e3fae1;--color-categories-item-selected-font:#3050ff;--color-categories-item-border-selected:#3050ff;--color-autocomplete-font:#000;--color-autocomplete-border:#bbb;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#fff;--color-autocomplete-background-hover:#e3e3e3;--color-answer-font:#444;--color-answer-background:#fff;--color-result-background:#fff;--color-result-border:#ddd;--color-result-url-font:#000;--color-result-vim-selected:#f7f7f7;--color-result-vim-arrow:#000bbb;--color-result-description-highlight-font:#000;--color-result-link-font:#000bbb;--color-result-link-font-highlight:#000bbb;--color-result-link-visited-font:#9822c3;--color-result-publishdate-font:#777;--color-result-engines-font:#545454;--color-result-search-url-border:#ddd;--color-result-search-url-font:#000;--color-result-image-span-font:#444;--color-result-image-span-font-selected:#fff;--color-result-image-background:#fff;--color-settings-tr-hover:#ebebeb;--color-settings-engine-description-font:#545454;--color-settings-table-group-background:#0001;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#242424;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#545454;--color-toolkit-kbd-font:#fff;--color-toolkit-kbd-background:#000;--color-toolkit-dialog-border:#ddd;--color-toolkit-dialog-background:#fff;--color-toolkit-tabs-label-border:#fff;--color-toolkit-tabs-section-border:#ddd;--color-toolkit-select-background:#e1e1e1;--color-toolkit-select-border:#ddd;--color-toolkit-select-background-hover:#bbb;--color-toolkit-input-text-font:#222;--color-toolkit-checkbox-onoff-off-background:#ddd;--color-toolkit-checkbox-onoff-on-background:#ddd;--color-toolkit-checkbox-onoff-on-mark-background:#3050ff;--color-toolkit-checkbox-onoff-on-mark-color:#fff;--color-toolkit-checkbox-onoff-off-mark-background:#aaa;--color-toolkit-checkbox-onoff-off-mark-color:#fff;--color-toolkit-checkbox-label-background:#ddd;--color-toolkit-checkbox-label-border:#ddd;--color-toolkit-checkbox-input-border:#3050ff;--color-toolkit-engine-tooltip-border:#ddd;--color-toolkit-engine-tooltip-background:#fff;--color-toolkit-loader-border:rgba(0, 0, 0, 0.2);--color-toolkit-loader-borderleft:rgba(255, 255, 255, 0);--color-doc-code:#003;--color-doc-code-background:#ddeaff}@media (prefers-color-scheme:dark){:root.theme-auto{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f}}:root.theme-dark{--color-base-font:#bbb;--color-base-font-rgb:187,187,187;--color-base-background:#222428;--color-base-background-mobile:#222428;--color-url-font:#8af;--color-url-visited-font:#c09cd9;--color-header-background:#1e1e22;--color-header-border:#333;--color-footer-background:#1e1e22;--color-footer-border:#333;--color-sidebar-border:#555;--color-sidebar-font:#fff;--color-sidebar-background:#292c34;--color-backtotop-font:#bbb;--color-backtotop-border:#333;--color-backtotop-background:#2b2e36;--color-btn-background:#58f;--color-btn-font:#222;--color-show-btn-background:#555;--color-show-btn-font:#fff;--color-search-border:#555;--color-search-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-search-background:#2b2e36;--color-search-font:#fff;--color-search-background-hover:#58f;--color-error:#f55b5b;--color-error-background:#390a0a;--color-warning:#f1d561;--color-warning-background:#39300a;--color-success:#79f56e;--color-success-background:#0e390a;--color-categories-item-selected-font:#58f;--color-categories-item-border-selected:#58f;--color-autocomplete-font:#fff;--color-autocomplete-border:#555;--color-autocomplete-shadow:0 2px 8px rgba(34, 38, 46, 0.25);--color-autocomplete-background:#2b2e36;--color-autocomplete-background-hover:#1e1e22;--color-answer-font:#bbb;--color-answer-background:#26292f;--color-result-background:#26292f;--color-result-border:#333;--color-result-url-font:#fff;--color-result-vim-selected:#1f1f23cc;--color-result-vim-arrow:#8af;--color-result-description-highlight-font:#fff;--color-result-link-font:#8af;--color-result-link-font-highlight:#8af;--color-result-link-visited-font:#c09cd9;--color-result-publishdate-font:#888;--color-result-engines-font:#a4a4a4;--color-result-search-url-border:#555;--color-result-search-url-font:#fff;--color-result-detail-font:#fff;--color-result-detail-label-font:lightgray;--color-result-detail-background:#1a1a1c;--color-result-detail-hr:#555;--color-result-detail-link:#8af;--color-result-detail-loader-border:rgba(255, 255, 255, 0.2);--color-result-detail-loader-borderleft:rgba(0, 0, 0, 0);--color-result-image-span-font:#bbb;--color-result-image-span-font-selected:#222;--color-result-image-background:#222;--color-settings-tr-hover:#2c2c32;--color-settings-engine-description-font:#909090;--color-settings-table-group-background:#1b1b21;--color-toolkit-badge-font:#fff;--color-toolkit-badge-background:#555;--color-toolkit-kbd-font:#000;--color-toolkit-kbd-background:#fff;--color-toolkit-dialog-border:#555;--color-toolkit-dialog-background:#1e1e22;--color-toolkit-tabs-label-border:#222;--color-toolkit-tabs-section-border:#555;--color-toolkit-select-background:#313338;--color-toolkit-select-border:#555;--color-toolkit-select-background-hover:#373b49;--color-toolkit-input-text-font:#fff;--color-toolkit-checkbox-onoff-off-background:#313338;--color-toolkit-checkbox-onoff-on-background:#313338;--color-toolkit-checkbox-onoff-on-mark-background:#58f;--color-toolkit-checkbox-onoff-on-mark-color:#222;--color-toolkit-checkbox-onoff-off-mark-background:#ddd;--color-toolkit-checkbox-onoff-off-mark-color:#222;--color-toolkit-checkbox-label-background:#222;--color-toolkit-checkbox-label-border:#333;--color-toolkit-checkbox-input-border:#58f;--color-toolkit-engine-tooltip-border:#333;--color-toolkit-engine-tooltip-background:#222;--color-toolkit-loader-border:rgba(255, 255, 255, 0.2);--color-toolkit-loader-borderleft:rgba(0, 0, 0, 0);--color-doc-code:#ddd;--color-doc-code-background:#4d5a6f}.code-highlight pre{line-height:100%}.code-highlight td.linenos .normal{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight span.linenos{color:inherit;background-color:transparent;padding-left:5px;padding-right:5px}.code-highlight td.linenos .special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight span.linenos.special{color:#000;background-color:#ffffc0;padding-left:5px;padding-right:5px}.code-highlight .hll{background-color:#ffc}.code-highlight .c{color:#3D7B7B;font-style:italic}.code-highlight .err{border:1px solid red}.code-highlight .k{color:green;font-weight:700}.code-highlight .o{color:#666}.code-highlight .ch{color:#3D7B7B;font-style:italic}.code-highlight .cm{color:#3D7B7B;font-style:italic}.code-highlight .cp{color:#9C6500}.code-highlight .cpf{color:#3D7B7B;font-style:italic}.code-highlight .c1{color:#3D7B7B;font-style:italic}.code-highlight .cs{color:#3D7B7B;font-style:italic}.code-highlight .gd{color:#A00000}.code-highlight .ge{font-style:italic}.code-highlight .ges{font-weight:700;font-style:italic}.code-highlight .gr{color:#E40000}.code-highlight .gh{color:navy;font-weight:700}.code-highlight .gi{color:#008400}.code-highlight .go{color:#717171}.code-highlight .gp{color:navy;font-weight:700}.code-highlight .gs{font-weight:700}.code-highlight .gu{color:purple;font-weight:700}.code-highlight .gt{color:#04D}.code-highlight .kc{color:green;font-weight:700}.code-highlight .kd{color:green;font-weight:700}.code-highlight .kn{color:green;font-weight:700}.code-highlight .kp{color:green}.code-highlight .kr{color:green;font-weight:700}.code-highlight .kt{color:#B00040}.code-highlight .m{color:#666}.code-highlight .s{color:#BA2121}.code-highlight .na{color:#687822}.code-highlight .nb{color:green}.code-highlight .nc{color:#00F;font-weight:700}.code-highlight .no{color:#800}.code-highlight .nd{color:#A2F}.code-highlight .ni{color:#717171;font-weight:700}.code-highlight .ne{color:#CB3F38;font-weight:700}.code-highlight .nf{color:#00F}.code-highlight .nl{color:#767600}.code-highlight .nn{color:#00F;font-weight:700}.code-highlight .nt{color:green;font-weight:700}.code-highlight .nv{color:#19177C}.code-highlight .ow{color:#A2F;font-weight:700}.code-highlight .w{color:#bbb}.code-highlight .mb{color:#666}.code-highlight .mf{color:#666}.code-highlight .mh{color:#666}.code-highlight .mi{color:#666}.code-highlight .mo{color:#666}.code-highlight .sa{color:#BA2121}.code-highlight .sb{color:#BA2121}.code-highlight .sc{color:#BA2121}.code-highlight .dl{color:#BA2121}.code-highlight .sd{color:#BA2121;font-style:italic}.code-highlight .s2{color:#BA2121}.code-highlight .se{color:#AA5D1F;font-weight:700}.code-highlight .sh{color:#BA2121}.code-highlight .si{color:#A45A77;font-weight:700}.code-highlight .sx{color:green}.code-highlight .sr{color:#A45A77}.code-highlight .s1{color:#BA2121}.code-highlight .ss{color:#19177C}.code-highlight .bp{color:green}.code-highlight .fm{color:#00F}.code-highlight .vc{color:#19177C}.code-highlight .vg{color:#19177C}.code-highlight .vi{color:#19177C}.code-highlight .vm{color:#19177C}.code-highlight .il{color:#666}.codelines{margin:.125rem 0 0 0;padding:1rem 0 0 0}.code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}.code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}.code-highlight .linenos::selection{background:0 0}.code-highlight .linenos::-moz-selection{background:0 0}.code-highlight span.linenos{color:#64708d}@media (prefers-color-scheme:dark){:root.theme-auto .code-highlight pre{line-height:100%}:root.theme-auto .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-auto .code-highlight .hll{background-color:#6e7681}:root.theme-auto .code-highlight .c{color:#7e8aa1}:root.theme-auto .code-highlight .err{color:#f88f7f}:root.theme-auto .code-highlight .esc{color:#d4d2c8}:root.theme-auto .code-highlight .g{color:#d4d2c8}:root.theme-auto .code-highlight .k{color:#FFAD66}:root.theme-auto .code-highlight .l{color:#D5FF80}:root.theme-auto .code-highlight .n{color:#d4d2c8}:root.theme-auto .code-highlight .o{color:#FFAD66}:root.theme-auto .code-highlight .x{color:#d4d2c8}:root.theme-auto .code-highlight .p{color:#d4d2c8}:root.theme-auto .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-auto .code-highlight .cm{color:#7e8aa1}:root.theme-auto .code-highlight .cp{color:#FFAD66;font-weight:700}:root.theme-auto .code-highlight .cpf{color:#7e8aa1}:root.theme-auto .code-highlight .c1{color:#7e8aa1}:root.theme-auto .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-auto .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-auto .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-auto .code-highlight .ges{color:#d4d2c8}:root.theme-auto .code-highlight .gr{color:#f88f7f}:root.theme-auto .code-highlight .gh{color:#d4d2c8}:root.theme-auto .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-auto .code-highlight .go{color:#7e8aa1}:root.theme-auto .code-highlight .gp{color:#d4d2c8}:root.theme-auto .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-auto .code-highlight .gu{color:#d4d2c8}:root.theme-auto .code-highlight .gt{color:#f88f7f}:root.theme-auto .code-highlight .kc{color:#FFAD66}:root.theme-auto .code-highlight .kd{color:#FFAD66}:root.theme-auto .code-highlight .kn{color:#FFAD66}:root.theme-auto .code-highlight .kp{color:#FFAD66}:root.theme-auto .code-highlight .kr{color:#FFAD66}:root.theme-auto .code-highlight .kt{color:#73D0FF}:root.theme-auto .code-highlight .ld{color:#D5FF80}:root.theme-auto .code-highlight .m{color:#DFBFFF}:root.theme-auto .code-highlight .s{color:#D5FF80}:root.theme-auto .code-highlight .na{color:#FFD173}:root.theme-auto .code-highlight .nb{color:#FFD173}:root.theme-auto .code-highlight .nc{color:#73D0FF}:root.theme-auto .code-highlight .no{color:#FFD173}:root.theme-auto .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-auto .code-highlight .ni{color:#95E6CB}:root.theme-auto .code-highlight .ne{color:#73D0FF}:root.theme-auto .code-highlight .nf{color:#FFD173}:root.theme-auto .code-highlight .nl{color:#d4d2c8}:root.theme-auto .code-highlight .nn{color:#d4d2c8}:root.theme-auto .code-highlight .nx{color:#d4d2c8}:root.theme-auto .code-highlight .py{color:#FFD173}:root.theme-auto .code-highlight .nt{color:#5CCFE6}:root.theme-auto .code-highlight .nv{color:#d4d2c8}:root.theme-auto .code-highlight .ow{color:#FFAD66}:root.theme-auto .code-highlight .pm{color:#d4d2c8}:root.theme-auto .code-highlight .w{color:#d4d2c8}:root.theme-auto .code-highlight .mb{color:#DFBFFF}:root.theme-auto .code-highlight .mf{color:#DFBFFF}:root.theme-auto .code-highlight .mh{color:#DFBFFF}:root.theme-auto .code-highlight .mi{color:#DFBFFF}:root.theme-auto .code-highlight .mo{color:#DFBFFF}:root.theme-auto .code-highlight .sa{color:#F29E74}:root.theme-auto .code-highlight .sb{color:#D5FF80}:root.theme-auto .code-highlight .sc{color:#D5FF80}:root.theme-auto .code-highlight .dl{color:#D5FF80}:root.theme-auto .code-highlight .sd{color:#7e8aa1}:root.theme-auto .code-highlight .s2{color:#D5FF80}:root.theme-auto .code-highlight .se{color:#95E6CB}:root.theme-auto .code-highlight .sh{color:#D5FF80}:root.theme-auto .code-highlight .si{color:#95E6CB}:root.theme-auto .code-highlight .sx{color:#95E6CB}:root.theme-auto .code-highlight .sr{color:#95E6CB}:root.theme-auto .code-highlight .s1{color:#D5FF80}:root.theme-auto .code-highlight .ss{color:#DFBFFF}:root.theme-auto .code-highlight .bp{color:#5CCFE6}:root.theme-auto .code-highlight .fm{color:#FFD173}:root.theme-auto .code-highlight .vc{color:#d4d2c8}:root.theme-auto .code-highlight .vg{color:#d4d2c8}:root.theme-auto .code-highlight .vi{color:#d4d2c8}:root.theme-auto .code-highlight .vm{color:#d4d2c8}:root.theme-auto .code-highlight .il{color:#DFBFFF}:root.theme-auto .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-auto .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-auto .code-highlight .linenos::selection{background:0 0}:root.theme-auto .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-auto .code-highlight span.linenos{color:#64708d}}:root.theme-dark .code-highlight pre{line-height:100%}:root.theme-dark .code-highlight td.linenos .normal{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos{color:#3c4354;background-color:transparent;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight td.linenos .special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight span.linenos.special{color:#3c4354;background-color:#ffffc0;padding-left:5px;padding-right:5px}:root.theme-dark .code-highlight .hll{background-color:#6e7681}:root.theme-dark .code-highlight .c{color:#7e8aa1}:root.theme-dark .code-highlight .err{color:#f88f7f}:root.theme-dark .code-highlight .esc{color:#d4d2c8}:root.theme-dark .code-highlight .g{color:#d4d2c8}:root.theme-dark .code-highlight .k{color:#FFAD66}:root.theme-dark .code-highlight .l{color:#D5FF80}:root.theme-dark .code-highlight .n{color:#d4d2c8}:root.theme-dark .code-highlight .o{color:#FFAD66}:root.theme-dark .code-highlight .x{color:#d4d2c8}:root.theme-dark .code-highlight .p{color:#d4d2c8}:root.theme-dark .code-highlight .ch{color:#f88f7f;font-style:italic}:root.theme-dark .code-highlight .cm{color:#7e8aa1}:root.theme-dark .code-highlight .cp{color:#FFAD66;font-weight:700}:root.theme-dark .code-highlight .cpf{color:#7e8aa1}:root.theme-dark .code-highlight .c1{color:#7e8aa1}:root.theme-dark .code-highlight .cs{color:#7e8aa1;font-style:italic}:root.theme-dark .code-highlight .gd{color:#f88f7f;background-color:#3d1e20}:root.theme-dark .code-highlight .ge{color:#d4d2c8;font-style:italic}:root.theme-dark .code-highlight .ges{color:#d4d2c8}:root.theme-dark .code-highlight .gr{color:#f88f7f}:root.theme-dark .code-highlight .gh{color:#d4d2c8}:root.theme-dark .code-highlight .gi{color:#6ad4af;background-color:#19362c}:root.theme-dark .code-highlight .go{color:#7e8aa1}:root.theme-dark .code-highlight .gp{color:#d4d2c8}:root.theme-dark .code-highlight .gs{color:#d4d2c8;font-weight:700}:root.theme-dark .code-highlight .gu{color:#d4d2c8}:root.theme-dark .code-highlight .gt{color:#f88f7f}:root.theme-dark .code-highlight .kc{color:#FFAD66}:root.theme-dark .code-highlight .kd{color:#FFAD66}:root.theme-dark .code-highlight .kn{color:#FFAD66}:root.theme-dark .code-highlight .kp{color:#FFAD66}:root.theme-dark .code-highlight .kr{color:#FFAD66}:root.theme-dark .code-highlight .kt{color:#73D0FF}:root.theme-dark .code-highlight .ld{color:#D5FF80}:root.theme-dark .code-highlight .m{color:#DFBFFF}:root.theme-dark .code-highlight .s{color:#D5FF80}:root.theme-dark .code-highlight .na{color:#FFD173}:root.theme-dark .code-highlight .nb{color:#FFD173}:root.theme-dark .code-highlight .nc{color:#73D0FF}:root.theme-dark .code-highlight .no{color:#FFD173}:root.theme-dark .code-highlight .nd{color:#7e8aa1;font-weight:700;font-style:italic}:root.theme-dark .code-highlight .ni{color:#95E6CB}:root.theme-dark .code-highlight .ne{color:#73D0FF}:root.theme-dark .code-highlight .nf{color:#FFD173}:root.theme-dark .code-highlight .nl{color:#d4d2c8}:root.theme-dark .code-highlight .nn{color:#d4d2c8}:root.theme-dark .code-highlight .nx{color:#d4d2c8}:root.theme-dark .code-highlight .py{color:#FFD173}:root.theme-dark .code-highlight .nt{color:#5CCFE6}:root.theme-dark .code-highlight .nv{color:#d4d2c8}:root.theme-dark .code-highlight .ow{color:#FFAD66}:root.theme-dark .code-highlight .pm{color:#d4d2c8}:root.theme-dark .code-highlight .w{color:#d4d2c8}:root.theme-dark .code-highlight .mb{color:#DFBFFF}:root.theme-dark .code-highlight .mf{color:#DFBFFF}:root.theme-dark .code-highlight .mh{color:#DFBFFF}:root.theme-dark .code-highlight .mi{color:#DFBFFF}:root.theme-dark .code-highlight .mo{color:#DFBFFF}:root.theme-dark .code-highlight .sa{color:#F29E74}:root.theme-dark .code-highlight .sb{color:#D5FF80}:root.theme-dark .code-highlight .sc{color:#D5FF80}:root.theme-dark .code-highlight .dl{color:#D5FF80}:root.theme-dark .code-highlight .sd{color:#7e8aa1}:root.theme-dark .code-highlight .s2{color:#D5FF80}:root.theme-dark .code-highlight .se{color:#95E6CB}:root.theme-dark .code-highlight .sh{color:#D5FF80}:root.theme-dark .code-highlight .si{color:#95E6CB}:root.theme-dark .code-highlight .sx{color:#95E6CB}:root.theme-dark .code-highlight .sr{color:#95E6CB}:root.theme-dark .code-highlight .s1{color:#D5FF80}:root.theme-dark .code-highlight .ss{color:#DFBFFF}:root.theme-dark .code-highlight .bp{color:#5CCFE6}:root.theme-dark .code-highlight .fm{color:#FFD173}:root.theme-dark .code-highlight .vc{color:#d4d2c8}:root.theme-dark .code-highlight .vg{color:#d4d2c8}:root.theme-dark .code-highlight .vi{color:#d4d2c8}:root.theme-dark .code-highlight .vm{color:#d4d2c8}:root.theme-dark .code-highlight .il{color:#DFBFFF}:root.theme-dark .code-highlight pre{overflow:auto;margin:0;padding:0 0 .75rem 0}:root.theme-dark .code-highlight .linenos{user-select:none;cursor:default;margin-right:8px;text-align:right}:root.theme-dark .code-highlight .linenos::selection{background:0 0}:root.theme-dark .code-highlight .linenos::-moz-selection{background:0 0}:root.theme-dark .code-highlight span.linenos{color:#64708d}html.no-js .hide_if_nojs{display:none}html.js .show_if_nojs{display:none}.center{text-align:center}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled{list-style-type:none}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:var(--color-error-background)}.warning{background:var(--color-warning-background)}.success{background:var(--color-success-background)}.badge{display:inline-block;color:var(--color-toolkit-badge-font);background-color:var(--color-toolkit-badge-background);text-align:center;white-space:nowrap;vertical-align:baseline;min-width:10px;padding:1px 5px;border-radius:5px}kbd{padding:2px 4px;margin:1px;font-size:90%;color:var(--color-toolkit-kbd-font);background:var(--color-toolkit-kbd-background)}table{width:100%}table.striped tr{border-bottom:1px solid var(--color-settings-tr-hover)}th{padding:.4em}td{padding:0 4px}tr:hover{background:var(--color-settings-tr-hover)!important}div.selectable_url{display:block;border:1px solid var(--color-result-search-url-border);padding:4px;color:var(--color-result-search-url-font);margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em;border-radius:5px}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;user-select:all}.dialog-error{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error ol,.dialog-error p,.dialog-error ul{margin:1px 0 0 0}.dialog-error table{width:auto}.dialog-error tr{vertical-align:text-top}.dialog-error tr:hover{background:0 0!important}.dialog-error td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-error-block{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;color:var(--color-error);background:var(--color-error-background);border-color:var(--color-error)}.dialog-error-block .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-error-block ol,.dialog-error-block p,.dialog-error-block ul{margin:1px 0 0 0}.dialog-error-block table{width:auto}.dialog-error-block tr{vertical-align:text-top}.dialog-error-block tr:hover{background:0 0!important}.dialog-error-block td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-error-block h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;color:var(--color-warning);background:var(--color-warning-background);border-color:var(--color-warning)}.dialog-warning .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-warning ol,.dialog-warning p,.dialog-warning ul{margin:1px 0 0 0}.dialog-warning table{width:auto}.dialog-warning tr{vertical-align:text-top}.dialog-warning tr:hover{background:0 0!important}.dialog-warning td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{position:relative;display:flex;padding:1rem;margin:0 0 1em 0;border:1px solid var(--color-toolkit-dialog-border);text-align:left;border-radius:10px;display:block;background:var(--color-toolkit-dialog-background);position:fixed;top:50%;left:50%;margin:0 auto;transform:translate(-50%,-50%);z-index:10000000}.dialog-modal .close{float:right;position:relative;top:-3px;color:inherit;font-size:1.5em}.dialog-modal ol,.dialog-modal p,.dialog-modal ul{margin:1px 0 0 0}.dialog-modal table{width:auto}.dialog-modal tr{vertical-align:text-top}.dialog-modal tr:hover{background:0 0!important}.dialog-modal td{padding:0 1em 0 0;padding-top:0;padding-right:1rem;padding-bottom:0;padding-left:0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal h3{margin-top:0}.btn-collapse{cursor:pointer}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}ul.tabs{border-bottom:1px solid var(--color-toolkit-tabs-section-border);list-style:none;padding-left:0}ul.tabs li{display:flex}.tabs{display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label,.tabs>li>a{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid var(--color-toolkit-tabs-label-border);border-width:0 0 2px 0;color:unset;-webkit-touch-callout:none;user-select:none;cursor:pointer}.tabs>label.active,.tabs>li>a.active{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}.tabs>label:hover,.tabs>li>a:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}.tabs>section{min-width:100%;padding:.7rem 0;box-sizing:border-box;border-top:1px solid var(--color-toolkit-tabs-section-border);display:none}.tabs>label:last-of-type{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font);letter-spacing:-.1px}.tabs>section:last-of-type{display:block}html body .tabs>input:checked~section{display:none}html body .tabs>input:checked~label{position:inherited;background:inherit;border-bottom:2px solid transparent;font-weight:400;color:inherit}html body .tabs>input:checked~label:hover{border-bottom:2px solid var(--color-categories-item-border-selected)}html body .tabs>input:checked+label{border-bottom:2px solid var(--color-categories-item-border-selected);background:var(--color-categories-item-selected);color:var(--color-categories-item-selected-font)}html body .tabs>input:checked+label+section{display:block}select{height:2.4rem;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0;padding:.2rem!important;color:var(--color-search-font);font-size:.9rem;z-index:2}select:focus,select:hover{cursor:pointer}@supports ((background-position-x:100%) and ((appearance:none) or (-webkit-appearance:none) or (-moz-appearance:none))){select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border-width:0 2rem 0 0;border-color:transparent;background:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat;background-position-x:calc(100% + 2rem);background-size:2rem;background-origin:content-box;background-color:var(--color-toolkit-select-background);outline:medium none;text-overflow:ellipsis;border-radius:5px}select:focus,select:hover{background-color:var(--color-toolkit-select-background-hover)}select option{background-color:var(--color-base-background)}@media (prefers-color-scheme:dark){html.theme-auto select,html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}html.theme-dark select{background-image:url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E")}}input.checkbox-onoff[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-block;width:2.5em;height:.7em;box-shadow:none!important;margin:0 16px;border-radius:10px;position:relative}input.checkbox-onoff[type=checkbox]:focus,input.checkbox-onoff[type=checkbox]:hover{outline:0}input.checkbox-onoff[type=checkbox]:focus::after{content:"";position:absolute;width:3.5em;height:1.65em;border:1px solid var(--color-btn-background);border-radius:12px;box-shadow:var(--color-btn-background) 0 0 3px;z-index:10000;top:-.55em;left:-.6em}input.checkbox-onoff[type=checkbox]::before{position:absolute;top:-.5em;display:flex;justify-content:center;align-items:center;font-size:.75em;width:1.875em;height:1.875em;border-radius:50%}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked,input.checkbox-onoff[type=checkbox]{background:var(--color-toolkit-checkbox-onoff-off-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]:checked::before,input.checkbox-onoff[type=checkbox]::before{left:-.5em;content:"\2715";color:var(--color-toolkit-checkbox-onoff-off-mark-color);background:var(--color-toolkit-checkbox-onoff-off-mark-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox],input.checkbox-onoff[type=checkbox]:checked{background:var(--color-toolkit-checkbox-onoff-on-background)}input.checkbox-onoff.reversed-checkbox[type=checkbox]::before,input.checkbox-onoff[type=checkbox]:checked::before{left:calc(100% - 1.5em);content:"\2713";color:var(--color-toolkit-checkbox-onoff-on-mark-color);background:var(--color-toolkit-checkbox-onoff-on-mark-background)}@supports (transform:rotate(-45deg)){input[type=checkbox]:not(.checkbox-onoff){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;cursor:pointer;position:relative;top:0;left:0;border:2px solid var(--color-toolkit-checkbox-input-border);border-radius:.3em}input[type=checkbox]:not(.checkbox-onoff)::after{content:'';width:9px;height:5px;position:absolute;top:3px;left:2px;border:3px solid var(--color-toolkit-checkbox-label-border);border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}input[type=checkbox]:not(.checkbox-onoff):checked::after{border-color:var(--color-toolkit-checkbox-input-border);opacity:1}input[type=checkbox][disabled]:not(.checkbox-onoff){border:inherit;background-color:transparent!important;cursor:inherit}input.checkbox[type=checkbox]:not(:checked):not([disabled]):not(.checkbox-onoff):hover::after{opacity:.5}}@media screen and (max-width:50em){.tabs>label{width:100%}}.loader,.loader::after{border-radius:50%;width:2em;height:2em}.loader{margin:1em auto;font-size:10px;position:relative;text-indent:-9999em;border-top:.5em solid var(--color-toolkit-loader-border);border-right:.5em solid var(--color-toolkit-loader-border);border-bottom:.5em solid var(--color-toolkit-loader-border);border-left:.5em solid var(--color-toolkit-loader-borderleft);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.2s infinite linear;animation:load8 1.2s infinite linear}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.engine-tooltip{display:none;position:absolute;padding:.5rem 1rem;margin:0 0 0 2rem;border:1px solid var(--color-toolkit-engine-tooltip-border);background:var(--color-toolkit-engine-tooltip-background);font-size:14px;font-weight:400;z-index:1000000;text-align:left;border-radius:10px}.engine-tooltip:hover,td:hover .engine-tooltip,th:hover .engine-tooltip{display:inline-block}.stacked-bar-chart{margin:0;padding:0 .125rem 0 4rem;width:100%;width:-moz-available;width:-webkit-fill-available;width:fill;flex-direction:row;flex-wrap:nowrap;align-items:center;display:inline-flex}.stacked-bar-chart-value{width:3rem;display:inline-block;position:absolute;padding:0 .5rem;text-align:right}.stacked-bar-chart-base{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset}.stacked-bar-chart-median{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:var(--color-base-font);border:1px solid rgba(var(--color-base-font-rgb),.9);padding:.3rem 0}.stacked-bar-chart-rate80{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border:1px solid rgba(var(--color-base-font-rgb),.3);padding:.3rem 0}.stacked-bar-chart-rate95{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-bottom:1px dotted rgba(var(--color-base-font-rgb),.5);padding:0}.stacked-bar-chart-rate100{display:flex;flex-shrink:0;flex-grow:0;flex-basis:unset;background:0 0;border-left:1px solid rgba(var(--color-base-font-rgb),.9);padding:.4rem 0;width:1px}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;width:44rem;max-height:0;overflow-y:hidden;text-align:left;border-radius:10px}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:var(--color-autocomplete-background)}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:.5rem 1rem}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus,.autocomplete>ul>li:hover{background-color:var(--color-autocomplete-background-hover)}.autocomplete>ul>li.active a:active,.autocomplete>ul>li.active a:focus,.autocomplete>ul>li.active a:hover,.autocomplete>ul>li:active a:active,.autocomplete>ul>li:active a:focus,.autocomplete>ul>li:active a:hover,.autocomplete>ul>li:focus a:active,.autocomplete>ul>li:focus a:focus,.autocomplete>ul>li:focus a:hover,.autocomplete>ul>li:hover a:active,.autocomplete>ul>li:hover a:focus,.autocomplete>ul>li:hover a:hover{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:var(--color-autocomplete-background);color:var(--color-autocomplete-font);max-height:32rem;overflow-y:auto;z-index:100;margin-top:3.5rem;border-radius:.8rem;box-shadow:0 2px 8px rgba(34,38,46,.25)}.autocomplete.open:empty{display:none}@media screen and (max-width:50em){.autocomplete{width:100%}.autocomplete>ul>li{padding:1rem}}#main_results #results.image-detail-open.only_template_images{width:min(98%,59.25rem)!important}#main_results #results.only_template_images.image-detail-open #backToTop{left:56.75rem!important;right:inherit}article.result-images .detail{display:none}#results.image-detail-open article.result-images[data-vim-selected] .detail{display:flex;flex-direction:column;position:fixed;left:60rem;right:0;top:7.6rem;transition:top 64ms ease-in 0s;bottom:0;background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-background);z-index:10000;padding:4rem 3rem 3rem 3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:block;flex:1;text-align:left;width:100%;border:none;text-decoration:none}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{padding:0;margin:0;border:none;object-fit:contain;width:inherit;height:inherit;max-width:100%;min-height:inherit;max-height:calc(100vh - 25rem - 7rem);background:inherit}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels{color:var(--color-result-detail-font);height:19rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr{border-top:1px solid var(--color-result-detail-hr);border-bottom:none}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4{height:2rem;overflow:hidden;text-overflow:ellipsis;font-size:.9rem;margin-bottom:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{color:var(--color-result-detail-label-font);font-size:.9rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:.8rem 0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{display:inline-block;width:12rem}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p{text-align:left}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content{height:2rem;line-height:unset;overflow:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url{white-space:nowrap;overflow-x:hidden;overflow-y:hidden;text-overflow:ellipsis}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover{position:relative;overflow:inherit!important;background:var(--color-result-detail-background);text-overflow:inherit!important}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited{color:var(--color-result-detail-link)}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover{text-decoration:underline}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close{top:1rem;left:1rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{top:1rem;right:6rem;padding-top:.4rem;padding-right:.5rem;padding-bottom:.4rem;padding-left:.3rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{top:1rem;right:2rem;padding:.4rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous{border-radius:50%;display:block;width:1.5rem;height:1.5rem;position:absolute;filter:opacity(40%);z-index:2000002}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span{display:block;width:1.5rem;height:1.5rem;text-align:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before{vertical-align:sub}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited{color:var(--color-result-detail-font);background:var(--color-result-detail-background);border:1px solid var(--color-result-detail-font)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus,#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover{filter:opacity(80%)}#results.image-detail-open article.result-images[data-vim-selected] .detail .loader{position:absolute;top:1rem;right:50%;border-top:.5em solid var(--color-result-detail-loader-border);border-right:.5em solid var(--color-result-detail-loader-border);border-bottom:.5em solid var(--color-result-detail-loader-border);border-left:.5em solid var(--color-result-detail-loader-borderleft)}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail{top:0}#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img{max-height:calc(100vh - 25rem)}@media screen and (max-width:79.75em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source{display:flex;flex-direction:column;justify-content:center}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 24rem)}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next{right:1rem}}@media screen and (max-width:50em){#results.image-detail-open article.result-images[data-vim-selected] .detail{top:0;left:0;padding:1rem}#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img{width:100%;max-height:calc(100vh - 20rem);margin:0}#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span{width:inherit;margin-right:1rem}}.dialog-modal{animation-name:dialogmodal;animation-duration:.13s}@keyframes dialogmodal{0%{opacity:0}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}input.checkbox-onoff[type=checkbox]::before{transition:left .25s}iframe[src^="https://w.soundcloud.com"]{height:120px}iframe[src^="https://www.deezer.com"]{height:94px}iframe[src^="https://www.mixcloud.com"]{height:250px}iframe[src^="https://bandcamp.com/EmbeddedPlayer"]{height:350px}iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"]{height:120px}iframe[src^="https://genius.com/songs"]{height:65px}.info-page code{font-family:monospace;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}.stats_endpoint .github-issue-button{display:block;padding:8px 16px;font-family:sans-serif;font-size:16px;color:#fff;background-color:#238636;border:#2ea043;border-radius:10px!important;box-shadow:transparent 0 0 0 0}.stats_endpoint .github-issue-button:hover{background-color:#2ea043}.stats_endpoint .issue-hide{display:none}.stats_endpoint input[type=checked]{position:absolute}.stats_endpoint label{margin:1rem 1rem 1rem 0}.stats_endpoint .step_content{margin:1rem 1rem 1rem 2rem}.stats_endpoint .step1,.stats_endpoint .step2{visibility:hidden}.stats_endpoint .step1_delay{transition:visibility 0s linear 4s}.stats_endpoint #step1:checked~.step1,.stats_endpoint #step2:checked~.step2{visibility:visible}.engine-stats{border-spacing:0;border-collapse:collapse}.engine-stats tr td,.engine-stats tr th{border-bottom:1px solid var(--color-result-border);padding:.25rem}.engine-stats table.engine-tooltip{border-spacing:0;border-collapse:collapse}.engine-stats table.engine-tooltip td,.engine-stats table.engine-tooltip th{border:none}.engine-stats .engine-name{width:20rem}.engine-stats .engine-score{width:7rem;text-align:right}.engine-stats .engine-reliability{text-align:right}failed-test,table.engine-error td.engine-error-type,table.engine-error th.engine-error-type{width:10rem}.engine-errors{margin-top:3rem}.engine-errors table.engine-error{max-width:1280px;margin:1rem 0 3rem 0;border:1px solid var(--color-result-border);text-align:left}.engine-errors table.engine-error tr td,.engine-errors table.engine-error tr th{padding:.5rem}.engine-errors table.engine-error span.log_parameters{border-right:1px solid solid var(--color-result-border);padding:0 1rem 0 0;margin:0 0 0 .5rem}.bar-chart-value{width:3em;display:inline-block;text-align:right;padding-right:.5rem}.bar-chart-graph{width:calc(100% - 5rem);display:inline-block}.bar-chart-bar{border:3px solid #5bc0de;margin:1px 0}.bar-chart-serie1{border:3px solid #5bc0de;margin:1px 0;float:left}.bar-chart-serie2{border:3px solid #deb15b;margin:1px 0;float:left}.bar0{width:0;border:0}.bar1{width:1%}.bar2{width:2%}.bar3{width:3%}.bar4{width:4%}.bar5{width:5%}.bar6{width:6%}.bar7{width:7%}.bar8{width:8%}.bar9{width:9%}.bar10{width:10%}.bar11{width:11%}.bar12{width:12%}.bar13{width:13%}.bar14{width:14%}.bar15{width:15%}.bar16{width:16%}.bar17{width:17%}.bar18{width:18%}.bar19{width:19%}.bar20{width:20%}.bar21{width:21%}.bar22{width:22%}.bar23{width:23%}.bar24{width:24%}.bar25{width:25%}.bar26{width:26%}.bar27{width:27%}.bar28{width:28%}.bar29{width:29%}.bar30{width:30%}.bar31{width:31%}.bar32{width:32%}.bar33{width:33%}.bar34{width:34%}.bar35{width:35%}.bar36{width:36%}.bar37{width:37%}.bar38{width:38%}.bar39{width:39%}.bar40{width:40%}.bar41{width:41%}.bar42{width:42%}.bar43{width:43%}.bar44{width:44%}.bar45{width:45%}.bar46{width:46%}.bar47{width:47%}.bar48{width:48%}.bar49{width:49%}.bar50{width:50%}.bar51{width:51%}.bar52{width:52%}.bar53{width:53%}.bar54{width:54%}.bar55{width:55%}.bar56{width:56%}.bar57{width:57%}.bar58{width:58%}.bar59{width:59%}.bar60{width:60%}.bar61{width:61%}.bar62{width:62%}.bar63{width:63%}.bar64{width:64%}.bar65{width:65%}.bar66{width:66%}.bar67{width:67%}.bar68{width:68%}.bar69{width:69%}.bar70{width:70%}.bar71{width:71%}.bar72{width:72%}.bar73{width:73%}.bar74{width:74%}.bar75{width:75%}.bar76{width:76%}.bar77{width:77%}.bar78{width:78%}.bar79{width:79%}.bar80{width:80%}.bar81{width:81%}.bar82{width:82%}.bar83{width:83%}.bar84{width:84%}.bar85{width:85%}.bar86{width:86%}.bar87{width:87%}.bar88{width:88%}.bar89{width:89%}.bar90{width:90%}.bar91{width:91%}.bar92{width:92%}.bar93{width:93%}.bar94{width:94%}.bar95{width:95%}.bar96{width:96%}.bar97{width:97%}.bar98{width:98%}.bar99{width:99%}.bar100{width:100%}.osm-map-box{height:300px;width:100%;margin:10px 0}#main_index{margin-top:26vh}.index{text-align:center}.index .title{background:url(../img/searxng.png) no-repeat;min-height:4rem;margin:4rem auto;background-position:center;background-size:contain}.index h1{font-size:4em;visibility:hidden}.index #search,.index #search_header{margin:0 auto;background:inherit;border:inherit;padding:0;display:block}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:79.75em){div.title h1{font-size:1em}#main_index{margin-top:6em}}table{border-collapse:collapse}table td,table th{text-align:center;padding:1rem .5rem;text-align:left}table tr.pref-group th{font-weight:400;text-align:left;background:var(--color-settings-table-group-background)}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0 0;display:block;float:left;width:300px}#main_preferences input[type=text]{width:13.25rem;color:var(--color-toolkit-input-text-font);border:none;background:none repeat scroll 0 0 var(--color-toolkit-select-background);padding:.2rem .4rem;height:2rem;border-radius:5px}#main_preferences input[type=text]:focus,#main_preferences input[type=text]:hover{background-color:var(--color-toolkit-select-background-hover)}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .value input[type=text],#main_preferences .value select{font-size:inherit!important;margin-top:0;margin-right:1rem;margin-bottom:0;margin-left:0}#main_preferences .value select{width:14rem}#main_preferences .value input:focus,#main_preferences .value select:focus{outline:0;box-shadow:0 0 1px 1px var(--color-btn-background)}#main_preferences .description{margin:0;padding:5px 0 0 0;float:right;width:50%;color:var(--color-settings-engine-description-font);font-size:90%}#main_preferences .bang{text-align:left;border-radius:5px;background-color:var(--color-doc-code-background);color:var(--color-doc-code);padding:.2rem;border:0 none}#main_preferences .category{margin-right:.5rem}#main_preferences .category label{border:2px solid transparent;padding:.2rem .4rem;border-radius:5px}#main_preferences .category input[type=checkbox]:checked+label{border:2px solid var(--color-categories-item-border-selected)}#main_preferences table.table_engines th.name label{cursor:pointer}#main_preferences table.table_engines th.name .engine-tooltip{margin-top:1.8rem;left:calc((100% - 85em)/ 2 + 10em);max-width:40rem}#main_preferences table.table_engines th.name .engine-tooltip .engine-description{margin-top:.5rem}#main_preferences table.table_engines th.name .engine-tooltip .bang{margin:.3rem}#main_preferences table.table_engines .checkbox-col,#main_preferences table.table_engines .name,#main_preferences table.table_engines .shortcut{text-align:left}#main_preferences table.cookies{width:100%;direction:ltr}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;font-family:monospace;font-size:1rem;padding:.5em;vertical-align:top}#main_preferences table.cookies td:first-child{word-break:keep-all;width:14rem;padding-right:1rem}#main_preferences table.cookies td:last-child{word-break:break-all}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:var(--color-settings-tr-hover)}#main_preferences .preferences_back{background:none repeat scroll 0 0 var(--color-btn-background);color:var(--color-btn-font);border:0 none;border-radius:10px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.7em}#main_preferences .preferences_back a{color:var(--color-settings-return-font)}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#main_preferences #toggle-all-engines-container{width:max-content;margin-left:auto}#main_preferences div.selectable_url pre{width:100%}#main_preferences #copy-hash-container{display:flex;align-items:center;gap:.5rem}#main_preferences #copy-hash-container div.selectable_url pre{width:auto;flex-grow:1}#main_preferences #pref-hash-input{width:100%}@media screen and (max-width:79.75em){.preferences_back{clear:both}.engine-tooltip{left:10em!important}}#search{padding:0;margin:0}#search_header{padding-top:1.5em;padding-right:2em;padding-left:7rem;margin:0;background:var(--color-header-background);border-bottom:1px solid var(--color-header-border);display:grid;column-gap:1.2rem;row-gap:1rem;grid-template-columns:3rem 1fr;grid-template-areas:"logo search" "spacer categories"}.category_button,.category_checkbox{display:inline-block;position:relative;margin-right:1rem;padding:0}.category_checkbox input{display:none}.category_checkbox label{cursor:pointer;padding:.2rem 0;display:inline-flex;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;user-select:none}.category_checkbox label svg{padding-right:.2rem}.category_checkbox label div.category_name{margin:auto 0}.category_checkbox input[type=checkbox]:checked+label{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}button.category_button{background-color:inherit;color:var(--color-base-font);cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;text-transform:capitalize;font-size:.9em;border:none;border-bottom:2px solid transparent}button.category_button svg{padding-right:.2rem}button.category_button.selected,button.category_button:active,button.category_button:focus-within{color:var(--color-categories-item-selected-font);border-bottom:2px solid var(--color-categories-item-border-selected)}#categories_container:has(button.category_button:focus-within) button.category_button.selected{color:var(--color-base-font);border-bottom:none}#search_logo{padding:.5rem 10px 0 10px;grid-area:logo;display:flex;align-items:center;justify-content:center}#search_logo svg{flex:1;width:30px;height:30px;margin:.5rem 0 auto 0}.search_categories{grid-area:categories}.search_categories .help{display:none}.search_categories:hover .help{display:block;position:absolute;background:var(--color-base-background);padding:1rem .6rem .6rem 0;z-index:1000;width:100%;left:-.1rem}#search_view{padding:.5rem .3rem 0 .5rem;grid-area:search}body.results_endpoint #search_view{padding:.5rem 2.8rem 0 0}.search_box{border-radius:.8rem;width:44rem;display:inline-flex;flex-direction:row;white-space:nowrap;box-shadow:var(--color-search-shadow)}#clear_search{display:block;border-collapse:separate;box-sizing:border-box;width:1.8rem;margin:0;padding:.8rem .2rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:10000}#clear_search:hover{color:var(--color-search-background-hover)}#clear_search.empty *{display:none}html.no-js #clear_search.hide_if_nojs{display:none}#q,#send_search{display:block;margin:0;padding:.8rem;background:none repeat scroll 0 0 var(--color-search-background);border:none;outline:0;color:var(--color-search-font);font-size:1.1rem;z-index:2}#q{width:100%;padding-left:1rem;padding-right:0!important;border-radius:.8rem 0 0 .8rem}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#send_search{border-radius:0 .8rem .8rem 0}#send_search:hover{cursor:pointer;background-color:var(--color-search-background-hover);color:var(--color-search-background)}.no-js #clear_search,.no-js #send_search{width:auto!important;border-left:1px solid var(--color-search-border)}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:10.6rem;display:flex;overflow-x:auto;overscroll-behavior-inline:contain}.search_filters select{background-color:inherit}.search_filters select:focus,.search_filters select:hover{color:var(--color-base-font)}@media screen and (max-width:79.75em){#search_header{padding:1.5em .5rem 0 .5rem;column-gap:.5rem}.search_filters{margin-top:.6rem;margin-right:0;margin-bottom:0;margin-left:3.5rem}#categories{font-size:90%;clear:both}}@media screen and (max-width:79.75em) and (hover:none){#main_index #categories_container,#main_results #categories_container{width:max-content}#main_index #categories_container .category_checkbox,#main_results #categories_container .category_checkbox{display:inline-block;width:auto}#main_index #categories,#main_results #categories{width:100%;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search_header{width:100%;margin:0;padding:.1rem 0 0 0;column-gap:0;row-gap:0;grid-template-areas:"logo search" "categories categories"}.search_logo{padding:0}.search_box{width:98%;display:flex}#q{width:100%;flex:1}.search_filters{margin:0 10px;padding:.5rem 0}.category{display:inline-block;width:auto;margin:0}.category svg{display:none}.category_checkbox label{padding:1rem!important;margin:0!important}.category_button{padding:1rem!important;margin:0!important}#search_view:focus-within{display:block;background-color:var(--color-search-background);position:absolute;top:0;height:100%;width:100%;z-index:10000}#search_view:focus-within .search_box{border-bottom:1px solid var(--color-search-border);width:100%;border-radius:0;box-shadow:none}#search_view:focus-within .search_box #send_search{margin-right:0!important}#search_view:focus-within .search_box *{border:none;border-radius:0;box-shadow:none}#main_results #q:placeholder-shown~#send_search{margin-right:2.6rem;transition:margin .1s}}@media screen and (max-width:20rem){#search_header{grid-template-areas:"search search" "categories categories"}#search_logo{display:none}}#categories{-webkit-touch-callout:none;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}#categories_container{position:relative}@media screen and (min-width:50em){.center-aligment-yes #main_results{--center-page-width:48rem}}@media screen and (min-width:62rem){.center-aligment-yes #main_results{--center-page-width:60rem}}@media screen and (min-width:79.75em){.center-aligment-yes #main_results{--center-page-width:73rem}}@media screen and (min-width:50em) and (max-width:79.75em){.center-aligment-yes #main_results #results{grid-template-columns:60% calc(40% - 5rem);margin-left:0;margin-right:0}.center-aligment-yes #main_results #urls{margin-left:3rem}.center-aligment-yes #main_results #sidebar{margin-right:1rem}.center-aligment-yes #main_results #backToTop{left:calc(60% + 1rem)}}@media screen and (min-width:79.75em){.center-aligment-yes #main_results{display:flex;flex-direction:column;align-items:center}.center-aligment-yes #main_results #search{width:100%;display:flex;flex-direction:column;align-items:center}.center-aligment-yes #main_results #search_header{grid-template-columns:calc(50% - 4.5rem - var(--center-page-width)/ 2) 3rem var(--center-page-width);grid-template-areas:"na logo search" "na spacer categories";column-gap:1.2rem;width:100%;padding-left:0;padding-right:0}.center-aligment-yes #main_results .search_filters{margin-left:.5rem;width:var(--center-page-width)}.center-aligment-yes #main_results #results{margin-right:2rem;margin-left:10rem}.center-aligment-yes #main_results #results.image-detail-open,.center-aligment-yes #main_results #results.only_template_images{align-self:flex-start}.center-aligment-yes #main_results #results:not(.only_template_images):not(.image-detail-open){margin-left:1.5rem;grid-template-columns:calc(var(--center-page-width) - 5rem - 25rem) 25rem}.center-aligment-yes #main_results #results:not(.only_template_images):not(.image-detail-open) #backToTop{left:calc(50% - 25rem - 5rem + 1rem + var(--center-page-width)/ 2)}.center-aligment-yes #main_results #results .result .content{max-width:inherit}.center-aligment-yes #main_results #urls{margin-left:0}.center-aligment-yes #main_results #sidebar{margin-right:0}}.ion-icon{display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-small{width:1rem;height:1rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}.ion-icon-big{width:1.5rem;height:1.5rem;display:inline-block;vertical-align:bottom;line-height:1;text-decoration:inherit;transform:scale(1,1)}html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--color-base-font);background-color:var(--color-base-background);padding:0;margin:0;scroll-behavior:smooth}body,main{padding:0;margin:0}body{display:flex;flex-direction:column;height:100vh;margin:0}main{width:100%;margin-bottom:2rem;flex:1}.page_with_header{margin:2em auto;width:85em}footer{clear:both;min-height:4rem;padding:1rem 0;width:100%;text-align:center;background-color:var(--color-footer-background);border-top:1px solid var(--color-footer-border);overflow:hidden}footer p{font-size:.9em}.page_with_header .logo{height:40px}#results button[type=submit],.button,input[type=submit]{padding:.7rem;display:inline-block;background:var(--color-btn-background);color:var(--color-btn-font);border-radius:10px;border:0;cursor:pointer}a{text-decoration:none;color:var(--color-url-font)}a:visited{color:var(--color-url-visited-font)}a:visited .highlight{color:var(--color-url-visited-font)}article[data-vim-selected]{background:var(--color-result-vim-selected);border-left:.2rem solid var(--color-result-vim-arrow);border-radius:0 10px 10px 0}article.result-images[data-vim-selected]{background:var(--color-result-vim-arrow);border:none;border-radius:10px}article.result-images[data-vim-selected] .image_thumbnail{filter:opacity(60%)}article.result-images[data-vim-selected] span.source,article.result-images[data-vim-selected] span.title{color:var(--color-result-image-span-font-selected)}article[data-vim-selected].category-files,article[data-vim-selected].category-map,article[data-vim-selected].category-music,article[data-vim-selected].category-news,article[data-vim-selected].category-social,article[data-vim-selected].category-videos{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{margin:.125rem 0;padding:1rem;border-left:.2rem solid transparent}.result h3{font-size:1.2rem;word-wrap:break-word;margin:.4rem 0 .4rem 0;padding:0}.result h3 a{color:var(--color-result-link-font);font-weight:400;font-size:1.1em}.result h3 a:visited{color:var(--color-result-link-visited-font)}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:smaller!important;margin-left:.5rem}.result .content,.result .stat{font-size:.9em;margin:0;padding:0;max-width:54em;word-wrap:break-word;line-height:1.24}.result .content .highlight,.result .stat .highlight{color:var(--color-result-description-highlight-font);background:inherit;font-weight:700}.result .altlink a{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}.result .altlink a:hover{background:var(--color-btn-background);color:var(--color-btn-font)}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url_wrapper{display:flex;font-size:1rem;color:var(--color-result-url-font);flex-wrap:nowrap;overflow:hidden;flex-direction:row;margin:0;padding:0}.result .url_wrapper .url_o1{white-space:nowrap;flex-shrink:1}.result .url_wrapper .url_o1::after{content:" ";width:1ch;display:inline-block}.result .url_wrapper .url_o2{overflow:hidden;white-space:nowrap;flex-basis:content;flex-grow:0;flex-shrink:1;text-align:right}.result .url_wrapper .url_o2 .url_i2{float:right}.result .published_date,.result .result_author,.result .result_length,.result .result_shipping,.result .result_source_country{font-size:.8em;color:var(--color-result-publishdate-font)}.result .result_price{font-size:1.2em;color:var(--color-result-description-highlight-font)}.result img.thumbnail{float:left;padding-top:.6rem;padding-right:1rem;width:20rem;height:unset}.result img.image{float:left;padding-top:.6rem;padding-right:1rem;width:7rem;max-height:7rem;object-fit:scale-down;object-position:right top}.result .break{clear:both}.result-packages .attributes,.result-paper .attributes{display:table;border-spacing:.125rem}.result-packages .attributes div,.result-paper .attributes div{display:table-row}.result-packages .attributes div span,.result-paper .attributes div span{font-size:.9rem;margin-top:.25rem;display:table-cell}.result-packages .attributes div span time,.result-paper .attributes div span time{font-size:.9rem}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{color:var(--color-base-font);min-width:10rem}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){color:var(--color-result-publishdate-font)}.result-packages .content,.result-paper .content{margin-top:.25rem}.result-packages .comments,.result-paper .comments{font-size:.9rem;margin:.25rem 0 0 0;padding:0;word-wrap:break-word;line-height:1.24;font-style:italic}.result-packages .attributes{margin-top:.3rem}.template_group_images{display:flex;flex-wrap:wrap}.template_group_images::after{flex-grow:10;content:""}.category-files,.category-map,.category-music,.category-news,.category-social,.category-videos{border:1px solid var(--color-result-border);margin:0 .5rem 1rem .5rem!important;border-radius:10px}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.audio-control audio{width:100%;padding:10px 0 0 0}.embedded-content iframe{width:100%;padding:10px 0 0 0}.result-videos .content{overflow:hidden}.result-videos .embedded-video iframe{width:100%;aspect-ratio:16/9;padding:10px 0 0 0}@supports not (aspect-ratio:1 / 1){.result-videos .embedded-video iframe{height:calc(45rem * 9 / 16)}}.engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;color:var(--color-result-engines-font)}.engines span{font-size:smaller;margin-top:0;margin-bottom:0;margin-right:.5rem;margin-left:0}.small_font{font-size:.8em}.highlight{color:var(--color-result-link-font-highlight);background:inherit}.empty_element{font-style:italic}.result-images{flex-grow:1;padding:.5rem .5rem 3rem .5rem;margin:.25rem;border:none!important;height:12rem}.result-images>a{position:relative;outline:0}.result-images img{margin:0;padding:0;border:none;height:100%;width:100%;object-fit:cover;vertical-align:bottom;background:var(--color-result-image-background)}.result-images .image_resolution{position:absolute;right:0;bottom:0;background:rgba(0,0,0,.5);padding:.3rem .5rem;font-size:.9rem;color:#fff;border-top-left-radius:.3rem}.result-images span.source,.result-images span.title{display:block;position:absolute;width:100%;font-size:.9rem;color:var(--color-result-image-span-font);padding:.5rem 0 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-images span.source{padding:1.8rem 0 0 0;font-size:.7rem}.result-map img.image{float:right!important;height:100px!important;width:auto!important}.result-map table{font-size:.9em;width:auto;border-collapse:separate;border-spacing:0 .35rem}.result-map table th{font-weight:inherit;width:17rem;vertical-align:top;text-align:left}.result-map table td{vertical-align:top;text-align:left}.hidden{display:none!important}#results{margin-top:1rem;margin-right:2rem;margin-bottom:0;margin-left:10rem;display:grid;grid-template-columns:45rem 25rem;grid-template-rows:min-content min-content 1fr min-content;gap:0 5rem;grid-template-areas:"corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"}#results #sidebar :first-child{margin-top:0}#urls{padding:0;grid-area:urls}#apis .wrapper{display:flex}#suggestions .wrapper{display:flex;flex-flow:column;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:var(--color-result-search-url-font);cursor:pointer;width:calc(100%);text-overflow:ellipsis;overflow:hidden;text-align:left}#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:var(--color-result-link-font);text-decoration:none;font-size:.9rem}#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{grid-area:corrections;display:flex;flex-flow:row wrap;margin:0 0 1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;padding:.5rem;margin:.5rem}#corrections input[type=submit]{font-size:.8rem;border-radius:5px}#apis .title,#engines_msg .title,#infoboxes .title,#search_url .title,#suggestions .title{margin:2em 0 .5em 0;color:var(--color-base-font)}summary.title{cursor:pointer;padding-top:1em}.sidebar-collapsable{border-top:1px solid var(--color-sidebar-border);padding-bottom:.5em}#sidebar-end-collapsable{border-bottom:1px solid var(--color-sidebar-border);width:100%}#answers{grid-area:answers;background:var(--color-answer-background);padding:1rem;margin:1rem 0;margin-top:0;color:var(--color-answer-font);border-radius:10px}#answers h4{display:none}#answers span{overflow-wrap:anywhere}#answers .answer{display:flex;flex-direction:column}#answers .answer-url{margin-left:auto;margin-top:5px;margin-right:10px;margin-bottom:10px}#infoboxes form{min-width:210px}#sidebar{grid-area:sidebar;word-wrap:break-word;color:var(--color-sidebar-font)}#sidebar .infobox{margin:10px 0 10px;border:1px solid var(--color-sidebar-border);padding:1rem;font-size:.9em;border-radius:10px}#sidebar .infobox h2{margin:0 0 .5em 0}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0 auto;padding:0}#sidebar .infobox dt{font-weight:700}#sidebar .infobox .attributes dl{margin:.5em 0}#sidebar .infobox .attributes dt{display:inline;margin-top:.5em;margin-right:.25em;margin-bottom:.5em;margin-left:0;padding:0}#sidebar .infobox .attributes dd{display:inline;margin:.5em 0;padding:0}#sidebar .infobox input{font-size:1em}#sidebar .infobox br{clear:both}#sidebar .infobox .attributes,#sidebar .infobox .urls{clear:both}#apis input{font-size:.9em;margin:0 10px 0 0;padding:5px 10px;border-radius:5px;background:var(--color-show-btn-background);color:var(--color-show-btn-font);cursor:pointer}#apis input:hover{background:var(--color-btn-background);color:var(--color-btn-font)}#search_url div.selectable_url pre{float:left;width:200em}#search_url button#copy_url{float:right;padding:.4rem;margin-left:.5rem;border-radius:.3rem;display:none}#links_on_top{position:absolute;right:1rem;text-align:right;top:2.7rem;padding:0;border:0;display:flex;align-items:center;font-size:1em;color:var(--color-search-font)}#links_on_top a{display:flex;align-items:center;margin-left:1em}#links_on_top a svg{font-size:1.2em;margin-right:.125em}#links_on_top a,#links_on_top a:active *,#links_on_top a:hover *,#links_on_top a:link *,#links_on_top a:visited *{color:var(--color-search-font)}#pagination{grid-area:pagination}#pagination br{clear:both}.numbered_pagination{display:flex;flex-direction:row;justify-content:center;align-items:center;overflow:hidden}.page_number{background:0 0!important;color:var(--color-result-link-font)!important;text-decoration:underline}.page_number_current{background:0 0;color:var(--color-result-link-visited-font);border:none}#backToTop{border:1px solid var(--color-backtotop-border);margin:0;padding:0;font-size:1em;background:var(--color-backtotop-background);position:fixed;bottom:8rem;left:56.3rem;transition:opacity .5s;opacity:0;pointer-events:none;border-radius:10px}#backToTop a{display:block;margin:0;padding:.7em}#backToTop a,#backToTop a:active,#backToTop a:hover,#backToTop a:visited{color:var(--color-backtotop-font)}#results.scrolling #backToTop{opacity:1;pointer-events:all}@media screen and (max-width:calc(79.75em - 0.5px)){#links_on_top span{display:none}}@media screen and (max-width:52rem){body.results_endpoint #links_on_top .link_on_top_about,body.results_endpoint #links_on_top .link_on_top_donate{display:none}}@media screen and (min-width:50em) and (max-width:79.75em){.center-aligment-no #links_on_top span{display:none}.center-aligment-no .page_with_header{margin:2rem .5rem;width:auto}.center-aligment-no #infoboxes{position:inherit;max-width:inherit}.center-aligment-no #infoboxes .infobox{clear:both}.center-aligment-no #infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}.center-aligment-no #sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}.center-aligment-no #sidebar input{border:0}.center-aligment-no .result .thumbnail{max-width:98%}.center-aligment-no .result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.center-aligment-no .result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.center-aligment-no .result-images{border-bottom:none!important}.center-aligment-no .image_result{max-width:98%}.center-aligment-no .image_result img{max-width:98%}.center-aligment-no #backToTop{display:none}.center-aligment-no #pagination{margin:2rem 0 0 0!important}.center-aligment-no #main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}}#main_results div#results.only_template_images{margin:1rem .5rem 0 .5rem;display:grid;grid-template-columns:100%;grid-template-rows:min-content min-content min-content 1fr min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}#main_results div#results.only_template_images #sidebar{display:none}#main_results div#results.only_template_images #urls{margin:0;display:flex;flex-wrap:wrap}#main_results div#results.only_template_images #urls::after{flex-grow:10;content:""}#main_results div#results.only_template_images #backToTop{left:auto;right:1rem}#main_results div#results.only_template_images #pagination{margin-right:4rem}@media screen and (max-width:50em){#links_on_top span{display:none}.page_with_header{margin:2rem .5rem;width:auto}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin-top:.5em;margin-right:.5em;margin-bottom:.5em;margin-left:0}#sidebar{margin:0 .5rem .125rem .5rem;padding:0;float:none;border:none;width:auto}#sidebar input{border:0}.result .thumbnail{max-width:98%}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .engines{float:right;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:3px 0 0 0}.result-images{border-bottom:none!important}.image_result{max-width:98%}.image_result img{max-width:98%}#backToTop{display:none}#pagination{margin:2rem 0 0 0!important}#main_results div#results{margin:0 auto;justify-content:center;display:grid;grid-template-columns:45rem;grid-template-rows:min-content min-content min-content 1fr min-content min-content;gap:0;grid-template-areas:"corrections" "answers" "sidebar" "urls" "pagination"}html{background-color:var(--color-base-background-mobile)}#main_results div#results{grid-template-columns:100%;margin:0 auto}#links_on_top{top:1.4rem;right:10px}#main_index #links_on_top{top:.5rem;right:.5rem}#results{margin:0;padding:0}#pagination{margin:2rem 1rem 0 1rem!important}article[data-vim-selected]{border:1px solid var(--color-result-vim-arrow);border-radius:10px}.result{background:var(--color-result-background);border:1px solid var(--color-result-background);margin:1rem 10px;border-radius:10px}.result-images{margin:0;height:6rem;background:var(--color-base-background-mobile)}.infobox{border:none!important;background-color:var(--color-sidebar-background)}.numbered_pagination{display:none}.result-packages .attributes,.result-paper .attributes{display:block}.result-packages .attributes div,.result-paper .attributes div{display:block}.result-packages .attributes div span,.result-paper .attributes div span{display:inline}.result-packages .attributes div span:first-child,.result-paper .attributes div span:first-child{font-weight:700}.result-packages .attributes div span:nth-child(2),.result-paper .attributes div span:nth-child(2){margin-left:.5rem}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}pre code{white-space:pre-wrap}/*# sourceMappingURL=searxng.min.css.map */ \ No newline at end of file diff --git a/searx/static/themes/marlo/css/searxng.min.css.map b/searx/static/themes/marlo/css/searxng.min.css.map new file mode 100644 index 000000000..d567c732b --- /dev/null +++ b/searx/static/themes/marlo/css/searxng.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["node_modules/normalize.css/normalize.css","src/less/definitions.less","src/generated/pygments.less","src/less/code.less","src/less/toolkit.less","src/less/mixins.less","src/less/style-ltr.less","src/less/autocomplete.less","src/less/detail.less","src/less/animations.less","src/less/embedded.less","src/less/info.less","src/less/new_issue.less","src/less/stats.less","src/less/result_templates.less","src/less/index.less","src/less/preferences.less","src/less/search.less","src/less/style-center.less","src/less/style.less"],"names":[],"mappings":"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,mCACH,eAAA,EACA,gBAAA,SAEA,sCACA,sCACE,OAAA,KAIJ,2BACE,MAAA,MAGF,4BACE,MAAA,KACA,WAAA,MAGF,kCACE,WAAA,MAMJ,YADqB,wCADA,wCAGnB,MAAA,MAGF,eACE,WAAA,KAEK,kCACH,UAAA,OACA,OAAA,KAAA,EAAA,KAAA,EACA,OAAA,IAAA,MAAkB,2BPqBpB,WAAA,KOjBK,wCADA,wCAED,QAAA,MAGI,sDACJ,aAAA,IAAA,MAAA,MAA8B,2BAC9B,QAAA,EAAA,KAAA,EAAA,EACA,OAAA,EAAA,EAAA,EAAA,MAKN,iBACE,MAAA,IACA,QAAA,aACA,WAAA,MACA,cAAA,MAGF,iBACE,MAAO,kBACP,QAAA,aAGF,eACE,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EAGF,kBACE,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGF,kBACE,OAAA,IAAA,MAAA,QACA,OAAA,IAAA,EACA,MAAA,KAGF,MACE,MAAA,EACA,OAAA,EAMC,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,MACC,MAAA,GADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,OACC,MAAA,IADD,QACC,MAAA,KCpGJ,aACE,OAAA,MACA,MAAA,KACA,OAAA,KAAA,ECLF,YACE,WAAA,KAGF,OACE,WAAA,OAEA,cACE,WAAgB,wBAAA,UAChB,WAAA,KACA,OAAA,KAAA,KACA,oBAAA,OACA,gBAAA,QAGF,UACE,UAAA,IACA,WAAA,OAGF,eACA,sBACE,OAAA,EAAA,KACA,WAAA,QACA,OAAA,QACA,QAAA,EACA,QAAA,MAGF,uBACE,QAAA,MACA,OAAA,IAAA,EAGQ,uBACR,QAAA,IAAA,KACA,cAAA,kBAImC,sCAEnC,aACE,UAAA,IAIJ,YACE,WAAA,KChDJ,MACE,gBAAA,SAGA,SADA,SAEE,WAAA,OACA,QAAA,KAAA,MV+DF,WAAA,KU3Dc,uBACZ,YAAA,IV0DF,WAAA,KUxDE,WAAY,6CAKd,uBACE,MAAA,KAGF,2BACE,OAAA,IACA,OAAA,KAGF,yBACE,OAAA,EACA,QAAA,IAAA,EAAA,EAAA,EACA,QAAA,MVGF,MAAA,KUDE,MAAA,MAGG,mCACH,MAAA,SACA,MAAO,qCACP,OAAA,KACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,uCACnC,QAAA,MAAA,MACA,OAAA,KXtBF,cAAA,IW0BG,yCADA,yCAEC,iBAAkB,6CAItB,yBACE,OAAA,EACA,QAAA,EVnBF,MAAA,KUqBE,MAAA,KAGK,0CADL,gCAEE,UAAA,kBACA,WAAA,EVlDJ,aAAA,KUoDI,cAAA,EVhDJ,YAAA,EUoDE,gCACE,MAAA,MAIG,qCADC,sCAEJ,QAAA,EACA,WAAA,EAAA,EAAA,IAAA,IAAwB,4BAI5B,+BACE,OAAA,EACA,QAAA,IAAA,EAAA,EAAA,EVzCF,MAAA,MU2CE,MAAA,IACA,MAAO,8CACP,UAAA,IAGF,wBVhBA,WAAA,KDlDA,cAAA,IWqEE,iBAAkB,iCAClB,MAAO,sBACP,QAAA,MACA,OAAA,EAAA,KAGF,4BVrFA,aAAA,MUwFE,kCACE,OAAA,IAAA,MAAA,YACA,QAAA,MAAA,MXhFJ,cAAA,IWqFyC,+DACvC,OAAA,IAAA,MAAkB,6CAMhB,oDACE,OAAA,QAIF,8DACE,WAAA,OVpHN,KUqHgB,8BACV,UAAA,MAEA,kFACE,WAAA,MAGF,oEACE,OAAA,MAKN,oDACA,4CACA,gDVhEF,WAAA,KUqEK,gCACH,MAAA,KACA,UAAA,IAGA,mCADA,mCAEE,WAAA,KACA,YAAA,UACA,UAAA,KACA,QAAA,KACA,eAAA,IAGA,+CACA,WAAA,SACA,MAAA,MACA,cAAA,KAGA,8CACA,WAAA,UAI6B,4DADA,4DAE7B,iBAAkB,+BAItB,oCACE,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,4BACnC,MAAO,sBACP,OAAA,EAAA,KX/JF,cAAA,KWkKE,OAAA,QACA,QAAA,aACA,OAAA,IAAA,IACA,QAAA,KAEA,sCACE,MAAO,kCAGR,oDACC,eAAA,UAIJ,gDACE,MAAA,YACA,YAAA,KAIA,yCACE,MAAA,KAIJ,uCACE,QAAA,KACA,YAAA,OACA,IAAA,MAGE,8DACE,MAAA,KACA,UAAA,EAKN,mCACE,MAAA,KAImC,sCACrC,kBACE,MAAA,KAGF,gBV5NA,KAAA,gBWGF,QACE,QAAA,EACA,OAAA,EAGF,eACE,YAAA,MXeA,cAAA,IAIA,aAAA,KWhBA,OAAA,EACA,WAAY,+BACZ,cAAA,IAAA,MAAyB,2BACzB,QAAA,KACA,WAAA,OACA,QAAA,KACA,sBAAA,KAAA,IACA,oBAAA,cAAA,oBAMF,iBADA,mBAEE,QAAA,aACA,SAAA,SXnBA,aAAA,KWqBA,QAAA,EAIA,yBACE,QAAA,KAGF,yBAKE,OAAA,QACA,QAAA,MAAA,EACA,QAAA,YACA,eAAA,WACA,UAAA,KACA,cAAA,IAAA,MAAA,YZxBF,sBAAA,KACA,YAAA,KYcE,6BACE,cAAA,MAWC,2CACD,OAAA,KAAA,EAI2B,sDAC7B,MAAO,2CACP,cAAA,IAAA,MAAyB,6CAIvB,uBACJ,iBAAA,QACA,MAAO,uBACP,OAAA,QACA,QAAA,MAAA,EACA,QAAA,YACA,YAAA,OACA,eAAA,WACA,UAAA,KACA,OAAA,KACA,cAAA,IAAA,MAAA,YAEA,2BACE,cAAA,MAGD,gCACA,8BACA,oCACC,MAAO,2CACP,cAAA,IAAA,MAAyB,6CAIwD,+FACnF,MAAO,uBACP,cAAA,KAGF,aACE,QAAA,MAAA,KAAA,EAAA,KACA,UAAA,KACA,QAAA,KACA,YAAA,OACA,gBAAA,OAEA,iBACE,KAAA,EACA,MAAA,KACA,OAAA,KACA,OAAA,MAAA,EAAA,KAAA,EAIJ,mBACE,UAAA,WAEA,yBACE,QAAA,KAGM,+BACN,QAAA,MACA,SAAA,SACA,WAAY,6BACZ,QAAA,KAAA,MAAA,MAAA,EACA,QAAA,KACA,MAAA,KACA,KAAA,OAIJ,aACE,QAAA,MAAA,MAAA,EAAA,MACA,UAAA,OAEsB,mCACpB,QAAA,MAAA,OAAA,EAAA,EAIJ,YACE,cAAA,MACA,MAAA,MACA,QAAA,YACA,eAAA,IACA,YAAA,OACA,WAAY,2BAGd,cACE,QAAA,MACA,gBAAA,SACA,WAAA,WACA,MAAA,OACA,OAAA,EACA,QAAA,MAAA,MACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,+BACnC,OAAA,KACA,QAAA,EACA,MAAO,yBACP,UAAA,OACA,QAAA,MAEC,oBACC,MAAO,qCAGD,sBACN,QAAA,KAIoB,sCACtB,QAAA,KAGF,GACA,aACE,QAAA,MACA,OAAA,EACA,QAAA,MACA,WAAA,KAAA,OAAA,OAAA,EAAA,EAAmC,+BACnC,OAAA,KACA,QAAA,EACA,MAAO,yBACP,UAAA,OACA,QAAA,EAGF,GACE,MAAA,KX1JA,aAAA,KAJA,cAAA,YAoBA,cAAA,MAAA,EAAA,EAAA,MWgJA,cACA,iCACA,QAAA,KAGF,aXzIE,cAAA,EAAA,MAAA,MAAA,EW4IC,mBACC,OAAA,QACA,iBAAkB,qCAClB,MAAO,+BAIJ,qBACA,oBACL,MAAA,eXzLA,YAAA,IAAA,MW0L2B,2BAG7B,gBACE,WAAA,MX1MA,aAAA,EW4MA,cAAA,EXxMA,YAAA,QW0MA,QAAA,KACA,WAAA,KACA,2BAAA,QAEA,uBACE,iBAAA,QAGC,6BADA,6BAEC,MAAO,uBAK0B,sCACrC,eACE,QAAA,MAAA,MAAA,EAAA,MACA,WAAA,MAGF,gBACE,WAAA,MXnOF,aAAA,EWqOE,cAAA,EXjOF,YAAA,OWqOA,YACE,UAAA,IACA,MAAA,MAIqD,uDAGrD,kCAAA,oCACE,MAAA,YAEA,qDAAA,uDACE,QAAA,aACA,MAAA,KAIJ,wBAAA,0BACE,MAAA,KXhMJ,WAAA,KWkMI,WAAA,OACA,WAAA,OACA,2BAAA,OAKgC,mCACpC,eACE,MAAA,KACA,OAAA,EACA,QAAA,MAAA,EAAA,EAAA,EACA,WAAA,EACA,QAAA,EACA,oBAAA,cAAA,wBAKF,aACE,QAAA,EAGF,YACE,MAAA,IACA,QAAA,KAGF,GACE,MAAA,KACA,KAAA,EAGF,gBACE,OAAA,EAAA,KACA,QAAA,MAAA,EAGF,UACE,QAAA,aACA,MAAA,KACA,OAAA,EAEA,cACE,QAAA,KAKF,yBACE,QAAA,eACA,OAAA,YAIJ,iBACE,QAAA,eACA,OAAA,YAGU,0BACV,QAAA,MACA,iBAAkB,+BAClB,SAAA,SACA,IAAA,EACA,OAAA,KACA,MAAA,KACA,QAAA,MAEA,sCACE,cAAA,IAAA,MAAyB,2BACzB,MAAA,KACA,cAAA,EACA,WAAA,KAEA,mDXzUJ,aAAA,YW6UI,wCACE,OAAA,KACA,cAAA,EACA,WAAA,KAK6B,gDXrVnC,aAAA,OWuVE,WAAA,OAAA,KAI8C,oCAChD,eACE,oBAAA,gBAAA,wBAKF,aACE,QAAA,MAIJ,YZxVE,sBAAA,KACA,YAAA,KY0VC,+BACC,MAAA,EACA,OAAA,EAIJ,sBACE,SAAA,SChXoC,mCACf,mCACnB,oBAAA,OAIiC,oCACd,mCACnB,oBAAA,OAImC,sCAChB,mCACnB,oBAAA,OAI2D,2DAG3D,4CACE,sBAAA,IAA2B,iBAC3B,YAAA,EACA,aAAA,EAGF,yCZxBF,YAAA,KY4BE,4CZhCF,aAAA,KYoCE,8CZ5CF,KY6Cc,kBAKuB,sCAChB,mCACnB,QAAA,KACA,eAAA,OACA,YAAA,OAEA,2CACE,MAAA,KACA,QAAA,KACA,eAAA,OACA,YAAA,OAGF,kDACE,sBAA2C,iDAAA,KAAmC,yBAC9E,oBAAA,iBAAA,uBACA,WAAA,OACA,MAAA,KACA,aAAA,EACA,cAAA,EAGF,mDZ5DF,YAAA,MY8DI,MAAO,yBAGT,4CZrEF,aAAA,KAIA,YAAA,MYwEK,8DADA,iEAMC,WAAA,WAG8B,+FZhFpC,YAAA,OYmFM,sBAA4B,8CAAA,MAE5B,0GZjGN,KYkG4E,8DAIhE,6DACN,UAAA,QAKJ,yCZhGF,YAAA,EYoGE,4CZxGF,aAAA,Ga0BF,UACE,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,Qb0CA,UAAW,WatCb,gBACE,MAAA,KACA,OAAA,KATA,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,Qb0CA,UAAW,WahCb,cACE,MAAA,OACA,OAAA,OAfA,QAAA,aACA,eAAA,OACA,YAAA,EACA,gBAAA,Qb0CA,UAAW,WazBb,KACE,YAAA,WACA,UAAA,KdtDA,yBAAA,KACA,qBAAA,KACA,sBAAA,KACA,iBAAA,KcsDA,MAAO,uBACP,iBAAkB,6BAClB,QAAA,EACA,OAAA,EAEA,gBAAA,OAGF,KACA,KACE,QAAA,EACA,OAAA,EAGF,KACE,QAAA,KACA,eAAA,OACA,OAAA,MACA,OAAA,EAGF,KACE,MAAA,KACA,cAAA,KACA,KAAA,EAGF,kBACE,OAAA,IAAA,KACA,MAAA,KAGF,OACE,MAAA,KACA,WAAA,KACA,QAAA,KAAA,EACA,MAAA,KACA,WAAA,OACA,iBAAkB,+BAClB,WAAA,IAAA,MAAsB,2BACtB,SAAA,OAEA,SACE,UAAA,KAIc,wBAChB,OAAA,KAIa,6BACf,QAFK,mBAGH,QAAA,MACA,QAAA,aACA,WAAY,4BACZ,MAAO,sBd3GP,cAAA,Kc8GA,OAAA,EACA,OAAA,QAGF,EACE,gBAAA,KACA,MAAO,sBAEN,UACC,MAAO,8BAEP,qBACE,MAAO,8BAKN,2BACL,WAAY,iCbtHZ,YAAA,MAAA,MauH8B,8BbnF9B,cAAA,EAAA,KAAA,KAAA,EauFmB,yCACnB,WAAY,8BACZ,OAAA,KdvIA,cAAA,Kc0IA,0DACE,OAAQ,aAIN,qDADA,oDAEF,MAAO,6CAQe,0CAFA,wCACA,0CAFA,yCAIA,2CALA,2CAMxB,OAAA,IAAA,MAAkB,8Bd1JlB,cAAA,Kc8JF,QACE,OAAA,QAAA,EACA,QAAA,KbtJA,YAAA,MAAA,MAAA,YayJA,WACE,UAAA,OACA,UAAA,WACA,OAAA,MAAA,EAAA,MAAA,EACA,QAAA,EAEA,aACE,MAAO,8BACP,YAAA,IACA,UAAA,MAEC,qBACC,MAAO,sCAGR,mBACA,mBACC,gBAAA,UACA,OAAA,KACA,QAAA,EAKN,oBACA,wBACE,UAAA,kBACA,YAAA,MAGF,iBACA,cACE,UAAA,KACA,OAAA,EACA,QAAA,EACA,UAAA,KACA,UAAA,WACA,YAAA,KAEA,4BAAA,yBACE,MAAO,+CACP,WAAA,QACA,YAAA,IAIK,mBACP,UAAA,KACA,OAAA,EAAA,KAAA,EAAA,EdjMF,QAAA,IAAA,KAVA,cAAA,IAYA,WAAY,iCACZ,MAAO,2BACP,OAAA,QAEC,yBACC,WAAY,4BACZ,MAAO,sBc8LP,8BACE,MAAA,QACA,WAAA,QACA,YAAA,IAIJ,qBACE,QAAA,KACA,UAAA,KACA,MAAO,6BACP,UAAA,OACA,SAAA,OACA,eAAA,IACA,OAAA,EACA,QAAA,EAEA,6BACE,YAAA,OACA,YAAA,EAGK,oCACL,QAAA,IACA,MAAA,IACA,QAAA,aAGF,6BACE,SAAA,OACA,YAAA,OACA,WAAA,QACA,UAAA,EACA,YAAA,EACA,WAAA,MAEA,qCACE,MAAA,MAKN,wBAEA,uBADA,uBAEA,yBACA,+BACE,UAAA,KACA,MAAO,qCAGT,sBACE,UAAA,MACA,MAAO,+CAIN,sBb3PH,MAAA,Ka6PI,YAAA,MbrQJ,cAAA,KauQI,MAAA,MACA,OAAA,MAGD,kBbnQH,MAAA,KaqQI,YAAA,Mb7QJ,cAAA,Ka+QI,MAAA,KACA,WAAA,KACA,WAAA,WACA,gBAAA,MAAA,IAIJ,eACE,MAAA,KAMF,6BAAA,0BACE,QAAA,MACA,eAAA,QAEA,iCAAA,8BACE,QAAA,UAEA,sCAAA,mCACE,UAAA,MACA,WAAA,OACA,QAAA,WAEA,2CAAA,wCACE,UAAA,MAIA,kDAAA,+CACF,MAAO,uBACP,UAAA,MAGY,mDAAA,gDACZ,MAAO,qCAKb,0BAAA,uBACE,WAAA,OAGF,2BAAA,wBACE,UAAA,MACA,OAAA,OAAA,EAAA,EAAA,EACA,QAAA,EACA,UAAA,WACA,YAAA,KACA,WAAA,OAKF,6BACE,WAAA,MAIJ,uBACE,QAAA,KACA,UAAA,KAGoB,8BACpB,UAAA,GACA,QAAA,GAOF,gBAFA,cACA,gBAFA,eAIA,iBALA,iBAME,OAAA,IAAA,MAAkB,2BAClB,OAAA,EAAA,MAAA,KAAA,gBd5WA,cAAA,KcgXe,wBACf,MAAA,eACA,UAAA,KACA,WAAA,KACA,QAAA,EAAA,IAAA,KAAA,YAGa,qBACb,MAAA,KACA,QAAA,KAAA,EAAA,EAAA,EAGgB,yBAChB,MAAA,KACA,QAAA,KAAA,EAAA,EAAA,EAGa,wBACb,SAAA,OAG6B,sCAC7B,MAAA,KACA,aAAA,EAAA,CAAA,EACA,QAAA,KAAA,EAAA,EAAA,EAGF,mCAGiC,sCAC7B,OAAQ,sBAIZ,SbzXE,MAAA,Ma2XA,QAAA,KACA,UAAA,KACA,gBAAA,SACA,MAAO,iCAEP,cACE,UAAA,QACA,WAAA,EACA,cAAA,Eb/ZF,aAAA,MAIA,YAAA,EaiaF,YACE,UAAA,KAGF,WACE,MAAO,wCACP,WAAA,QAGF,eACE,WAAA,OAGF,eACE,UAAA,EACA,QAAA,MAAA,MAAA,KAAA,MACA,OAAA,OACA,OAAA,eACA,OAAA,MAEE,iBACA,SAAA,SACA,QAAA,EAGF,mBACE,OAAA,EACA,QAAA,EACA,OAAA,KACA,OAAA,KACA,MAAA,KACA,WAAA,MACA,eAAA,OACA,WAAY,qCAGd,iCACE,SAAA,SACA,MAAA,EACA,OAAA,EACA,WAAA,eACA,QAAA,MAAA,MACA,UAAA,MACA,MAAA,KACA,uBAAA,MAIE,2BADA,0BAEF,QAAA,MACA,SAAA,SAEA,MAAA,KACA,UAAA,MACA,MAAO,oCACP,QAAA,MAAA,EAAA,EAAA,EACA,SAAA,OACA,cAAA,SACA,YAAA,OAGE,2BACF,QAAA,OAAA,EAAA,EAAA,EACA,UAAA,MAKC,sBb7cH,MAAA,gBa+cE,OAAA,gBACA,MAAA,eAGF,kBACE,UAAA,KACA,MAAA,KACA,gBAAA,SACA,eAAA,EAAA,OAEA,qBACE,YAAA,QACA,MAAA,MACA,eAAA,Ib5bJ,WAAA,KagcE,qBACE,eAAA,IbjcJ,WAAA,KaucF,QACE,QAAA,eAGF,SACE,WAAA,KbxgBA,aAAA,Ka0gBA,cAAA,EbtgBA,YAAA,MawgBA,QAAA,KACA,sBAAA,MAAA,MACA,mBAAA,YAAA,YAAA,IAAA,YACA,IAAA,EAAA,KACA,oBAEE,sBAEA,kBAJF,eAAA,qBAOiB,+BACjB,WAAA,EAGF,MACE,QAAA,EACA,UAAA,KAGI,eACJ,QAAA,KAIA,sBACE,QAAA,KACA,UAAA,OACA,gBAAA,SAEA,2BACE,QAAA,aACA,KAAA,EAAA,EAAA,IAOJ,iBAAA,mBACE,QAAA,EACA,OAAA,IACA,UAAA,KACA,QAAA,aACA,WAAA,IACA,MAAO,oCACP,OAAA,QACA,MAAO,WACP,cAAA,SACA,SAAA,OACA,WAAA,KAIY,2BADT,8BACS,6BADT,gCAEH,MAAO,8BACP,gBAAA,KACA,UAAA,MAEC,iCAAA,oCAAA,mCAAA,sCACC,gBAAA,UAKN,aACE,UAAA,YACA,QAAA,KACA,UAAA,IAAA,KACA,OAAA,EAAA,EAAA,IAAA,EAEA,gBACK,gCACH,QAAA,aACA,QAAA,MACA,OAAA,MAGG,gCACH,UAAA,MdjlBF,cAAA,Ic0lBI,aADO,oBAHF,kBAEC,mBADC,oBAIX,OAAA,IAAA,EAAA,KAAA,EACA,MAAO,uBAGF,cACL,OAAA,QACA,YAAA,IAGF,qBACE,WAAA,IAAA,MAAsB,4BACtB,eAAA,KAGF,yBACE,cAAA,IAAA,MAAyB,4BACzB,MAAA,KAGF,SACE,UAAA,QACA,WAAY,+BACZ,QAAA,KACA,OAAA,KAAA,EACA,WAAA,EACA,MAAO,yBd5nBP,cAAA,Kc+nBA,YACE,QAAA,KAGF,cACE,cAAA,SAGF,iBACE,QAAA,KACA,eAAA,OAGF,qBACE,YAAA,KACA,WAAA,IACA,aAAA,KACA,cAAA,KAKF,gBACE,UAAA,MAIJ,SACE,UAAA,QACA,UAAA,WACA,MAAO,0BAEP,kBACE,OAAA,KAAA,EAAA,KACA,OAAA,IAAA,MAAkB,4BAClB,QAAA,KACA,UAAA,KdnqBF,cAAA,KcsqBE,qBACE,OAAA,EAAA,EAAA,KAAA,EAGF,sBACE,UAAA,KACA,WAAA,KACA,QAAA,MACA,OAAA,EAAA,KACA,QAAA,EAGF,qBACE,YAAA,IAIA,iCACE,OAAA,KAAA,EAGF,iCACE,QAAA,OACA,WAAA,Kb/rBN,aAAA,MaisBM,cAAA,Kb7rBN,YAAA,Ea+rBM,QAAA,EAGF,iCACE,QAAA,OACA,OAAA,KAAA,EACA,QAAA,EAIJ,wBACE,UAAA,IAGF,qBACE,MAAA,KAGF,8BACA,wBACE,MAAA,KAMJ,YACE,UAAA,KACA,OAAA,EAAA,KAAA,EAAA,Ed3sBF,QAAA,IAAA,KAVA,cAAA,IAYA,WAAY,iCACZ,MAAO,2BACP,OAAA,QAEC,kBACC,WAAY,4BACZ,MAAO,sBc0sBP,mCACE,MAAA,KACA,MAAA,MAIE,4BACJ,MAAA,MACA,QAAA,MACA,YAAA,MACA,cAAA,MACA,QAAA,KAIJ,cACE,SAAA,Sb1vBA,MAAA,KAoCA,WAAA,MaytBA,IAAA,OACA,QAAA,EACA,OAAA,EACA,QAAA,KACA,YAAA,OACA,UAAA,IACA,MAAO,yBAEP,gBACE,QAAA,KACA,YAAA,OACA,YAAA,IAEA,oBACE,UAAA,MbvwBJ,aAAA,Oa4wBA,gBAIS,yBAFD,wBADD,uBAEG,0BAER,MAAO,yBAIX,YACE,UAAA,WAEA,eACE,MAAA,KAIJ,qBACE,QAAA,KACA,eAAA,IACA,gBAAA,OACA,YAAA,OACA,SAAA,OAGF,aACE,WAAA,cACA,MAAA,wCACA,gBAAA,UAGF,qBACE,WAAA,IACA,MAAO,sCACP,OAAA,KAGF,WACE,OAAA,IAAA,MAAkB,8BAClB,OAAA,EACA,QAAA,EACA,UAAA,IACA,WAAY,kCACZ,SAAA,MACA,OAAA,Kbh0BA,KAAA,Qak0BA,WAAA,QAAA,IACA,QAAA,EACA,eAAA,Kd1zBA,cAAA,Kc6zBA,aACE,QAAA,MACA,OAAA,EACA,QAAA,KAGF,aAGC,oBADA,mBADA,qBAGC,MAAO,4BAIQ,8BACjB,QAAA,EACA,eAAA,IA6G4B,oDAE1B,mBACE,QAAA,MAK+B,oCAG/B,uDACA,wDACE,QAAA,MAMuD,2DAvH3D,uCACE,QAAA,KAIJ,sCACE,OAAA,KAAA,MACA,MAAA,KAGF,+BACE,SAAA,QACA,UAAA,QAEA,wCACE,MAAA,KAEA,4Cbj1BJ,MAAA,Kam1BM,UAAA,KACA,WAAA,Kb52BN,aAAA,Ka82BM,cAAA,Kb12BN,YAAA,Eag3BA,6BACE,OAAA,EAAA,MAAA,QAAA,MACA,QAAA,EACA,MAAA,KACA,OAAA,KACA,MAAA,KAEA,mCACE,OAAA,EAKF,uCACE,UAAA,IAII,0CACF,QAAA,MACA,YAAA,OACA,cAAA,SACA,SAAA,OACA,MAAA,KAIJ,qCbn3BF,MAAA,Maq3BI,QAAA,KACA,UAAA,KACA,gBAAA,SACA,QAAA,IAAA,EAAA,EAAA,EAIJ,mCACE,cAAA,eAGF,kCACE,UAAA,IAEA,sCACE,UAAA,IAIJ,+BACE,QAAA,KAGF,gCACE,OAAA,KAAA,EAAA,EAAA,YAGe,8CACf,OAAA,EAAA,KACA,gBAAA,OACA,QAAA,KACA,sBAAA,MACA,mBAAA,YAAA,YAAA,YAAA,IAAA,YAAA,YACA,IAAA,EACA,oBAIE,cACA,UALF,UAAA,OAAA,cAuCqB,+CACvB,OAAA,KAAA,MAAA,EAAA,MACA,QAAA,KACA,sBAAA,KACA,mBAAA,YAAA,YAAA,YAAA,IAAA,YACA,IAAA,EACA,oBAIE,cACA,UALF,UAAA,OAAA,aAOA,wDACE,QAAA,KAGF,qDACE,OAAA,EACA,QAAA,KACA,UAAA,KAGG,4DACH,UAAA,GACA,QAAA,GAGF,0Db9/BA,KAAA,KAIA,MAAA,Ka+/BA,2Db3/BA,aAAA,KaogCoC,mCA5KlC,mBACE,QAAA,KAIJ,kBACE,OAAA,KAAA,MACA,MAAA,KAGF,WACE,SAAA,QACA,UAAA,QAEA,oBACE,MAAA,KAEA,wBbj1BJ,MAAA,Kam1BM,UAAA,KACA,WAAA,Kb52BN,aAAA,Ka82BM,cAAA,Kb12BN,YAAA,Eag3BA,SACE,OAAA,EAAA,MAAA,QAAA,MACA,QAAA,EACA,MAAA,KACA,OAAA,KACA,MAAA,KAEA,eACE,OAAA,EAKF,mBACE,UAAA,IAII,sBACF,QAAA,MACA,YAAA,OACA,cAAA,SACA,SAAA,OACA,MAAA,KAIJ,iBbn3BF,MAAA,Maq3BI,QAAA,KACA,UAAA,KACA,gBAAA,SACA,QAAA,IAAA,EAAA,EAAA,EAIJ,eACE,cAAA,eAGF,cACE,UAAA,IAEA,kBACE,UAAA,IAIJ,WACE,QAAA,KAGF,YACE,OAAA,KAAA,EAAA,EAAA,YAGe,0BACf,OAAA,EAAA,KACA,gBAAA,OACA,QAAA,KACA,sBAAA,MACA,mBAAA,YAAA,YAAA,YAAA,IAAA,YAAA,YACA,IAAA,EACA,oBAIE,cACA,UALF,UAAA,OAAA,aAqFF,KACE,iBAAkB,oCAGH,0BACf,sBAAA,KACA,OAAA,EAAA,KAGF,cACE,IAAA,ObthCF,MAAA,Ka0hCY,0BACV,IAAA,Mb3hCF,MAAA,Ma+hCA,SACE,OAAA,EACA,QAAA,EAGF,YACE,OAAA,KAAA,KAAA,EAAA,eAGK,2BACL,OAAA,IAAA,MAAkB,8BdniCpB,cAAA,KcuiCA,QACE,WAAY,+BACZ,OAAA,IAAA,MAAkB,+BAClB,OAAA,KAAA,Kd1iCF,cAAA,Kc8iCA,eACE,OAAA,EACA,OAAA,KACA,WAAY,oCAGd,SACE,OAAA,eACA,iBAAkB,gCAGpB,qBACE,QAAA,KAKA,6BAAA,0BACE,QAAA,MAEA,iCAAA,8BACE,QAAA,MAEA,sCAAA,mCACE,QAAA,OAGE,kDAAA,+CACF,YAAA,IAGY,mDAAA,gDb3kCpB,YAAA,OaulC0C,mCAErC,6BACD,MAAA,eAGF,wBACE,SAAA,SAKF,SACF,YAAA","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\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 border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/*\n * SearXNG, A privacy-respecting, hackable metasearch engine\n *\n * To change the colors of the site, simple edit this variables\n */\n\n/// Light Theme\n:root {\n /// Base Colors\n --color-base-font: #444;\n --color-base-font-rgb: 68, 68, 68;\n --color-base-background: #fff;\n --color-base-background-mobile: #f2f5f8;\n --color-url-font: #334999;\n --color-url-visited-font: #9822c3;\n /// Header Colors\n --color-header-background: #fdfbff;\n --color-header-border: #ddd;\n /// Footer Colors\n --color-footer-background: #fdfbff;\n --color-footer-border: #ddd;\n /// Sidebar Colors\n --color-sidebar-border: #ddd;\n --color-sidebar-font: #000;\n --color-sidebar-background: #fff;\n /// BackToTop Colors\n --color-backtotop-font: #444;\n --color-backtotop-border: #ddd;\n --color-backtotop-background: #fff;\n /// Button Colors\n --color-btn-background: #3050ff;\n --color-btn-font: #fff;\n --color-show-btn-background: #bbb;\n --color-show-btn-font: #000;\n /// Search Input Colors\n --color-search-border: #bbb;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #fff;\n --color-search-font: #222;\n --color-search-background-hover: #3050ff;\n /// Modal Colors\n --color-error: #db3434;\n --color-error-background: lighten(#db3434, 40%);\n --color-warning: #dbba34;\n --color-warning-background: lighten(#dbba34, 40%);\n --color-success: #42db34;\n --color-success-background: lighten(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #3050ff;\n --color-categories-item-border-selected: #3050ff;\n /// Autocomplete Colors\n --color-autocomplete-font: #000;\n --color-autocomplete-border: #bbb;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #fff;\n --color-autocomplete-background-hover: #e3e3e3;\n /// Answer Colors\n --color-answer-font: #444; // same as --color-base-font\n --color-answer-background: #fff;\n /// Results Colors\n --color-result-background: #fff;\n --color-result-border: #ddd;\n --color-result-url-font: #000;\n --color-result-vim-selected: #f7f7f7;\n --color-result-vim-arrow: #000bbb;\n --color-result-description-highlight-font: #000;\n --color-result-link-font: #000bbb;\n --color-result-link-font-highlight: #000bbb;\n --color-result-link-visited-font: #9822c3;\n --color-result-publishdate-font: #777;\n --color-result-engines-font: #545454;\n --color-result-search-url-border: #ddd;\n --color-result-search-url-font: #000;\n // Images Colors\n --color-result-image-span-font: #444;\n --color-result-image-span-font-selected: #fff;\n --color-result-image-background: #fff;\n /// Settings Colors\n --color-settings-tr-hover: #ebebeb;\n --color-settings-engine-description-font: #545454;\n --color-settings-table-group-background: #0001;\n /// Detail modal\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #242424;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #545454;\n --color-toolkit-kbd-font: #fff;\n --color-toolkit-kbd-background: #000;\n --color-toolkit-dialog-border: #ddd;\n --color-toolkit-dialog-background: #fff;\n --color-toolkit-tabs-label-border: #fff;\n --color-toolkit-tabs-section-border: #ddd;\n --color-toolkit-select-background: #e1e1e1;\n --color-toolkit-select-border: #ddd;\n --color-toolkit-select-background-hover: #bbb;\n --color-toolkit-input-text-font: #222;\n --color-toolkit-checkbox-onoff-off-background: #ddd;\n --color-toolkit-checkbox-onoff-on-background: #ddd;\n --color-toolkit-checkbox-onoff-on-mark-background: #3050ff;\n --color-toolkit-checkbox-onoff-on-mark-color: #fff;\n --color-toolkit-checkbox-onoff-off-mark-background: #aaa;\n --color-toolkit-checkbox-onoff-off-mark-color: #fff;\n --color-toolkit-checkbox-label-background: #ddd;\n --color-toolkit-checkbox-label-border: #ddd;\n --color-toolkit-checkbox-input-border: #3050ff;\n --color-toolkit-engine-tooltip-border: #ddd;\n --color-toolkit-engine-tooltip-background: #fff;\n --color-toolkit-loader-border: rgba(0, 0, 0, 0.2);\n --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0);\n --color-doc-code: #003;\n --color-doc-code-background: #ddeaff;\n}\n\n.dark-themes() {\n /// Base Colors\n --color-base-font: #bbb;\n --color-base-font-rgb: 187, 187, 187;\n --color-base-background: #222428;\n --color-base-background-mobile: #222428;\n --color-url-font: #8af;\n --color-url-visited-font: #c09cd9;\n /// Header Colors\n --color-header-background: #1e1e22;\n --color-header-border: #333;\n /// Footer Colors\n --color-footer-background: #1e1e22;\n --color-footer-border: #333;\n /// Sidebar Colors\n --color-sidebar-border: #555;\n --color-sidebar-font: #fff;\n --color-sidebar-background: #292c34;\n /// BackToTop Colors\n --color-backtotop-font: #bbb;\n --color-backtotop-border: #333;\n --color-backtotop-background: #2b2e36;\n /// Button Colors\n --color-btn-background: #58f;\n --color-btn-font: #222;\n --color-show-btn-background: #555;\n --color-show-btn-font: #fff;\n /// Search Input Colors\n --color-search-border: #555;\n --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-search-background: #2b2e36;\n --color-search-font: #fff;\n --color-search-background-hover: #58f;\n /// Modal Colors\n --color-error: #f55b5b;\n --color-error-background: darken(#db3434, 40%);\n --color-warning: #f1d561;\n --color-warning-background: darken(#dbba34, 40%);\n --color-success: #79f56e;\n --color-success-background: darken(#42db34, 40%);\n /// Categories Colors\n --color-categories-item-selected-font: #58f;\n --color-categories-item-border-selected: #58f;\n /// Autocomplete Colors\n --color-autocomplete-font: #fff;\n --color-autocomplete-border: #555;\n --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n --color-autocomplete-background: #2b2e36;\n --color-autocomplete-background-hover: #1e1e22;\n /// Answer Colors\n --color-answer-font: #bbb; // same as --color-base-font\n --color-answer-background: #26292f;\n /// Results Colors\n --color-result-background: #26292f;\n --color-result-border: #333;\n --color-result-url-font: #fff;\n --color-result-vim-selected: #1f1f23cc;\n --color-result-vim-arrow: #8af;\n --color-result-description-highlight-font: #fff;\n --color-result-link-font: #8af;\n --color-result-link-font-highlight: #8af;\n --color-result-link-visited-font: #c09cd9;\n --color-result-publishdate-font: #888;\n --color-result-engines-font: #a4a4a4;\n --color-result-search-url-border: #555;\n --color-result-search-url-font: #fff;\n /// Detail modal : same as the light version\n --color-result-detail-font: #fff;\n --color-result-detail-label-font: lightgray;\n --color-result-detail-background: #1a1a1c;\n --color-result-detail-hr: #555;\n --color-result-detail-link: #8af;\n --color-result-detail-loader-border: rgba(255, 255, 255, 0.2);\n --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0);\n // Images Colors\n --color-result-image-span-font: #bbb;\n --color-result-image-span-font-selected: #222;\n --color-result-image-background: #222;\n /// Settings Colors\n --color-settings-tr-hover: #2c2c32;\n --color-settings-engine-description-font: darken(#dcdcdc, 30%);\n --color-settings-table-group-background: #1b1b21;\n /// Toolkit Colors\n --color-toolkit-badge-font: #fff;\n --color-toolkit-badge-background: #555;\n --color-toolkit-kbd-font: #000;\n --color-toolkit-kbd-background: #fff;\n --color-toolkit-dialog-border: #555;\n --color-toolkit-dialog-background: #1e1e22;\n --color-toolkit-tabs-label-border: #222;\n --color-toolkit-tabs-section-border: #555;\n --color-toolkit-select-background: #313338;\n --color-toolkit-select-border: #555;\n --color-toolkit-select-background-hover: #373b49;\n --color-toolkit-input-text-font: #fff;\n --color-toolkit-checkbox-onoff-off-background: #313338;\n --color-toolkit-checkbox-onoff-on-background: #313338;\n --color-toolkit-checkbox-onoff-on-mark-background: #58f;\n --color-toolkit-checkbox-onoff-on-mark-color: #222;\n --color-toolkit-checkbox-onoff-off-mark-background: #ddd;\n --color-toolkit-checkbox-onoff-off-mark-color: #222;\n --color-toolkit-checkbox-label-background: #222;\n --color-toolkit-checkbox-label-border: #333;\n --color-toolkit-checkbox-input-border: #58f;\n --color-toolkit-engine-tooltip-border: #333;\n --color-toolkit-engine-tooltip-background: #222;\n --color-toolkit-loader-border: rgba(255, 255, 255, 0.2);\n --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0);\n --color-doc-code: #ddd;\n --color-doc-code-background: #4d5a6f;\n}\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .dark-themes();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .dark-themes();\n}\n\n/// General Size\n@results-width: 45rem;\n@results-sidebar-width: 25rem;\n@results-offset: 10rem;\n@results-tablet-offset: 0.5rem;\n@results-gap: 5rem;\n@results-margin: 0.125rem;\n@result-padding: 1rem;\n@results-image-row-height: 12rem;\n@results-image-row-height-phone: 6rem;\n@search-width: 44rem;\n// heigh of #search, see detail.less\n@search-height: 7.6rem;\n\n/// Device Size\n/// @desktop > @tablet\n@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874\n@phone: 50em;\n@small-phone: 35em;\n@ultra-small-phone: 20rem;\n\n/// From style.less\n@stacked-bar-chart: rgb(0, 0, 0);\n\n/// Load fonts from this directory.\n@icon-font-path: \"../../../fonts/\";\n//** File name for all font files.\n@icon-font-name: \"glyphicons-halflings-regular\";\n//** Element ID within SVG icon file.\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n// decoration of the select HTML elements\n@select-light-svg-path: \"../svg/select-light.svg\";\n@select-dark-svg-path: \"../svg/select-dark.svg\";\n","/*\n this file is generated automatically by searxng_extra/update/update_pygments.py\n using pygments version 2.17.2\n*/\n\n\n.code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #ffffcc }\n .c { color: #3D7B7B; font-style: italic } /* Comment */\n .err { border: 1px solid #FF0000 } /* Error */\n .k { color: #008000; font-weight: bold } /* Keyword */\n .o { color: #666666 } /* Operator */\n .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n .cp { color: #9C6500 } /* Comment.Preproc */\n .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n .gd { color: #A00000 } /* Generic.Deleted */\n .ge { font-style: italic } /* Generic.Emph */\n .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n .gr { color: #E40000 } /* Generic.Error */\n .gh { color: #000080; font-weight: bold } /* Generic.Heading */\n .gi { color: #008400 } /* Generic.Inserted */\n .go { color: #717171 } /* Generic.Output */\n .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n .gs { font-weight: bold } /* Generic.Strong */\n .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n .gt { color: #0044DD } /* Generic.Traceback */\n .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n .kp { color: #008000 } /* Keyword.Pseudo */\n .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n .kt { color: #B00040 } /* Keyword.Type */\n .m { color: #666666 } /* Literal.Number */\n .s { color: #BA2121 } /* Literal.String */\n .na { color: #687822 } /* Name.Attribute */\n .nb { color: #008000 } /* Name.Builtin */\n .nc { color: #0000FF; font-weight: bold } /* Name.Class */\n .no { color: #880000 } /* Name.Constant */\n .nd { color: #AA22FF } /* Name.Decorator */\n .ni { color: #717171; font-weight: bold } /* Name.Entity */\n .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n .nf { color: #0000FF } /* Name.Function */\n .nl { color: #767600 } /* Name.Label */\n .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\n .nt { color: #008000; font-weight: bold } /* Name.Tag */\n .nv { color: #19177C } /* Name.Variable */\n .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\n .w { color: #bbbbbb } /* Text.Whitespace */\n .mb { color: #666666 } /* Literal.Number.Bin */\n .mf { color: #666666 } /* Literal.Number.Float */\n .mh { color: #666666 } /* Literal.Number.Hex */\n .mi { color: #666666 } /* Literal.Number.Integer */\n .mo { color: #666666 } /* Literal.Number.Oct */\n .sa { color: #BA2121 } /* Literal.String.Affix */\n .sb { color: #BA2121 } /* Literal.String.Backtick */\n .sc { color: #BA2121 } /* Literal.String.Char */\n .dl { color: #BA2121 } /* Literal.String.Delimiter */\n .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n .s2 { color: #BA2121 } /* Literal.String.Double */\n .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n .sh { color: #BA2121 } /* Literal.String.Heredoc */\n .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n .sx { color: #008000 } /* Literal.String.Other */\n .sr { color: #A45A77 } /* Literal.String.Regex */\n .s1 { color: #BA2121 } /* Literal.String.Single */\n .ss { color: #19177C } /* Literal.String.Symbol */\n .bp { color: #008000 } /* Name.Builtin.Pseudo */\n .fm { color: #0000FF } /* Name.Function.Magic */\n .vc { color: #19177C } /* Name.Variable.Class */\n .vg { color: #19177C } /* Name.Variable.Global */\n .vi { color: #19177C } /* Name.Variable.Instance */\n .vm { color: #19177C } /* Name.Variable.Magic */\n .il { color: #666666 } /* Literal.Number.Integer.Long */\n}\n\n.code-highlight-dark(){\n .code-highlight {\n\n pre { line-height: 100%; }\n td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; }\n td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n .hll { background-color: #6e7681 }\n .c { color: #7e8aa1 } /* Comment */\n .err { color: #f88f7f } /* Error */\n .esc { color: #d4d2c8 } /* Escape */\n .g { color: #d4d2c8 } /* Generic */\n .k { color: #FFAD66 } /* Keyword */\n .l { color: #D5FF80 } /* Literal */\n .n { color: #d4d2c8 } /* Name */\n .o { color: #FFAD66 } /* Operator */\n .x { color: #d4d2c8 } /* Other */\n .p { color: #d4d2c8 } /* Punctuation */\n .ch { color: #f88f7f; font-style: italic } /* Comment.Hashbang */\n .cm { color: #7e8aa1 } /* Comment.Multiline */\n .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */\n .cpf { color: #7e8aa1 } /* Comment.PreprocFile */\n .c1 { color: #7e8aa1 } /* Comment.Single */\n .cs { color: #7e8aa1; font-style: italic } /* Comment.Special */\n .gd { color: #f88f7f; background-color: #3d1e20 } /* Generic.Deleted */\n .ge { color: #d4d2c8; font-style: italic } /* Generic.Emph */\n .ges { color: #d4d2c8 } /* Generic.EmphStrong */\n .gr { color: #f88f7f } /* Generic.Error */\n .gh { color: #d4d2c8 } /* Generic.Heading */\n .gi { color: #6ad4af; background-color: #19362c } /* Generic.Inserted */\n .go { color: #7e8aa1 } /* Generic.Output */\n .gp { color: #d4d2c8 } /* Generic.Prompt */\n .gs { color: #d4d2c8; font-weight: bold } /* Generic.Strong */\n .gu { color: #d4d2c8 } /* Generic.Subheading */\n .gt { color: #f88f7f } /* Generic.Traceback */\n .kc { color: #FFAD66 } /* Keyword.Constant */\n .kd { color: #FFAD66 } /* Keyword.Declaration */\n .kn { color: #FFAD66 } /* Keyword.Namespace */\n .kp { color: #FFAD66 } /* Keyword.Pseudo */\n .kr { color: #FFAD66 } /* Keyword.Reserved */\n .kt { color: #73D0FF } /* Keyword.Type */\n .ld { color: #D5FF80 } /* Literal.Date */\n .m { color: #DFBFFF } /* Literal.Number */\n .s { color: #D5FF80 } /* Literal.String */\n .na { color: #FFD173 } /* Name.Attribute */\n .nb { color: #FFD173 } /* Name.Builtin */\n .nc { color: #73D0FF } /* Name.Class */\n .no { color: #FFD173 } /* Name.Constant */\n .nd { color: #7e8aa1; font-weight: bold; font-style: italic } /* Name.Decorator */\n .ni { color: #95E6CB } /* Name.Entity */\n .ne { color: #73D0FF } /* Name.Exception */\n .nf { color: #FFD173 } /* Name.Function */\n .nl { color: #d4d2c8 } /* Name.Label */\n .nn { color: #d4d2c8 } /* Name.Namespace */\n .nx { color: #d4d2c8 } /* Name.Other */\n .py { color: #FFD173 } /* Name.Property */\n .nt { color: #5CCFE6 } /* Name.Tag */\n .nv { color: #d4d2c8 } /* Name.Variable */\n .ow { color: #FFAD66 } /* Operator.Word */\n .pm { color: #d4d2c8 } /* Punctuation.Marker */\n .w { color: #d4d2c8 } /* Text.Whitespace */\n .mb { color: #DFBFFF } /* Literal.Number.Bin */\n .mf { color: #DFBFFF } /* Literal.Number.Float */\n .mh { color: #DFBFFF } /* Literal.Number.Hex */\n .mi { color: #DFBFFF } /* Literal.Number.Integer */\n .mo { color: #DFBFFF } /* Literal.Number.Oct */\n .sa { color: #F29E74 } /* Literal.String.Affix */\n .sb { color: #D5FF80 } /* Literal.String.Backtick */\n .sc { color: #D5FF80 } /* Literal.String.Char */\n .dl { color: #D5FF80 } /* Literal.String.Delimiter */\n .sd { color: #7e8aa1 } /* Literal.String.Doc */\n .s2 { color: #D5FF80 } /* Literal.String.Double */\n .se { color: #95E6CB } /* Literal.String.Escape */\n .sh { color: #D5FF80 } /* Literal.String.Heredoc */\n .si { color: #95E6CB } /* Literal.String.Interpol */\n .sx { color: #95E6CB } /* Literal.String.Other */\n .sr { color: #95E6CB } /* Literal.String.Regex */\n .s1 { color: #D5FF80 } /* Literal.String.Single */\n .ss { color: #DFBFFF } /* Literal.String.Symbol */\n .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */\n .fm { color: #FFD173 } /* Name.Function.Magic */\n .vc { color: #d4d2c8 } /* Name.Variable.Class */\n .vg { color: #d4d2c8 } /* Name.Variable.Global */\n .vi { color: #d4d2c8 } /* Name.Variable.Instance */\n .vm { color: #d4d2c8 } /* Name.Variable.Magic */\n .il { color: #DFBFFF } /* Literal.Number.Integer.Long */\n }\n}\n","@import \"../generated/pygments.less\";\n\n.codelines {\n margin: @results-margin 0 0 0;\n padding: @result-padding 0 0 0;\n}\n\n.code-highlight-sxng() {\n .code-highlight {\n pre {\n overflow: auto;\n margin: 0;\n padding: 0 0 0.75rem 0;\n }\n\n .linenos {\n user-select: none;\n cursor: default;\n\n &::selection {\n background: transparent; /* WebKit/Blink Browsers */\n }\n\n &::-moz-selection {\n background: transparent; /* Gecko Browsers */\n }\n margin-right: 8px;\n text-align: right;\n }\n\n span.linenos {\n color: #64708d;\n }\n }\n}\n\n.code-highlight-sxng();\n\n/// Dark Theme (autoswitch based on device pref)\n@media (prefers-color-scheme: dark) {\n :root.theme-auto {\n .code-highlight-dark();\n .code-highlight-sxng();\n }\n}\n\n// Dark Theme by preferences\n:root.theme-dark {\n .code-highlight-dark();\n .code-highlight-sxng();\n}\n","// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783\n\n// stylelint-disable no-descending-specificity\n\nhtml.no-js .hide_if_nojs {\n display: none;\n}\n\nhtml.js .show_if_nojs {\n display: none;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n float: right;\n}\n\n.left {\n float: left;\n}\n\n.invisible {\n display: none !important;\n}\n\n.list-unstyled {\n list-style-type: none;\n\n li {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.danger {\n background-color: var(--color-error-background);\n}\n\n.warning {\n background: var(--color-warning-background);\n}\n\n.success {\n background: var(--color-success-background);\n}\n\n.badge {\n display: inline-block;\n color: var(--color-toolkit-badge-font);\n background-color: var(--color-toolkit-badge-background);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n min-width: 10px;\n padding: 1px 5px;\n border-radius: 5px;\n}\n\n// kbd\nkbd {\n padding: 2px 4px;\n margin: 1px;\n font-size: 90%;\n color: var(--color-toolkit-kbd-font);\n background: var(--color-toolkit-kbd-background);\n}\n\n// table\ntable {\n width: 100%;\n\n &.striped {\n tr {\n border-bottom: 1px solid var(--color-settings-tr-hover);\n }\n }\n}\n\nth {\n padding: 0.4em;\n}\n\ntd {\n padding: 0 4px;\n}\n\ntr {\n &:hover {\n background: var(--color-settings-tr-hover) !important;\n }\n}\n\n// pre\n.pre() {\n display: block;\n font-size: 0.8em;\n word-break: break-all;\n margin: 0.1em;\n user-select: all;\n}\n\ndiv.selectable_url {\n display: block;\n border: 1px solid var(--color-result-search-url-border);\n padding: 4px;\n color: var(--color-result-search-url-font);\n margin: 0.1em;\n overflow: hidden;\n height: 1.2em;\n line-height: 1.2em;\n .rounded-corners-tiny;\n\n pre {\n .pre();\n }\n}\n\n// dialog\n.dialog() {\n position: relative;\n display: flex;\n padding: 1rem;\n margin: 0 0 1em 0;\n border: 1px solid var(--color-toolkit-dialog-border);\n .ltr-text-align-left();\n .rounded-corners;\n\n .close {\n .ltr-float-right();\n position: relative;\n top: -3px;\n color: inherit;\n font-size: 1.5em;\n }\n\n ul,\n ol,\n p {\n margin: 1px 0 0 0;\n }\n\n table {\n width: auto;\n }\n\n tr {\n vertical-align: text-top;\n\n &:hover {\n background: transparent !important;\n }\n }\n\n td {\n padding: 0 1em 0 0;\n padding-top: 0;\n .ltr-padding-right(1rem);\n padding-bottom: 0;\n .ltr-padding-left(0);\n }\n\n h4 {\n margin-top: 0.3em;\n margin-bottom: 0.3em;\n }\n}\n\n.dialog-error {\n .dialog();\n\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-error-block {\n .dialog();\n\n display: block;\n color: var(--color-error);\n background: var(--color-error-background);\n border-color: var(--color-error);\n}\n\n.dialog-warning {\n .dialog();\n\n color: var(--color-warning);\n background: var(--color-warning-background);\n border-color: var(--color-warning);\n}\n\n.dialog-modal {\n .dialog();\n\n display: block;\n background: var(--color-toolkit-dialog-background);\n position: fixed;\n top: 50%;\n left: 50%;\n margin: 0 auto;\n transform: translate(-50%, -50%);\n z-index: 10000000;\n\n h3 {\n margin-top: 0;\n }\n}\n\n// btn-collapse\n.btn-collapse {\n cursor: pointer;\n}\n\n//\n.scrollx {\n overflow-x: auto;\n overflow-y: hidden;\n display: block;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n/* -- tabs -- */\n.tabs .tabs > label {\n font-size: 90%;\n}\n\nul.tabs {\n border-bottom: 1px solid var(--color-toolkit-tabs-section-border);\n list-style: none;\n padding-left: 0;\n\n li {\n display: flex;\n }\n}\n\n.tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n min-width: 100%;\n\n & > * {\n order: 2;\n }\n\n & > input[type=radio] {\n display: none;\n }\n\n & > label,\n & > li > a {\n order: 1;\n padding: 0.7em;\n margin: 0 0.7em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n border: solid var(--color-toolkit-tabs-label-border);\n border-width: 0 0 2px 0;\n color: unset;\n\n .disable-user-select();\n\n cursor: pointer;\n\n &.active {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n }\n\n & > label:hover,\n & > li > a:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n\n & > section {\n min-width: 100%;\n padding: 0.7rem 0;\n box-sizing: border-box;\n border-top: 1px solid var(--color-toolkit-tabs-section-border);\n display: none;\n }\n\n // default selection\n & > label:last-of-type {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n letter-spacing: -0.1px;\n }\n\n & > section:last-of-type {\n display: block;\n }\n}\n\nhtml body .tabs > input:checked {\n ~ section {\n display: none;\n }\n\n ~ label {\n position: inherited;\n background: inherit;\n border-bottom: 2px solid transparent;\n font-weight: normal;\n color: inherit;\n\n &:hover {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n }\n\n + label {\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n background: var(--color-categories-item-selected);\n color: var(--color-categories-item-selected-font);\n }\n\n + label + section {\n display: block;\n }\n}\n\n/* -- select -- */\nselect {\n height: 2.4rem;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n padding: 0.2rem !important;\n color: var(--color-search-font);\n font-size: 0.9rem;\n z-index: 2;\n\n &:hover,\n &:focus {\n cursor: pointer;\n }\n}\n\n@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) {\n select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border-width: 0 2rem 0 0;\n border-color: transparent;\n background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat;\n background-position-x: calc(100% + 2rem);\n background-size: 2rem;\n background-origin: content-box;\n background-color: var(--color-toolkit-select-background);\n outline: medium none;\n text-overflow: ellipsis;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n\n option {\n background-color: var(--color-base-background);\n }\n }\n\n @media (prefers-color-scheme: dark) {\n html.theme-auto select,\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n }\n\n html.theme-dark select {\n background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path);\n }\n}\n\n/* -- checkbox-onoff -- */\ninput.checkbox-onoff[type=\"checkbox\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n cursor: pointer;\n display: inline-block;\n width: 2.5em;\n height: 0.7em;\n box-shadow: none !important;\n margin: 0 16px;\n border-radius: 10px;\n position: relative;\n\n /* focus & hover */\n &:focus,\n &:hover {\n outline: none;\n }\n\n &:focus::after {\n content: \"\";\n position: absolute;\n width: 3.5em;\n height: 1.65em;\n border: 1px solid var(--color-btn-background);\n border-radius: 12px;\n box-shadow: var(--color-btn-background) 0 0 3px;\n z-index: 10000;\n top: -0.55em;\n left: -0.6em;\n }\n\n &::before {\n position: absolute;\n top: -0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 0.75em;\n width: 1.875em;\n height: 1.875em;\n border-radius: 50%;\n }\n}\n\n/* check mark\nreversed-checkbox displays unchecked checkedboxes as checked, and vice versa.\nsee https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313\n*/\ninput.checkbox-onoff[type=\"checkbox\"],\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"]:checked {\n background: var(--color-toolkit-checkbox-onoff-off-background);\n\n &::before {\n left: -0.5em;\n content: \"\\2715\";\n color: var(--color-toolkit-checkbox-onoff-off-mark-color);\n background: var(--color-toolkit-checkbox-onoff-off-mark-background);\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]:checked,\ninput.checkbox-onoff.reversed-checkbox[type=\"checkbox\"] {\n background: var(--color-toolkit-checkbox-onoff-on-background);\n\n &::before {\n left: calc(100% - 1.5em);\n content: \"\\2713\";\n color: var(--color-toolkit-checkbox-onoff-on-mark-color);\n background: var(--color-toolkit-checkbox-onoff-on-mark-background);\n }\n}\n\n/* -- checkbox -- */\n@supports (transform: rotate(-45deg)) {\n input[type=checkbox]:not(.checkbox-onoff) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n top: 0;\n left: 0;\n border: 2px solid var(--color-toolkit-checkbox-input-border);\n .rounded-corners(0.3em);\n\n &::after {\n content: '';\n width: 9px;\n height: 5px;\n position: absolute;\n top: 3px;\n left: 2px;\n border: 3px solid var(--color-toolkit-checkbox-label-border);\n border-top: none;\n border-right: none;\n background: transparent;\n opacity: 0;\n transform: rotate(-45deg);\n }\n\n &:checked::after {\n border-color: var(--color-toolkit-checkbox-input-border);\n opacity: 1;\n }\n }\n\n // disabled : can't be focused, show only the check mark\n input[type=checkbox][disabled]:not(.checkbox-onoff) {\n border: inherit;\n background-color: transparent !important;\n cursor: inherit;\n }\n\n // if not checked and possible to checked then display a \"light\" check mark on hover\n input.checkbox[type=checkbox]:not(:checked):not([disabled]):not(.checkbox-onoff):hover::after {\n opacity: 0.5;\n }\n}\n\n@media screen and (max-width: @phone) {\n .tabs > label {\n width: 100%;\n }\n}\n\n/* -- loader -- */\n.loader,\n.loader::after {\n border-radius: 50%;\n width: 2em;\n height: 2em;\n}\n\n.loader {\n margin: 1em auto;\n font-size: 10px;\n position: relative;\n text-indent: -9999em;\n border-top: 0.5em solid var(--color-toolkit-loader-border);\n border-right: 0.5em solid var(--color-toolkit-loader-border);\n border-bottom: 0.5em solid var(--color-toolkit-loader-border);\n border-left: 0.5em solid var(--color-toolkit-loader-borderleft);\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.2s infinite linear;\n animation: load8 1.2s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n/* -- engine-tooltip -- */\n.engine-tooltip {\n display: none;\n position: absolute;\n padding: 0.5rem 1rem;\n margin: 0 0 0 2rem;\n border: 1px solid var(--color-toolkit-engine-tooltip-border);\n background: var(--color-toolkit-engine-tooltip-background);\n font-size: 14px;\n font-weight: normal;\n z-index: 1000000;\n text-align: left;\n .rounded-corners;\n}\n\nth:hover .engine-tooltip,\ntd:hover .engine-tooltip,\n.engine-tooltip:hover {\n display: inline-block;\n}\n\n/* -- stacked bar chart -- */\n.stacked-bar-chart {\n margin: 0;\n padding: 0 0.125rem 0 4rem;\n width: 100%;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n display: inline-flex;\n}\n\n.stacked-bar-chart-value {\n width: 3rem;\n display: inline-block;\n position: absolute;\n padding: 0 0.5rem;\n text-align: right;\n}\n\n.stacked-bar-chart-base {\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-basis: unset;\n}\n\n.stacked-bar-chart-median {\n .stacked-bar-chart-base();\n\n background: var(--color-base-font);\n border: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate80 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border: 1px solid rgba(var(--color-base-font-rgb), 0.3);\n padding: 0.3rem 0;\n}\n\n.stacked-bar-chart-rate95 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5);\n padding: 0;\n}\n\n.stacked-bar-chart-rate100 {\n .stacked-bar-chart-base();\n\n background: transparent;\n border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9);\n padding: 0.4rem 0;\n width: 1px;\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Mixins\n.text-size-adjust (@property: 100%) {\n -webkit-text-size-adjust: @property;\n -ms-text-size-adjust: @property;\n -moz-text-size-adjust: @property;\n text-size-adjust: @property;\n}\n\n.rounded-corners (@radius: 10px) {\n border-radius: @radius;\n}\n\n.rounded-right-corners (@radius: 0 10px 10px 0) {\n border-radius: @radius;\n}\n\n.rounded-corners-tiny (@radius: 5px) {\n border-radius: @radius;\n}\n\n// disable user selection\n.disable-user-select () {\n -webkit-touch-callout: none;\n user-select: none;\n}\n\n.show-content-button() {\n padding: 5px 10px;\n .rounded-corners-tiny;\n background: var(--color-show-btn-background);\n color: var(--color-show-btn-font);\n cursor: pointer;\n\n &:hover {\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n }\n}\n",".ltr-left(@offset) {\n left: @offset;\n}\n\n.ltr-right(@offset) {\n right: @offset;\n}\n\n.ltr-margin-right(@offset) {\n margin-right: @offset;\n}\n\n.ltr-margin-left(@offset) {\n margin-left: @offset;\n}\n\n.ltr-border-right(@offset) {\n border-right: @offset;\n}\n\n.ltr-border-left(@offset) {\n border-left: @offset;\n}\n\n.ltr-padding-right(@offset) {\n padding-right: @offset;\n}\n\n.ltr-padding-left(@offset) {\n padding-left: @offset;\n}\n\n.ltr-float-left() {\n float: left;\n}\n\n.ltr-float-right() {\n float: right;\n}\n\n.ltr-text-align-right() {\n text-align: right;\n}\n\n.ltr-rounded-left-corners(@radius) {\n border-radius: @radius 0 0 @radius;\n}\n\n.ltr-rounded-top-left-corners(@radius) {\n border-radius: @radius 0 0 0;\n}\n\n.ltr-rounded-bottom-left-corners(@radius) {\n border-radius: 0 0 0 @radius;\n}\n\n.ltr-rounded-right-corners(@radius) {\n border-radius: 0 @radius @radius 0;\n}\n\n.ltr-rounded-top-right-corners(@radius) {\n border-radius: 0 @radius 0 0;\n}\n\n.ltr-rounded-bottom-right-corners(@radius) {\n border-radius: 0 0 @radius 0;\n}\n\n.ltr-text-align-left() {\n text-align: left;\n}\n\n.ltr-border-left-width(@offset) {\n border-left-width: @offset;\n}\n\n.ltr-border-right-width(@offset) {\n border-right-width: @offset;\n}\n\n.ltr-transform() {\n transform: scale(1, 1);\n}\n\n@import \"style.less\";\n","/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */\n\n.autocomplete {\n position: absolute;\n width: @search-width;\n max-height: 0;\n overflow-y: hidden;\n .ltr-text-align-left();\n\n .rounded-corners;\n\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background);\n }\n\n &:empty {\n display: none;\n }\n\n > ul {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n > li {\n cursor: pointer;\n padding: 0.5rem 1rem;\n\n &.active,\n &:active,\n &:focus,\n &:hover {\n background-color: var(--color-autocomplete-background-hover);\n\n a:active,\n a:focus,\n a:hover {\n text-decoration: none;\n }\n }\n\n &.locked {\n cursor: inherit;\n }\n }\n }\n\n &.open {\n display: block;\n background-color: var(--color-autocomplete-background);\n color: var(--color-autocomplete-font);\n max-height: 32rem;\n overflow-y: auto;\n z-index: 100;\n margin-top: 3.5rem;\n border-radius: 0.8rem;\n box-shadow: 0 2px 8px rgb(34 38 46 / 25%);\n\n &:empty {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n .autocomplete {\n width: 100%;\n\n > ul > li {\n padding: 1rem;\n }\n }\n}\n","#main_results #results.image-detail-open.only_template_images {\n width: min(98%, 59.25rem) !important;\n}\n\n#main_results #results.only_template_images.image-detail-open #backToTop {\n .ltr-left(56.75rem) !important;\n .ltr-right(inherit);\n}\n\narticle.result-images .detail {\n display: none;\n}\n\n#results.image-detail-open article.result-images[data-vim-selected] .detail {\n display: flex;\n flex-direction: column;\n position: fixed;\n .ltr-left(60rem);\n .ltr-right(0);\n top: @search-height;\n transition: top 0.064s ease-in 0s;\n bottom: 0;\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-background);\n z-index: 10000;\n padding: 4rem 3rem 3rem 3rem;\n\n a.result-images-source {\n display: block;\n flex: 1;\n text-align: left;\n width: 100%;\n border: none;\n text-decoration: none;\n\n img {\n padding: 0;\n margin: 0;\n border: none;\n object-fit: contain;\n width: inherit;\n height: inherit;\n max-width: 100%;\n min-height: inherit;\n max-height: calc(100vh - 25rem - 7rem);\n background: inherit;\n }\n }\n\n .result-images-labels {\n color: var(--color-result-detail-font);\n height: 19rem;\n\n hr {\n border-top: 1px solid var(--color-result-detail-hr);\n border-bottom: none;\n }\n\n h4 {\n height: 2rem;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.9rem;\n margin-bottom: 0;\n }\n\n p {\n color: var(--color-result-detail-label-font);\n font-size: 0.9rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin: 0.8rem 0;\n\n span {\n display: inline-block;\n width: 12rem;\n }\n }\n\n h4,\n p,\n a {\n .ltr-text-align-left();\n }\n\n p.result-content {\n height: 2rem;\n line-height: unset;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-url {\n white-space: nowrap;\n overflow-x: hidden;\n overflow-y: hidden;\n text-overflow: ellipsis;\n }\n\n p.result-content:hover,\n p.result-url:hover {\n position: relative;\n overflow: inherit !important;\n background: var(--color-result-detail-background);\n text-overflow: inherit !important;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-result-detail-link);\n }\n\n a:hover {\n text-decoration: underline;\n }\n }\n\n a.result-detail-close {\n top: 1rem;\n .ltr-left(1rem);\n padding: 0.4rem;\n }\n\n a.result-detail-previous {\n top: 1rem;\n .ltr-right(6rem);\n // center the icon by moving it slightly on the left\n padding-top: 0.4rem;\n .ltr-padding-right(0.5rem);\n padding-bottom: 0.4rem;\n .ltr-padding-left(0.3rem);\n }\n\n a.result-detail-next {\n top: 1rem;\n .ltr-right(2rem);\n padding: 0.4rem;\n }\n\n a.result-detail-close,\n a.result-detail-next,\n a.result-detail-previous {\n border-radius: 50%;\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n position: absolute;\n filter: opacity(40%);\n z-index: 2000002;\n\n span {\n display: block;\n width: 1.5rem;\n height: 1.5rem;\n text-align: center;\n }\n }\n\n a.result-detail-next,\n a.result-detail-previous {\n span::before {\n // vertical center small icons\n vertical-align: sub;\n }\n }\n\n a.result-detail-close,\n a.result-detail-close:visited,\n a.result-detail-close:hover,\n a.result-detail-close:active,\n a.result-detail-previous,\n a.result-detail-previous:visited,\n a.result-detail-previous:hover,\n a.result-detail-previous:active,\n a.result-detail-next,\n a.result-detail-next:visited,\n a.result-detail-next:hover,\n a.result-detail-next:active {\n color: var(--color-result-detail-font);\n background: var(--color-result-detail-background);\n border: 1px solid var(--color-result-detail-font);\n }\n\n a.result-detail-close:focus,\n a.result-detail-close:hover,\n a.result-detail-previous:focus,\n a.result-detail-previous:hover,\n a.result-detail-next:focus,\n a.result-detail-next:hover {\n filter: opacity(80%);\n }\n\n .loader {\n position: absolute;\n top: 1rem;\n .ltr-right(50%);\n border-top: 0.5em solid var(--color-result-detail-loader-border);\n border-right: 0.5em solid var(--color-result-detail-loader-border);\n border-bottom: 0.5em solid var(--color-result-detail-loader-border);\n border-left: 0.5em solid var(--color-result-detail-loader-borderleft);\n }\n}\n\n#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail {\n top: 0;\n\n a.result-images-source img {\n max-height: calc(100vh - 25rem);\n }\n}\n\n@media screen and (max-width: @tablet) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n\n a.result-images-source {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n img {\n width: 100%;\n max-height: calc(100vh - 24rem);\n }\n }\n\n a.result-detail-next {\n .ltr-right(1rem);\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #results.image-detail-open article.result-images[data-vim-selected] .detail {\n top: 0;\n .ltr-left(0);\n padding: 1rem;\n\n a.result-images-source img {\n width: 100%;\n max-height: calc(100vh - 20rem);\n margin: 0;\n }\n\n .result-images-labels p span {\n width: inherit;\n .ltr-margin-right(1rem);\n }\n }\n}\n",".dialog-modal {\n animation-name: dialogmodal;\n animation-duration: 0.13s;\n\n @keyframes dialogmodal {\n 0% {\n opacity: 0;\n }\n\n 50% {\n opacity: 0.5;\n transform: translate(-50%, -50%) scale(1.05);\n }\n }\n}\n\ninput.checkbox-onoff[type=\"checkbox\"]::before {\n transition: left 0.25s;\n}\n","iframe[src^=\"https://w.soundcloud.com\"] {\n height: 120px;\n}\n\niframe[src^=\"https://www.deezer.com\"] {\n // The real size is 92px, but 94px are needed to avoid an inner scrollbar of\n // the embedded HTML.\n height: 94px;\n}\n\niframe[src^=\"https://www.mixcloud.com\"] {\n // the embedded player from mixcloud has some quirks: initial there is an\n // issue with an image URL that is blocked since it is an a Cross-Origin\n // request. The alternative text (Mixcloud Logo then cause an\n // scrollbar in the inner of the iframe we can't avoid. Another quirk comes\n // when pressing the play button, somtimes the shown player has an height of\n // 200px, somtimes 250px.\n height: 250px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer\"] {\n // show playlist\n height: 350px;\n}\n\niframe[src^=\"https://bandcamp.com/EmbeddedPlayer/track\"] {\n // hide playlist\n height: 120px;\n}\n\niframe[src^=\"https://genius.com/songs\"] {\n height: 65px;\n}\n",".info-page {\n code {\n font-family: monospace;\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n.stats_endpoint {\n .github-issue-button {\n display: block;\n padding: 8px 16px;\n font-family: sans-serif;\n font-size: 16px;\n color: white;\n background-color: #238636;\n border: #2ea043;\n border-radius: 10px !important;\n box-shadow: rgba(0, 0, 0, 0) 0 0 0 0;\n }\n\n .github-issue-button:hover {\n background-color: #2ea043;\n }\n\n .issue-hide {\n display: none;\n }\n\n input[type=checked] {\n position: absolute;\n }\n\n label {\n margin: 1rem 1rem 1rem 0;\n }\n\n .step_content {\n margin: 1rem 1rem 1rem 2rem;\n }\n\n .step1,\n .step2 {\n visibility: hidden;\n }\n\n .step1_delay {\n transition: visibility 0s linear 4s;\n }\n\n #step1:checked ~ .step1,\n #step2:checked ~ .step2 {\n visibility: visible;\n }\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.engine-stats {\n border-spacing: 0;\n border-collapse: collapse;\n\n tr td,\n tr th {\n border-bottom: 1px solid var(--color-result-border);\n padding: 0.25rem;\n }\n\n table.engine-tooltip {\n border-spacing: 0;\n border-collapse: collapse;\n\n td,\n th {\n border: none;\n }\n }\n\n .engine-name {\n width: 20rem;\n }\n\n .engine-score {\n width: 7rem;\n text-align: right;\n }\n\n .engine-reliability {\n text-align: right;\n }\n}\n\ntable.engine-error th.engine-error-type,\ntable.engine-error td.engine-error-type,\nfailed-test {\n width: 10rem;\n}\n\n.engine-errors {\n margin-top: 3rem;\n\n table.engine-error {\n max-width: 1280px;\n margin: 1rem 0 3rem 0;\n border: 1px solid var(--color-result-border);\n .ltr-text-align-left();\n\n tr th,\n tr td {\n padding: 0.5rem;\n }\n\n & span.log_parameters {\n border-right: 1px solid solid var(--color-result-border);\n padding: 0 1rem 0 0;\n margin: 0 0 0 0.5rem;\n }\n }\n}\n\n.bar-chart-value {\n width: 3em;\n display: inline-block;\n text-align: right;\n padding-right: 0.5rem;\n}\n\n.bar-chart-graph {\n width: calc(100% - 5rem);\n display: inline-block;\n}\n\n.bar-chart-bar {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n}\n\n.bar-chart-serie1 {\n border: 3px solid #5bc0de;\n margin: 1px 0;\n float: left;\n}\n\n.bar-chart-serie2 {\n border: 3px solid #deb15b;\n margin: 1px 0;\n float: left;\n}\n\n.bar0 {\n width: 0;\n border: 0;\n}\n\n.generate-bar(100);\n\n.generate-bar(@n, @i: 1) when (@i =< @n) {\n .bar@{i} {\n width: (@i * 100% / @n);\n }\n .generate-bar(@n, (@i + 1));\n}\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n.osm-map-box {\n height: 300px;\n width: 100%;\n margin: 10px 0;\n}\n","#main_index {\n margin-top: 26vh;\n}\n\n.index {\n text-align: center;\n\n .title {\n background: url('../img/searxng.png') no-repeat;\n min-height: 4rem;\n margin: 4rem auto;\n background-position: center;\n background-size: contain;\n }\n\n h1 {\n font-size: 4em;\n visibility: hidden;\n }\n\n #search,\n #search_header {\n margin: 0 auto;\n background: inherit;\n border: inherit;\n padding: 0;\n display: block;\n }\n\n .search_filters {\n display: block;\n margin: 1em 0;\n }\n\n .category label {\n padding: 6px 10px;\n border-bottom: initial !important;\n }\n}\n\n@media screen and (max-width: @tablet) {\n div.title {\n h1 {\n font-size: 1em;\n }\n }\n\n #main_index {\n margin-top: 6em;\n }\n}\n","table {\n border-collapse: collapse;\n\n th,\n td {\n text-align: center;\n padding: 1rem 0.5rem;\n .ltr-text-align-left();\n }\n\n tr.pref-group th {\n font-weight: normal;\n .ltr-text-align-left();\n background: var(--color-settings-table-group-background);\n }\n}\n\n#main_preferences {\n form {\n width: 100%;\n }\n\n fieldset {\n margin: 8px;\n border: none;\n }\n\n legend {\n margin: 0;\n padding: 5px 0 0 0;\n display: block;\n .ltr-float-left();\n width: 300px;\n }\n\n input[type=\"text\"] {\n width: 13.25rem;\n color: var(--color-toolkit-input-text-font);\n border: none;\n background: none repeat scroll 0 0 var(--color-toolkit-select-background);\n padding: 0.2rem 0.4rem;\n height: 2rem;\n .rounded-corners-tiny;\n\n &:hover,\n &:focus {\n background-color: var(--color-toolkit-select-background-hover);\n }\n }\n\n .value {\n margin: 0;\n padding: 0;\n .ltr-float-left();\n width: 15em;\n\n select,\n input[type=\"text\"] {\n font-size: inherit !important;\n margin-top: 0;\n .ltr-margin-right(1rem);\n margin-bottom: 0;\n .ltr-margin-left(0);\n }\n\n select {\n width: 14rem;\n }\n\n select:focus,\n input:focus {\n outline: none;\n box-shadow: 0 0 1px 1px var(--color-btn-background);\n }\n }\n\n .description {\n margin: 0;\n padding: 5px 0 0 0;\n .ltr-float-right();\n width: 50%;\n color: var(--color-settings-engine-description-font);\n font-size: 90%;\n }\n\n .bang {\n .ltr-text-align-left();\n .rounded-corners-tiny;\n background-color: var(--color-doc-code-background);\n color: var(--color-doc-code);\n padding: 0.2rem;\n border: 0 none;\n }\n\n .category {\n .ltr-margin-right(0.5rem);\n\n label {\n border: 2px solid transparent;\n padding: 0.2rem 0.4rem;\n .rounded-corners-tiny;\n }\n }\n\n .category input[type=\"checkbox\"]:checked + label {\n border: 2px solid var(--color-categories-item-border-selected);\n }\n\n table.table_engines {\n th.name {\n /* stylelint-disable */\n label {\n cursor: pointer;\n }\n /* stylelint-enable */\n\n .engine-tooltip {\n margin-top: 1.8rem;\n .ltr-left(calc((100% - 85em) / 2 + 10em));\n max-width: 40rem;\n\n .engine-description {\n margin-top: 0.5rem;\n }\n\n .bang {\n margin: 0.3rem;\n }\n }\n }\n\n .checkbox-col,\n .name,\n .shortcut {\n .ltr-text-align-left();\n }\n }\n\n table.cookies {\n width: 100%;\n direction: ltr;\n\n th,\n td {\n text-align: left;\n font-family: monospace;\n font-size: 1rem;\n padding: 0.5em;\n vertical-align: top;\n }\n\n td:first-child {\n word-break: keep-all;\n width: 14rem;\n padding-right: 1rem;\n }\n\n td:last-child {\n word-break: break-all;\n }\n\n & > tbody > tr:nth-child(even) > th,\n & > tbody > tr:nth-child(even) > td {\n background-color: var(--color-settings-tr-hover);\n }\n }\n\n .preferences_back {\n background: none repeat scroll 0 0 var(--color-btn-background);\n color: var(--color-btn-font);\n border: 0 none;\n .rounded-corners;\n\n cursor: pointer;\n display: inline-block;\n margin: 2px 4px;\n padding: 0.7em;\n\n a {\n color: var(--color-settings-return-font);\n }\n\n a::first-letter {\n text-transform: uppercase;\n }\n }\n\n #toggle-all-engines-container {\n width: max-content;\n margin-left: auto;\n }\n\n div.selectable_url {\n pre {\n width: 100%;\n }\n }\n\n #copy-hash-container {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n div.selectable_url {\n pre {\n width: auto;\n flex-grow: 1;\n }\n }\n }\n\n #pref-hash-input {\n width: 100%;\n }\n}\n\n@media screen and (max-width: @tablet) {\n .preferences_back {\n clear: both;\n }\n\n .engine-tooltip {\n .ltr-left(10em) !important;\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*/\n\n#search {\n padding: 0;\n margin: 0;\n}\n\n#search_header {\n padding-top: 1.5em;\n .ltr-padding-right(2em);\n .ltr-padding-left(@results-offset - 3rem);\n margin: 0;\n background: var(--color-header-background);\n border-bottom: 1px solid var(--color-header-border);\n display: grid;\n column-gap: 1.2rem;\n row-gap: 1rem;\n grid-template-columns: 3rem 1fr;\n grid-template-areas:\n \"logo search\"\n \"spacer categories\";\n}\n\n.category_checkbox,\n.category_button {\n display: inline-block;\n position: relative;\n .ltr-margin-right(1rem);\n padding: 0;\n}\n\n.category_checkbox {\n input {\n display: none;\n }\n\n label {\n svg {\n padding-right: 0.2rem;\n }\n\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n text-transform: capitalize;\n font-size: 0.9em;\n border-bottom: 2px solid transparent;\n .disable-user-select;\n\n div.category_name {\n margin: auto 0;\n }\n }\n\n input[type=\"checkbox\"]:checked + label {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\nbutton.category_button {\n background-color: inherit;\n color: var(--color-base-font);\n cursor: pointer;\n padding: 0.2rem 0;\n display: inline-flex;\n align-items: center;\n text-transform: capitalize;\n font-size: 0.9em;\n border: none;\n border-bottom: 2px solid transparent;\n\n svg {\n padding-right: 0.2rem;\n }\n\n &.selected,\n &:active,\n &:focus-within {\n color: var(--color-categories-item-selected-font);\n border-bottom: 2px solid var(--color-categories-item-border-selected);\n }\n}\n\n#categories_container:has(button.category_button:focus-within) button.category_button.selected {\n color: var(--color-base-font);\n border-bottom: none;\n}\n\n#search_logo {\n padding: 0.5rem 10px 0 10px;\n grid-area: logo;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n flex: 1;\n width: 30px;\n height: 30px;\n margin: 0.5rem 0 auto 0;\n }\n}\n\n.search_categories {\n grid-area: categories;\n\n .help {\n display: none;\n }\n\n &:hover .help {\n display: block;\n position: absolute;\n background: var(--color-base-background);\n padding: 1rem 0.6rem 0.6rem 0;\n z-index: 1000;\n width: 100%;\n left: -0.1rem;\n }\n}\n\n#search_view {\n padding: 0.5rem 0.3rem 0 0.5rem;\n grid-area: search;\n\n body.results_endpoint & {\n padding: 0.5rem 2.8rem 0 0;\n }\n}\n\n.search_box {\n border-radius: 0.8rem;\n width: @search-width;\n display: inline-flex;\n flex-direction: row;\n white-space: nowrap;\n box-shadow: var(--color-search-shadow);\n}\n\n#clear_search {\n display: block;\n border-collapse: separate;\n box-sizing: border-box;\n width: 1.8rem;\n margin: 0;\n padding: 0.8rem 0.2rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 10000;\n\n &:hover {\n color: var(--color-search-background-hover);\n }\n\n &.empty * {\n display: none;\n }\n}\n\nhtml.no-js #clear_search.hide_if_nojs {\n display: none;\n}\n\n#q,\n#send_search {\n display: block;\n margin: 0;\n padding: 0.8rem;\n background: none repeat scroll 0 0 var(--color-search-background);\n border: none;\n outline: none;\n color: var(--color-search-font);\n font-size: 1.1rem;\n z-index: 2;\n}\n\n#q {\n width: 100%;\n .ltr-padding-left(1rem);\n .ltr-padding-right(0) !important;\n .ltr-rounded-left-corners(0.8rem);\n}\n\n#q::-ms-clear,\n#q::-webkit-search-cancel-button {\n display: none;\n}\n\n#send_search {\n .ltr-rounded-right-corners(0.8rem);\n\n &:hover {\n cursor: pointer;\n background-color: var(--color-search-background-hover);\n color: var(--color-search-background);\n }\n}\n\n.no-js #clear_search,\n.no-js #send_search {\n width: auto !important;\n .ltr-border-left(1px solid var(--color-search-border));\n}\n\n.search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset + 0.6rem);\n display: flex;\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n\n select {\n background-color: inherit;\n\n &:hover,\n &:focus {\n color: var(--color-base-font);\n }\n }\n}\n\n@media screen and (max-width: @tablet) {\n #search_header {\n padding: 1.5em @results-tablet-offset 0 @results-tablet-offset;\n column-gap: @results-tablet-offset;\n }\n\n .search_filters {\n margin-top: 0.6rem;\n .ltr-margin-right(0);\n margin-bottom: 0;\n .ltr-margin-left(@results-tablet-offset + 3rem);\n }\n\n #categories {\n font-size: 90%;\n clear: both;\n }\n}\n\n@media screen and (max-width: @tablet) and (hover: none) {\n #main_index,\n #main_results {\n #categories_container {\n width: max-content;\n\n .category_checkbox {\n display: inline-block;\n width: auto;\n }\n }\n\n #categories {\n width: 100%;\n .ltr-text-align-left();\n overflow-x: scroll;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n }\n }\n}\n\n@media screen and (max-width: @phone) {\n #search_header {\n width: 100%;\n margin: 0;\n padding: 0.1rem 0 0 0;\n column-gap: 0;\n row-gap: 0;\n grid-template-areas:\n \"logo search\"\n \"categories categories\";\n }\n\n .search_logo {\n padding: 0;\n }\n\n .search_box {\n width: 98%;\n display: flex;\n }\n\n #q {\n width: 100%;\n flex: 1;\n }\n\n .search_filters {\n margin: 0 10px;\n padding: 0.5rem 0;\n }\n\n .category {\n display: inline-block;\n width: auto;\n margin: 0;\n\n svg {\n display: none;\n }\n }\n\n .category_checkbox {\n label {\n padding: 1rem !important;\n margin: 0 !important;\n }\n }\n\n .category_button {\n padding: 1rem !important;\n margin: 0 !important;\n }\n\n #search_view:focus-within {\n display: block;\n background-color: var(--color-search-background);\n position: absolute;\n top: 0;\n height: 100%;\n width: 100%;\n z-index: 10000;\n\n .search_box {\n border-bottom: 1px solid var(--color-search-border);\n width: 100%;\n border-radius: 0;\n box-shadow: none;\n\n #send_search {\n .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile.\n }\n\n * {\n border: none;\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n #main_results #q:placeholder-shown ~ #send_search {\n .ltr-margin-right(2.6rem);\n transition: margin 0.1s;\n }\n}\n\n@media screen and (max-width: @ultra-small-phone) {\n #search_header {\n grid-template-areas:\n \"search search\"\n \"categories categories\";\n }\n\n #search_logo {\n display: none;\n }\n}\n\n#categories {\n .disable-user-select;\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n}\n\n#categories_container {\n position: relative;\n}\n","/*\n--center-page-width overrides the less variable @results-width when the results are centered\nsee the CSS rules for #results in style.less ( grid-template-columns and gap).\n\nIn this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3).\n\nAll rules starts with \".center-aligment-yes #main_results\" to be enabled only\non the /search URL and when the \"center alignment\" preference is enabled.\n*/\n\n@media screen and (min-width: @phone) {\n .center-aligment-yes #main_results {\n --center-page-width: 48rem;\n }\n}\n\n@media screen and (min-width: 62rem) {\n .center-aligment-yes #main_results {\n --center-page-width: 60rem;\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-aligment-yes #main_results {\n --center-page-width: 73rem;\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // any change must be reset in @media screen and (min-width: @tablet) { ... }\n .center-aligment-yes #main_results {\n #results {\n grid-template-columns: 60% calc(40% - @results-gap);\n margin-left: 0;\n margin-right: 0;\n }\n\n #urls {\n .ltr-margin-left(3rem);\n }\n\n #sidebar {\n .ltr-margin-right(1rem);\n }\n\n #backToTop {\n .ltr-left(calc(60% + 1rem));\n }\n }\n}\n\n@media screen and (min-width: @tablet) {\n .center-aligment-yes #main_results {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n #search {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n #search_header {\n grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width);\n grid-template-areas: \"na logo search\" \"na spacer categories\";\n column-gap: 1.2rem; // from search.less\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n .search_filters {\n .ltr-margin-left(0.5rem);\n width: var(--center-page-width);\n }\n\n #results {\n // from style.less (when screen width = @tablet, reset layout from tablet)\n .ltr-margin-right(2rem);\n .ltr-margin-left(@results-offset);\n //\n\n &.only_template_images,\n &.image-detail-open {\n // * grid-template-columns and .ltr-margin-left are set in style.less\n // * With .image-detail-open.only_template_images, the width is set in detail.less\n // * #results is going to be centered because of the #main_results rules,\n // align-self aligns the results on the left or right according to the language.\n align-self: flex-start;\n }\n\n &:not(.only_template_images):not(.image-detail-open) {\n // the gap is set in style.less\n .ltr-margin-left(1.5rem);\n grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width;\n\n #backToTop {\n .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2));\n }\n }\n\n .result .content {\n max-width: inherit;\n }\n }\n\n // from style.less (when screen width = @tablet, reset layout from tablet)\n #urls {\n .ltr-margin-left(0);\n }\n\n #sidebar {\n .ltr-margin-right(0);\n }\n }\n}\n","/*\n* SearXNG, A privacy-respecting, hackable metasearch engine\n*\n* To convert \"style.less\" to \"style.css\" run: $make styles\n*/\n\n// stylelint-disable no-descending-specificity\n\n@import (inline) \"../../node_modules/normalize.css/normalize.css\";\n@import \"definitions.less\";\n@import \"mixins.less\";\n@import \"code.less\";\n@import \"toolkit.less\";\n@import \"autocomplete.less\";\n@import \"detail.less\";\n@import \"animations.less\";\n@import \"embedded.less\";\n@import \"info.less\";\n@import \"new_issue.less\";\n@import \"stats.less\";\n@import \"result_templates.less\";\n\n// for index.html template\n@import \"index.less\";\n\n// for preferences.html template\n@import \"preferences.less\";\n\n// Search-Field\n@import \"search.less\";\n\n// to center the results\n@import \"style-center.less\";\n\n// ion-icon\n.ion-icon {\n display: inline-block;\n vertical-align: bottom;\n line-height: 1;\n text-decoration: inherit;\n .ltr-transform();\n}\n\n.ion-icon-small {\n width: 1rem;\n height: 1rem;\n .ion-icon;\n}\n\n.ion-icon-big {\n width: 1.5rem;\n height: 1.5rem;\n .ion-icon;\n}\n\n// Main LESS-Code\nhtml {\n font-family: sans-serif;\n font-size: 0.9em;\n .text-size-adjust;\n\n color: var(--color-base-font);\n background-color: var(--color-base-background);\n padding: 0;\n margin: 0;\n\n scroll-behavior: smooth;\n}\n\nbody,\nmain {\n padding: 0;\n margin: 0;\n}\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100vh;\n margin: 0;\n}\n\nmain {\n width: 100%;\n margin-bottom: 2rem;\n flex: 1;\n}\n\n.page_with_header {\n margin: 2em auto;\n width: 85em;\n}\n\nfooter {\n clear: both;\n min-height: 4rem;\n padding: 1rem 0;\n width: 100%;\n text-align: center;\n background-color: var(--color-footer-background);\n border-top: 1px solid var(--color-footer-border);\n overflow: hidden;\n\n p {\n font-size: 0.9em;\n }\n}\n\n.page_with_header .logo {\n height: 40px;\n}\n\ninput[type=\"submit\"],\n#results button[type=\"submit\"],\n.button {\n padding: 0.7rem;\n display: inline-block;\n background: var(--color-btn-background);\n color: var(--color-btn-font);\n .rounded-corners;\n\n border: 0;\n cursor: pointer;\n}\n\na {\n text-decoration: none;\n color: var(--color-url-font);\n\n &:visited {\n color: var(--color-url-visited-font);\n\n .highlight {\n color: var(--color-url-visited-font);\n }\n }\n}\n\narticle[data-vim-selected] {\n background: var(--color-result-vim-selected);\n .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));\n .ltr-rounded-right-corners(10px);\n}\n\narticle.result-images[data-vim-selected] {\n background: var(--color-result-vim-arrow);\n border: none;\n .rounded-corners;\n\n .image_thumbnail {\n filter: opacity(60%);\n }\n\n span.title,\n span.source {\n color: var(--color-result-image-span-font-selected);\n }\n}\n\narticle[data-vim-selected].category-videos,\narticle[data-vim-selected].category-news,\narticle[data-vim-selected].category-map,\narticle[data-vim-selected].category-music,\narticle[data-vim-selected].category-files,\narticle[data-vim-selected].category-social {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n}\n\n.result {\n margin: @results-margin 0;\n padding: @result-padding;\n .ltr-border-left(0.2rem solid transparent);\n\n h3 {\n font-size: 1.2rem;\n word-wrap: break-word;\n margin: 0.4rem 0 0.4rem 0;\n padding: 0;\n\n a {\n color: var(--color-result-link-font);\n font-weight: normal;\n font-size: 1.1em;\n\n &:visited {\n color: var(--color-result-link-visited-font);\n }\n\n &:focus,\n &:hover {\n text-decoration: underline;\n border: none;\n outline: none;\n }\n }\n }\n\n .cache_link,\n .proxyfied_link {\n font-size: smaller !important;\n margin-left: 0.5rem;\n }\n\n .content,\n .stat {\n font-size: 0.9em;\n margin: 0;\n padding: 0;\n max-width: 54em;\n word-wrap: break-word;\n line-height: 1.24;\n\n .highlight {\n color: var(--color-result-description-highlight-font);\n background: inherit;\n font-weight: bold;\n }\n }\n\n .altlink a {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n\n .codelines {\n .highlight {\n color: inherit;\n background: inherit;\n font-weight: normal;\n }\n }\n\n .url_wrapper {\n display: flex;\n font-size: 1rem;\n color: var(--color-result-url-font);\n flex-wrap: nowrap;\n overflow: hidden;\n flex-direction: row;\n margin: 0;\n padding: 0;\n\n .url_o1 {\n white-space: nowrap;\n flex-shrink: 1;\n }\n\n .url_o1::after {\n content: \" \";\n width: 1ch;\n display: inline-block;\n }\n\n .url_o2 {\n overflow: hidden;\n white-space: nowrap;\n flex-basis: content;\n flex-grow: 0;\n flex-shrink: 1;\n text-align: right;\n\n .url_i2 {\n float: right;\n }\n }\n }\n\n .published_date,\n .result_length,\n .result_author,\n .result_shipping,\n .result_source_country {\n font-size: 0.8em;\n color: var(--color-result-publishdate-font);\n }\n\n .result_price {\n font-size: 1.2em;\n color: var(--color-result-description-highlight-font);\n }\n\n img {\n &.thumbnail {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 20rem;\n height: unset; // remove heigth value that was needed for lazy loading\n }\n\n &.image {\n .ltr-float-left();\n padding-top: 0.6rem;\n .ltr-padding-right(1rem);\n width: 7rem;\n max-height: 7rem;\n object-fit: scale-down;\n object-position: right top;\n }\n }\n\n .break {\n clear: both;\n }\n}\n\n.result-paper,\n.result-packages {\n .attributes {\n display: table;\n border-spacing: 0.125rem;\n\n div {\n display: table-row;\n\n span {\n font-size: 0.9rem;\n margin-top: 0.25rem;\n display: table-cell;\n\n time {\n font-size: 0.9rem;\n }\n }\n\n span:first-child {\n color: var(--color-base-font);\n min-width: 10rem;\n }\n\n span:nth-child(2) {\n color: var(--color-result-publishdate-font);\n }\n }\n }\n\n .content {\n margin-top: 0.25rem;\n }\n\n .comments {\n font-size: 0.9rem;\n margin: 0.25rem 0 0 0;\n padding: 0;\n word-wrap: break-word;\n line-height: 1.24;\n font-style: italic;\n }\n}\n\n.result-packages {\n .attributes {\n margin-top: 0.3rem;\n }\n}\n\n.template_group_images {\n display: flex;\n flex-wrap: wrap;\n}\n\n.template_group_images::after {\n flex-grow: 10;\n content: \"\";\n}\n\n.category-videos,\n.category-news,\n.category-map,\n.category-music,\n.category-files,\n.category-social {\n border: 1px solid var(--color-result-border);\n margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;\n .rounded-corners;\n}\n\n.category-social .image {\n width: auto !important;\n min-width: 48px;\n min-height: 48px;\n padding: 0 5px 25px 0 !important;\n}\n\n.audio-control audio {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.embedded-content iframe {\n width: 100%;\n padding: 10px 0 0 0;\n}\n\n.result-videos .content {\n overflow: hidden;\n}\n\n.result-videos .embedded-video iframe {\n width: 100%;\n aspect-ratio: 16 / 9;\n padding: 10px 0 0 0;\n}\n\n@supports not (aspect-ratio: 1 / 1) {\n // support older browsers which do not have aspect-ratio\n // https://caniuse.com/?search=aspect-ratio\n .result-videos .embedded-video iframe {\n height: calc(@results-width * 9 / 16);\n }\n}\n\n.engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n color: var(--color-result-engines-font);\n\n span {\n font-size: smaller;\n margin-top: 0;\n margin-bottom: 0;\n .ltr-margin-right(0.5rem);\n .ltr-margin-left(0);\n }\n}\n\n.small_font {\n font-size: 0.8em;\n}\n\n.highlight {\n color: var(--color-result-link-font-highlight);\n background: inherit;\n}\n\n.empty_element {\n font-style: italic;\n}\n\n.result-images {\n flex-grow: 1;\n padding: 0.5rem 0.5rem 3rem 0.5rem;\n margin: 0.25rem;\n border: none !important;\n height: @results-image-row-height;\n\n & > a {\n position: relative;\n outline: none;\n }\n\n img {\n margin: 0;\n padding: 0;\n border: none;\n height: 100%;\n width: 100%;\n object-fit: cover;\n vertical-align: bottom;\n background: var(--color-result-image-background);\n }\n\n .image_resolution {\n position: absolute;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 50%);\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n color: #fff;\n border-top-left-radius: 0.3rem;\n }\n\n span.title,\n span.source {\n display: block;\n position: absolute;\n\n width: 100%;\n font-size: 0.9rem;\n color: var(--color-result-image-span-font);\n padding: 0.5rem 0 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n span.source {\n padding: 1.8rem 0 0 0;\n font-size: 0.7rem;\n }\n}\n\n.result-map {\n img.image {\n .ltr-float-right() !important;\n height: 100px !important;\n width: auto !important;\n }\n\n table {\n font-size: 0.9em;\n width: auto;\n border-collapse: separate;\n border-spacing: 0 0.35rem;\n\n th {\n font-weight: inherit;\n width: 17rem;\n vertical-align: top;\n .ltr-text-align-left();\n }\n\n td {\n vertical-align: top;\n .ltr-text-align-left();\n }\n }\n}\n\n.hidden {\n display: none !important;\n}\n\n#results {\n margin-top: 1rem;\n .ltr-margin-right(2rem);\n margin-bottom: 0;\n .ltr-margin-left(@results-offset);\n display: grid;\n grid-template-columns: @results-width @results-sidebar-width;\n grid-template-rows: min-content min-content 1fr min-content;\n gap: 0 @results-gap;\n grid-template-areas:\n \"corrections sidebar\"\n \"answers sidebar\"\n \"urls sidebar\"\n \"pagination sidebar\";\n}\n\n#results #sidebar *:first-child {\n margin-top: 0;\n}\n\n#urls {\n padding: 0;\n grid-area: urls;\n}\n\n#apis .wrapper {\n display: flex;\n}\n\n#suggestions {\n .wrapper {\n display: flex;\n flex-flow: column;\n justify-content: flex-end;\n\n form {\n display: inline-block;\n flex: 1 1 50%;\n }\n }\n}\n\n#suggestions,\n#infoboxes {\n input {\n padding: 0;\n margin: 3px;\n font-size: 0.9em;\n display: inline-block;\n background: transparent;\n color: var(--color-result-search-url-font);\n cursor: pointer;\n width: calc(100%);\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: left;\n }\n\n input[type=\"submit\"],\n .infobox .url a {\n color: var(--color-result-link-font);\n text-decoration: none;\n font-size: 0.9rem;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n#corrections {\n grid-area: corrections;\n display: flex;\n flex-flow: row wrap;\n margin: 0 0 1em 0;\n\n h4,\n input[type=\"submit\"] {\n display: inline-block;\n padding: 0.5rem;\n margin: 0.5rem;\n }\n\n input[type=\"submit\"] {\n font-size: 0.8rem;\n .rounded-corners-tiny;\n }\n}\n\n#infoboxes .title,\n#suggestions .title,\n#search_url .title,\n#engines_msg .title,\n#apis .title {\n margin: 2em 0 0.5em 0;\n color: var(--color-base-font);\n}\n\nsummary.title {\n cursor: pointer;\n padding-top: 1em;\n}\n\n.sidebar-collapsable {\n border-top: 1px solid var(--color-sidebar-border);\n padding-bottom: 0.5em;\n}\n\n#sidebar-end-collapsable {\n border-bottom: 1px solid var(--color-sidebar-border);\n width: 100%;\n}\n\n#answers {\n grid-area: answers;\n background: var(--color-answer-background);\n padding: @result-padding;\n margin: 1rem 0;\n margin-top: 0;\n color: var(--color-answer-font);\n .rounded-corners;\n\n h4 {\n display: none;\n }\n\n span {\n overflow-wrap: anywhere;\n }\n\n .answer {\n display: flex;\n flex-direction: column;\n }\n\n .answer-url {\n margin-left: auto;\n margin-top: 5px;\n margin-right: 10px;\n margin-bottom: 10px;\n }\n}\n\n#infoboxes {\n form {\n min-width: 210px;\n }\n}\n\n#sidebar {\n grid-area: sidebar;\n word-wrap: break-word;\n color: var(--color-sidebar-font);\n\n .infobox {\n margin: 10px 0 10px;\n border: 1px solid var(--color-sidebar-border);\n padding: 1rem;\n font-size: 0.9em;\n .rounded-corners;\n\n h2 {\n margin: 0 0 0.5em 0;\n }\n\n img {\n max-width: 100%;\n max-height: 12em;\n display: block;\n margin: 0 auto;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n .attributes {\n dl {\n margin: 0.5em 0;\n }\n\n dt {\n display: inline;\n margin-top: 0.5em;\n .ltr-margin-right(0.25em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n padding: 0;\n }\n\n dd {\n display: inline;\n margin: 0.5em 0;\n padding: 0;\n }\n }\n\n input {\n font-size: 1em;\n }\n\n br {\n clear: both;\n }\n\n .attributes,\n .urls {\n clear: both;\n }\n }\n}\n\n#apis {\n input {\n font-size: 0.9em;\n margin: 0 10px 0 0;\n .show-content-button;\n }\n}\n\n#search_url {\n div.selectable_url {\n pre {\n float: left;\n width: 200em;\n }\n }\n\n button#copy_url {\n float: right;\n padding: 0.4rem;\n margin-left: 0.5rem;\n border-radius: 0.3rem;\n display: none; // will be shown by JS.\n }\n}\n\n#links_on_top {\n position: absolute;\n .ltr-right(1rem);\n .ltr-text-align-right();\n top: 2.7rem;\n padding: 0;\n border: 0;\n display: flex;\n align-items: center;\n font-size: 1em;\n color: var(--color-search-font);\n\n a {\n display: flex;\n align-items: center;\n margin-left: 1em;\n\n svg {\n font-size: 1.2em;\n .ltr-margin-right(0.125em);\n }\n }\n\n a,\n a:link *,\n a:hover *,\n a:visited *,\n a:active * {\n color: var(--color-search-font);\n }\n}\n\n#pagination {\n grid-area: pagination;\n\n br {\n clear: both;\n }\n}\n\n.numbered_pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n}\n\n.page_number {\n background: transparent !important;\n color: var(--color-result-link-font) !important;\n text-decoration: underline;\n}\n\n.page_number_current {\n background: transparent;\n color: var(--color-result-link-visited-font);\n border: none;\n}\n\n#backToTop {\n border: 1px solid var(--color-backtotop-border);\n margin: 0;\n padding: 0;\n font-size: 1em;\n background: var(--color-backtotop-background);\n position: fixed;\n bottom: 8rem;\n .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));\n transition: opacity 0.5s;\n opacity: 0;\n pointer-events: none;\n .rounded-corners;\n\n a {\n display: block;\n margin: 0;\n padding: 0.7em;\n }\n\n a,\n a:visited,\n a:hover,\n a:active {\n color: var(--color-backtotop-font);\n }\n}\n\n#results.scrolling #backToTop {\n opacity: 1;\n pointer-events: all;\n}\n\n/*\n tablet layout\n*/\n\n.results-tablet() {\n #links_on_top {\n span {\n display: none;\n }\n }\n\n .page_with_header {\n margin: 2rem 0.5rem;\n width: auto;\n }\n\n #infoboxes {\n position: inherit;\n max-width: inherit;\n\n .infobox {\n clear: both;\n\n img {\n .ltr-float-left();\n max-width: 10em;\n margin-top: 0.5em;\n .ltr-margin-right(0.5em);\n margin-bottom: 0.5em;\n .ltr-margin-left(0);\n }\n }\n }\n\n #sidebar {\n margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;\n padding: 0;\n float: none;\n border: none;\n width: auto;\n\n input {\n border: 0;\n }\n }\n\n .result {\n .thumbnail {\n max-width: 98%;\n }\n\n .url {\n span.url {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n width: 100%;\n }\n }\n\n .engines {\n .ltr-float-right();\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n padding: 3px 0 0 0;\n }\n }\n\n .result-images {\n border-bottom: none !important;\n }\n\n .image_result {\n max-width: 98%;\n\n img {\n max-width: 98%;\n }\n }\n\n #backToTop {\n display: none;\n }\n\n #pagination {\n margin: 2rem 0 0 0 !important;\n }\n\n #main_results div#results {\n margin: 0 auto;\n justify-content: center;\n display: grid;\n grid-template-columns: @results-width;\n grid-template-rows: min-content min-content min-content 1fr min-content min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"answers\"\n \"sidebar\"\n \"urls\"\n \"pagination\";\n }\n}\n\n@media screen and (max-width: calc(@tablet - 0.5px)) {\n #links_on_top {\n span {\n display: none;\n }\n }\n}\n\n@media screen and (max-width: 52rem) {\n body.results_endpoint {\n #links_on_top {\n .link_on_top_about,\n .link_on_top_donate {\n display: none;\n }\n }\n }\n}\n\n@media screen and (min-width: @phone) and (max-width: @tablet) {\n // when .center-aligment-yes, see style-center.less\n // the media query includes \"min-width: @phone\"\n // because the phone layout includes the tablet layout unconditionally.\n .center-aligment-no {\n .results-tablet();\n }\n}\n\n/* Misc */\n\n#main_results div#results.only_template_images {\n margin: 1rem @results-tablet-offset 0 @results-tablet-offset;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: min-content min-content min-content 1fr min-content;\n gap: 0;\n grid-template-areas:\n \"corrections\"\n \"answers\"\n \"sidebar\"\n \"urls\"\n \"pagination\";\n\n #sidebar {\n display: none;\n }\n\n #urls {\n margin: 0;\n display: flex;\n flex-wrap: wrap;\n }\n\n #urls::after {\n flex-grow: 10;\n content: \"\";\n }\n\n #backToTop {\n .ltr-left(auto);\n .ltr-right(1rem);\n }\n\n #pagination {\n .ltr-margin-right(4rem);\n }\n}\n\n/*\n phone layout\n*/\n\n@media screen and (max-width: @phone) {\n // based on the tablet layout\n .results-tablet();\n\n html {\n background-color: var(--color-base-background-mobile);\n }\n\n #main_results div#results {\n grid-template-columns: 100%;\n margin: 0 auto;\n }\n\n #links_on_top {\n top: 1.4rem;\n .ltr-right(10px);\n }\n\n #main_index #links_on_top {\n top: 0.5rem;\n .ltr-right(0.5rem);\n }\n\n #results {\n margin: 0;\n padding: 0;\n }\n\n #pagination {\n margin: 2rem 1rem 0 1rem !important;\n }\n\n article[data-vim-selected] {\n border: 1px solid var(--color-result-vim-arrow);\n .rounded-corners;\n }\n\n .result {\n background: var(--color-result-background);\n border: 1px solid var(--color-result-background);\n margin: 1rem 10px;\n .rounded-corners;\n }\n\n .result-images {\n margin: 0;\n height: @results-image-row-height-phone;\n background: var(--color-base-background-mobile);\n }\n\n .infobox {\n border: none !important;\n background-color: var(--color-sidebar-background);\n }\n\n .numbered_pagination {\n display: none;\n }\n\n .result-paper,\n .result-packages {\n .attributes {\n display: block;\n\n div {\n display: block;\n\n span {\n display: inline;\n }\n\n span:first-child {\n font-weight: bold;\n }\n\n span:nth-child(2) {\n .ltr-margin-left(0.5rem);\n }\n }\n }\n }\n}\n\n/*\n small-phone layout\n*/\n\n@media screen and (max-width: @small-phone) {\n .result-videos {\n img.thumbnail {\n float: none !important;\n }\n\n .content {\n overflow: inherit;\n }\n }\n}\n\npre code {\n white-space: pre-wrap;\n}\n"]} \ No newline at end of file diff --git a/searx/static/themes/marlo/gruntfile.js b/searx/static/themes/marlo/gruntfile.js new file mode 100644 index 000000000..9410a674b --- /dev/null +++ b/searx/static/themes/marlo/gruntfile.js @@ -0,0 +1,307 @@ +/* SPDX-License-Identifier: AGPL-3.0-or-later */ + +module.exports = function (grunt) { + + const eachAsync = require('each-async'); + + function file_exists (filepath) { + // filter function to exit grunt task with error if a (src) file not exists + if (!grunt.file.exists(filepath)) { + grunt.fail.fatal('Could not find: ' + filepath, 42); + } else { + return true; + } + } + + grunt.initConfig({ + + _brand: '../../../../src/brand', + _templates: '../../../templates', + + pkg: grunt.file.readJSON('package.json'), + watch: { + scripts: { + files: ['gruntfile.js', 'src/**'], + tasks: [ + 'eslint', + 'copy', + 'uglify', + 'less', + 'image', + 'svg2png', + 'svg2jinja' + ] + } + }, + eslint: { + options: { + overrideConfigFile: '.eslintrc.json', + failOnError: true, + fix: grunt.option('fix') + }, + target: [ + 'gruntfile.js', + 'svg4web.svgo.js', + 'src/js/main/*.js', + 'src/js/head/*.js', + ], + }, + stylelint: { + options: { + formatter: 'unix', + }, + src: [ + 'src/less/**/*.less', + ] + }, + copy: { + js: { + expand: true, + cwd: './node_modules', + dest: './js/', + flatten: true, + filter: 'isFile', + timestamp: true, + src: [ + './leaflet/dist/leaflet.js', + ] + }, + css: { + expand: true, + cwd: './node_modules', + dest: './css/', + flatten: true, + filter: 'isFile', + timestamp: true, + src: [ + './leaflet/dist/leaflet.css', + ] + }, + leaflet_images: { + expand: true, + cwd: './node_modules', + dest: './css/images/', + flatten: true, + filter: 'isFile', + timestamp: true, + src: [ + './leaflet/dist/images/*.png', + ] + }, + }, + uglify: { + options: { + output: { + comments: 'some' + }, + ie8: false, + warnings: true, + compress: false, + mangle: true, + sourceMap: { + includeSources: true + } + }, + dist: { + files: { + 'js/searxng.head.min.js': ['src/js/head/*.js'], + 'js/searxng.min.js': [ + 'src/js/main/*.js', + './node_modules/autocomplete-js/dist/autocomplete.js' + ] + } + } + }, + less: { + production: { + options: { + paths: ["less"], + plugins: [ + new (require('less-plugin-clean-css'))() + ], + sourceMap: true, + sourceMapURL: (name) => { const s = name.split('/'); return s[s.length - 1] + '.map'; }, + outputSourceFiles: true, + }, + files: [ + { + src: ['src/less/style-ltr.less'], + dest: 'css/searxng.min.css', + nonull: true, + filter: file_exists, + }, + { + src: ['src/less/style-rtl.less'], + dest: 'css/searxng-rtl.min.css', + nonull: true, + filter: file_exists, + }, + ], + }, + }, + image: { + svg4web: { + options: { + svgo: ['--config', 'svg4web.svgo.js'] + }, + files: { + '<%= _templates %>/simple/searxng-wordmark.min.svg': '<%= _brand %>/searxng-wordmark.svg', + 'img/searxng.svg': '<%= _brand %>/searxng.svg', + 'img/img_load_error.svg': '<%= _brand %>/img_load_error.svg' + } + }, + favicon: { + options: { + svgo: ['--config', 'svg4favicon.svgo.js'] + }, + files: { + 'img/favicon.svg': '<%= _brand %>/searxng-wordmark.svg' + } + }, + }, + svg2png: { + favicon: { + files: { + 'img/favicon.png': '<%= _brand %>/searxng-wordmark.svg', + 'img/searxng.png': '<%= _brand %>/searxng.svg', + } + } + }, + svg2jinja: { + all: { + src: { + 'warning': 'node_modules/ionicons/dist/svg/alert-outline.svg', + 'close': 'node_modules/ionicons/dist/svg/close-outline.svg', + 'chevron-up-outline': 'node_modules/ionicons/dist/svg/chevron-up-outline.svg', + 'chevron-right': 'node_modules/ionicons/dist/svg/chevron-forward-outline.svg', + 'chevron-left': 'node_modules/ionicons/dist/svg/chevron-back-outline.svg', + 'menu-outline': 'node_modules/ionicons/dist/svg/settings-outline.svg', + 'ellipsis-vertical-outline': 'node_modules/ionicons/dist/svg/ellipsis-vertical-outline.svg', + 'magnet-outline': 'node_modules/ionicons/dist/svg/magnet-outline.svg', + 'globe-outline': 'node_modules/ionicons/dist/svg/globe-outline.svg', + 'search-outline': 'node_modules/ionicons/dist/svg/search-outline.svg', + 'image-outline': 'node_modules/ionicons/dist/svg/image-outline.svg', + 'play-outline': 'node_modules/ionicons/dist/svg/play-outline.svg', + 'newspaper-outline': 'node_modules/ionicons/dist/svg/newspaper-outline.svg', + 'location-outline': 'node_modules/ionicons/dist/svg/location-outline.svg', + 'musical-notes-outline': 'node_modules/ionicons/dist/svg/musical-notes-outline.svg', + 'layers-outline': 'node_modules/ionicons/dist/svg/layers-outline.svg', + 'school-outline': 'node_modules/ionicons/dist/svg/school-outline.svg', + 'file-tray-full-outline': 'node_modules/ionicons/dist/svg/file-tray-full-outline.svg', + 'people-outline': 'node_modules/ionicons/dist/svg/people-outline.svg', + 'heart-outline': 'node_modules/ionicons/dist/svg/heart-outline.svg', + 'information-circle-outline': 'src/svg/information-circle-outline.svg', + }, + dest: '../../../templates/simple/icons.html', + }, + }, + }); + + grunt.registerMultiTask('svg2jinja', 'Create Jinja2 macro', function () { + const ejs = require('ejs'), svgo = require('svgo'); + const icons = {} + for (const iconName in this.data.src) { + const svgFileName = this.data.src[iconName]; + try { + const svgContent = grunt.file.read(svgFileName, { encoding: 'utf8' }) + const svgoResult = svgo.optimize(svgContent, { + path: svgFileName, + multipass: true, + plugins: [ + { + name: "removeTitle", + }, + { + name: "removeXMLNS", + }, + { + name: "addAttributesToSVGElement", + params: { + attributes: [ + { "class": "ionicon", "aria-hidden": "true" } + ] + } + } + ] + }); + icons[iconName] = svgoResult.data.replace("'", "\\'"); + } catch (err) { + grunt.log.error(err); + } + } + const template = `{# this file was generated by searx/static/themes/simple/gruntfile.js #} +{%- set icons = { +<% for (const iconName in icons) { %> '<%- iconName %>':'<%- icons[iconName] %>', +<% } %> +} +-%} + +{% macro icon(action, alt) -%} + {{ icons[action] | replace("ionicon", "ion-icon") | safe }} +{%- endmacro %} + +{% macro icon_small(action) -%} + {{ icons[action] | replace("ionicon", "ion-icon-small") | safe }} +{%- endmacro %} + +{% macro icon_big(action, alt) -%} + {{ icons[action] | replace("ionicon", "ion-icon-big") | safe }} +{%- endmacro %} +`; + const result = ejs.render(template, { icons }); + grunt.file.write(this.data.dest, result, { encoding: 'utf8' }); + grunt.log.ok(this.data.dest + " created"); + }); + + grunt.registerMultiTask('svg2png', 'Convert SVG to PNG', function () { + const sharp = require('sharp'), done = this.async(); + eachAsync(this.files, async (file, _index, next) => { + try { + if (file.src.length != 1) { + next("this task supports only one source per destination"); + } + const info = await sharp(file.src[0]) + .png({ + force: true, + compressionLevel: 9, + palette: true, + }) + .toFile(file.dest); + grunt.log.ok(file.dest + ' created (' + info.size + ' bytes, ' + info.width + 'px * ' + info.height + 'px)'); + next(); + } catch (error) { + grunt.fatal(error); + next(error); + } + }, error => { + if (error) { + grunt.fatal(error); + done(error); + } else { + done(); + } + }); + }); + + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-image'); + grunt.loadNpmTasks('grunt-contrib-less'); + grunt.loadNpmTasks('grunt-contrib-cssmin'); + grunt.loadNpmTasks('grunt-stylelint'); + grunt.loadNpmTasks('grunt-eslint'); + + grunt.registerTask('test', ['eslint']); + + grunt.registerTask('default', [ + 'eslint', + 'stylelint', + 'copy', + 'uglify', + 'less', + 'image', + 'svg2png', + 'svg2jinja', + ]); +}; diff --git a/searx/static/themes/marlo/img/favicon.png b/searx/static/themes/marlo/img/favicon.png new file mode 100644 index 000000000..15fcd6fa1 Binary files /dev/null and b/searx/static/themes/marlo/img/favicon.png differ diff --git a/searx/static/themes/marlo/img/favicon.svg b/searx/static/themes/marlo/img/favicon.svg new file mode 100644 index 000000000..262414509 --- /dev/null +++ b/searx/static/themes/marlo/img/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/searx/static/themes/marlo/img/img_load_error.svg b/searx/static/themes/marlo/img/img_load_error.svg new file mode 100644 index 000000000..5e3a0d62b --- /dev/null +++ b/searx/static/themes/marlo/img/img_load_error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/searx/static/themes/marlo/img/searxng.png b/searx/static/themes/marlo/img/searxng.png new file mode 100644 index 000000000..f4c6f0b3f Binary files /dev/null and b/searx/static/themes/marlo/img/searxng.png differ diff --git a/searx/static/themes/marlo/img/searxng.svg b/searx/static/themes/marlo/img/searxng.svg new file mode 100644 index 000000000..a6736c2b7 --- /dev/null +++ b/searx/static/themes/marlo/img/searxng.svg @@ -0,0 +1,40 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + PonySearch + + \ No newline at end of file diff --git a/searx/static/themes/marlo/js/leaflet.js b/searx/static/themes/marlo/js/leaflet.js new file mode 100644 index 000000000..a3bf693d0 --- /dev/null +++ b/searx/static/themes/marlo/js/leaflet.js @@ -0,0 +1,6 @@ +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var e,i,n=1,o=arguments.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Ft=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,"click",O),this.expand(),this);setTimeout(function(){k(t,"click",O),e._preventClick=!1})}})),qe=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?"touchstart mousedown":"mousedown",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Vi("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Vi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=qi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=qi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1t.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:v,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function y(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function v(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";y(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(e,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img.image").forEach(e=>e.addEventListener("error",()=>{e.style.display="none";e.error=null}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");l.scrollPageToSelected()};l.closeDetail=function(e){a.getElementById("results").classList.remove("image-detail-open");l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});e.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,t,n){"use strict";var r="q",o;const i=window.matchMedia("only screen and (max-width: 50em)").matches;function s(){if(o.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function a(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("keyup",n,false)}n.ready(function(){o=t.getElementById(r);if(o!==null){a(o);if(n.settings.autocomplete_provider){n.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:n.settings.translations.no_item_found,HttpMethod:n.settings.http_method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:n.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+r)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!i&&document.querySelector(".index_endpoint")){o.focus()}}if(o!==null&&n.settings.search_on_category_select&&t.querySelector(".search_filters")!=null){n.on(t.getElementById("safesearch"),"change",s);n.on(t.getElementById("time_range"),"change",s);n.on(t.getElementById("language"),"change",s)}try{t.querySelector("html:has(body)")}catch(e){for(let e of t.querySelectorAll("button.category_button")){n.on(e,"click",()=>{const e=t.querySelector("button.category_button.selected");console.log(e);e.classList.remove("selected")})}}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;e=e.From&&n.keyCode<=e.To){s=!e.Not}else{s=e.Not}}}};for(var o in a.prototype.getEventsByType(e,t)){var i=a.merge({Operator:l.AND},e.KeyboardMappings[o]),s=l.AND==i.Operator;i.Conditions.forEach(r);if(s===true){i.Callback.call(e,n)}}};a.prototype.makeRequest=function(e,t,n){var r=Object.getOwnPropertyNames(e.HttpHeaders),o=new XMLHttpRequest,i=e._HttpMethod(),s=e._Url(),a=e._Pre(),l=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(a);if(i.match(/^GET$/i)){if(s.indexOf("?")!==-1){s+="&"+l}else{s+="?"+l}}o.open(i,s,true);for(var u=r.length-1;u>=0;u--){o.setRequestHeader(r[u],e.HttpHeaders[r[u]])}o.onreadystatechange=function(){if(o.readyState==4&&o.status==200){e.$Cache[a]=o.response;t(o.response)}else if(o.status>=400){n()}};return o};a.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(a.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(e._QueryArg()+"="+e._Pre())}};a.prototype.cache=function(e,t,n){var r=e._Cache(e._Pre());if(r===undefined){var o=a.prototype.makeRequest(e,t,n);a.prototype.ajax(e,o)}else{t(r)}};a.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};a.merge=function(){var e={},t;for(var n=0;n"+e+""}},HttpHeaders:{"Content-type":"application/x-www-form-urlencoded"},Limit:0,MinChars:0,HttpMethod:"GET",QueryArg:"q",Url:null,KeyboardMappings:{Enter:{Conditions:[{Is:13,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){e.preventDefault();this._Select(t);this.DOMResults.setAttribute("class","autocomplete")}}},Operator:l.AND,Event:i.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:l.OR,Event:i.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault();var t=this.DOMResults.querySelector("li:first-child:not(.locked)"),n=this.DOMResults.querySelector("li:last-child:not(.locked)"),r=this.DOMResults.querySelector("li.active");if(r){var o=Array.prototype.indexOf.call(r.parentNode.children,r),i=o+(e.keyCode-39),s=this.DOMResults.getElementsByTagName("li").length;if(i<0){i=s-1}else if(i>=s){i=0}r.classList.remove("active");r.parentElement.children.item(i).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:l.OR,Event:i.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:true},{From:35,To:40,Not:true}],Callback:function(){var e=this.Input.getAttribute("data-autocomplete-old-value"),t=this._Pre();if(t!==""&&t.length>=this._MinChars()){if(!e||t!=e){this.DOMResults.setAttribute("class","autocomplete open")}a.prototype.cache(this,function(e){this._Render(this._Post(e));this._Open()}.bind(this),this._Error)}else{this._Close()}},Operator:l.AND,Event:i.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){var e="";if(this.Input.hasAttribute("data-autocomplete-empty-message")){e=this.Input.getAttribute("data-autocomplete-empty-message")}else if(this.EmptyMessage!==false){e=this.EmptyMessage}else{e=""}return e},_Limit:function(){var e=this.Input.getAttribute("data-autocomplete-limit");if(isNaN(e)||e===null){return this.Limit}return parseInt(e,10)},_MinChars:function(){var e=this.Input.getAttribute("data-autocomplete-minchars");if(isNaN(e)||e===null){return this.MinChars}return parseInt(e,10)},_Highlight:function(e){return e.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){if(this.Input.hasAttribute("data-autocomplete-method")){return this.Input.getAttribute("data-autocomplete-method")}return this.HttpMethod},_QueryArg:function(){if(this.Input.hasAttribute("data-autocomplete-param-name")){return this.Input.getAttribute("data-autocomplete-param-name")}return this.QueryArg},_Url:function(){if(this.Input.hasAttribute("data-autocomplete")){return this.Input.getAttribute("data-autocomplete")}return this.Url},_Blur:function(e){if(e===void 0){e=false}if(e){this._Close()}else{var t=this;setTimeout(function(){t._Blur(true)},150)}},_Cache:function(e){return this.$Cache[e]},_Focus:function(){var e=this.Input.getAttribute("data-autocomplete-old-value");if((!e||this.Input.value!=e)&&this._MinChars()<=this.Input.value.length){this.DOMResults.setAttribute("class","autocomplete open")}},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onclick=function(){t._Select(e)}}})},_Close:function(){this.DOMResults.setAttribute("class","autocomplete")},_Position:function(){this.DOMResults.setAttribute("class","autocomplete");this.DOMResults.setAttribute("style","top:"+(this.Input.offsetTop+this.Input.offsetHeight)+"px;left:"+this.Input.offsetLeft+"px;width:"+this.Input.clientWidth+"px;")},_Render:function(e){var t;if(typeof e=="string"){t=this._RenderRaw(e)}else{t=this._RenderResponseItems(e)}if(this.DOMResults.hasChildNodes()){this.DOMResults.removeChild(this.DOMResults.childNodes[0])}this.DOMResults.appendChild(t)},_RenderResponseItems:function(e){var t=document.createElement("ul"),n=document.createElement("li"),r=this._Limit();if(r<0){e=e.reverse()}else if(r===0){r=e.length}for(var o=0;o0){this.DOMResults.innerHTML=e}else{var r=this._EmptyMessage();if(r!==""){n.innerHTML=r;n.setAttribute("class","locked");t.appendChild(n)}}return t},_Post:function(t){try{var e=[];var n=JSON.parse(t);if(Object.keys(n).length===0){return""}if(Array.isArray(n)){for(var r=0;r element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // togggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occour only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img.image').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n img.style.display = 'none';\n img.error = null;\n }\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.scrollPageToSelected();\n }\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false)\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('keyup', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete_provider) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.http_method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n // most common browsers at the time of writing this support :has, except for Firefox\n // can be removed when Firefox / Firefox ESL starts supporting it as well\n try {\n // this fails when the browser does not support :has\n d.querySelector(\"html:has(body)\");\n } catch (_) {\n // manually deselect the old selection when a new category is selected\n for (let button of d.querySelectorAll(\"button.category_button\")) {\n searxng.on(button, 'click', () => {\n const selected = d.querySelector(\"button.category_button.selected\");\n console.log(selected);\n selected.classList.remove(\"selected\");\n })\n }\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","style","display","error","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","qinput_id","qinput","isMobile","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete_provider","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","http_method","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","_","selected","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","name","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json"],"mappings":";;;;;GAMAA;OAAOC,QAAU,SAAWC,EAAGC,GAE7B,aAMA,GAAID,EAAEE,QAAS,EACb,SAAWC,GACTA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,uBACjBH,EAAiBI,mBACjB,SAAUC,GACR,IAAIC,EAAOC,KAAMC,GAASF,EAAKG,YAAcH,EAAKI,UAAUC,iBAAiBN,CAAQ,EAAGO,EAAI,CAAC,EAC7F,MAAOJ,EAAM,EAAEI,IAAMJ,EAAMI,IAAMN,GACjC,MAAO,CAAC,CAACE,EAAMI,EACjB,CACD,GAAEb,QAAQc,SAAS,CACtB,CAEA,SAASC,EAAcC,EAAUC,EAAIC,GACnC,IACEF,EAASG,KAAKF,EAAIC,CAAC,CAGrB,CAFE,MAAOE,GACPC,QAAQC,IAAIF,CAAS,CACvB,CACF,CAEA,IAAIvB,EAAUD,OAAOC,SAAW,GAEhCA,EAAQ0B,GAAK,SAAUC,EAAKC,EAAWT,EAAUU,GAC/CA,EAAaA,GAAc,MAC3B,GAAI,OAAOF,IAAQ,SAAU,CAE3BA,EAAIG,iBAAiBF,EAAWT,EAAUU,CAAU,CACtD,KAAO,CAEL3B,EAAE4B,iBAAiBF,EAAW,SAAUP,GACtC,IAAID,EAAKC,EAAEU,QAAUV,EAAEW,WAAYC,EAAQ,MAC3C,MAAOb,GAAMA,EAAGf,SAAWe,IAAOlB,GAAK,EAAE+B,EAAQb,EAAGf,QAAQsB,CAAG,GAAIP,EAAKA,EAAGc,cAC3E,GAAID,EAAOf,EAAaC,EAAUC,EAAIC,CAAC,CACzC,EAAGQ,CAAU,CACf,CACF,EAEA7B,EAAQmC,MAAQ,SAAUhB,GACxB,GAAIL,SAASsB,YAAc,UAAW,CACpCjB,EAASG,KAAKrB,CAAC,CACjB,KAAO,CACLA,EAAE6B,iBAAiB,mBAAoBX,EAASkB,KAAKpC,CAAC,CAAC,CACzD,CACF,EAEAD,EAAQsC,KAAO,SAAUC,EAAQC,EAAKC,EAAO,MAC3C,OAAO,IAAIC,QAAQ,SAAUC,EAASC,GACpC,IACE,IAAIC,EAAM,IAAIC,eACdD,EAAIE,KAAKR,EAAQC,EAAK,IAAI,EAC1BK,EAAIG,QAAU,IAGdH,EAAII,OAAS,WACX,GAAIJ,EAAIK,QAAU,IAAK,CACrBP,EAAQE,EAAIM,SAAUN,EAAIO,YAAY,CACxC,KAAO,CACLR,EAAOS,MAAMR,EAAIS,UAAU,CAAC,CAC9B,CACF,EAGAT,EAAIU,QAAU,WACZX,EAAOS,MAAM,eAAe,CAAC,CAC/B,EAEAR,EAAIW,QAAU,WACZZ,EAAOS,MAAM,wBAAwB,CAAC,CACxC,EAEAR,EAAIY,UAAY,WACdb,EAAOS,MAAM,SAAS,CAAC,CACzB,EAGA,GAAIZ,EAAM,CACRI,EAAIa,KAAKjB,CAAI,CACf,KAAO,CACLI,EAAIa,KAAK,CACX,CAGF,CAFE,MAAOC,GACPf,EAAOe,CAAE,CACX,CACF,CAAC,CACH,EAEA3D,EAAQ4D,UAAY,SAAUC,GAC5B,IAAIC,EAAO9D,EAAQ+D,SAASC,kBAAoB,IAAMH,EACpDI,EAAK,SAAWJ,EAAIK,QAAQ,IAAK,GAAG,EACpCC,EAAIjE,EAAEkE,eAAeH,CAAE,EACzB,GAAIE,IAAM,KAAM,CACdA,EAAIjE,EAAEmE,cAAc,MAAM,EAC1BF,EAAEG,aAAa,KAAML,CAAE,EACvBE,EAAEG,aAAa,MAAO,YAAY,EAClCH,EAAEG,aAAa,OAAQ,UAAU,EACjCH,EAAEG,aAAa,OAAQR,CAAI,EAC3B5D,EAAEqE,KAAKC,YAAYL,CAAC,CACtB,CACF,EAEAnE,EAAQyE,WAAa,SAAUZ,EAAK1C,GAClC,IAAI2C,EAAO9D,EAAQ+D,SAASC,kBAAoB,IAAMH,EACpDI,EAAK,UAAYJ,EAAIK,QAAQ,IAAK,GAAG,EACrCC,EAAIjE,EAAEkE,eAAeH,CAAE,EACzB,GAAIE,IAAM,KAAM,CACdA,EAAIjE,EAAEmE,cAAc,QAAQ,EAC5BF,EAAEG,aAAa,KAAML,CAAE,EACvBE,EAAEG,aAAa,MAAOR,CAAI,EAC1BK,EAAElB,OAAS9B,EACXgD,EAAEZ,QAAU,WACVY,EAAEG,aAAa,QAAS,GAAG,CAC7B,EACApE,EAAEqE,KAAKC,YAAYL,CAAC,CACtB,MAAO,GAAI,CAACA,EAAEO,aAAa,OAAO,EAAG,CACnC,IACEvD,EAASwD,MAAMR,EAAG,EAAE,CAGtB,CAFE,MAAO5C,GACPC,QAAQC,IAAIF,CAAS,CACvB,CACF,KAAO,CACLC,QAAQC,IAAI,mCAAqCqC,EAAO,eAAe,CACzE,CACF,EAEA9D,EAAQ4E,aAAe,SAAUC,EAASC,GACxCA,EAAcjE,WAAW+D,aAAaC,EAASC,CAAa,CAC9D,EAEA9E,EAAQ+E,YAAc,SAAUF,EAASC,GACvCA,EAAcjE,WAAWkE,YAAYF,EAASC,EAAcE,WAAW,CACzE,EAEAhF,EAAQ0B,GAAG,SAAU,QAAS,WAC5Bf,KAAKE,WAAWoE,UAAUC,IAAI,WAAW,CAC3C,CAAC,EAED,SAASC,IACP,IAAK,IAAIC,KAAalF,EAAEmF,qBAAqB,MAAM,EAAE,GAAGJ,UAAUK,OAAO,EAAG,CAC1E,GAAIF,EAAUG,SAAS,WAAW,EAAG,CACnC,OAAOH,EAAUI,MAAM,GAAG,EAAE,EAC9B,CACF,CACA,MAAO,EACT,CAEAxF,EAAQyF,SAAWN,EAAY,EAE/B,OAAOnF,CACR,EAAED,OAAQe,QAAQ,EChKnBd,QAAQmC,MAAM,WACZ,aAEAnC,QAAQ0F,0BACN,yBAA0B3F,QAC1B,8BAA+BA,QAC/B,sBAAuBA,OAAO4F,0BAA0B1E,UAE1D,GAAIjB,QAAQyF,WAAa,UAAW,CAClC,MACF,CAEA,GAAI,CAACzF,QAAQ0F,0BAA2B,CACtClE,QAAQC,IAAI,oCAAoC,EAChD,MACF,CAEAmE,IAAI1F,EAAIY,SACR,IAAI+E,EAAa3F,EAAEkE,eAAe,SAAS,EAAEa,UAAUa,SAAS,sBAAsB,EAEtF,SAASC,IACP,IAAIC,EAAS9F,EAAEmE,cAAc,KAAK,EAClC2B,EAAOf,UAAUC,IAAI,QAAQ,EAC7B,OAAOc,CACT,CAEA,SAASC,EAAqBC,EAASC,GACrCD,EAAQE,YAAc,GACtBD,EAASE,QAAQC,GAASJ,EAAQ1B,YAAY8B,CAAK,CAAC,CACtD,CAEA,SAASC,EAAcpF,GACrB,IAAIqF,EAAOtG,EAAEuG,cAAc,4BAA4B,EACvD,GAAI,CAACD,EAAM,CACT,MACF,CACAP,EAAoB/F,EAAEuG,cAAc,aAAa,EAAG,CAAEV,EAAe,EAAG,EACxE,IAAIW,EAAW,IAAIC,SAASH,CAAI,EAChCxG,QAAQsC,KAAK,OAAQpC,EAAEuG,cAAc,SAAS,EAAEG,aAAa,QAAQ,EAAGF,CAAQ,EAAEG,KAChF,SAAU1D,GACR,IAAI2D,GAAc,IAAIC,WAAYC,gBAAgB7D,EAAU,WAAW,EACvE,IAAI8D,EAAcH,EAAY/F,iBAAiB,eAAe,EAC9D,IAAImG,EAAoBJ,EAAYL,cAAc,aAAa,EAC/DvG,EAAEuG,cAAc,aAAa,EAAEU,OAAO,EACtC,GAAIF,EAAYG,OAAS,GAAK,CAACvB,EAAY,CAEzC3F,EAAEuG,cAAc,OAAO,EAAEjC,YAAYtE,EAAEmE,cAAc,IAAI,CAAC,CAC5D,CACA4C,EAAYZ,QAAQgB,IAClBnH,EAAEuG,cAAc,OAAO,EAAEjC,YAAY6C,CAAc,CACrD,CAAC,EACD,GAAIH,EAAmB,CACrBhH,EAAEuG,cAAc,UAAU,EAAEjC,YAAY0C,CAAiB,EACzD/F,EAAS,CACX,CACF,CACF,EAAEmG,MACA,SAAUC,GACR/F,QAAQC,IAAI8F,CAAG,EACf,IAAIlG,EAAInB,EAAEmE,cAAc,KAAK,EAC7BhD,EAAE+E,YAAcpG,QAAQ+D,SAASyD,aAAaC,wBAC9CpG,EAAE4D,UAAUC,IAAI,cAAc,EAC9B7D,EAAEiD,aAAa,OAAQ,OAAO,EAC9B2B,EAAoB/F,EAAEuG,cAAc,aAAa,EAAG,CAAEpF,EAAG,CAC3D,CACF,CACF,CAEA,GAAIrB,QAAQ+D,SAAS2D,iBAAmB1H,QAAQ0F,0BAA2B,CACzE,MAAMiC,EAA6B,CACjCC,WAAY,OACd,EACA,MAAMC,EAAmB,4BACzB,MAAMC,EAAW,IAAIC,qBAAqBC,IACxC,MAAMC,EAAkBD,EAAQ,GAChC,GAAIC,EAAgBC,eAAgB,CAClCJ,EAASK,UAAUF,EAAgBlG,MAAM,EACzCwE,EAAa,IAAMuB,EAASM,QAAQlI,EAAEuG,cAAcoB,CAAgB,EAAGF,CAA0B,CAAC,CACpG,CACF,CAAC,EACDG,EAASM,QAAQlI,EAAEuG,cAAcoB,CAAgB,EAAGF,CAA0B,CAChF,CAEF,CAAC,ECpFD3H,QAAQmC,MAAM,WAEZ,SAASkG,EAAmBjH,GAC1B,MAAOA,IAAOkH,UAAW,CACvB,GAAIlH,EAAG6D,UAAUa,SAAS,QAAQ,EAAG,CACnC,OAAO,IACT,CACA,GAAI1E,EAAG6D,UAAUa,SAAS,QAAQ,EAAG,CAGnC,OAAO,KACT,CACA1E,EAAKA,EAAGP,UACV,CACA,OAAO,KACT,CAEA,SAAS0H,EAAkBnH,GACzB,MAAOA,IAAOkH,UAAW,CACvB,GAAIlH,EAAG6D,UAAUa,SAAS,QAAQ,EAAG,CACnC,OAAO1E,CACT,CACAA,EAAKA,EAAGP,UACV,CACA,OAAOyH,SACT,CAEA,SAASE,EAAeC,GACtB,OAAOA,GAAiBA,EAAcxD,UAAUa,SAAS,eAAe,CAC1E,CAEA9F,QAAQ0B,GAAG,UAAW,QAAS,SAAUL,GACvC,GAAI,CAACgH,EAAkBhH,EAAEU,MAAM,EAAG,CAChC2G,EAAgB/H,IAAI,EAAE,KAAM,IAAI,EAChCiF,IAAI6C,EAAgBF,EAAiBlH,EAAEU,MAAM,EAC7C,GAAIyG,EAAcC,CAAa,EAAG,CAChCpH,EAAEsH,eAAe,EACjB3I,QAAQ4I,YAAYH,CAAa,CACnC,CACF,CACF,CAAC,EAEDzI,QAAQ0B,GAAG,YAAa,QAAS,SAAUL,GACzC,GAAI,CAACgH,EAAkBhH,EAAEU,MAAM,EAAG,CAChC6D,IAAI6C,EAAgBF,EAAiBlH,EAAEU,MAAM,EAC7C,GAAI0G,GAAiBA,EAAc7B,aAAa,mBAAmB,IAAM,KAAM,CAC7E8B,EAAgBD,CAAa,EAAE,IAAI,CACrC,CACA,GAAID,EAAcC,CAAa,EAAG,CAChCzI,QAAQ4I,YAAYH,CAAa,CACnC,CACF,CACF,EAAG,IAAI,EAGP,IAAII,EAAiB,CACnBC,OAAU,CACRC,IAAK,MACLC,IAAKC,EACLC,IAAK,sCACLC,IAAK,SACP,EACAC,EAAK,CACHL,IAAK,IACLC,IAAKK,EACLH,IAAK,mDACLC,IAAK,SACP,EACAG,EAAK,CACHP,IAAK,IACLC,IAAKO,EACLL,IAAK,qBACLC,IAAK,OACP,EACAnI,EAAK,CACH+H,IAAK,IACLC,IAAKQ,EACLN,IAAK,4BACLC,IAAK,SACP,EACAM,EAAK,CACHV,IAAK,IACLC,IAAKU,EAAa,EAClBR,IAAK,kBACLC,IAAK,SACP,EACAQ,EAAK,CACHZ,IAAK,IACLC,IAAKY,EAAW,KAAK,EACrBV,IAAK,qBACLC,IAAK,SACP,EACAU,EAAK,CACHd,IAAK,IACLC,IAAKc,EAAiB,EACtBZ,IAAK,sBACLC,IAAK,SACP,EACAY,EAAK,CACHhB,IAAK,IACLC,IAAKgB,EACLd,IAAK,8BACLC,IAAK,SACP,EACAc,EAAK,CACHlB,IAAK,IACLC,IAAKY,EAAW,IAAI,EACpBV,IAAK,+BACLC,IAAK,SACP,CACF,EACA,IAAIe,EAAoB,CAEtBC,QAAWC,OAAOC,OAChB,CACEC,UAAa,CACXvB,IAAK,IACLC,IAAKN,EAAgB,IAAI,EACzBQ,IAAK,gCACLC,IAAK,SACP,EACAoB,WAAc,CACZxB,IAAK,IACLC,IAAKN,EAAgB,MAAM,EAC3BQ,IAAK,4BACLC,IAAK,SACP,CACF,EAAGN,CAAc,EAEnB2B,IAAOJ,OAAOC,OACZ,CACEI,EAAK,CACH1B,IAAK,IACLC,IAAK0B,EAAW,CAAC3K,OAAO4K,WAAW,EACnCzB,IAAK,qBACLC,IAAK,YACP,EACAyB,EAAK,CACH7B,IAAK,IACLC,IAAK0B,EAAW3K,OAAO4K,WAAW,EAClCzB,IAAK,uBACLC,IAAK,YACP,EACA0B,EAAK,CACH9B,IAAK,IACLC,IAAK0B,EAAW,CAAC3K,OAAO4K,YAAc,CAAC,EACvCzB,IAAK,wBACLC,IAAK,YACP,EACAjJ,EAAK,CACH6I,IAAK,IACLC,IAAK0B,EAAW3K,OAAO4K,YAAc,CAAC,EACtCzB,IAAK,0BACLC,IAAK,YACP,EACA2B,EAAK,CACH/B,IAAK,IACLC,IAAK+B,EAAa,CAACjK,SAASyD,KAAKyG,aAAc,KAAK,EACpD9B,IAAK,gCACLC,IAAK,YACP,EACA8B,EAAK,CACHlC,IAAK,IACLC,IAAK+B,EAAajK,SAASyD,KAAKyG,aAAc,QAAQ,EACtD9B,IAAK,mCACLC,IAAK,YACP,EACA+B,EAAK,CACHnC,IAAK,IACLC,IAAKN,EAAgB,IAAI,EACzBQ,IAAK,gCACLC,IAAK,SACP,EACAgC,EAAK,CACHpC,IAAK,IACLC,IAAKN,EAAgB,MAAM,EAC3BQ,IAAK,4BACLC,IAAK,SACP,EACAiC,EAAK,CACHrC,IAAK,IACLC,IAAKK,EACLH,IAAK,mDACLC,IAAK,SACP,CACF,EAAGN,CAAc,CACrB,EAEA,IAAIwC,EAAcnB,EAAkBlK,QAAQ+D,SAASuH,UAAYpB,EAAkBC,QAEnFnK,QAAQ0B,GAAGZ,SAAU,UAAW,SAAUO,GAExC,GACE+I,OAAOnJ,UAAUsK,eAAejK,KAAK+J,EAAahK,EAAE0H,GAAG,GAClD,CAAC1H,EAAEmK,SAAW,CAACnK,EAAEoK,QACjB,CAACpK,EAAEqK,UAAY,CAACrK,EAAEsK,QACvB,CACA,IAAIC,EAAUvK,EAAEU,OAAO6J,QAAQC,YAAY,EAC3C,GAAIxK,EAAE0H,MAAQ,SAAU,CACtBsC,EAAYhK,EAAE0H,KAAKC,IAAI3H,CAAC,CAC1B,KAAO,CACL,GAAIA,EAAEU,SAAWjB,SAASyD,MAAQqH,IAAY,KAAOA,IAAY,SAAU,CACzEvK,EAAEsH,eAAe,EACjB0C,EAAYhK,EAAE0H,KAAKC,IAAI,CACzB,CACF,CACF,CACF,CAAC,EAED,SAASN,EAAiBoD,GACxB,OAAO,SAAUC,EAAUC,GACzB,IAAIC,EAAUnL,SAAS2F,cAAc,4BAA4B,EAC/DyF,EAAiBJ,EACnB,GAAIG,IAAY,KAAM,CAEpBA,EAAUnL,SAAS2F,cAAc,SAAS,EAC1C,GAAIwF,IAAY,KAAM,CAEpB,MACF,CAEA,GAAIH,IAAU,QAAUA,IAAU,KAAM,CACtCI,EAAiBD,CACnB,CACF,CAEA,IAAIE,EAAMC,EAAUtL,SAASC,iBAAiB,SAAS,EACvDqL,EAAUC,MAAMC,KAAKF,CAAO,EAE5B,GAAI,OAAOF,IAAmB,SAAU,CACtCC,EAAOD,CACT,KAAO,CACL,OAAQA,GACR,IAAK,UACH,IAAIK,EAAMzL,SAAS0L,gBAAgBC,WAAa3L,SAASyD,KAAKkI,UAC9D,IAAIC,EAAMH,EAAMzL,SAAS0L,gBAAgBG,aAEzC,IAAK,IAAI3L,EAAI,EAAGA,EAAIoL,EAAQhF,OAAQpG,CAAC,GAAI,CACvCmL,EAAOC,EAAQpL,GACf,IAAI4L,EAAOT,EAAKU,UAChB,IAAIC,EAAOF,EAAOT,EAAKQ,aAEvB,GAAKG,GAAQJ,GAASE,EAAOL,EAAM,CACjC,KACF,CACF,CACA,MACF,IAAK,OACHJ,EAAOC,EAAQA,EAAQW,QAAQd,CAAO,EAAI,IAAMA,EAChD,MACF,IAAK,KACHE,EAAOC,EAAQA,EAAQW,QAAQd,CAAO,EAAI,IAAMA,EAChD,MACF,IAAK,SACHE,EAAOC,EAAQA,EAAQhF,OAAS,GAChC,MACF,IAAK,MAEL,QACE+E,EAAOC,EAAQ,EACjB,CACF,CAEA,GAAID,EAAM,CACRF,EAAQe,gBAAgB,mBAAmB,EAC3Cb,EAAK7H,aAAa,oBAAqB,MAAM,EAC7C,GAAI,CAAC0H,EAAW,CACd,IAAIiB,EAAOd,EAAK1F,cAAc,MAAM,GAAK0F,EAAK1F,cAAc,GAAG,EAC/D,GAAIwG,IAAS,KAAM,CACjBA,EAAKC,MAAM,CACb,CACF,CACA,GAAI,CAACnB,EAAU,CACboB,EAAqB,CACvB,CACF,CACF,CACF,CAEA,SAASnD,IACPlJ,SAASsM,SAASC,OAAO,IAAI,CAC/B,CAEA,SAASpE,EAAa5H,GACpB,MAAMuK,EAAUvK,EAAEU,OAAO6J,QAAQC,YAAY,EAC7C,GAAI/K,SAASwM,gBAAkB1B,IAAY,SAAWA,IAAY,UAAYA,IAAY,YAAa,CACrG9K,SAASwM,cAAcC,KAAK,CAC9B,KAAO,CACLvN,QAAQwN,YAAY,CACtB,CACF,CAEA,SAASC,EAAiBC,GACxB,OAAO,WACL,IAAIC,EAAS7M,SAAS2F,cAAciH,CAAY,EAChD,GAAIC,EAAQ,CACVA,EAAOC,MAAM,CACf,CACF,CACF,CAEA,SAASlE,IACP,OAAO+D,EAAgB,iDAAiD,CAC1E,CAEA,SAAS3D,IACP,OAAO2D,EAAgB,qDAAqD,CAC9E,CAEA,SAASN,IACP,IAAIU,EAAM/M,SAAS2F,cAAc,4BAA4B,EAC7D,GAAIoH,IAAQ,KAAM,CAChB,MACF,CACA,IAAIC,EAAOhN,SAAS0L,gBAAgBC,WAAa3L,SAASyD,KAAKkI,UAC7DsB,EAAUjN,SAAS0L,gBAAgBG,aACnCC,EAAOiB,EAAIhB,UACXC,EAAOF,EAAOiB,EAAIlB,aAClBqB,EAAS,IAEX,GAAKH,EAAII,yBAA2B,MAAUnB,EAAOiB,EAAU,CAG7DhO,OAAOmO,OAAOnO,OAAOoO,QAAS,CAAC,EAC/B,MACF,CACA,GAAIL,EAAQlB,EAAOoB,EAAS,CAC1BjO,OAAOmO,OAAOnO,OAAOoO,QAASvB,EAAOoB,CAAM,CAC7C,KAAO,CACL,IAAII,EAAON,EAAOC,EAClB,GAAIK,EAAQtB,EAAOkB,EAAS,CAC1BjO,OAAOmO,OAAOnO,OAAOoO,QAASrB,EAAOiB,EAAUC,CAAM,CACvD,CACF,CACF,CAEA,SAAStD,EAAY2D,GACnB,OAAO,WACLtO,OAAOuO,SAAS,EAAGD,CAAM,EACzB3F,EAAgB,SAAS,EAAE,CAC7B,CACF,CAEA,SAASqC,EAAcwD,EAAUC,GAC/B,OAAO,WACLzO,OAAO0O,SAAS,EAAGF,CAAQ,EAC3B7F,EAAgB8F,CAAG,EAAE,CACvB,CACF,CAEA,SAAShF,IACPzJ,OAAO0O,SAAS,EAAG,CAAC,EACpB,IAAIC,EAAI5N,SAAS2F,cAAc,IAAI,EACnCiI,EAAExB,MAAM,EACR,GAAIwB,EAAEC,kBAAmB,CACvB,IAAIC,EAAMF,EAAEG,MAAMzH,OAClBsH,EAAEC,kBAAkBC,EAAKA,CAAG,CAC9B,CACF,CAEA,SAAShF,EAAYkF,GACnB,OAAO,WACL,IAAI7B,EAAOnM,SAAS2F,cAAc,iCAAiC,EACnE,GAAIwG,IAAS,KAAM,CACjBA,EAAOnM,SAAS2F,cAAc,gCAAgC,CAChE,CACA,GAAIwG,IAAS,KAAM,CACjB,IAAIzK,EAAMyK,EAAKrG,aAAa,MAAM,EAClC,GAAIkI,EAAQ,CACV/O,OAAOgD,KAAKP,CAAG,CACjB,KAAO,CACLzC,OAAOqN,SAAS2B,KAAOvM,CACzB,CACF,CACF,CACF,CAEA,SAASwM,EAAiBC,GACxB,IAAIC,EAAa,GAEjB,IAAK,IAAIhE,KAAKG,EAAa,CACzB,IAAItC,EAAMsC,EAAYH,GACtBgE,EAAWnG,EAAII,KAAO+F,EAAWnG,EAAII,MAAQ,GAC7C+F,EAAWnG,EAAII,KAAKgG,KAAKpG,CAAG,CAC9B,CAEA,IAAIqG,EAAShF,OAAOiF,KAAKH,CAAU,EAAEI,KAAK,SAAUC,EAAG9E,GACrD,OAAOyE,EAAWzE,GAAGrD,OAAS8H,EAAWK,GAAGnI,MAC9C,CAAC,EAED,GAAIgI,EAAOhI,SAAW,EAAG,CACvB,MACF,CAEA,IAAIoI,EAAO,mEACXA,GAAQ,gDACRA,GAAQ,UAER,IAAK,IAAIxO,EAAI,EAAGA,EAAIoO,EAAOhI,OAAQpG,CAAC,GAAI,CACtC,IAAImI,EAAM+F,EAAWE,EAAOpO,IAE5B,IAAIyO,EAAezO,IAAOoO,EAAOhI,OAAS,EAC1C,IAAIsI,EAAQ1O,EAAI,IAAM,EAEtB,GAAI0O,EAAO,CACTF,GAAQ,MACV,CACAA,GAAQ,OAERA,GAAQ,OAASrG,EAAI,GAAGA,IAAM,QAC9BqG,GAAQ,6BAER,IAAK,IAAIG,KAAMxG,EAAK,CAClBqG,GAAQ,YAAcrG,EAAIwG,GAAI5G,IAAM,UAAYI,EAAIwG,GAAIzG,IAAM,OAChE,CAEAsG,GAAQ,QACRA,GAAQ,QAER,GAAI,CAACE,GAASD,EAAc,CAC1BD,GAAQ,OACV,CACF,CAEAA,GAAQ,WAERP,EAAWW,UAAYJ,CACzB,CAEA,SAASjG,IACP,IAAIsG,EAAY/O,SAAS2F,cAAc,mBAAmB,EAC1D,GAAIoJ,IAAcvH,WAAauH,IAAc,KAAM,CAEjDA,EAAY/O,SAASuD,cAAc,KAAK,EACxCwL,EAAU5L,GAAK,mBACf4L,EAAUzK,UAAY,eACtB4J,EAAgBa,CAAS,EACzB,IAAItL,EAAOzD,SAASuE,qBAAqB,MAAM,EAAE,GACjDd,EAAKC,YAAYqL,CAAS,CAC5B,KAAO,CAELA,EAAU5K,UAAU6K,OAAO,WAAW,EACtC,MACF,CACF,CAEA,SAASzG,IACP,IAAI0G,EAAoBjP,SAAS2F,cAAc,iCAAiC,EAChF,GAAIsJ,IAAsB,KAAM,OAEhC,MAAMvN,EAAMuN,EAAkBnJ,aAAa,MAAM,EACjDoJ,UAAUC,UAAUC,UAAU1N,CAAG,CACnC,CAEAxC,QAAQmN,qBAAuBA,EAC/BnN,QAAQmQ,WAAazH,EAAgB,MAAM,EAC3C1I,QAAQoQ,eAAiB1H,EAAgB,IAAI,CAC/C,CAAC,GC1cD,SAAWzI,EAAGC,EAAGF,GACf,aAEAA,EAAQmC,MAAM,WACZnC,EAAQ0B,GAAG,oBAAqB,QAAS,SAAU2O,GAEjD1P,KAAKsE,UAAUkC,OAAO,kBAAkB,EAGxC,IAAImJ,EAAiB3P,KAAK4P,QAAQC,cAClC,IAAIC,EAAUC,WAAW/P,KAAK4P,QAAQI,MAAM,EAC5C,IAAIC,EAAUF,WAAW/P,KAAK4P,QAAQM,MAAM,EAC5C,IAAIC,EAAWJ,WAAW/P,KAAK4P,QAAQQ,OAAO,EAC9C,IAAIC,EAAkBC,KAAKC,MAAMvQ,KAAK4P,QAAQY,cAAc,EAC5D,IAAIC,EAAcH,KAAKC,MAAMvQ,KAAK4P,QAAQc,UAAU,EAEpDrR,EAAQ4D,UAAU,iBAAiB,EACnC5D,EAAQyE,WAAW,gBAAiB,WAClC,IAAI6M,EAAa,KACjB,GAAIN,EAAiB,CACnB,IAAIO,EAAYC,EAAEC,OAAOT,EAAgB,GAAIA,EAAgB,EAAE,EAC/D,IAAIU,EAAYF,EAAEC,OAAOT,EAAgB,GAAIA,EAAgB,EAAE,EAC/DM,EAAaE,EAAEG,aAAaJ,EAAWG,CAAS,CAClD,CAGA,IAAIE,EAAMJ,EAAEI,IAAItB,CAAc,EAE9B,IAAIuB,EAAe,qDACnB,IAAIC,EAAkB,gFACtB,IAAIC,EAAY,IAAIP,EAAEQ,UAAUH,EAAc,CAACI,QAAS,EAAGC,QAAS,GAAIC,YAAaL,CAAe,CAAC,EACrG,IAAIM,EAAkB,sDACtB,IAAIC,EAAqB,kGACzB,IAAIC,EAAe,IAAId,EAAEQ,UAAUI,EAAiB,CAACH,QAAS,EAAGC,QAAS,GAAIC,YAAaE,CAAkB,CAAC,EAE9G,GAAIf,EAAY,CAGdiB,WAAW,WACTX,EAAIY,UAAUlB,EAAY,CACxBY,QAAS,EACX,CAAC,CACH,EAAG,CAAC,CACN,MAAO,GAAIzB,GAAWG,EAAS,CAC7B,GAAIE,EAAU,CACZc,EAAIa,QAAQ,IAAIjB,EAAEC,OAAOb,EAASH,CAAO,EAAGK,CAAQ,CACtD,KAAO,CACLc,EAAIa,QAAQ,IAAIjB,EAAEC,OAAOb,EAASH,CAAO,EAAG,CAAC,CAC/C,CACF,CAEAmB,EAAIc,SAASX,CAAS,EAEtB,IAAIY,EAAa,CACfC,aAAcb,EACdc,gBAAiBP,CACnB,EAEAd,EAAEsB,QAAQC,OAAOJ,CAAU,EAAEK,MAAMpB,CAAG,EAEtC,GAAIR,EAAa,CACfI,EAAEyB,QAAQ7B,CAAW,EAAE4B,MAAMpB,CAAG,CAClC,CAGF,CAAC,EAGDvB,EAAM1H,eAAe,CACvB,CAAC,CACH,CAAC,CACF,GAAE5I,OAAQe,SAAUf,OAAOC,OAAO,GCxEnC,SAAWC,EAAGC,EAAGF,GACf,aAEA,GAAIA,EAAQyF,WAAa,cAAe,CACtC,MACF,CAEAzF,EAAQmC,MAAM,WACZyD,IAAIsN,EAAsB,KAC1B,SAASC,IACP,GAAID,GAAuB,KAAM,CAC/BlT,EAAQsC,KAAK,MAAO,0BAA0B,EAAEuE,KAAK,SAAUuM,GAC7DF,EAAsBjC,KAAKC,MAAMkC,CAAO,EACxC,IAAK,KAAM,CAACC,EAAaC,KAAgBlJ,OAAOpC,QAAQkL,CAAmB,EAAG,CAC5EtN,IAAI2N,EAAWrT,EAAEa,iBAAiB,sBAAwBsS,EAAc,wBAAwB,EAChG,IAAK,MAAMnN,KAAWqN,EAAU,CAC9B3N,IAAI4N,EAAS,QAAUxT,EAAQ+D,SAASyD,aAAaiM,OAAS,UAAYH,EAAY,GAAK,QAC3FpN,EAAQ0J,UAAY0D,EAAY,GAAKE,CACvC,CACF,CACF,CAAC,CACH,CACF,CAEA,IAAK,MAAMpS,KAAMlB,EAAEa,iBAAiB,oBAAoB,EAAG,CACzDf,EAAQ0B,GAAGN,EAAI,aAAc+R,CAAwB,CACvD,CAEA,MAAMO,EAAmBxT,EAAEa,iBAAiB,qBAAqB,EACjE,MAAM4S,EAAoBzT,EAAEa,iBAAiB,sBAAsB,EACnE,MAAM6S,EAAgB1T,EAAEa,iBAAiB,mDAAmD,EAC5F,MAAM8S,EAAgB,IACpB,IAAK,MAAMzS,KAAMwS,EAAe,CAE9B,GAAIxS,EAAG0S,eAAiB,KAAM1S,EAAG2S,QAAU,CAACC,CAC9C,CACF,EACA,IAAK,MAAM5S,KAAMsS,EAAkB,CACjC1T,EAAQ0B,GAAGN,EAAI,QAAS,IAAMyS,EAAc,IAAI,CAAC,CACnD,CACA,IAAK,MAAMzS,KAAMuS,EAAmB,CAClC3T,EAAQ0B,GAAGN,EAAI,QAAS,IAAMyS,EAAc,KAAK,CAAC,CACpD,CAEA,MAAMI,EAAiB/T,EAAEuG,cAAc,YAAY,EACnDzG,EAAQ0B,GAAGuS,EAAgB,QAAS,IAClC5S,EAAEsH,eAAe,EACjBqH,UAAUC,UAAUC,UAAU+D,EAAe1D,QAAQ2D,IAAI,EACzDD,EAAeE,UAAYF,EAAe1D,QAAQ6D,UACpD,CAAC,CACH,CAAC,CACF,GAAErU,OAAQe,SAAUf,OAAOC,OAAO,GCnDnC,SAAWC,EAAGC,EAAGF,GACf,aAEA,GAAIA,EAAQyF,WAAa,UAAW,CAClC,MACF,CAEAzF,EAAQmC,MAAM,WACZjC,EAAEa,iBAAiB,iBAAiB,EAAEsF,QACpCgO,GACEA,EAAIvS,iBACF,QAAS,KACPuS,EAAIC,MAAMC,QAAU,OACpBF,EAAIG,MAAQ,IACd,CACF,CAAC,EAEL,GAAItU,EAAEuG,cAAc,6BAA6B,EAAG,CAClDvG,EAAEuG,cAAc,6BAA6B,EAAE6N,MAAMC,QAAU,OACjE,CAEAvU,EAAQ0B,GAAG,gBAAiB,QAAS,WACnC,IAAI+S,EAAoB9T,KAAKiG,aAAa,yBAAyB,EACnE,IAAI8N,EAAuB/T,KAAKiG,aAAa,6BAA6B,EAC1E,IAAI7E,EAASpB,KAAKiG,aAAa,aAAa,EAC5C,IAAI+N,EAAgBzU,EAAEuG,cAAc1E,CAAM,EAC1C,IAAIyN,EAAO7O,KAAKiP,UAChB,GAAIjP,KAAKsE,UAAUa,SAAS,WAAW,EAAG,CACxC0J,EAAOA,EAAKtL,QAAQuQ,EAAmBC,CAAoB,CAC7D,KAAO,CACLlF,EAAOA,EAAKtL,QAAQwQ,EAAsBD,CAAiB,CAC7D,CACA9T,KAAKiP,UAAYJ,EACjB7O,KAAKsE,UAAU6K,OAAO,WAAW,EACjC6E,EAAc1P,UAAU6K,OAAO,WAAW,CAC5C,CAAC,EAED9P,EAAQ0B,GAAG,gBAAiB,QAAS,WACnC,IAAIK,EAASpB,KAAKiG,aAAa,aAAa,EAC5C,IAAIgO,EAAc1U,EAAEuG,cAAc1E,EAAS,WAAW,EACtD,IAAI8S,EAAUD,EAAYhO,aAAa,KAAK,EAC5C,GAAIiO,IAAY,MAAQA,IAAYvM,WAAauM,IAAY,MAAO,CAClED,EAAYtQ,aAAa,MAAOsQ,EAAYhO,aAAa,UAAU,CAAC,CACtE,CACF,CAAC,EAED5G,EAAQ0B,GAAG,YAAa,QAAS,WAC/B,IAAIK,EAASpB,KAAKuB,cAAcuE,cAAc,KAAK,EACnDuJ,UAAUC,UAAUC,UAAUnO,EAAOoS,SAAS,EAC9CxT,KAAKwT,UAAYxT,KAAK4P,QAAQ6D,UAChC,CAAC,EAEDpU,EAAQ4I,YAAc,SAAUH,GAE9B,GAAIA,EAAe,CAEjB,MAAMqM,EAAarM,EAAchC,cAAc,2BAA2B,EAC1E,MAAMsO,EAAmBtM,EAAchC,cAAc,kBAAkB,EACvE,MAAMuO,EAAgBvM,EAAchC,cAAc,SAAS,EAC3D,GAAIqO,EAAY,CACd,MAAMG,EAASH,EAAWlO,aAAa,UAAU,EACjD,GAAIqO,EAAQ,CACV,MAAMjP,EAAS9F,EAAEmE,cAAc,KAAK,EACpC,MAAM6Q,EAAY,IAAIC,MAEtBnP,EAAOf,UAAUC,IAAI,QAAQ,EAC7B8P,EAAcxQ,YAAYwB,CAAM,EAEhCkP,EAAUjS,OAAS5B,IACjByT,EAAWjR,IAAMoR,EACjBjP,EAAOmB,OAAO,CAChB,EACA+N,EAAU3R,QAAUlC,IAClB2E,EAAOmB,OAAO,CAChB,EACA+N,EAAUrR,IAAMoR,EAChBH,EAAWjR,IAAMkR,EAAiBlR,IAClCiR,EAAW9H,gBAAgB,UAAU,CACvC,CACF,CACF,CACA9M,EAAEkE,eAAe,SAAS,EAAEa,UAAUC,IAAI,mBAAmB,EAC7DlF,EAAQmN,qBAAqB,CAC/B,EAEAnN,EAAQwN,YAAc,SAAUnM,GAC9BnB,EAAEkE,eAAe,SAAS,EAAEa,UAAUkC,OAAO,mBAAmB,EAChEnH,EAAQmN,qBAAqB,CAC/B,EACAnN,EAAQ0B,GAAG,uBAAwB,QAASL,IAC1CA,EAAEsH,eAAe,EACjB3I,EAAQwN,YAAY,CACtB,CAAC,EACDxN,EAAQ0B,GAAG,0BAA2B,QAASL,IAC7CA,EAAEsH,eAAe,EACjB3I,EAAQoQ,eAAe,KAAK,CAC9B,CAAC,EACDpQ,EAAQ0B,GAAG,sBAAuB,QAASL,IACzCA,EAAEsH,eAAe,EACjB3I,EAAQmQ,WAAW,KAAK,CAC1B,CAAC,EAEDlQ,EAAE6B,iBAAiB,SAAU,WAC3B,IAAIT,EAAInB,EAAEkE,eAAe,WAAW,EAClCqI,EAAY3L,SAAS0L,gBAAgBC,WAAa3L,SAASyD,KAAKkI,UAChEL,EAAUlM,EAAEkE,eAAe,SAAS,EACtC,GAAI/C,IAAM,KAAM,CACd,GAAIoL,GAAa,IAAK,CACpBL,EAAQnH,UAAUC,IAAI,WAAW,CACnC,KAAO,CACLkH,EAAQnH,UAAUkC,OAAO,WAAW,CACtC,CACF,CACF,EAAG,IAAI,CAET,CAAC,CAEF,GAAEpH,OAAQe,SAAUf,OAAOC,OAAO,GCpHnC,SAAWC,EAAGC,EAAGF,GACf,aAEA,IAAIoV,EAAY,IAAKC,EAErB,MAAMC,EAAWvV,OAAOwV,WAAW,mCAAmC,EAAElV,QAExE,SAASmV,IACP,GAAIH,EAAOxG,MAAMzH,OAAU,EAAG,CAC5B,IAAIqO,EAAS3U,SAASsD,eAAe,QAAQ,EAC7CmO,WAAWkD,EAAOC,OAAOrT,KAAKoT,CAAM,EAAG,CAAC,CAC1C,CACF,CAEA,SAASE,EAAmBN,GAC1B,IAAIO,EAAK9U,SAASsD,eAAe,cAAc,EAC/C,IAAIyR,EAAoB,WACtB,GAAIR,EAAOxG,MAAMzH,SAAW,EAAG,CAC7BwO,EAAG3Q,UAAUC,IAAI,OAAO,CAC1B,KAAO,CACL0Q,EAAG3Q,UAAUkC,OAAO,OAAO,CAC7B,CACF,EAGA0O,EAAkB,EAClBD,EAAG9T,iBAAiB,QAAS,SAAUgU,GACrCT,EAAOxG,MAAQ,GACfwG,EAAOnI,MAAM,EACb2I,EAAkB,EAClBC,EAAGnN,eAAe,CACpB,CAAC,EACD0M,EAAOvT,iBAAiB,QAAS+T,EAAmB,KAAK,CAC3D,CAEA7V,EAAQmC,MAAM,WACZkT,EAASnV,EAAEkE,eAAegR,CAAS,EAEnC,GAAIC,IAAW,KAAM,CAEnBM,EAAkBN,CAAM,EAGxB,GAAIrV,EAAQ+D,SAASgS,sBAAuB,CAC1C/V,EAAQgW,aAAeC,aAAa3U,KAAKrB,EAAG,CAC1CiW,IAAK,kBACLC,aAAcnW,EAAQ+D,SAASyD,aAAa4O,cAC5CC,WAAYrW,EAAQ+D,SAASuS,YAC7BC,YAAa,CACXC,eAAgB,oCAChBC,mBAAoB,gBACtB,EACAC,SAAU1W,EAAQ+D,SAAS4S,iBAC3BC,MAAO,IACPC,UAAW,aACXC,MAAO,WACL,IAAIC,EAASpW,KACb0L,MAAMpL,UAAUoF,QAAQ/E,KAAKX,KAAKqW,WAAW3R,qBAAqB,IAAI,EAAG,SAAU4R,GACjF,GAAIA,EAAGrQ,aAAa,OAAO,GAAK,SAAU,CACxCqQ,EAAGC,YAAc,WACfH,EAAOI,QAAQF,CAAE,CACnB,CACF,CACF,CAAC,CACH,EACAE,QAAS,SAAUC,GACjBnB,aAAaoB,SAASF,QAAQ7V,KAAKX,KAAMyW,CAAI,EAC7C,IAAI5Q,EAAO4Q,EAAKE,QAAQ,MAAM,EAC9B,GAAI9Q,EAAM,CACRA,EAAKkP,OAAO,CACd,CACF,EACA6B,UAAW,WACT,GAAI5W,KAAK6W,MAAM3I,MAAM9B,QAAQ,GAAG,EAAI,CAAC,EAAG,CACtC,OAAO,CACT,KAAO,CACL,OAAOkJ,aAAaoB,SAASE,UAAUjW,KAAKX,IAAI,CAClD,CACF,EACA8W,iBAAkBrN,OAAOC,OAAO,GAAI4L,aAAaoB,SAASI,iBAAkB,CAC1EC,gBAAmBtN,OAAOC,OAAO,GAAI4L,aAAaoB,SAASI,iBAAiBC,gBAAiB,CAC3FC,SAAU,SAAUtH,GAClB4F,aAAaoB,SAASI,iBAAiBC,gBAAgBC,SAASrW,KAAKX,KAAM0P,CAAK,EAChF,IAAIuH,EAAWjX,KAAKqW,WAAWvQ,cAAc,WAAW,EACxD,GAAImR,EAAU,CACZ3B,aAAaoB,SAASF,QAAQ7V,KAAKX,KAAMiX,CAAQ,CACnD,CACF,CACF,CAAC,EACDC,IAAOzN,OAAOC,OAAO,GAAI4L,aAAaoB,SAASI,iBAAiBK,MAAO,CACrEC,WAAY,CAAC,CACXC,GAAI,EACJC,IAAK,KACP,GACAN,SAAU,SAAUtH,GAClB,GAAI1P,KAAKqW,WAAWpQ,aAAa,OAAO,EAAEmG,QAAQ,MAAM,GAAK,CAAC,EAAG,CAC/D,IAAI6K,EAAWjX,KAAKqW,WAAWvQ,cAAc,WAAW,EACxD,GAAImR,IAAa,KAAM,CACrB3B,aAAaoB,SAASF,QAAQ7V,KAAKX,KAAMiX,CAAQ,EACjDvH,EAAM1H,eAAe,CACvB,CACF,CACF,CACF,CAAC,CACH,CAAC,CACH,EAAG,IAAMyM,CAAS,CACpB,CAuBAa,aAAahV,UAAUiX,KAAO,SAAUnB,EAAQoB,EAASnV,GACvD,GAAIA,IAAY,KAAK,EAAG,CAAEA,EAAU,IAAM,CAC1C,GAAI+T,EAAOqB,WAAY,CACrBrY,OAAOsY,aAAatB,EAAOqB,UAAU,CACvC,CACA,GAAIpV,IAAY,KAAM,CACpB+T,EAAOqB,WAAarY,OAAOwS,WAAW0D,aAAahV,UAAUiX,KAAK7V,KAAK,KAAM0U,EAAQoB,EAAS,KAAK,EAAGpB,EAAOH,KAAK,CACpH,KAAO,CACL,GAAIG,EAAOuB,QAAS,CAClBvB,EAAOuB,QAAQC,MAAM,CACvB,CACAxB,EAAOuB,QAAUH,EACjBpB,EAAOuB,QAAQ5U,KAAK8U,mBAAmBzB,EAAO0B,UAAU,CAAC,EAAI,IAAMD,mBAAmBzB,EAAO2B,KAAK,CAAC,CAAC,CACtG,CACF,EAEA,GAAI,CAACpD,GAAYxU,SAAS2F,cAAc,iBAAiB,EAAG,CAC1D4O,EAAOnI,MAAM,CACf,CACF,CAMA,GACEmI,IAAW,MACNrV,EAAQ+D,SAAS4U,2BAGjBzY,EAAEuG,cAAc,iBAAiB,GAAK,KAC3C,CACAzG,EAAQ0B,GAAGxB,EAAEkE,eAAe,YAAY,EAAG,SAAUoR,CAAa,EAClExV,EAAQ0B,GAAGxB,EAAEkE,eAAe,YAAY,EAAG,SAAUoR,CAAa,EAClExV,EAAQ0B,GAAGxB,EAAEkE,eAAe,UAAU,EAAG,SAAUoR,CAAa,CAClE,CAIA,IAEEtV,EAAEuG,cAAc,gBAAgB,CAUlC,CATE,MAAOmS,GAEP,IAAKhT,IAAI+H,KAAUzN,EAAEa,iBAAiB,wBAAwB,EAAG,CAC/Df,EAAQ0B,GAAGiM,EAAQ,QAAS,KAC1B,MAAMkL,EAAW3Y,EAAEuG,cAAc,iCAAiC,EAClEjF,QAAQC,IAAIoX,CAAQ,EACpBA,EAAS5T,UAAUkC,OAAO,UAAU,CACtC,CAAC,CACH,CACF,CACF,CAAC,CAEF,GAAEpH,OAAQe,SAAUf,OAAOC,OAAO,GCzLnC,SAAU4K,GAAG,GAAG,OAAOkO,UAAU,UAAU,OAAOC,SAAS,YAAY,CAACA,OAAOD,QAAQlO,EAAE,CAAC,MAAM,GAAG,OAAOoO,SAAS,YAAYA,OAAOC,IAAI,CAACD,OAAO,GAAGpO,CAAC,CAAC,KAAK,CAAC,IAAIE,EAAE,GAAG,OAAO/K,SAAS,YAAY,CAAC+K,EAAE/K,MAAM,MAAM,GAAG,OAAOmZ,SAAS,YAAY,CAACpO,EAAEoO,MAAM,MAAM,GAAG,OAAOC,OAAO,YAAY,CAACrO,EAAEqO,IAAI,KAAK,CAACrO,EAAEnK,IAAI,CAACmK,EAAEmL,aAAerL,EAAE,CAAC,CAAE,GAAE,WAAW,IAAIoO,EAAOD,EAAOD,EAAQ,OAAO,WAAY,SAAS/O,EAAE1I,EAAEoI,EAAEQ,GAAG,SAASN,EAAE3I,EAAE4J,GAAG,GAAG,CAACnB,EAAEzI,GAAG,CAAC,GAAG,CAACK,EAAEL,GAAG,CAAC,IAAIoI,EAAE,YAAY,OAAOgQ,SAASA,QAAQ,GAAG,CAACxO,GAAGxB,EAAE,OAAOA,EAAEpI,EAAE,CAAC,CAAC,EAAE,GAAG6J,EAAE,OAAOA,EAAE7J,EAAE,CAAC,CAAC,EAAE,IAAIuO,EAAE,IAAIlM,MAAM,uBAAuBrC,EAAE,GAAG,EAAE,MAAMuO,EAAE8J,KAAK,mBAAmB9J,CAAC,CAAC,IAAI1F,EAAEJ,EAAEzI,GAAG,CAAC8X,QAAQ,EAAE,EAAEzX,EAAEL,GAAG,GAAGM,KAAKuI,EAAEiP,QAAQ,SAAS/O,GAAG,IAAIN,EAAEpI,EAAEL,GAAG,GAAG+I,GAAG,OAAOJ,EAAEF,GAAGM,CAAC,CAAC,EAAEF,EAAEA,EAAEiP,QAAQ/O,EAAE1I,EAAEoI,EAAEQ,CAAC,CAAC,CAAC,OAAOR,EAAEzI,GAAG8X,OAAO,CAAC,IAAI,IAAIjO,EAAE,YAAY,OAAOuO,SAASA,QAAQpY,EAAE,EAAEA,EAAEiJ,EAAE7C,OAAOpG,CAAC,GAAG2I,EAAEM,EAAEjJ,EAAE,EAAE,OAAO2I,CAAC,CAAC,OAAOI,CAAE,EAAE,EAAE,CAACuP,EAAE,CAAC,SAASF,EAAQL,EAAOD;;;;;;;;;GAU51B;aACA,IAAIS,GACJ,SAAWA,GACPA,EAAkBA,EAAkB,OAAS,GAAK,MAClDA,EAAkBA,EAAkB,MAAQ,GAAK,IACpD,GAAEA,IAAsBA,EAAoB,GAAG,EAChD,IAAIC,GACJ,SAAWA,GACPA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,SAAW,GAAK,OACvC,GAAEA,IAAcA,EAAY,GAAG,EAOhC,IAAIvD,EAA8B,WAE9B,SAASA,EAAac,EAAQtW,GAC1B,GAAIsW,IAAW,KAAK,EAAG,CAAEA,EAAS,EAAI,CACtC,GAAItW,IAAa,KAAK,EAAG,CAAEA,EAAW,qBAAuB,CAC7D,GAAI4L,MAAMoN,QAAQhZ,CAAQ,EAAG,CACzBA,EAAS4F,QAAQ,SAAUlC,GACvB,IAAI8R,EAAac,EAAQ5S,CAAC,CAC9B,CAAC,CACL,MACK,GAAI,OAAO1D,GAAY,SAAU,CAClC,IAAI8S,EAAWzS,SAASC,iBAAiBN,CAAQ,EACjD4L,MAAMpL,UAAUoF,QAAQ/E,KAAKiS,EAAU,SAAUmG,GAC7C,IAAIzD,EAAac,EAAQ2C,CAAK,CAClC,CAAC,CACL,KACK,CACD,IAAIC,EAAiB1D,EAAa2D,MAAM3D,EAAaoB,SAAUN,EAAQ,CACnEC,WAAYlW,SAASuD,cAAc,KAAK,CAC5C,CAAC,EACD4R,EAAahV,UAAU4Y,OAAOF,EAAgBlZ,CAAQ,EACtD,OAAOkZ,CACX,CACJ,CACA1D,EAAahV,UAAU4Y,OAAS,SAAU9C,EAAQ7Q,GAC9C6Q,EAAOS,MAAQtR,EACf,GAAI6Q,EAAOS,MAAMsC,SAASC,MAAM,UAAU,IAAMhD,EAAOS,MAAM9S,aAAa,MAAM,IAAM,OAASqS,EAAOS,MAAM5Q,aAAa,MAAM,EAAEmT,MAAM,gBAAgB,GAAI,CACvJhD,EAAOS,MAAMlT,aAAa,eAAgB,KAAK,EAC/CyS,EAAOF,UAAUE,CAAM,EACvBA,EAAOS,MAAM3W,WAAW2D,YAAYuS,EAAOC,UAAU,EACrDD,EAAOiD,WAAa,CAChBzM,KAAMwJ,EAAOkD,MAAM5X,KAAK0U,CAAM,EAC9BmD,QAASjE,EAAahV,UAAUiZ,QAAQ7X,KAAK,KAAM0U,CAAM,EACzD7J,MAAO6J,EAAOoD,OAAO9X,KAAK0U,CAAM,EAChCqD,MAAOnE,EAAahV,UAAUoP,MAAMhO,KAAK,KAAM0U,EAAQyC,EAAUa,KAAK,EACtEC,QAASrE,EAAahV,UAAUoP,MAAMhO,KAAK,KAAM0U,EAAQyC,EAAUe,OAAO,EAC1EhM,SAAUwI,EAAOF,UAAUxU,KAAK0U,CAAM,CAC1C,EACA,IAAK,IAAI1G,KAAS0G,EAAOiD,WAAY,CACjCjD,EAAOS,MAAM1V,iBAAiBuO,EAAO0G,EAAOiD,WAAW3J,EAAM,CACjE,CACJ,CACJ,EACA4F,EAAahV,UAAUuZ,gBAAkB,SAAUzD,EAAQ0D,GACvD,IAAIC,EAAW,GACf,IAAK,IAAI3R,KAAOgO,EAAOU,iBAAkB,CACrC,IAAIpH,EAAQmJ,EAAUa,MACtB,GAAItD,EAAOU,iBAAiB1O,GAAK4R,QAAUrS,UAAW,CAClD+H,EAAQ0G,EAAOU,iBAAiB1O,GAAK4R,KACzC,CACA,GAAItK,GAASoK,EAAM,CACfC,EAAS3R,GAAOgO,EAAOU,iBAAiB1O,EAC5C,CACJ,CACA,OAAO2R,CACX,EACAzE,EAAahV,UAAUoP,MAAQ,SAAU0G,EAAQ0D,EAAMpK,GACnD,IAAIuK,EAAkB,SAAUC,GAC5B,GAAKd,IAAU,MAAQe,EAAQC,UAAYxB,EAAkByB,KAASjB,IAAU,OAASe,EAAQC,UAAYxB,EAAkB0B,GAAK,CAChIJ,EAAY5E,EAAa2D,MAAM,CAC3B3B,IAAK,KACT,EAAG4C,CAAS,EACZ,GAAIA,EAAUtP,eAAe,IAAI,EAAG,CAChC,GAAIsP,EAAU7C,IAAM3H,EAAM6K,QAAS,CAC/BnB,EAAQ,CAACc,EAAU5C,GACvB,KACK,CACD8B,EAAQc,EAAU5C,GACtB,CACJ,MACK,GAAI4C,EAAUtP,eAAe,MAAM,GAAKsP,EAAUtP,eAAe,IAAI,EAAG,CACzE,GAAI8E,EAAM6K,SAAWL,EAAUM,MAAQ9K,EAAM6K,SAAWL,EAAUO,GAAI,CAClErB,EAAQ,CAACc,EAAU5C,GACvB,KACK,CACD8B,EAAQc,EAAU5C,GACtB,CACJ,CACJ,CACJ,EACA,IAAK,IAAIoD,KAAQpF,EAAahV,UAAUuZ,gBAAgBzD,EAAQ0D,CAAI,EAAG,CACnE,IAAIK,EAAU7E,EAAa2D,MAAM,CAC7BmB,SAAUxB,EAAkByB,GAChC,EAAGjE,EAAOU,iBAAiB4D,EAAK,EAAGtB,EAAQR,EAAkByB,KAAOF,EAAQC,SAC5ED,EAAQ/C,WAAW1R,QAAQuU,CAAe,EAC1C,GAAIb,IAAU,KAAM,CAChBe,EAAQnD,SAASrW,KAAKyV,EAAQ1G,CAAK,CACvC,CACJ,CACJ,EACA4F,EAAahV,UAAUqa,YAAc,SAAUvE,EAAQ5V,EAAUoa,GAC7D,IAAIC,EAAsBpR,OAAOqR,oBAAoB1E,EAAOR,WAAW,EAAG4B,EAAU,IAAIrV,eAAkBP,EAASwU,EAAO2E,YAAY,EAAGlZ,EAAMuU,EAAO4E,KAAK,EAAGC,EAAc7E,EAAO2B,KAAK,EAAGmD,EAAuBrD,mBAAmBzB,EAAO0B,UAAU,CAAC,EAAI,IAAMD,mBAAmBoD,CAAW,EAC/R,GAAIrZ,EAAOwX,MAAM,QAAQ,EAAG,CACxB,GAAIvX,EAAIuK,QAAQ,GAAG,IAAM,CAAC,EAAG,CACzBvK,GAAO,IAAMqZ,CACjB,KACK,CACDrZ,GAAO,IAAMqZ,CACjB,CACJ,CACA1D,EAAQpV,KAAKR,EAAQC,EAAK,IAAI,EAC9B,IAAK,IAAIxB,EAAIwa,EAAoBpU,OAAS,EAAGpG,GAAK,EAAGA,CAAC,GAAI,CACtDmX,EAAQ2D,iBAAiBN,EAAoBxa,GAAI+V,EAAOR,YAAYiF,EAAoBxa,GAAG,CAC/F,CACAmX,EAAQ4D,mBAAqB,WACzB,GAAI5D,EAAQ/V,YAAc,GAAK+V,EAAQjV,QAAU,IAAK,CAClD6T,EAAOiF,OAAOJ,GAAezD,EAAQhV,SACrChC,EAASgX,EAAQhV,QAAQ,CAC7B,MACK,GAAIgV,EAAQjV,QAAU,IAAK,CAC5BqY,EAAY,CAChB,CACJ,EACA,OAAOpD,CACX,EACAlC,EAAahV,UAAUiX,KAAO,SAAUnB,EAAQoB,EAASnV,GACrD,GAAIA,IAAY,KAAK,EAAG,CAAEA,EAAU,IAAM,CAC1C,GAAI+T,EAAOqB,WAAY,CACnBrY,OAAOsY,aAAatB,EAAOqB,UAAU,CACzC,CACA,GAAIpV,IAAY,KAAM,CAClB+T,EAAOqB,WAAarY,OAAOwS,WAAW0D,EAAahV,UAAUiX,KAAK7V,KAAK,KAAM0U,EAAQoB,EAAS,KAAK,EAAGpB,EAAOH,KAAK,CACtH,KACK,CACD,GAAIG,EAAOuB,QAAS,CAChBvB,EAAOuB,QAAQC,MAAM,CACzB,CACAxB,EAAOuB,QAAUH,EACjBpB,EAAOuB,QAAQ5U,KAAKqT,EAAO0B,UAAU,EAAI,IAAM1B,EAAO2B,KAAK,CAAC,CAChE,CACJ,EACAzC,EAAahV,UAAUgb,MAAQ,SAAUlF,EAAQ5V,EAAUoa,GACvD,IAAIpY,EAAW4T,EAAOmF,OAAOnF,EAAO2B,KAAK,CAAC,EAC1C,GAAIvV,IAAamF,UAAW,CACxB,IAAI6P,EAAUlC,EAAahV,UAAUqa,YAAYvE,EAAQ5V,EAAUoa,CAAW,EAC9EtF,EAAahV,UAAUiX,KAAKnB,EAAQoB,CAAO,CAC/C,KACK,CACDhX,EAASgC,CAAQ,CACrB,CACJ,EACA8S,EAAahV,UAAUiZ,QAAU,SAAUnD,GACvC,IAAK,IAAI1G,KAAS0G,EAAOiD,WAAY,CACjCjD,EAAOS,MAAM2E,oBAAoB9L,EAAO0G,EAAOiD,WAAW3J,EAAM,CACpE,CACA0G,EAAOC,WAAWnW,WAAWub,YAAYrF,EAAOC,UAAU,CAC9D,EACAf,EAAa2D,MAAQ,WACjB,IAAIA,EAAQ,GAAIyC,EAChB,IAAK,IAAIrb,EAAI,EAAGA,EAAIsb,UAAUlV,OAAQpG,CAAC,GAAI,CACvC,IAAKqb,KAAOC,UAAUtb,GAAI,CACtB4Y,EAAMyC,GAAOC,UAAUtb,GAAGqb,EAC9B,CACJ,CACA,OAAOzC,CACX,EACA3D,EAAaoB,SAAW,CACpBT,MAAO,IACPT,aAAc,iBACdoG,UAAW,CACPC,SAAU,SAAU3N,GAChB,OAAO,IAAI4N,OAAO5N,EAAO,IAAI,CACjC,EACA6N,UAAW,SAAU7N,GACjB,MAAO,WAAaA,EAAQ,WAChC,CACJ,EACA0H,YAAa,CACTC,eAAgB,mCACpB,EACAmG,MAAO,EACPjG,SAAU,EACVL,WAAY,MACZuG,SAAU,IACV1G,IAAK,KACLuB,iBAAkB,CACdK,MAAS,CACLC,WAAY,CAAC,CACLC,GAAI,GACJC,IAAK,KACT,GACJN,SAAU,SAAUtH,GAChB,GAAI1P,KAAKqW,WAAWpQ,aAAa,OAAO,EAAEmG,QAAQ,MAAM,GAAK,CAAC,EAAG,CAC7D,IAAI6K,EAAWjX,KAAKqW,WAAWvQ,cAAc,WAAW,EACxD,GAAImR,IAAa,KAAM,CACnBvH,EAAM1H,eAAe,EACrBhI,KAAKwW,QAAQS,CAAQ,EACrBjX,KAAKqW,WAAW1S,aAAa,QAAS,cAAc,CACxD,CACJ,CACJ,EACAyW,SAAUxB,EAAkByB,IAC5BL,MAAOnB,EAAUe,OACrB,EACAsC,kBAAqB,CACjB9E,WAAY,CAAC,CACLC,GAAI,GACJC,IAAK,KACT,EACA,CACID,GAAI,GACJC,IAAK,KACT,GACJN,SAAU,SAAUtH,GAChBA,EAAM1H,eAAe,CACzB,EACAoS,SAAUxB,EAAkB0B,GAC5BN,MAAOnB,EAAUe,OACrB,EACA7C,gBAAmB,CACfK,WAAY,CAAC,CACLC,GAAI,GACJC,IAAK,KACT,EACA,CACID,GAAI,GACJC,IAAK,KACT,GACJN,SAAU,SAAUtH,GAChBA,EAAM1H,eAAe,EACrB,IAAI+G,EAAQ/O,KAAKqW,WAAWvQ,cAAc,6BAA6B,EAAGqW,EAAOnc,KAAKqW,WAAWvQ,cAAc,4BAA4B,EAAGsW,EAASpc,KAAKqW,WAAWvQ,cAAc,WAAW,EAChM,GAAIsW,EAAQ,CACR,IAAIC,EAAe3Q,MAAMpL,UAAU8L,QAAQzL,KAAKyb,EAAOlc,WAAWsF,SAAU4W,CAAM,EAAGxO,EAAWyO,GAAgB3M,EAAM6K,QAAU,IAAK+B,EAAWtc,KAAKqW,WAAW3R,qBAAqB,IAAI,EAAE+B,OAC3L,GAAImH,EAAW,EAAG,CACdA,EAAW0O,EAAW,CAC1B,MACK,GAAI1O,GAAY0O,EAAU,CAC3B1O,EAAW,CACf,CACAwO,EAAO9X,UAAUkC,OAAO,QAAQ,EAChC4V,EAAO7a,cAAciE,SAASiR,KAAK7I,CAAQ,EAAEtJ,UAAUC,IAAI,QAAQ,CACvE,MACK,GAAI4X,GAAQzM,EAAM6K,SAAW,GAAI,CAClC4B,EAAK7X,UAAUC,IAAI,QAAQ,CAC/B,MACK,GAAIwK,EAAO,CACZA,EAAMzK,UAAUC,IAAI,QAAQ,CAChC,CACJ,EACA6V,SAAUxB,EAAkB0B,GAC5BN,MAAOnB,EAAUa,KACrB,EACA6C,SAAY,CACRnF,WAAY,CAAC,CACLC,GAAI,GACJC,IAAK,IACT,EAAG,CACCkD,KAAM,GACNC,GAAI,GACJnD,IAAK,IACT,GACJN,SAAU,WACN,IAAIwF,EAAWxc,KAAK6W,MAAM5Q,aAAa,6BAA6B,EAAGwW,EAAezc,KAAK+X,KAAK,EAChG,GAAI0E,IAAiB,IAAMA,EAAahW,QAAUzG,KAAK4W,UAAU,EAAG,CAChE,GAAI,CAAC4F,GAAYC,GAAgBD,EAAU,CACvCxc,KAAKqW,WAAW1S,aAAa,QAAS,mBAAmB,CAC7D,CACA2R,EAAahV,UAAUgb,MAAMtb,KAAM,SAAUwC,GACzCxC,KAAK0c,QAAQ1c,KAAK2c,MAAMna,CAAQ,CAAC,EACjCxC,KAAKmW,MAAM,CACf,EAAEzU,KAAK1B,IAAI,EAAGA,KAAK4c,MAAM,CAC7B,KACK,CACD5c,KAAK6c,OAAO,CAChB,CACJ,EACAzC,SAAUxB,EAAkByB,IAC5BL,MAAOnB,EAAUa,KACrB,CACJ,EACArD,WAAY,KACZsB,QAAS,KACTd,MAAO,KAIPiG,cAAe,WACX,IAAIC,EAAe,GACnB,GAAI/c,KAAK6W,MAAM9S,aAAa,iCAAiC,EAAG,CAC5DgZ,EAAe/c,KAAK6W,MAAM5Q,aAAa,iCAAiC,CAC5E,MACK,GAAIjG,KAAKwV,eAAiB,MAAO,CAClCuH,EAAe/c,KAAKwV,YACxB,KACK,CACDuH,EAAe,EACnB,CACA,OAAOA,CACX,EAIAC,OAAQ,WACJ,IAAIC,EAAQjd,KAAK6W,MAAM5Q,aAAa,yBAAyB,EAC7D,GAAIiX,MAAMD,CAAK,GAAKA,IAAU,KAAM,CAChC,OAAOjd,KAAKgc,KAChB,CACA,OAAOmB,SAASF,EAAO,EAAE,CAC7B,EAIArG,UAAW,WACP,IAAIwG,EAAWpd,KAAK6W,MAAM5Q,aAAa,4BAA4B,EACnE,GAAIiX,MAAME,CAAQ,GAAKA,IAAa,KAAM,CACtC,OAAOpd,KAAK+V,QAChB,CACA,OAAOoH,SAASC,EAAU,EAAE,CAChC,EAIAC,WAAY,SAAUC,GAClB,OAAOA,EAAM/Z,QAAQvD,KAAK4b,UAAUC,SAAS7b,KAAK+X,KAAK,CAAC,EAAG/X,KAAK4b,UAAUG,SAAS,CACvF,EAIAhB,YAAa,WACT,GAAI/a,KAAK6W,MAAM9S,aAAa,0BAA0B,EAAG,CACrD,OAAO/D,KAAK6W,MAAM5Q,aAAa,0BAA0B,CAC7D,CACA,OAAOjG,KAAK0V,UAChB,EAIAoC,UAAW,WACP,GAAI9X,KAAK6W,MAAM9S,aAAa,8BAA8B,EAAG,CACzD,OAAO/D,KAAK6W,MAAM5Q,aAAa,8BAA8B,CACjE,CACA,OAAOjG,KAAKic,QAChB,EAIAjB,KAAM,WACF,GAAIhb,KAAK6W,MAAM9S,aAAa,mBAAmB,EAAG,CAC9C,OAAO/D,KAAK6W,MAAM5Q,aAAa,mBAAmB,CACtD,CACA,OAAOjG,KAAKuV,GAChB,EAIA+D,MAAO,SAAUiE,GACb,GAAIA,IAAQ,KAAK,EAAG,CAAEA,EAAM,KAAO,CACnC,GAAIA,EAAK,CACLvd,KAAK6c,OAAO,CAChB,KACK,CACD,IAAIzG,EAASpW,KACb4R,WAAW,WACPwE,EAAOkD,MAAM,IAAI,CACrB,EAAG,GAAG,CACV,CACJ,EAIAiC,OAAQ,SAAUrN,GACd,OAAOlO,KAAKqb,OAAOnN,EACvB,EAIAsL,OAAQ,WACJ,IAAIgD,EAAWxc,KAAK6W,MAAM5Q,aAAa,6BAA6B,EACpE,IAAK,CAACuW,GAAYxc,KAAK6W,MAAM3I,OAASsO,IAAaxc,KAAK4W,UAAU,GAAK5W,KAAK6W,MAAM3I,MAAMzH,OAAQ,CAC5FzG,KAAKqW,WAAW1S,aAAa,QAAS,mBAAmB,CAC7D,CACJ,EAIAwS,MAAO,WACH,IAAIC,EAASpW,KACb0L,MAAMpL,UAAUoF,QAAQ/E,KAAKX,KAAKqW,WAAW3R,qBAAqB,IAAI,EAAG,SAAU4R,GAC/E,GAAIA,EAAGrQ,aAAa,OAAO,GAAK,SAAU,CACtCqQ,EAAGkH,QAAU,WACTpH,EAAOI,QAAQF,CAAE,CACrB,CACJ,CACJ,CAAC,CACL,EACAuG,OAAQ,WACJ7c,KAAKqW,WAAW1S,aAAa,QAAS,cAAc,CACxD,EAIAuS,UAAW,WACPlW,KAAKqW,WAAW1S,aAAa,QAAS,cAAc,EACpD3D,KAAKqW,WAAW1S,aAAa,QAAS,QAAU3D,KAAK6W,MAAM3K,UAAYlM,KAAK6W,MAAM4G,cAAgB,WAAazd,KAAK6W,MAAM6G,WAAa,YAAc1d,KAAK6W,MAAM8G,YAAc,KAAK,CACvL,EAIAjB,QAAS,SAAUla,GACf,IAAIob,EACJ,GAAI,OAAOpb,GAAY,SAAU,CAC7Bob,EAAK5d,KAAK6d,WAAWrb,CAAQ,CACjC,KACK,CACDob,EAAK5d,KAAK8d,qBAAqBtb,CAAQ,CAC3C,CACA,GAAIxC,KAAKqW,WAAW0H,cAAc,EAAG,CACjC/d,KAAKqW,WAAWoF,YAAYzb,KAAKqW,WAAW2H,WAAW,EAAE,CAC7D,CACAhe,KAAKqW,WAAWxS,YAAY+Z,CAAE,CAClC,EAIAE,qBAAsB,SAAUtb,GAC5B,IAAIob,EAAKzd,SAASuD,cAAc,IAAI,EAAG4S,EAAKnW,SAASuD,cAAc,IAAI,EAAGuZ,EAAQjd,KAAKgd,OAAO,EAE9F,GAAIC,EAAQ,EAAG,CACXza,EAAWA,EAASyb,QAAQ,CAChC,MACK,GAAIhB,IAAU,EAAG,CAClBA,EAAQza,EAASiE,MACrB,CACA,IAAK,IAAIgQ,EAAO,EAAGA,EAAOyH,KAAKC,IAAID,KAAKE,IAAInB,CAAK,EAAGza,EAASiE,MAAM,EAAGgQ,CAAI,GAAI,CAC1EH,EAAGrH,UAAYzM,EAASiU,GAAM4H,MAC9B/H,EAAG3S,aAAa,0BAA2BnB,EAASiU,GAAM6H,KAAK,EAC/DV,EAAG/Z,YAAYyS,CAAE,EACjBA,EAAKnW,SAASuD,cAAc,IAAI,CACpC,CACA,OAAOka,CACX,EAIAC,WAAY,SAAUrb,GAClB,IAAIob,EAAKzd,SAASuD,cAAc,IAAI,EAAG4S,EAAKnW,SAASuD,cAAc,IAAI,EACvE,GAAIlB,EAASiE,OAAS,EAAG,CACrBzG,KAAKqW,WAAWpH,UAAYzM,CAChC,KACK,CACD,IAAIua,EAAe/c,KAAK8c,cAAc,EACtC,GAAIC,IAAiB,GAAI,CACrBzG,EAAGrH,UAAY8N,EACfzG,EAAG3S,aAAa,QAAS,QAAQ,EACjCia,EAAG/Z,YAAYyS,CAAE,CACrB,CACJ,CACA,OAAOsH,CACX,EAIAjB,MAAO,SAAUna,GACb,IACI,IAAI+b,EAAiB,GAErB,IAAIC,EAAOlO,KAAKC,MAAM/N,CAAQ,EAC9B,GAAIiH,OAAOiF,KAAK8P,CAAI,EAAE/X,SAAW,EAAG,CAChC,MAAO,EACX,CACA,GAAIiF,MAAMoN,QAAQ0F,CAAI,EAAG,CACrB,IAAK,IAAIne,EAAI,EAAGA,EAAIoJ,OAAOiF,KAAK8P,CAAI,EAAE/X,OAAQpG,CAAC,GAAI,CAC/Cke,EAAeA,EAAe9X,QAAU,CAAE6X,MAASE,EAAKne,GAAIge,MAASre,KAAKqd,WAAWmB,EAAKne,EAAE,CAAE,CAClG,CACJ,KACK,CACD,IAAK,IAAI6N,KAASsQ,EAAM,CACpBD,EAAe/P,KAAK,CAChB8P,MAASpQ,EACTmQ,MAASre,KAAKqd,WAAWmB,EAAKtQ,EAAM,CACxC,CAAC,CACL,CACJ,CACA,OAAOqQ,CAKX,CAHA,MAAO7O,GAEH,OAAOlN,CACX,CACJ,EAIAuV,KAAM,WACF,OAAO/X,KAAK6W,MAAM3I,KACtB,EAIAsI,QAAS,SAAUC,GACf,GAAIA,EAAK1S,aAAa,yBAAyB,EAAG,CAC9C/D,KAAK6W,MAAM3I,MAAQuI,EAAKxQ,aAAa,yBAAyB,CAClE,KACK,CACDjG,KAAK6W,MAAM3I,MAAQuI,EAAKxH,SAC5B,CACAjP,KAAK6W,MAAMlT,aAAa,8BAA+B3D,KAAK6W,MAAM3I,KAAK,CAC3E,EAIA0O,OAAQ,aAERnF,WAAY,KACZ4D,OAAQ,GACRhC,WAAY,EAChB,EACA,OAAO/D,CACX,EAAG,EACH8C,EAAOD,QAAU7C,CAEjB,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAChB,CAAC"} \ No newline at end of file diff --git a/searx/static/themes/marlo/package.json b/searx/static/themes/marlo/package.json new file mode 100644 index 000000000..0114028b5 --- /dev/null +++ b/searx/static/themes/marlo/package.json @@ -0,0 +1,39 @@ +{ + "devDependencies": { + "eslint": "^9.0.0", + "grunt": "~1.6.1", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-cssmin": "^5.0.0", + "grunt-contrib-less": "~3.0.0", + "grunt-contrib-uglify": "~5.2.1", + "grunt-xmlmin": "~0.1.8", + "grunt-contrib-watch": "~1.1.0", + "grunt-eslint": "^24.0.0", + "grunt-stylelint": "^0.16.0", + "grunt-image": "^6.4.0", + "ionicons": "^7.1.0", + "less": "^4.1.3", + "less-plugin-clean-css": "^1.5.1", + "sharp": "^0.33.0", + "stylelint": "^13.13.1", + "stylelint-config-standard": "^22.0.0", + "ejs": "^3.1.8", + "svgo": "^3.0.0" + }, + "dependencies": { + "autocomplete-js": "2.7.1", + "leaflet": "^1.8.0", + "normalize.css": "^8.0.1" + }, + "scripts": { + "all": "npm install && grunt", + "build": "grunt", + "test": "grunt test", + "eslint": "grunt eslint", + "eslint-fix": "grunt eslint --fix", + "watch": "grunt watch", + "clean": "rm -Rf node_modules package-lock.json", + "stylelint": "grunt stylelint", + "stylelint-fix": "grunt stylelint --fix" + } +} diff --git a/searx/static/themes/marlo/src/generated/pygments.less b/searx/static/themes/marlo/src/generated/pygments.less new file mode 100644 index 000000000..6c5c4d193 --- /dev/null +++ b/searx/static/themes/marlo/src/generated/pygments.less @@ -0,0 +1,173 @@ +/* + this file is generated automatically by searxng_extra/update/update_pygments.py + using pygments version 2.17.2 +*/ + + +.code-highlight { + + pre { line-height: 100%; } + td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } + span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } + td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } + span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } + .hll { background-color: #ffffcc } + .c { color: #3D7B7B; font-style: italic } /* Comment */ + .err { border: 1px solid #FF0000 } /* Error */ + .k { color: #008000; font-weight: bold } /* Keyword */ + .o { color: #666666 } /* Operator */ + .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ + .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ + .cp { color: #9C6500 } /* Comment.Preproc */ + .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ + .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ + .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ + .gd { color: #A00000 } /* Generic.Deleted */ + .ge { font-style: italic } /* Generic.Emph */ + .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ + .gr { color: #E40000 } /* Generic.Error */ + .gh { color: #000080; font-weight: bold } /* Generic.Heading */ + .gi { color: #008400 } /* Generic.Inserted */ + .go { color: #717171 } /* Generic.Output */ + .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ + .gs { font-weight: bold } /* Generic.Strong */ + .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ + .gt { color: #0044DD } /* Generic.Traceback */ + .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ + .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ + .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ + .kp { color: #008000 } /* Keyword.Pseudo */ + .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ + .kt { color: #B00040 } /* Keyword.Type */ + .m { color: #666666 } /* Literal.Number */ + .s { color: #BA2121 } /* Literal.String */ + .na { color: #687822 } /* Name.Attribute */ + .nb { color: #008000 } /* Name.Builtin */ + .nc { color: #0000FF; font-weight: bold } /* Name.Class */ + .no { color: #880000 } /* Name.Constant */ + .nd { color: #AA22FF } /* Name.Decorator */ + .ni { color: #717171; font-weight: bold } /* Name.Entity */ + .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ + .nf { color: #0000FF } /* Name.Function */ + .nl { color: #767600 } /* Name.Label */ + .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ + .nt { color: #008000; font-weight: bold } /* Name.Tag */ + .nv { color: #19177C } /* Name.Variable */ + .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ + .w { color: #bbbbbb } /* Text.Whitespace */ + .mb { color: #666666 } /* Literal.Number.Bin */ + .mf { color: #666666 } /* Literal.Number.Float */ + .mh { color: #666666 } /* Literal.Number.Hex */ + .mi { color: #666666 } /* Literal.Number.Integer */ + .mo { color: #666666 } /* Literal.Number.Oct */ + .sa { color: #BA2121 } /* Literal.String.Affix */ + .sb { color: #BA2121 } /* Literal.String.Backtick */ + .sc { color: #BA2121 } /* Literal.String.Char */ + .dl { color: #BA2121 } /* Literal.String.Delimiter */ + .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ + .s2 { color: #BA2121 } /* Literal.String.Double */ + .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ + .sh { color: #BA2121 } /* Literal.String.Heredoc */ + .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ + .sx { color: #008000 } /* Literal.String.Other */ + .sr { color: #A45A77 } /* Literal.String.Regex */ + .s1 { color: #BA2121 } /* Literal.String.Single */ + .ss { color: #19177C } /* Literal.String.Symbol */ + .bp { color: #008000 } /* Name.Builtin.Pseudo */ + .fm { color: #0000FF } /* Name.Function.Magic */ + .vc { color: #19177C } /* Name.Variable.Class */ + .vg { color: #19177C } /* Name.Variable.Global */ + .vi { color: #19177C } /* Name.Variable.Instance */ + .vm { color: #19177C } /* Name.Variable.Magic */ + .il { color: #666666 } /* Literal.Number.Integer.Long */ +} + +.code-highlight-dark(){ + .code-highlight { + + pre { line-height: 100%; } + td.linenos .normal { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; } + span.linenos { color: #3c4354; background-color: transparent; padding-left: 5px; padding-right: 5px; } + td.linenos .special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } + span.linenos.special { color: #3c4354; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } + .hll { background-color: #6e7681 } + .c { color: #7e8aa1 } /* Comment */ + .err { color: #f88f7f } /* Error */ + .esc { color: #d4d2c8 } /* Escape */ + .g { color: #d4d2c8 } /* Generic */ + .k { color: #FFAD66 } /* Keyword */ + .l { color: #D5FF80 } /* Literal */ + .n { color: #d4d2c8 } /* Name */ + .o { color: #FFAD66 } /* Operator */ + .x { color: #d4d2c8 } /* Other */ + .p { color: #d4d2c8 } /* Punctuation */ + .ch { color: #f88f7f; font-style: italic } /* Comment.Hashbang */ + .cm { color: #7e8aa1 } /* Comment.Multiline */ + .cp { color: #FFAD66; font-weight: bold } /* Comment.Preproc */ + .cpf { color: #7e8aa1 } /* Comment.PreprocFile */ + .c1 { color: #7e8aa1 } /* Comment.Single */ + .cs { color: #7e8aa1; font-style: italic } /* Comment.Special */ + .gd { color: #f88f7f; background-color: #3d1e20 } /* Generic.Deleted */ + .ge { color: #d4d2c8; font-style: italic } /* Generic.Emph */ + .ges { color: #d4d2c8 } /* Generic.EmphStrong */ + .gr { color: #f88f7f } /* Generic.Error */ + .gh { color: #d4d2c8 } /* Generic.Heading */ + .gi { color: #6ad4af; background-color: #19362c } /* Generic.Inserted */ + .go { color: #7e8aa1 } /* Generic.Output */ + .gp { color: #d4d2c8 } /* Generic.Prompt */ + .gs { color: #d4d2c8; font-weight: bold } /* Generic.Strong */ + .gu { color: #d4d2c8 } /* Generic.Subheading */ + .gt { color: #f88f7f } /* Generic.Traceback */ + .kc { color: #FFAD66 } /* Keyword.Constant */ + .kd { color: #FFAD66 } /* Keyword.Declaration */ + .kn { color: #FFAD66 } /* Keyword.Namespace */ + .kp { color: #FFAD66 } /* Keyword.Pseudo */ + .kr { color: #FFAD66 } /* Keyword.Reserved */ + .kt { color: #73D0FF } /* Keyword.Type */ + .ld { color: #D5FF80 } /* Literal.Date */ + .m { color: #DFBFFF } /* Literal.Number */ + .s { color: #D5FF80 } /* Literal.String */ + .na { color: #FFD173 } /* Name.Attribute */ + .nb { color: #FFD173 } /* Name.Builtin */ + .nc { color: #73D0FF } /* Name.Class */ + .no { color: #FFD173 } /* Name.Constant */ + .nd { color: #7e8aa1; font-weight: bold; font-style: italic } /* Name.Decorator */ + .ni { color: #95E6CB } /* Name.Entity */ + .ne { color: #73D0FF } /* Name.Exception */ + .nf { color: #FFD173 } /* Name.Function */ + .nl { color: #d4d2c8 } /* Name.Label */ + .nn { color: #d4d2c8 } /* Name.Namespace */ + .nx { color: #d4d2c8 } /* Name.Other */ + .py { color: #FFD173 } /* Name.Property */ + .nt { color: #5CCFE6 } /* Name.Tag */ + .nv { color: #d4d2c8 } /* Name.Variable */ + .ow { color: #FFAD66 } /* Operator.Word */ + .pm { color: #d4d2c8 } /* Punctuation.Marker */ + .w { color: #d4d2c8 } /* Text.Whitespace */ + .mb { color: #DFBFFF } /* Literal.Number.Bin */ + .mf { color: #DFBFFF } /* Literal.Number.Float */ + .mh { color: #DFBFFF } /* Literal.Number.Hex */ + .mi { color: #DFBFFF } /* Literal.Number.Integer */ + .mo { color: #DFBFFF } /* Literal.Number.Oct */ + .sa { color: #F29E74 } /* Literal.String.Affix */ + .sb { color: #D5FF80 } /* Literal.String.Backtick */ + .sc { color: #D5FF80 } /* Literal.String.Char */ + .dl { color: #D5FF80 } /* Literal.String.Delimiter */ + .sd { color: #7e8aa1 } /* Literal.String.Doc */ + .s2 { color: #D5FF80 } /* Literal.String.Double */ + .se { color: #95E6CB } /* Literal.String.Escape */ + .sh { color: #D5FF80 } /* Literal.String.Heredoc */ + .si { color: #95E6CB } /* Literal.String.Interpol */ + .sx { color: #95E6CB } /* Literal.String.Other */ + .sr { color: #95E6CB } /* Literal.String.Regex */ + .s1 { color: #D5FF80 } /* Literal.String.Single */ + .ss { color: #DFBFFF } /* Literal.String.Symbol */ + .bp { color: #5CCFE6 } /* Name.Builtin.Pseudo */ + .fm { color: #FFD173 } /* Name.Function.Magic */ + .vc { color: #d4d2c8 } /* Name.Variable.Class */ + .vg { color: #d4d2c8 } /* Name.Variable.Global */ + .vi { color: #d4d2c8 } /* Name.Variable.Instance */ + .vm { color: #d4d2c8 } /* Name.Variable.Magic */ + .il { color: #DFBFFF } /* Literal.Number.Integer.Long */ + } +} diff --git a/searx/static/themes/marlo/src/js/head/00_init.js b/searx/static/themes/marlo/src/js/head/00_init.js new file mode 100644 index 000000000..4aeece8c2 --- /dev/null +++ b/searx/static/themes/marlo/src/js/head/00_init.js @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: AGPL-3.0-or-later */ +(function (w, d) { + 'use strict'; + + // add data- properties + var script = d.currentScript || (function () { + var scripts = d.getElementsByTagName('script'); + return scripts[scripts.length - 1]; + })(); + + w.searxng = { + settings: JSON.parse(atob(script.getAttribute('client_settings'))) + }; + + // update the css + var hmtlElement = d.getElementsByTagName("html")[0]; + hmtlElement.classList.remove('no-js'); + hmtlElement.classList.add('js'); + +})(window, document); diff --git a/searx/static/themes/marlo/src/js/main/00_toolkit.js b/searx/static/themes/marlo/src/js/main/00_toolkit.js new file mode 100644 index 000000000..e23142412 --- /dev/null +++ b/searx/static/themes/marlo/src/js/main/00_toolkit.js @@ -0,0 +1,165 @@ +/** + * @license + * (C) Copyright Contributors to the SearXNG project. + * (C) Copyright Contributors to the searx project (2014 - 2021). + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +window.searxng = (function (w, d) { + + 'use strict'; + + // not invented here tookit with bugs fixed elsewhere + // purposes : be just good enough and as small as possible + + // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/ + if (w.Element) { + (function (ElementPrototype) { + ElementPrototype.matches = ElementPrototype.matches || + ElementPrototype.matchesSelector || + ElementPrototype.webkitMatchesSelector || + ElementPrototype.msMatchesSelector || + function (selector) { + var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1; + while (nodes[++i] && nodes[i] != node); + return !!nodes[i]; + }; + })(Element.prototype); + } + + function callbackSafe (callback, el, e) { + try { + callback.call(el, e); + } catch (exception) { + console.log(exception); + } + } + + var searxng = window.searxng || {}; + + searxng.on = function (obj, eventType, callback, useCapture) { + useCapture = useCapture || false; + if (typeof obj !== 'string') { + // obj HTMLElement, HTMLDocument + obj.addEventListener(eventType, callback, useCapture); + } else { + // obj is a selector + d.addEventListener(eventType, function (e) { + var el = e.target || e.srcElement, found = false; + while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement; + if (found) callbackSafe(callback, el, e); + }, useCapture); + } + }; + + searxng.ready = function (callback) { + if (document.readyState != 'loading') { + callback.call(w); + } else { + w.addEventListener('DOMContentLoaded', callback.bind(w)); + } + }; + + searxng.http = function (method, url, data = null) { + return new Promise(function (resolve, reject) { + try { + var req = new XMLHttpRequest(); + req.open(method, url, true); + req.timeout = 20000; + + // On load + req.onload = function () { + if (req.status == 200) { + resolve(req.response, req.responseType); + } else { + reject(Error(req.statusText)); + } + }; + + // Handle network errors + req.onerror = function () { + reject(Error("Network Error")); + }; + + req.onabort = function () { + reject(Error("Transaction is aborted")); + }; + + req.ontimeout = function () { + reject(Error("Timeout")); + } + + // Make the request + if (data) { + req.send(data) + } else { + req.send(); + } + } catch (ex) { + reject(ex); + } + }); + }; + + searxng.loadStyle = function (src) { + var path = searxng.settings.theme_static_path + "/" + src, + id = "style_" + src.replace('.', '_'), + s = d.getElementById(id); + if (s === null) { + s = d.createElement('link'); + s.setAttribute('id', id); + s.setAttribute('rel', 'stylesheet'); + s.setAttribute('type', 'text/css'); + s.setAttribute('href', path); + d.body.appendChild(s); + } + }; + + searxng.loadScript = function (src, callback) { + var path = searxng.settings.theme_static_path + "/" + src, + id = "script_" + src.replace('.', '_'), + s = d.getElementById(id); + if (s === null) { + s = d.createElement('script'); + s.setAttribute('id', id); + s.setAttribute('src', path); + s.onload = callback; + s.onerror = function () { + s.setAttribute('error', '1'); + }; + d.body.appendChild(s); + } else if (!s.hasAttribute('error')) { + try { + callback.apply(s, []); + } catch (exception) { + console.log(exception); + } + } else { + console.log("callback not executed : script '" + path + "' not loaded."); + } + }; + + searxng.insertBefore = function (newNode, referenceNode) { + referenceNode.parentNode.insertBefore(newNode, referenceNode); + }; + + searxng.insertAfter = function (newNode, referenceNode) { + referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling); + }; + + searxng.on('.close', 'click', function () { + this.parentNode.classList.add('invisible'); + }); + + function getEndpoint () { + for (var className of d.getElementsByTagName('body')[0].classList.values()) { + if (className.endsWith('_endpoint')) { + return className.split('_')[0]; + } + } + return ''; + } + + searxng.endpoint = getEndpoint(); + + return searxng; +})(window, document); diff --git a/searx/static/themes/marlo/src/js/main/infinite_scroll.js b/searx/static/themes/marlo/src/js/main/infinite_scroll.js new file mode 100644 index 000000000..07db3305a --- /dev/null +++ b/searx/static/themes/marlo/src/js/main/infinite_scroll.js @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +/* global searxng */ + +searxng.ready(function () { + 'use strict'; + + searxng.infinite_scroll_supported = ( + 'IntersectionObserver' in window && + 'IntersectionObserverEntry' in window && + 'intersectionRatio' in window.IntersectionObserverEntry.prototype); + + if (searxng.endpoint !== 'results') { + return; + } + + if (!searxng.infinite_scroll_supported) { + console.log('IntersectionObserver not supported'); + return; + } + + let d = document; + var onlyImages = d.getElementById('results').classList.contains('only_template_images'); + + function newLoadSpinner () { + var loader = d.createElement('div'); + loader.classList.add('loader'); + return loader; + } + + function replaceChildrenWith (element, children) { + element.textContent = ''; + children.forEach(child => element.appendChild(child)); + } + + function loadNextPage (callback) { + var form = d.querySelector('#pagination form.next_page'); + if (!form) { + return + } + replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]); + var formData = new FormData(form); + searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then( + function (response) { + var nextPageDoc = new DOMParser().parseFromString(response, 'text/html'); + var articleList = nextPageDoc.querySelectorAll('#urls article'); + var paginationElement = nextPageDoc.querySelector('#pagination'); + d.querySelector('#pagination').remove(); + if (articleList.length > 0 && !onlyImages) { + // do not add
element when there are only images + d.querySelector('#urls').appendChild(d.createElement('hr')); + } + articleList.forEach(articleElement => { + d.querySelector('#urls').appendChild(articleElement); + }); + if (paginationElement) { + d.querySelector('#results').appendChild(paginationElement); + callback(); + } + } + ).catch( + function (err) { + console.log(err); + var e = d.createElement('div'); + e.textContent = searxng.settings.translations.error_loading_next_page; + e.classList.add('dialog-error'); + e.setAttribute('role', 'alert'); + replaceChildrenWith(d.querySelector('#pagination'), [ e ]); + } + ) + } + + if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) { + const intersectionObserveOptions = { + rootMargin: "20rem", + }; + const observedSelector = 'article.result:last-child'; + const observer = new IntersectionObserver(entries => { + const paginationEntry = entries[0]; + if (paginationEntry.isIntersecting) { + observer.unobserve(paginationEntry.target); + loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions)); + } + }); + observer.observe(d.querySelector(observedSelector), intersectionObserveOptions); + } + +}); diff --git a/searx/static/themes/marlo/src/js/main/keyboard.js b/searx/static/themes/marlo/src/js/main/keyboard.js new file mode 100644 index 000000000..1fb12cae1 --- /dev/null +++ b/searx/static/themes/marlo/src/js/main/keyboard.js @@ -0,0 +1,461 @@ +/* SPDX-License-Identifier: AGPL-3.0-or-later */ +/* global searxng */ + +searxng.ready(function () { + + function isElementInDetail (el) { + while (el !== undefined) { + if (el.classList.contains('detail')) { + return true; + } + if (el.classList.contains('result')) { + // we found a result, no need to go to the root of the document: + // el is not inside a
element + return false; + } + el = el.parentNode; + } + return false; + } + + function getResultElement (el) { + while (el !== undefined) { + if (el.classList.contains('result')) { + return el; + } + el = el.parentNode; + } + return undefined; + } + + function isImageResult (resultElement) { + return resultElement && resultElement.classList.contains('result-images'); + } + + searxng.on('.result', 'click', function (e) { + if (!isElementInDetail(e.target)) { + highlightResult(this)(true, true); + let resultElement = getResultElement(e.target); + if (isImageResult(resultElement)) { + e.preventDefault(); + searxng.selectImage(resultElement); + } + } + }); + + searxng.on('.result a', 'focus', function (e) { + if (!isElementInDetail(e.target)) { + let resultElement = getResultElement(e.target); + if (resultElement && resultElement.getAttribute("data-vim-selected") === null) { + highlightResult(resultElement)(true); + } + if (isImageResult(resultElement)) { + searxng.selectImage(resultElement); + } + } + }, true); + + /* common base for layouts */ + var baseKeyBinding = { + 'Escape': { + key: 'ESC', + fun: removeFocus, + des: 'remove focus from the focused input', + cat: 'Control' + }, + 'c': { + key: 'c', + fun: copyURLToClipboard, + des: 'copy url of the selected result to the clipboard', + cat: 'Results' + }, + 'h': { + key: 'h', + fun: toggleHelp, + des: 'toggle help window', + cat: 'Other' + }, + 'i': { + key: 'i', + fun: searchInputFocus, + des: 'focus on the search input', + cat: 'Control' + }, + 'n': { + key: 'n', + fun: GoToNextPage(), + des: 'go to next page', + cat: 'Results' + }, + 'o': { + key: 'o', + fun: openResult(false), + des: 'open search result', + cat: 'Results' + }, + 'p': { + key: 'p', + fun: GoToPreviousPage(), + des: 'go to previous page', + cat: 'Results' + }, + 'r': { + key: 'r', + fun: reloadPage, + des: 'reload page from the server', + cat: 'Control' + }, + 't': { + key: 't', + fun: openResult(true), + des: 'open the result in a new tab', + cat: 'Results' + }, + }; + var keyBindingLayouts = { + + "default": Object.assign( + { /* SearXNG layout */ + 'ArrowLeft': { + key: '←', + fun: highlightResult('up'), + des: 'select previous search result', + cat: 'Results' + }, + 'ArrowRight': { + key: '→', + fun: highlightResult('down'), + des: 'select next search result', + cat: 'Results' + }, + }, baseKeyBinding), + + 'vim': Object.assign( + { /* Vim-like Key Layout. */ + 'b': { + key: 'b', + fun: scrollPage(-window.innerHeight), + des: 'scroll one page up', + cat: 'Navigation' + }, + 'f': { + key: 'f', + fun: scrollPage(window.innerHeight), + des: 'scroll one page down', + cat: 'Navigation' + }, + 'u': { + key: 'u', + fun: scrollPage(-window.innerHeight / 2), + des: 'scroll half a page up', + cat: 'Navigation' + }, + 'd': { + key: 'd', + fun: scrollPage(window.innerHeight / 2), + des: 'scroll half a page down', + cat: 'Navigation' + }, + 'g': { + key: 'g', + fun: scrollPageTo(-document.body.scrollHeight, 'top'), + des: 'scroll to the top of the page', + cat: 'Navigation' + }, + 'v': { + key: 'v', + fun: scrollPageTo(document.body.scrollHeight, 'bottom'), + des: 'scroll to the bottom of the page', + cat: 'Navigation' + }, + 'k': { + key: 'k', + fun: highlightResult('up'), + des: 'select previous search result', + cat: 'Results' + }, + 'j': { + key: 'j', + fun: highlightResult('down'), + des: 'select next search result', + cat: 'Results' + }, + 'y': { + key: 'y', + fun: copyURLToClipboard, + des: 'copy url of the selected result to the clipboard', + cat: 'Results' + }, + }, baseKeyBinding) + } + + var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default; + + searxng.on(document, "keydown", function (e) { + // check for modifiers so we don't break browser's hotkeys + if ( + Object.prototype.hasOwnProperty.call(keyBindings, e.key) + && !e.ctrlKey && !e.altKey + && !e.shiftKey && !e.metaKey + ) { + var tagName = e.target.tagName.toLowerCase(); + if (e.key === 'Escape') { + keyBindings[e.key].fun(e); + } else { + if (e.target === document.body || tagName === 'a' || tagName === 'button') { + e.preventDefault(); + keyBindings[e.key].fun(); + } + } + } + }); + + function highlightResult (which) { + return function (noScroll, keepFocus) { + var current = document.querySelector('.result[data-vim-selected]'), + effectiveWhich = which; + if (current === null) { + // no selection : choose the first one + current = document.querySelector('.result'); + if (current === null) { + // no first one : there are no results + return; + } + // replace up/down actions by selecting first one + if (which === "down" || which === "up") { + effectiveWhich = current; + } + } + + var next, results = document.querySelectorAll('.result'); + results = Array.from(results); // convert NodeList to Array for further use + + if (typeof effectiveWhich !== 'string') { + next = effectiveWhich; + } else { + switch (effectiveWhich) { + case 'visible': + var top = document.documentElement.scrollTop || document.body.scrollTop; + var bot = top + document.documentElement.clientHeight; + + for (var i = 0; i < results.length; i++) { + next = results[i]; + var etop = next.offsetTop; + var ebot = etop + next.clientHeight; + + if ((ebot <= bot) && (etop > top)) { + break; + } + } + break; + case 'down': + next = results[results.indexOf(current) + 1] || current; + break; + case 'up': + next = results[results.indexOf(current) - 1] || current; + break; + case 'bottom': + next = results[results.length - 1]; + break; + case 'top': + /* falls through */ + default: + next = results[0]; + } + } + + if (next) { + current.removeAttribute('data-vim-selected'); + next.setAttribute('data-vim-selected', 'true'); + if (!keepFocus) { + var link = next.querySelector('h3 a') || next.querySelector('a'); + if (link !== null) { + link.focus(); + } + } + if (!noScroll) { + scrollPageToSelected(); + } + } + }; + } + + function reloadPage () { + document.location.reload(true); + } + + function removeFocus (e) { + const tagName = e.target.tagName.toLowerCase(); + if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) { + document.activeElement.blur(); + } else { + searxng.closeDetail(); + } + } + + function pageButtonClick (css_selector) { + return function () { + var button = document.querySelector(css_selector); + if (button) { + button.click(); + } + }; + } + + function GoToNextPage () { + return pageButtonClick('nav#pagination .next_page button[type="submit"]'); + } + + function GoToPreviousPage () { + return pageButtonClick('nav#pagination .previous_page button[type="submit"]'); + } + + function scrollPageToSelected () { + var sel = document.querySelector('.result[data-vim-selected]'); + if (sel === null) { + return; + } + var wtop = document.documentElement.scrollTop || document.body.scrollTop, + wheight = document.documentElement.clientHeight, + etop = sel.offsetTop, + ebot = etop + sel.clientHeight, + offset = 120; + // first element ? + if ((sel.previousElementSibling === null) && (ebot < wheight)) { + // set to the top of page if the first element + // is fully included in the viewport + window.scroll(window.scrollX, 0); + return; + } + if (wtop > (etop - offset)) { + window.scroll(window.scrollX, etop - offset); + } else { + var wbot = wtop + wheight; + if (wbot < (ebot + offset)) { + window.scroll(window.scrollX, ebot - wheight + offset); + } + } + } + + function scrollPage (amount) { + return function () { + window.scrollBy(0, amount); + highlightResult('visible')(); + }; + } + + function scrollPageTo (position, nav) { + return function () { + window.scrollTo(0, position); + highlightResult(nav)(); + }; + } + + function searchInputFocus () { + window.scrollTo(0, 0); + var q = document.querySelector('#q'); + q.focus(); + if (q.setSelectionRange) { + var len = q.value.length; + q.setSelectionRange(len, len); + } + } + + function openResult (newTab) { + return function () { + var link = document.querySelector('.result[data-vim-selected] h3 a'); + if (link === null) { + link = document.querySelector('.result[data-vim-selected] > a'); + } + if (link !== null) { + var url = link.getAttribute('href'); + if (newTab) { + window.open(url); + } else { + window.location.href = url; + } + } + }; + } + + function initHelpContent (divElement) { + var categories = {}; + + for (var k in keyBindings) { + var key = keyBindings[k]; + categories[key.cat] = categories[key.cat] || []; + categories[key.cat].push(key); + } + + var sorted = Object.keys(categories).sort(function (a, b) { + return categories[b].length - categories[a].length; + }); + + if (sorted.length === 0) { + return; + } + + var html = '×'; + html += '

How to navigate SearXNG with hotkeys

'; + html += ''; + + for (var i = 0; i < sorted.length; i++) { + var cat = categories[sorted[i]]; + + var lastCategory = i === (sorted.length - 1); + var first = i % 2 === 0; + + if (first) { + html += ''; + } + html += ''; // col-sm-* + + if (!first || lastCategory) { + html += ''; // row + } + } + + html += '
'; + + html += '

' + cat[0].cat + '

'; + html += '
    '; + + for (var cj in cat) { + html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • '; + } + + html += '
'; + html += '
'; + + divElement.innerHTML = html; + } + + function toggleHelp () { + var helpPanel = document.querySelector('#vim-hotkeys-help'); + if (helpPanel === undefined || helpPanel === null) { + // first call + helpPanel = document.createElement('div'); + helpPanel.id = 'vim-hotkeys-help'; + helpPanel.className = 'dialog-modal'; + initHelpContent(helpPanel); + var body = document.getElementsByTagName('body')[0]; + body.appendChild(helpPanel); + } else { + // togggle hidden + helpPanel.classList.toggle('invisible'); + return; + } + } + + function copyURLToClipboard () { + var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a'); + if (currentUrlElement === null) return; + + const url = currentUrlElement.getAttribute('href'); + navigator.clipboard.writeText(url); + } + + searxng.scrollPageToSelected = scrollPageToSelected; + searxng.selectNext = highlightResult('down'); + searxng.selectPrevious = highlightResult('up'); +}); diff --git a/searx/static/themes/marlo/src/js/main/mapresult.js b/searx/static/themes/marlo/src/js/main/mapresult.js new file mode 100644 index 000000000..419bfa9fa --- /dev/null +++ b/searx/static/themes/marlo/src/js/main/mapresult.js @@ -0,0 +1,74 @@ +/* SPDX-License-Identifier: AGPL-3.0-or-later */ +/* global L */ +(function (w, d, searxng) { + 'use strict'; + + searxng.ready(function () { + searxng.on('.searxng_init_map', 'click', function (event) { + // no more request + this.classList.remove("searxng_init_map"); + + // + var leaflet_target = this.dataset.leafletTarget; + var map_lon = parseFloat(this.dataset.mapLon); + var map_lat = parseFloat(this.dataset.mapLat); + var map_zoom = parseFloat(this.dataset.mapZoom); + var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox); + var map_geojson = JSON.parse(this.dataset.mapGeojson); + + searxng.loadStyle('css/leaflet.css'); + searxng.loadScript('js/leaflet.js', function () { + var map_bounds = null; + if (map_boundingbox) { + var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]); + var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]); + map_bounds = L.latLngBounds(southWest, northEast); + } + + // init map + var map = L.map(leaflet_target); + // create the tile layer with correct attribution + var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; + var osmMapnikAttrib = 'Map data © OpenStreetMap contributors'; + var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib}); + var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png'; + var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors'; + var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib}); + // init map view + if (map_bounds) { + // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021 + // Still useful ? + setTimeout(function () { + map.fitBounds(map_bounds, { + maxZoom: 17 + }); + }, 0); + } else if (map_lon && map_lat) { + if (map_zoom) { + map.setView(new L.latLng(map_lat, map_lon), map_zoom); + } else { + map.setView(new L.latLng(map_lat, map_lon), 8); + } + } + + map.addLayer(osmMapnik); + + var baseLayers = { + "OSM Mapnik": osmMapnik, + "OSM Wikimedia": osmWikimedia, + }; + + L.control.layers(baseLayers).addTo(map); + + if (map_geojson) { + L.geoJson(map_geojson).addTo(map); + } /* else if(map_bounds) { + L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map); + } */ + }); + + // this event occour only once per element + event.preventDefault(); + }); + }); +})(window, document, window.searxng); diff --git a/searx/static/themes/marlo/src/js/main/preferences.js b/searx/static/themes/marlo/src/js/main/preferences.js new file mode 100644 index 000000000..a0b853d61 --- /dev/null +++ b/searx/static/themes/marlo/src/js/main/preferences.js @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: AGPL-3.0-or-later */ +(function (w, d, searxng) { + 'use strict'; + + if (searxng.endpoint !== 'preferences') { + return; + } + + searxng.ready(function () { + let engine_descriptions = null; + function load_engine_descriptions () { + if (engine_descriptions == null) { + searxng.http("GET", "engine_descriptions.json").then(function (content) { + engine_descriptions = JSON.parse(content); + for (const [engine_name, description] of Object.entries(engine_descriptions)) { + let elements = d.querySelectorAll('[data-engine-name="' + engine_name + '"] .engine-description'); + for (const element of elements) { + let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')'; + element.innerHTML = description[0] + source; + } + } + }); + } + } + + for (const el of d.querySelectorAll('[data-engine-name]')) { + searxng.on(el, 'mouseenter', load_engine_descriptions); + } + + const enableAllEngines = d.querySelectorAll(".enable-all-engines"); + const disableAllEngines = d.querySelectorAll(".disable-all-engines"); + const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]'); + const toggleEngines = (enable) => { + for (const el of engineToggles) { + // check if element visible, so that only engines of the current category are modified + if (el.offsetParent !== null) el.checked = !enable; + } + }; + for (const el of enableAllEngines) { + searxng.on(el, 'click', () => toggleEngines(true)); + } + for (const el of disableAllEngines) { + searxng.on(el, 'click', () => toggleEngines(false)); + } + + const copyHashButton = d.querySelector("#copy-hash"); + searxng.on(copyHashButton, 'click', (e) => { + e.preventDefault(); + navigator.clipboard.writeText(copyHashButton.dataset.hash); + copyHashButton.innerText = copyHashButton.dataset.copiedText; + }); + }); +})(window, document, window.searxng); diff --git a/searx/static/themes/marlo/src/js/main/results.js b/searx/static/themes/marlo/src/js/main/results.js new file mode 100644 index 000000000..7342f94b2 --- /dev/null +++ b/searx/static/themes/marlo/src/js/main/results.js @@ -0,0 +1,119 @@ +/* SPDX-License-Identifier: AGPL-3.0-or-later */ +(function (w, d, searxng) { + 'use strict'; + + if (searxng.endpoint !== 'results') { + return; + } + + searxng.ready(function () { + d.querySelectorAll('#urls img.image').forEach( + img => + img.addEventListener( + 'error', () => { + img.style.display = 'none'; + img.error = null; + } + )); + + if (d.querySelector('#search_url button#copy_url')) { + d.querySelector('#search_url button#copy_url').style.display = "block"; + } + + searxng.on('.btn-collapse', 'click', function () { + var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed'); + var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed'); + var target = this.getAttribute('data-target'); + var targetElement = d.querySelector(target); + var html = this.innerHTML; + if (this.classList.contains('collapsed')) { + html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed); + } else { + html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed); + } + this.innerHTML = html; + this.classList.toggle('collapsed'); + targetElement.classList.toggle('invisible'); + }); + + searxng.on('.media-loader', 'click', function () { + var target = this.getAttribute('data-target'); + var iframe_load = d.querySelector(target + ' > iframe'); + var srctest = iframe_load.getAttribute('src'); + if (srctest === null || srctest === undefined || srctest === false) { + iframe_load.setAttribute('src', iframe_load.getAttribute('data-src')); + } + }); + + searxng.on('#copy_url', 'click', function () { + var target = this.parentElement.querySelector('pre'); + navigator.clipboard.writeText(target.innerText); + this.innerText = this.dataset.copiedText; + }); + + searxng.selectImage = function (resultElement) { + /* eslint no-unused-vars: 0 */ + if (resultElement) { + // load full size image in background + const imgElement = resultElement.querySelector('.result-images-source img'); + const thumbnailElement = resultElement.querySelector('.image_thumbnail'); + const detailElement = resultElement.querySelector('.detail'); + if (imgElement) { + const imgSrc = imgElement.getAttribute('data-src'); + if (imgSrc) { + const loader = d.createElement('div'); + const imgLoader = new Image(); + + loader.classList.add('loader'); + detailElement.appendChild(loader); + + imgLoader.onload = e => { + imgElement.src = imgSrc; + loader.remove(); + }; + imgLoader.onerror = e => { + loader.remove(); + }; + imgLoader.src = imgSrc; + imgElement.src = thumbnailElement.src; + imgElement.removeAttribute('data-src'); + } + } + } + d.getElementById('results').classList.add('image-detail-open'); + searxng.scrollPageToSelected(); + } + + searxng.closeDetail = function (e) { + d.getElementById('results').classList.remove('image-detail-open'); + searxng.scrollPageToSelected(); + } + searxng.on('.result-detail-close', 'click', e => { + e.preventDefault(); + searxng.closeDetail(); + }); + searxng.on('.result-detail-previous', 'click', e => { + e.preventDefault(); + searxng.selectPrevious(false) + }); + searxng.on('.result-detail-next', 'click', e => { + e.preventDefault(); + searxng.selectNext(false); + }); + + w.addEventListener('scroll', function () { + var e = d.getElementById('backToTop'), + scrollTop = document.documentElement.scrollTop || document.body.scrollTop, + results = d.getElementById('results'); + if (e !== null) { + if (scrollTop >= 100) { + results.classList.add('scrolling'); + } else { + results.classList.remove('scrolling'); + } + } + }, true); + + }); + +})(window, document, window.searxng); diff --git a/searx/static/themes/marlo/src/js/main/search.js b/searx/static/themes/marlo/src/js/main/search.js new file mode 100644 index 000000000..ac1ece535 --- /dev/null +++ b/searx/static/themes/marlo/src/js/main/search.js @@ -0,0 +1,186 @@ +/* SPDX-License-Identifier: AGPL-3.0-or-later */ +/* global AutoComplete */ +(function (w, d, searxng) { + 'use strict'; + + var qinput_id = "q", qinput; + + const isMobile = window.matchMedia("only screen and (max-width: 50em)").matches; + + function submitIfQuery () { + if (qinput.value.length > 0) { + var search = document.getElementById('search'); + setTimeout(search.submit.bind(search), 0); + } + } + + function createClearButton (qinput) { + var cs = document.getElementById('clear_search'); + var updateClearButton = function () { + if (qinput.value.length === 0) { + cs.classList.add("empty"); + } else { + cs.classList.remove("empty"); + } + }; + + // update status, event listener + updateClearButton(); + cs.addEventListener('click', function (ev) { + qinput.value = ''; + qinput.focus(); + updateClearButton(); + ev.preventDefault(); + }); + qinput.addEventListener('keyup', updateClearButton, false); + } + + searxng.ready(function () { + qinput = d.getElementById(qinput_id); + + if (qinput !== null) { + // clear button + createClearButton(qinput); + + // autocompleter + if (searxng.settings.autocomplete_provider) { + searxng.autocomplete = AutoComplete.call(w, { + Url: "./autocompleter", + EmptyMessage: searxng.settings.translations.no_item_found, + HttpMethod: searxng.settings.http_method, + HttpHeaders: { + "Content-type": "application/x-www-form-urlencoded", + "X-Requested-With": "XMLHttpRequest" + }, + MinChars: searxng.settings.autocomplete_min, + Delay: 300, + _Position: function () {}, + _Open: function () { + var params = this; + Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"), function (li) { + if (li.getAttribute("class") != "locked") { + li.onmousedown = function () { + params._Select(li); + }; + } + }); + }, + _Select: function (item) { + AutoComplete.defaults._Select.call(this, item); + var form = item.closest('form'); + if (form) { + form.submit(); + } + }, + _MinChars: function () { + if (this.Input.value.indexOf('!') > -1) { + return 0; + } else { + return AutoComplete.defaults._MinChars.call(this); + } + }, + KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, { + "KeyUpAndDown_up": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, { + Callback: function (event) { + AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event); + var liActive = this.DOMResults.querySelector("li.active"); + if (liActive) { + AutoComplete.defaults._Select.call(this, liActive); + } + }, + }), + "Tab": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, { + Conditions: [{ + Is: 9, + Not: false + }], + Callback: function (event) { + if (this.DOMResults.getAttribute("class").indexOf("open") != -1) { + var liActive = this.DOMResults.querySelector("li.active"); + if (liActive !== null) { + AutoComplete.defaults._Select.call(this, liActive); + event.preventDefault(); + } + } + }, + }) + }), + }, "#" + qinput_id); + } + + /* + Monkey patch autocomplete.js to fix a bug + With the POST method, the values are not URL encoded: query like "1 + 1" are sent as "1 1" since space are URL encoded as plus. + See HTML specifications: + * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer + * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 + + autocomplete.js does not URL encode the name and values: + https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665 + + The monkey patch overrides the compiled version of the ajax function. + See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158 + The patch changes only the line 156 from + params.Request.send(params._QueryArg() + "=" + params._Pre()); + to + params.Request.send(encodeURIComponent(params._QueryArg()) + "=" + encodeURIComponent(params._Pre())); + + Related to: + * https://github.com/autocompletejs/autocomplete.js/issues/78 + * https://github.com/searxng/searxng/issues/1695 + */ + AutoComplete.prototype.ajax = function (params, request, timeout) { + if (timeout === void 0) { timeout = true; } + if (params.$AjaxTimer) { + window.clearTimeout(params.$AjaxTimer); + } + if (timeout === true) { + params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay); + } else { + if (params.Request) { + params.Request.abort(); + } + params.Request = request; + params.Request.send(encodeURIComponent(params._QueryArg()) + "=" + encodeURIComponent(params._Pre())); + } + }; + + if (!isMobile && document.querySelector('.index_endpoint')) { + qinput.focus(); + } + } + + // Additionally to searching when selecting a new category, we also + // automatically start a new search request when the user changes a search + // filter (safesearch, time range or language) (this requires JavaScript + // though) + if ( + qinput !== null + && searxng.settings.search_on_category_select + // If .search_filters is undefined (invisible) we are on the homepage and + // hence don't have to set any listeners + && d.querySelector(".search_filters") != null + ) { + searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery); + searxng.on(d.getElementById('time_range'), 'change', submitIfQuery); + searxng.on(d.getElementById('language'), 'change', submitIfQuery); + } + + // most common browsers at the time of writing this support :has, except for Firefox + // can be removed when Firefox / Firefox ESL starts supporting it as well + try { + // this fails when the browser does not support :has + d.querySelector("html:has(body)"); + } catch (_) { + // manually deselect the old selection when a new category is selected + for (let button of d.querySelectorAll("button.category_button")) { + searxng.on(button, 'click', () => { + const selected = d.querySelector("button.category_button.selected"); + console.log(selected); + selected.classList.remove("selected"); + }) + } + } + }); + +})(window, document, window.searxng); diff --git a/searx/static/themes/marlo/src/less/animations.less b/searx/static/themes/marlo/src/less/animations.less new file mode 100644 index 000000000..75c98308f --- /dev/null +++ b/searx/static/themes/marlo/src/less/animations.less @@ -0,0 +1,19 @@ +.dialog-modal { + animation-name: dialogmodal; + animation-duration: 0.13s; + + @keyframes dialogmodal { + 0% { + opacity: 0; + } + + 50% { + opacity: 0.5; + transform: translate(-50%, -50%) scale(1.05); + } + } +} + +input.checkbox-onoff[type="checkbox"]::before { + transition: left 0.25s; +} diff --git a/searx/static/themes/marlo/src/less/autocomplete.less b/searx/static/themes/marlo/src/less/autocomplete.less new file mode 100644 index 000000000..bb2e1890f --- /dev/null +++ b/searx/static/themes/marlo/src/less/autocomplete.less @@ -0,0 +1,75 @@ +/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */ + +.autocomplete { + position: absolute; + width: @search-width; + max-height: 0; + overflow-y: hidden; + .ltr-text-align-left(); + + .rounded-corners; + + &:active, + &:focus, + &:hover { + background-color: var(--color-autocomplete-background); + } + + &:empty { + display: none; + } + + > ul { + list-style-type: none; + margin: 0; + padding: 0; + + > li { + cursor: pointer; + padding: 0.5rem 1rem; + + &.active, + &:active, + &:focus, + &:hover { + background-color: var(--color-autocomplete-background-hover); + + a:active, + a:focus, + a:hover { + text-decoration: none; + } + } + + &.locked { + cursor: inherit; + } + } + } + + &.open { + display: block; + background-color: var(--color-autocomplete-background); + color: var(--color-autocomplete-font); + max-height: 32rem; + overflow-y: auto; + z-index: 100; + margin-top: 3.5rem; + border-radius: 0.8rem; + box-shadow: 0 2px 8px rgb(34 38 46 / 25%); + + &:empty { + display: none; + } + } +} + +@media screen and (max-width: @phone) { + .autocomplete { + width: 100%; + + > ul > li { + padding: 1rem; + } + } +} diff --git a/searx/static/themes/marlo/src/less/code.less b/searx/static/themes/marlo/src/less/code.less new file mode 100644 index 000000000..d6553feb8 --- /dev/null +++ b/searx/static/themes/marlo/src/less/code.less @@ -0,0 +1,51 @@ +@import "../generated/pygments.less"; + +.codelines { + margin: @results-margin 0 0 0; + padding: @result-padding 0 0 0; +} + +.code-highlight-sxng() { + .code-highlight { + pre { + overflow: auto; + margin: 0; + padding: 0 0 0.75rem 0; + } + + .linenos { + user-select: none; + cursor: default; + + &::selection { + background: transparent; /* WebKit/Blink Browsers */ + } + + &::-moz-selection { + background: transparent; /* Gecko Browsers */ + } + margin-right: 8px; + text-align: right; + } + + span.linenos { + color: #64708d; + } + } +} + +.code-highlight-sxng(); + +/// Dark Theme (autoswitch based on device pref) +@media (prefers-color-scheme: dark) { + :root.theme-auto { + .code-highlight-dark(); + .code-highlight-sxng(); + } +} + +// Dark Theme by preferences +:root.theme-dark { + .code-highlight-dark(); + .code-highlight-sxng(); +} diff --git a/searx/static/themes/marlo/src/less/definitions.less b/searx/static/themes/marlo/src/less/definitions.less new file mode 100644 index 000000000..45d5c878d --- /dev/null +++ b/searx/static/themes/marlo/src/less/definitions.less @@ -0,0 +1,277 @@ +/* + * SearXNG, A privacy-respecting, hackable metasearch engine + * + * To change the colors of the site, simple edit this variables + */ + +/// Light Theme +:root { + /// Base Colors + --color-base-font: #444; + --color-base-font-rgb: 68, 68, 68; + --color-base-background: #fff; + --color-base-background-mobile: #f2f5f8; + --color-url-font: #334999; + --color-url-visited-font: #9822c3; + /// Header Colors + --color-header-background: #fdfbff; + --color-header-border: #ddd; + /// Footer Colors + --color-footer-background: #fdfbff; + --color-footer-border: #ddd; + /// Sidebar Colors + --color-sidebar-border: #ddd; + --color-sidebar-font: #000; + --color-sidebar-background: #fff; + /// BackToTop Colors + --color-backtotop-font: #444; + --color-backtotop-border: #ddd; + --color-backtotop-background: #fff; + /// Button Colors + --color-btn-background: #3050ff; + --color-btn-font: #fff; + --color-show-btn-background: #bbb; + --color-show-btn-font: #000; + /// Search Input Colors + --color-search-border: #bbb; + --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%); + --color-search-background: #fff; + --color-search-font: #222; + --color-search-background-hover: #3050ff; + /// Modal Colors + --color-error: #db3434; + --color-error-background: lighten(#db3434, 40%); + --color-warning: #dbba34; + --color-warning-background: lighten(#dbba34, 40%); + --color-success: #42db34; + --color-success-background: lighten(#42db34, 40%); + /// Categories Colors + --color-categories-item-selected-font: #3050ff; + --color-categories-item-border-selected: #3050ff; + /// Autocomplete Colors + --color-autocomplete-font: #000; + --color-autocomplete-border: #bbb; + --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%); + --color-autocomplete-background: #fff; + --color-autocomplete-background-hover: #e3e3e3; + /// Answer Colors + --color-answer-font: #444; // same as --color-base-font + --color-answer-background: #fff; + /// Results Colors + --color-result-background: #fff; + --color-result-border: #ddd; + --color-result-url-font: #000; + --color-result-vim-selected: #f7f7f7; + --color-result-vim-arrow: #000bbb; + --color-result-description-highlight-font: #000; + --color-result-link-font: #000bbb; + --color-result-link-font-highlight: #000bbb; + --color-result-link-visited-font: #9822c3; + --color-result-publishdate-font: #777; + --color-result-engines-font: #545454; + --color-result-search-url-border: #ddd; + --color-result-search-url-font: #000; + // Images Colors + --color-result-image-span-font: #444; + --color-result-image-span-font-selected: #fff; + --color-result-image-background: #fff; + /// Settings Colors + --color-settings-tr-hover: #ebebeb; + --color-settings-engine-description-font: #545454; + --color-settings-table-group-background: #0001; + /// Detail modal + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #242424; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + /// Toolkit Colors + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #545454; + --color-toolkit-kbd-font: #fff; + --color-toolkit-kbd-background: #000; + --color-toolkit-dialog-border: #ddd; + --color-toolkit-dialog-background: #fff; + --color-toolkit-tabs-label-border: #fff; + --color-toolkit-tabs-section-border: #ddd; + --color-toolkit-select-background: #e1e1e1; + --color-toolkit-select-border: #ddd; + --color-toolkit-select-background-hover: #bbb; + --color-toolkit-input-text-font: #222; + --color-toolkit-checkbox-onoff-off-background: #ddd; + --color-toolkit-checkbox-onoff-on-background: #ddd; + --color-toolkit-checkbox-onoff-on-mark-background: #3050ff; + --color-toolkit-checkbox-onoff-on-mark-color: #fff; + --color-toolkit-checkbox-onoff-off-mark-background: #aaa; + --color-toolkit-checkbox-onoff-off-mark-color: #fff; + --color-toolkit-checkbox-label-background: #ddd; + --color-toolkit-checkbox-label-border: #ddd; + --color-toolkit-checkbox-input-border: #3050ff; + --color-toolkit-engine-tooltip-border: #ddd; + --color-toolkit-engine-tooltip-background: #fff; + --color-toolkit-loader-border: rgba(0, 0, 0, 0.2); + --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); + --color-doc-code: #003; + --color-doc-code-background: #ddeaff; +} + +.dark-themes() { + /// Base Colors + --color-base-font: #bbb; + --color-base-font-rgb: 187, 187, 187; + --color-base-background: #222428; + --color-base-background-mobile: #222428; + --color-url-font: #8af; + --color-url-visited-font: #c09cd9; + /// Header Colors + --color-header-background: #1e1e22; + --color-header-border: #333; + /// Footer Colors + --color-footer-background: #1e1e22; + --color-footer-border: #333; + /// Sidebar Colors + --color-sidebar-border: #555; + --color-sidebar-font: #fff; + --color-sidebar-background: #292c34; + /// BackToTop Colors + --color-backtotop-font: #bbb; + --color-backtotop-border: #333; + --color-backtotop-background: #2b2e36; + /// Button Colors + --color-btn-background: #58f; + --color-btn-font: #222; + --color-show-btn-background: #555; + --color-show-btn-font: #fff; + /// Search Input Colors + --color-search-border: #555; + --color-search-shadow: 0 2px 8px rgb(34 38 46 / 25%); + --color-search-background: #2b2e36; + --color-search-font: #fff; + --color-search-background-hover: #58f; + /// Modal Colors + --color-error: #f55b5b; + --color-error-background: darken(#db3434, 40%); + --color-warning: #f1d561; + --color-warning-background: darken(#dbba34, 40%); + --color-success: #79f56e; + --color-success-background: darken(#42db34, 40%); + /// Categories Colors + --color-categories-item-selected-font: #58f; + --color-categories-item-border-selected: #58f; + /// Autocomplete Colors + --color-autocomplete-font: #fff; + --color-autocomplete-border: #555; + --color-autocomplete-shadow: 0 2px 8px rgb(34 38 46 / 25%); + --color-autocomplete-background: #2b2e36; + --color-autocomplete-background-hover: #1e1e22; + /// Answer Colors + --color-answer-font: #bbb; // same as --color-base-font + --color-answer-background: #26292f; + /// Results Colors + --color-result-background: #26292f; + --color-result-border: #333; + --color-result-url-font: #fff; + --color-result-vim-selected: #1f1f23cc; + --color-result-vim-arrow: #8af; + --color-result-description-highlight-font: #fff; + --color-result-link-font: #8af; + --color-result-link-font-highlight: #8af; + --color-result-link-visited-font: #c09cd9; + --color-result-publishdate-font: #888; + --color-result-engines-font: #a4a4a4; + --color-result-search-url-border: #555; + --color-result-search-url-font: #fff; + /// Detail modal : same as the light version + --color-result-detail-font: #fff; + --color-result-detail-label-font: lightgray; + --color-result-detail-background: #1a1a1c; + --color-result-detail-hr: #555; + --color-result-detail-link: #8af; + --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); + --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); + // Images Colors + --color-result-image-span-font: #bbb; + --color-result-image-span-font-selected: #222; + --color-result-image-background: #222; + /// Settings Colors + --color-settings-tr-hover: #2c2c32; + --color-settings-engine-description-font: darken(#dcdcdc, 30%); + --color-settings-table-group-background: #1b1b21; + /// Toolkit Colors + --color-toolkit-badge-font: #fff; + --color-toolkit-badge-background: #555; + --color-toolkit-kbd-font: #000; + --color-toolkit-kbd-background: #fff; + --color-toolkit-dialog-border: #555; + --color-toolkit-dialog-background: #1e1e22; + --color-toolkit-tabs-label-border: #222; + --color-toolkit-tabs-section-border: #555; + --color-toolkit-select-background: #313338; + --color-toolkit-select-border: #555; + --color-toolkit-select-background-hover: #373b49; + --color-toolkit-input-text-font: #fff; + --color-toolkit-checkbox-onoff-off-background: #313338; + --color-toolkit-checkbox-onoff-on-background: #313338; + --color-toolkit-checkbox-onoff-on-mark-background: #58f; + --color-toolkit-checkbox-onoff-on-mark-color: #222; + --color-toolkit-checkbox-onoff-off-mark-background: #ddd; + --color-toolkit-checkbox-onoff-off-mark-color: #222; + --color-toolkit-checkbox-label-background: #222; + --color-toolkit-checkbox-label-border: #333; + --color-toolkit-checkbox-input-border: #58f; + --color-toolkit-engine-tooltip-border: #333; + --color-toolkit-engine-tooltip-background: #222; + --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); + --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); + --color-doc-code: #ddd; + --color-doc-code-background: #4d5a6f; +} + +/// Dark Theme (autoswitch based on device pref) +@media (prefers-color-scheme: dark) { + :root.theme-auto { + .dark-themes(); + } +} + +// Dark Theme by preferences +:root.theme-dark { + .dark-themes(); +} + +/// General Size +@results-width: 45rem; +@results-sidebar-width: 25rem; +@results-offset: 10rem; +@results-tablet-offset: 0.5rem; +@results-gap: 5rem; +@results-margin: 0.125rem; +@result-padding: 1rem; +@results-image-row-height: 12rem; +@results-image-row-height-phone: 6rem; +@search-width: 44rem; +// heigh of #search, see detail.less +@search-height: 7.6rem; + +/// Device Size +/// @desktop > @tablet +@tablet: 79.75em; // see https://github.com/searxng/searxng/issues/874 +@phone: 50em; +@small-phone: 35em; +@ultra-small-phone: 20rem; + +/// From style.less +@stacked-bar-chart: rgb(0, 0, 0); + +/// Load fonts from this directory. +@icon-font-path: "../../../fonts/"; +//** File name for all font files. +@icon-font-name: "glyphicons-halflings-regular"; +//** Element ID within SVG icon file. +@icon-font-svg-id: "glyphicons_halflingsregular"; + +// decoration of the select HTML elements +@select-light-svg-path: "../svg/select-light.svg"; +@select-dark-svg-path: "../svg/select-dark.svg"; diff --git a/searx/static/themes/marlo/src/less/detail.less b/searx/static/themes/marlo/src/less/detail.less new file mode 100644 index 000000000..fd7858a1e --- /dev/null +++ b/searx/static/themes/marlo/src/less/detail.less @@ -0,0 +1,254 @@ +#main_results #results.image-detail-open.only_template_images { + width: min(98%, 59.25rem) !important; +} + +#main_results #results.only_template_images.image-detail-open #backToTop { + .ltr-left(56.75rem) !important; + .ltr-right(inherit); +} + +article.result-images .detail { + display: none; +} + +#results.image-detail-open article.result-images[data-vim-selected] .detail { + display: flex; + flex-direction: column; + position: fixed; + .ltr-left(60rem); + .ltr-right(0); + top: @search-height; + transition: top 0.064s ease-in 0s; + bottom: 0; + background: var(--color-result-detail-background); + border: 1px solid var(--color-result-detail-background); + z-index: 10000; + padding: 4rem 3rem 3rem 3rem; + + a.result-images-source { + display: block; + flex: 1; + text-align: left; + width: 100%; + border: none; + text-decoration: none; + + img { + padding: 0; + margin: 0; + border: none; + object-fit: contain; + width: inherit; + height: inherit; + max-width: 100%; + min-height: inherit; + max-height: calc(100vh - 25rem - 7rem); + background: inherit; + } + } + + .result-images-labels { + color: var(--color-result-detail-font); + height: 19rem; + + hr { + border-top: 1px solid var(--color-result-detail-hr); + border-bottom: none; + } + + h4 { + height: 2rem; + overflow: hidden; + text-overflow: ellipsis; + font-size: 0.9rem; + margin-bottom: 0; + } + + p { + color: var(--color-result-detail-label-font); + font-size: 0.9rem; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + margin: 0.8rem 0; + + span { + display: inline-block; + width: 12rem; + } + } + + h4, + p, + a { + .ltr-text-align-left(); + } + + p.result-content { + height: 2rem; + line-height: unset; + overflow: hidden; + text-overflow: ellipsis; + } + + p.result-url { + white-space: nowrap; + overflow-x: hidden; + overflow-y: hidden; + text-overflow: ellipsis; + } + + p.result-content:hover, + p.result-url:hover { + position: relative; + overflow: inherit !important; + background: var(--color-result-detail-background); + text-overflow: inherit !important; + } + + a, + a:visited, + a:hover, + a:active { + color: var(--color-result-detail-link); + } + + a:hover { + text-decoration: underline; + } + } + + a.result-detail-close { + top: 1rem; + .ltr-left(1rem); + padding: 0.4rem; + } + + a.result-detail-previous { + top: 1rem; + .ltr-right(6rem); + // center the icon by moving it slightly on the left + padding-top: 0.4rem; + .ltr-padding-right(0.5rem); + padding-bottom: 0.4rem; + .ltr-padding-left(0.3rem); + } + + a.result-detail-next { + top: 1rem; + .ltr-right(2rem); + padding: 0.4rem; + } + + a.result-detail-close, + a.result-detail-next, + a.result-detail-previous { + border-radius: 50%; + display: block; + width: 1.5rem; + height: 1.5rem; + position: absolute; + filter: opacity(40%); + z-index: 2000002; + + span { + display: block; + width: 1.5rem; + height: 1.5rem; + text-align: center; + } + } + + a.result-detail-next, + a.result-detail-previous { + span::before { + // vertical center small icons + vertical-align: sub; + } + } + + a.result-detail-close, + a.result-detail-close:visited, + a.result-detail-close:hover, + a.result-detail-close:active, + a.result-detail-previous, + a.result-detail-previous:visited, + a.result-detail-previous:hover, + a.result-detail-previous:active, + a.result-detail-next, + a.result-detail-next:visited, + a.result-detail-next:hover, + a.result-detail-next:active { + color: var(--color-result-detail-font); + background: var(--color-result-detail-background); + border: 1px solid var(--color-result-detail-font); + } + + a.result-detail-close:focus, + a.result-detail-close:hover, + a.result-detail-previous:focus, + a.result-detail-previous:hover, + a.result-detail-next:focus, + a.result-detail-next:hover { + filter: opacity(80%); + } + + .loader { + position: absolute; + top: 1rem; + .ltr-right(50%); + border-top: 0.5em solid var(--color-result-detail-loader-border); + border-right: 0.5em solid var(--color-result-detail-loader-border); + border-bottom: 0.5em solid var(--color-result-detail-loader-border); + border-left: 0.5em solid var(--color-result-detail-loader-borderleft); + } +} + +#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail { + top: 0; + + a.result-images-source img { + max-height: calc(100vh - 25rem); + } +} + +@media screen and (max-width: @tablet) { + #results.image-detail-open article.result-images[data-vim-selected] .detail { + top: 0; + .ltr-left(0); + + a.result-images-source { + display: flex; + flex-direction: column; + justify-content: center; + + img { + width: 100%; + max-height: calc(100vh - 24rem); + } + } + + a.result-detail-next { + .ltr-right(1rem); + } + } +} + +@media screen and (max-width: @phone) { + #results.image-detail-open article.result-images[data-vim-selected] .detail { + top: 0; + .ltr-left(0); + padding: 1rem; + + a.result-images-source img { + width: 100%; + max-height: calc(100vh - 20rem); + margin: 0; + } + + .result-images-labels p span { + width: inherit; + .ltr-margin-right(1rem); + } + } +} diff --git a/searx/static/themes/marlo/src/less/embedded.less b/searx/static/themes/marlo/src/less/embedded.less new file mode 100644 index 000000000..2e9216ad2 --- /dev/null +++ b/searx/static/themes/marlo/src/less/embedded.less @@ -0,0 +1,33 @@ +iframe[src^="https://w.soundcloud.com"] { + height: 120px; +} + +iframe[src^="https://www.deezer.com"] { + // The real size is 92px, but 94px are needed to avoid an inner scrollbar of + // the embedded HTML. + height: 94px; +} + +iframe[src^="https://www.mixcloud.com"] { + // the embedded player from mixcloud has some quirks: initial there is an + // issue with an image URL that is blocked since it is an a Cross-Origin + // request. The alternative text (Mixcloud Logo then cause an + // scrollbar in the inner of the iframe we can't avoid. Another quirk comes + // when pressing the play button, somtimes the shown player has an height of + // 200px, somtimes 250px. + height: 250px; +} + +iframe[src^="https://bandcamp.com/EmbeddedPlayer"] { + // show playlist + height: 350px; +} + +iframe[src^="https://bandcamp.com/EmbeddedPlayer/track"] { + // hide playlist + height: 120px; +} + +iframe[src^="https://genius.com/songs"] { + height: 65px; +} diff --git a/searx/static/themes/marlo/src/less/index.less b/searx/static/themes/marlo/src/less/index.less new file mode 100644 index 000000000..8590d0c3b --- /dev/null +++ b/searx/static/themes/marlo/src/less/index.less @@ -0,0 +1,51 @@ +#main_index { + margin-top: 26vh; +} + +.index { + text-align: center; + + .title { + background: url('../img/searxng.png') no-repeat; + min-height: 4rem; + margin: 4rem auto; + background-position: center; + background-size: contain; + } + + h1 { + font-size: 4em; + visibility: hidden; + } + + #search, + #search_header { + margin: 0 auto; + background: inherit; + border: inherit; + padding: 0; + display: block; + } + + .search_filters { + display: block; + margin: 1em 0; + } + + .category label { + padding: 6px 10px; + border-bottom: initial !important; + } +} + +@media screen and (max-width: @tablet) { + div.title { + h1 { + font-size: 1em; + } + } + + #main_index { + margin-top: 6em; + } +} diff --git a/searx/static/themes/marlo/src/less/info.less b/searx/static/themes/marlo/src/less/info.less new file mode 100644 index 000000000..f354135d2 --- /dev/null +++ b/searx/static/themes/marlo/src/less/info.less @@ -0,0 +1,10 @@ +.info-page { + code { + font-family: monospace; + .rounded-corners-tiny; + background-color: var(--color-doc-code-background); + color: var(--color-doc-code); + padding: 0.2rem; + border: 0 none; + } +} diff --git a/searx/static/themes/marlo/src/less/mixins.less b/searx/static/themes/marlo/src/less/mixins.less new file mode 100644 index 000000000..a4bae7128 --- /dev/null +++ b/searx/static/themes/marlo/src/less/mixins.less @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +// Mixins +.text-size-adjust (@property: 100%) { + -webkit-text-size-adjust: @property; + -ms-text-size-adjust: @property; + -moz-text-size-adjust: @property; + text-size-adjust: @property; +} + +.rounded-corners (@radius: 10px) { + border-radius: @radius; +} + +.rounded-right-corners (@radius: 0 10px 10px 0) { + border-radius: @radius; +} + +.rounded-corners-tiny (@radius: 5px) { + border-radius: @radius; +} + +// disable user selection +.disable-user-select () { + -webkit-touch-callout: none; + user-select: none; +} + +.show-content-button() { + padding: 5px 10px; + .rounded-corners-tiny; + background: var(--color-show-btn-background); + color: var(--color-show-btn-font); + cursor: pointer; + + &:hover { + background: var(--color-btn-background); + color: var(--color-btn-font); + } +} diff --git a/searx/static/themes/marlo/src/less/new_issue.less b/searx/static/themes/marlo/src/less/new_issue.less new file mode 100644 index 000000000..a1e5006e3 --- /dev/null +++ b/searx/static/themes/marlo/src/less/new_issue.less @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later +.stats_endpoint { + .github-issue-button { + display: block; + padding: 8px 16px; + font-family: sans-serif; + font-size: 16px; + color: white; + background-color: #238636; + border: #2ea043; + border-radius: 10px !important; + box-shadow: rgba(0, 0, 0, 0) 0 0 0 0; + } + + .github-issue-button:hover { + background-color: #2ea043; + } + + .issue-hide { + display: none; + } + + input[type=checked] { + position: absolute; + } + + label { + margin: 1rem 1rem 1rem 0; + } + + .step_content { + margin: 1rem 1rem 1rem 2rem; + } + + .step1, + .step2 { + visibility: hidden; + } + + .step1_delay { + transition: visibility 0s linear 4s; + } + + #step1:checked ~ .step1, + #step2:checked ~ .step2 { + visibility: visible; + } +} diff --git a/searx/static/themes/marlo/src/less/preferences.less b/searx/static/themes/marlo/src/less/preferences.less new file mode 100644 index 000000000..ecbcceee7 --- /dev/null +++ b/searx/static/themes/marlo/src/less/preferences.less @@ -0,0 +1,225 @@ +table { + border-collapse: collapse; + + th, + td { + text-align: center; + padding: 1rem 0.5rem; + .ltr-text-align-left(); + } + + tr.pref-group th { + font-weight: normal; + .ltr-text-align-left(); + background: var(--color-settings-table-group-background); + } +} + +#main_preferences { + form { + width: 100%; + } + + fieldset { + margin: 8px; + border: none; + } + + legend { + margin: 0; + padding: 5px 0 0 0; + display: block; + .ltr-float-left(); + width: 300px; + } + + input[type="text"] { + width: 13.25rem; + color: var(--color-toolkit-input-text-font); + border: none; + background: none repeat scroll 0 0 var(--color-toolkit-select-background); + padding: 0.2rem 0.4rem; + height: 2rem; + .rounded-corners-tiny; + + &:hover, + &:focus { + background-color: var(--color-toolkit-select-background-hover); + } + } + + .value { + margin: 0; + padding: 0; + .ltr-float-left(); + width: 15em; + + select, + input[type="text"] { + font-size: inherit !important; + margin-top: 0; + .ltr-margin-right(1rem); + margin-bottom: 0; + .ltr-margin-left(0); + } + + select { + width: 14rem; + } + + select:focus, + input:focus { + outline: none; + box-shadow: 0 0 1px 1px var(--color-btn-background); + } + } + + .description { + margin: 0; + padding: 5px 0 0 0; + .ltr-float-right(); + width: 50%; + color: var(--color-settings-engine-description-font); + font-size: 90%; + } + + .bang { + .ltr-text-align-left(); + .rounded-corners-tiny; + background-color: var(--color-doc-code-background); + color: var(--color-doc-code); + padding: 0.2rem; + border: 0 none; + } + + .category { + .ltr-margin-right(0.5rem); + + label { + border: 2px solid transparent; + padding: 0.2rem 0.4rem; + .rounded-corners-tiny; + } + } + + .category input[type="checkbox"]:checked + label { + border: 2px solid var(--color-categories-item-border-selected); + } + + table.table_engines { + th.name { + /* stylelint-disable */ + label { + cursor: pointer; + } + /* stylelint-enable */ + + .engine-tooltip { + margin-top: 1.8rem; + .ltr-left(calc((100% - 85em) / 2 + 10em)); + max-width: 40rem; + + .engine-description { + margin-top: 0.5rem; + } + + .bang { + margin: 0.3rem; + } + } + } + + .checkbox-col, + .name, + .shortcut { + .ltr-text-align-left(); + } + } + + table.cookies { + width: 100%; + direction: ltr; + + th, + td { + text-align: left; + font-family: monospace; + font-size: 1rem; + padding: 0.5em; + vertical-align: top; + } + + td:first-child { + word-break: keep-all; + width: 14rem; + padding-right: 1rem; + } + + td:last-child { + word-break: break-all; + } + + & > tbody > tr:nth-child(even) > th, + & > tbody > tr:nth-child(even) > td { + background-color: var(--color-settings-tr-hover); + } + } + + .preferences_back { + background: none repeat scroll 0 0 var(--color-btn-background); + color: var(--color-btn-font); + border: 0 none; + .rounded-corners; + + cursor: pointer; + display: inline-block; + margin: 2px 4px; + padding: 0.7em; + + a { + color: var(--color-settings-return-font); + } + + a::first-letter { + text-transform: uppercase; + } + } + + #toggle-all-engines-container { + width: max-content; + margin-left: auto; + } + + div.selectable_url { + pre { + width: 100%; + } + } + + #copy-hash-container { + display: flex; + align-items: center; + gap: 0.5rem; + + div.selectable_url { + pre { + width: auto; + flex-grow: 1; + } + } + } + + #pref-hash-input { + width: 100%; + } +} + +@media screen and (max-width: @tablet) { + .preferences_back { + clear: both; + } + + .engine-tooltip { + .ltr-left(10em) !important; + } +} diff --git a/searx/static/themes/marlo/src/less/result_templates.less b/searx/static/themes/marlo/src/less/result_templates.less new file mode 100644 index 000000000..afabdf322 --- /dev/null +++ b/searx/static/themes/marlo/src/less/result_templates.less @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +.osm-map-box { + height: 300px; + width: 100%; + margin: 10px 0; +} diff --git a/searx/static/themes/marlo/src/less/search.less b/searx/static/themes/marlo/src/less/search.less new file mode 100644 index 000000000..f18a7ba2c --- /dev/null +++ b/searx/static/themes/marlo/src/less/search.less @@ -0,0 +1,380 @@ +/* +* SearXNG, A privacy-respecting, hackable metasearch engine +*/ + +#search { + padding: 0; + margin: 0; +} + +#search_header { + padding-top: 1.5em; + .ltr-padding-right(2em); + .ltr-padding-left(@results-offset - 3rem); + margin: 0; + background: var(--color-header-background); + border-bottom: 1px solid var(--color-header-border); + display: grid; + column-gap: 1.2rem; + row-gap: 1rem; + grid-template-columns: 3rem 1fr; + grid-template-areas: + "logo search" + "spacer categories"; +} + +.category_checkbox, +.category_button { + display: inline-block; + position: relative; + .ltr-margin-right(1rem); + padding: 0; +} + +.category_checkbox { + input { + display: none; + } + + label { + svg { + padding-right: 0.2rem; + } + + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + text-transform: capitalize; + font-size: 0.9em; + border-bottom: 2px solid transparent; + .disable-user-select; + + div.category_name { + margin: auto 0; + } + } + + input[type="checkbox"]:checked + label { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); + } +} + +button.category_button { + background-color: inherit; + color: var(--color-base-font); + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + align-items: center; + text-transform: capitalize; + font-size: 0.9em; + border: none; + border-bottom: 2px solid transparent; + + svg { + padding-right: 0.2rem; + } + + &.selected, + &:active, + &:focus-within { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); + } +} + +#categories_container:has(button.category_button:focus-within) button.category_button.selected { + color: var(--color-base-font); + border-bottom: none; +} + +#search_logo { + padding: 0.5rem 10px 0 10px; + grid-area: logo; + display: flex; + align-items: center; + justify-content: center; + + svg { + flex: 1; + width: 30px; + height: 30px; + margin: 0.5rem 0 auto 0; + } +} + +.search_categories { + grid-area: categories; + + .help { + display: none; + } + + &:hover .help { + display: block; + position: absolute; + background: var(--color-base-background); + padding: 1rem 0.6rem 0.6rem 0; + z-index: 1000; + width: 100%; + left: -0.1rem; + } +} + +#search_view { + padding: 0.5rem 0.3rem 0 0.5rem; + grid-area: search; + + body.results_endpoint & { + padding: 0.5rem 2.8rem 0 0; + } +} + +.search_box { + border-radius: 0.8rem; + width: @search-width; + display: inline-flex; + flex-direction: row; + white-space: nowrap; + box-shadow: var(--color-search-shadow); +} + +#clear_search { + display: block; + border-collapse: separate; + box-sizing: border-box; + width: 1.8rem; + margin: 0; + padding: 0.8rem 0.2rem; + background: none repeat scroll 0 0 var(--color-search-background); + border: none; + outline: none; + color: var(--color-search-font); + font-size: 1.1rem; + z-index: 10000; + + &:hover { + color: var(--color-search-background-hover); + } + + &.empty * { + display: none; + } +} + +html.no-js #clear_search.hide_if_nojs { + display: none; +} + +#q, +#send_search { + display: block; + margin: 0; + padding: 0.8rem; + background: none repeat scroll 0 0 var(--color-search-background); + border: none; + outline: none; + color: var(--color-search-font); + font-size: 1.1rem; + z-index: 2; +} + +#q { + width: 100%; + .ltr-padding-left(1rem); + .ltr-padding-right(0) !important; + .ltr-rounded-left-corners(0.8rem); +} + +#q::-ms-clear, +#q::-webkit-search-cancel-button { + display: none; +} + +#send_search { + .ltr-rounded-right-corners(0.8rem); + + &:hover { + cursor: pointer; + background-color: var(--color-search-background-hover); + color: var(--color-search-background); + } +} + +.no-js #clear_search, +.no-js #send_search { + width: auto !important; + .ltr-border-left(1px solid var(--color-search-border)); +} + +.search_filters { + margin-top: 0.6rem; + .ltr-margin-right(0); + margin-bottom: 0; + .ltr-margin-left(@results-offset + 0.6rem); + display: flex; + overflow-x: auto; + overscroll-behavior-inline: contain; + + select { + background-color: inherit; + + &:hover, + &:focus { + color: var(--color-base-font); + } + } +} + +@media screen and (max-width: @tablet) { + #search_header { + padding: 1.5em @results-tablet-offset 0 @results-tablet-offset; + column-gap: @results-tablet-offset; + } + + .search_filters { + margin-top: 0.6rem; + .ltr-margin-right(0); + margin-bottom: 0; + .ltr-margin-left(@results-tablet-offset + 3rem); + } + + #categories { + font-size: 90%; + clear: both; + } +} + +@media screen and (max-width: @tablet) and (hover: none) { + #main_index, + #main_results { + #categories_container { + width: max-content; + + .category_checkbox { + display: inline-block; + width: auto; + } + } + + #categories { + width: 100%; + .ltr-text-align-left(); + overflow-x: scroll; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + } + } +} + +@media screen and (max-width: @phone) { + #search_header { + width: 100%; + margin: 0; + padding: 0.1rem 0 0 0; + column-gap: 0; + row-gap: 0; + grid-template-areas: + "logo search" + "categories categories"; + } + + .search_logo { + padding: 0; + } + + .search_box { + width: 98%; + display: flex; + } + + #q { + width: 100%; + flex: 1; + } + + .search_filters { + margin: 0 10px; + padding: 0.5rem 0; + } + + .category { + display: inline-block; + width: auto; + margin: 0; + + svg { + display: none; + } + } + + .category_checkbox { + label { + padding: 1rem !important; + margin: 0 !important; + } + } + + .category_button { + padding: 1rem !important; + margin: 0 !important; + } + + #search_view:focus-within { + display: block; + background-color: var(--color-search-background); + position: absolute; + top: 0; + height: 100%; + width: 100%; + z-index: 10000; + + .search_box { + border-bottom: 1px solid var(--color-search-border); + width: 100%; + border-radius: 0; + box-shadow: none; + + #send_search { + .ltr-margin-right(0) !important; // Delete when send_search button is disabled on mobile. + } + + * { + border: none; + border-radius: 0; + box-shadow: none; + } + } + } + + #main_results #q:placeholder-shown ~ #send_search { + .ltr-margin-right(2.6rem); + transition: margin 0.1s; + } +} + +@media screen and (max-width: @ultra-small-phone) { + #search_header { + grid-template-areas: + "search search" + "categories categories"; + } + + #search_logo { + display: none; + } +} + +#categories { + .disable-user-select; + + &::-webkit-scrollbar { + width: 0; + height: 0; + } +} + +#categories_container { + position: relative; +} diff --git a/searx/static/themes/marlo/src/less/stats.less b/searx/static/themes/marlo/src/less/stats.less new file mode 100644 index 000000000..4658d4f2b --- /dev/null +++ b/searx/static/themes/marlo/src/less/stats.less @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +.engine-stats { + border-spacing: 0; + border-collapse: collapse; + + tr td, + tr th { + border-bottom: 1px solid var(--color-result-border); + padding: 0.25rem; + } + + table.engine-tooltip { + border-spacing: 0; + border-collapse: collapse; + + td, + th { + border: none; + } + } + + .engine-name { + width: 20rem; + } + + .engine-score { + width: 7rem; + text-align: right; + } + + .engine-reliability { + text-align: right; + } +} + +table.engine-error th.engine-error-type, +table.engine-error td.engine-error-type, +failed-test { + width: 10rem; +} + +.engine-errors { + margin-top: 3rem; + + table.engine-error { + max-width: 1280px; + margin: 1rem 0 3rem 0; + border: 1px solid var(--color-result-border); + .ltr-text-align-left(); + + tr th, + tr td { + padding: 0.5rem; + } + + & span.log_parameters { + border-right: 1px solid solid var(--color-result-border); + padding: 0 1rem 0 0; + margin: 0 0 0 0.5rem; + } + } +} + +.bar-chart-value { + width: 3em; + display: inline-block; + text-align: right; + padding-right: 0.5rem; +} + +.bar-chart-graph { + width: calc(100% - 5rem); + display: inline-block; +} + +.bar-chart-bar { + border: 3px solid #5bc0de; + margin: 1px 0; +} + +.bar-chart-serie1 { + border: 3px solid #5bc0de; + margin: 1px 0; + float: left; +} + +.bar-chart-serie2 { + border: 3px solid #deb15b; + margin: 1px 0; + float: left; +} + +.bar0 { + width: 0; + border: 0; +} + +.generate-bar(100); + +.generate-bar(@n, @i: 1) when (@i =< @n) { + .bar@{i} { + width: (@i * 100% / @n); + } + .generate-bar(@n, (@i + 1)); +} diff --git a/searx/static/themes/marlo/src/less/style-center.less b/searx/static/themes/marlo/src/less/style-center.less new file mode 100644 index 000000000..30c52cd5a --- /dev/null +++ b/searx/static/themes/marlo/src/less/style-center.less @@ -0,0 +1,118 @@ +/* +--center-page-width overrides the less variable @results-width when the results are centered +see the CSS rules for #results in style.less ( grid-template-columns and gap). + +In this file, the --center-page-width values comes from the Oscar theme (Bootstrap 3). + +All rules starts with ".center-aligment-yes #main_results" to be enabled only +on the /search URL and when the "center alignment" preference is enabled. +*/ + +@media screen and (min-width: @phone) { + .center-aligment-yes #main_results { + --center-page-width: 48rem; + } +} + +@media screen and (min-width: 62rem) { + .center-aligment-yes #main_results { + --center-page-width: 60rem; + } +} + +@media screen and (min-width: @tablet) { + .center-aligment-yes #main_results { + --center-page-width: 73rem; + } +} + +@media screen and (min-width: @phone) and (max-width: @tablet) { + // any change must be reset in @media screen and (min-width: @tablet) { ... } + .center-aligment-yes #main_results { + #results { + grid-template-columns: 60% calc(40% - @results-gap); + margin-left: 0; + margin-right: 0; + } + + #urls { + .ltr-margin-left(3rem); + } + + #sidebar { + .ltr-margin-right(1rem); + } + + #backToTop { + .ltr-left(calc(60% + 1rem)); + } + } +} + +@media screen and (min-width: @tablet) { + .center-aligment-yes #main_results { + display: flex; + flex-direction: column; + align-items: center; + + #search { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + + #search_header { + grid-template-columns: calc(50% - 4.5rem - var(--center-page-width) / 2) 3rem var(--center-page-width); + grid-template-areas: "na logo search" "na spacer categories"; + column-gap: 1.2rem; // from search.less + width: 100%; + padding-left: 0; + padding-right: 0; + } + + .search_filters { + .ltr-margin-left(0.5rem); + width: var(--center-page-width); + } + + #results { + // from style.less (when screen width = @tablet, reset layout from tablet) + .ltr-margin-right(2rem); + .ltr-margin-left(@results-offset); + // + + &.only_template_images, + &.image-detail-open { + // * grid-template-columns and .ltr-margin-left are set in style.less + // * With .image-detail-open.only_template_images, the width is set in detail.less + // * #results is going to be centered because of the #main_results rules, + // align-self aligns the results on the left or right according to the language. + align-self: flex-start; + } + + &:not(.only_template_images):not(.image-detail-open) { + // the gap is set in style.less + .ltr-margin-left(1.5rem); + grid-template-columns: calc(var(--center-page-width) - @results-gap - @results-sidebar-width) @results-sidebar-width; + + #backToTop { + .ltr-left(calc(50% - @results-sidebar-width - @results-gap + 1rem + var(--center-page-width) / 2)); + } + } + + .result .content { + max-width: inherit; + } + } + + // from style.less (when screen width = @tablet, reset layout from tablet) + #urls { + .ltr-margin-left(0); + } + + #sidebar { + .ltr-margin-right(0); + } + } +} diff --git a/searx/static/themes/marlo/src/less/style-ltr.less b/searx/static/themes/marlo/src/less/style-ltr.less new file mode 100644 index 000000000..6f7218b02 --- /dev/null +++ b/searx/static/themes/marlo/src/less/style-ltr.less @@ -0,0 +1,85 @@ +.ltr-left(@offset) { + left: @offset; +} + +.ltr-right(@offset) { + right: @offset; +} + +.ltr-margin-right(@offset) { + margin-right: @offset; +} + +.ltr-margin-left(@offset) { + margin-left: @offset; +} + +.ltr-border-right(@offset) { + border-right: @offset; +} + +.ltr-border-left(@offset) { + border-left: @offset; +} + +.ltr-padding-right(@offset) { + padding-right: @offset; +} + +.ltr-padding-left(@offset) { + padding-left: @offset; +} + +.ltr-float-left() { + float: left; +} + +.ltr-float-right() { + float: right; +} + +.ltr-text-align-right() { + text-align: right; +} + +.ltr-rounded-left-corners(@radius) { + border-radius: @radius 0 0 @radius; +} + +.ltr-rounded-top-left-corners(@radius) { + border-radius: @radius 0 0 0; +} + +.ltr-rounded-bottom-left-corners(@radius) { + border-radius: 0 0 0 @radius; +} + +.ltr-rounded-right-corners(@radius) { + border-radius: 0 @radius @radius 0; +} + +.ltr-rounded-top-right-corners(@radius) { + border-radius: 0 @radius 0 0; +} + +.ltr-rounded-bottom-right-corners(@radius) { + border-radius: 0 0 @radius 0; +} + +.ltr-text-align-left() { + text-align: left; +} + +.ltr-border-left-width(@offset) { + border-left-width: @offset; +} + +.ltr-border-right-width(@offset) { + border-right-width: @offset; +} + +.ltr-transform() { + transform: scale(1, 1); +} + +@import "style.less"; diff --git a/searx/static/themes/marlo/src/less/style-rtl.less b/searx/static/themes/marlo/src/less/style-rtl.less new file mode 100644 index 000000000..aa97e039c --- /dev/null +++ b/searx/static/themes/marlo/src/less/style-rtl.less @@ -0,0 +1,155 @@ +.ltr-left(@offset) { + right: @offset; +} + +.ltr-right(@offset) { + left: @offset; +} + +.ltr-margin-right(@offset) { + margin-left: @offset; +} + +.ltr-margin-left(@offset) { + margin-right: @offset; +} + +.ltr-border-right(@offset) { + border-left: @offset; +} + +.ltr-border-left(@offset) { + border-right: @offset; +} + +.ltr-padding-right(@offset) { + padding-left: @offset; +} + +.ltr-padding-left(@offset) { + padding-right: @offset; +} + +.ltr-float-left() { + float: right; +} + +.ltr-float-right() { + float: left; +} + +.ltr-text-align-right() { + text-align: left; +} + +.ltr-rounded-left-corners(@radius) { + border-radius: 0 @radius @radius 0; +} + +.ltr-rounded-top-left-corners(@radius) { + border-radius: 0 @radius 0 0; +} + +.ltr-rounded-bottom-left-corners(@radius) { + border-radius: 0 0 @radius 0; +} + +.ltr-rounded-right-corners(@radius) { + border-radius: @radius 0 0 @radius; +} + +.ltr-rounded-top-right-corners(@radius) { + border-radius: @radius 0 0 0; +} + +.ltr-rounded-bottom-right-corners(@radius) { + border-radius: 0 0 0 @radius; +} + +.ltr-text-align-left() { + text-align: right; +} + +.ltr-border-left-width(@offset) { + border-right-width: @offset; +} + +.ltr-border-right-width(@offset) { + border-left-width: @offset; +} + +.ltr-transform() { + transform: scale(-1, 1); +} + +@import "style.less"; + +#q, +#sidebar .infobox dt bdi { + direction: rtl; +} + +// URL are displayed LTR but align on the right +#urls { + direction: initial; + text-align: right; + + .result .url_wrapper { + justify-content: end; + } +} + +// Image flexbox +#main_results div#results.only_template_images #urls { + direction: rtl; +} + +// Image detail +#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p { + direction: rtl; + + &.result-url { + // Display URL using the LTR direction + direction: ltr; + + span { + // And put the label on the right + direction: rtl; + float: right; + } + } +} + +// select HTML element +@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) { + select { + border-width: 0 0 0 2rem; + background-position-x: -2rem; + } +} + +// vim hotkey helps is not translated +#vim-hotkeys-help table { + direction: ltr; + text-align: left; +} + +// Logo on the right +#main_preferences h1, +#main_stats h1 { + background-position-x: 100%; +} + +// patch of stats.less +.bar-chart-serie1, +.bar-chart-serie2 { + float: right; +} + +.engine-stats .engine-name, +.engine-stats .engine-score, +.engine-stats .result-count, +.engine-stats .response-time, +.engine-stats .engine-reliability { + text-align: right; +} diff --git a/searx/static/themes/marlo/src/less/style.less b/searx/static/themes/marlo/src/less/style.less new file mode 100644 index 000000000..c7f459e59 --- /dev/null +++ b/searx/static/themes/marlo/src/less/style.less @@ -0,0 +1,1139 @@ +/* +* SearXNG, A privacy-respecting, hackable metasearch engine +* +* To convert "style.less" to "style.css" run: $make styles +*/ + +// stylelint-disable no-descending-specificity + +@import (inline) "../../node_modules/normalize.css/normalize.css"; +@import "definitions.less"; +@import "mixins.less"; +@import "code.less"; +@import "toolkit.less"; +@import "autocomplete.less"; +@import "detail.less"; +@import "animations.less"; +@import "embedded.less"; +@import "info.less"; +@import "new_issue.less"; +@import "stats.less"; +@import "result_templates.less"; + +// for index.html template +@import "index.less"; + +// for preferences.html template +@import "preferences.less"; + +// Search-Field +@import "search.less"; + +// to center the results +@import "style-center.less"; + +// ion-icon +.ion-icon { + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; + .ltr-transform(); +} + +.ion-icon-small { + width: 1rem; + height: 1rem; + .ion-icon; +} + +.ion-icon-big { + width: 1.5rem; + height: 1.5rem; + .ion-icon; +} + +// Main LESS-Code +html { + font-family: sans-serif; + font-size: 0.9em; + .text-size-adjust; + + color: var(--color-base-font); + background-color: var(--color-base-background); + padding: 0; + margin: 0; + + scroll-behavior: smooth; +} + +body, +main { + padding: 0; + margin: 0; +} + +body { + display: flex; + flex-direction: column; + height: 100vh; + margin: 0; +} + +main { + width: 100%; + margin-bottom: 2rem; + flex: 1; +} + +.page_with_header { + margin: 2em auto; + width: 85em; +} + +footer { + clear: both; + min-height: 4rem; + padding: 1rem 0; + width: 100%; + text-align: center; + background-color: var(--color-footer-background); + border-top: 1px solid var(--color-footer-border); + overflow: hidden; + + p { + font-size: 0.9em; + } +} + +.page_with_header .logo { + height: 40px; +} + +input[type="submit"], +#results button[type="submit"], +.button { + padding: 0.7rem; + display: inline-block; + background: var(--color-btn-background); + color: var(--color-btn-font); + .rounded-corners; + + border: 0; + cursor: pointer; +} + +a { + text-decoration: none; + color: var(--color-url-font); + + &:visited { + color: var(--color-url-visited-font); + + .highlight { + color: var(--color-url-visited-font); + } + } +} + +article[data-vim-selected] { + background: var(--color-result-vim-selected); + .ltr-border-left(0.2rem solid var(--color-result-vim-arrow)); + .ltr-rounded-right-corners(10px); +} + +article.result-images[data-vim-selected] { + background: var(--color-result-vim-arrow); + border: none; + .rounded-corners; + + .image_thumbnail { + filter: opacity(60%); + } + + span.title, + span.source { + color: var(--color-result-image-span-font-selected); + } +} + +article[data-vim-selected].category-videos, +article[data-vim-selected].category-news, +article[data-vim-selected].category-map, +article[data-vim-selected].category-music, +article[data-vim-selected].category-files, +article[data-vim-selected].category-social { + border: 1px solid var(--color-result-vim-arrow); + .rounded-corners; +} + +.result { + margin: @results-margin 0; + padding: @result-padding; + .ltr-border-left(0.2rem solid transparent); + + h3 { + font-size: 1.2rem; + word-wrap: break-word; + margin: 0.4rem 0 0.4rem 0; + padding: 0; + + a { + color: var(--color-result-link-font); + font-weight: normal; + font-size: 1.1em; + + &:visited { + color: var(--color-result-link-visited-font); + } + + &:focus, + &:hover { + text-decoration: underline; + border: none; + outline: none; + } + } + } + + .cache_link, + .proxyfied_link { + font-size: smaller !important; + margin-left: 0.5rem; + } + + .content, + .stat { + font-size: 0.9em; + margin: 0; + padding: 0; + max-width: 54em; + word-wrap: break-word; + line-height: 1.24; + + .highlight { + color: var(--color-result-description-highlight-font); + background: inherit; + font-weight: bold; + } + } + + .altlink a { + font-size: 0.9em; + margin: 0 10px 0 0; + .show-content-button; + } + + .codelines { + .highlight { + color: inherit; + background: inherit; + font-weight: normal; + } + } + + .url_wrapper { + display: flex; + font-size: 1rem; + color: var(--color-result-url-font); + flex-wrap: nowrap; + overflow: hidden; + flex-direction: row; + margin: 0; + padding: 0; + + .url_o1 { + white-space: nowrap; + flex-shrink: 1; + } + + .url_o1::after { + content: " "; + width: 1ch; + display: inline-block; + } + + .url_o2 { + overflow: hidden; + white-space: nowrap; + flex-basis: content; + flex-grow: 0; + flex-shrink: 1; + text-align: right; + + .url_i2 { + float: right; + } + } + } + + .published_date, + .result_length, + .result_author, + .result_shipping, + .result_source_country { + font-size: 0.8em; + color: var(--color-result-publishdate-font); + } + + .result_price { + font-size: 1.2em; + color: var(--color-result-description-highlight-font); + } + + img { + &.thumbnail { + .ltr-float-left(); + padding-top: 0.6rem; + .ltr-padding-right(1rem); + width: 20rem; + height: unset; // remove heigth value that was needed for lazy loading + } + + &.image { + .ltr-float-left(); + padding-top: 0.6rem; + .ltr-padding-right(1rem); + width: 7rem; + max-height: 7rem; + object-fit: scale-down; + object-position: right top; + } + } + + .break { + clear: both; + } +} + +.result-paper, +.result-packages { + .attributes { + display: table; + border-spacing: 0.125rem; + + div { + display: table-row; + + span { + font-size: 0.9rem; + margin-top: 0.25rem; + display: table-cell; + + time { + font-size: 0.9rem; + } + } + + span:first-child { + color: var(--color-base-font); + min-width: 10rem; + } + + span:nth-child(2) { + color: var(--color-result-publishdate-font); + } + } + } + + .content { + margin-top: 0.25rem; + } + + .comments { + font-size: 0.9rem; + margin: 0.25rem 0 0 0; + padding: 0; + word-wrap: break-word; + line-height: 1.24; + font-style: italic; + } +} + +.result-packages { + .attributes { + margin-top: 0.3rem; + } +} + +.template_group_images { + display: flex; + flex-wrap: wrap; +} + +.template_group_images::after { + flex-grow: 10; + content: ""; +} + +.category-videos, +.category-news, +.category-map, +.category-music, +.category-files, +.category-social { + border: 1px solid var(--color-result-border); + margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important; + .rounded-corners; +} + +.category-social .image { + width: auto !important; + min-width: 48px; + min-height: 48px; + padding: 0 5px 25px 0 !important; +} + +.audio-control audio { + width: 100%; + padding: 10px 0 0 0; +} + +.embedded-content iframe { + width: 100%; + padding: 10px 0 0 0; +} + +.result-videos .content { + overflow: hidden; +} + +.result-videos .embedded-video iframe { + width: 100%; + aspect-ratio: 16 / 9; + padding: 10px 0 0 0; +} + +@supports not (aspect-ratio: 1 / 1) { + // support older browsers which do not have aspect-ratio + // https://caniuse.com/?search=aspect-ratio + .result-videos .embedded-video iframe { + height: calc(@results-width * 9 / 16); + } +} + +.engines { + .ltr-float-right(); + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + color: var(--color-result-engines-font); + + span { + font-size: smaller; + margin-top: 0; + margin-bottom: 0; + .ltr-margin-right(0.5rem); + .ltr-margin-left(0); + } +} + +.small_font { + font-size: 0.8em; +} + +.highlight { + color: var(--color-result-link-font-highlight); + background: inherit; +} + +.empty_element { + font-style: italic; +} + +.result-images { + flex-grow: 1; + padding: 0.5rem 0.5rem 3rem 0.5rem; + margin: 0.25rem; + border: none !important; + height: @results-image-row-height; + + & > a { + position: relative; + outline: none; + } + + img { + margin: 0; + padding: 0; + border: none; + height: 100%; + width: 100%; + object-fit: cover; + vertical-align: bottom; + background: var(--color-result-image-background); + } + + .image_resolution { + position: absolute; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 50%); + padding: 0.3rem 0.5rem; + font-size: 0.9rem; + color: #fff; + border-top-left-radius: 0.3rem; + } + + span.title, + span.source { + display: block; + position: absolute; + + width: 100%; + font-size: 0.9rem; + color: var(--color-result-image-span-font); + padding: 0.5rem 0 0 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + span.source { + padding: 1.8rem 0 0 0; + font-size: 0.7rem; + } +} + +.result-map { + img.image { + .ltr-float-right() !important; + height: 100px !important; + width: auto !important; + } + + table { + font-size: 0.9em; + width: auto; + border-collapse: separate; + border-spacing: 0 0.35rem; + + th { + font-weight: inherit; + width: 17rem; + vertical-align: top; + .ltr-text-align-left(); + } + + td { + vertical-align: top; + .ltr-text-align-left(); + } + } +} + +.hidden { + display: none !important; +} + +#results { + margin-top: 1rem; + .ltr-margin-right(2rem); + margin-bottom: 0; + .ltr-margin-left(@results-offset); + display: grid; + grid-template-columns: @results-width @results-sidebar-width; + grid-template-rows: min-content min-content 1fr min-content; + gap: 0 @results-gap; + grid-template-areas: + "corrections sidebar" + "answers sidebar" + "urls sidebar" + "pagination sidebar"; +} + +#results #sidebar *:first-child { + margin-top: 0; +} + +#urls { + padding: 0; + grid-area: urls; +} + +#apis .wrapper { + display: flex; +} + +#suggestions { + .wrapper { + display: flex; + flex-flow: column; + justify-content: flex-end; + + form { + display: inline-block; + flex: 1 1 50%; + } + } +} + +#suggestions, +#infoboxes { + input { + padding: 0; + margin: 3px; + font-size: 0.9em; + display: inline-block; + background: transparent; + color: var(--color-result-search-url-font); + cursor: pointer; + width: calc(100%); + text-overflow: ellipsis; + overflow: hidden; + text-align: left; + } + + input[type="submit"], + .infobox .url a { + color: var(--color-result-link-font); + text-decoration: none; + font-size: 0.9rem; + + &:hover { + text-decoration: underline; + } + } +} + +#corrections { + grid-area: corrections; + display: flex; + flex-flow: row wrap; + margin: 0 0 1em 0; + + h4, + input[type="submit"] { + display: inline-block; + padding: 0.5rem; + margin: 0.5rem; + } + + input[type="submit"] { + font-size: 0.8rem; + .rounded-corners-tiny; + } +} + +#infoboxes .title, +#suggestions .title, +#search_url .title, +#engines_msg .title, +#apis .title { + margin: 2em 0 0.5em 0; + color: var(--color-base-font); +} + +summary.title { + cursor: pointer; + padding-top: 1em; +} + +.sidebar-collapsable { + border-top: 1px solid var(--color-sidebar-border); + padding-bottom: 0.5em; +} + +#sidebar-end-collapsable { + border-bottom: 1px solid var(--color-sidebar-border); + width: 100%; +} + +#answers { + grid-area: answers; + background: var(--color-answer-background); + padding: @result-padding; + margin: 1rem 0; + margin-top: 0; + color: var(--color-answer-font); + .rounded-corners; + + h4 { + display: none; + } + + span { + overflow-wrap: anywhere; + } + + .answer { + display: flex; + flex-direction: column; + } + + .answer-url { + margin-left: auto; + margin-top: 5px; + margin-right: 10px; + margin-bottom: 10px; + } +} + +#infoboxes { + form { + min-width: 210px; + } +} + +#sidebar { + grid-area: sidebar; + word-wrap: break-word; + color: var(--color-sidebar-font); + + .infobox { + margin: 10px 0 10px; + border: 1px solid var(--color-sidebar-border); + padding: 1rem; + font-size: 0.9em; + .rounded-corners; + + h2 { + margin: 0 0 0.5em 0; + } + + img { + max-width: 100%; + max-height: 12em; + display: block; + margin: 0 auto; + padding: 0; + } + + dt { + font-weight: bold; + } + + .attributes { + dl { + margin: 0.5em 0; + } + + dt { + display: inline; + margin-top: 0.5em; + .ltr-margin-right(0.25em); + margin-bottom: 0.5em; + .ltr-margin-left(0); + padding: 0; + } + + dd { + display: inline; + margin: 0.5em 0; + padding: 0; + } + } + + input { + font-size: 1em; + } + + br { + clear: both; + } + + .attributes, + .urls { + clear: both; + } + } +} + +#apis { + input { + font-size: 0.9em; + margin: 0 10px 0 0; + .show-content-button; + } +} + +#search_url { + div.selectable_url { + pre { + float: left; + width: 200em; + } + } + + button#copy_url { + float: right; + padding: 0.4rem; + margin-left: 0.5rem; + border-radius: 0.3rem; + display: none; // will be shown by JS. + } +} + +#links_on_top { + position: absolute; + .ltr-right(1rem); + .ltr-text-align-right(); + top: 2.7rem; + padding: 0; + border: 0; + display: flex; + align-items: center; + font-size: 1em; + color: var(--color-search-font); + + a { + display: flex; + align-items: center; + margin-left: 1em; + + svg { + font-size: 1.2em; + .ltr-margin-right(0.125em); + } + } + + a, + a:link *, + a:hover *, + a:visited *, + a:active * { + color: var(--color-search-font); + } +} + +#pagination { + grid-area: pagination; + + br { + clear: both; + } +} + +.numbered_pagination { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + overflow: hidden; +} + +.page_number { + background: transparent !important; + color: var(--color-result-link-font) !important; + text-decoration: underline; +} + +.page_number_current { + background: transparent; + color: var(--color-result-link-visited-font); + border: none; +} + +#backToTop { + border: 1px solid var(--color-backtotop-border); + margin: 0; + padding: 0; + font-size: 1em; + background: var(--color-backtotop-background); + position: fixed; + bottom: 8rem; + .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em)); + transition: opacity 0.5s; + opacity: 0; + pointer-events: none; + .rounded-corners; + + a { + display: block; + margin: 0; + padding: 0.7em; + } + + a, + a:visited, + a:hover, + a:active { + color: var(--color-backtotop-font); + } +} + +#results.scrolling #backToTop { + opacity: 1; + pointer-events: all; +} + +/* + tablet layout +*/ + +.results-tablet() { + #links_on_top { + span { + display: none; + } + } + + .page_with_header { + margin: 2rem 0.5rem; + width: auto; + } + + #infoboxes { + position: inherit; + max-width: inherit; + + .infobox { + clear: both; + + img { + .ltr-float-left(); + max-width: 10em; + margin-top: 0.5em; + .ltr-margin-right(0.5em); + margin-bottom: 0.5em; + .ltr-margin-left(0); + } + } + } + + #sidebar { + margin: 0 @results-tablet-offset @results-margin @results-tablet-offset; + padding: 0; + float: none; + border: none; + width: auto; + + input { + border: 0; + } + } + + .result { + .thumbnail { + max-width: 98%; + } + + .url { + span.url { + display: block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 100%; + } + } + + .engines { + .ltr-float-right(); + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + padding: 3px 0 0 0; + } + } + + .result-images { + border-bottom: none !important; + } + + .image_result { + max-width: 98%; + + img { + max-width: 98%; + } + } + + #backToTop { + display: none; + } + + #pagination { + margin: 2rem 0 0 0 !important; + } + + #main_results div#results { + margin: 0 auto; + justify-content: center; + display: grid; + grid-template-columns: @results-width; + grid-template-rows: min-content min-content min-content 1fr min-content min-content; + gap: 0; + grid-template-areas: + "corrections" + "answers" + "sidebar" + "urls" + "pagination"; + } +} + +@media screen and (max-width: calc(@tablet - 0.5px)) { + #links_on_top { + span { + display: none; + } + } +} + +@media screen and (max-width: 52rem) { + body.results_endpoint { + #links_on_top { + .link_on_top_about, + .link_on_top_donate { + display: none; + } + } + } +} + +@media screen and (min-width: @phone) and (max-width: @tablet) { + // when .center-aligment-yes, see style-center.less + // the media query includes "min-width: @phone" + // because the phone layout includes the tablet layout unconditionally. + .center-aligment-no { + .results-tablet(); + } +} + +/* Misc */ + +#main_results div#results.only_template_images { + margin: 1rem @results-tablet-offset 0 @results-tablet-offset; + display: grid; + grid-template-columns: 100%; + grid-template-rows: min-content min-content min-content 1fr min-content; + gap: 0; + grid-template-areas: + "corrections" + "answers" + "sidebar" + "urls" + "pagination"; + + #sidebar { + display: none; + } + + #urls { + margin: 0; + display: flex; + flex-wrap: wrap; + } + + #urls::after { + flex-grow: 10; + content: ""; + } + + #backToTop { + .ltr-left(auto); + .ltr-right(1rem); + } + + #pagination { + .ltr-margin-right(4rem); + } +} + +/* + phone layout +*/ + +@media screen and (max-width: @phone) { + // based on the tablet layout + .results-tablet(); + + html { + background-color: var(--color-base-background-mobile); + } + + #main_results div#results { + grid-template-columns: 100%; + margin: 0 auto; + } + + #links_on_top { + top: 1.4rem; + .ltr-right(10px); + } + + #main_index #links_on_top { + top: 0.5rem; + .ltr-right(0.5rem); + } + + #results { + margin: 0; + padding: 0; + } + + #pagination { + margin: 2rem 1rem 0 1rem !important; + } + + article[data-vim-selected] { + border: 1px solid var(--color-result-vim-arrow); + .rounded-corners; + } + + .result { + background: var(--color-result-background); + border: 1px solid var(--color-result-background); + margin: 1rem 10px; + .rounded-corners; + } + + .result-images { + margin: 0; + height: @results-image-row-height-phone; + background: var(--color-base-background-mobile); + } + + .infobox { + border: none !important; + background-color: var(--color-sidebar-background); + } + + .numbered_pagination { + display: none; + } + + .result-paper, + .result-packages { + .attributes { + display: block; + + div { + display: block; + + span { + display: inline; + } + + span:first-child { + font-weight: bold; + } + + span:nth-child(2) { + .ltr-margin-left(0.5rem); + } + } + } + } +} + +/* + small-phone layout +*/ + +@media screen and (max-width: @small-phone) { + .result-videos { + img.thumbnail { + float: none !important; + } + + .content { + overflow: inherit; + } + } +} + +pre code { + white-space: pre-wrap; +} diff --git a/searx/static/themes/marlo/src/less/toolkit.less b/searx/static/themes/marlo/src/less/toolkit.less new file mode 100644 index 000000000..f4e3c36e1 --- /dev/null +++ b/searx/static/themes/marlo/src/less/toolkit.less @@ -0,0 +1,648 @@ +// other solution : http://stackoverflow.com/questions/1577598/how-to-hide-parts-of-html-when-javascript-is-disabled/13857783#13857783 + +// stylelint-disable no-descending-specificity + +html.no-js .hide_if_nojs { + display: none; +} + +html.js .show_if_nojs { + display: none; +} + +.center { + text-align: center; +} + +.right { + float: right; +} + +.left { + float: left; +} + +.invisible { + display: none !important; +} + +.list-unstyled { + list-style-type: none; + + li { + margin-top: 4px; + margin-bottom: 4px; + } +} + +.danger { + background-color: var(--color-error-background); +} + +.warning { + background: var(--color-warning-background); +} + +.success { + background: var(--color-success-background); +} + +.badge { + display: inline-block; + color: var(--color-toolkit-badge-font); + background-color: var(--color-toolkit-badge-background); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + min-width: 10px; + padding: 1px 5px; + border-radius: 5px; +} + +// kbd +kbd { + padding: 2px 4px; + margin: 1px; + font-size: 90%; + color: var(--color-toolkit-kbd-font); + background: var(--color-toolkit-kbd-background); +} + +// table +table { + width: 100%; + + &.striped { + tr { + border-bottom: 1px solid var(--color-settings-tr-hover); + } + } +} + +th { + padding: 0.4em; +} + +td { + padding: 0 4px; +} + +tr { + &:hover { + background: var(--color-settings-tr-hover) !important; + } +} + +// pre +.pre() { + display: block; + font-size: 0.8em; + word-break: break-all; + margin: 0.1em; + user-select: all; +} + +div.selectable_url { + display: block; + border: 1px solid var(--color-result-search-url-border); + padding: 4px; + color: var(--color-result-search-url-font); + margin: 0.1em; + overflow: hidden; + height: 1.2em; + line-height: 1.2em; + .rounded-corners-tiny; + + pre { + .pre(); + } +} + +// dialog +.dialog() { + position: relative; + display: flex; + padding: 1rem; + margin: 0 0 1em 0; + border: 1px solid var(--color-toolkit-dialog-border); + .ltr-text-align-left(); + .rounded-corners; + + .close { + .ltr-float-right(); + position: relative; + top: -3px; + color: inherit; + font-size: 1.5em; + } + + ul, + ol, + p { + margin: 1px 0 0 0; + } + + table { + width: auto; + } + + tr { + vertical-align: text-top; + + &:hover { + background: transparent !important; + } + } + + td { + padding: 0 1em 0 0; + padding-top: 0; + .ltr-padding-right(1rem); + padding-bottom: 0; + .ltr-padding-left(0); + } + + h4 { + margin-top: 0.3em; + margin-bottom: 0.3em; + } +} + +.dialog-error { + .dialog(); + + color: var(--color-error); + background: var(--color-error-background); + border-color: var(--color-error); +} + +.dialog-error-block { + .dialog(); + + display: block; + color: var(--color-error); + background: var(--color-error-background); + border-color: var(--color-error); +} + +.dialog-warning { + .dialog(); + + color: var(--color-warning); + background: var(--color-warning-background); + border-color: var(--color-warning); +} + +.dialog-modal { + .dialog(); + + display: block; + background: var(--color-toolkit-dialog-background); + position: fixed; + top: 50%; + left: 50%; + margin: 0 auto; + transform: translate(-50%, -50%); + z-index: 10000000; + + h3 { + margin-top: 0; + } +} + +// btn-collapse +.btn-collapse { + cursor: pointer; +} + +// +.scrollx { + overflow-x: auto; + overflow-y: hidden; + display: block; + padding: 0; + margin: 0; + border: none; +} + +/* -- tabs -- */ +.tabs .tabs > label { + font-size: 90%; +} + +ul.tabs { + border-bottom: 1px solid var(--color-toolkit-tabs-section-border); + list-style: none; + padding-left: 0; + + li { + display: flex; + } +} + +.tabs { + display: flex; + flex-wrap: wrap; + width: 100%; + min-width: 100%; + + & > * { + order: 2; + } + + & > input[type=radio] { + display: none; + } + + & > label, + & > li > a { + order: 1; + padding: 0.7em; + margin: 0 0.7em; + letter-spacing: 0.5px; + text-transform: uppercase; + border: solid var(--color-toolkit-tabs-label-border); + border-width: 0 0 2px 0; + color: unset; + + .disable-user-select(); + + cursor: pointer; + + &.active { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); + } + } + + & > label:hover, + & > li > a:hover { + border-bottom: 2px solid var(--color-categories-item-border-selected); + } + + & > section { + min-width: 100%; + padding: 0.7rem 0; + box-sizing: border-box; + border-top: 1px solid var(--color-toolkit-tabs-section-border); + display: none; + } + + // default selection + & > label:last-of-type { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); + letter-spacing: -0.1px; + } + + & > section:last-of-type { + display: block; + } +} + +html body .tabs > input:checked { + ~ section { + display: none; + } + + ~ label { + position: inherited; + background: inherit; + border-bottom: 2px solid transparent; + font-weight: normal; + color: inherit; + + &:hover { + border-bottom: 2px solid var(--color-categories-item-border-selected); + } + } + + + label { + border-bottom: 2px solid var(--color-categories-item-border-selected); + background: var(--color-categories-item-selected); + color: var(--color-categories-item-selected-font); + } + + + label + section { + display: block; + } +} + +/* -- select -- */ +select { + height: 2.4rem; + margin-top: 0; + .ltr-margin-right(1rem); + margin-bottom: 0; + .ltr-margin-left(0); + padding: 0.2rem !important; + color: var(--color-search-font); + font-size: 0.9rem; + z-index: 2; + + &:hover, + &:focus { + cursor: pointer; + } +} + +@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) { + select { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + border-width: 0 2rem 0 0; + border-color: transparent; + background: data-uri('image/svg+xml;charset=UTF-8', @select-light-svg-path) no-repeat; + background-position-x: calc(100% + 2rem); + background-size: 2rem; + background-origin: content-box; + background-color: var(--color-toolkit-select-background); + outline: medium none; + text-overflow: ellipsis; + .rounded-corners-tiny; + + &:hover, + &:focus { + background-color: var(--color-toolkit-select-background-hover); + } + + option { + background-color: var(--color-base-background); + } + } + + @media (prefers-color-scheme: dark) { + html.theme-auto select, + html.theme-dark select { + background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path); + } + } + + html.theme-dark select { + background-image: data-uri('image/svg+xml;charset=UTF-8', @select-dark-svg-path); + } +} + +/* -- checkbox-onoff -- */ +input.checkbox-onoff[type="checkbox"] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + cursor: pointer; + display: inline-block; + width: 2.5em; + height: 0.7em; + box-shadow: none !important; + margin: 0 16px; + border-radius: 10px; + position: relative; + + /* focus & hover */ + &:focus, + &:hover { + outline: none; + } + + &:focus::after { + content: ""; + position: absolute; + width: 3.5em; + height: 1.65em; + border: 1px solid var(--color-btn-background); + border-radius: 12px; + box-shadow: var(--color-btn-background) 0 0 3px; + z-index: 10000; + top: -0.55em; + left: -0.6em; + } + + &::before { + position: absolute; + top: -0.5em; + display: flex; + justify-content: center; + align-items: center; + font-size: 0.75em; + width: 1.875em; + height: 1.875em; + border-radius: 50%; + } +} + +/* check mark +reversed-checkbox displays unchecked checkedboxes as checked, and vice versa. +see https://github.com/searxng/searxng/blob/3408d061aab9abc6168fec9bbc6deab71b236dac/searx/templates/simple/preferences.html#L313 +*/ +input.checkbox-onoff[type="checkbox"], +input.checkbox-onoff.reversed-checkbox[type="checkbox"]:checked { + background: var(--color-toolkit-checkbox-onoff-off-background); + + &::before { + left: -0.5em; + content: "\2715"; + color: var(--color-toolkit-checkbox-onoff-off-mark-color); + background: var(--color-toolkit-checkbox-onoff-off-mark-background); + } +} + +input.checkbox-onoff[type="checkbox"]:checked, +input.checkbox-onoff.reversed-checkbox[type="checkbox"] { + background: var(--color-toolkit-checkbox-onoff-on-background); + + &::before { + left: calc(100% - 1.5em); + content: "\2713"; + color: var(--color-toolkit-checkbox-onoff-on-mark-color); + background: var(--color-toolkit-checkbox-onoff-on-mark-background); + } +} + +/* -- checkbox -- */ +@supports (transform: rotate(-45deg)) { + input[type=checkbox]:not(.checkbox-onoff) { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + + width: 20px; + height: 20px; + cursor: pointer; + position: relative; + top: 0; + left: 0; + border: 2px solid var(--color-toolkit-checkbox-input-border); + .rounded-corners(0.3em); + + &::after { + content: ''; + width: 9px; + height: 5px; + position: absolute; + top: 3px; + left: 2px; + border: 3px solid var(--color-toolkit-checkbox-label-border); + border-top: none; + border-right: none; + background: transparent; + opacity: 0; + transform: rotate(-45deg); + } + + &:checked::after { + border-color: var(--color-toolkit-checkbox-input-border); + opacity: 1; + } + } + + // disabled : can't be focused, show only the check mark + input[type=checkbox][disabled]:not(.checkbox-onoff) { + border: inherit; + background-color: transparent !important; + cursor: inherit; + } + + // if not checked and possible to checked then display a "light" check mark on hover + input.checkbox[type=checkbox]:not(:checked):not([disabled]):not(.checkbox-onoff):hover::after { + opacity: 0.5; + } +} + +@media screen and (max-width: @phone) { + .tabs > label { + width: 100%; + } +} + +/* -- loader -- */ +.loader, +.loader::after { + border-radius: 50%; + width: 2em; + height: 2em; +} + +.loader { + margin: 1em auto; + font-size: 10px; + position: relative; + text-indent: -9999em; + border-top: 0.5em solid var(--color-toolkit-loader-border); + border-right: 0.5em solid var(--color-toolkit-loader-border); + border-bottom: 0.5em solid var(--color-toolkit-loader-border); + border-left: 0.5em solid var(--color-toolkit-loader-borderleft); + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); + -webkit-animation: load8 1.2s infinite linear; + animation: load8 1.2s infinite linear; +} + +@-webkit-keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +/* -- engine-tooltip -- */ +.engine-tooltip { + display: none; + position: absolute; + padding: 0.5rem 1rem; + margin: 0 0 0 2rem; + border: 1px solid var(--color-toolkit-engine-tooltip-border); + background: var(--color-toolkit-engine-tooltip-background); + font-size: 14px; + font-weight: normal; + z-index: 1000000; + text-align: left; + .rounded-corners; +} + +th:hover .engine-tooltip, +td:hover .engine-tooltip, +.engine-tooltip:hover { + display: inline-block; +} + +/* -- stacked bar chart -- */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 4rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + display: inline-flex; +} + +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} + +.stacked-bar-chart-base { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} + +.stacked-bar-chart-median { + .stacked-bar-chart-base(); + + background: var(--color-base-font); + border: 1px solid rgba(var(--color-base-font-rgb), 0.9); + padding: 0.3rem 0; +} + +.stacked-bar-chart-rate80 { + .stacked-bar-chart-base(); + + background: transparent; + border: 1px solid rgba(var(--color-base-font-rgb), 0.3); + padding: 0.3rem 0; +} + +.stacked-bar-chart-rate95 { + .stacked-bar-chart-base(); + + background: transparent; + border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5); + padding: 0; +} + +.stacked-bar-chart-rate100 { + .stacked-bar-chart-base(); + + background: transparent; + border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9); + padding: 0.4rem 0; + width: 1px; +} diff --git a/searx/static/themes/marlo/src/less/toolkit_loader.less b/searx/static/themes/marlo/src/less/toolkit_loader.less new file mode 100644 index 000000000..d426035a3 --- /dev/null +++ b/searx/static/themes/marlo/src/less/toolkit_loader.less @@ -0,0 +1,46 @@ +.loader, +.loader::after { + border-radius: 50%; + width: 10em; + height: 10em; +} + +.loader { + margin: 60px auto; + font-size: 10px; + position: relative; + text-indent: -9999em; + border-top: 1.1em solid rgba(255, 255, 255, 0.2); + border-right: 1.1em solid rgba(255, 255, 255, 0.2); + border-bottom: 1.1em solid rgba(255, 255, 255, 0.2); + border-left: 1.1em solid #fff; + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); + -webkit-animation: load8 1.1s infinite linear; + animation: load8 1.1s infinite linear; +} + +@-webkit-keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes load8 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} diff --git a/searx/static/themes/marlo/src/svg/information-circle-outline.svg b/searx/static/themes/marlo/src/svg/information-circle-outline.svg new file mode 100644 index 000000000..b7c300094 --- /dev/null +++ b/searx/static/themes/marlo/src/svg/information-circle-outline.svg @@ -0,0 +1,6 @@ + + Information Circle + + + + \ No newline at end of file diff --git a/searx/static/themes/marlo/src/svg/select-dark.svg b/searx/static/themes/marlo/src/svg/select-dark.svg new file mode 100644 index 000000000..97335cea5 --- /dev/null +++ b/searx/static/themes/marlo/src/svg/select-dark.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/searx/static/themes/marlo/src/svg/select-light.svg b/searx/static/themes/marlo/src/svg/select-light.svg new file mode 100644 index 000000000..3b707f018 --- /dev/null +++ b/searx/static/themes/marlo/src/svg/select-light.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/searx/static/themes/marlo/svg4favicon.svgo.js b/searx/static/themes/marlo/svg4favicon.svgo.js new file mode 100644 index 000000000..b9dd0da8e --- /dev/null +++ b/searx/static/themes/marlo/svg4favicon.svgo.js @@ -0,0 +1,16 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * + * svgo config: Optimize SVG for WEB usage + */ + +module.exports = { + plugins: [ + { + name: 'preset-default', + }, + // make diff friendly + 'sortAttrs', + ], +}; diff --git a/searx/static/themes/marlo/svg4web.svgo.js b/searx/static/themes/marlo/svg4web.svgo.js new file mode 100644 index 000000000..83f74cde1 --- /dev/null +++ b/searx/static/themes/marlo/svg4web.svgo.js @@ -0,0 +1,19 @@ +/** + * @license + * SPDX-License-Identifier: AGPL-3.0-or-later + * + * svgo config: Optimize SVG for WEB usage + */ + +module.exports = { + plugins: [ + { + name: 'preset-default', + }, + // make diff friendly + 'sortAttrs', + // Optimize SVG for WEB usage + 'convertStyleToAttrs', + 'removeXMLNS' + ], +};