commit: b75f1b6cc39a94989a74d52eb0f1267c3e3c665e
parent e7f7eda18cc69287f30c512a98b4e90453bcd8e7
Author: Adam Tauber <asciimoo@gmail.com>
Date: Sun, 19 Aug 2018 13:22:22 +0200
Merge branch 'master' into patch-2
Diffstat:
123 files changed, 3772 insertions(+), 1709 deletions(-)
diff --git a/Dockerfile b/Dockerfile
@@ -1,4 +1,4 @@
-FROM alpine:3.6
+FROM alpine:3.7
LABEL maintainer="searx <https://github.com/asciimoo/searx>"
LABEL description="A privacy-respecting, hackable metasearch engine."
diff --git a/README.rst b/README.rst
@@ -4,6 +4,8 @@ searx
A privacy-respecting, hackable `metasearch
engine <https://en.wikipedia.org/wiki/Metasearch_engine>`__.
+Pronunciation: səːks
+
List of `running
instances <https://github.com/asciimoo/searx/wiki/Searx-instances>`__.
diff --git a/manage.sh b/manage.sh
@@ -1,15 +1,17 @@
#!/bin/sh
BASE_DIR="$(dirname -- "`readlink -f -- "$0"`")"
-export PATH="$BASE_DIR/node_modules/.bin":$PATH
+
+cd -- "$BASE_DIR"
+set -e
+
+export PATH="$(npm bin)":$PATH
# subshell
PYTHONPATH="$BASE_DIR"
SEARX_DIR="$BASE_DIR/searx"
ACTION="$1"
-cd -- "$BASE_DIR"
-set -e
#
# Python
diff --git a/requirements.txt b/requirements.txt
@@ -1,10 +1,10 @@
certifi==2017.11.5
-flask==0.12.2
+flask==1.0.2
flask-babel==0.11.2
-lxml==4.1.1
-idna==2.5
+lxml==4.2.3
+idna==2.7
pygments==2.1.3
-pyopenssl==17.4.0
-python-dateutil==2.6.1
-pyyaml==3.12
-requests[socks]==2.18.4
+pyopenssl==18.0.0
+python-dateutil==2.7.3
+pyyaml==3.13
+requests[socks]==2.19.1
diff --git a/searx/data/currencies.json b/searx/data/currencies.json
@@ -6163,9 +6163,21 @@
],
"scellino keniota": [
"KES"
- ]
+ ],
+ "bitcoin": [
+ "XBT"
+ ]
},
"iso4217": {
+ "XBT":{
+ "fr": "Bitcoin",
+ "en": "Bitcoin",
+ "nl": "Bitcoin",
+ "de": "Bitcoin",
+ "it": "Bitcoin",
+ "hu": "Bitcoin",
+ "es": "Bitcoin"
+ },
"DZD": {
"fr": "Dinar alg\u00e9rien",
"en": "Algerian dinar",
@@ -7652,4 +7664,4 @@
"es": "Libra sudanesa"
}
}
-}
-\ No newline at end of file
+}
diff --git a/searx/data/engines_languages.json b/searx/data/engines_languages.json
@@ -1 +1 @@
-{"qwant news": ["bg-BG", "sv-SE", "ro-RO", "ms-MY", "pt-PT", "pt-AD", "pt-BR", "fr-FR", "fr-BE", "fr-CH", "fr-AD", "fr-CA", "gd-GB", "ko-KR", "he-IL", "br-FR", "ja-JP", "fi-FI", "eu-FR", "eu-ES", "el-GR", "es-ES", "es-AD", "es-AR", "es-CL", "es-MX", "en-GB", "en-IE", "en-SG", "en-IN", "en-MY", "en-AU", "en-US", "en-CA", "en-PH", "en-NZ", "th-TH", "et-EE", "ca-FR", "ca-ES", "ca-AD", "da-DK", "co-FR", "it-IT", "it-CH", "tr-TR", "cs-CZ", "nl-BE", "nl-NL", "no-NO", "hu-HU", "cy-GB", "pl-PL", "ru-RU", "de-DE", "de-AT", "de-CH"], "bing videos": ["de-DE", "ar-SA", "es-AR", "en-AU", "de-AT", "fr-BE", "nl-BE", "pt-BR", "fr-CA", "en-CA", "ko-KR", "es-ES", "es-US", "en-US", "fr-FR", "zh-HK", "en-IN", "en-ID", "it-IT", "ja-JP", "en-MY", "es-MX", "no-NO", "nl-NL", "pl-PL", "en-GB", "zh-CN", "ru-RU", "en-ZA", "sv-SE", "de-CH", "fr-CH", "zh-TW", "tr-TR"], "bing": ["sq", "de", "ar", "bg", "ca", "cs", "zh-CHS", "zh-CHT", "ko", "hr", "da", "sk", "sl", "es", "et", "fi", "fr", "el", "he", "nl", "hu", "id", "en", "is", "it", "ja", "lv", "lt", "ms", "no", "fa", "pl", "pt-BR", "pt-PT", "ro", "ru", "sr", "sv", "th", "tr", "uk", "vi"], "wikidata": {"io": {"english_name": "Ido", "articles": 27273, "name": "Ido"}, "xh": {"english_name": "Xhosa", "articles": 714, "name": "isiXhosa"}, "ksh": {"english_name": "Ripuarian", "articles": 2836, "name": "Ripoarisch"}, "ha": {"english_name": "Hausa", "articles": 1530, "name": "هَوُسَ"}, "as": {"english_name": "Assamese", "articles": 4808, "name": "অসমীয়া"}, "fy": {"english_name": "West Frisian", "articles": 39195, "name": "Frysk"}, "arc": {"english_name": "Aramaic", "articles": 1622, "name": "ܐܪܡܝܐ"}, "ast": {"english_name": "Asturian", "articles": 51716, "name": "Asturianu"}, "pap": {"english_name": "Papiamentu", "articles": 1888, "name": "Papiamentu"}, "vls": {"english_name": "West Flemish", "articles": 6243, "name": "West-Vlams"}, "zh-classical": {"english_name": "Classical Chinese", "articles": 7007, "name": "古文 / 文言文"}, "yi": {"english_name": "Yiddish", "articles": 14126, "name": "ייִדיש"}, "pl": {"english_name": "Polish", "articles": 1244203, "name": "Polski"}, "ks": {"english_name": "Kashmiri", "articles": 315, "name": "कश्मीरी / كشميري"}, "no": {"english_name": "Norwegian (Bokmål)", "articles": 476388, "name": "Norsk (Bokmål)"}, "wa": {"english_name": "Walloon", "articles": 14611, "name": "Walon"}, "pnt": {"english_name": "Pontic", "articles": 454, "name": "Ποντιακά"}, "ilo": {"english_name": "Ilokano", "articles": 10848, "name": "Ilokano"}, "iu": {"english_name": "Inuktitut", "articles": 399, "name": "ᐃᓄᒃᑎᑐᑦ"}, "se": {"english_name": "Northern Sami", "articles": 7327, "name": "Sámegiella"}, "tn": {"english_name": "Tswana", "articles": 639, "name": "Setswana"}, "ny": {"english_name": "Chichewa", "articles": 381, "name": "Chichewa"}, "da": {"english_name": "Danish", "articles": 232125, "name": "Dansk"}, "gv": {"english_name": "Manx", "articles": 4961, "name": "Gaelg"}, "cbk-zam": {"english_name": "Zamboanga Chavacano", "articles": 3019, "name": "Chavacano de Zamboanga"}, "zh": {"english_name": "Chinese", "articles": 967529, "name": "中文"}, "qu": {"english_name": "Quechua", "articles": 20284, "name": "Runa Simi"}, "cs": {"english_name": "Czech", "articles": 391061, "name": "Čeština"}, "my": {"english_name": "Burmese", "articles": 37500, "name": "မြန်မာဘာသာ"}, "nl": {"english_name": "Dutch", "articles": 1912963, "name": "Nederlands"}, "glk": {"english_name": "Gilaki", "articles": 5680, "name": "گیلکی"}, "be": {"english_name": "Belarusian", "articles": 146603, "name": "Беларуская"}, "dsb": {"english_name": "Lower Sorbian", "articles": 3092, "name": "Dolnoserbski"}, "ml": {"english_name": "Malayalam", "articles": 52442, "name": "മലയാളം"}, "simple": {"english_name": "Simple English", "articles": 128493, "name": "Simple English"}, "bcl": {"english_name": "Central Bicolano", "articles": 7223, "name": "Bikol"}, "oc": {"english_name": "Occitan", "articles": 83602, "name": "Occitan"}, "bar": {"english_name": "Bavarian", "articles": 23153, "name": "Boarisch"}, "bm": {"english_name": "Bambara", "articles": 429, "name": "Bamanankan"}, "de": {"english_name": "German", "articles": 2109224, "name": "Deutsch"}, "gl": {"english_name": "Galician", "articles": 141613, "name": "Galego"}, "fo": {"english_name": "Faroese", "articles": 12610, "name": "Føroyskt"}, "gu": {"english_name": "Gujarati", "articles": 27423, "name": "ગુજરાતી"}, "pag": {"english_name": "Pangasinan", "articles": 2545, "name": "Pangasinan"}, "fur": {"english_name": "Friulian", "articles": 3195, "name": "Furlan"}, "an": {"english_name": "Aragonese", "articles": 32408, "name": "Aragonés"}, "lij": {"english_name": "Ligurian", "articles": 3281, "name": "Líguru"}, "ab": {"english_name": "Abkhazian", "articles": 3336, "name": "Аҧсуа"}, "ig": {"english_name": "Igbo", "articles": 1387, "name": "Igbo"}, "os": {"english_name": "Ossetian", "articles": 10528, "name": "Иронау"}, "mo": {"english_name": "Moldovan", "articles": 394, "name": "Молдовеняскэ"}, "mg": {"english_name": "Malagasy", "articles": 84696, "name": "Malagasy"}, "fiu-vro": {"english_name": "Võro", "articles": 5483, "name": "Võro"}, "sl": {"english_name": "Slovenian", "articles": 158478, "name": "Slovenščina"}, "nov": {"english_name": "Novial", "articles": 1660, "name": "Novial"}, "az": {"english_name": "Azerbaijani", "articles": 126053, "name": "Azərbaycanca"}, "ay": {"english_name": "Aymara", "articles": 4256, "name": "Aymar"}, "za": {"english_name": "Zhuang", "articles": 1167, "name": "Cuengh"}, "es": {"english_name": "Spanish", "articles": 1358005, "name": "Español"}, "ve": {"english_name": "Venda", "articles": 256, "name": "Tshivenda"}, "gan": {"english_name": "Gan", "articles": 6395, "name": "贛語"}, "zh-min-nan": {"english_name": "Min Nan", "articles": 224681, "name": "Bân-lâm-gú"}, "diq": {"english_name": "Zazaki", "articles": 8688, "name": "Zazaki"}, "av": {"english_name": "Avar", "articles": 2312, "name": "Авар"}, "got": {"english_name": "Gothic", "articles": 507, "name": "𐌲𐌿𐍄𐌹𐍃𐌺"}, "sh": {"english_name": "Serbo-Croatian", "articles": 440192, "name": "Srpskohrvatski / Српскохрватски"}, "ps": {"english_name": "Pashto", "articles": 8391, "name": "پښتو"}, "yo": {"english_name": "Yoruba", "articles": 31588, "name": "Yorùbá"}, "sco": {"english_name": "Scots", "articles": 46796, "name": "Scots"}, "bug": {"english_name": "Buginese", "articles": 14131, "name": "Basa Ugi"}, "tum": {"english_name": "Tumbuka", "articles": 567, "name": "chiTumbuka"}, "tg": {"english_name": "Tajik", "articles": 73631, "name": "Тоҷикӣ"}, "kg": {"english_name": "Kongo", "articles": 1176, "name": "KiKongo"}, "gag": {"english_name": "Gagauz", "articles": 2757, "name": "Gagauz"}, "lv": {"english_name": "Latvian", "articles": 79265, "name": "Latviešu"}, "mai": {"english_name": "Maithili", "articles": 11838, "name": "मैथिली"}, "kbd": {"english_name": "Kabardian Circassian", "articles": 1573, "name": "Адыгэбзэ (Adighabze)"}, "ak": {"english_name": "Akan", "articles": 306, "name": "Akana"}, "ckb": {"english_name": "Sorani", "articles": 19805, "name": "Soranî / کوردی"}, "eo": {"english_name": "Esperanto", "articles": 242064, "name": "Esperanto"}, "wo": {"english_name": "Wolof", "articles": 1157, "name": "Wolof"}, "li": {"english_name": "Limburgish", "articles": 12048, "name": "Limburgs"}, "roa-rup": {"english_name": "Aromanian", "articles": 1210, "name": "Armãneashce"}, "is": {"english_name": "Icelandic", "articles": 43613, "name": "Íslenska"}, "nrm": {"english_name": "Norman", "articles": 3627, "name": "Nouormand/Normaund"}, "so": {"english_name": "Somali", "articles": 4981, "name": "Soomaali"}, "bat-smg": {"english_name": "Samogitian", "articles": 16143, "name": "Žemaitėška"}, "eml": {"english_name": "Emilian-Romagnol", "articles": 9083, "name": "Emiliàn e rumagnòl"}, "nv": {"english_name": "Navajo", "articles": 3604, "name": "Diné bizaad"}, "nso": {"english_name": "Northern Sotho", "articles": 7824, "name": "Sepedi"}, "olo": {"english_name": "Livvi-Karelian", "articles": 2358, "name": "Karjalan"}, "cr": {"english_name": "Cree", "articles": 128, "name": "Nehiyaw"}, "mwl": {"english_name": "Mirandese", "articles": 3469, "name": "Mirandés"}, "krc": {"english_name": "Karachay-Balkar", "articles": 2018, "name": "Къарачай-Малкъар (Qarachay-Malqar)"}, "el": {"english_name": "Greek", "articles": 137467, "name": "Ελληνικά"}, "kn": {"english_name": "Kannada", "articles": 22233, "name": "ಕನ್ನಡ"}, "tt": {"english_name": "Tatar", "articles": 72927, "name": "Tatarça / Татарча"}, "haw": {"english_name": "Hawaiian", "articles": 2017, "name": "Hawai`i"}, "ext": {"english_name": "Extremaduran", "articles": 2911, "name": "Estremeñu"}, "xal": {"english_name": "Kalmyk", "articles": 2074, "name": "Хальмг"}, "fa": {"english_name": "Persian", "articles": 576947, "name": "فارسی"}, "la": {"english_name": "Latin", "articles": 127329, "name": "Latina"}, "lmo": {"english_name": "Lombard", "articles": 36249, "name": "Lumbaart"}, "ltg": {"english_name": "Latgalian", "articles": 801, "name": "Latgaļu"}, "war": {"english_name": "Waray-Waray", "articles": 1262905, "name": "Winaray"}, "zea": {"english_name": "Zeelandic", "articles": 4381, "name": "Zeêuws"}, "ia": {"english_name": "Interlingua", "articles": 20561, "name": "Interlingua"}, "kbp": {"english_name": "Kabɩyɛ", "articles": 573, "name": "Kabiye"}, "cy": {"english_name": "Welsh", "articles": 92570, "name": "Cymraeg"}, "na": {"english_name": "Nauruan", "articles": 1283, "name": "dorerin Naoero"}, "gn": {"english_name": "Guarani", "articles": 3217, "name": "Avañe'ẽ"}, "mn": {"english_name": "Mongolian", "articles": 17575, "name": "Монгол"}, "bs": {"english_name": "Bosnian", "articles": 75821, "name": "Bosanski"}, "sah": {"english_name": "Sakha", "articles": 11415, "name": "Саха тыла (Saxa Tyla)"}, "csb": {"english_name": "Kashubian", "articles": 5213, "name": "Kaszëbsczi"}, "rmy": {"english_name": "Romani", "articles": 601, "name": "romani - रोमानी"}, "pih": {"english_name": "Norfolk", "articles": 620, "name": "Norfuk"}, "tl": {"english_name": "Tagalog", "articles": 83924, "name": "Tagalog"}, "mhr": {"english_name": "Meadow Mari", "articles": 9689, "name": "Олык Марий (Olyk Marij)"}, "bpy": {"english_name": "Bishnupriya Manipuri", "articles": 25079, "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী"}, "stq": {"english_name": "Saterland Frisian", "articles": 3794, "name": "Seeltersk"}, "lrc": {"english_name": "Northern Luri", "articles": 5326, "name": "لۊری شومالی"}, "koi": {"english_name": "Komi-Permyak", "articles": 3453, "name": "Перем Коми (Perem Komi)"}, "hif": {"english_name": "Fiji Hindi", "articles": 9707, "name": "Fiji Hindi"}, "br": {"english_name": "Breton", "articles": 63123, "name": "Brezhoneg"}, "jam": {"english_name": "Jamaican Patois", "articles": 1615, "name": "Jumiekan Kryuol"}, "ja": {"english_name": "Japanese", "articles": 1079370, "name": "日本語"}, "tcy": {"english_name": "Tulu", "articles": 849, "name": "ತುಳು"}, "sq": {"english_name": "Albanian", "articles": 69317, "name": "Shqip"}, "eu": {"english_name": "Basque", "articles": 284158, "name": "Euskara"}, "vo": {"english_name": "Volapük", "articles": 120622, "name": "Volapük"}, "ceb": {"english_name": "Cebuano", "articles": 5382720, "name": "Sinugboanong Binisaya"}, "bh": {"english_name": "Bihari", "articles": 9277, "name": "भोजपुरी"}, "ie": {"english_name": "Interlingue", "articles": 3700, "name": "Interlingue"}, "ang": {"english_name": "Anglo-Saxon", "articles": 2945, "name": "Englisc"}, "pdc": {"english_name": "Pennsylvania German", "articles": 1799, "name": "Deitsch"}, "mdf": {"english_name": "Moksha", "articles": 1179, "name": "Мокшень (Mokshanj Kälj)"}, "si": {"english_name": "Sinhalese", "articles": 13820, "name": "සිංහල"}, "he": {"english_name": "Hebrew", "articles": 213812, "name": "עברית"}, "frr": {"english_name": "North Frisian", "articles": 5475, "name": "Nordfriisk"}, "lbe": {"english_name": "Lak", "articles": 1213, "name": "Лакку"}, "kaa": {"english_name": "Karakalpak", "articles": 1892, "name": "Qaraqalpaqsha"}, "kw": {"english_name": "Cornish", "articles": 3792, "name": "Kernewek/Karnuack"}, "pcd": {"english_name": "Picard", "articles": 3535, "name": "Picard"}, "lo": {"english_name": "Lao", "articles": 2758, "name": "ລາວ"}, "pfl": {"english_name": "Palatinate German", "articles": 2070, "name": "Pälzisch"}, "vi": {"english_name": "Vietnamese", "articles": 1162191, "name": "Tiếng Việt"}, "be-tarask": {"english_name": "Belarusian (Taraškievica)", "articles": 61480, "name": "Беларуская (тарашкевіца)"}, "pms": {"english_name": "Piedmontese", "articles": 64198, "name": "Piemontèis"}, "rn": {"english_name": "Kirundi", "articles": 500, "name": "Kirundi"}, "su": {"english_name": "Sundanese", "articles": 38784, "name": "Basa Sunda"}, "ms": {"english_name": "Malay", "articles": 304280, "name": "Bahasa Melayu"}, "nah": {"english_name": "Nahuatl", "articles": 7119, "name": "Nāhuatl"}, "fr": {"english_name": "French", "articles": 1917429, "name": "Français"}, "ba": {"english_name": "Bashkir", "articles": 40027, "name": "Башҡорт"}, "tpi": {"english_name": "Tok Pisin", "articles": 1425, "name": "Tok Pisin"}, "ff": {"english_name": "Fula", "articles": 224, "name": "Fulfulde"}, "sm": {"english_name": "Samoan", "articles": 786, "name": "Gagana Samoa"}, "bxr": {"english_name": "Buryat", "articles": 2018, "name": "Буряад"}, "tet": {"english_name": "Tetum", "articles": 1418, "name": "Tetun"}, "dv": {"english_name": "Divehi", "articles": 3008, "name": "ދިވެހިބަސް"}, "fj": {"english_name": "Fijian", "articles": 430, "name": "Na Vosa Vakaviti"}, "szl": {"english_name": "Silesian", "articles": 6409, "name": "Ślůnski"}, "en": {"english_name": "English", "articles": 5490540, "name": "English"}, "uz": {"english_name": "Uzbek", "articles": 129075, "name": "O‘zbek"}, "dty": {"english_name": "डोटेली", "articles": 2128, "name": "Doteli"}, "ln": {"english_name": "Lingala", "articles": 2916, "name": "Lingala"}, "vep": {"english_name": "Vepsian", "articles": 5645, "name": "Vepsän"}, "vec": {"english_name": "Venetian", "articles": 10982, "name": "Vèneto"}, "new": {"english_name": "Newar", "articles": 72139, "name": "नेपाल भाषा"}, "ur": {"english_name": "Urdu", "articles": 124450, "name": "اردو"}, "mrj": {"english_name": "Hill Mari", "articles": 10265, "name": "Кырык Мары (Kyryk Mary)"}, "ts": {"english_name": "Tsonga", "articles": 540, "name": "Xitsonga"}, "hu": {"english_name": "Hungarian", "articles": 418142, "name": "Magyar"}, "sk": {"english_name": "Slovak", "articles": 223150, "name": "Slovenčina"}, "id": {"english_name": "Indonesian", "articles": 411506, "name": "Bahasa Indonesia"}, "ga": {"english_name": "Irish", "articles": 44243, "name": "Gaeilge"}, "ru": {"english_name": "Russian", "articles": 1425925, "name": "Русский"}, "to": {"english_name": "Tongan", "articles": 1689, "name": "faka Tonga"}, "chr": {"english_name": "Cherokee", "articles": 883, "name": "ᏣᎳᎩ"}, "hak": {"english_name": "Hakka", "articles": 8009, "name": "Hak-kâ-fa / 客家話"}, "map-bms": {"english_name": "Banyumasan", "articles": 13294, "name": "Basa Banyumasan"}, "gom": {"english_name": "Goan Konkani", "articles": 3380, "name": "गोंयची कोंकणी / Gõychi Konknni"}, "kv": {"english_name": "Komi", "articles": 5254, "name": "Коми"}, "tw": {"english_name": "Twi", "articles": 595, "name": "Twi"}, "bi": {"english_name": "Bislama", "articles": 1140, "name": "Bislama"}, "srn": {"english_name": "Sranan", "articles": 1059, "name": "Sranantongo"}, "lg": {"english_name": "Luganda", "articles": 1154, "name": "Luganda"}, "ady": {"english_name": "Adyghe", "articles": 403, "name": "Адыгэбзэ"}, "udm": {"english_name": "Udmurt", "articles": 4125, "name": "Удмурт кыл"}, "rw": {"english_name": "Kinyarwanda", "articles": 1812, "name": "Ikinyarwanda"}, "ss": {"english_name": "Swati", "articles": 432, "name": "SiSwati"}, "nds-nl": {"english_name": "Dutch Low Saxon", "articles": 6743, "name": "Nedersaksisch"}, "fi": {"english_name": "Finnish", "articles": 423220, "name": "Suomi"}, "ki": {"english_name": "Kikuyu", "articles": 1349, "name": "Gĩkũyũ"}, "tyv": {"english_name": "Tuvan", "articles": 1419, "name": "Тыва"}, "rue": {"english_name": "Rusyn", "articles": 6194, "name": "Русиньскый"}, "th": {"english_name": "Thai", "articles": 119427, "name": "ไทย"}, "bn": {"english_name": "Bengali", "articles": 52765, "name": "বাংলা"}, "ku": {"english_name": "Kurdish", "articles": 23052, "name": "Kurdî / كوردی"}, "ca": {"english_name": "Catalan", "articles": 557833, "name": "Català"}, "sa": {"english_name": "Sanskrit", "articles": 11182, "name": "संस्कृतम्"}, "or": {"english_name": "Oriya", "articles": 13175, "name": "ଓଡ଼ିଆ"}, "st": {"english_name": "Sesotho", "articles": 526, "name": "Sesotho"}, "af": {"english_name": "Afrikaans", "articles": 47107, "name": "Afrikaans"}, "sg": {"english_name": "Sango", "articles": 253, "name": "Sängö"}, "kk": {"english_name": "Kazakh", "articles": 219662, "name": "Қазақша"}, "ik": {"english_name": "Inupiak", "articles": 256, "name": "Iñupiak"}, "kab": {"english_name": "Kabyle", "articles": 2894, "name": "Taqbaylit"}, "hi": {"english_name": "Hindi", "articles": 121543, "name": "हिन्दी"}, "scn": {"english_name": "Sicilian", "articles": 25670, "name": "Sicilianu"}, "mk": {"english_name": "Macedonian", "articles": 90814, "name": "Македонски"}, "wuu": {"english_name": "Wu", "articles": 6073, "name": "吴语"}, "azb": {"english_name": "South Azerbaijani", "articles": 47457, "name": "تۆرکجه"}, "kl": {"english_name": "Greenlandic", "articles": 1638, "name": "Kalaallisut"}, "cu": {"english_name": "Old Church Slavonic", "articles": 591, "name": "Словѣньскъ"}, "crh": {"english_name": "Crimean Tatar", "articles": 5414, "name": "Qırımtatarca"}, "hr": {"english_name": "Croatian", "articles": 178083, "name": "Hrvatski"}, "lez": {"english_name": "Lezgian", "articles": 3852, "name": "Лезги чІал (Lezgi č’al)"}, "ti": {"english_name": "Tigrinya", "articles": 163, "name": "ትግርኛ"}, "jv": {"english_name": "Javanese", "articles": 50293, "name": "Basa Jawa"}, "hy": {"english_name": "Armenian", "articles": 232758, "name": "Հայերեն"}, "ro": {"english_name": "Romanian", "articles": 379516, "name": "Română"}, "mi": {"english_name": "Maori", "articles": 7133, "name": "Māori"}, "sc": {"english_name": "Sardinian", "articles": 5528, "name": "Sardu"}, "myv": {"english_name": "Erzya", "articles": 3939, "name": "Эрзянь (Erzjanj Kelj)"}, "pi": {"english_name": "Pali", "articles": 2525, "name": "पाऴि"}, "bjn": {"english_name": "Banjar", "articles": 1761, "name": "Bahasa Banjar"}, "cv": {"english_name": "Chuvash", "articles": 40690, "name": "Чăваш"}, "zu": {"english_name": "Zulu", "articles": 957, "name": "isiZulu"}, "tk": {"english_name": "Turkmen", "articles": 5267, "name": "تركمن / Туркмен"}, "sv": {"english_name": "Swedish", "articles": 3789235, "name": "Svenska"}, "am": {"english_name": "Amharic", "articles": 13861, "name": "አማርኛ"}, "arz": {"english_name": "Egyptian Arabic", "articles": 17363, "name": "مصرى (Maṣri)"}, "sn": {"english_name": "Shona", "articles": 2868, "name": "chiShona"}, "ee": {"english_name": "Ewe", "articles": 338, "name": "Eʋegbe"}, "xmf": {"english_name": "Mingrelian", "articles": 12279, "name": "მარგალური (Margaluri)"}, "nn": {"english_name": "Norwegian (Nynorsk)", "articles": 135175, "name": "Nynorsk"}, "ch": {"english_name": "Chamorro", "articles": 423, "name": "Chamoru"}, "als": {"english_name": "Alemannic", "articles": 23406, "name": "Alemannisch"}, "nds": {"english_name": "Low Saxon", "articles": 26780, "name": "Plattdüütsch"}, "it": {"english_name": "Italian", "articles": 1388262, "name": "Italiano"}, "dz": {"english_name": "Dzongkha", "articles": 228, "name": "ཇོང་ཁ"}, "tr": {"english_name": "Turkish", "articles": 299690, "name": "Türkçe"}, "ty": {"english_name": "Tahitian", "articles": 1191, "name": "Reo Mā`ohi"}, "pnb": {"english_name": "Western Punjabi", "articles": 45249, "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)"}, "sd": {"english_name": "Sindhi", "articles": 8251, "name": "سنڌي، سندھی ، सिन्ध"}, "rm": {"english_name": "Romansh", "articles": 3455, "name": "Rumantsch"}, "ko": {"english_name": "Korean", "articles": 399300, "name": "한국어"}, "lt": {"english_name": "Lithuanian", "articles": 183261, "name": "Lietuvių"}, "et": {"english_name": "Estonian", "articles": 162182, "name": "Eesti"}, "ky": {"english_name": "Kirghiz", "articles": 80579, "name": "Кыргызча"}, "ht": {"english_name": "Haitian", "articles": 51554, "name": "Krèyol ayisyen"}, "ce": {"english_name": "Chechen", "articles": 164438, "name": "Нохчийн"}, "bg": {"english_name": "Bulgarian", "articles": 235084, "name": "Български"}, "ka": {"english_name": "Georgian", "articles": 117872, "name": "ქართული"}, "frp": {"english_name": "Franco-Provençal", "articles": 2633, "name": "Arpitan"}, "nap": {"english_name": "Neapolitan", "articles": 14470, "name": "Nnapulitano"}, "pa": {"english_name": "Punjabi", "articles": 26967, "name": "ਪੰਜਾਬੀ"}, "pam": {"english_name": "Kapampangan", "articles": 8553, "name": "Kapampangan"}, "lb": {"english_name": "Luxembourgish", "articles": 50445, "name": "Lëtzebuergesch"}, "mr": {"english_name": "Marathi", "articles": 48748, "name": "मराठी"}, "gd": {"english_name": "Scottish Gaelic", "articles": 14594, "name": "Gàidhlig"}, "sw": {"english_name": "Swahili", "articles": 37911, "name": "Kiswahili"}, "ug": {"english_name": "Uyghur", "articles": 3367, "name": "ئۇيغۇر تىلى"}, "sr": {"english_name": "Serbian", "articles": 357090, "name": "Српски / Srpski"}, "km": {"english_name": "Khmer", "articles": 5385, "name": "ភាសាខ្មែរ"}, "pt": {"english_name": "Portuguese", "articles": 979830, "name": "Português"}, "te": {"english_name": "Telugu", "articles": 67631, "name": "తెలుగు"}, "ne": {"english_name": "Nepali", "articles": 30112, "name": "नेपाली"}, "chy": {"english_name": "Cheyenne", "articles": 610, "name": "Tsetsêhestâhese"}, "om": {"english_name": "Oromo", "articles": 728, "name": "Oromoo"}, "jbo": {"english_name": "Lojban", "articles": 1201, "name": "Lojban"}, "bo": {"english_name": "Tibetan", "articles": 5726, "name": "བོད་སྐད"}, "uk": {"english_name": "Ukrainian", "articles": 740713, "name": "Українська"}, "hsb": {"english_name": "Upper Sorbian", "articles": 12354, "name": "Hornjoserbsce"}, "co": {"english_name": "Corsican", "articles": 5460, "name": "Corsu"}, "min": {"english_name": "Minangkabau", "articles": 222028, "name": "Minangkabau"}, "lad": {"english_name": "Ladino", "articles": 4512, "name": "Dzhudezmo"}, "roa-tara": {"english_name": "Tarantino", "articles": 9234, "name": "Tarandíne"}, "ace": {"english_name": "Acehnese", "articles": 7231, "name": "Bahsa Acèh"}, "zh-yue": {"english_name": "Cantonese", "articles": 61128, "name": "粵語"}, "mzn": {"english_name": "Mazandarani", "articles": 12564, "name": "مَزِروني"}, "ar": {"english_name": "Arabic", "articles": 542561, "name": "العربية"}, "ta": {"english_name": "Tamil", "articles": 113411, "name": "தமிழ்"}, "cdo": {"english_name": "Min Dong", "articles": 13442, "name": "Mìng-dĕ̤ng-ngṳ̄"}, "mt": {"english_name": "Maltese", "articles": 3213, "name": "Malti"}}, "duckduckgo": ["ru-RU", "pt-PT", "es-PE", "fr-BE", "tzh-HK", "pt-BR", "tzh-TW", "en-ZA", "ro-RO", "bg-BG", "es-XL", "en-XA", "en-CA", "en-NZ", "pl-PL", "es-MX", "hr-HR", "es-ES", "en-PH", "ms-MY", "vi-VN", "en-IN", "jp-JP", "es-CL", "en-IE", "wt-WT", "nl-NL", "fr-FR", "en-ID", "ca-ES", "en-SG", "hu-HU", "tl-PH", "lv-LV", "de-CH", "nl-BE", "sk-SK", "el-GR", "zh-CN", "es-CO", "kr-KR", "sv-SE", "id-ID", "ca-CT", "fr-CH", "cs-CZ", "he-IL", "da-DK", "de-DE", "en-MY", "es-US", "lt-LT", "uk-UA", "tr-TR", "th-TH", "en-US", "en-UK", "it-IT", "et-EE", "fi-FI", "ar-XA", "fr-CA", "en-AU", "it-CH", "sl-SL", "de-AT", "no-NO", "es-AR"], "ddg definitions": ["ru-RU", "pt-PT", "es-PE", "fr-BE", "tzh-HK", "pt-BR", "tzh-TW", "en-ZA", "ro-RO", "bg-BG", "es-XL", "en-XA", "en-CA", "en-NZ", "pl-PL", "es-MX", "hr-HR", "es-ES", "en-PH", "ms-MY", "vi-VN", "en-IN", "jp-JP", "es-CL", "en-IE", "wt-WT", "nl-NL", "fr-FR", "en-ID", "ca-ES", "en-SG", "hu-HU", "tl-PH", "lv-LV", "de-CH", "nl-BE", "sk-SK", "el-GR", "zh-CN", "es-CO", "kr-KR", "sv-SE", "id-ID", "ca-CT", "fr-CH", "cs-CZ", "he-IL", "da-DK", "de-DE", "en-MY", "es-US", "lt-LT", "uk-UA", "tr-TR", "th-TH", "en-US", "en-UK", "it-IT", "et-EE", "fi-FI", "ar-XA", "fr-CA", "en-AU", "it-CH", "sl-SL", "de-AT", "no-NO", "es-AR"], "yahoo news": ["ar", "bg", "zh-chs", "zh-cht", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hu", "it", "ja", "ko", "lv", "lt", "no", "pl", "pt", "ro", "ru", "sk", "sl", "es", "sv", "th", "tr"], "duckduckgo images": ["ru-RU", "pt-PT", "es-PE", "fr-BE", "tzh-HK", "pt-BR", "tzh-TW", "en-ZA", "ro-RO", "bg-BG", "es-XL", "en-XA", "en-CA", "en-NZ", "pl-PL", "es-MX", "hr-HR", "es-ES", "en-PH", "ms-MY", "vi-VN", "en-IN", "jp-JP", "es-CL", "en-IE", "wt-WT", "nl-NL", "fr-FR", "en-ID", "ca-ES", "en-SG", "hu-HU", "tl-PH", "lv-LV", "de-CH", "nl-BE", "sk-SK", "el-GR", "zh-CN", "es-CO", "kr-KR", "sv-SE", "id-ID", "ca-CT", "fr-CH", "cs-CZ", "he-IL", "da-DK", "de-DE", "en-MY", "es-US", "lt-LT", "uk-UA", "tr-TR", "th-TH", "en-US", "en-UK", "it-IT", "et-EE", "fi-FI", "ar-XA", "fr-CA", "en-AU", "it-CH", "sl-SL", "de-AT", "no-NO", "es-AR"], "bing images": ["de-DE", "ar-SA", "es-AR", "en-AU", "de-AT", "fr-BE", "nl-BE", "pt-BR", "fr-CA", "en-CA", "ko-KR", "es-ES", "es-US", "en-US", "fr-FR", "zh-HK", "en-IN", "en-ID", "it-IT", "ja-JP", "en-MY", "es-MX", "no-NO", "nl-NL", "pl-PL", "en-GB", "zh-CN", "ru-RU", "en-ZA", "sv-SE", "de-CH", "fr-CH", "zh-TW", "tr-TR"], "qwant social": ["bg-BG", "sv-SE", "ro-RO", "ms-MY", "pt-PT", "pt-AD", "pt-BR", "fr-FR", "fr-BE", "fr-CH", "fr-AD", "fr-CA", "gd-GB", "ko-KR", "he-IL", "br-FR", "ja-JP", "fi-FI", "eu-FR", "eu-ES", "el-GR", "es-ES", "es-AD", "es-AR", "es-CL", "es-MX", "en-GB", "en-IE", "en-SG", "en-IN", "en-MY", "en-AU", "en-US", "en-CA", "en-PH", "en-NZ", "th-TH", "et-EE", "ca-FR", "ca-ES", "ca-AD", "da-DK", "co-FR", "it-IT", "it-CH", "tr-TR", "cs-CZ", "nl-BE", "nl-NL", "no-NO", "hu-HU", "cy-GB", "pl-PL", "ru-RU", "de-DE", "de-AT", "de-CH"], "swisscows": ["browser", "ar-SA", "es-AR", "en-AU", "de-AT", "fr-BE", "nl-BE", "pt-BR", "en-CA", "fr-CA", "es-CL", "zh-CN", "da-DK", "fi-FI", "fr-FR", "de-DE", "zh-HK", "en-IN", "en-IE", "it-IT", "ja-JP", "ko-KR", "en-MY", "es-MX", "nl-NL", "en-NZ", "no-NO", "en-PH", "pl-PL", "pt-PT", "ru-RU", "en-ZA", "es-ES", "sv-SE", "de-CH", "fr-CH", "zh-TW", "tr-TR", "uk-UA", "en-GB", "en-US", "es-US"], "qwant": ["bg-BG", "sv-SE", "ro-RO", "ms-MY", "pt-PT", "pt-AD", "pt-BR", "fr-FR", "fr-BE", "fr-CH", "fr-AD", "fr-CA", "gd-GB", "ko-KR", "he-IL", "br-FR", "ja-JP", "fi-FI", "eu-FR", "eu-ES", "el-GR", "es-ES", "es-AD", "es-AR", "es-CL", "es-MX", "en-GB", "en-IE", "en-SG", "en-IN", "en-MY", "en-AU", "en-US", "en-CA", "en-PH", "en-NZ", "th-TH", "et-EE", "ca-FR", "ca-ES", "ca-AD", "da-DK", "co-FR", "it-IT", "it-CH", "tr-TR", "cs-CZ", "nl-BE", "nl-NL", "no-NO", "hu-HU", "cy-GB", "pl-PL", "ru-RU", "de-DE", "de-AT", "de-CH"], "google news": {"hy": {"name": "Հայերեն"}, "ro": {"name": "Română"}, "eo": {"name": "Esperanto"}, "is": {"name": "Íslenska"}, "ja": {"name": "日本語"}, "fr": {"name": "Français"}, "zh-CN": {"name": "中文 (简体)"}, "pl": {"name": "Polski"}, "sv": {"name": "Svenska"}, "no": {"name": "Norsk"}, "el": {"name": "Ελληνικά"}, "en": {"name": "English"}, "fa": {"name": "فارسی"}, "da": {"name": "Dansk"}, "it": {"name": "Italiano"}, "tr": {"name": "Türkçe"}, "cs": {"name": "Čeština"}, "nl": {"name": "Nederlands"}, "zh-TW": {"name": "中文 (繁體)"}, "be": {"name": "Беларуская"}, "hu": {"name": "Magyar"}, "sk": {"name": "Slovenčina"}, "uk": {"name": "Українська"}, "ko": {"name": "한국어"}, "lt": {"name": "Lietuvių"}, "ru": {"name": "Русский"}, "af": {"name": "Afrikaans"}, "bg": {"name": "Български"}, "tl": {"name": "Filipino"}, "sw": {"name": "Kiswahili"}, "id": {"name": "Indonesia"}, "sl": {"name": "Slovenščina"}, "pt": {"name": "Português"}, "fi": {"name": "Suomi"}, "es": {"name": "Español"}, "th": {"name": "ไทย"}, "et": {"name": "Eesti"}, "ca": {"name": "Català"}, "de": {"name": "Deutsch"}, "sr": {"name": "Српски"}, "hi": {"name": "हिन्दी"}, "ar": {"name": "العربية"}, "lv": {"name": "Latviešu"}, "iw": {"name": "עברית"}, "hr": {"name": "Hrvatski"}, "vi": {"name": "Tiếng Việt"}}, "google": {"hy": {"name": "Հայերեն"}, "ro": {"name": "Română"}, "eo": {"name": "Esperanto"}, "is": {"name": "Íslenska"}, "ja": {"name": "日本語"}, "fr": {"name": "Français"}, "zh-CN": {"name": "中文 (简体)"}, "pl": {"name": "Polski"}, "sv": {"name": "Svenska"}, "no": {"name": "Norsk"}, "el": {"name": "Ελληνικά"}, "en": {"name": "English"}, "fa": {"name": "فارسی"}, "da": {"name": "Dansk"}, "it": {"name": "Italiano"}, "tr": {"name": "Türkçe"}, "cs": {"name": "Čeština"}, "nl": {"name": "Nederlands"}, "zh-TW": {"name": "中文 (繁體)"}, "be": {"name": "Беларуская"}, "hu": {"name": "Magyar"}, "sk": {"name": "Slovenčina"}, "uk": {"name": "Українська"}, "ko": {"name": "한국어"}, "lt": {"name": "Lietuvių"}, "ru": {"name": "Русский"}, "af": {"name": "Afrikaans"}, "bg": {"name": "Български"}, "tl": {"name": "Filipino"}, "sw": {"name": "Kiswahili"}, "id": {"name": "Indonesia"}, "sl": {"name": "Slovenščina"}, "pt": {"name": "Português"}, "fi": {"name": "Suomi"}, "es": {"name": "Español"}, "th": {"name": "ไทย"}, "et": {"name": "Eesti"}, "ca": {"name": "Català"}, "de": {"name": "Deutsch"}, "sr": {"name": "Српски"}, "hi": {"name": "हिन्दी"}, "ar": {"name": "العربية"}, "lv": {"name": "Latviešu"}, "iw": {"name": "עברית"}, "hr": {"name": "Hrvatski"}, "vi": {"name": "Tiếng Việt"}}, "bing news": ["sq", "de", "ar", "bg", "ca", "cs", "zh-CHS", "zh-CHT", "ko", "hr", "da", "sk", "sl", "es", "et", "fi", "fr", "el", "he", "nl", "hu", "id", "en", "is", "it", "ja", "lv", "lt", "ms", "no", "fa", "pl", "pt-BR", "pt-PT", "ro", "ru", "sr", "sv", "th", "tr", "uk", "vi"], "dailymotion": {"io": {"english_name": "Ido"}, "xh": {"english_name": "Xhosa", "name": "Xhosa"}, "as": {"english_name": "Assamese"}, "fy": {"english_name": "Frisian, Western"}, "ff": {"english_name": "Fulah"}, "pl": {"english_name": "Polish", "name": "polski"}, "ks": {"english_name": "Kashmiri"}, "no": {"english_name": "Norwegian"}, "wa": {"english_name": "Walloon", "name": "Walon"}, "iu": {"english_name": "Inuktitut"}, "se": {"english_name": "Sami, Northern"}, "tn": {"english_name": "Tswana"}, "ny": {"english_name": "Nyanja"}, "da": {"english_name": "Danish", "name": "Dansk"}, "gv": {"english_name": "Manx"}, "zh": {"english_name": "Chinese", "name": "中文"}, "qu": {"english_name": "Quechua"}, "cs": {"english_name": "Czech", "name": "čeština"}, "my": {"english_name": "Burmese"}, "nl": {"english_name": "Dutch", "name": "Nederlands"}, "lu": {"english_name": "Luba-Katanga"}, "be": {"english_name": "Belarusian"}, "ml": {"english_name": "Malayalam"}, "oc": {"english_name": "Occitan", "name": "Occitan"}, "de": {"english_name": "German", "name": "Deutsch"}, "gl": {"english_name": "Galician", "name": "Galego"}, "fo": {"english_name": "Faroese"}, "gu": {"english_name": "Gujarati", "name": "ગુજરાતી"}, "st": {"english_name": "Sotho, Southern"}, "ig": {"english_name": "Igbo"}, "os": {"english_name": "Ossetian"}, "mg": {"english_name": "Malagasy"}, "ki": {"english_name": "Kikuyu"}, "sl": {"english_name": "Slovenian", "name": "slovenščina"}, "az": {"english_name": "Azerbaijani", "name": "Azerbaijani"}, "mn": {"english_name": "Mongolian", "name": "Монгол"}, "za": {"english_name": "Zhuang"}, "es": {"english_name": "Spanish", "name": "Español"}, "an": {"english_name": "Aragonese"}, "av": {"english_name": "Avaric"}, "ay": {"english_name": "Aymara"}, "sh": {"english_name": "Serbo-Croatian", "name": "Serbo-Croatian"}, "ps": {"english_name": "Pushto", "name": "Pushto"}, "yo": {"english_name": "Yoruba"}, "tg": {"english_name": "Tajik"}, "kg": {"english_name": "Kongo"}, "lv": {"english_name": "Latvian", "name": "Latviešu"}, "ak": {"english_name": "Akan"}, "it": {"english_name": "Italian", "name": "Italiano"}, "eo": {"english_name": "Esperanto", "name": "Esperanto"}, "wo": {"english_name": "Wolof"}, "is": {"english_name": "Icelandic", "name": "Íslenska"}, "nv": {"english_name": "Navajo"}, "el": {"english_name": "Greek, Modern (1453-)", "name": "Ελληνικά"}, "kn": {"english_name": "Kannada", "name": "ಕನ್ನಡ"}, "tt": {"english_name": "Tatar", "name": "Татарча"}, "nb": {"english_name": "Norwegian Bokmål", "name": "Norwegian Bokmål"}, "fa": {"english_name": "Persian", "name": "فارسی"}, "la": {"english_name": "Latin"}, "ha": {"english_name": "Hausa"}, "ia": {"english_name": "Interlingua"}, "cy": {"english_name": "Welsh", "name": "Cymraeg"}, "na": {"english_name": "Nauru"}, "gn": {"english_name": "Guarani"}, "uk": {"english_name": "Ukrainian", "name": "українська"}, "kl": {"english_name": "Kalaallisut"}, "bs": {"english_name": "Bosnian", "name": "Bosnian"}, "tk": {"english_name": "Turkmen"}, "tl": {"english_name": "Tagalog"}, "so": {"english_name": "Somali"}, "br": {"english_name": "Breton", "name": "Brezhoneg"}, "ko": {"english_name": "Korean", "name": "한국어"}, "nr": {"english_name": "Ndebele, South"}, "sq": {"english_name": "Albanian"}, "eu": {"english_name": "Basque", "name": "Euskara"}, "vo": {"english_name": "Volapük"}, "ee": {"english_name": "Ewe"}, "ve": {"english_name": "Venda", "name": "Venda"}, "ie": {"english_name": "Interlingue"}, "ng": {"english_name": "Ndonga"}, "si": {"english_name": "Sinhala"}, "sr": {"english_name": "Serbian", "name": "српски"}, "lg": {"english_name": "Ganda"}, "ty": {"english_name": "Tahitian"}, "kw": {"english_name": "Cornish"}, "lo": {"english_name": "Lao"}, "ur": {"english_name": "Urdu"}, "ae": {"english_name": "Avestan"}, "yi": {"english_name": "Yiddish"}, "su": {"english_name": "Sundanese"}, "ms": {"english_name": "Malay", "name": "Malay"}, "ja": {"english_name": "Japanese", "name": "日本語"}, "fr": {"english_name": "French", "name": "français"}, "ba": {"english_name": "Bashkir"}, "dv": {"english_name": "Dhivehi"}, "fj": {"english_name": "Fijian"}, "en": {"english_name": "English"}, "uz": {"english_name": "Uzbek"}, "ln": {"english_name": "Lingala"}, "hu": {"english_name": "Hungarian", "name": "magyar"}, "sm": {"english_name": "Samoan"}, "ts": {"english_name": "Tsonga"}, "bm": {"english_name": "Bambara"}, "sk": {"english_name": "Slovak", "name": "Slovenský"}, "id": {"english_name": "Indonesian", "name": "Indonesian"}, "ga": {"english_name": "Irish", "name": "Gaeilge"}, "ku": {"english_name": "Kurdish"}, "to": {"english_name": "Tonga (Tonga Islands)"}, "cr": {"english_name": "Cree"}, "cu": {"english_name": "Slavic, Church"}, "kv": {"english_name": "Komi"}, "tw": {"english_name": "Twi"}, "sc": {"english_name": "Sardinian"}, "ss": {"english_name": "Swati"}, "fi": {"english_name": "Finnish", "name": "suomi"}, "ne": {"english_name": "Nepali (macrolanguage)"}, "vi": {"english_name": "Vietnamese", "name": "Tiếng Việt"}, "kr": {"english_name": "Kanuri"}, "th": {"english_name": "Thai", "name": "ไทย"}, "ru": {"english_name": "Russian", "name": "русский"}, "ca": {"english_name": "Catalan", "name": "Català"}, "sa": {"english_name": "Sanskrit"}, "or": {"english_name": "Oriya", "name": "Oriya"}, "af": {"english_name": "Afrikaans", "name": "Afrikaans"}, "co": {"english_name": "Corsican"}, "kk": {"english_name": "Kazakh"}, "ik": {"english_name": "Inupiaq"}, "hi": {"english_name": "Hindi", "name": "हिंदी"}, "mk": {"english_name": "Macedonian", "name": "Македонски"}, "ho": {"english_name": "Hiri Motu"}, "hr": {"english_name": "Croatian", "name": "hrvatski"}, "jv": {"english_name": "Javanese"}, "hy": {"english_name": "Armenian"}, "ro": {"english_name": "Romanian", "name": "Română"}, "mi": {"english_name": "Maori", "name": "Reo Māori"}, "rn": {"english_name": "Rundi"}, "pi": {"english_name": "Pali"}, "cv": {"english_name": "Chuvash"}, "zu": {"english_name": "Zulu", "name": "Isi-Zulu"}, "mh": {"english_name": "Marshallese"}, "sv": {"english_name": "Swedish", "name": "Svenska"}, "am": {"english_name": "Amharic", "name": "አማርኛ"}, "sn": {"english_name": "Shona"}, "nn": {"english_name": "Norwegian Nynorsk", "name": "Norwegian Nynorsk"}, "ch": {"english_name": "Chamorro"}, "nd": {"english_name": "Ndebele, North"}, "bi": {"english_name": "Bislama"}, "kj": {"english_name": "Kuanyama"}, "dz": {"english_name": "Dzongkha"}, "tr": {"english_name": "Turkish", "name": "Türkçe"}, "sd": {"english_name": "Sindhi"}, "rm": {"english_name": "Romansh"}, "ii": {"english_name": "Yi, Sichuan"}, "ti": {"english_name": "Tigrinya", "name": "ትግርኛ"}, "lt": {"english_name": "Lithuanian", "name": "Lietuvių"}, "et": {"english_name": "Estonian", "name": "Eesti"}, "ky": {"english_name": "Kirghiz"}, "ht": {"english_name": "Haitian"}, "ce": {"english_name": "Chechen"}, "bg": {"english_name": "Bulgarian", "name": "Български"}, "ka": {"english_name": "Georgian"}, "pa": {"english_name": "Panjabi", "name": "ਪੰਜਾਬੀ"}, "lb": {"english_name": "Luxembourgish"}, "mr": {"english_name": "Marathi", "name": "मराठी"}, "gd": {"english_name": "Gaelic, Scottish"}, "sw": {"english_name": "Swahili (macrolanguage)"}, "ug": {"english_name": "Uighur"}, "he": {"english_name": "Hebrew", "name": "עברית"}, "km": {"english_name": "Khmer, Central"}, "pt": {"english_name": "Portuguese", "name": "Português"}, "te": {"english_name": "Telugu"}, "om": {"english_name": "Oromo"}, "bo": {"english_name": "Tibetan"}, "li": {"english_name": "Limburgan"}, "rw": {"english_name": "Kinyarwanda", "name": "Ikinyarwanda"}, "sg": {"english_name": "Sango"}, "bn": {"english_name": "Bengali", "name": "বাংলা"}, "hz": {"english_name": "Herero"}, "ar": {"english_name": "Arabic", "name": "العربية"}, "oj": {"english_name": "Ojibwa"}, "ta": {"english_name": "Tamil", "name": "தமிழ்"}, "mt": {"english_name": "Maltese", "name": "Malti"}}, "gigablast": [], "wikipedia": {"io": {"english_name": "Ido", "articles": 27273, "name": "Ido"}, "xh": {"english_name": "Xhosa", "articles": 714, "name": "isiXhosa"}, "ksh": {"english_name": "Ripuarian", "articles": 2836, "name": "Ripoarisch"}, "ha": {"english_name": "Hausa", "articles": 1530, "name": "هَوُسَ"}, "as": {"english_name": "Assamese", "articles": 4808, "name": "অসমীয়া"}, "fy": {"english_name": "West Frisian", "articles": 39195, "name": "Frysk"}, "arc": {"english_name": "Aramaic", "articles": 1622, "name": "ܐܪܡܝܐ"}, "ast": {"english_name": "Asturian", "articles": 51716, "name": "Asturianu"}, "pap": {"english_name": "Papiamentu", "articles": 1888, "name": "Papiamentu"}, "vls": {"english_name": "West Flemish", "articles": 6243, "name": "West-Vlams"}, "zh-classical": {"english_name": "Classical Chinese", "articles": 7007, "name": "古文 / 文言文"}, "yi": {"english_name": "Yiddish", "articles": 14126, "name": "ייִדיש"}, "pl": {"english_name": "Polish", "articles": 1244203, "name": "Polski"}, "ks": {"english_name": "Kashmiri", "articles": 315, "name": "कश्मीरी / كشميري"}, "no": {"english_name": "Norwegian (Bokmål)", "articles": 476388, "name": "Norsk (Bokmål)"}, "wa": {"english_name": "Walloon", "articles": 14611, "name": "Walon"}, "pnt": {"english_name": "Pontic", "articles": 454, "name": "Ποντιακά"}, "ilo": {"english_name": "Ilokano", "articles": 10848, "name": "Ilokano"}, "iu": {"english_name": "Inuktitut", "articles": 399, "name": "ᐃᓄᒃᑎᑐᑦ"}, "se": {"english_name": "Northern Sami", "articles": 7327, "name": "Sámegiella"}, "tn": {"english_name": "Tswana", "articles": 639, "name": "Setswana"}, "ny": {"english_name": "Chichewa", "articles": 381, "name": "Chichewa"}, "da": {"english_name": "Danish", "articles": 232125, "name": "Dansk"}, "gv": {"english_name": "Manx", "articles": 4961, "name": "Gaelg"}, "cbk-zam": {"english_name": "Zamboanga Chavacano", "articles": 3019, "name": "Chavacano de Zamboanga"}, "zh": {"english_name": "Chinese", "articles": 967529, "name": "中文"}, "qu": {"english_name": "Quechua", "articles": 20284, "name": "Runa Simi"}, "cs": {"english_name": "Czech", "articles": 391061, "name": "Čeština"}, "my": {"english_name": "Burmese", "articles": 37500, "name": "မြန်မာဘာသာ"}, "nl": {"english_name": "Dutch", "articles": 1912963, "name": "Nederlands"}, "glk": {"english_name": "Gilaki", "articles": 5680, "name": "گیلکی"}, "be": {"english_name": "Belarusian", "articles": 146603, "name": "Беларуская"}, "dsb": {"english_name": "Lower Sorbian", "articles": 3092, "name": "Dolnoserbski"}, "ml": {"english_name": "Malayalam", "articles": 52442, "name": "മലയാളം"}, "simple": {"english_name": "Simple English", "articles": 128493, "name": "Simple English"}, "bcl": {"english_name": "Central Bicolano", "articles": 7223, "name": "Bikol"}, "oc": {"english_name": "Occitan", "articles": 83602, "name": "Occitan"}, "bar": {"english_name": "Bavarian", "articles": 23153, "name": "Boarisch"}, "bm": {"english_name": "Bambara", "articles": 429, "name": "Bamanankan"}, "de": {"english_name": "German", "articles": 2109224, "name": "Deutsch"}, "gl": {"english_name": "Galician", "articles": 141613, "name": "Galego"}, "fo": {"english_name": "Faroese", "articles": 12610, "name": "Føroyskt"}, "gu": {"english_name": "Gujarati", "articles": 27423, "name": "ગુજરાતી"}, "pag": {"english_name": "Pangasinan", "articles": 2545, "name": "Pangasinan"}, "fur": {"english_name": "Friulian", "articles": 3195, "name": "Furlan"}, "an": {"english_name": "Aragonese", "articles": 32408, "name": "Aragonés"}, "lij": {"english_name": "Ligurian", "articles": 3281, "name": "Líguru"}, "ab": {"english_name": "Abkhazian", "articles": 3336, "name": "Аҧсуа"}, "ig": {"english_name": "Igbo", "articles": 1387, "name": "Igbo"}, "os": {"english_name": "Ossetian", "articles": 10528, "name": "Иронау"}, "mo": {"english_name": "Moldovan", "articles": 394, "name": "Молдовеняскэ"}, "mg": {"english_name": "Malagasy", "articles": 84696, "name": "Malagasy"}, "fiu-vro": {"english_name": "Võro", "articles": 5483, "name": "Võro"}, "sl": {"english_name": "Slovenian", "articles": 158478, "name": "Slovenščina"}, "nov": {"english_name": "Novial", "articles": 1660, "name": "Novial"}, "az": {"english_name": "Azerbaijani", "articles": 126053, "name": "Azərbaycanca"}, "ay": {"english_name": "Aymara", "articles": 4256, "name": "Aymar"}, "za": {"english_name": "Zhuang", "articles": 1167, "name": "Cuengh"}, "es": {"english_name": "Spanish", "articles": 1358005, "name": "Español"}, "ve": {"english_name": "Venda", "articles": 256, "name": "Tshivenda"}, "gan": {"english_name": "Gan", "articles": 6395, "name": "贛語"}, "zh-min-nan": {"english_name": "Min Nan", "articles": 224681, "name": "Bân-lâm-gú"}, "diq": {"english_name": "Zazaki", "articles": 8688, "name": "Zazaki"}, "av": {"english_name": "Avar", "articles": 2312, "name": "Авар"}, "got": {"english_name": "Gothic", "articles": 507, "name": "𐌲𐌿𐍄𐌹𐍃𐌺"}, "sh": {"english_name": "Serbo-Croatian", "articles": 440192, "name": "Srpskohrvatski / Српскохрватски"}, "ps": {"english_name": "Pashto", "articles": 8391, "name": "پښتو"}, "yo": {"english_name": "Yoruba", "articles": 31588, "name": "Yorùbá"}, "sco": {"english_name": "Scots", "articles": 46796, "name": "Scots"}, "bug": {"english_name": "Buginese", "articles": 14131, "name": "Basa Ugi"}, "tum": {"english_name": "Tumbuka", "articles": 567, "name": "chiTumbuka"}, "tg": {"english_name": "Tajik", "articles": 73631, "name": "Тоҷикӣ"}, "kg": {"english_name": "Kongo", "articles": 1176, "name": "KiKongo"}, "gag": {"english_name": "Gagauz", "articles": 2757, "name": "Gagauz"}, "lv": {"english_name": "Latvian", "articles": 79265, "name": "Latviešu"}, "mai": {"english_name": "Maithili", "articles": 11838, "name": "मैथिली"}, "kbd": {"english_name": "Kabardian Circassian", "articles": 1573, "name": "Адыгэбзэ (Adighabze)"}, "ak": {"english_name": "Akan", "articles": 306, "name": "Akana"}, "ckb": {"english_name": "Sorani", "articles": 19805, "name": "Soranî / کوردی"}, "eo": {"english_name": "Esperanto", "articles": 242064, "name": "Esperanto"}, "wo": {"english_name": "Wolof", "articles": 1157, "name": "Wolof"}, "li": {"english_name": "Limburgish", "articles": 12048, "name": "Limburgs"}, "roa-rup": {"english_name": "Aromanian", "articles": 1210, "name": "Armãneashce"}, "is": {"english_name": "Icelandic", "articles": 43613, "name": "Íslenska"}, "nrm": {"english_name": "Norman", "articles": 3627, "name": "Nouormand/Normaund"}, "so": {"english_name": "Somali", "articles": 4981, "name": "Soomaali"}, "bat-smg": {"english_name": "Samogitian", "articles": 16143, "name": "Žemaitėška"}, "eml": {"english_name": "Emilian-Romagnol", "articles": 9083, "name": "Emiliàn e rumagnòl"}, "nv": {"english_name": "Navajo", "articles": 3604, "name": "Diné bizaad"}, "nso": {"english_name": "Northern Sotho", "articles": 7824, "name": "Sepedi"}, "olo": {"english_name": "Livvi-Karelian", "articles": 2358, "name": "Karjalan"}, "cr": {"english_name": "Cree", "articles": 128, "name": "Nehiyaw"}, "mwl": {"english_name": "Mirandese", "articles": 3469, "name": "Mirandés"}, "krc": {"english_name": "Karachay-Balkar", "articles": 2018, "name": "Къарачай-Малкъар (Qarachay-Malqar)"}, "el": {"english_name": "Greek", "articles": 137467, "name": "Ελληνικά"}, "kn": {"english_name": "Kannada", "articles": 22233, "name": "ಕನ್ನಡ"}, "tt": {"english_name": "Tatar", "articles": 72927, "name": "Tatarça / Татарча"}, "haw": {"english_name": "Hawaiian", "articles": 2017, "name": "Hawai`i"}, "ext": {"english_name": "Extremaduran", "articles": 2911, "name": "Estremeñu"}, "xal": {"english_name": "Kalmyk", "articles": 2074, "name": "Хальмг"}, "fa": {"english_name": "Persian", "articles": 576947, "name": "فارسی"}, "la": {"english_name": "Latin", "articles": 127329, "name": "Latina"}, "lmo": {"english_name": "Lombard", "articles": 36249, "name": "Lumbaart"}, "ltg": {"english_name": "Latgalian", "articles": 801, "name": "Latgaļu"}, "war": {"english_name": "Waray-Waray", "articles": 1262905, "name": "Winaray"}, "zea": {"english_name": "Zeelandic", "articles": 4381, "name": "Zeêuws"}, "ia": {"english_name": "Interlingua", "articles": 20561, "name": "Interlingua"}, "kbp": {"english_name": "Kabɩyɛ", "articles": 573, "name": "Kabiye"}, "cy": {"english_name": "Welsh", "articles": 92570, "name": "Cymraeg"}, "na": {"english_name": "Nauruan", "articles": 1283, "name": "dorerin Naoero"}, "gn": {"english_name": "Guarani", "articles": 3217, "name": "Avañe'ẽ"}, "mn": {"english_name": "Mongolian", "articles": 17575, "name": "Монгол"}, "bs": {"english_name": "Bosnian", "articles": 75821, "name": "Bosanski"}, "sah": {"english_name": "Sakha", "articles": 11415, "name": "Саха тыла (Saxa Tyla)"}, "csb": {"english_name": "Kashubian", "articles": 5213, "name": "Kaszëbsczi"}, "rmy": {"english_name": "Romani", "articles": 601, "name": "romani - रोमानी"}, "pih": {"english_name": "Norfolk", "articles": 620, "name": "Norfuk"}, "tl": {"english_name": "Tagalog", "articles": 83924, "name": "Tagalog"}, "mhr": {"english_name": "Meadow Mari", "articles": 9689, "name": "Олык Марий (Olyk Marij)"}, "bpy": {"english_name": "Bishnupriya Manipuri", "articles": 25079, "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী"}, "stq": {"english_name": "Saterland Frisian", "articles": 3794, "name": "Seeltersk"}, "lrc": {"english_name": "Northern Luri", "articles": 5326, "name": "لۊری شومالی"}, "koi": {"english_name": "Komi-Permyak", "articles": 3453, "name": "Перем Коми (Perem Komi)"}, "hif": {"english_name": "Fiji Hindi", "articles": 9707, "name": "Fiji Hindi"}, "br": {"english_name": "Breton", "articles": 63123, "name": "Brezhoneg"}, "jam": {"english_name": "Jamaican Patois", "articles": 1615, "name": "Jumiekan Kryuol"}, "ja": {"english_name": "Japanese", "articles": 1079370, "name": "日本語"}, "tcy": {"english_name": "Tulu", "articles": 849, "name": "ತುಳು"}, "sq": {"english_name": "Albanian", "articles": 69317, "name": "Shqip"}, "eu": {"english_name": "Basque", "articles": 284158, "name": "Euskara"}, "vo": {"english_name": "Volapük", "articles": 120622, "name": "Volapük"}, "ceb": {"english_name": "Cebuano", "articles": 5382720, "name": "Sinugboanong Binisaya"}, "bh": {"english_name": "Bihari", "articles": 9277, "name": "भोजपुरी"}, "ie": {"english_name": "Interlingue", "articles": 3700, "name": "Interlingue"}, "ang": {"english_name": "Anglo-Saxon", "articles": 2945, "name": "Englisc"}, "pdc": {"english_name": "Pennsylvania German", "articles": 1799, "name": "Deitsch"}, "mdf": {"english_name": "Moksha", "articles": 1179, "name": "Мокшень (Mokshanj Kälj)"}, "si": {"english_name": "Sinhalese", "articles": 13820, "name": "සිංහල"}, "he": {"english_name": "Hebrew", "articles": 213812, "name": "עברית"}, "frr": {"english_name": "North Frisian", "articles": 5475, "name": "Nordfriisk"}, "lbe": {"english_name": "Lak", "articles": 1213, "name": "Лакку"}, "kaa": {"english_name": "Karakalpak", "articles": 1892, "name": "Qaraqalpaqsha"}, "kw": {"english_name": "Cornish", "articles": 3792, "name": "Kernewek/Karnuack"}, "pcd": {"english_name": "Picard", "articles": 3535, "name": "Picard"}, "lo": {"english_name": "Lao", "articles": 2758, "name": "ລາວ"}, "pfl": {"english_name": "Palatinate German", "articles": 2070, "name": "Pälzisch"}, "vi": {"english_name": "Vietnamese", "articles": 1162191, "name": "Tiếng Việt"}, "be-tarask": {"english_name": "Belarusian (Taraškievica)", "articles": 61480, "name": "Беларуская (тарашкевіца)"}, "pms": {"english_name": "Piedmontese", "articles": 64198, "name": "Piemontèis"}, "rn": {"english_name": "Kirundi", "articles": 500, "name": "Kirundi"}, "su": {"english_name": "Sundanese", "articles": 38784, "name": "Basa Sunda"}, "ms": {"english_name": "Malay", "articles": 304280, "name": "Bahasa Melayu"}, "nah": {"english_name": "Nahuatl", "articles": 7119, "name": "Nāhuatl"}, "fr": {"english_name": "French", "articles": 1917429, "name": "Français"}, "ba": {"english_name": "Bashkir", "articles": 40027, "name": "Башҡорт"}, "tpi": {"english_name": "Tok Pisin", "articles": 1425, "name": "Tok Pisin"}, "ff": {"english_name": "Fula", "articles": 224, "name": "Fulfulde"}, "sm": {"english_name": "Samoan", "articles": 786, "name": "Gagana Samoa"}, "bxr": {"english_name": "Buryat", "articles": 2018, "name": "Буряад"}, "tet": {"english_name": "Tetum", "articles": 1418, "name": "Tetun"}, "dv": {"english_name": "Divehi", "articles": 3008, "name": "ދިވެހިބަސް"}, "fj": {"english_name": "Fijian", "articles": 430, "name": "Na Vosa Vakaviti"}, "szl": {"english_name": "Silesian", "articles": 6409, "name": "Ślůnski"}, "en": {"english_name": "English", "articles": 5490540, "name": "English"}, "uz": {"english_name": "Uzbek", "articles": 129075, "name": "O‘zbek"}, "dty": {"english_name": "डोटेली", "articles": 2128, "name": "Doteli"}, "ln": {"english_name": "Lingala", "articles": 2916, "name": "Lingala"}, "vep": {"english_name": "Vepsian", "articles": 5645, "name": "Vepsän"}, "vec": {"english_name": "Venetian", "articles": 10982, "name": "Vèneto"}, "new": {"english_name": "Newar", "articles": 72139, "name": "नेपाल भाषा"}, "ur": {"english_name": "Urdu", "articles": 124450, "name": "اردو"}, "mrj": {"english_name": "Hill Mari", "articles": 10265, "name": "Кырык Мары (Kyryk Mary)"}, "ts": {"english_name": "Tsonga", "articles": 540, "name": "Xitsonga"}, "hu": {"english_name": "Hungarian", "articles": 418142, "name": "Magyar"}, "sk": {"english_name": "Slovak", "articles": 223150, "name": "Slovenčina"}, "id": {"english_name": "Indonesian", "articles": 411506, "name": "Bahasa Indonesia"}, "ga": {"english_name": "Irish", "articles": 44243, "name": "Gaeilge"}, "ru": {"english_name": "Russian", "articles": 1425925, "name": "Русский"}, "to": {"english_name": "Tongan", "articles": 1689, "name": "faka Tonga"}, "chr": {"english_name": "Cherokee", "articles": 883, "name": "ᏣᎳᎩ"}, "hak": {"english_name": "Hakka", "articles": 8009, "name": "Hak-kâ-fa / 客家話"}, "map-bms": {"english_name": "Banyumasan", "articles": 13294, "name": "Basa Banyumasan"}, "gom": {"english_name": "Goan Konkani", "articles": 3380, "name": "गोंयची कोंकणी / Gõychi Konknni"}, "kv": {"english_name": "Komi", "articles": 5254, "name": "Коми"}, "tw": {"english_name": "Twi", "articles": 595, "name": "Twi"}, "bi": {"english_name": "Bislama", "articles": 1140, "name": "Bislama"}, "srn": {"english_name": "Sranan", "articles": 1059, "name": "Sranantongo"}, "lg": {"english_name": "Luganda", "articles": 1154, "name": "Luganda"}, "ady": {"english_name": "Adyghe", "articles": 403, "name": "Адыгэбзэ"}, "udm": {"english_name": "Udmurt", "articles": 4125, "name": "Удмурт кыл"}, "rw": {"english_name": "Kinyarwanda", "articles": 1812, "name": "Ikinyarwanda"}, "ss": {"english_name": "Swati", "articles": 432, "name": "SiSwati"}, "nds-nl": {"english_name": "Dutch Low Saxon", "articles": 6743, "name": "Nedersaksisch"}, "fi": {"english_name": "Finnish", "articles": 423220, "name": "Suomi"}, "ki": {"english_name": "Kikuyu", "articles": 1349, "name": "Gĩkũyũ"}, "tyv": {"english_name": "Tuvan", "articles": 1419, "name": "Тыва"}, "rue": {"english_name": "Rusyn", "articles": 6194, "name": "Русиньскый"}, "th": {"english_name": "Thai", "articles": 119427, "name": "ไทย"}, "bn": {"english_name": "Bengali", "articles": 52765, "name": "বাংলা"}, "ku": {"english_name": "Kurdish", "articles": 23052, "name": "Kurdî / كوردی"}, "ca": {"english_name": "Catalan", "articles": 557833, "name": "Català"}, "sa": {"english_name": "Sanskrit", "articles": 11182, "name": "संस्कृतम्"}, "or": {"english_name": "Oriya", "articles": 13175, "name": "ଓଡ଼ିଆ"}, "st": {"english_name": "Sesotho", "articles": 526, "name": "Sesotho"}, "af": {"english_name": "Afrikaans", "articles": 47107, "name": "Afrikaans"}, "sg": {"english_name": "Sango", "articles": 253, "name": "Sängö"}, "kk": {"english_name": "Kazakh", "articles": 219662, "name": "Қазақша"}, "ik": {"english_name": "Inupiak", "articles": 256, "name": "Iñupiak"}, "kab": {"english_name": "Kabyle", "articles": 2894, "name": "Taqbaylit"}, "hi": {"english_name": "Hindi", "articles": 121543, "name": "हिन्दी"}, "scn": {"english_name": "Sicilian", "articles": 25670, "name": "Sicilianu"}, "mk": {"english_name": "Macedonian", "articles": 90814, "name": "Македонски"}, "wuu": {"english_name": "Wu", "articles": 6073, "name": "吴语"}, "azb": {"english_name": "South Azerbaijani", "articles": 47457, "name": "تۆرکجه"}, "kl": {"english_name": "Greenlandic", "articles": 1638, "name": "Kalaallisut"}, "cu": {"english_name": "Old Church Slavonic", "articles": 591, "name": "Словѣньскъ"}, "crh": {"english_name": "Crimean Tatar", "articles": 5414, "name": "Qırımtatarca"}, "hr": {"english_name": "Croatian", "articles": 178083, "name": "Hrvatski"}, "lez": {"english_name": "Lezgian", "articles": 3852, "name": "Лезги чІал (Lezgi č’al)"}, "ti": {"english_name": "Tigrinya", "articles": 163, "name": "ትግርኛ"}, "jv": {"english_name": "Javanese", "articles": 50293, "name": "Basa Jawa"}, "hy": {"english_name": "Armenian", "articles": 232758, "name": "Հայերեն"}, "ro": {"english_name": "Romanian", "articles": 379516, "name": "Română"}, "mi": {"english_name": "Maori", "articles": 7133, "name": "Māori"}, "sc": {"english_name": "Sardinian", "articles": 5528, "name": "Sardu"}, "myv": {"english_name": "Erzya", "articles": 3939, "name": "Эрзянь (Erzjanj Kelj)"}, "pi": {"english_name": "Pali", "articles": 2525, "name": "पाऴि"}, "bjn": {"english_name": "Banjar", "articles": 1761, "name": "Bahasa Banjar"}, "cv": {"english_name": "Chuvash", "articles": 40690, "name": "Чăваш"}, "zu": {"english_name": "Zulu", "articles": 957, "name": "isiZulu"}, "tk": {"english_name": "Turkmen", "articles": 5267, "name": "تركمن / Туркмен"}, "sv": {"english_name": "Swedish", "articles": 3789235, "name": "Svenska"}, "am": {"english_name": "Amharic", "articles": 13861, "name": "አማርኛ"}, "arz": {"english_name": "Egyptian Arabic", "articles": 17363, "name": "مصرى (Maṣri)"}, "sn": {"english_name": "Shona", "articles": 2868, "name": "chiShona"}, "ee": {"english_name": "Ewe", "articles": 338, "name": "Eʋegbe"}, "xmf": {"english_name": "Mingrelian", "articles": 12279, "name": "მარგალური (Margaluri)"}, "nn": {"english_name": "Norwegian (Nynorsk)", "articles": 135175, "name": "Nynorsk"}, "ch": {"english_name": "Chamorro", "articles": 423, "name": "Chamoru"}, "als": {"english_name": "Alemannic", "articles": 23406, "name": "Alemannisch"}, "nds": {"english_name": "Low Saxon", "articles": 26780, "name": "Plattdüütsch"}, "it": {"english_name": "Italian", "articles": 1388262, "name": "Italiano"}, "dz": {"english_name": "Dzongkha", "articles": 228, "name": "ཇོང་ཁ"}, "tr": {"english_name": "Turkish", "articles": 299690, "name": "Türkçe"}, "ty": {"english_name": "Tahitian", "articles": 1191, "name": "Reo Mā`ohi"}, "pnb": {"english_name": "Western Punjabi", "articles": 45249, "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)"}, "sd": {"english_name": "Sindhi", "articles": 8251, "name": "سنڌي، سندھی ، सिन्ध"}, "rm": {"english_name": "Romansh", "articles": 3455, "name": "Rumantsch"}, "ko": {"english_name": "Korean", "articles": 399300, "name": "한국어"}, "lt": {"english_name": "Lithuanian", "articles": 183261, "name": "Lietuvių"}, "et": {"english_name": "Estonian", "articles": 162182, "name": "Eesti"}, "ky": {"english_name": "Kirghiz", "articles": 80579, "name": "Кыргызча"}, "ht": {"english_name": "Haitian", "articles": 51554, "name": "Krèyol ayisyen"}, "ce": {"english_name": "Chechen", "articles": 164438, "name": "Нохчийн"}, "bg": {"english_name": "Bulgarian", "articles": 235084, "name": "Български"}, "ka": {"english_name": "Georgian", "articles": 117872, "name": "ქართული"}, "frp": {"english_name": "Franco-Provençal", "articles": 2633, "name": "Arpitan"}, "nap": {"english_name": "Neapolitan", "articles": 14470, "name": "Nnapulitano"}, "pa": {"english_name": "Punjabi", "articles": 26967, "name": "ਪੰਜਾਬੀ"}, "pam": {"english_name": "Kapampangan", "articles": 8553, "name": "Kapampangan"}, "lb": {"english_name": "Luxembourgish", "articles": 50445, "name": "Lëtzebuergesch"}, "mr": {"english_name": "Marathi", "articles": 48748, "name": "मराठी"}, "gd": {"english_name": "Scottish Gaelic", "articles": 14594, "name": "Gàidhlig"}, "sw": {"english_name": "Swahili", "articles": 37911, "name": "Kiswahili"}, "ug": {"english_name": "Uyghur", "articles": 3367, "name": "ئۇيغۇر تىلى"}, "sr": {"english_name": "Serbian", "articles": 357090, "name": "Српски / Srpski"}, "km": {"english_name": "Khmer", "articles": 5385, "name": "ភាសាខ្មែរ"}, "pt": {"english_name": "Portuguese", "articles": 979830, "name": "Português"}, "te": {"english_name": "Telugu", "articles": 67631, "name": "తెలుగు"}, "ne": {"english_name": "Nepali", "articles": 30112, "name": "नेपाली"}, "chy": {"english_name": "Cheyenne", "articles": 610, "name": "Tsetsêhestâhese"}, "om": {"english_name": "Oromo", "articles": 728, "name": "Oromoo"}, "jbo": {"english_name": "Lojban", "articles": 1201, "name": "Lojban"}, "bo": {"english_name": "Tibetan", "articles": 5726, "name": "བོད་སྐད"}, "uk": {"english_name": "Ukrainian", "articles": 740713, "name": "Українська"}, "hsb": {"english_name": "Upper Sorbian", "articles": 12354, "name": "Hornjoserbsce"}, "co": {"english_name": "Corsican", "articles": 5460, "name": "Corsu"}, "min": {"english_name": "Minangkabau", "articles": 222028, "name": "Minangkabau"}, "lad": {"english_name": "Ladino", "articles": 4512, "name": "Dzhudezmo"}, "roa-tara": {"english_name": "Tarantino", "articles": 9234, "name": "Tarandíne"}, "ace": {"english_name": "Acehnese", "articles": 7231, "name": "Bahsa Acèh"}, "zh-yue": {"english_name": "Cantonese", "articles": 61128, "name": "粵語"}, "mzn": {"english_name": "Mazandarani", "articles": 12564, "name": "مَزِروني"}, "ar": {"english_name": "Arabic", "articles": 542561, "name": "العربية"}, "ta": {"english_name": "Tamil", "articles": 113411, "name": "தமிழ்"}, "cdo": {"english_name": "Min Dong", "articles": 13442, "name": "Mìng-dĕ̤ng-ngṳ̄"}, "mt": {"english_name": "Maltese", "articles": 3213, "name": "Malti"}}, "qwant images": ["bg-BG", "sv-SE", "ro-RO", "ms-MY", "pt-PT", "pt-AD", "pt-BR", "fr-FR", "fr-BE", "fr-CH", "fr-AD", "fr-CA", "gd-GB", "ko-KR", "he-IL", "br-FR", "ja-JP", "fi-FI", "eu-FR", "eu-ES", "el-GR", "es-ES", "es-AD", "es-AR", "es-CL", "es-MX", "en-GB", "en-IE", "en-SG", "en-IN", "en-MY", "en-AU", "en-US", "en-CA", "en-PH", "en-NZ", "th-TH", "et-EE", "ca-FR", "ca-ES", "ca-AD", "da-DK", "co-FR", "it-IT", "it-CH", "tr-TR", "cs-CZ", "nl-BE", "nl-NL", "no-NO", "hu-HU", "cy-GB", "pl-PL", "ru-RU", "de-DE", "de-AT", "de-CH"], "yahoo": ["ar", "bg", "zh-chs", "zh-cht", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hu", "it", "ja", "ko", "lv", "lt", "no", "pl", "pt", "ro", "ru", "sk", "sl", "es", "sv", "th", "tr"]}
-\ No newline at end of file
+{"qwant social": ["sv-SE", "el-GR", "nl-BE", "nl-NL", "et-EE", "tr-TR", "fi-FI", "ro-RO", "eu-FR", "eu-ES", "pl-PL", "gd-GB", "cs-CZ", "it-IT", "it-CH", "da-DK", "no-NO", "ca-FR", "ca-ES", "ca-AD", "cy-GB", "de-DE", "de-AT", "de-CH", "en-GB", "en-IE", "en-SG", "en-IN", "en-MY", "en-AU", "en-US", "en-CA", "en-PH", "en-NZ", "bg-BG", "ru-RU", "th-TH", "ko-KR", "fr-FR", "fr-BE", "fr-CH", "fr-AD", "fr-CA", "ms-MY", "br-FR", "co-FR", "he-IL", "pt-PT", "pt-AD", "pt-BR", "hu-HU", "ja-JP", "es-ES", "es-AD", "es-AR", "es-CL", "es-MX"], "google": {"ja": {"name": "日本語"}, "ar": {"name": "العربية"}, "uk": {"name": "Українська"}, "zh-CN": {"name": "中文 (简体)"}, "th": {"name": "ไทย"}, "fi": {"name": "Suomi"}, "lv": {"name": "Latviešu"}, "hy": {"name": "Հայերեն"}, "pl": {"name": "Polski"}, "cs": {"name": "Čeština"}, "id": {"name": "Indonesia"}, "sk": {"name": "Slovenčina"}, "eo": {"name": "Esperanto"}, "ca": {"name": "Català"}, "sr": {"name": "Српски"}, "be": {"name": "Беларуская"}, "nl": {"name": "Nederlands"}, "pt": {"name": "Português"}, "hr": {"name": "Hrvatski"}, "af": {"name": "Afrikaans"}, "el": {"name": "Ελληνικά"}, "is": {"name": "Íslenska"}, "hi": {"name": "हिन्दी"}, "sv": {"name": "Svenska"}, "sw": {"name": "Kiswahili"}, "tr": {"name": "Türkçe"}, "hu": {"name": "Magyar"}, "ro": {"name": "Română"}, "no": {"name": "Norsk"}, "fa": {"name": "فارسی"}, "et": {"name": "Eesti"}, "tl": {"name": "Filipino"}, "it": {"name": "Italiano"}, "vi": {"name": "Tiếng Việt"}, "da": {"name": "Dansk"}, "zh-TW": {"name": "中文 (繁體)"}, "iw": {"name": "עברית"}, "de": {"name": "Deutsch"}, "bg": {"name": "Български"}, "lt": {"name": "Lietuvių"}, "ko": {"name": "한국어"}, "fr": {"name": "Français"}, "en": {"name": "English"}, "sl": {"name": "Slovenščina"}, "ru": {"name": "Русский"}, "es": {"name": "Español"}}, "qwant news": ["sv-SE", "el-GR", "nl-BE", "nl-NL", "et-EE", "tr-TR", "fi-FI", "ro-RO", "eu-FR", "eu-ES", "pl-PL", "gd-GB", "cs-CZ", "it-IT", "it-CH", "da-DK", "no-NO", "ca-FR", "ca-ES", "ca-AD", "cy-GB", "de-DE", "de-AT", "de-CH", "en-GB", "en-IE", "en-SG", "en-IN", "en-MY", "en-AU", "en-US", "en-CA", "en-PH", "en-NZ", "bg-BG", "ru-RU", "th-TH", "ko-KR", "fr-FR", "fr-BE", "fr-CH", "fr-AD", "fr-CA", "ms-MY", "br-FR", "co-FR", "he-IL", "pt-PT", "pt-AD", "pt-BR", "hu-HU", "ja-JP", "es-ES", "es-AD", "es-AR", "es-CL", "es-MX"], "duckduckgo": ["zh-CN", "fi-FI", "es-ES", "en-AU", "de-AT", "ro-RO", "es-US", "ca-ES", "ms-MY", "nl-BE", "lv-LV", "lt-LT", "da-DK", "sl-SL", "en-US", "tl-PH", "cs-CZ", "es-AR", "et-EE", "en-ZA", "hu-HU", "id-ID", "ar-XA", "es-PE", "en-NZ", "bg-BG", "en-MY", "fr-CH", "nl-NL", "th-TH", "ca-CT", "el-GR", "it-CH", "jp-JP", "de-CH", "tr-TR", "ru-RU", "en-UK", "en-CA", "he-IL", "hr-HR", "en-ID", "en-IE", "en-IN", "de-DE", "fr-BE", "sk-SK", "fr-FR", "pt-BR", "no-NO", "es-CO", "vi-VN", "pl-PL", "pt-PT", "en-SG", "fr-CA", "wt-WT", "sv-SE", "it-IT", "tzh-TW", "es-CL", "tzh-HK", "kr-KR", "es-MX", "en-PH"], "bing": ["sq", "de", "ar", "bg", "ca", "cs", "zh-CHS", "zh-CHT", "ko", "hr", "da", "sk", "sl", "es", "et", "fi", "fr", "el", "he", "nl", "hu", "id", "en", "is", "it", "ja", "lv", "lt", "ms", "no", "fa", "pl", "pt-BR", "pt-PT", "ro", "ru", "sr", "sv", "th", "tr", "uk", "vi"], "duckduckgo images": ["zh-CN", "fi-FI", "es-ES", "en-AU", "de-AT", "ro-RO", "es-US", "ca-ES", "ms-MY", "nl-BE", "lv-LV", "lt-LT", "da-DK", "sl-SL", "en-US", "tl-PH", "cs-CZ", "es-AR", "et-EE", "en-ZA", "hu-HU", "id-ID", "ar-XA", "es-PE", "en-NZ", "bg-BG", "en-MY", "fr-CH", "nl-NL", "th-TH", "ca-CT", "el-GR", "it-CH", "jp-JP", "de-CH", "tr-TR", "ru-RU", "en-UK", "en-CA", "he-IL", "hr-HR", "en-ID", "en-IE", "en-IN", "de-DE", "fr-BE", "sk-SK", "fr-FR", "pt-BR", "no-NO", "es-CO", "vi-VN", "pl-PL", "pt-PT", "en-SG", "fr-CA", "wt-WT", "sv-SE", "it-IT", "tzh-TW", "es-CL", "tzh-HK", "kr-KR", "es-MX", "en-PH"], "yahoo news": ["ar", "bg", "zh-CHS", "zh-CHT", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hu", "it", "ja", "ko", "lv", "lt", "no", "pl", "pt", "ro", "ru", "sk", "sl", "es", "sv", "th", "tr"], "qwant images": ["sv-SE", "el-GR", "nl-BE", "nl-NL", "et-EE", "tr-TR", "fi-FI", "ro-RO", "eu-FR", "eu-ES", "pl-PL", "gd-GB", "cs-CZ", "it-IT", "it-CH", "da-DK", "no-NO", "ca-FR", "ca-ES", "ca-AD", "cy-GB", "de-DE", "de-AT", "de-CH", "en-GB", "en-IE", "en-SG", "en-IN", "en-MY", "en-AU", "en-US", "en-CA", "en-PH", "en-NZ", "bg-BG", "ru-RU", "th-TH", "ko-KR", "fr-FR", "fr-BE", "fr-CH", "fr-AD", "fr-CA", "ms-MY", "br-FR", "co-FR", "he-IL", "pt-PT", "pt-AD", "pt-BR", "hu-HU", "ja-JP", "es-ES", "es-AD", "es-AR", "es-CL", "es-MX"], "qwant": ["sv-SE", "el-GR", "nl-BE", "nl-NL", "et-EE", "tr-TR", "fi-FI", "ro-RO", "eu-FR", "eu-ES", "pl-PL", "gd-GB", "cs-CZ", "it-IT", "it-CH", "da-DK", "no-NO", "ca-FR", "ca-ES", "ca-AD", "cy-GB", "de-DE", "de-AT", "de-CH", "en-GB", "en-IE", "en-SG", "en-IN", "en-MY", "en-AU", "en-US", "en-CA", "en-PH", "en-NZ", "bg-BG", "ru-RU", "th-TH", "ko-KR", "fr-FR", "fr-BE", "fr-CH", "fr-AD", "fr-CA", "ms-MY", "br-FR", "co-FR", "he-IL", "pt-PT", "pt-AD", "pt-BR", "hu-HU", "ja-JP", "es-ES", "es-AD", "es-AR", "es-CL", "es-MX"], "google news": {"ja": {"name": "日本語"}, "ar": {"name": "العربية"}, "uk": {"name": "Українська"}, "zh-CN": {"name": "中文 (简体)"}, "th": {"name": "ไทย"}, "fi": {"name": "Suomi"}, "lv": {"name": "Latviešu"}, "hy": {"name": "Հայերեն"}, "pl": {"name": "Polski"}, "cs": {"name": "Čeština"}, "id": {"name": "Indonesia"}, "sk": {"name": "Slovenčina"}, "eo": {"name": "Esperanto"}, "ca": {"name": "Català"}, "sr": {"name": "Српски"}, "be": {"name": "Беларуская"}, "nl": {"name": "Nederlands"}, "pt": {"name": "Português"}, "hr": {"name": "Hrvatski"}, "af": {"name": "Afrikaans"}, "el": {"name": "Ελληνικά"}, "is": {"name": "Íslenska"}, "hi": {"name": "हिन्दी"}, "sv": {"name": "Svenska"}, "sw": {"name": "Kiswahili"}, "tr": {"name": "Türkçe"}, "hu": {"name": "Magyar"}, "ro": {"name": "Română"}, "no": {"name": "Norsk"}, "fa": {"name": "فارسی"}, "et": {"name": "Eesti"}, "tl": {"name": "Filipino"}, "it": {"name": "Italiano"}, "vi": {"name": "Tiếng Việt"}, "da": {"name": "Dansk"}, "zh-TW": {"name": "中文 (繁體)"}, "iw": {"name": "עברית"}, "de": {"name": "Deutsch"}, "bg": {"name": "Български"}, "lt": {"name": "Lietuvių"}, "ko": {"name": "한국어"}, "fr": {"name": "Français"}, "en": {"name": "English"}, "sl": {"name": "Slovenščina"}, "ru": {"name": "Русский"}, "es": {"name": "Español"}}, "bing videos": ["de-DE", "ar-SA", "es-AR", "en-AU", "de-AT", "fr-BE", "nl-BE", "pt-BR", "fr-CA", "en-CA", "ko-KR", "es-ES", "es-US", "en-US", "fr-FR", "zh-HK", "en-IN", "en-ID", "it-IT", "ja-JP", "en-MY", "es-MX", "no-NO", "nl-NL", "pl-PL", "en-GB", "zh-CN", "ru-RU", "en-ZA", "sv-SE", "de-CH", "fr-CH", "zh-TW", "tr-TR"], "dailymotion": {"nhb": {"english_name": "Beng"}, "tdk": {"english_name": "Tambas"}, "mcg": {"english_name": "Mapoyo"}, "kzv": {"english_name": "Komyandaret"}, "ned": {"english_name": "Nde-Gbite"}, "aoc": {"english_name": "Pemon"}, "ug": {"english_name": "Uighur"}, "sce": {"english_name": "Dongxiang"}, "fli": {"english_name": "Fali"}, "mfh": {"english_name": "Matal"}, "xdc": {"english_name": "Dacian"}, "tov": {"english_name": "Taromi, Upper"}, "ood": {"english_name": "Tohono O'odham"}, "bmc": {"english_name": "Biem"}, "yo": {"english_name": "Yoruba"}, "bqv": {"english_name": "Koro Wachi"}, "wec": {"english_name": "Wè Western"}, "awe": {"english_name": "Awetí"}, "bht": {"english_name": "Bhattiyali"}, "ik": {"english_name": "Inupiaq"}, "bro": {"english_name": "Brokkat"}, "dua": {"english_name": "Duala"}, "mjv": {"english_name": "Mannan"}, "chz": {"english_name": "Chinantec, Ozumacín"}, "skf": {"english_name": "Sakirabiá"}, "bbc": {"english_name": "Batak Toba"}, "qxt": {"english_name": "Quechua, Santa Ana de Tusi Pasco"}, "zaa": {"english_name": "Zapotec, Sierra de Juárez"}, "aom": {"english_name": "Ömie"}, "ych": {"english_name": "Chesu"}, "jbj": {"english_name": "Arandai"}, "nii": {"english_name": "Nii"}, "hmb": {"english_name": "Songhay, Humburi Senni"}, "ttc": {"english_name": "Tektiteko"}, "kwl": {"english_name": "Kofyar"}, "nnr": {"english_name": "Narungga"}, "umm": {"english_name": "Umon"}, "cuh": {"english_name": "Chuka"}, "sqo": {"english_name": "Sorkhei"}, "kqc": {"english_name": "Doromu-Koki"}, "jeh": {"english_name": "Jeh"}, "lah": {"english_name": "Lahnda"}, "nsw": {"english_name": "Navut"}, "kht": {"english_name": "Khamti"}, "skx": {"english_name": "Seko Padang"}, "xri": {"english_name": "Krikati-Timbira"}, "byi": {"english_name": "Buyu"}, "cov": {"english_name": "Cao Miao"}, "xrn": {"english_name": "Arin"}, "chl": {"english_name": "Cahuilla"}, "kpw": {"english_name": "Kobon"}, "syo": {"english_name": "Suoy"}, "mft": {"english_name": "Mokerang"}, "smn": {"english_name": "Sami, Inari"}, "dkx": {"english_name": "Mazagway"}, "mje": {"english_name": "Muskum"}, "sde": {"english_name": "Surubu"}, "dgd": {"english_name": "Dagaari Dioula"}, "cbe": {"english_name": "Chipiajes"}, "wrw": {"english_name": "Gugu Warra"}, "tgf": {"english_name": "Chalikha"}, "key": {"english_name": "Kupia"}, "bsq": {"english_name": "Bassa"}, "zpv": {"english_name": "Zapotec, Chichicapan"}, "dug": {"english_name": "Duruma"}, "vbb": {"english_name": "Babar, Southeast"}, "raz": {"english_name": "Rahambuu"}, "slp": {"english_name": "Lamaholot"}, "dnt": {"english_name": "Dani, Mid Grand Valley"}, "kfy": {"english_name": "Kumaoni"}, "dsl": {"english_name": "Danish Sign Language"}, "ges": {"english_name": "Geser-Gorom"}, "frk": {"english_name": "Frankish"}, "mva": {"english_name": "Manam"}, "bot": {"english_name": "Bongo"}, "aeq": {"english_name": "Aer"}, "ssf": {"english_name": "Thao"}, "smk": {"english_name": "Bolinao"}, "kpt": {"english_name": "Karata"}, "ekp": {"english_name": "Ekpeye"}, "kde": {"english_name": "Makonde"}, "mlb": {"english_name": "Mbule"}, "kya": {"english_name": "Kwaya"}, "iff": {"english_name": "Ifo"}, "ump": {"english_name": "Umpila"}, "att": {"english_name": "Atta, Pamplona"}, "lzh": {"english_name": "Chinese, Literary"}, "lmz": {"english_name": "Lumbee"}, "sac": {"english_name": "Meskwaki"}, "etb": {"english_name": "Etebi"}, "xnz": {"english_name": "Kenzi"}, "mkv": {"english_name": "Mafea"}, "kyo": {"english_name": "Kelon"}, "bca": {"english_name": "Bai, Central"}, "bol": {"english_name": "Bole"}, "acl": {"english_name": "Akar-Bale"}, "tsu": {"english_name": "Tsou"}, "sog": {"english_name": "Sogdian"}, "zyg": {"english_name": "Zhuang, Yang"}, "xcm": {"english_name": "Comecrudo"}, "tng": {"english_name": "Tobanga"}, "kdi": {"english_name": "Kumam"}, "gmm": {"english_name": "Gbaya-Mbodomo"}, "tzl": {"english_name": "Talossan"}, "kbr": {"english_name": "Kafa"}, "bxh": {"english_name": "Buhutu"}, "mux": {"english_name": "Bo-Ung"}, "mew": {"english_name": "Maaka"}, "ywl": {"english_name": "Lalu, Western"}, "egl": {"english_name": "Emilian"}, "mcl": {"english_name": "Macaguaje"}, "mdw": {"english_name": "Mbosi"}, "wnm": {"english_name": "Wanggamala"}, "kcs": {"english_name": "Koenoem"}, "kwi": {"english_name": "Awa-Cuaiquer"}, "luj": {"english_name": "Luna"}, "zu": {"name": "Isi-Zulu", "english_name": "Zulu"}, "ztn": {"english_name": "Zapotec, Santa Catarina Albarradas"}, "ang": {"english_name": "English, Old (ca. 450-1100)"}, "kgf": {"english_name": "Kube"}, "bxa": {"english_name": "Tairaha"}, "tum": {"english_name": "Tumbuka"}, "cpu": {"english_name": "Ashéninka, Pichis"}, "vmq": {"english_name": "Mixtec, Soyaltepec"}, "esh": {"english_name": "Eshtehardi"}, "bri": {"english_name": "Mokpwe"}, "xka": {"english_name": "Kalkoti"}, "kun": {"english_name": "Kunama"}, "nwm": {"english_name": "Nyamusa-Molo"}, "pag": {"english_name": "Pangasinan"}, "usa": {"english_name": "Usarufa"}, "pow": {"english_name": "Popoloca, San Felipe Otlaltepec"}, "aaz": {"english_name": "Amarasi"}, "mpb": {"english_name": "Mullukmulluk"}, "bgm": {"english_name": "Baga Mboteni"}, "pnv": {"english_name": "Pinigura"}, "sqm": {"english_name": "Suma"}, "bcw": {"english_name": "Bana"}, "prw": {"english_name": "Parawen"}, "ksz": {"english_name": "Kodaku"}, "gir": {"english_name": "Gelao, Red"}, "yaq": {"english_name": "Yaqui"}, "lkb": {"english_name": "Kabras"}, "wig": {"english_name": "Wik-Ngathana"}, "wil": {"english_name": "Wilawila"}, "xxt": {"english_name": "Tambora"}, "gge": {"english_name": "Guragone"}, "nwx": {"english_name": "Newar, Middle"}, "doq": {"english_name": "Dominican Sign Language"}, "pnz": {"english_name": "Pana (Central African Republic)"}, "knk": {"english_name": "Kuranko"}, "dus": {"english_name": "Dumi"}, "lcm": {"english_name": "Tungag"}, "jpa": {"english_name": "Aramaic, Jewish Palestinian"}, "hap": {"english_name": "Hupla"}, "mzv": {"english_name": "Manza"}, "pry": {"english_name": "Pray 3"}, "keh": {"english_name": "Keak"}, "xlg": {"english_name": "Ligurian (Ancient)"}, "ska": {"english_name": "Skagit"}, "mnz": {"english_name": "Moni"}, "meb": {"english_name": "Ikobi"}, "nil": {"english_name": "Nila"}, "haz": {"english_name": "Hazaragi"}, "qvo": {"english_name": "Quechua, Napo Lowland"}, "teh": {"english_name": "Tehuelche"}, "sue": {"english_name": "Suena"}, "yga": {"english_name": "Malyangapa"}, "kri": {"english_name": "Krio"}, "mvw": {"english_name": "Machinga"}, "del": {"english_name": "Delaware"}, "etn": {"english_name": "Eton (Vanuatu)"}, "wja": {"english_name": "Waja"}, "enn": {"english_name": "Engenni"}, "any": {"english_name": "Anyin"}, "lrv": {"english_name": "Larevat"}, "asq": {"english_name": "Austrian Sign Language"}, "xqt": {"english_name": "Qatabanian"}, "xjb": {"english_name": "Minjungbal"}, "nee": {"english_name": "Nêlêmwa-Nixumwak"}, "msw": {"english_name": "Mansoanka"}, "kyg": {"english_name": "Keyagana"}, "pos": {"english_name": "Popoluca, Sayula"}, "bno": {"english_name": "Bantoanon"}, "kyh": {"english_name": "Karok"}, "rmf": {"english_name": "Romani, Kalo Finnish"}, "zoq": {"english_name": "Zoque, Tabasco"}, "my": {"english_name": "Burmese"}, "kst": {"english_name": "Winyé"}, "ant": {"english_name": "Antakarinya"}, "yas": {"english_name": "Nugunu (Cameroon)"}, "sjm": {"english_name": "Mapun"}, "sjr": {"english_name": "Siar-Lak"}, "svb": {"english_name": "Ulau-Suain"}, "tmm": {"english_name": "Tai Thanh"}, "sbb": {"english_name": "Simbo"}, "niz": {"english_name": "Ningil"}, "zpf": {"english_name": "Zapotec, San Pedro Quiatoni"}, "zyn": {"english_name": "Zhuang, Yongnan"}, "zgh": {"english_name": "Tamazight, Standard Moroccan"}, "ivv": {"english_name": "Ivatan"}, "yak": {"english_name": "Yakama"}, "et": {"name": "Eesti", "english_name": "Estonian"}, "tvl": {"english_name": "Tuvalu"}, "ffi": {"english_name": "Foia Foia"}, "kos": {"english_name": "Kosraean"}, "dts": {"english_name": "Dogon, Toro So"}, "kuc": {"english_name": "Kwinsu"}, "ulw": {"english_name": "Ulwa"}, "mug": {"english_name": "Musgu"}, "vmk": {"english_name": "Makhuwa-Shirima"}, "ltn": {"english_name": "Latundê"}, "han": {"english_name": "Hangaza"}, "kjt": {"english_name": "Karen, Phrae Pwo"}, "kxn": {"english_name": "Melanau, Kanowit-Tanjong"}, "grc": {"english_name": "Greek, Ancient (to 1453)"}, "wam": {"english_name": "Wampanoag"}, "mjh": {"english_name": "Mwera (Nyasa)"}, "cbl": {"english_name": "Chin, Bualkhaw"}, "plk": {"english_name": "Shina, Kohistani"}, "gbu": {"english_name": "Gagadu"}, "tpo": {"english_name": "Tai Pao"}, "byw": {"english_name": "Belhariya"}, "toq": {"english_name": "Toposa"}, "apu": {"english_name": "Apurinã"}, "azj": {"english_name": "Azerbaijani, North"}, "xku": {"english_name": "Kaamba"}, "mdk": {"english_name": "Mangbutu"}, "kwb": {"english_name": "Kwa"}, "jet": {"english_name": "Manem"}, "iap": {"english_name": "Iapama"}, "cmn": {"english_name": "Chinese, Mandarin"}, "pei": {"english_name": "Chichimeca-Jonaz"}, "nkr": {"english_name": "Nukuoro"}, "hru": {"english_name": "Hruso"}, "lcl": {"english_name": "Lisela"}, "ggg": {"english_name": "Gurgula"}, "ktn": {"english_name": "Karitiâna"}, "bhu": {"english_name": "Bhunjia"}, "idd": {"english_name": "Ede Idaca"}, "caz": {"english_name": "Canichana"}, "hwo": {"english_name": "Hwana"}, "xra": {"english_name": "Krahô"}, "cms": {"english_name": "Messapic"}, "muh": {"english_name": "Mündü"}, "kky": {"english_name": "Guguyimidjir"}, "okl": {"english_name": "Kentish Sign Language, Old"}, "bbj": {"english_name": "Ghomálá'"}, "vmi": {"english_name": "Miwa"}, "kmh": {"english_name": "Kalam"}, "dti": {"english_name": "Dogon, Ana Tinga"}, "mtn": {"english_name": "Matagalpa"}, "taa": {"english_name": "Tanana, Lower"}, "lti": {"english_name": "Leti (Indonesia)"}, "az": {"name": "Azerbaijani", "english_name": "Azerbaijani"}, "hea": {"english_name": "Miao, Northern Qiandong"}, "har": {"english_name": "Harari"}, "tcn": {"english_name": "Tichurong"}, "spu": {"english_name": "Sapuan"}, "mce": {"english_name": "Mixtec, Itundujia"}, "auq": {"english_name": "Anus"}, "mpw": {"english_name": "Mapidian"}, "sia": {"english_name": "Sami, Akkala"}, "ysd": {"english_name": "Samatao"}, "btq": {"english_name": "Batek"}, "aek": {"english_name": "Haeke"}, "aok": {"english_name": "Arhö"}, "hmk": {"english_name": "Maek"}, "nut": {"english_name": "Nung (Viet Nam)"}, "smh": {"english_name": "Samei"}, "yaw": {"english_name": "Yawalapití"}, "bmu": {"english_name": "Somba-Siawari"}, "tlx": {"english_name": "Khehek"}, "cbd": {"english_name": "Carijona"}, "kcw": {"english_name": "Kabwari"}, "ukw": {"english_name": "Ukwuani-Aboh-Ndoni"}, "bzc": {"english_name": "Malagasy, Southern Betsimisaraka"}, "zpz": {"english_name": "Zapotec, Texmelucan"}, "bks": {"english_name": "Sorsoganon, Northern"}, "mhi": {"english_name": "Ma'di"}, "ski": {"english_name": "Sika"}, "lgg": {"english_name": "Lugbara"}, "mjs": {"english_name": "Miship"}, "snj": {"english_name": "Sango, Riverain"}, "dho": {"english_name": "Dhodia"}, "kkc": {"english_name": "Odoodee"}, "goi": {"english_name": "Gobasi"}, "mgi": {"english_name": "Lijili"}, "mka": {"english_name": "Mbre"}, "gas": {"english_name": "Garasia, Adiwasi"}, "yml": {"english_name": "Iamalele"}, "spp": {"english_name": "Senoufo, Supyire"}, "zik": {"english_name": "Zimakani"}, "rob": {"english_name": "Tae'"}, "shn": {"english_name": "Shan"}, "mhc": {"english_name": "Mocho"}, "vmu": {"english_name": "Muluridyi"}, "mxa": {"english_name": "Mixtec, Northwest Oaxaca"}, "oon": {"english_name": "Önge"}, "guf": {"english_name": "Gupapuyngu"}, "dby": {"english_name": "Dibiyaso"}, "bcf": {"english_name": "Bamu"}, "sck": {"english_name": "Sadri"}, "nhk": {"english_name": "Nahuatl, Isthmus-Cosoleacaque"}, "gvr": {"english_name": "Gurung, Western"}, "kjb": {"english_name": "Q'anjob'al"}, "kdu": {"english_name": "Kadaru"}, "gna": {"english_name": "Kaansa"}, "pex": {"english_name": "Petats"}, "nkj": {"english_name": "Nakai"}, "puc": {"english_name": "Punan Merap"}, "crf": {"english_name": "Caramanta"}, "png": {"english_name": "Pongu"}, "shz": {"english_name": "Senoufo, Syenara"}, "bfs": {"english_name": "Bai, Southern"}, "ail": {"english_name": "Aimele"}, "axx": {"english_name": "Xârâgurè"}, "diy": {"english_name": "Diuwe"}, "kaw": {"english_name": "Kawi"}, "qun": {"english_name": "Quinault"}, "loz": {"english_name": "Lozi"}, "lsg": {"english_name": "Lyons Sign Language"}, "oia": {"english_name": "Oirata"}, "sng": {"english_name": "Sanga (Democratic Republic of Congo)"}, "zna": {"english_name": "Zan Gula"}, "pio": {"english_name": "Piapoco"}, "syb": {"english_name": "Subanen, Central"}, "utr": {"english_name": "Etulo"}, "dyg": {"english_name": "Agta, Villa Viciosa"}, "jia": {"english_name": "Jina"}, "heg": {"english_name": "Helong"}, "nif": {"english_name": "Nek"}, "mtq": {"english_name": "Muong"}, "mga": {"english_name": "Irish, Middle (900-1200)"}, "jmw": {"english_name": "Mouwase"}, "xiy": {"english_name": "Xipaya"}, "kbh": {"english_name": "Camsá"}, "awr": {"english_name": "Awera"}, "cqd": {"english_name": "Miao, Chuanqiandian Cluster"}, "kfj": {"english_name": "Kemiehua"}, "vor": {"english_name": "Voro"}, "ozm": {"english_name": "Koonzime"}, "cml": {"english_name": "Campalagian"}, "wod": {"english_name": "Wolani"}, "adu": {"english_name": "Aduge"}, "dtb": {"english_name": "Kadazan, Labuk-Kinabatangan"}, "slw": {"english_name": "Sialum"}, "ksq": {"english_name": "Kwaami"}, "pns": {"english_name": "Ponosakan"}, "wxw": {"english_name": "Wardandi"}, "nhg": {"english_name": "Nahuatl, Tetelcingo"}, "blp": {"english_name": "Blablanga"}, "kqr": {"english_name": "Kimaragang"}, "ttt": {"english_name": "Tat, Muslim"}, "ipi": {"english_name": "Ipili"}, "wnd": {"english_name": "Wandarang"}, "agh": {"english_name": "Ngelima"}, "adb": {"english_name": "Adabe"}, "bnc": {"english_name": "Bontok"}, "uji": {"english_name": "Tanjijili"}, "sih": {"english_name": "Zire"}, "rmc": {"english_name": "Romani, Carpathian"}, "nci": {"english_name": "Nahuatl, Classical"}, "ree": {"english_name": "Kayan, Rejang"}, "gwu": {"english_name": "Guwamu"}, "daz": {"english_name": "Dao"}, "dym": {"english_name": "Dogon, Yanda Dom"}, "kvp": {"english_name": "Kompane"}, "mxk": {"english_name": "Monumbo"}, "lba": {"english_name": "Lui"}, "kjk": {"english_name": "Konjo, Highland"}, "gug": {"english_name": "Guaraní, Paraguayan"}, "kzj": {"english_name": "Kadazan, Coastal"}, "ahi": {"english_name": "Aizi, Tiagbamrin"}, "npi": {"english_name": "Nepali (individual language)"}, "bvw": {"english_name": "Boga"}, "xba": {"english_name": "Kamba (Brazil)"}, "gex": {"english_name": "Garre"}, "tao": {"english_name": "Yami"}, "xns": {"english_name": "Kanashi"}, "lee": {"english_name": "Lyélé"}, "jng": {"english_name": "Yangman"}, "kjq": {"english_name": "Keres, Western"}, "hir": {"english_name": "Himarimã"}, "boq": {"english_name": "Bogaya"}, "kki": {"english_name": "Kagulu"}, "kbw": {"english_name": "Kaiep"}, "yit": {"english_name": "Lalu, Eastern"}, "kad": {"english_name": "Adara"}, "mnc": {"english_name": "Manchu"}, "tqw": {"english_name": "Tonkawa"}, "avl": {"english_name": "Arabic, Eastern Egyptian Bedawi"}, "sfw": {"english_name": "Sehwi"}, "abm": {"english_name": "Abanyom"}, "jdt": {"english_name": "Judeo-Tat"}, "ppu": {"english_name": "Papora"}, "yif": {"english_name": "Ache"}, "skw": {"english_name": "Creole Dutch, Skepi"}, "got": {"english_name": "Gothic"}, "bry": {"english_name": "Burui"}, "hmz": {"english_name": "Hmong Shua"}, "nmi": {"english_name": "Nyam"}, "ndm": {"english_name": "Ndam"}, "sbj": {"english_name": "Surbakhal"}, "wos": {"english_name": "Hanga Hundi"}, "alq": {"english_name": "Algonquin"}, "typ": {"english_name": "Thaypan"}, "ahs": {"english_name": "Ashe"}, "gyd": {"english_name": "Kayardild"}, "zpc": {"english_name": "Zapotec, Choapan"}, "tcq": {"english_name": "Kaiy"}, "tav": {"english_name": "Tatuyo"}, "tiz": {"english_name": "Tai Hongjin"}, "lid": {"english_name": "Nyindrou"}, "nnc": {"english_name": "Nancere"}, "koq": {"english_name": "Kota (Gabon)"}, "bbi": {"english_name": "Barombi"}, "ona": {"english_name": "Ona"}, "bjn": {"english_name": "Banjar"}, "ule": {"english_name": "Lule"}, "itl": {"english_name": "Itelmen"}, "fer": {"english_name": "Feroge"}, "rau": {"english_name": "Raute"}, "qvs": {"english_name": "Quechua, San Martín"}, "pmw": {"english_name": "Miwok, Plains"}, "pld": {"english_name": "Polari"}, "amu": {"english_name": "Amuzgo, Guerrero"}, "bfl": {"english_name": "Banda-Ndélé"}, "kne": {"english_name": "Kankanaey"}, "myh": {"english_name": "Makah"}, "oru": {"english_name": "Ormuri"}, "apc": {"english_name": "Arabic, North Levantine"}, "smv": {"english_name": "Samvedi"}, "crn": {"english_name": "Cora, El Nayar"}, "iby": {"english_name": "Ibani"}, "far": {"english_name": "Fataleka"}, "bsb": {"english_name": "Bisaya, Brunei"}, "xmp": {"english_name": "Kuku-Mu'inh"}, "ahm": {"english_name": "Aizi, Mobumrin"}, "ykr": {"english_name": "Yekora"}, "abj": {"english_name": "Aka-Bea"}, "otx": {"english_name": "Otomi, Texcatepec"}, "ogu": {"english_name": "Ogbronuagum"}, "ait": {"english_name": "Arikem"}, "ulb": {"english_name": "Ulukwumi"}, "zin": {"english_name": "Zinza"}, "dww": {"english_name": "Dawawa"}, "uar": {"english_name": "Tairuma"}, "tuq": {"english_name": "Tedaga"}, "naf": {"english_name": "Nabak"}, "rui": {"english_name": "Rufiji"}, "dne": {"english_name": "Ndendeule"}, "ztq": {"english_name": "Zapotec, Quioquitani-Quierí"}, "kms": {"english_name": "Kamasau"}, "mwy": {"english_name": "Mosiro"}, "nad": {"english_name": "Nijadali"}, "nps": {"english_name": "Nipsan"}, "ogg": {"english_name": "Ogbogolo"}, "gom": {"english_name": "Konkani, Goan"}, "ktl": {"english_name": "Koroshi"}, "goa": {"english_name": "Guro"}, "vkl": {"english_name": "Kulisusu"}, "ilu": {"english_name": "Ili'uun"}, "ped": {"english_name": "Mala (Papua New Guinea)"}, "sbp": {"english_name": "Sangu (Tanzania)"}, "ng": {"english_name": "Ndonga"}, "ydk": {"english_name": "Yoidik"}, "nhp": {"english_name": "Nahuatl, Isthmus-Pajapan"}, "xrt": {"english_name": "Aranama-Tamique"}, "zmf": {"english_name": "Mfinu"}, "krf": {"english_name": "Koro (Vanuatu)"}, "les": {"english_name": "Lese"}, "mej": {"english_name": "Meyah"}, "rof": {"english_name": "Rombo"}, "bdr": {"english_name": "Bajau, West Coast"}, "sdx": {"english_name": "Melanau, Sibu"}, "okm": {"english_name": "Korean, Middle (10th-16th cent.)"}, "oue": {"english_name": "Oune"}, "nnm": {"english_name": "Namia"}, "ybm": {"english_name": "Yaben"}, "zhi": {"english_name": "Zhire"}, "tbp": {"english_name": "Taworta"}, "krp": {"english_name": "Korop"}, "dis": {"english_name": "Dimasa"}, "bkm": {"english_name": "Kom (Cameroon)"}, "kyz": {"english_name": "Kayabí"}, "cy": {"name": "Cymraeg", "english_name": "Welsh"}, "eno": {"english_name": "Enggano"}, "lmn": {"english_name": "Lambadi"}, "cax": {"english_name": "Chiquitano"}, "seb": {"english_name": "Senoufo, Shempire"}, "bwn": {"english_name": "Bunu, Wunai"}, "kfv": {"english_name": "Kurmukar"}, "cla": {"english_name": "Ron"}, "eot": {"english_name": "Beti (Côte d'Ivoire)"}, "hds": {"english_name": "Honduras Sign Language"}, "oti": {"english_name": "Oti"}, "mdg": {"english_name": "Massalat"}, "yog": {"english_name": "Yogad"}, "coj": {"english_name": "Cochimi"}, "mfz": {"english_name": "Mabaan"}, "lbw": {"english_name": "Tolaki"}, "stn": {"english_name": "Owa"}, "eto": {"english_name": "Eton (Cameroon)"}, "hmq": {"english_name": "Miao, Eastern Qiandong"}, "fay": {"english_name": "Fars, Southwestern"}, "yww": {"english_name": "Yawarawarga"}, "pml": {"english_name": "Lingua Franca"}, "los": {"english_name": "Loniu"}, "xtq": {"english_name": "Tumshuqese"}, "gcf": {"english_name": "Creole French, Guadeloupean"}, "sze": {"english_name": "Seze"}, "ty": {"english_name": "Tahitian"}, "ymr": {"english_name": "Malasar"}, "giz": {"english_name": "Giziga, South"}, "jeg": {"english_name": "Jeng"}, "pal": {"english_name": "Pahlavi"}, "adi": {"english_name": "Adi"}, "nun": {"english_name": "Anong"}, "wtf": {"english_name": "Watiwa"}, "wax": {"english_name": "Watam"}, "ngd": {"english_name": "Ngando (Central African Republic)"}, "tab": {"english_name": "Tabassaran"}, "svs": {"english_name": "Savosavo"}, "bie": {"english_name": "Bepour"}, "bem": {"english_name": "Bemba (Zambia)"}, "zpq": {"english_name": "Zapotec, Zoogocho"}, "ssx": {"english_name": "Samberigi"}, "nmc": {"english_name": "Ngam"}, "msx": {"english_name": "Moresada"}, "mjz": {"english_name": "Majhi"}, "bim": {"english_name": "Bimoba"}, "cet": {"english_name": "Centúúm"}, "ayr": {"english_name": "Aymara, Central"}, "tns": {"english_name": "Tenis"}, "pmf": {"english_name": "Pamona"}, "thu": {"english_name": "Thuri"}, "isu": {"english_name": "Isu (Menchum Division)"}, "kdr": {"english_name": "Karaim"}, "fie": {"english_name": "Fyer"}, "ims": {"english_name": "Marsian"}, "kld": {"english_name": "Gamilaraay"}, "asa": {"english_name": "Asu (Tanzania)"}, "pef": {"english_name": "Pomo, Northeastern"}, "mrh": {"english_name": "Chin, Mara"}, "krl": {"english_name": "Karelian"}, "gye": {"english_name": "Gyem"}, "piv": {"english_name": "Pileni"}, "mzx": {"english_name": "Mawayana"}, "bju": {"english_name": "Busuu"}, "nyj": {"english_name": "Nyanga"}, "ksr": {"english_name": "Borong"}, "toi": {"english_name": "Tonga (Zambia)"}, "mdi": {"english_name": "Mamvu"}, "tly": {"english_name": "Talysh"}, "dei": {"english_name": "Demisa"}, "qvy": {"english_name": "Queyu"}, "twe": {"english_name": "Tewa (Indonesia)"}, "mfd": {"english_name": "Mendankwe-Nkwen"}, "wsr": {"english_name": "Owenia"}, "tdc": {"english_name": "Emberá-Tadó"}, "dbp": {"english_name": "Duwai"}, "ekm": {"english_name": "Elip"}, "xkg": {"english_name": "Kagoro"}, "nkg": {"english_name": "Nekgini"}, "gnk": {"english_name": "//Gana"}, "sto": {"english_name": "Stoney"}, "opt": {"english_name": "Opata"}, "wbv": {"english_name": "Wajarri"}, "bmd": {"english_name": "Manduri, Baga"}, "tgx": {"english_name": "Tagish"}, "pub": {"english_name": "Purum"}, "luz": {"english_name": "Luri, Southern"}, "kby": {"english_name": "Kanuri, Manga"}, "ndg": {"english_name": "Ndengereko"}, "bgw": {"english_name": "Bhatri"}, "tsc": {"english_name": "Tswa"}, "gvf": {"english_name": "Golin"}, "frt": {"english_name": "Fortsenal"}, "lgu": {"english_name": "Longgu"}, "xmg": {"english_name": "Mengaka"}, "ugo": {"english_name": "Ugong"}, "phm": {"english_name": "Phimbi"}, "llu": {"english_name": "Lau"}, "ibg": {"english_name": "Ibanag"}, "ais": {"english_name": "Amis, Nataoran"}, "mzi": {"english_name": "Mazatec, Ixcatlán"}, "unu": {"english_name": "Unubahe"}, "tpw": {"english_name": "Tupí"}, "yno": {"english_name": "Yong"}, "mqf": {"english_name": "Momuna"}, "pso": {"english_name": "Polish Sign Language"}, "ato": {"english_name": "Atong"}, "dbq": {"english_name": "Daba"}, "bwx": {"english_name": "Bunu, Bu-Nao"}, "yry": {"english_name": "Yarluyandi"}, "xtw": {"english_name": "Tawandê"}, "tuy": {"english_name": "Tugen"}, "gyb": {"english_name": "Garus"}, "grm": {"english_name": "Kota Marudu Talantang"}, "pby": {"english_name": "Pyu"}, "okh": {"english_name": "Koresh-e Rostam"}, "gpe": {"english_name": "Pidgin English, Ghanaian"}, "www": {"english_name": "Wawa"}, "djm": {"english_name": "Dogon, Jamsay"}, "bao": {"english_name": "Waimaha"}, "qvp": {"english_name": "Quechua, Pacaraos"}, "ado": {"english_name": "Abu"}, "bbr": {"english_name": "Girawa"}, "nok": {"english_name": "Nooksack"}, "ubu": {"english_name": "Umbu-Ungu"}, "gau": {"english_name": "Gadaba, Mudhili"}, "ihw": {"english_name": "Bidhawal"}, "smy": {"english_name": "Semnani"}, "raw": {"english_name": "Rawang"}, "crm": {"english_name": "Cree, Moose"}, "hto": {"english_name": "Huitoto, Minica"}, "yiv": {"english_name": "Nisu, Northern"}, "ako": {"english_name": "Akurio"}, "mgb": {"english_name": "Mararit"}, "frs": {"english_name": "Frisian, Eastern"}, "sov": {"english_name": "Sonsorol"}, "bun": {"english_name": "Sherbro"}, "mch": {"english_name": "Maquiritari"}, "yap": {"english_name": "Yapese"}, "vmr": {"english_name": "Marenje"}, "xcg": {"english_name": "Gaulish, Cisalpine"}, "kxk": {"english_name": "Karen, Zayein"}, "dec": {"english_name": "Dagik"}, "bln": {"english_name": "Bikol, Southern Catanduanes"}, "kxd": {"english_name": "Brunei"}, "mqc": {"english_name": "Mangole"}, "afs": {"english_name": "Creole, Afro-Seminole"}, "mrt": {"english_name": "Marghi Central"}, "bkf": {"english_name": "Beeke"}, "sii": {"english_name": "Shom Peng"}, "aps": {"english_name": "Arop-Sissano"}, "ybn": {"english_name": "Yabaâna"}, "tep": {"english_name": "Tepecano"}, "tve": {"english_name": "Te'un"}, "jua": {"english_name": "Júma"}, "mgv": {"english_name": "Matengo"}, "bco": {"english_name": "Kaluli"}, "elo": {"english_name": "El Molo"}, "zko": {"english_name": "Kott"}, "trp": {"english_name": "Kok Borok"}, "kkj": {"english_name": "Kako"}, "mtb": {"english_name": "Anyin Morofo"}, "ulf": {"english_name": "Usku"}, "twb": {"english_name": "Tawbuid, Western"}, "luf": {"english_name": "Laua"}, "xut": {"english_name": "Kuthant"}, "buv": {"english_name": "Bun"}, "wdy": {"english_name": "Wadjabangayi"}, "ii": {"english_name": "Yi, Sichuan"}, "cbt": {"english_name": "Chayahuita"}, "sid": {"english_name": "Sidamo"}, "ziz": {"english_name": "Zizilivakan"}, "lmw": {"english_name": "Miwok, Lake"}, "bwg": {"english_name": "Barwe"}, "kpe": {"english_name": "Kpelle"}, "huf": {"english_name": "Humene"}, "kvn": {"english_name": "Kuna, Border"}, "dhr": {"english_name": "Dhargari"}, "sjn": {"english_name": "Sindarin"}, "dmy": {"english_name": "Demta"}, "etz": {"english_name": "Semimi"}, "bag": {"english_name": "Tuki"}, "acu": {"english_name": "Achuar-Shiwiar"}, "msd": {"english_name": "Yucatec Maya Sign Language"}, "dnw": {"english_name": "Dani, Western"}, "xty": {"english_name": "Mixtec, Yoloxochitl"}, "kyr": {"english_name": "Kuruáya"}, "amx": {"english_name": "Anmatyerre"}, "cnh": {"english_name": "Chin, Haka"}, "clw": {"english_name": "Chulym"}, "dhu": {"english_name": "Dhurga"}, "tek": {"english_name": "Teke, Ibali"}, "bpq": {"english_name": "Malay, Banda"}, "wiv": {"english_name": "Vitu"}, "aud": {"english_name": "Anuta"}, "ylr": {"english_name": "Yalarnnga"}, "ygi": {"english_name": "Yiningayi"}, "yrn": {"english_name": "Yerong"}, "tow": {"english_name": "Jemez"}, "mkw": {"english_name": "Kituba (Congo)"}, "kln": {"english_name": "Kalenjin"}, "ymi": {"english_name": "Moji"}, "bhw": {"english_name": "Biak"}, "kwd": {"english_name": "Kwaio"}, "ono": {"english_name": "Onondaga"}, "xzp": {"english_name": "Zapotec, Ancient"}, "wbt": {"english_name": "Wanman"}, "huq": {"english_name": "Tsat"}, "yun": {"english_name": "Bena (Nigeria)"}, "ttg": {"english_name": "Tutong"}, "hoi": {"english_name": "Holikachuk"}, "qwh": {"english_name": "Quechua, Huaylas Ancash"}, "env": {"english_name": "Enwan (Edu State)"}, "cav": {"english_name": "Cavineña"}, "ssy": {"english_name": "Saho"}, "max": {"english_name": "Malay, North Moluccan"}, "pie": {"english_name": "Piro"}, "fse": {"english_name": "Finnish Sign Language"}, "six": {"english_name": "Sumau"}, "kep": {"english_name": "Kaikadi"}, "iso": {"english_name": "Isoko"}, "hik": {"english_name": "Seit-Kaitetu"}, "kax": {"english_name": "Kao"}, "cto": {"english_name": "Emberá-Catío"}, "alw": {"english_name": "Alaba-K’abeena"}, "poe": {"english_name": "Popoloca, San Juan Atzingo"}, "cab": {"english_name": "Garifuna"}, "nca": {"english_name": "Iyo"}, "sci": {"english_name": "Creole Malay, Sri Lankan"}, "shu": {"english_name": "Arabic, Chadian"}, "niq": {"english_name": "Nandi"}, "ikk": {"english_name": "Ika"}, "nib": {"english_name": "Nakame"}, "ggb": {"english_name": "Gbii"}, "dbb": {"english_name": "Deno"}, "myo": {"english_name": "Anfillo"}, "dbl": {"english_name": "Dyirbal"}, "li": {"english_name": "Limburgan"}, "mqz": {"english_name": "Pano"}, "pcl": {"english_name": "Pardhi"}, "rtc": {"english_name": "Chin, Rungtu"}, "bly": {"english_name": "Notre"}, "cdh": {"english_name": "Chambeali"}, "reb": {"english_name": "Rembong"}, "mgw": {"english_name": "Matumbi"}, "tvt": {"english_name": "Naga, Tutsa"}, "tmh": {"english_name": "Tamashek"}, "wbw": {"english_name": "Woi"}, "soc": {"english_name": "So (Democratic Republic of Congo)"}, "yih": {"english_name": "Yiddish, Western"}, "jv": {"english_name": "Javanese"}, "emn": {"english_name": "Eman"}, "sop": {"english_name": "Songe"}, "wor": {"english_name": "Woria"}, "lob": {"english_name": "Lobi"}, "bms": {"english_name": "Kanuri, Bilma"}, "inh": {"english_name": "Ingush"}, "nid": {"english_name": "Ngandi"}, "awa": {"english_name": "Awadhi"}, "pyu": {"english_name": "Puyuma"}, "zpa": {"english_name": "Zapotec, Lachiguiri"}, "spt": {"english_name": "Bhoti, Spiti"}, "lul": {"english_name": "Olu'bo"}, "yrs": {"english_name": "Yarsun"}, "nkb": {"english_name": "Naga, Khoibu"}, "avk": {"english_name": "Kotava"}, "mdm": {"english_name": "Mayogo"}, "num": {"english_name": "Niuafo'ou"}, "esn": {"english_name": "Salvadoran Sign Language"}, "la": {"english_name": "Latin"}, "jhi": {"english_name": "Jehai"}, "tau": {"english_name": "Tanana, Upper"}, "rmz": {"english_name": "Marma"}, "dv": {"english_name": "Dhivehi"}, "tcz": {"english_name": "Chin, Thado"}, "poy": {"english_name": "Pogolo"}, "khc": {"english_name": "Tukang Besi North"}, "hut": {"english_name": "Humla"}, "ids": {"english_name": "Idesa"}, "csm": {"english_name": "Miwok, Central Sierra"}, "ptp": {"english_name": "Patep"}, "gnw": {"english_name": "Guaraní, Western Bolivian"}, "swt": {"english_name": "Sawila"}, "hmy": {"english_name": "Hmong, Southern Guiyang"}, "cky": {"english_name": "Cakfem-Mushere"}, "sjp": {"english_name": "Surjapuri"}, "cni": {"english_name": "Asháninka"}, "bym": {"english_name": "Bidyara"}, "seq": {"english_name": "Sénoufo, Senara"}, "khg": {"english_name": "Tibetan, Khams"}, "sbl": {"english_name": "Sambal, Botolan"}, "afn": {"english_name": "Defaka"}, "int": {"english_name": "Intha"}, "hms": {"english_name": "Miao, Southern Qiandong"}, "kso": {"english_name": "Kofa"}, "azm": {"english_name": "Amuzgo, Ipalapa"}, "aki": {"english_name": "Aiome"}, "mvy": {"english_name": "Kohistani, Indus"}, "coc": {"english_name": "Cocopa"}, "gwi": {"english_name": "Gwichʼin"}, "bfy": {"english_name": "Bagheli"}, "war": {"english_name": "Waray (Philippines)"}, "dok": {"english_name": "Dondo"}, "xtu": {"english_name": "Mixtec, Cuyamecalco"}, "bta": {"english_name": "Bata"}, "acs": {"english_name": "Acroá"}, "giw": {"english_name": "Gelao, White"}, "kfb": {"english_name": "Kolami, Northwestern"}, "aec": {"english_name": "Arabic, Saidi"}, "tpk": {"english_name": "Tupinikin"}, "xtb": {"english_name": "Mixtec, Chazumba"}, "nuh": {"english_name": "Ndunda"}, "jrt": {"english_name": "Jorto"}, "aqm": {"english_name": "Atohwaim"}, "bjo": {"english_name": "Banda, Mid-Southern"}, "umo": {"english_name": "Umotína"}, "ptu": {"english_name": "Bambam"}, "swg": {"english_name": "Swabian"}, "gba": {"english_name": "Gbaya (Central African Republic)"}, "bpy": {"english_name": "Bishnupriya"}, "seu": {"english_name": "Serui-Laut"}, "jae": {"english_name": "Yabem"}, "coe": {"english_name": "Koreguaje"}, "yxu": {"english_name": "Yuyu"}, "wji": {"english_name": "Warji"}, "xh": {"name": "Xhosa", "english_name": "Xhosa"}, "kuf": {"english_name": "Katu, Western"}, "ko": {"name": "한국어", "english_name": "Korean"}, "cbr": {"english_name": "Cashibo-Cacataibo"}, "loh": {"english_name": "Narim"}, "lax": {"english_name": "Tiwa"}, "odu": {"english_name": "Odual"}, "sln": {"english_name": "Salinan"}, "xkh": {"english_name": "Karahawyana"}, "sfs": {"english_name": "South African Sign Language"}, "pfl": {"english_name": "Pfaelzisch"}, "ybo": {"english_name": "Yabong"}, "eza": {"english_name": "Ezaa"}, "phh": {"english_name": "Phukha"}, "kkb": {"english_name": "Kwerisa"}, "twt": {"english_name": "Turiwára"}, "mgm": {"english_name": "Mambae"}, "xpe": {"english_name": "Kpelle, Liberia"}, "kwv": {"english_name": "Sara Kaba Náà"}, "ltc": {"english_name": "Chinese, Late Middle"}, "mim": {"english_name": "Mixtec, Alacatlatzala"}, "lls": {"english_name": "Lithuanian Sign Language"}, "yvt": {"english_name": "Yavitero"}, "ytw": {"english_name": "Yout Wam"}, "rnr": {"english_name": "Nari Nari"}, "kdn": {"english_name": "Kunda"}, "zpb": {"english_name": "Zapotec, Yautepec"}, "nyq": {"english_name": "Nayini"}, "yoy": {"english_name": "Yoy"}, "idu": {"english_name": "Idoma"}, "rar": {"english_name": "Rarotongan"}, "bdd": {"english_name": "Bunama"}, "acn": {"english_name": "Achang"}, "sta": {"english_name": "Settla"}, "xwr": {"english_name": "Kwerba Mamberamo"}, "kff": {"english_name": "Koya"}, "azo": {"english_name": "Awing"}, "kpg": {"english_name": "Kapingamarangi"}, "aqn": {"english_name": "Alta, Northern"}, "nsh": {"english_name": "Ngoshie"}, "rbk": {"english_name": "Bontok, Northern"}, "csb": {"english_name": "Kashubian"}, "bcs": {"english_name": "Kohumono"}, "bld": {"english_name": "Bolango"}, "gak": {"english_name": "Gamkonora"}, "hne": {"english_name": "Chhattisgarhi"}, "vkp": {"english_name": "Creole Portuguese, Korlai"}, "tln": {"english_name": "Talondo'"}, "duq": {"english_name": "Dusun Malang"}, "nnn": {"english_name": "Ngete"}, "zax": {"english_name": "Zapotec, Xadani"}, "saf": {"english_name": "Safaliba"}, "dih": {"english_name": "Kumiai"}, "njy": {"english_name": "Njyem"}, "bpz": {"english_name": "Bilba"}, "uka": {"english_name": "Kaburi"}, "sep": {"english_name": "Sénoufo, Sìcìté"}, "muk": {"english_name": "Mugom"}, "llp": {"english_name": "Efate, North"}, "mhr": {"english_name": "Mari, Eastern"}, "abi": {"english_name": "Abidji"}, "bou": {"english_name": "Bondei"}, "ths": {"english_name": "Thakali"}, "bci": {"english_name": "Baoulé"}, "bjv": {"english_name": "Bedjond"}, "ndn": {"english_name": "Ngundi"}, "rmx": {"english_name": "Romam"}, "iow": {"english_name": "Iowa-Oto"}, "mww": {"english_name": "Hmong Daw"}, "pqa": {"english_name": "Pa'a"}, "bqi": {"english_name": "Bakhtiari"}, "yet": {"english_name": "Yetfa"}, "xnu": {"english_name": "Nukunul"}, "bwu": {"english_name": "Buli (Ghana)"}, "chh": {"english_name": "Chinook"}, "rwo": {"english_name": "Rawa"}, "abu": {"english_name": "Abure"}, "git": {"english_name": "Gitxsan"}, "keq": {"english_name": "Kamar"}, "xkt": {"english_name": "Kantosi"}, "lic": {"english_name": "Hlai"}, "ema": {"english_name": "Emai-Iuleha-Ora"}, "kbl": {"english_name": "Kanembu"}, "dcc": {"english_name": "Deccan"}, "tnc": {"english_name": "Tanimuca-Retuarã"}, "udi": {"english_name": "Udi"}, "cbb": {"english_name": "Cabiyarí"}, "xpa": {"english_name": "Pirriya"}, "aso": {"english_name": "Dano"}, "cyo": {"english_name": "Cuyonon"}, "kyp": {"english_name": "Kang"}, "cpi": {"english_name": "Pidgin English, Chinese"}, "nwe": {"english_name": "Ngwe"}, "mfe": {"english_name": "Morisyen"}, "mat": {"english_name": "Matlatzinca, San Francisco"}, "wym": {"english_name": "Wymysorys"}, "cya": {"english_name": "Chatino, Nopala"}, "uda": {"english_name": "Uda"}, "hbb": {"english_name": "Huba"}, "urm": {"english_name": "Urapmin"}, "ywr": {"english_name": "Yawuru"}, "zne": {"english_name": "Zande (individual language)"}, "nrz": {"english_name": "Lala"}, "ktk": {"english_name": "Kaniet"}, "kiw": {"english_name": "Kiwai, Northeast"}, "nle": {"english_name": "Nyala, East"}, "gwb": {"english_name": "Gwa"}, "trm": {"english_name": "Tregami"}, "ruk": {"english_name": "Che"}, "jya": {"english_name": "Jiarong"}, "tpe": {"english_name": "Tippera"}, "mmj": {"english_name": "Majhwar"}, "mze": {"english_name": "Morawa"}, "gih": {"english_name": "Githabul"}, "mcb": {"english_name": "Machiguenga"}, "gkn": {"english_name": "Gokana"}, "ott": {"english_name": "Otomi, Temoaya"}, "bce": {"english_name": "Bamenyam"}, "scu": {"english_name": "Shumcho"}, "bfq": {"english_name": "Badaga"}, "en": {"english_name": "English"}, "rro": {"english_name": "Waima"}, "tre": {"english_name": "Tarangan, East"}, "xya": {"english_name": "Yaygir"}, "nsd": {"english_name": "Nisu, Southern"}, "hib": {"english_name": "Hibito"}, "xse": {"english_name": "Sempan"}, "did": {"english_name": "Didinga"}, "kav": {"english_name": "Katukína"}, "anl": {"english_name": "Chin, Anu-Hkongso"}, "ssn": {"english_name": "Waata"}, "ruq": {"english_name": "Romanian, Megleno"}, "gqi": {"english_name": "Guiqiong"}, "kxq": {"english_name": "Kanum, Smärky"}, "ald": {"english_name": "Alladian"}, "srk": {"english_name": "Serudung Murut"}, "bvu": {"english_name": "Malay, Bukit"}, "pbv": {"english_name": "Pnar"}, "row": {"english_name": "Dela-Oenale"}, "ctm": {"english_name": "Chitimacha"}, "tqq": {"english_name": "Tunni"}, "tet": {"english_name": "Tetum"}, "ikl": {"english_name": "Ikulu"}, "syl": {"english_name": "Sylheti"}, "pak": {"english_name": "Parakanã"}, "mix": {"english_name": "Mixtec, Mixtepec"}, "cbn": {"english_name": "Nyahkur"}, "amc": {"english_name": "Amahuaca"}, "thp": {"english_name": "Thompson"}, "atw": {"english_name": "Atsugewi"}, "mlw": {"english_name": "Moloko"}, "waw": {"english_name": "Waiwai"}, "bxr": {"english_name": "Buriat, Russia"}, "dgc": {"english_name": "Agta, Casiguran Dumagat"}, "cah": {"english_name": "Cahuarano"}, "mtl": {"english_name": "Montol"}, "skj": {"english_name": "Seke (Nepal)"}, "mpq": {"english_name": "Matís"}, "sw": {"english_name": "Swahili (macrolanguage)"}, "hom": {"english_name": "Homa"}, "ata": {"english_name": "Pele-Ata"}, "kut": {"english_name": "Kutenai"}, "kib": {"english_name": "Koalib"}, "bnj": {"english_name": "Tawbuid, Eastern"}, "opm": {"english_name": "Oksapmin"}, "lvs": {"english_name": "Latvian, Standard"}, "auh": {"english_name": "Aushi"}, "cns": {"english_name": "Asmat, Central"}, "dia": {"english_name": "Dia"}, "mmh": {"english_name": "Mehináku"}, "byn": {"name": "Bilin", "english_name": "Bilin"}, "pst": {"english_name": "Pashto, Central"}, "mkb": {"english_name": "Mal Paharia"}, "kic": {"english_name": "Kickapoo"}, "urb": {"english_name": "Urubú-Kaapor"}, "akj": {"english_name": "Aka-Jeru"}, "twl": {"english_name": "Tawara"}, "ekl": {"english_name": "Kol (Bangladesh)"}, "otn": {"english_name": "Otomi, Tenango"}, "nne": {"english_name": "Ngandyera"}, "uge": {"english_name": "Ughele"}, "nys": {"english_name": "Nyunga"}, "ru": {"name": "русский", "english_name": "Russian"}, "blx": {"english_name": "Ayta, Mag-Indi"}, "sxe": {"english_name": "Sighu"}, "ngb": {"english_name": "Ngbandi, Northern"}, "tnp": {"english_name": "Whitesands"}, "bxd": {"english_name": "Pela"}, "crc": {"english_name": "Lonwolwol"}, "sui": {"english_name": "Suki"}, "den": {"english_name": "Slave (Athapascan)"}, "nrl": {"english_name": "Ngarluma"}, "tkb": {"english_name": "Buksa"}, "mxp": {"english_name": "Mixe, Tlahuitoltepec"}, "lwh": {"english_name": "Lachi, White"}, "wbb": {"english_name": "Wabo"}, "wli": {"english_name": "Waioli"}, "krc": {"english_name": "Karachay-Balkar"}, "mbq": {"english_name": "Maisin"}, "akb": {"english_name": "Batak Angkola"}, "vum": {"english_name": "Vumbu"}, "bmx": {"english_name": "Baimak"}, "cas": {"english_name": "Tsimané"}, "syy": {"english_name": "Al-Sayyid Bedouin Sign Language"}, "apl": {"english_name": "Apache, Lipan"}, "xru": {"english_name": "Marriammu"}, "bkg": {"english_name": "Buraka"}, "gai": {"english_name": "Borei"}, "beb": {"english_name": "Bebele"}, "ywg": {"english_name": "Yinhawangka"}, "ttk": {"english_name": "Totoro"}, "gun": {"english_name": "Guaraní, Mbyá"}, "vsl": {"english_name": "Venezuelan Sign Language"}, "esm": {"english_name": "Esuma"}, "agj": {"english_name": "Argobba"}, "ktb": {"english_name": "Kambaata"}, "hmr": {"english_name": "Hmar"}, "rem": {"english_name": "Remo"}, "hlb": {"english_name": "Halbi"}, "mvs": {"english_name": "Massep"}, "klr": {"english_name": "Khaling"}, "arv": {"english_name": "Arbore"}, "mik": {"english_name": "Mikasuki"}, "swu": {"english_name": "Suwawa"}, "not": {"english_name": "Nomatsiguenga"}, "zpt": {"english_name": "Zapotec, San Vicente Coatlán"}, "ndj": {"english_name": "Ndamba"}, "say": {"english_name": "Saya"}, "oyd": {"english_name": "Oyda"}, "btw": {"english_name": "Butuanon"}, "brs": {"english_name": "Baras"}, "tvo": {"english_name": "Tidore"}, "mzs": {"english_name": "Macanese"}, "hgw": {"english_name": "Haigwai"}, "ter": {"english_name": "Tereno"}, "csw": {"english_name": "Cree, Swampy"}, "ecs": {"english_name": "Ecuadorian Sign Language"}, "ff": {"english_name": "Fulah"}, "vis": {"english_name": "Vishavan"}, "hum": {"english_name": "Hungana"}, "mow": {"english_name": "Moi (Congo)"}, "tql": {"english_name": "Lehali"}, "nns": {"english_name": "Ningye"}, "bom": {"english_name": "Berom"}, "nus": {"english_name": "Nuer"}, "xht": {"english_name": "Hattic"}, "cmr": {"english_name": "Chin, Mro-Khimi"}, "yrl": {"english_name": "Nhengatu"}, "tyr": {"english_name": "Tai Daeng"}, "ypm": {"english_name": "Phuma"}, "imn": {"english_name": "Imonda"}, "abv": {"english_name": "Arabic, Baharna"}, "hil": {"english_name": "Hiligaynon"}, "spe": {"english_name": "Sepa (Papua New Guinea)"}, "mrm": {"english_name": "Merlav"}, "tuz": {"english_name": "Turka"}, "mla": {"english_name": "Malo"}, "phd": {"english_name": "Phudagi"}, "bfm": {"english_name": "Mmen"}, "zlq": {"english_name": "Zhuang, Liuqian"}, "jow": {"english_name": "Jowulu"}, "nlv": {"english_name": "Nahuatl, Orizaba"}, "xmo": {"english_name": "Morerebi"}, "xsd": {"english_name": "Sidetic"}, "jay": {"english_name": "Yan-nhangu"}, "pno": {"english_name": "Panobo"}, "hsl": {"english_name": "Hausa Sign Language"}, "imr": {"english_name": "Imroing"}, "cjk": {"english_name": "Chokwe"}, "gaq": {"english_name": "Gata'"}, "taj": {"english_name": "Tamang, Eastern"}, "der": {"english_name": "Deori"}, "yal": {"english_name": "Yalunka"}, "lmy": {"english_name": "Lamboya"}, "sgx": {"english_name": "Sierra Leone Sign Language"}, "lro": {"english_name": "Laro"}, "mjr": {"english_name": "Malavedan"}, "tod": {"english_name": "Toma"}, "pbg": {"english_name": "Paraujano"}, "knf": {"english_name": "Mankanya"}, "gld": {"english_name": "Nanai"}, "kbb": {"english_name": "Kaxuiâna"}, "xnh": {"english_name": "Kuanhua"}, "lai": {"english_name": "Lambya"}, "cdo": {"english_name": "Chinese, Min Dong"}, "woy": {"english_name": "Weyto"}, "jgk": {"english_name": "Gwak"}, "cae": {"english_name": "Lehar"}, "maj": {"english_name": "Mazatec, Jalapa De Díaz"}, "kfx": {"english_name": "Pahari, Kullu"}, "stw": {"english_name": "Satawalese"}, "otu": {"english_name": "Otuke"}, "dhn": {"english_name": "Dhanki"}, "noz": {"english_name": "Nayi"}, "dna": {"english_name": "Dani, Upper Grand Valley"}, "wok": {"english_name": "Longto"}, "wag": {"english_name": "Wa'ema"}, "eu": {"name": "Euskara", "english_name": "Basque"}, "ctu": {"english_name": "Chol"}, "ttl": {"english_name": "Totela"}, "ktr": {"english_name": "Kota Marudu Tinagas"}, "txq": {"english_name": "Tii"}, "cur": {"english_name": "Chhulung"}, "mnu": {"english_name": "Mer"}, "nfu": {"english_name": "Mfumte"}, "aky": {"english_name": "Aka-Kol"}, "tqb": {"english_name": "Tembé"}, "gdt": {"english_name": "Kungardutyi"}, "evn": {"english_name": "Evenki"}, "cod": {"english_name": "Cocama-Cocamilla"}, "rge": {"english_name": "Romano-Greek"}, "srs": {"english_name": "Sarsi"}, "psy": {"english_name": "Piscataway"}, "ush": {"english_name": "Ushojo"}, "sc": {"english_name": "Sardinian"}, "sn": {"english_name": "Shona"}, "or": {"name": "Oriya (macrolanguage)", "english_name": "Oriya (macrolanguage)"}, "ca": {"name": "Català", "english_name": "Catalan"}, "siu": {"english_name": "Sinagen"}, "snn": {"english_name": "Siona"}, "yir": {"english_name": "Awyu, North"}, "fum": {"english_name": "Fum"}, "mtu": {"english_name": "Mixtec, Tututepec"}, "cub": {"english_name": "Cubeo"}, "klg": {"english_name": "Tagakaulo"}, "qvc": {"english_name": "Quechua, Cajamarca"}, "sth": {"english_name": "Shelta"}, "mjn": {"english_name": "Ma (Papua New Guinea)"}, "nyp": {"english_name": "Nyang'i"}, "cap": {"english_name": "Chipaya"}, "psp": {"english_name": "Philippine Sign Language"}, "tn": {"english_name": "Tswana"}, "gnh": {"english_name": "Lere"}, "bwm": {"english_name": "Biwat"}, "etr": {"english_name": "Edolo"}, "nkc": {"english_name": "Nkongho"}, "aak": {"english_name": "Ankave"}, "gix": {"english_name": "Gilima"}, "slh": {"english_name": "Salish, Southern Puget Sound"}, "scl": {"english_name": "Shina"}, "tqt": {"english_name": "Totonac, Western"}, "duj": {"english_name": "Dhuwal"}, "mpz": {"english_name": "Mpi"}, "ikz": {"english_name": "Ikizu"}, "rmu": {"english_name": "Romani, Tavringer"}, "btv": {"english_name": "Bateri"}, "prx": {"english_name": "Purik"}, "lrl": {"english_name": "Lari"}, "scs": {"english_name": "Slavey, North"}, "kim": {"english_name": "Karagas"}, "amn": {"english_name": "Amanab"}, "zmb": {"english_name": "Zimba"}, "taz": {"english_name": "Tocho"}, "nyn": {"english_name": "Nyankole"}, "bue": {"english_name": "Beothuk"}, "ilk": {"english_name": "Ilongot"}, "cko": {"english_name": "Anufo"}, "uku": {"english_name": "Ukue"}, "nou": {"english_name": "Ewage-Notu"}, "fgr": {"english_name": "Fongoro"}, "lzz": {"english_name": "Laz"}, "xso": {"english_name": "Solano"}, "ega": {"english_name": "Ega"}, "vut": {"english_name": "Vute"}, "pad": {"english_name": "Paumarí"}, "jrb": {"english_name": "Judeo-Arabic"}, "sva": {"english_name": "Svan"}, "xmt": {"english_name": "Matbat"}, "sgb": {"english_name": "Ayta, Mag-antsi"}, "bjh": {"english_name": "Bahinemo"}, "mzh": {"english_name": "Wichí Lhamtés Güisnay"}, "arz": {"english_name": "Arabic, Egyptian"}, "biz": {"english_name": "Baloi"}, "wyi": {"english_name": "Woiwurrung"}, "jun": {"english_name": "Juang"}, "miq": {"english_name": "Mískito"}, "ygu": {"english_name": "Yugul"}, "ykl": {"english_name": "Khlula"}, "teg": {"english_name": "Teke-Tege"}, "tue": {"english_name": "Tuyuca"}, "njb": {"english_name": "Naga, Nocte"}, "lad": {"english_name": "Ladino"}, "bvm": {"english_name": "Bamunka"}, "das": {"english_name": "Daho-Doo"}, "igw": {"english_name": "Igwe"}, "asp": {"english_name": "Algerian Sign Language"}, "jum": {"english_name": "Jumjum"}, "gal": {"english_name": "Galolen"}, "an": {"english_name": "Aragonese"}, "kus": {"english_name": "Kusaal"}, "was": {"english_name": "Washo"}, "obr": {"english_name": "Burmese, Old"}, "lg": {"english_name": "Ganda"}, "tft": {"english_name": "Ternate"}, "bcv": {"english_name": "Shoo-Minda-Nye"}, "dgk": {"english_name": "Dagba"}, "anu": {"english_name": "Anuak"}, "prg": {"english_name": "Prussian"}, "owl": {"english_name": "Welsh, Old"}, "gpa": {"english_name": "Gupa-Abawa"}, "bax": {"english_name": "Bamun"}, "yip": {"english_name": "Pholo"}, "xmf": {"english_name": "Mingrelian"}, "din": {"english_name": "Dinka"}, "trg": {"english_name": "Lishán Didán"}, "cie": {"english_name": "Cineni"}, "bjx": {"english_name": "Itneg, Banao"}, "kcb": {"english_name": "Kawacha"}, "hrp": {"english_name": "Nhirrpi"}, "kbv": {"english_name": "Dera (Indonesia)"}, "mok": {"english_name": "Morori"}, "kii": {"english_name": "Kitsai"}, "puk": {"english_name": "Pu Ko"}, "mas": {"english_name": "Masai"}, "kxc": {"english_name": "Konso"}, "nma": {"english_name": "Naga, Maram"}, "plv": {"english_name": "Palawano, Southwest"}, "tmv": {"english_name": "Tembo (Motembo)"}, "awh": {"english_name": "Awbono"}, "pwo": {"english_name": "Karen, Pwo Western"}, "maa": {"english_name": "Mazatec, San Jerónimo Tecóatl"}, "sxc": {"english_name": "Sicanian"}, "swy": {"english_name": "Sarua"}, "aul": {"english_name": "Aulua"}, "zrn": {"english_name": "Zerenkel"}, "zza": {"english_name": "Zaza"}, "mqj": {"english_name": "Mamasa"}, "len": {"english_name": "Lenca"}, "tyv": {"english_name": "Tuvinian"}, "yta": {"english_name": "Talu"}, "zad": {"english_name": "Zapotec, Cajonos"}, "mkl": {"english_name": "Mokole"}, "tmt": {"english_name": "Tasmate"}, "bqm": {"english_name": "Wumboko"}, "skb": {"english_name": "Saek"}, "mir": {"english_name": "Mixe, Isthmus"}, "kiu": {"english_name": "Kirmanjki (individual language)"}, "dnd": {"english_name": "Daonda"}, "xko": {"english_name": "Kiorr"}, "bku": {"english_name": "Buhid"}, "kjj": {"english_name": "Khinalugh"}, "hro": {"english_name": "Haroi"}, "bpv": {"english_name": "Marind, Bian"}, "stg": {"english_name": "Trieng"}, "xbb": {"english_name": "Burdekin, Lower"}, "nkm": {"english_name": "Namat"}, "hif": {"english_name": "Hindi, Fiji"}, "trq": {"english_name": "Triqui, San Martín Itunyoso"}, "bsv": {"english_name": "Baga Sobané"}, "pgu": {"english_name": "Pagu"}, "bky": {"english_name": "Bokyi"}, "smf": {"english_name": "Auwe"}, "bef": {"english_name": "Benabena"}, "tsz": {"english_name": "Purepecha"}, "nss": {"english_name": "Nali"}, "qxs": {"english_name": "Qiang, Southern"}, "hbn": {"english_name": "Heiban"}, "tae": {"english_name": "Tariana"}, "dds": {"english_name": "Dogon, Donno So"}, "kjn": {"english_name": "Kunjen"}, "czt": {"english_name": "Chin, Zotung"}, "ssq": {"english_name": "So'a"}, "cps": {"english_name": "Capiznon"}, "sbm": {"english_name": "Sagala"}, "vmd": {"english_name": "Koraga, Mudu"}, "pbr": {"english_name": "Pangwa"}, "kfo": {"english_name": "Koro (Côte d'Ivoire)"}, "zia": {"english_name": "Zia"}, "nig": {"english_name": "Ngalakan"}, "csh": {"english_name": "Chin, Asho"}, "mtg": {"english_name": "Una"}, "kla": {"english_name": "Klamath-Modoc"}, "kdy": {"english_name": "Keder"}, "swr": {"english_name": "Saweru"}, "kje": {"english_name": "Kisar"}, "faf": {"english_name": "Fagani"}, "lon": {"english_name": "Lomwe, Malawi"}, "xac": {"english_name": "Kachari"}, "dig": {"english_name": "Digo"}, "nnd": {"english_name": "Ambae, West"}, "atd": {"english_name": "Manobo, Ata"}, "tro": {"english_name": "Naga, Tarao"}, "anv": {"english_name": "Denya"}, "nye": {"english_name": "Nyengo"}, "xap": {"english_name": "Apalachee"}, "jii": {"english_name": "Jiiddu"}, "mxv": {"english_name": "Mixtec, Metlatónoc"}, "rer": {"english_name": "Rer Bare"}, "puo": {"english_name": "Puoc"}, "loj": {"english_name": "Lou"}, "mdp": {"english_name": "Mbala"}, "anj": {"english_name": "Anor"}, "omg": {"english_name": "Omagua"}, "bqa": {"english_name": "Tchumbuli"}, "kck": {"english_name": "Kalanga"}, "gbe": {"english_name": "Niksek"}, "lnz": {"english_name": "Lonzo"}, "nhc": {"english_name": "Nahuatl, Tabasco"}, "cs": {"name": "čeština", "english_name": "Czech"}, "mzy": {"english_name": "Mozambican Sign Language"}, "yay": {"english_name": "Agwagwune"}, "ncd": {"english_name": "Nachering"}, "amp": {"english_name": "Alamblak"}, "suy": {"english_name": "Suyá"}, "goe": {"english_name": "Gongduk"}, "duh": {"english_name": "Dungra Bhil"}, "hna": {"english_name": "Mina (Cameroon)"}, "mdy": {"english_name": "Male (Ethiopia)"}, "ccj": {"english_name": "Kasanga"}, "nyv": {"english_name": "Nyulnyul"}, "msg": {"english_name": "Moraid"}, "tls": {"english_name": "Tambotalo"}, "lml": {"english_name": "Hano"}, "cdg": {"english_name": "Chamari"}, "bje": {"english_name": "Mien, Biao-Jiao"}, "bok": {"english_name": "Bonjo"}, "koc": {"english_name": "Kpati"}, "mwa": {"english_name": "Mwatebu"}, "tzn": {"english_name": "Tugun"}, "dib": {"english_name": "Dinka, South Central"}, "isd": {"english_name": "Isnag"}, "dui": {"english_name": "Dumun"}, "aof": {"english_name": "Bragat"}, "kxs": {"english_name": "Kangjia"}, "ewo": {"english_name": "Ewondo"}, "eya": {"english_name": "Eyak"}, "ply": {"english_name": "Bolyu"}, "tio": {"english_name": "Teop"}, "soz": {"english_name": "Temi"}, "gml": {"english_name": "German, Middle Low"}, "ddn": {"english_name": "Dendi (Benin)"}, "ntj": {"english_name": "Ngaanyatjarra"}, "llf": {"english_name": "Hermit"}, "cce": {"english_name": "Chopi"}, "blk": {"english_name": "Karen, Pa'o"}, "xgl": {"english_name": "Galindan"}, "tbr": {"english_name": "Tumtum"}, "gqu": {"english_name": "Qau"}, "bzq": {"english_name": "Buli (Indonesia)"}, "ctp": {"english_name": "Chatino, Western Highland"}, "aoz": {"english_name": "Uab Meto"}, "huu": {"english_name": "Huitoto, Murui"}, "knx": {"english_name": "Kendayan"}, "job": {"english_name": "Joba"}, "rmb": {"english_name": "Rembarunga"}, "kov": {"english_name": "Kudu-Camo"}, "ded": {"english_name": "Dedua"}, "ndw": {"english_name": "Ndobo"}, "mib": {"english_name": "Mixtec, Atatláhuca"}, "crk": {"english_name": "Cree, Plains"}, "swv": {"english_name": "Shekhawati"}, "skr": {"english_name": "Seraiki"}, "aba": {"english_name": "Abé"}, "dyi": {"english_name": "Senoufo, Djimini"}, "beo": {"english_name": "Beami"}, "kwn": {"english_name": "Kwangali"}, "wth": {"english_name": "Wathawurrung"}, "gah": {"english_name": "Alekano"}, "cpy": {"english_name": "Ashéninka, South Ucayali"}, "plj": {"english_name": "Polci"}, "chm": {"english_name": "Mari (Russia)"}, "kzf": {"english_name": "Kaili, Da'a"}, "phk": {"english_name": "Phake"}, "mvz": {"english_name": "Mesqan"}, "ie": {"english_name": "Interlingue"}, "nef": {"english_name": "Nefamese"}, "lol": {"english_name": "Mongo"}, "kjs": {"english_name": "Kewa, East"}, "bfk": {"english_name": "Ban Khor Sign Language"}, "aua": {"english_name": "Asumboa"}, "kec": {"english_name": "Keiga"}, "med": {"english_name": "Melpa"}, "xes": {"english_name": "Kesawai"}, "myy": {"english_name": "Macuna"}, "nqo": {"english_name": "N'Ko"}, "wbl": {"english_name": "Wakhi"}, "smj": {"english_name": "Lule Sami"}, "zte": {"english_name": "Zapotec, Elotepec"}, "awb": {"english_name": "Awa (Papua New Guinea)"}, "mti": {"english_name": "Maiwa (Papua New Guinea)"}, "fla": {"english_name": "Kalispel-Pend d'Oreille"}, "lng": {"english_name": "Langobardic"}, "bcj": {"english_name": "Bardi"}, "mnb": {"english_name": "Muna"}, "pce": {"english_name": "Palaung, Ruching"}, "dbf": {"english_name": "Edopi"}, "sao": {"english_name": "Sause"}, "jor": {"english_name": "Jorá"}, "ypp": {"english_name": "Phupa"}, "mkf": {"english_name": "Miya"}, "kzm": {"english_name": "Kais"}, "tqp": {"english_name": "Tomoip"}, "mzw": {"english_name": "Deg"}, "nyt": {"english_name": "Nyawaygi"}, "man": {"english_name": "Mandingo"}, "adh": {"english_name": "Adhola"}, "gnc": {"english_name": "Guanche"}, "xzh": {"english_name": "Zhang-Zhung"}, "bgs": {"english_name": "Tagabawa"}, "mbs": {"english_name": "Manobo, Sarangani"}, "wxa": {"english_name": "Waxianghua"}, "bka": {"english_name": "Kyak"}, "kza": {"english_name": "Karaboro, Western"}, "yra": {"english_name": "Yerakai"}, "bsg": {"english_name": "Bashkardi"}, "bda": {"english_name": "Bayot"}, "pes": {"english_name": "Persian, Iranian"}, "mzg": {"english_name": "Monastic Sign Language"}, "ute": {"english_name": "Ute-Southern Paiute"}, "ksa": {"english_name": "Shuwa-Zamani"}, "prt": {"english_name": "Phai"}, "nxl": {"english_name": "Nuaulu, South"}, "akc": {"english_name": "Mpur"}, "bvk": {"english_name": "Bukat"}, "blh": {"english_name": "Kuwaa"}, "fsl": {"english_name": "French Sign Language"}, "myi": {"english_name": "Mina (India)"}, "dje": {"english_name": "Zarma"}, "bmn": {"english_name": "Bina (Papua New Guinea)"}, "xam": {"english_name": "/Xam"}, "ldd": {"english_name": "Luri"}, "gob": {"english_name": "Playero"}, "tpl": {"english_name": "Me'phaa, Tlacoapa"}, "pmk": {"english_name": "Pamlico"}, "snq": {"english_name": "Sangu (Gabon)"}, "qwt": {"english_name": "Kwalhioqua-Tlatskanai"}, "afz": {"english_name": "Obokuitai"}, "pny": {"english_name": "Pinyin"}, "tnt": {"english_name": "Tontemboan"}, "wll": {"english_name": "Wali (Sudan)"}, "ztt": {"english_name": "Zapotec, Tejalapan"}, "aut": {"english_name": "Austral"}, "kha": {"english_name": "Khasi"}, "sha": {"english_name": "Shall-Zwall"}, "suk": {"english_name": "Sukuma"}, "wtk": {"english_name": "Watakataui"}, "bfi": {"english_name": "British Sign Language"}, "mtw": {"english_name": "Binukidnon, Southern"}, "jud": {"english_name": "Worodougou"}, "xrm": {"english_name": "Armazic"}, "yns": {"english_name": "Yansi"}, "dsn": {"english_name": "Dusner"}, "dgt": {"english_name": "Ndra'ngith"}, "kge": {"english_name": "Komering"}, "lei": {"english_name": "Lemio"}, "vic": {"english_name": "Creole English, Virgin Islands"}, "dur": {"english_name": "Dii"}, "emp": {"english_name": "Emberá, Northern"}, "nbo": {"english_name": "Nkukoli"}, "ncs": {"english_name": "Nicaraguan Sign Language"}, "yoi": {"english_name": "Yonaguni"}, "kdz": {"english_name": "Kwaja"}, "xat": {"english_name": "Katawixi"}, "doe": {"english_name": "Doe"}, "wdk": {"english_name": "Wadikali"}, "tei": {"english_name": "Torricelli"}, "kju": {"english_name": "Kashaya"}, "moh": {"english_name": "Mohawk"}, "azb": {"english_name": "Azerbaijani, South"}, "ncj": {"english_name": "Nahuatl, Northern Puebla"}, "nxk": {"english_name": "Naga, Koki"}, "sle": {"english_name": "Sholaga"}, "pck": {"english_name": "Chin, Paite"}, "nmp": {"english_name": "Nimanbur"}, "bsa": {"english_name": "Abinomn"}, "mzj": {"english_name": "Manya"}, "gdx": {"english_name": "Godwari"}, "zau": {"english_name": "Zangskari"}, "stk": {"english_name": "Arammba"}, "kyt": {"english_name": "Kayagar"}, "fni": {"english_name": "Fania"}, "aij": {"english_name": "Lishanid Noshan"}, "tkf": {"english_name": "Tukumanféd"}, "swj": {"english_name": "Sira"}, "ksm": {"english_name": "Kumba"}, "tka": {"english_name": "Truká"}, "ak": {"english_name": "Akan"}, "pnm": {"english_name": "Punan Batu 1"}, "nwy": {"english_name": "Nottoway-Meherrin"}, "bex": {"english_name": "Jur Modo"}, "ayz": {"english_name": "Mai Brat"}, "jut": {"english_name": "Jutish"}, "crr": {"english_name": "Algonquian, Carolina"}, "tmz": {"english_name": "Tamanaku"}, "fy": {"english_name": "Frisian, Western"}, "mrr": {"english_name": "Maria (India)"}, "nmx": {"english_name": "Nama (Papua New Guinea)"}, "dza": {"english_name": "Tunzu"}, "nag": {"english_name": "Naga Pidgin"}, "hmd": {"english_name": "Miao, Large Flowery"}, "arb": {"english_name": "Arabic, Standard"}, "ban": {"english_name": "Balinese"}, "dgs": {"english_name": "Dogoso"}, "trx": {"english_name": "Bidayuh, Tringgus-Sembaan"}, "djj": {"english_name": "Djeebbana"}, "urh": {"english_name": "Urhobo"}, "bnw": {"english_name": "Bisis"}, "bwz": {"english_name": "Bwisi"}, "mqo": {"english_name": "Modole"}, "akh": {"english_name": "Angal Heneng"}, "yot": {"english_name": "Yotti"}, "kte": {"english_name": "Nubri"}, "czn": {"english_name": "Chatino, Zenzontepec"}, "tic": {"english_name": "Tira"}, "avm": {"english_name": "Angkamuthi"}, "tqu": {"english_name": "Touo"}, "pms": {"english_name": "Piemontese"}, "krv": {"english_name": "Kavet"}, "wsv": {"english_name": "Wotapuri-Katarqalai"}, "xab": {"english_name": "Sambe"}, "xoi": {"english_name": "Kominimung"}, "uur": {"english_name": "Ura (Vanuatu)"}, "zmq": {"english_name": "Mituku"}, "atg": {"english_name": "Ivbie North-Okpela-Arhe"}, "kw": {"english_name": "Cornish"}, "lak": {"english_name": "Laka (Nigeria)"}, "orn": {"english_name": "Orang Kanaq"}, "acd": {"english_name": "Gikyode"}, "tgd": {"english_name": "Ciwogai"}, "geg": {"english_name": "Gengle"}, "bip": {"english_name": "Bila"}, "omu": {"english_name": "Omurano"}, "ksj": {"english_name": "Uare"}, "gvs": {"english_name": "Gumawana"}, "haq": {"english_name": "Ha"}, "xsr": {"english_name": "Sherpa"}, "lmg": {"english_name": "Lamogai"}, "kps": {"english_name": "Tehit"}, "sje": {"english_name": "Sami, Pite"}, "kux": {"english_name": "Kukatja"}, "su": {"english_name": "Sundanese"}, "tmy": {"english_name": "Tami"}, "mxq": {"english_name": "Mixe, Juquila"}, "ckr": {"english_name": "Kairak"}, "bmw": {"english_name": "Bomwali"}, "aur": {"english_name": "Aruek"}, "rga": {"english_name": "Roria"}, "ddo": {"english_name": "Dido"}, "ymo": {"english_name": "Yangum Mon"}, "kxv": {"english_name": "Kuvi"}, "eo": {"name": "Esperanto", "english_name": "Esperanto"}, "sig": {"english_name": "Paasaal"}, "bgu": {"english_name": "Mbongno"}, "moq": {"english_name": "Mor (Bomberai Peninsula)"}, "twd": {"english_name": "Twents"}, "tpn": {"english_name": "Tupinambá"}, "nnw": {"english_name": "Nuni, Southern"}, "xss": {"english_name": "Assan"}, "mbr": {"english_name": "Nukak Makú"}, "ull": {"english_name": "Ullatan"}, "bik": {"english_name": "Bikol"}, "ael": {"english_name": "Ambele"}, "csi": {"english_name": "Miwok, Coast"}, "zac": {"english_name": "Zapotec, Ocotlán"}, "gwx": {"english_name": "Gua"}, "gim": {"english_name": "Gimi (Eastern Highlands)"}, "anc": {"english_name": "Ngas"}, "nlj": {"english_name": "Nyali"}, "gou": {"english_name": "Gavar"}, "mqs": {"english_name": "Makian, West"}, "tvn": {"english_name": "Tavoyan"}, "xbi": {"english_name": "Kombio"}, "mvp": {"english_name": "Duri"}, "khz": {"english_name": "Keapara"}, "kgu": {"english_name": "Kobol"}, "bki": {"english_name": "Baki"}, "thf": {"english_name": "Thangmi"}, "mbp": {"english_name": "Malayo"}, "way": {"english_name": "Wayana"}, "bic": {"english_name": "Bikaru"}, "gof": {"english_name": "Gofa"}, "pta": {"english_name": "Pai Tavytera"}, "ikv": {"english_name": "Iku-Gora-Ankwa"}, "kys": {"english_name": "Kayan, Baram"}, "alm": {"english_name": "Amblong"}, "xto": {"english_name": "Tokharian A"}, "chy": {"english_name": "Cheyenne"}, "com": {"english_name": "Comanche"}, "nym": {"english_name": "Nyamwezi"}, "pkh": {"english_name": "Pankhu"}, "bew": {"english_name": "Betawi"}, "xzm": {"english_name": "Zemgalian"}, "mzl": {"english_name": "Mixe, Mazatlán"}, "kgj": {"english_name": "Kham, Gamale"}, "ppt": {"english_name": "Pare"}, "caw": {"english_name": "Callawalla"}, "tdi": {"english_name": "Tomadino"}, "kwj": {"english_name": "Kwanga"}, "mak": {"english_name": "Makasar"}, "xeb": {"english_name": "Eblan"}, "nke": {"english_name": "Duke"}, "cdr": {"english_name": "Cinda-Regi-Tiyal"}, "qxr": {"english_name": "Quichua, Cañar Highland"}, "glu": {"english_name": "Gula (Chad)"}, "ann": {"english_name": "Obolo"}, "kzr": {"english_name": "Karang"}, "ryu": {"english_name": "Okinawan, Central"}, "xyb": {"english_name": "Yandjibara"}, "ese": {"english_name": "Ese Ejja"}, "shh": {"english_name": "Shoshoni"}, "yuq": {"english_name": "Yuqui"}, "evh": {"english_name": "Uvbie"}, "dow": {"english_name": "Doyayo"}, "dbt": {"english_name": "Dogon, Ben Tey"}, "ike": {"english_name": "Inuktitut, Eastern Canadian"}, "chx": {"english_name": "Chantyal"}, "bft": {"english_name": "Balti"}, "grs": {"english_name": "Gresi"}, "tbi": {"english_name": "Gaam"}, "sni": {"english_name": "Sensi"}, "luc": {"english_name": "Aringa"}, "bzx": {"english_name": "Bozo, Kɛlɛngaxo"}, "kym": {"english_name": "Kpatili"}, "kel": {"english_name": "Kela (Democratic Republic of Congo)"}, "zrg": {"english_name": "Mirgan"}, "zmy": {"english_name": "Mariyedi"}, "gbm": {"english_name": "Garhwali"}, "kvw": {"english_name": "Wersing"}, "aha": {"english_name": "Ahanta"}, "ojb": {"english_name": "Ojibwa, Northwestern"}, "apf": {"english_name": "Agta, Pahanan"}, "sbn": {"english_name": "Bhil, Sindhi"}, "cug": {"english_name": "Cung"}, "gdj": {"english_name": "Gurdjar"}, "njx": {"english_name": "Kunyi"}, "mjx": {"english_name": "Mahali"}, "gue": {"english_name": "Gurinji"}, "dsq": {"english_name": "Tadaksahak"}, "gyl": {"english_name": "Gayil"}, "wut": {"english_name": "Wutung"}, "izr": {"english_name": "Izere"}, "biu": {"english_name": "Biete"}, "tpt": {"english_name": "Tepehua, Tlachichilco"}, "mud": {"english_name": "Aleut, Mednyj"}, "sho": {"english_name": "Shanga"}, "fap": {"english_name": "Palor"}, "nxe": {"english_name": "Nage"}, "slm": {"english_name": "Sama, Pangutaran"}, "kqa": {"english_name": "Mum"}, "kwh": {"english_name": "Kowiai"}, "zkt": {"english_name": "Kitan"}, "khq": {"english_name": "Songhay, Koyra Chiini"}, "lis": {"english_name": "Lisu"}, "yej": {"english_name": "Yevanic"}, "anf": {"english_name": "Animere"}, "adz": {"english_name": "Adzera"}, "wmx": {"english_name": "Womo"}, "xyj": {"english_name": "Mayi-Yapi"}, "nsq": {"english_name": "Miwok, Northern Sierra"}, "zch": {"english_name": "Zhuang, Central Hongshuihe"}, "nga": {"english_name": "Ngbaka"}, "bo": {"english_name": "Tibetan"}, "oke": {"english_name": "Okpe (Southwestern Edo)"}, "onw": {"english_name": "Nubian, Old"}, "bhl": {"english_name": "Bimin"}, "ukh": {"english_name": "Ukhwejo"}, "bmo": {"english_name": "Bambalang"}, "col": {"english_name": "Columbia-Wenatchi"}, "aiy": {"english_name": "Ali"}, "mco": {"english_name": "Mixe, Coatlán"}, "nxn": {"english_name": "Ngawun"}, "bit": {"english_name": "Berinomo"}, "bgq": {"english_name": "Bagri"}, "jio": {"english_name": "Jiamao"}, "sve": {"english_name": "Serili"}, "udg": {"english_name": "Muduga"}, "one": {"english_name": "Oneida"}, "zmn": {"english_name": "Mbangwe"}, "qwa": {"english_name": "Quechua, Corongo Ancash"}, "etx": {"english_name": "Eten"}, "ksd": {"english_name": "Kuanua"}, "lda": {"english_name": "Kla-Dan"}, "hr": {"name": "hrvatski", "english_name": "Croatian"}, "ngj": {"english_name": "Ngie"}, "wlw": {"english_name": "Walak"}, "cuq": {"english_name": "Cun"}, "xpc": {"english_name": "Pecheneg"}, "gnm": {"english_name": "Ginuman"}, "sub": {"english_name": "Suku"}, "ost": {"english_name": "Osatu"}, "ple": {"english_name": "Palu'e"}, "xop": {"english_name": "Kopar"}, "gwr": {"english_name": "Gwere"}, "vag": {"english_name": "Vagla"}, "bnb": {"english_name": "Bookan"}, "bzj": {"english_name": "Kriol English, Belize"}, "toz": {"english_name": "To"}, "xtj": {"english_name": "Mixtec, San Juan Teita"}, "wro": {"english_name": "Worrorra"}, "vin": {"english_name": "Vinza"}, "kn": {"name": "ಕನ್ನಡ", "english_name": "Kannada"}, "gvj": {"english_name": "Guajá"}, "mep": {"english_name": "Miriwung"}, "aqc": {"english_name": "Archi"}, "ahr": {"english_name": "Ahirani"}, "puj": {"english_name": "Punan Tubu"}, "kg": {"english_name": "Kongo"}, "zpn": {"english_name": "Zapotec, Santa Inés Yatzechi"}, "aza": {"english_name": "Azha"}, "njs": {"english_name": "Nisa"}, "nxx": {"english_name": "Nafri"}, "xkr": {"english_name": "Xakriabá"}, "acq": {"english_name": "Arabic, Ta'izzi-Adeni"}, "huy": {"english_name": "Hulaulá"}, "nyx": {"english_name": "Nganyaywana"}, "kbz": {"english_name": "Duhwa"}, "pmi": {"english_name": "Pumi, Northern"}, "agz": {"english_name": "Agta, Mt. Iriga"}, "mbj": {"english_name": "Nadëb"}, "xyk": {"english_name": "Mayi-Kulan"}, "mkc": {"english_name": "Siliput"}, "hoc": {"english_name": "Ho"}, "pga": {"english_name": "Creole Arabic, Sudanese"}, "mdx": {"english_name": "Dizin"}, "vem": {"english_name": "Vemgo-Mabas"}, "kif": {"english_name": "Kham, Eastern Parbate"}, "myw": {"english_name": "Muyuw"}, "ncx": {"english_name": "Nahuatl, Central Puebla"}, "rol": {"english_name": "Romblomanon"}, "caf": {"english_name": "Carrier, Southern"}, "vay": {"english_name": "Wayu"}, "spx": {"english_name": "Picene, South"}, "onu": {"english_name": "Unua"}, "wic": {"english_name": "Wichita"}, "jmr": {"english_name": "Kamara"}, "tgi": {"english_name": "Lawunuia"}, "lpn": {"english_name": "Naga, Long Phuri"}, "tes": {"english_name": "Tengger"}, "nlc": {"english_name": "Nalca"}, "hml": {"english_name": "Hmong, Luopohe"}, "bll": {"english_name": "Biloxi"}, "leq": {"english_name": "Lembena"}, "pit": {"english_name": "Pitta Pitta"}, "zam": {"english_name": "Zapotec, Miahuatlán"}, "sgt": {"english_name": "Brokpake"}, "utu": {"english_name": "Utu"}, "ora": {"english_name": "Oroha"}, "alc": {"english_name": "Qawasqar"}, "nsg": {"english_name": "Ngasa"}, "tgh": {"english_name": "Creole English, Tobagonian"}, "lhm": {"english_name": "Lhomi"}, "anp": {"english_name": "Angika"}, "dwa": {"english_name": "Diri"}, "byh": {"english_name": "Bhujel"}, "djw": {"english_name": "Djawi"}, "khe": {"english_name": "Korowai"}, "gvy": {"english_name": "Guyani"}, "aii": {"english_name": "Neo-Aramaic, Assyrian"}, "ktx": {"english_name": "Kaxararí"}, "ppl": {"english_name": "Pipil"}, "erw": {"english_name": "Erokwanas"}, "mhj": {"english_name": "Mogholi"}, "twy": {"english_name": "Tawoyan"}, "awm": {"english_name": "Arawum"}, "mgz": {"english_name": "Mbugwe"}, "bqu": {"english_name": "Boguru"}, "jkr": {"english_name": "Koro (India)"}, "kvh": {"english_name": "Komodo"}, "kjo": {"english_name": "Kinnauri, Harijan"}, "es": {"name": "Español", "english_name": "Spanish"}, "lli": {"english_name": "Teke-Laali"}, "ife": {"english_name": "Ifè"}, "fab": {"english_name": "Fa d'Ambu"}, "ocu": {"english_name": "Matlatzinca, Atzingo"}, "wbh": {"english_name": "Wanda"}, "nbp": {"english_name": "Nnam"}, "gyi": {"english_name": "Gyele"}, "dyu": {"english_name": "Dyula"}, "teu": {"english_name": "Soo"}, "kcq": {"english_name": "Kamo"}, "ppa": {"english_name": "Pao"}, "brw": {"english_name": "Bellari"}, "wul": {"english_name": "Silimo"}, "atv": {"english_name": "Altai, Northern"}, "mjl": {"english_name": "Mandeali"}, "rjs": {"english_name": "Rajbanshi"}, "xjt": {"english_name": "Jaitmatang"}, "aot": {"english_name": "A'tong"}, "win": {"english_name": "Ho-Chunk"}, "tse": {"english_name": "Tunisian Sign Language"}, "ach": {"english_name": "Acoli"}, "zbc": {"english_name": "Berawan, Central"}, "gsn": {"english_name": "Gusan"}, "kea": {"english_name": "Kabuverdianu"}, "hia": {"english_name": "Lamang"}, "ken": {"english_name": "Kenyang"}, "otb": {"english_name": "Tibetan, Old"}, "jos": {"english_name": "Jordanian Sign Language"}, "lnh": {"english_name": "Lanoh"}, "meq": {"english_name": "Merey"}, "bve": {"english_name": "Malay, Berau"}, "lss": {"english_name": "Lasi"}, "lov": {"english_name": "Lopi"}, "mcr": {"english_name": "Menya"}, "kqz": {"english_name": "Korana"}, "ota": {"english_name": "Turkish, Ottoman (1500-1928)"}, "aoe": {"english_name": "Angal Enen"}, "lu": {"english_name": "Luba-Katanga"}, "bfu": {"english_name": "Gahri"}, "tyu": {"english_name": "Kua"}, "bwt": {"english_name": "Bafaw-Balong"}, "ttr": {"english_name": "Tera"}, "mzd": {"english_name": "Malimba"}, "hrx": {"english_name": "Hunsrik"}, "con": {"english_name": "Cofán"}, "gei": {"english_name": "Gebe"}, "mvi": {"english_name": "Miyako"}, "gsg": {"english_name": "German Sign Language"}, "nrt": {"english_name": "Kalapuya, Northern"}, "pkb": {"english_name": "Pokomo"}, "had": {"english_name": "Hatam"}, "loo": {"english_name": "Lombo"}, "kwp": {"english_name": "Kodia"}, "lbs": {"english_name": "Libyan Sign Language"}, "gut": {"english_name": "Maléku Jaíka"}, "xny": {"english_name": "Nyiyaparli"}, "tmi": {"english_name": "Tutuba"}, "ktp": {"english_name": "Kaduo"}, "kok": {"name": "Konkani (macrolanguage)", "english_name": "Konkani (macrolanguage)"}, "fuj": {"english_name": "Ko"}, "hmf": {"english_name": "Hmong Don"}, "owi": {"english_name": "Owiniga"}, "hka": {"english_name": "Kahe"}, "dtk": {"english_name": "Dogon, Tene Kan"}, "xbc": {"english_name": "Bactrian"}, "yac": {"english_name": "Yali, Pass Valley"}, "ifk": {"english_name": "Ifugao, Tuwali"}, "kra": {"english_name": "Kumhali"}, "atq": {"english_name": "Aralle-Tabulahan"}, "nzy": {"english_name": "Nzakambay"}, "ecy": {"english_name": "Eteocypriot"}, "mlo": {"english_name": "Mlomp"}, "kxl": {"english_name": "Kurux, Nepali"}, "byd": {"english_name": "Benyadu'"}, "zpd": {"english_name": "Zapotec, Southeastern Ixtlán"}, "tno": {"english_name": "Toromono"}, "mrd": {"english_name": "Magar, Western"}, "llo": {"english_name": "Khlor"}, "noq": {"english_name": "Ngongo"}, "kda": {"english_name": "Worimi"}, "ahb": {"english_name": "Axamb"}, "xcc": {"english_name": "Camunic"}, "jat": {"english_name": "Jakati"}, "lal": {"english_name": "Lalia"}, "xun": {"english_name": "Unggaranggu"}, "mgf": {"english_name": "Maklew"}, "wgo": {"english_name": "Waigeo"}, "bfn": {"english_name": "Bunak"}, "xli": {"english_name": "Liburnian"}, "xyl": {"english_name": "Yalakalore"}, "dja": {"english_name": "Djadjawurrung"}, "klw": {"english_name": "Lindu"}, "mpo": {"english_name": "Miu"}, "gat": {"english_name": "Kenati"}, "spi": {"english_name": "Saponi"}, "bha": {"english_name": "Bharia"}, "drg": {"english_name": "Rungus"}, "esl": {"english_name": "Egypt Sign Language"}, "xaq": {"english_name": "Aquitanian"}, "cjh": {"english_name": "Chehalis, Upper"}, "dos": {"english_name": "Dogosé"}, "deq": {"english_name": "Dendi (Central African Republic)"}, "mqy": {"english_name": "Manggarai"}, "wav": {"english_name": "Waka"}, "khl": {"english_name": "Lusi"}, "sgi": {"english_name": "Suga"}, "gsp": {"english_name": "Wasembo"}, "mvo": {"english_name": "Marovo"}, "aju": {"english_name": "Arabic, Judeo-Moroccan"}, "ypo": {"english_name": "Phola, Alo"}, "mvf": {"english_name": "Mongolian, Peripheral"}, "dwr": {"english_name": "Dawro"}, "mmt": {"english_name": "Malalamai"}, "mjj": {"english_name": "Mawak"}, "wiy": {"english_name": "Wiyot"}, "xrw": {"english_name": "Karawa"}, "bnx": {"english_name": "Bangubangu"}, "ppe": {"english_name": "Papi"}, "bvq": {"english_name": "Birri"}, "aro": {"english_name": "Araona"}, "lgr": {"english_name": "Lengo"}, "xpq": {"english_name": "Mohegan-Pequot"}, "ren": {"english_name": "Rengao"}, "twu": {"english_name": "Termanu"}, "pjt": {"english_name": "Pitjantjatjara"}, "xno": {"english_name": "Anglo-Norman"}, "soa": {"english_name": "Thai Song"}, "aos": {"english_name": "Taikat"}, "sfb": {"english_name": "Langue des signes de Belgique Francophone"}, "dev": {"english_name": "Domung"}, "msj": {"english_name": "Ma (Democratic Republic of Congo)"}, "lbr": {"english_name": "Lohorung"}, "odk": {"english_name": "Od"}, "tbb": {"english_name": "Tapeba"}, "ctn": {"english_name": "Chhintange"}, "knv": {"english_name": "Tabo"}, "llk": {"english_name": "Lelak"}, "jie": {"english_name": "Jilbe"}, "tcg": {"english_name": "Tamagario"}, "fir": {"english_name": "Firan"}, "mbx": {"english_name": "Mari (East Sepik Province)"}, "thi": {"english_name": "Tai Long"}, "juo": {"english_name": "Jiba"}, "xur": {"english_name": "Urartian"}, "skk": {"english_name": "Sok"}, "mot": {"english_name": "Barí"}, "yba": {"english_name": "Yala"}, "lcc": {"english_name": "Legenyem"}, "mag": {"english_name": "Magahi"}, "kvs": {"english_name": "Kunggara"}, "xce": {"english_name": "Celtiberian"}, "rac": {"english_name": "Rasawa"}, "nco": {"english_name": "Sibe"}, "njl": {"english_name": "Njalgulgule"}, "mqv": {"english_name": "Mosimo"}, "niu": {"english_name": "Niuean"}, "inz": {"english_name": "Ineseño"}, "cen": {"english_name": "Cen"}, "ida": {"english_name": "Idakho-Isukha-Tiriki"}, "bhy": {"english_name": "Bhele"}, "bgy": {"english_name": "Benggoi"}, "ana": {"english_name": "Andaqui"}, "dyo": {"english_name": "Jola-Fonyi"}, "djr": {"english_name": "Djambarrpuyngu"}, "ksh": {"english_name": "Kölsch"}, "pty": {"english_name": "Pathiya"}, "kvo": {"english_name": "Dobel"}, "niv": {"english_name": "Gilyak"}, "nod": {"english_name": "Thai, Northern"}, "wif": {"english_name": "Wik-Keyangan"}, "yel": {"english_name": "Yela"}, "coz": {"english_name": "Chochotec"}, "wlo": {"english_name": "Wolio"}, "toh": {"english_name": "Gitonga"}, "ymh": {"english_name": "Mili"}, "bpd": {"english_name": "Banda-Banda"}, "khp": {"english_name": "Kapori"}, "mgq": {"english_name": "Malila"}, "ttv": {"english_name": "Titan"}, "twc": {"english_name": "Teshenawa"}, "svk": {"english_name": "Slovakian Sign Language"}, "kkl": {"english_name": "Yale, Kosarek"}, "gbq": {"english_name": "Gbaya-Bozoum"}, "elm": {"english_name": "Eleme"}, "baw": {"english_name": "Bambili-Bambui"}, "llc": {"english_name": "Lele (Guinea)"}, "zmh": {"english_name": "Makolkol"}, "ote": {"english_name": "Otomi, Mezquital"}, "bcu": {"english_name": "Awad Bing"}, "xmd": {"english_name": "Mbudum"}, "ary": {"english_name": "Arabic, Moroccan"}, "kvf": {"english_name": "Kabalai"}, "yur": {"english_name": "Yurok"}, "afd": {"english_name": "Andai"}, "apb": {"english_name": "Sa'a"}, "lnb": {"english_name": "Mbalanhu"}, "rmm": {"english_name": "Roma"}, "aui": {"english_name": "Anuki"}, "om": {"english_name": "Oromo"}, "tsh": {"english_name": "Tsuvan"}, "mcs": {"english_name": "Mambai"}, "noy": {"english_name": "Noy"}, "dtd": {"english_name": "Ditidaht"}, "tds": {"english_name": "Doutai"}, "njh": {"english_name": "Naga, Lotha"}, "bcn": {"english_name": "Bali (Nigeria)"}, "rkt": {"english_name": "Rangpuri"}, "kuw": {"english_name": "Kpagua"}, "moc": {"english_name": "Mocoví"}, "prh": {"english_name": "Porohanon"}, "mrg": {"english_name": "Mising"}, "ams": {"english_name": "Amami-Oshima, Southern"}, "quv": {"english_name": "Sacapulteco"}, "msy": {"english_name": "Aruamu"}, "kmx": {"english_name": "Waboda"}, "qum": {"english_name": "Sipacapense"}, "dyn": {"english_name": "Dyangadi"}, "zpp": {"english_name": "Zapotec, El Alto"}, "lsl": {"english_name": "Latvian Sign Language"}, "kdk": {"english_name": "Numèè"}, "mge": {"english_name": "Mango"}, "ngx": {"english_name": "Nggwahyi"}, "ons": {"english_name": "Ono"}, "abf": {"english_name": "Abai Sungai"}, "rbb": {"english_name": "Palaung, Rumai"}, "sjd": {"english_name": "Sami, Kildin"}, "mpn": {"english_name": "Mindiri"}, "bmm": {"english_name": "Malagasy, Northern Betsimisaraka"}, "jbe": {"english_name": "Judeo-Berber"}, "xtp": {"english_name": "Mixtec, San Miguel Piedras"}, "lab": {"english_name": "Linear A"}, "kqy": {"english_name": "Koorete"}, "kdf": {"english_name": "Mamusi"}, "bdo": {"english_name": "Morom"}, "pyy": {"english_name": "Pyen"}, "lso": {"english_name": "Laos Sign Language"}, "mnn": {"english_name": "Mnong, Southern"}, "kyj": {"english_name": "Karao"}, "sbe": {"english_name": "Saliba"}, "twr": {"english_name": "Tarahumara, Southwestern"}, "ygp": {"english_name": "Gepo"}, "swi": {"english_name": "Sui"}, "mop": {"english_name": "Mopán Maya"}, "kxx": {"english_name": "Likuba"}, "bvn": {"english_name": "Buna"}, "mgs": {"english_name": "Manda (Tanzania)"}, "xkq": {"english_name": "Koroni"}, "tas": {"english_name": "Tay Boi"}, "xsi": {"english_name": "Sio"}, "hbo": {"english_name": "Hebrew, Ancient"}, "bej": {"english_name": "Beja"}, "laz": {"english_name": "Aribwatsa"}, "xgd": {"english_name": "Gudang"}, "mbc": {"english_name": "Macushi"}, "top": {"english_name": "Totonac, Papantla"}, "ldq": {"english_name": "Lufu"}, "lfa": {"english_name": "Lefa"}, "igo": {"english_name": "Isebe"}, "uky": {"english_name": "Kuuk-Yak"}, "alh": {"english_name": "Alawa"}, "mig": {"english_name": "Mixtec, San Miguel El Grande"}, "gid": {"english_name": "Gidar"}, "grt": {"english_name": "Garo"}, "vmg": {"english_name": "Lungalunga"}, "xpo": {"english_name": "Pochutec"}, "sxr": {"english_name": "Saaroa"}, "cib": {"english_name": "Gbe, Ci"}, "isi": {"english_name": "Nkem-Nkum"}, "kqi": {"english_name": "Koitabu"}, "gcl": {"english_name": "Creole English, Grenadian"}, "und": {"english_name": "Undetermined"}, "hmu": {"english_name": "Hamap"}, "gcc": {"english_name": "Mali"}, "ago": {"english_name": "Tainae"}, "tmf": {"english_name": "Toba-Maskoy"}, "ksy": {"english_name": "Kharia Thar"}, "gby": {"english_name": "Gbari"}, "mae": {"english_name": "Bo-Rukul"}, "jgb": {"english_name": "Ngbee"}, "nhw": {"english_name": "Nahuatl, Western Huasteca"}, "dri": {"english_name": "C'lela"}, "cjp": {"english_name": "Cabécar"}, "aws": {"english_name": "Awyu, South"}, "nlo": {"english_name": "Ngul"}, "jrr": {"english_name": "Jiru"}, "bfo": {"english_name": "Birifor, Malba"}, "spd": {"english_name": "Saep"}, "cuu": {"english_name": "Tai Ya"}, "mrw": {"english_name": "Maranao"}, "dov": {"english_name": "Dombe"}, "bdt": {"english_name": "Bokoto"}, "xnt": {"english_name": "Narragansett"}, "lbo": {"english_name": "Laven"}, "scg": {"english_name": "Sanggau"}, "gwa": {"english_name": "Mbato"}, "nbj": {"english_name": "Ngarinman"}, "ext": {"english_name": "Extremaduran"}, "mhe": {"english_name": "Besisi"}, "gro": {"english_name": "Groma"}, "shv": {"english_name": "Shehri"}, "ppq": {"english_name": "Pei"}, "itz": {"english_name": "Itzá"}, "ymq": {"english_name": "Muji, Qila"}, "tts": {"english_name": "Thai, Northeastern"}, "xnb": {"english_name": "Kanakanabu"}, "jig": {"english_name": "Djingili"}, "tge": {"english_name": "Tamang, Eastern Gorkha"}, "kzb": {"english_name": "Kaibobo"}, "wnu": {"english_name": "Usan"}, "upv": {"english_name": "Uripiv-Wala-Rano-Atchin"}, "pll": {"english_name": "Palaung, Shwe"}, "aac": {"english_name": "Ari"}, "lhp": {"english_name": "Lhokpu"}, "sbo": {"english_name": "Sabüm"}, "bgc": {"english_name": "Haryanvi"}, "ity": {"english_name": "Itneg, Moyadan"}, "kfr": {"english_name": "Kachchi"}, "sry": {"english_name": "Sera"}, "mma": {"english_name": "Mama"}, "nxg": {"english_name": "Ngad'a"}, "glc": {"english_name": "Bon Gula"}, "ted": {"english_name": "Krumen, Tepo"}, "yxm": {"english_name": "Yinwum"}, "sua": {"english_name": "Sulka"}, "cwb": {"english_name": "Maindo"}, "loq": {"english_name": "Lobala"}, "kdl": {"english_name": "Tsikimba"}, "byq": {"english_name": "Basay"}, "gll": {"english_name": "Garlali"}, "usi": {"english_name": "Usui"}, "fon": {"english_name": "Fon"}, "sab": {"english_name": "Buglere"}, "mfu": {"english_name": "Mbwela"}, "ndu": {"english_name": "Dugun"}, "irh": {"english_name": "Irarutu"}, "itb": {"english_name": "Itneg, Binongan"}, "ydd": {"english_name": "Yiddish, Eastern"}, "kae": {"english_name": "Ketangalan"}, "ymk": {"english_name": "Makwe"}, "tgu": {"english_name": "Tanggu"}, "ixc": {"english_name": "Ixcatec"}, "men": {"english_name": "Mende (Sierra Leone)"}, "tfn": {"english_name": "Tanaina"}, "krs": {"english_name": "Gbaya (Sudan)"}, "mwx": {"english_name": "Mediak"}, "djf": {"english_name": "Djangun"}, "qur": {"english_name": "Quechua, Yanahuanca Pasco"}, "yei": {"english_name": "Yeni"}, "mhs": {"english_name": "Buru (Indonesia)"}, "mom": {"english_name": "Mangue"}, "kis": {"english_name": "Kis"}, "myd": {"english_name": "Maramba"}, "atb": {"english_name": "Zaiwa"}, "jeu": {"english_name": "Jonkor Bourmataguil"}, "oki": {"english_name": "Okiek"}, "ngc": {"english_name": "Ngombe (Democratic Republic of Congo)"}, "snu": {"english_name": "Senggi"}, "tra": {"english_name": "Tirahi"}, "diz": {"english_name": "Ding"}, "jui": {"english_name": "Ngadjuri"}, "pre": {"english_name": "Principense"}, "xcy": {"english_name": "Cayuse"}, "aee": {"english_name": "Pashayi, Northeast"}, "mgp": {"english_name": "Magar, Eastern"}, "aab": {"english_name": "Alumu-Tesu"}, "ssm": {"english_name": "Semnam"}, "mit": {"english_name": "Mixtec, Southern Puebla"}, "tgr": {"english_name": "Tareng"}, "diu": {"english_name": "Diriku"}, "sik": {"english_name": "Sikiana"}, "ems": {"english_name": "Yupik, Pacific Gulf"}, "klk": {"english_name": "Kono (Nigeria)"}, "mgh": {"english_name": "Makhuwa-Meetto"}, "shk": {"english_name": "Shilluk"}, "kba": {"english_name": "Kalarko"}, "kex": {"english_name": "Kukna"}, "arp": {"english_name": "Arapaho"}, "new": {"english_name": "Newari"}, "sts": {"english_name": "Shumashti"}, "bjm": {"english_name": "Bajelani"}, "akq": {"english_name": "Ak"}, "woe": {"english_name": "Woleaian"}, "dmv": {"english_name": "Dumpas"}, "sbg": {"english_name": "Seget"}, "bia": {"english_name": "Badimaya"}, "rml": {"english_name": "Romani, Baltic"}, "nds": {"english_name": "German, Low"}, "kzp": {"english_name": "Kaidipang"}, "kcx": {"english_name": "Kachama-Ganjule"}, "fng": {"english_name": "Fanagalo"}, "obk": {"english_name": "Bontok, Southern"}, "km": {"english_name": "Khmer, Central"}, "pix": {"english_name": "Piu"}, "lnl": {"english_name": "Banda, South Central"}, "lmk": {"english_name": "Lamkang"}, "kia": {"english_name": "Kim"}, "gnl": {"english_name": "Gangulu"}, "okk": {"english_name": "One, Kwamtim"}, "kxt": {"english_name": "Koiwat"}, "lac": {"english_name": "Lacandon"}, "sri": {"english_name": "Siriano"}, "lnm": {"english_name": "Langam"}, "ojv": {"english_name": "Ontong Java"}, "zma": {"english_name": "Manda (Australia)"}, "csv": {"english_name": "Chin, Sumtu"}, "olr": {"english_name": "Olrat"}, "tqm": {"english_name": "Turumsa"}, "wlv": {"english_name": "Wichí Lhamtés Vejoz"}, "bsj": {"english_name": "Bangwinji"}, "nza": {"english_name": "Mbembe, Tigon"}, "zpx": {"english_name": "Zapotec, San Baltazar Loxicha"}, "jni": {"english_name": "Janji"}, "kbj": {"english_name": "Kari"}, "npl": {"english_name": "Nahuatl, Southeastern Puebla"}, "wkl": {"english_name": "Kalanadi"}, "noe": {"english_name": "Nimadi"}, "rnp": {"english_name": "Rongpo"}, "jiu": {"english_name": "Jinuo, Youle"}, "ddr": {"english_name": "Dhudhuroa"}, "zum": {"english_name": "Kumzari"}, "mfv": {"english_name": "Mandjak"}, "waa": {"english_name": "Walla Walla"}, "gmu": {"english_name": "Gumalu"}, "gu": {"name": "ગુજરાતી", "english_name": "Gujarati"}, "cgk": {"english_name": "Chocangacakha"}, "pyx": {"english_name": "Pyu (Myanmar)"}, "bwh": {"english_name": "Bishuo"}, "trl": {"english_name": "Scottish, Traveller"}, "bst": {"english_name": "Basketo"}, "kfc": {"english_name": "Konda-Dora"}, "mxb": {"english_name": "Mixtec, Tezoatlán"}, "pmt": {"english_name": "Tuamotuan"}, "yi": {"english_name": "Yiddish"}, "ygw": {"english_name": "Yagwoia"}, "tsx": {"english_name": "Mubami"}, "ofo": {"english_name": "Ofo"}, "bwl": {"english_name": "Bwela"}, "biv": {"english_name": "Birifor, Southern"}, "auc": {"english_name": "Waorani"}, "pah": {"english_name": "Tenharim"}, "bgl": {"english_name": "Bo (Laos)"}, "coy": {"english_name": "Coyaima"}, "ayq": {"english_name": "Ayi (Papua New Guinea)"}, "ngw": {"english_name": "Ngwaba"}, "ayd": {"english_name": "Ayabadhu"}, "gwt": {"english_name": "Gawar-Bati"}, "mcu": {"english_name": "Mambila, Cameroon"}, "gsw": {"english_name": "German, Swiss"}, "plt": {"english_name": "Malagasy, Plateau"}, "lns": {"english_name": "Lamnso'"}, "mll": {"english_name": "Malua Bay"}, "uya": {"english_name": "Doko-Uyanga"}, "kqh": {"english_name": "Kisankasa"}, "kmf": {"english_name": "Kare (Papua New Guinea)"}, "sjw": {"english_name": "Shawnee"}, "gya": {"english_name": "Gbaya, Northwest"}, "pgk": {"english_name": "Rerep"}, "poh": {"english_name": "Poqomchi'"}, "avi": {"english_name": "Avikam"}, "tuj": {"english_name": "Tugutil"}, "qxq": {"english_name": "Qashqa'i"}, "pnu": {"english_name": "Bunu, Jiongnai"}, "kbm": {"english_name": "Iwal"}, "fui": {"english_name": "Fulfulde, Bagirmi"}, "tdh": {"english_name": "Thulung"}, "khk": {"english_name": "Mongolian, Halh"}, "koi": {"english_name": "Komi-Permyak"}, "crw": {"english_name": "Chrau"}, "duk": {"english_name": "Uyajitaya"}, "ctt": {"english_name": "Chetti, Wayanad"}, "nnf": {"english_name": "Ngaing"}, "mpe": {"english_name": "Majang"}, "rji": {"english_name": "Raji"}, "ve": {"name": "Venda", "english_name": "Venda"}, "goc": {"english_name": "Gorakor"}, "xlu": {"english_name": "Luwian, Cuneiform"}, "tba": {"english_name": "Aikanã"}, "guu": {"english_name": "Yanomamö"}, "yae": {"english_name": "Pumé"}, "nea": {"english_name": "Ngad'a, Eastern"}, "drd": {"english_name": "Darmiya"}, "tke": {"english_name": "Takwane"}, "pax": {"english_name": "Pankararé"}, "dad": {"english_name": "Marik"}, "urw": {"english_name": "Sop"}, "ncz": {"english_name": "Natchez"}, "mwv": {"english_name": "Mentawai"}, "bgj": {"english_name": "Bangolan"}, "xna": {"english_name": "North Arabian, Ancient"}, "tdo": {"english_name": "Teme"}, "sr": {"name": "српски", "english_name": "Serbian"}, "wti": {"english_name": "Berta"}, "myp": {"english_name": "Pirahã"}, "icl": {"english_name": "Icelandic Sign Language"}, "lky": {"english_name": "Lokoya"}, "avv": {"english_name": "Avá-Canoeiro"}, "xtc": {"english_name": "Katcha-Kadugli-Miri"}, "vif": {"english_name": "Vili"}, "frp": {"english_name": "Arpitan"}, "xii": {"english_name": "Xiri"}, "lar": {"english_name": "Larteh"}, "bqx": {"english_name": "Baangi"}, "njd": {"english_name": "Ndonde Hamba"}, "nio": {"english_name": "Nganasan"}, "thr": {"english_name": "Tharu, Rana"}, "kgi": {"english_name": "Selangor Sign Language"}, "bsr": {"english_name": "Bassa-Kontagora"}, "una": {"english_name": "Watut, North"}, "yia": {"english_name": "Yinggarda"}, "txm": {"english_name": "Tomini"}, "wlu": {"english_name": "Wuliwuli"}, "nkq": {"english_name": "Nkami"}, "pic": {"english_name": "Pinji"}, "aou": {"english_name": "A'ou"}, "xtv": {"english_name": "Thawa"}, "dme": {"english_name": "Dugwor"}, "mre": {"english_name": "Martha's Vineyard Sign Language"}, "qvj": {"english_name": "Quichua, Loja Highland"}, "oml": {"english_name": "Ombo"}, "xmu": {"english_name": "Kamu"}, "fil": {"english_name": "Filipino"}, "oor": {"english_name": "Oorlams"}, "aad": {"english_name": "Amal"}, "gup": {"english_name": "Gunwinggu"}, "inj": {"english_name": "Inga, Jungle"}, "kbi": {"english_name": "Kaptiau"}, "kul": {"english_name": "Kulere"}, "ask": {"english_name": "Ashkun"}, "ndx": {"english_name": "Nduga"}, "rad": {"english_name": "Rade"}, "mua": {"english_name": "Mundang"}, "pna": {"english_name": "Punan Bah-Biau"}, "szg": {"english_name": "Sengele"}, "gdq": {"english_name": "Mehri"}, "huj": {"english_name": "Hmong, Northern Guiyang"}, "ojg": {"english_name": "Ojibwa, Eastern"}, "viv": {"english_name": "Iduna"}, "gbz": {"english_name": "Dari, Zoroastrian"}, "ill": {"english_name": "Iranun"}, "rys": {"english_name": "Yaeyama"}, "baa": {"english_name": "Babatana"}, "cnt": {"english_name": "Chinantec, Tepetotutla"}, "sux": {"english_name": "Sumerian"}, "zai": {"english_name": "Zapotec, Isthmus"}, "ghs": {"english_name": "Guhu-Samane"}, "tex": {"english_name": "Tennet"}, "bsc": {"english_name": "Bassari"}, "mpp": {"english_name": "Migabac"}, "box": {"english_name": "Buamu"}, "wlr": {"english_name": "Wailapa"}, "udj": {"english_name": "Ujir"}, "kfp": {"english_name": "Korwa"}, "txi": {"english_name": "Ikpeng"}, "mod": {"english_name": "Mobilian"}, "chc": {"english_name": "Catawba"}, "mbo": {"english_name": "Mbo (Cameroon)"}, "gew": {"english_name": "Gera"}, "naz": {"english_name": "Nahuatl, Coatepec"}, "wca": {"english_name": "Yanomámi"}, "cv": {"english_name": "Chuvash"}, "xtm": {"english_name": "Mixtec, Magdalena Peñasco"}, "awo": {"english_name": "Awak"}, "wbk": {"english_name": "Waigali"}, "eip": {"english_name": "Eipomek"}, "bnl": {"english_name": "Boon"}, "pbt": {"english_name": "Pashto, Southern"}, "laf": {"english_name": "Lafofa"}, "qug": {"english_name": "Quichua, Chimborazo Highland"}, "smq": {"english_name": "Samo"}, "apn": {"english_name": "Apinayé"}, "pir": {"english_name": "Piratapuyo"}, "xeg": {"english_name": "//Xegwi"}, "kqb": {"english_name": "Kovai"}, "ztm": {"english_name": "Zapotec, San Agustín Mixtepec"}, "hrz": {"english_name": "Harzani"}, "juu": {"english_name": "Ju"}, "grb": {"english_name": "Grebo"}, "mys": {"english_name": "Mesmes"}, "nrb": {"english_name": "Nara"}, "pcn": {"english_name": "Piti"}, "lt": {"name": "Lietuvių", "english_name": "Lithuanian"}, "mlu": {"english_name": "To'abaita"}, "afh": {"english_name": "Afrihili"}, "yol": {"english_name": "Yola"}, "nlw": {"english_name": "Walangama"}, "onn": {"english_name": "Onobasulu"}, "mii": {"english_name": "Mixtec, Chigmecatitlán"}, "wbp": {"english_name": "Warlpiri"}, "mgl": {"english_name": "Maleu-Kilenge"}, "poq": {"english_name": "Popoluca, Texistepec"}, "bnr": {"english_name": "Butmas-Tur"}, "bhb": {"english_name": "Bhili"}, "psd": {"english_name": "Plains Indian Sign Language"}, "ble": {"english_name": "Balanta-Kentohe"}, "vmc": {"english_name": "Mixtec, Juxtlahuaca"}, "pat": {"english_name": "Papitalai"}, "atx": {"english_name": "Arutani"}, "gdu": {"english_name": "Gudu"}, "tal": {"english_name": "Tal"}, "okg": {"english_name": "Koko Babangk"}, "due": {"english_name": "Agta, Umiray Dumaget"}, "tkp": {"english_name": "Tikopia"}, "pau": {"english_name": "Palauan"}, "boy": {"english_name": "Bodo (Central African Republic)"}, "low": {"english_name": "Lobu, Tampias"}, "xmv": {"english_name": "Malagasy, Antankarana"}, "mlc": {"english_name": "Cao Lan"}, "mlr": {"english_name": "Vame"}, "dgz": {"english_name": "Daga"}, "tgp": {"english_name": "Tangoa"}, "ztl": {"english_name": "Zapotec, Lapaguía-Guivini"}, "abs": {"english_name": "Malay, Ambonese"}, "bqj": {"english_name": "Bandial"}, "mda": {"english_name": "Mada (Nigeria)"}, "fit": {"english_name": "Finnish, Tornedalen"}, "tyt": {"english_name": "Tày Tac"}, "kwt": {"english_name": "Kwesten"}, "nmm": {"english_name": "Manangba"}, "dof": {"english_name": "Domu"}, "nly": {"english_name": "Nyamal"}, "cyb": {"english_name": "Cayubaba"}, "sen": {"english_name": "Sénoufo, Nanerigé"}, "jib": {"english_name": "Jibu"}, "aol": {"english_name": "Alor"}, "orv": {"english_name": "Russian, Old"}, "bps": {"english_name": "Blaan, Sarangani"}, "sbz": {"english_name": "Sara Kaba"}, "ksf": {"english_name": "Bafia"}, "kmu": {"english_name": "Kanite"}, "ndp": {"english_name": "Ndo"}, "whg": {"english_name": "Wahgi, North"}, "nmg": {"english_name": "Kwasio"}, "mso": {"english_name": "Mombum"}, "bkc": {"english_name": "Baka (Cameroon)"}, "xvn": {"english_name": "Vandalic"}, "wmd": {"english_name": "Mamaindé"}, "gao": {"english_name": "Gants"}, "kzz": {"english_name": "Kalabra"}, "lgi": {"english_name": "Lengilu"}, "jus": {"english_name": "Jumla Sign Language"}, "for": {"english_name": "Fore"}, "mzq": {"english_name": "Mori Atas"}, "pdc": {"english_name": "German, Pennsylvania"}, "wmw": {"english_name": "Mwani"}, "waq": {"english_name": "Wageman"}, "mdz": {"english_name": "Suruí Do Pará"}, "zpj": {"english_name": "Zapotec, Quiavicuzas"}, "lln": {"english_name": "Lele (Chad)"}, "pav": {"english_name": "Pakaásnovos"}, "tsa": {"english_name": "Tsaangi"}, "fai": {"english_name": "Faiwol"}, "njt": {"english_name": "Ndyuka-Trio Pidgin"}, "dgn": {"english_name": "Dagoman"}, "wba": {"english_name": "Warao"}, "bio": {"english_name": "Nai"}, "aat": {"english_name": "Albanian, Arvanitika"}, "oso": {"english_name": "Ososo"}, "emy": {"english_name": "Mayan, Epigraphic"}, "kgx": {"english_name": "Kamaru"}, "kcv": {"english_name": "Kete"}, "xsn": {"english_name": "Sanga (Nigeria)"}, "gnr": {"english_name": "Gureng Gureng"}, "xla": {"english_name": "Kamula"}, "amf": {"english_name": "Hamer-Banna"}, "lsm": {"english_name": "Saamia"}, "rut": {"english_name": "Rutul"}, "wpc": {"english_name": "Maco"}, "kwu": {"english_name": "Kwakum"}, "tof": {"english_name": "Gizrra"}, "teq": {"english_name": "Temein"}, "mlk": {"english_name": "Ilwana"}, "omt": {"english_name": "Omotik"}, "ggd": {"english_name": "Gugadj"}, "ayn": {"english_name": "Arabic, Sanaani"}, "kmd": {"english_name": "Kalinga, Majukayang"}, "bkz": {"english_name": "Bungku"}, "bgz": {"english_name": "Banggai"}, "svx": {"english_name": "Skalvian"}, "bzf": {"english_name": "Boikin"}, "jdg": {"english_name": "Jadgali"}, "dcr": {"english_name": "Negerhollands"}, "igm": {"english_name": "Kanggape"}, "cik": {"english_name": "Kinnauri, Chitkuli"}, "nhi": {"english_name": "Nahuatl, Zacatlán-Ahuacatlán-Tepetzintla"}, "sek": {"english_name": "Sekani"}, "tlm": {"english_name": "Tolomako"}, "nny": {"english_name": "Nyangga"}, "nuy": {"english_name": "Nunggubuyu"}, "yil": {"english_name": "Yindjilandji"}, "jvd": {"english_name": "Javindo"}, "ptv": {"english_name": "Port Vato"}, "blr": {"english_name": "Blang"}, "ht": {"english_name": "Haitian"}, "gip": {"english_name": "Gimi (West New Britain)"}, "xav": {"english_name": "Xavánte"}, "mnp": {"english_name": "Chinese, Min Bei"}, "mro": {"english_name": "Mru"}, "pye": {"english_name": "Krumen, Pye"}, "uum": {"english_name": "Urum"}, "ret": {"english_name": "Retta"}, "fue": {"english_name": "Fulfulde, Borgu"}, "agl": {"english_name": "Fembe"}, "xkn": {"english_name": "Kayan, Kayan River"}, "tbm": {"english_name": "Tagbu"}, "ymm": {"english_name": "Maay"}, "jmc": {"english_name": "Machame"}, "sdu": {"english_name": "Sarudu"}, "lcp": {"english_name": "Lawa, Western"}, "cng": {"english_name": "Qiang, Northern"}, "mff": {"english_name": "Naki"}, "nge": {"english_name": "Ngemba"}, "qvh": {"english_name": "Quechua, Huamalíes-Dos de Mayo Huánuco"}, "zsk": {"english_name": "Kaskean"}, "bs": {"name": "Bosnian", "english_name": "Bosnian"}, "cso": {"english_name": "Chinantec, Sochiapam"}, "tec": {"english_name": "Terik"}, "bwp": {"english_name": "Mandobo Bawah"}, "abq": {"english_name": "Abaza"}, "iws": {"english_name": "Iwam, Sepik"}, "xgb": {"english_name": "Gbin"}, "bjl": {"english_name": "Bulu (Papua New Guinea)"}, "bfg": {"english_name": "Kayan, Busang"}, "kac": {"english_name": "Kachin"}, "ykm": {"english_name": "Kap"}, "lbj": {"english_name": "Ladakhi"}, "rue": {"english_name": "Rusyn"}, "xpy": {"english_name": "Puyo"}, "msq": {"english_name": "Caac"}, "vsv": {"english_name": "Valencian Sign Language"}, "bcz": {"english_name": "Bainouk-Gunyaamolo"}, "sds": {"english_name": "Sened"}, "aaf": {"english_name": "Aranadan"}, "era": {"english_name": "Eravallan"}, "slu": {"english_name": "Selaru"}, "bbn": {"english_name": "Uneapa"}, "bah": {"english_name": "Creole English, Bahamas"}, "nuv": {"english_name": "Nuni, Northern"}, "puf": {"english_name": "Punan Merah"}, "gwc": {"english_name": "Kalami"}, "dol": {"english_name": "Doso"}, "hig": {"english_name": "Kamwe"}, "dbj": {"english_name": "Ida'an"}, "mwz": {"english_name": "Moingi"}, "anb": {"english_name": "Andoa"}, "ace": {"english_name": "Achinese"}, "bws": {"english_name": "Bomboma"}, "szb": {"english_name": "Ngalum"}, "xme": {"english_name": "Median"}, "kcc": {"english_name": "Lubila"}, "tnu": {"english_name": "Tay Khang"}, "bjc": {"english_name": "Bariji"}, "qvi": {"english_name": "Quichua, Imbabura Highland"}, "ztg": {"english_name": "Zapotec, Xanaguía"}, "el": {"name": "Ελληνικά", "english_name": "Greek, Modern (1453-)"}, "erg": {"english_name": "Sie"}, "onp": {"english_name": "Sartang"}, "tdb": {"english_name": "Panchpargania"}, "aob": {"english_name": "Abom"}, "bn": {"name": "বাংলা", "english_name": "Bengali"}, "yux": {"english_name": "Yukaghir, Southern"}, "ykn": {"english_name": "Kua-nsi"}, "mgd": {"english_name": "Moru"}, "pas": {"english_name": "Papasena"}, "ygm": {"english_name": "Yagomi"}, "hoj": {"english_name": "Hadothi"}, "njn": {"english_name": "Naga, Liangmai"}, "knp": {"english_name": "Kwanja"}, "zab": {"english_name": "Zapotec, San Juan Guelavía"}, "oos": {"english_name": "Ossetic, Old"}, "kjz": {"english_name": "Bumthangkha"}, "omp": {"english_name": "Manipuri, Old"}, "pkp": {"english_name": "Pukapuka"}, "uli": {"english_name": "Ulithian"}, "ghk": {"english_name": "Karen, Geko"}, "tte": {"english_name": "Bwanabwana"}, "zts": {"english_name": "Zapotec, Tilquiapan"}, "mvl": {"english_name": "Mbara (Australia)"}, "bfx": {"english_name": "Bantayanon"}, "mls": {"english_name": "Masalit"}, "wsk": {"english_name": "Waskia"}, "but": {"english_name": "Bungain"}, "sae": {"english_name": "Sabanê"}, "ibd": {"english_name": "Iwaidja"}, "bgf": {"english_name": "Bangandu"}, "ryn": {"english_name": "Amami-Oshima, Northern"}, "uk": {"name": "українська", "english_name": "Ukrainian"}, "arw": {"english_name": "Arawak"}, "ola": {"english_name": "Walungge"}, "boz": {"english_name": "Bozo, Tiéyaxo"}, "nja": {"english_name": "Nzanyi"}, "giq": {"english_name": "Gelao, Green"}, "kjx": {"english_name": "Ramopa"}, "xgf": {"english_name": "Gabrielino-Fernandeño"}, "nim": {"english_name": "Nilamba"}, "pep": {"english_name": "Kunja"}, "bvc": {"english_name": "Baelelea"}, "cuw": {"english_name": "Chukwa"}, "dzg": {"english_name": "Dazaga"}, "kme": {"english_name": "Bakole"}, "ssl": {"english_name": "Sisaala, Western"}, "mzc": {"english_name": "Madagascar Sign Language"}, "aun": {"english_name": "One, Molmo"}, "gos": {"english_name": "Gronings"}, "grx": {"english_name": "Guriaso"}, "cjo": {"english_name": "Ashéninka Pajonal"}, "btm": {"english_name": "Batak Mandailing"}, "lkd": {"english_name": "Lakondê"}, "gmx": {"english_name": "Magoma"}, "bde": {"english_name": "Bade"}, "mmw": {"english_name": "Emae"}, "kyk": {"english_name": "Kamayo"}, "rnw": {"english_name": "Rungwa"}, "xkb": {"english_name": "Nago, Northern"}, "bhc": {"english_name": "Biga"}, "bfd": {"english_name": "Bafut"}, "dma": {"english_name": "Duma"}, "wla": {"english_name": "Walio"}, "clt": {"english_name": "Chin, Lautu"}, "gn": {"english_name": "Guarani"}, "mqe": {"english_name": "Matepi"}, "tch": {"english_name": "Creole English, Turks And Caicos"}, "wir": {"english_name": "Wiraféd"}, "lbv": {"english_name": "Lavatbura-Lamusong"}, "cds": {"english_name": "Chadian Sign Language"}, "doz": {"english_name": "Dorze"}, "nog": {"english_name": "Nogai"}, "zae": {"english_name": "Zapotec, Yareni"}, "ro": {"name": "Română", "english_name": "Romanian"}, "kmc": {"english_name": "Dong, Southern"}, "nbh": {"english_name": "Ngamo"}, "vig": {"english_name": "Viemo"}, "uri": {"english_name": "Urim"}, "ydg": {"english_name": "Yidgha"}, "ldg": {"english_name": "Lenyima"}, "oav": {"english_name": "Avar, Old"}, "anh": {"english_name": "Nend"}, "sby": {"english_name": "Soli"}, "ywq": {"english_name": "Yi, Wuding-Luquan"}, "ans": {"english_name": "Anserma"}, "dhm": {"english_name": "Zemba"}, "ttn": {"english_name": "Towei"}, "cli": {"english_name": "Chakali"}, "ase": {"english_name": "American Sign Language"}, "bed": {"english_name": "Bedoanas"}, "mci": {"english_name": "Mese"}, "ggk": {"english_name": "Kungarakany"}, "atl": {"english_name": "Agta, Mt. Iraya"}, "ras": {"english_name": "Tegali"}, "nbm": {"english_name": "Ngbaka Ma'bo"}, "ral": {"english_name": "Ralte"}, "tsl": {"english_name": "Ts'ün-Lao"}, "skt": {"english_name": "Sakata"}, "tmn": {"english_name": "Taman (Indonesia)"}, "khy": {"english_name": "Kele (Democratic Republic of Congo)"}, "bgi": {"english_name": "Giangan"}, "vid": {"english_name": "Vidunda"}, "kqg": {"english_name": "Khe"}, "ssi": {"english_name": "Sansi"}, "lbx": {"english_name": "Lawangan"}, "sny": {"english_name": "Saniyo-Hiyewe"}, "ksp": {"english_name": "Kaba"}, "hax": {"english_name": "Haida, Southern"}, "abd": {"english_name": "Manide"}, "khd": {"english_name": "Kanum, Bädi"}, "tmw": {"english_name": "Temuan"}, "luk": {"english_name": "Lunanakha"}, "atn": {"english_name": "Ashtiani"}, "ntu": {"english_name": "Natügu"}, "qus": {"english_name": "Quichua, Santiago del Estero"}, "bxn": {"english_name": "Burduna"}, "tmr": {"english_name": "Aramaic, Jewish Babylonian (ca. 200-1200 CE)"}, "eme": {"english_name": "Emerillon"}, "bwe": {"english_name": "Karen, Bwe"}, "mkj": {"english_name": "Mokilese"}, "pci": {"english_name": "Duruwa"}, "hoh": {"english_name": "Hobyót"}, "xeu": {"english_name": "Keoru-Ahia"}, "wa": {"name": "Walon", "english_name": "Walloon"}, "kue": {"english_name": "Kuman"}, "tlr": {"english_name": "Talise"}, "ler": {"english_name": "Lenkau"}, "mnq": {"english_name": "Minriq"}, "xpk": {"english_name": "Pano, Kulina"}, "gso": {"english_name": "Gbaya, Southwest"}, "nbn": {"english_name": "Kuri"}, "gey": {"english_name": "Enya"}, "dws": {"english_name": "Dutton World Speedwords"}, "tvm": {"english_name": "Tela-Masbuar"}, "kpu": {"english_name": "Kafoa"}, "kgs": {"english_name": "Kumbainggar"}, "ekr": {"english_name": "Yace"}, "tti": {"english_name": "Tobati"}, "enq": {"english_name": "Enga"}, "yix": {"english_name": "Yi, Axi"}, "adl": {"english_name": "Galo"}, "gva": {"english_name": "Guana (Paraguay)"}, "aoj": {"english_name": "Mufian"}, "bqd": {"english_name": "Bung"}, "ttp": {"english_name": "Tombelala"}, "neu": {"english_name": "Neo"}, "msr": {"english_name": "Mongolian Sign Language"}, "kgt": {"english_name": "Somyev"}, "yaa": {"english_name": "Yaminahua"}, "lhi": {"english_name": "Lahu Shi"}, "nyi": {"english_name": "Ama (Sudan)"}, "kho": {"english_name": "Khotanese"}, "amt": {"english_name": "Amto"}, "buf": {"english_name": "Bushoong"}, "coq": {"english_name": "Coquille"}, "psg": {"english_name": "Penang Sign Language"}, "yyu": {"english_name": "Yau (Sandaun Province)"}, "vap": {"english_name": "Vaiphei"}, "big": {"english_name": "Biangai"}, "mtk": {"english_name": "Mbe'"}, "kkm": {"english_name": "Kiong"}, "kkh": {"english_name": "Khün"}, "unr": {"english_name": "Mundari"}, "nzb": {"english_name": "Njebi"}, "kyi": {"english_name": "Kiput"}, "fo": {"english_name": "Faroese"}, "orh": {"english_name": "Oroqen"}, "ywn": {"english_name": "Yawanawa"}, "bso": {"english_name": "Buso"}, "fll": {"english_name": "Fali, North"}, "lel": {"english_name": "Lele (Democratic Republic of Congo)"}, "mwf": {"english_name": "Murrinh-Patha"}, "npn": {"english_name": "Mondropolon"}, "smr": {"english_name": "Simeulue"}, "blc": {"english_name": "Bella Coola"}, "cfg": {"english_name": "Como Karim"}, "raa": {"english_name": "Dungmali"}, "kxy": {"english_name": "Kayong"}, "wux": {"english_name": "Wulna"}, "nwa": {"english_name": "Nawathinehena"}, "mzk": {"english_name": "Mambila, Nigeria"}, "lht": {"english_name": "Lo-Toga"}, "dkr": {"english_name": "Kuijau"}, "swf": {"english_name": "Sere"}, "tbt": {"english_name": "Tembo (Kitembo)"}, "pez": {"english_name": "Penan, Eastern"}, "kvc": {"english_name": "Kove"}, "bhn": {"english_name": "Neo-Aramaic, Bohtan"}, "sdn": {"english_name": "Sardinian, Gallurese"}, "nmh": {"english_name": "Naga, Monsang"}, "iai": {"english_name": "Iaai"}, "ysl": {"english_name": "Yugoslavian Sign Language"}, "gta": {"english_name": "Guató"}, "sxk": {"english_name": "Kalapuya, Southern"}, "yri": {"english_name": "Yarí"}, "dip": {"english_name": "Dinka, Northeastern"}, "pch": {"english_name": "Pardhan"}, "txb": {"english_name": "Tokharian B"}, "yom": {"english_name": "Yombe"}, "bpt": {"english_name": "Barrow Point"}, "cuj": {"english_name": "Mashco Piro"}, "wer": {"english_name": "Weri"}, "mpg": {"english_name": "Marba"}, "bgn": {"english_name": "Balochi, Western"}, "ybh": {"english_name": "Yakha"}, "gbo": {"english_name": "Grebo, Northern"}, "tlh": {"english_name": "Klingon"}, "gka": {"english_name": "Guya"}, "grd": {"english_name": "Guruntum-Mbaaru"}, "ksb": {"english_name": "Shambala"}, "dii": {"english_name": "Dimbong"}, "dml": {"english_name": "Dameli"}, "xup": {"english_name": "Umpqua, Upper"}, "nbw": {"english_name": "Ngbandi, Southern"}, "tqn": {"english_name": "Tenino"}, "xwc": {"english_name": "Woccon"}, "frc": {"english_name": "French, Cajun"}, "cbi": {"english_name": "Chachi"}, "rab": {"english_name": "Camling"}, "jct": {"english_name": "Krymchak"}, "lwa": {"english_name": "Lwalu"}, "njo": {"english_name": "Naga, Ao"}, "lgk": {"english_name": "Lingarak"}, "bxz": {"english_name": "Binahari"}, "bbv": {"english_name": "Karnai"}, "txr": {"english_name": "Tartessian"}, "hkk": {"english_name": "Hunjara-Kaina Ke"}, "btl": {"english_name": "Bhatola"}, "uz": {"english_name": "Uzbek"}, "pla": {"english_name": "Miani"}, "ccl": {"english_name": "Cutchi-Swahili"}, "kk": {"english_name": "Kazakh"}, "xnr": {"english_name": "Kangri"}, "xaw": {"english_name": "Kawaiisu"}, "awk": {"english_name": "Awabakal"}, "mvb": {"english_name": "Mattole"}, "kit": {"english_name": "Agob"}, "jgo": {"english_name": "Ngomba"}, "wbj": {"english_name": "Alagwa"}, "sjs": {"english_name": "Senhaja De Srair"}, "ame": {"english_name": "Yanesha'"}, "nmj": {"english_name": "Ngombe (Central African Republic)"}, "xcn": {"english_name": "Cotoname"}, "zeh": {"english_name": "Zhuang, Eastern Hongshuihe"}, "pot": {"english_name": "Potawatomi"}, "lwo": {"english_name": "Luwo"}, "ggl": {"english_name": "Ganglau"}, "mhk": {"english_name": "Mungaka"}, "ypg": {"english_name": "Phola"}, "tnr": {"english_name": "Ménik"}, "bcm": {"english_name": "Bannoni"}, "lvk": {"english_name": "Lavukaleve"}, "acx": {"english_name": "Arabic, Omani"}, "amr": {"english_name": "Amarakaeri"}, "bsn": {"english_name": "Barasana-Eduria"}, "mcz": {"english_name": "Mawan"}, "abo": {"english_name": "Abon"}, "amq": {"english_name": "Amahai"}, "iko": {"english_name": "Olulumo-Ikom"}, "sys": {"english_name": "Sinyar"}, "zhn": {"english_name": "Zhuang, Nong"}, "lik": {"english_name": "Lika"}, "saj": {"english_name": "Sahu"}, "chn": {"english_name": "Chinook jargon"}, "pgl": {"english_name": "Irish, Primitive"}, "twh": {"english_name": "Tai Dón"}, "bgr": {"english_name": "Chin, Bawm"}, "myu": {"english_name": "Mundurukú"}, "tlc": {"english_name": "Totonac, Yecuatla"}, "grg": {"english_name": "Madi"}, "cri": {"english_name": "Sãotomense"}, "tsr": {"english_name": "Akei"}, "bnd": {"english_name": "Banda (Indonesia)"}, "bqz": {"english_name": "Bakaka"}, "aye": {"english_name": "Ayere"}, "agt": {"english_name": "Agta, Central Cagayan"}, "nud": {"english_name": "Ngala"}, "dre": {"english_name": "Dolpo"}, "ubl": {"english_name": "Bikol, Buhi'non"}, "bxw": {"english_name": "Bankagooma"}, "ljp": {"english_name": "Lampung Api"}, "rbl": {"english_name": "Bikol, Miraya"}, "mye": {"english_name": "Myene"}, "tjo": {"english_name": "Tamazight, Temacine"}, "tvw": {"english_name": "Sedoa"}, "wrd": {"english_name": "Warduji"}, "dyb": {"english_name": "Dyaberdyaber"}, "csq": {"english_name": "Croatia Sign Language"}, "def": {"english_name": "Dezfuli"}, "lku": {"english_name": "Kungkari"}, "glo": {"english_name": "Galambu"}, "kmz": {"english_name": "Khorasani Turkish"}, "te": {"english_name": "Telugu"}, "mpj": {"english_name": "Martu Wangka"}, "efe": {"english_name": "Efe"}, "crj": {"english_name": "Cree, Southern East"}, "idb": {"english_name": "Indo-Portuguese"}, "yon": {"english_name": "Yongkom"}, "lko": {"english_name": "Khayo"}, "mru": {"english_name": "Mono (Cameroon)"}, "ksv": {"english_name": "Kusu"}, "fly": {"english_name": "Tsotsitaal"}, "pur": {"english_name": "Puruborá"}, "xre": {"english_name": "Kreye"}, "hra": {"english_name": "Hrangkhol"}, "pym": {"english_name": "Fyam"}, "gda": {"english_name": "Lohar, Gade"}, "lsi": {"english_name": "Lashi"}, "kzg": {"english_name": "Kikai"}, "obo": {"english_name": "Manobo, Obo"}, "ntz": {"english_name": "Natanzi"}, "mkt": {"english_name": "Vamale"}, "uwa": {"english_name": "Kuku-Uwanh"}, "bkr": {"english_name": "Bakumpai"}, "nhr": {"english_name": "Naro"}, "nhm": {"english_name": "Nahuatl, Morelos"}, "mfo": {"english_name": "Mbe"}, "yue": {"english_name": "Chinese, Yue"}, "sie": {"english_name": "Simaa"}, "pto": {"english_name": "Zo'é"}, "pt": {"name": "Português", "english_name": "Portuguese"}, "bmp": {"english_name": "Bulgebi"}, "grv": {"english_name": "Grebo, Central"}, "buw": {"english_name": "Bubi"}, "xar": {"english_name": "Karami"}, "sjk": {"english_name": "Sami, Kemi"}, "lby": {"english_name": "Lamu-Lamu"}, "ums": {"english_name": "Pendau"}, "btj": {"english_name": "Malay, Bacanese"}, "sav": {"english_name": "Saafi-Saafi"}, "moa": {"english_name": "Mwan"}, "tui": {"english_name": "Tupuri"}, "dry": {"english_name": "Darai"}, "kum": {"english_name": "Kumyk"}, "mpv": {"english_name": "Mungkip"}, "bcg": {"english_name": "Baga Binari"}, "ta": {"name": "தமிழ்", "english_name": "Tamil"}, "ard": {"english_name": "Arabana"}, "mdr": {"english_name": "Mandar"}, "krk": {"english_name": "Kerek"}, "ngk": {"english_name": "Dalabon"}, "ura": {"english_name": "Urarina"}, "myk": {"english_name": "Senoufo, Mamara"}, "glr": {"english_name": "Glaro-Twabo"}, "gym": {"english_name": "Ngäbere"}, "abl": {"english_name": "Lampung Nyo"}, "lkm": {"english_name": "Kalaamaya"}, "plo": {"english_name": "Popoluca, Oluta"}, "agv": {"english_name": "Dumagat, Remontado"}, "zak": {"english_name": "Zanaki"}, "wkw": {"english_name": "Wakawaka"}, "srz": {"english_name": "Shahmirzadi"}, "wle": {"english_name": "Wolane"}, "zeg": {"english_name": "Zenag"}, "ghc": {"english_name": "Gaelic, Hiberno-Scottish"}, "tdj": {"english_name": "Tajio"}, "sbh": {"english_name": "Sori-Harengan"}, "dnu": {"english_name": "Danau"}, "wih": {"english_name": "Wik-Me'anha"}, "wtm": {"english_name": "Mewati"}, "pih": {"english_name": "Pitcairn-Norfolk"}, "bbf": {"english_name": "Baibai"}, "koo": {"english_name": "Konzo"}, "yim": {"english_name": "Naga, Yimchungru"}, "gnu": {"english_name": "Gnau"}, "nki": {"english_name": "Naga, Thangal"}, "bnm": {"english_name": "Batanga"}, "zmj": {"english_name": "Maridjabin"}, "gog": {"english_name": "Gogo"}, "djb": {"english_name": "Djinba"}, "xlp": {"english_name": "Lepontic"}, "its": {"english_name": "Isekiri"}, "nre": {"english_name": "Naga, Southern Rengma"}, "wnk": {"english_name": "Wanukaka"}, "tni": {"english_name": "Tandia"}, "noa": {"english_name": "Woun Meu"}, "txo": {"english_name": "Toto"}, "wuh": {"english_name": "Wutunhua"}, "lud": {"english_name": "Ludian"}, "swq": {"english_name": "Sharwa"}, "inb": {"english_name": "Inga"}, "bfe": {"english_name": "Betaf"}, "kcg": {"english_name": "Tyap"}, "tbv": {"english_name": "Tobo"}, "leo": {"english_name": "Leti (Cameroon)"}, "krd": {"english_name": "Kairui-Midiki"}, "mgc": {"english_name": "Morokodo"}, "dms": {"english_name": "Dampelas"}, "kpa": {"english_name": "Kutto"}, "guh": {"english_name": "Guahibo"}, "aiw": {"english_name": "Aari"}, "xhe": {"english_name": "Khetrani"}, "npu": {"english_name": "Naga, Puimei"}, "lre": {"english_name": "Laurentian"}, "sbs": {"english_name": "Subiya"}, "duf": {"english_name": "Dumbea"}, "nce": {"english_name": "Yale"}, "gct": {"english_name": "German, Colonia Tovar"}, "coa": {"english_name": "Malay, Cocos Islands"}, "mih": {"english_name": "Mixtec, Chayuco"}, "nej": {"english_name": "Neko"}, "inn": {"english_name": "Isinai"}, "bcr": {"english_name": "Babine"}, "nzk": {"english_name": "Nzakara"}, "kil": {"english_name": "Kariya"}, "luv": {"english_name": "Luwati"}, "anz": {"english_name": "Anem"}, "puw": {"english_name": "Puluwatese"}, "aaq": {"english_name": "Abnaki, Eastern"}, "sed": {"english_name": "Sedang"}, "mmd": {"english_name": "Maonan"}, "cux": {"english_name": "Cuicatec, Tepeuxila"}, "wrs": {"english_name": "Waris"}, "mbe": {"english_name": "Molale"}, "sjt": {"english_name": "Sami, Ter"}, "gqa": {"english_name": "Ga'anda"}, "ojw": {"english_name": "Ojibwa, Western"}, "xon": {"english_name": "Konkomba"}, "zhb": {"english_name": "Zhaba"}, "stu": {"english_name": "Samtao"}, "mjy": {"english_name": "Mahican"}, "kez": {"english_name": "Kukele"}, "ukq": {"english_name": "Ukwa"}, "ngh": {"english_name": "N/u"}, "kee": {"english_name": "Keres, Eastern"}, "mbu": {"english_name": "Mbula-Bwazza"}, "bvz": {"english_name": "Bauzi"}, "okx": {"english_name": "Okpe (Northwestern Edo)"}, "mnh": {"english_name": "Mono (Democratic Republic of Congo)"}, "kgy": {"english_name": "Kyerung"}, "gyg": {"english_name": "Gbayi"}, "kzc": {"english_name": "Kulango, Bondoukou"}, "ka": {"english_name": "Georgian"}, "knu": {"english_name": "Kono (Guinea)"}, "bkp": {"english_name": "Boko (Democratic Republic of Congo)"}, "soj": {"english_name": "Soi"}, "mdd": {"english_name": "Mbum"}, "umn": {"english_name": "Naga, Makyan"}, "nan": {"english_name": "Chinese, Min Nan"}, "lir": {"english_name": "English, Liberian"}, "cjs": {"english_name": "Shor"}, "mfg": {"english_name": "Mogofin"}, "mmo": {"english_name": "Buang, Mangga"}, "fuc": {"english_name": "Pulaar"}, "bub": {"english_name": "Bua"}, "wgb": {"english_name": "Wagawaga"}, "mrb": {"english_name": "Marino"}, "tta": {"english_name": "Tutelo"}, "ram": {"english_name": "Canela"}, "mns": {"english_name": "Mansi"}, "jen": {"english_name": "Dza"}, "ksx": {"english_name": "Kedang"}, "sgh": {"english_name": "Shughni"}, "bud": {"english_name": "Ntcham"}, "hul": {"english_name": "Hula"}, "tyn": {"english_name": "Kombai"}, "ptw": {"english_name": "Pentlatch"}, "emi": {"english_name": "Mussau-Emira"}, "mrs": {"english_name": "Maragus"}, "shb": {"english_name": "Ninam"}, "hvv": {"english_name": "Huave, Santa María Del Mar"}, "vah": {"english_name": "Varhadi-Nagpuri"}, "sgj": {"english_name": "Surgujia"}, "tsg": {"english_name": "Tausug"}, "jmb": {"english_name": "Zumbun"}, "nuu": {"english_name": "Ngbundu"}, "kow": {"english_name": "Kugama"}, "mct": {"english_name": "Mengisa"}, "mny": {"english_name": "Manyawa"}, "bnz": {"english_name": "Beezen"}, "ymd": {"english_name": "Muda"}, "tdn": {"english_name": "Tondano"}, "tmp": {"english_name": "Tai Mène"}, "dlg": {"english_name": "Dolgan"}, "dmc": {"english_name": "Gavak"}, "tdt": {"english_name": "Tetun Dili"}, "blb": {"english_name": "Bilua"}, "slq": {"english_name": "Salchuq"}, "gag": {"english_name": "Gagauz"}, "xiv": {"english_name": "Indus Valley Language"}, "bkw": {"english_name": "Bekwel"}, "sya": {"english_name": "Siang"}, "agr": {"english_name": "Aguaruna"}, "gwe": {"english_name": "Gweno"}, "dai": {"english_name": "Day"}, "bpw": {"english_name": "Bo (Papua New Guinea)"}, "cdj": {"english_name": "Churahi"}, "kvt": {"english_name": "Karen, Lahta"}, "urt": {"english_name": "Urat"}, "ldp": {"english_name": "Tso"}, "vmp": {"english_name": "Mazatec, Soyaltepec"}, "zuy": {"english_name": "Zumaya"}, "wgi": {"english_name": "Wahgi"}, "tug": {"english_name": "Tunia"}, "drq": {"english_name": "Dura"}, "sok": {"english_name": "Sokoro"}, "bni": {"english_name": "Bangi"}, "pdn": {"english_name": "Podena"}, "yec": {"english_name": "Yeniche"}, "xgm": {"english_name": "Guwinmal"}, "bhm": {"english_name": "Bathari"}, "rod": {"english_name": "Rogo"}, "kwr": {"english_name": "Kwer"}, "aca": {"english_name": "Achagua"}, "taf": {"english_name": "Tapirapé"}, "guv": {"english_name": "Gey"}, "crx": {"english_name": "Carrier"}, "khh": {"english_name": "Kehu"}, "tad": {"english_name": "Tause"}, "jnj": {"english_name": "Yemsa"}, "tmj": {"english_name": "Samarokena"}, "aao": {"english_name": "Arabic, Algerian Saharan"}, "wkb": {"english_name": "Kumbaran"}, "nb": {"name": "Norwegian Bokmål", "english_name": "Norwegian Bokmål"}, "svm": {"english_name": "Slavomolisano"}, "mjg": {"english_name": "Tu"}, "klz": {"english_name": "Kabola"}, "srn": {"english_name": "Sranan Tongo"}, "kol": {"english_name": "Kol (Papua New Guinea)"}, "aqd": {"english_name": "Dogon, Ampari"}, "pdt": {"english_name": "Plautdietsch"}, "guo": {"english_name": "Guayabero"}, "pkr": {"english_name": "Kurumba, Attapady"}, "bmt": {"english_name": "Biao Mon"}, "rsb": {"english_name": "Romano-Serbian"}, "ncl": {"english_name": "Nahuatl, Michoacán"}, "nmr": {"english_name": "Nimbari"}, "huv": {"english_name": "Huave, San Mateo Del Mar"}, "jod": {"english_name": "Wojenaka"}, "kqq": {"english_name": "Krenak"}, "laj": {"english_name": "Lango (Uganda)"}, "wlg": {"english_name": "Kunbarlang"}, "kuj": {"english_name": "Kuria"}, "sdz": {"english_name": "Sallands"}, "ee": {"english_name": "Ewe"}, "ele": {"english_name": "Elepi"}, "aau": {"english_name": "Abau"}, "sza": {"english_name": "Semelai"}, "fur": {"english_name": "Friulian"}, "aai": {"english_name": "Arifama-Miniafia"}, "dnn": {"english_name": "Dzùùngoo"}, "ner": {"english_name": "Yahadian"}, "mxr": {"english_name": "Murik (Malaysia)"}, "bli": {"english_name": "Bolia"}, "huw": {"english_name": "Hukumina"}, "ldo": {"english_name": "Loo"}, "kpn": {"english_name": "Kepkiriwát"}, "lef": {"english_name": "Lelemi"}, "tox": {"english_name": "Tobian"}, "kjc": {"english_name": "Konjo, Coastal"}, "soh": {"english_name": "Aka"}, "sk": {"name": "Slovenský", "english_name": "Slovak"}, "nvh": {"english_name": "Nasarian"}, "plu": {"english_name": "Palikúr"}, "xfa": {"english_name": "Faliscan"}, "mvg": {"english_name": "Mixtec, Yucuañe"}, "mxz": {"english_name": "Masela, Central"}, "cjm": {"english_name": "Cham, Eastern"}, "pab": {"english_name": "Parecís"}, "ngg": {"english_name": "Ngbaka Manza"}, "sow": {"english_name": "Sowanda"}, "mmr": {"english_name": "Miao, Western Xiangxi"}, "ruu": {"english_name": "Lobu, Lanas"}, "akd": {"english_name": "Ukpet-Ehom"}, "ndd": {"english_name": "Nde-Nsele-Nta"}, "nmq": {"english_name": "Nambya"}, "klq": {"english_name": "Rumu"}, "xda": {"english_name": "Darkinyung"}, "blw": {"english_name": "Balangao"}, "lnj": {"english_name": "Leningitij"}, "hti": {"english_name": "Hoti"}, "nni": {"english_name": "Nuaulu, North"}, "kcj": {"english_name": "Kobiana"}, "ort": {"english_name": "Oriya, Adivasi"}, "pmx": {"english_name": "Naga, Poumei"}, "hmw": {"english_name": "Hmong, Western Mashan"}, "kuh": {"english_name": "Kushi"}, "moi": {"english_name": "Mboi"}, "dij": {"english_name": "Dai"}, "gmn": {"english_name": "Gimnime"}, "yum": {"english_name": "Quechan"}, "kvz": {"english_name": "Tsakwambo"}, "wew": {"english_name": "Wejewa"}, "hhr": {"english_name": "Kerak"}, "asr": {"english_name": "Asuri"}, "kqk": {"english_name": "Gbe, Kotafon"}, "xad": {"english_name": "Adai"}, "tgo": {"english_name": "Sudest"}, "ils": {"english_name": "International Sign"}, "vme": {"english_name": "Masela, East"}, "bto": {"english_name": "Bikol, Rinconada"}, "kjh": {"english_name": "Khakas"}, "hud": {"english_name": "Huaulu"}, "rtm": {"english_name": "Rotuman"}, "tbw": {"english_name": "Tagbanwa"}, "rah": {"english_name": "Rabha"}, "jak": {"english_name": "Jakun"}, "tsm": {"english_name": "Turkish Sign Language"}, "kvj": {"english_name": "Psikye"}, "zoc": {"english_name": "Zoque, Copainalá"}, "wgy": {"english_name": "Warrgamay"}, "knr": {"english_name": "Kaningra"}, "nkz": {"english_name": "Nkari"}, "piz": {"english_name": "Pije"}, "nom": {"english_name": "Nocamán"}, "xbg": {"english_name": "Bunganditj"}, "erh": {"english_name": "Eruwa"}, "hba": {"english_name": "Hamba"}, "knq": {"english_name": "Kintaq"}, "thc": {"english_name": "Tai Hang Tong"}, "klu": {"english_name": "Klao"}, "lam": {"english_name": "Lamba"}, "wka": {"english_name": "Kw'adza"}, "tom": {"english_name": "Tombulu"}, "yis": {"english_name": "Yis"}, "hao": {"english_name": "Hakö"}, "avu": {"english_name": "Avokaya"}, "azd": {"english_name": "Nahuatl, Eastern Durango"}, "txt": {"english_name": "Citak"}, "sgu": {"english_name": "Salas"}, "lex": {"english_name": "Luang"}, "goy": {"english_name": "Goundo"}, "nit": {"english_name": "Kolami, Southeastern"}, "pni": {"english_name": "Aoheng"}, "dka": {"english_name": "Dakpakha"}, "ny": {"english_name": "Nyanja"}, "hih": {"english_name": "Pamosu"}, "asd": {"english_name": "Asas"}, "byo": {"english_name": "Biyo"}, "dar": {"english_name": "Dargwa"}, "acv": {"english_name": "Achumawi"}, "biy": {"english_name": "Birhor"}, "mpk": {"english_name": "Mbara (Chad)"}, "gbk": {"english_name": "Gaddi"}, "hch": {"english_name": "Huichol"}, "cac": {"english_name": "Chuj"}, "mjt": {"english_name": "Sauria Paharia"}, "fkv": {"english_name": "Finnish, Kven"}, "mue": {"english_name": "Media Lengua"}, "ttq": {"english_name": "Tamajaq, Tawallammat"}, "soy": {"english_name": "Miyobe"}, "pel": {"english_name": "Pekal"}, "sws": {"english_name": "Seluwasan"}, "atz": {"english_name": "Arta"}, "tbd": {"english_name": "Kaki Ae"}, "weh": {"english_name": "Weh"}, "stt": {"english_name": "Stieng, Budeh"}, "jmx": {"english_name": "Mixtec, Western Juxtlahuaca"}, "aqr": {"english_name": "Arhâ"}, "tlt": {"english_name": "Teluti"}, "xwa": {"english_name": "Kwaza"}, "acb": {"english_name": "Áncá"}, "cuv": {"english_name": "Cuvok"}, "itt": {"english_name": "Itneg, Maeng"}, "aez": {"english_name": "Aeka"}, "okd": {"english_name": "Okodia"}, "vae": {"english_name": "Vale"}, "kio": {"english_name": "Kiowa"}, "psl": {"english_name": "Puerto Rican Sign Language"}, "leu": {"english_name": "Kara (Papua New Guinea)"}, "atu": {"english_name": "Reel"}, "dth": {"english_name": "Adithinngithigh"}, "dez": {"english_name": "Dengese"}, "rub": {"english_name": "Gungu"}, "yup": {"english_name": "Yukpa"}, "mxt": {"english_name": "Mixtec, Jamiltepec"}, "yky": {"english_name": "Yakoma"}, "asy": {"english_name": "Asmat, Yaosakor"}, "dtm": {"english_name": "Dogon, Tomo Kan"}, "aoh": {"english_name": "Arma"}, "rmp": {"english_name": "Rempi"}, "btp": {"english_name": "Budibud"}, "pup": {"english_name": "Pulabu"}, "lwe": {"english_name": "Lewo Eleng"}, "nat": {"english_name": "Hungworo"}, "sjb": {"english_name": "Sajau Basap"}, "kgc": {"english_name": "Kasseng"}, "nwi": {"english_name": "Tanna, Southwest"}, "kkn": {"english_name": "Kon Keu"}, "pnk": {"english_name": "Paunaka"}, "plr": {"english_name": "Senoufo, Palaka"}, "ar": {"name": "العربية", "english_name": "Arabic"}, "ikr": {"english_name": "Ikaranggal"}, "gse": {"english_name": "Ghanaian Sign Language"}, "pbl": {"english_name": "Mak (Nigeria)"}, "ury": {"english_name": "Orya"}, "fcs": {"english_name": "Quebec Sign Language"}, "pcp": {"english_name": "Pacahuara"}, "yii": {"english_name": "Yidiny"}, "lea": {"english_name": "Lega-Shabunda"}, "mvh": {"english_name": "Mulgi"}, "zah": {"english_name": "Zangwal"}, "tuu": {"english_name": "Tututni"}, "kdg": {"english_name": "Seba"}, "xlc": {"english_name": "Lycian"}, "kvd": {"english_name": "Kui (Indonesia)"}, "prq": {"english_name": "Ashéninka Perené"}, "mth": {"english_name": "Munggui"}, "gop": {"english_name": "Yeretuar"}, "zpr": {"english_name": "Zapotec, Santiago Xanica"}, "net": {"english_name": "Nete"}, "ads": {"english_name": "Adamorobe Sign Language"}, "enm": {"english_name": "English, Middle (1100-1500)"}, "hob": {"english_name": "Mari (Madang Province)"}, "mfy": {"english_name": "Mayo"}, "lra": {"english_name": "Rara Bakati'"}, "lcs": {"english_name": "Lisabata-Nuniali"}, "brk": {"english_name": "Birked"}, "bzn": {"english_name": "Boano (Maluku)"}, "hix": {"english_name": "Hixkaryána"}, "saq": {"english_name": "Samburu"}, "nbk": {"english_name": "Nake"}, "jwi": {"english_name": "Jwira-Pepesa"}, "xpp": {"english_name": "Puyo-Paekche"}, "yam": {"english_name": "Yamba"}, "shg": {"english_name": "Shua"}, "kvi": {"english_name": "Kwang"}, "smz": {"english_name": "Simeku"}, "wdj": {"english_name": "Wadjiginy"}, "zsr": {"english_name": "Zapotec, Southern Rincon"}, "nju": {"english_name": "Ngadjunmaya"}, "upi": {"english_name": "Umeda"}, "ldb": {"english_name": "Dũya"}, "gwd": {"english_name": "Gawwada"}, "dtt": {"english_name": "Dogon, Toro Tegu"}, "bsi": {"english_name": "Bassossi"}, "waz": {"english_name": "Wampur"}, "tmk": {"english_name": "Tamang, Northwestern"}, "bti": {"english_name": "Burate"}, "apx": {"english_name": "Aputai"}, "alp": {"english_name": "Alune"}, "wua": {"english_name": "Wikngenchera"}, "biw": {"english_name": "Kol (Cameroon)"}, "tya": {"english_name": "Tauya"}, "rag": {"english_name": "Logooli"}, "tck": {"english_name": "Tchitchege"}, "yll": {"english_name": "Yil"}, "xwt": {"english_name": "Wotjobaluk"}, "mki": {"english_name": "Dhatki"}, "tip": {"english_name": "Trimuris"}, "rmi": {"english_name": "Lomavren"}, "xcb": {"english_name": "Cumbric"}, "gdo": {"english_name": "Ghodoberi"}, "tub": {"english_name": "Tübatulabal"}, "pai": {"english_name": "Pe"}, "gqn": {"english_name": "Guana (Brazil)"}, "bua": {"english_name": "Buriat"}, "dzl": {"english_name": "Dzalakha"}, "pmc": {"english_name": "Palumata"}, "alr": {"english_name": "Alutor"}, "mtp": {"english_name": "Wichí Lhamtés Nocten"}, "aea": {"english_name": "Areba"}, "kfg": {"english_name": "Kudiya"}, "yea": {"english_name": "Ravula"}, "van": {"english_name": "Valman"}, "sxu": {"english_name": "Saxon, Upper"}, "egy": {"english_name": "Egyptian (Ancient)"}, "cao": {"english_name": "Chácobo"}, "mg": {"english_name": "Malagasy"}, "nhh": {"english_name": "Nahari"}, "mzn": {"english_name": "Mazanderani"}, "jbo": {"english_name": "Lojban"}, "meu": {"english_name": "Motu"}, "kbd": {"english_name": "Kabardian"}, "sjo": {"english_name": "Xibe"}, "cal": {"english_name": "Carolinian"}, "kxb": {"english_name": "Krobu"}, "snl": {"english_name": "Sangil"}, "sks": {"english_name": "Maia"}, "tgz": {"english_name": "Tagalaka"}, "wau": {"english_name": "Waurá"}, "ciy": {"english_name": "Chaima"}, "cuc": {"english_name": "Chinantec, Usila"}, "uma": {"english_name": "Umatilla"}, "sqk": {"english_name": "Albanian Sign Language"}, "nrc": {"english_name": "Noric"}, "sbv": {"english_name": "Sabine"}, "kkp": {"english_name": "Gugubera"}, "sif": {"english_name": "Siamou"}, "dse": {"english_name": "Dutch Sign Language"}, "lau": {"english_name": "Laba"}, "brn": {"english_name": "Boruca"}, "wma": {"english_name": "Mawa (Nigeria)"}, "nof": {"english_name": "Nomane"}, "kaq": {"english_name": "Capanahua"}, "tgq": {"english_name": "Tring"}, "rmt": {"english_name": "Domari"}, "kug": {"english_name": "Kupa"}, "xxk": {"english_name": "Ke'o"}, "goh": {"english_name": "German, Old High (ca. 750-1050)"}, "nhu": {"english_name": "Noone"}, "muc": {"english_name": "Ajumbu"}, "sg": {"english_name": "Sango"}, "bts": {"english_name": "Batak Simalungun"}, "mlx": {"english_name": "Malfaxal"}, "nmu": {"english_name": "Maidu, Northeast"}, "lgl": {"english_name": "Wala"}, "vto": {"english_name": "Vitou"}, "ged": {"english_name": "Gade"}, "fad": {"english_name": "Wagi"}, "ctd": {"english_name": "Chin, Tedim"}, "kve": {"english_name": "Kalabakan"}, "nek": {"english_name": "Neku"}, "ixl": {"english_name": "Ixil"}, "niy": {"english_name": "Ngiti"}, "zbe": {"english_name": "Berawan, East"}, "sev": {"english_name": "Senoufo, Nyarafolo"}, "acz": {"english_name": "Acheron"}, "krr": {"english_name": "Kru'ng 2"}, "wo": {"english_name": "Wolof"}, "mtd": {"english_name": "Mualang"}, "skz": {"english_name": "Sekar"}, "anr": {"english_name": "Andh"}, "kci": {"english_name": "Kamantan"}, "kgw": {"english_name": "Karon Dori"}, "ytp": {"english_name": "Thopho"}, "opk": {"english_name": "Kopkaka"}, "xxr": {"english_name": "Koropó"}, "xsb": {"english_name": "Sambal"}, "diq": {"english_name": "Dimli (individual language)"}, "wea": {"english_name": "Wewaw"}, "btx": {"english_name": "Batak Karo"}, "mbm": {"english_name": "Ombamba"}, "mcx": {"english_name": "Mpiemo"}, "ldn": {"english_name": "Láadan"}, "kqe": {"english_name": "Kalagan"}, "ruf": {"english_name": "Luguru"}, "kpr": {"english_name": "Korafe-Yegha"}, "gli": {"english_name": "Guliguli"}, "tbe": {"english_name": "Tanimbili"}, "mvn": {"english_name": "Minaveha"}, "kpi": {"english_name": "Kofei"}, "zpm": {"english_name": "Zapotec, Mixtepec"}, "oj": {"english_name": "Ojibwa"}, "kct": {"english_name": "Kaian"}, "kmj": {"english_name": "Kumarbhag Paharia"}, "phw": {"english_name": "Phangduwali"}, "ksg": {"english_name": "Kusaghe"}, "ki": {"english_name": "Kikuyu"}, "ica": {"english_name": "Ede Ica"}, "hmt": {"english_name": "Hamtai"}, "lmh": {"english_name": "Lambichhong"}, "brh": {"english_name": "Brahui"}, "zkn": {"english_name": "Kanan"}, "vmb": {"english_name": "Barbaram"}, "khu": {"english_name": "Nkhumbi"}, "yso": {"english_name": "Nisi (China)"}, "dhd": {"english_name": "Dhundari"}, "kch": {"english_name": "Vono"}, "sir": {"english_name": "Siri"}, "sxg": {"english_name": "Shixing"}, "sjl": {"english_name": "Sajalong"}, "mqw": {"english_name": "Murupi"}, "jbi": {"english_name": "Badjiri"}, "rwm": {"english_name": "Amba (Uganda)"}, "tla": {"english_name": "Tepehuan, Southwestern"}, "kxa": {"english_name": "Kairiru"}, "cag": {"english_name": "Nivaclé"}, "dng": {"english_name": "Dungan"}, "oty": {"english_name": "Tamil, Old"}, "agf": {"english_name": "Arguni"}, "isr": {"english_name": "Israeli Sign Language"}, "mym": {"english_name": "Me'en"}, "ptn": {"english_name": "Patani"}, "ztp": {"english_name": "Zapotec, Loxicha"}, "mxh": {"english_name": "Mvuba"}, "dal": {"english_name": "Dahalo"}, "xkp": {"english_name": "Kabatei"}, "sgc": {"english_name": "Kipsigis"}, "mav": {"english_name": "Sateré-Mawé"}, "qux": {"english_name": "Quechua, Yauyos"}, "suv": {"english_name": "Puroik"}, "ssr": {"english_name": "Swiss-French Sign Language"}, "pho": {"english_name": "Phunoi"}, "ojs": {"english_name": "Ojibwa, Severn"}, "mif": {"english_name": "Mofu-Gudur"}, "xoc": {"english_name": "O'chi'chi'"}, "byr": {"english_name": "Baruya"}, "phv": {"english_name": "Pahlavani"}, "bko": {"english_name": "Kwa'"}, "bwc": {"english_name": "Bwile"}, "xhu": {"english_name": "Hurrian"}, "kcn": {"english_name": "Nubi"}, "hhy": {"english_name": "Hoyahoya"}, "pqm": {"english_name": "Malecite-Passamaquoddy"}, "tgn": {"english_name": "Tandaganon"}, "pha": {"english_name": "Pa-Hng"}, "kqs": {"english_name": "Kissi, Northern"}, "fuu": {"english_name": "Furu"}, "scq": {"english_name": "Sa'och"}, "doa": {"english_name": "Dom"}, "klx": {"english_name": "Koluwawa"}, "mvv": {"english_name": "Murut, Tagal"}, "muu": {"english_name": "Yaaku"}, "nin": {"english_name": "Ninzo"}, "bzt": {"english_name": "Brithenig"}, "lnn": {"english_name": "Lorediakarkar"}, "urv": {"english_name": "Uruava"}, "pwg": {"english_name": "Gapapaiwa"}, "kab": {"english_name": "Kabyle"}, "gbi": {"english_name": "Galela"}, "buc": {"english_name": "Bushi"}, "nty": {"english_name": "Mantsi"}, "lio": {"english_name": "Liki"}, "nyb": {"english_name": "Nyangbo"}, "wrr": {"english_name": "Wardaman"}, "qxc": {"english_name": "Quechua, Chincha"}, "akg": {"english_name": "Anakalangu"}, "mgt": {"english_name": "Mongol"}, "zmz": {"english_name": "Mbandja"}, "ijj": {"english_name": "Ede Ije"}, "lbg": {"english_name": "Laopang"}, "kmr": {"english_name": "Kurdish, Northern"}, "wbe": {"english_name": "Waritai"}, "cof": {"english_name": "Colorado"}, "lrn": {"english_name": "Lorang"}, "xhv": {"english_name": "Khua"}, "ayk": {"english_name": "Akuku"}, "ktt": {"english_name": "Ketum"}, "mxj": {"english_name": "Miju-Mishmi"}, "kke": {"english_name": "Kakabe"}, "irx": {"english_name": "Kamberau"}, "pev": {"english_name": "Pémono"}, "zmu": {"english_name": "Muruwari"}, "aem": {"english_name": "Arem"}, "ndf": {"english_name": "Nadruvian"}, "bxs": {"english_name": "Busam"}, "chf": {"english_name": "Chontal, Tabasco"}, "myc": {"english_name": "Mayeka"}, "rak": {"english_name": "Tulu-Bohuai"}, "tja": {"english_name": "Tajuasohn"}, "aqz": {"english_name": "Akuntsu"}, "myb": {"english_name": "Mbay"}, "chj": {"english_name": "Chinantec, Ojitlán"}, "nbs": {"english_name": "Namibian Sign Language"}, "jkp": {"english_name": "Karen, Paku"}, "nst": {"english_name": "Naga, Tase"}, "khs": {"english_name": "Kasua"}, "hji": {"english_name": "Haji"}, "jqr": {"english_name": "Jaqaru"}, "wie": {"english_name": "Wik-Epa"}, "zag": {"english_name": "Zaghawa"}, "nuo": {"english_name": "Nguôn"}, "kxf": {"english_name": "Karen, Manumanaw"}, "cic": {"english_name": "Chickasaw"}, "swc": {"english_name": "Swahili, Congo"}, "mcp": {"english_name": "Makaa"}, "tlg": {"english_name": "Tofanma"}, "ogc": {"english_name": "Ogbah"}, "tk": {"english_name": "Turkmen"}, "xkk": {"english_name": "Kaco'"}, "nko": {"english_name": "Nkonya"}, "klp": {"english_name": "Kamasa"}, "roe": {"english_name": "Ronji"}, "smd": {"english_name": "Sama"}, "iba": {"english_name": "Iban"}, "bqb": {"english_name": "Bagusa"}, "kiy": {"english_name": "Kirikiri"}, "skn": {"english_name": "Subanon, Kolibugan"}, "abc": {"english_name": "Ayta, Ambala"}, "pgn": {"english_name": "Paelignian"}, "buk": {"english_name": "Bugawac"}, "csl": {"english_name": "Chinese Sign Language"}, "zao": {"english_name": "Zapotec, Ozolotepec"}, "iti": {"english_name": "Itneg, Inlaod"}, "aey": {"english_name": "Amele"}, "yin": {"english_name": "Yinchia"}, "hnh": {"english_name": "//Ani"}, "anx": {"english_name": "Andra-Hus"}, "sxb": {"english_name": "Suba"}, "lke": {"english_name": "Kenyi"}, "ztx": {"english_name": "Zapotec, Zaachila"}, "kwc": {"english_name": "Likwala"}, "klc": {"english_name": "Kolbila"}, "riu": {"english_name": "Riung"}, "kmb": {"english_name": "Kimbundu"}, "xep": {"english_name": "Epi-Olmec"}, "agb": {"english_name": "Legbo"}, "sax": {"english_name": "Sa"}, "vav": {"english_name": "Varli"}, "xcl": {"english_name": "Armenian, Classical"}, "ecr": {"english_name": "Eteocretan"}, "xml": {"english_name": "Malaysian Sign Language"}, "tor": {"english_name": "Banda, Togbo-Vara"}, "ljx": {"english_name": "Yuru"}, "lmc": {"english_name": "Limilngan"}, "aub": {"english_name": "Alugu"}, "nqq": {"english_name": "Naga, Kyan-Karyaw"}, "oui": {"english_name": "Uighur, Old"}, "apj": {"english_name": "Apache, Jicarilla"}, "ngz": {"english_name": "Ngungwel"}, "tbx": {"english_name": "Kapin"}, "apo": {"english_name": "Ambul"}, "ima": {"english_name": "Malasar, Mala"}, "mpx": {"english_name": "Misima-Panaeati"}, "ppn": {"english_name": "Papapana"}, "bpu": {"english_name": "Bongu"}, "kbt": {"english_name": "Abadi"}, "lcd": {"english_name": "Lola"}, "rbp": {"english_name": "Barababaraba"}, "met": {"english_name": "Mato"}, "yat": {"english_name": "Yambeta"}, "scw": {"english_name": "Sha"}, "ets": {"english_name": "Yekhee"}, "zxx": {"english_name": "No linguistic content"}, "woi": {"english_name": "Kamang"}, "gjm": {"english_name": "Gunditjmara"}, "bzs": {"english_name": "Brazilian Sign Language"}, "azg": {"english_name": "Amuzgo, San Pedro Amuzgos"}, "bvb": {"english_name": "Bube"}, "tuf": {"english_name": "Tunebo, Central"}, "kml": {"english_name": "Kalinga, Tanudan"}, "kjm": {"english_name": "Kháng"}, "eko": {"english_name": "Koti"}, "tkw": {"english_name": "Teanu"}, "bqc": {"english_name": "Boko (Benin)"}, "osx": {"english_name": "Saxon, Old"}, "mul": {"english_name": "Multiple languages"}, "tkz": {"english_name": "Takua"}, "kcd": {"english_name": "Kanum, Ngkâlmpw"}, "pbp": {"english_name": "Badyara"}, "ncm": {"english_name": "Nambo"}, "bgb": {"english_name": "Bobongko"}, "mwc": {"english_name": "Are"}, "mza": {"english_name": "Mixtec, Santa María Zacatepec"}, "bkd": {"english_name": "Binukid"}, "lec": {"english_name": "Leco"}, "plp": {"english_name": "Palpa"}, "ndk": {"english_name": "Ndaka"}, "lts": {"english_name": "Tachoni"}, "pnt": {"english_name": "Pontic"}, "tpg": {"english_name": "Kula"}, "pnl": {"english_name": "Paleni"}, "jac": {"english_name": "Popti'"}, "hmh": {"english_name": "Hmong, Southwestern Huishui"}, "bsk": {"english_name": "Burushaski"}, "bpl": {"english_name": "Broome Pearling Lugger Pidgin"}, "boe": {"english_name": "Mundabli"}, "wet": {"english_name": "Perai"}, "aas": {"english_name": "Aasáx"}, "cbk": {"english_name": "Chavacano"}, "teo": {"english_name": "Teso"}, "eka": {"english_name": "Ekajuk"}, "mcq": {"english_name": "Ese"}, "bxe": {"english_name": "Birale"}, "ngi": {"english_name": "Ngizim"}, "nnz": {"english_name": "Nda'nda'"}, "gne": {"english_name": "Ganang"}, "bpp": {"english_name": "Kaure"}, "kbg": {"english_name": "Khamba"}, "xki": {"english_name": "Kenyan Sign Language"}, "oht": {"english_name": "Hittite, Old"}, "mr": {"name": "मराठी", "english_name": "Marathi"}, "lhs": {"english_name": "Mlahsö"}, "pdi": {"english_name": "Pa Di"}, "kyb": {"english_name": "Kalinga, Butbut"}, "zmi": {"english_name": "Negeri Sembilan Malay"}, "mut": {"english_name": "Muria, Western"}, "vep": {"english_name": "Veps"}, "sqh": {"english_name": "Shau"}, "mee": {"english_name": "Mengen"}, "gjn": {"english_name": "Gonja"}, "cwd": {"english_name": "Cree, Woods"}, "kkr": {"english_name": "Kir-Balar"}, "luu": {"english_name": "Lumba-Yakkha"}, "bru": {"english_name": "Bru, Eastern"}, "xgu": {"english_name": "Unggumi"}, "kmv": {"english_name": "Creole French, Karipúna"}, "ylg": {"english_name": "Yelogu"}, "nlz": {"english_name": "Nalögo"}, "gdc": {"english_name": "Gugu Badhun"}, "bsy": {"english_name": "Bisaya, Sabah"}, "bg": {"name": "Български", "english_name": "Bulgarian"}, "hps": {"english_name": "Hawai'i Pidgin Sign Language"}, "pnj": {"english_name": "Pinjarup"}, "zmr": {"english_name": "Maranunggu"}, "krn": {"english_name": "Sapo"}, "dgr": {"english_name": "Dogrib"}, "mtj": {"english_name": "Moskona"}, "chq": {"english_name": "Chinantec, Quiotepec"}, "ikp": {"english_name": "Ikpeshi"}, "ybl": {"english_name": "Yukuben"}, "kwm": {"english_name": "Kwambi"}, "ttb": {"english_name": "Gaa"}, "buh": {"english_name": "Bunu, Younuo"}, "wal": {"english_name": "Wolaytta"}, "shw": {"english_name": "Shwai"}, "ygl": {"english_name": "Yangum Gel"}, "hno": {"english_name": "Hindko, Northern"}, "zmv": {"english_name": "Mbariman-Gudhinma"}, "lue": {"english_name": "Luvale"}, "bvl": {"english_name": "Bolivian Sign Language"}, "anq": {"english_name": "Jarawa (India)"}, "wnb": {"english_name": "Wanambre"}, "cop": {"english_name": "Coptic"}, "ybk": {"english_name": "Bokha"}, "saw": {"english_name": "Sawi"}, "mt": {"name": "Malti", "english_name": "Maltese"}, "nkx": {"english_name": "Nkoroo"}, "kgr": {"english_name": "Abun"}, "nbq": {"english_name": "Nggem"}, "qxh": {"english_name": "Quechua, Panao Huánuco"}, "ztu": {"english_name": "Zapotec, Güilá"}, "llh": {"english_name": "Lamu"}, "nam": {"english_name": "Ngan'gityemerri"}, "yhd": {"english_name": "Arabic, Judeo-Iraqi"}, "nua": {"english_name": "Yuanga"}, "ses": {"english_name": "Songhai, Koyraboro Senni"}, "jjr": {"english_name": "Bankal"}, "siq": {"english_name": "Sonia"}, "aip": {"english_name": "Burumakok"}, "asu": {"english_name": "Asurini, Tocantins"}, "drt": {"english_name": "Drents"}, "paw": {"english_name": "Pawnee"}, "ksn": {"english_name": "Kasiguranin"}, "eyo": {"english_name": "Keiyo"}, "oc": {"name": "Occitan (aprèp 1500)", "english_name": "Occitan (post 1500)"}, "how": {"english_name": "Honi"}, "oac": {"english_name": "Oroch"}, "wdu": {"english_name": "Wadjigu"}, "niw": {"english_name": "Nimo"}, "sbk": {"english_name": "Safwa"}, "smc": {"english_name": "Som"}, "tbs": {"english_name": "Tanguat"}, "rkh": {"english_name": "Rakahanga-Manihiki"}, "cbw": {"english_name": "Kinabalian"}, "yao": {"english_name": "Yao"}, "wed": {"english_name": "Wedau"}, "wha": {"english_name": "Manusela"}, "lbf": {"english_name": "Tinani"}, "bbl": {"english_name": "Bats"}, "kye": {"english_name": "Krache"}, "nmv": {"english_name": "Ngamini"}, "crt": {"english_name": "Chorote, Iyojwa'ja"}, "leh": {"english_name": "Lenje"}, "vgr": {"english_name": "Vaghri"}, "nir": {"english_name": "Nimboran"}, "vmw": {"english_name": "Makhuwa"}, "zun": {"english_name": "Zuni"}, "dit": {"english_name": "Dirari"}, "mnm": {"english_name": "Mapena"}, "cqu": {"english_name": "Quechua, Chilean"}, "kjf": {"english_name": "Khalaj"}, "boj": {"english_name": "Anjam"}, "uzs": {"english_name": "Uzbek, Southern"}, "wbr": {"english_name": "Wagdi"}, "brp": {"english_name": "Barapasi"}, "sip": {"english_name": "Sikkimese"}, "bij": {"english_name": "Vaghat-Ya-Bijim-Legeri"}, "klj": {"english_name": "Khalaj, Turkic"}, "xmb": {"english_name": "Mbonga"}, "dmm": {"english_name": "Dama"}, "wmm": {"english_name": "Maiwa (Indonesia)"}, "tol": {"english_name": "Tolowa"}, "bby": {"english_name": "Befang"}, "nbe": {"english_name": "Naga, Konyak"}, "rin": {"english_name": "Nungu"}, "kfa": {"english_name": "Kodava"}, "sdp": {"english_name": "Sherdukpen"}, "sdr": {"english_name": "Sadri, Oraon"}, "ckn": {"english_name": "Chin, Kaang"}, "pii": {"english_name": "Pini"}, "sru": {"english_name": "Suruí"}, "xok": {"english_name": "Xokleng"}, "tef": {"english_name": "Teressa"}, "xga": {"english_name": "Galatian"}, "noh": {"english_name": "Nomu"}, "kkg": {"english_name": "Kalinga, Mabaka Valley"}, "kqp": {"english_name": "Kimré"}, "gsl": {"english_name": "Gusilay"}, "wrg": {"english_name": "Warungu"}, "nlu": {"english_name": "Nchumbulu"}, "ndq": {"english_name": "Ndombe"}, "dze": {"english_name": "Djiwarli"}, "okb": {"english_name": "Okobo"}, "pko": {"english_name": "Pökoot"}, "bnf": {"english_name": "Masiwang"}, "weg": {"english_name": "Wergaia"}, "hi": {"name": "हिंदी", "english_name": "Hindi"}, "cro": {"english_name": "Crow"}, "err": {"english_name": "Erre"}, "dbm": {"english_name": "Duguri"}, "tdf": {"english_name": "Talieng"}, "vmz": {"english_name": "Mazatec, Mazatlán"}, "ktj": {"english_name": "Krumen, Plapo"}, "xog": {"english_name": "Soga"}, "yrm": {"english_name": "Yirrk-Mel"}, "alu": {"english_name": "'Are'are"}, "kxr": {"english_name": "Koro (Papua New Guinea)"}, "dem": {"english_name": "Dem"}, "tee": {"english_name": "Tepehua, Huehuetla"}, "tby": {"english_name": "Tabaru"}, "pud": {"english_name": "Punan Aput"}, "sim": {"english_name": "Mende (Papua New Guinea)"}, "afb": {"english_name": "Arabic, Gulf"}, "cdz": {"english_name": "Koda"}, "vki": {"english_name": "Ija-Zuba"}, "okn": {"english_name": "Oki-No-Erabu"}, "wya": {"english_name": "Wyandot"}, "jle": {"english_name": "Ngile"}, "nsc": {"english_name": "Nshi"}, "msn": {"english_name": "Vurës"}, "msi": {"english_name": "Malay, Sabah"}, "xta": {"english_name": "Mixtec, Alcozauca"}, "lew": {"english_name": "Kaili, Ledo"}, "dop": {"english_name": "Lukpa"}, "bog": {"english_name": "Bamako Sign Language"}, "kni": {"english_name": "Kanufi"}, "vml": {"english_name": "Malgana"}, "doo": {"english_name": "Dongo"}, "ayy": {"english_name": "Ayta, Tayabas"}, "khf": {"english_name": "Khuen"}, "nkh": {"english_name": "Naga, Khezha"}, "dmu": {"english_name": "Dubu"}, "mqa": {"english_name": "Maba (Indonesia)"}, "znk": {"english_name": "Manangkari"}, "msp": {"english_name": "Maritsauá"}, "bin": {"english_name": "Bini"}, "ja": {"name": "日本語", "english_name": "Japanese"}, "tkg": {"english_name": "Malagasy, Tesaka"}, "nov": {"english_name": "Novial"}, "lrg": {"english_name": "Laragia"}, "akx": {"english_name": "Aka-Kede"}, "yud": {"english_name": "Arabic, Judeo-Tripolitanian"}, "tth": {"english_name": "Ta'oih, Upper"}, "gww": {"english_name": "Kwini"}, "byf": {"english_name": "Bete"}, "ojp": {"english_name": "Japanese, Old"}, "sno": {"english_name": "Snohomish"}, "id": {"name": "Indonesian", "english_name": "Indonesian"}, "auj": {"english_name": "Awjilah"}, "sfe": {"english_name": "Subanen, Eastern"}, "jan": {"english_name": "Jandai"}, "yss": {"english_name": "Yessan-Mayo"}, "omw": {"english_name": "Tairora, South"}, "nup": {"english_name": "Nupe-Nupe-Tako"}, "bhp": {"english_name": "Bima"}, "vwa": {"english_name": "Awa (China)"}, "mhb": {"english_name": "Mahongwe"}, "tfo": {"english_name": "Tefaro"}, "lkh": {"english_name": "Lakha"}, "cnc": {"english_name": "Côông"}, "swp": {"english_name": "Suau"}, "kcf": {"english_name": "Ukaan"}, "kga": {"english_name": "Koyaga"}, "aeu": {"english_name": "Akeu"}, "njm": {"english_name": "Naga, Angami"}, "naj": {"english_name": "Nalu"}, "sge": {"english_name": "Segai"}, "sgs": {"english_name": "Samogitian"}, "scn": {"english_name": "Sicilian"}, "syn": {"english_name": "Senaya"}, "mbf": {"english_name": "Malay, Baba"}, "piw": {"english_name": "Pimbwe"}, "tct": {"english_name": "T'en"}, "dek": {"english_name": "Dek"}, "xnn": {"english_name": "Kankanay, Northern"}, "uta": {"english_name": "Otank"}, "laa": {"english_name": "Subanen, Southern"}, "mlq": {"english_name": "Maninkakan, Western"}, "dtu": {"english_name": "Dogon, Tebul Ure"}, "hrk": {"english_name": "Haruku"}, "koh": {"english_name": "Koyo"}, "gil": {"english_name": "Gilbertese"}, "gvc": {"english_name": "Guanano"}, "fom": {"english_name": "Foma"}, "ssu": {"english_name": "Susuami"}, "bbo": {"english_name": "Bobo Madaré, Northern"}, "gde": {"english_name": "Gude"}, "dir": {"english_name": "Dirim"}, "ktd": {"english_name": "Kokata"}, "nvo": {"english_name": "Nyokon"}, "anw": {"english_name": "Anaang"}, "ihb": {"english_name": "Iha Based Pidgin"}, "kpx": {"english_name": "Koiali, Mountain"}, "bhd": {"english_name": "Bhadrawahi"}, "pyn": {"english_name": "Poyanáwa"}, "pcm": {"english_name": "Pidgin, Nigerian"}, "asb": {"english_name": "Assiniboine"}, "adj": {"english_name": "Adioukrou"}, "cfm": {"english_name": "Chin, Falam"}, "urn": {"english_name": "Uruangnirin"}, "val": {"english_name": "Vehes"}, "vkj": {"english_name": "Kujarge"}, "usp": {"english_name": "Uspanteco"}, "ahn": {"english_name": "Àhàn"}, "cul": {"english_name": "Culina"}, "rgr": {"english_name": "Resígaro"}, "asw": {"english_name": "Australian Aborigines Sign Language"}, "mid": {"english_name": "Mandaic"}, "trw": {"english_name": "Torwali"}, "ncn": {"english_name": "Nauna"}, "ich": {"english_name": "Etkywan"}, "auw": {"english_name": "Awyi"}, "mdv": {"english_name": "Mixtec, Santa Lucía Monteverde"}, "cdm": {"english_name": "Chepang"}, "vka": {"english_name": "Kariyarra"}, "mpr": {"english_name": "Vangunu"}, "cdn": {"english_name": "Chaudangsi"}, "mta": {"english_name": "Manobo, Cotabato"}, "vun": {"english_name": "Vunjo"}, "vas": {"english_name": "Vasavi"}, "pfa": {"english_name": "Pááfang"}, "ijn": {"english_name": "Kalabari"}, "xug": {"english_name": "Kunigami"}, "bwd": {"english_name": "Bwaidoka"}, "doh": {"english_name": "Dong"}, "bob": {"english_name": "Aweer"}, "obt": {"english_name": "Breton, Old"}, "woa": {"english_name": "Tyaraity"}, "mjk": {"english_name": "Matukar"}, "kzo": {"english_name": "Kaningi"}, "tmd": {"english_name": "Haruai"}, "mvu": {"english_name": "Marfa"}, "sat": {"english_name": "Santali"}, "tvk": {"english_name": "Ambrym, Southeast"}, "dul": {"english_name": "Agta, Alabat Island"}, "bop": {"english_name": "Bonkiman"}, "jek": {"english_name": "Jeri Kuo"}, "jbw": {"english_name": "Yawijibaya"}, "bcy": {"english_name": "Bacama"}, "juw": {"english_name": "Wãpha"}, "kpl": {"english_name": "Kpala"}, "mgj": {"english_name": "Abureni"}, "ldm": {"english_name": "Landoma"}, "cot": {"english_name": "Caquinte"}, "yrw": {"english_name": "Yarawata"}, "bme": {"english_name": "Limassa"}, "mea": {"english_name": "Menka"}, "wuy": {"english_name": "Wauyai"}, "nct": {"english_name": "Naga, Chothe"}, "dnv": {"english_name": "Danu"}, "gyy": {"english_name": "Gunya"}, "rom": {"english_name": "Romany"}, "ran": {"english_name": "Riantana"}, "tob": {"english_name": "Toba"}, "krw": {"english_name": "Krahn, Western"}, "snp": {"english_name": "Siane"}, "tld": {"english_name": "Talaud"}, "pbs": {"english_name": "Pame, Central"}, "pox": {"english_name": "Polabian"}, "akl": {"english_name": "Aklanon"}, "ysc": {"english_name": "Yassic"}, "nvm": {"english_name": "Namiae"}, "koy": {"english_name": "Koyukon"}, "quw": {"english_name": "Quichua, Tena Lowland"}, "mbv": {"english_name": "Mbulungish"}, "ilv": {"english_name": "Ilue"}, "jaa": {"english_name": "Jamamadí"}, "grj": {"english_name": "Grebo, Southern"}, "ank": {"english_name": "Goemai"}, "kta": {"english_name": "Katua"}, "gea": {"english_name": "Geruma"}, "mlz": {"english_name": "Malaynon"}, "wsa": {"english_name": "Warembori"}, "aug": {"english_name": "Aguna"}, "tiu": {"english_name": "Adasen"}, "agg": {"english_name": "Angor"}, "onx": {"english_name": "Onin Based Pidgin"}, "hio": {"english_name": "Tsoa"}, "tbc": {"english_name": "Takia"}, "raj": {"english_name": "Rajasthani"}, "mds": {"english_name": "Maria (Papua New Guinea)"}, "led": {"english_name": "Lendu"}, "miy": {"english_name": "Mixtec, Ayutla"}, "kah": {"english_name": "Kara (Central African Republic)"}, "tde": {"english_name": "Dogon, Tiranige Diga"}, "oym": {"english_name": "Wayampi"}, "xdm": {"english_name": "Edomite"}, "mzp": {"english_name": "Movima"}, "pkn": {"english_name": "Pakanha"}, "ibl": {"english_name": "Ibaloi"}, "otm": {"english_name": "Otomi, Eastern Highland"}, "zmw": {"english_name": "Mbo (Democratic Republic of Congo)"}, "mpc": {"english_name": "Mangarayi"}, "bbw": {"english_name": "Baba"}, "kyc": {"english_name": "Kyaka"}, "gnb": {"english_name": "Gangte"}, "cad": {"english_name": "Caddo"}, "bsf": {"english_name": "Bauchi"}, "nay": {"english_name": "Narrinyeri"}, "peh": {"english_name": "Bonan"}, "mmq": {"english_name": "Musak"}, "kzl": {"english_name": "Kayeli"}, "bab": {"english_name": "Bainouk-Gunyuño"}, "alk": {"english_name": "Alak"}, "bei": {"english_name": "Bekati'"}, "veo": {"english_name": "Ventureño"}, "igl": {"english_name": "Igala"}, "xts": {"english_name": "Mixtec, Sindihui"}, "mxx": {"english_name": "Mahou"}, "myz": {"english_name": "Mandaic, Classical"}, "luy": {"english_name": "Luyia"}, "pmm": {"english_name": "Pomo"}, "jko": {"english_name": "Kubo"}, "lbq": {"english_name": "Wampar"}, "ung": {"english_name": "Ngarinyin"}, "wib": {"english_name": "Toussian, Southern"}, "mmb": {"english_name": "Momina"}, "geb": {"english_name": "Kire"}, "tju": {"english_name": "Tjurruru"}, "ae": {"english_name": "Avestan"}, "ybj": {"english_name": "Hasha"}, "tyi": {"english_name": "Teke-Tsaayi"}, "rka": {"english_name": "Kraol"}, "ifm": {"english_name": "Teke-Fuumu"}, "xin": {"english_name": "Xinca"}, "beg": {"english_name": "Belait"}, "snc": {"english_name": "Sinaugoro"}, "hns": {"english_name": "Hindustani, Caribbean"}, "kkq": {"english_name": "Kaiku"}, "vkm": {"english_name": "Kamakan"}, "kbo": {"english_name": "Keliko"}, "bsl": {"english_name": "Basa-Gumna"}, "ulk": {"english_name": "Meriam"}, "pys": {"english_name": "Paraguayan Sign Language"}, "mhz": {"english_name": "Mor (Mor Islands)"}, "gab": {"english_name": "Gabri"}, "rmd": {"english_name": "Danish, Traveller"}, "tkt": {"english_name": "Tharu, Kathoriya"}, "lgz": {"english_name": "Ligenza"}, "tyx": {"english_name": "Teke-Tyee"}, "bpm": {"english_name": "Biyom"}, "tty": {"english_name": "Sikaritai"}, "drn": {"english_name": "Damar, West"}, "mht": {"english_name": "Mandahuaca"}, "kto": {"english_name": "Kuot"}, "kjp": {"english_name": "Karen, Pwo Eastern"}, "xuo": {"english_name": "Kuo"}, "lhn": {"english_name": "Lahanan"}, "tbz": {"english_name": "Ditammari"}, "zua": {"english_name": "Zeem"}, "kfu": {"english_name": "Katkari"}, "jur": {"english_name": "Jurúna"}, "afi": {"english_name": "Akrukay"}, "gej": {"english_name": "Gen"}, "sxo": {"english_name": "Sorothaptic"}, "thk": {"english_name": "Tharaka"}, "bkt": {"english_name": "Boloki"}, "sdm": {"english_name": "Semandang"}, "hoz": {"english_name": "Hozo"}, "opo": {"english_name": "Opao"}, "zmx": {"english_name": "Bomitaba"}, "ufi": {"english_name": "Ufim"}, "zdj": {"english_name": "Comorian, Ngazidja"}, "trf": {"english_name": "Creole English, Trinidadian"}, "myv": {"english_name": "Erzya"}, "adx": {"english_name": "Tibetan, Amdo"}, "ite": {"english_name": "Itene"}, "nal": {"english_name": "Nalik"}, "plc": {"english_name": "Palawano, Central"}, "siw": {"english_name": "Siwai"}, "tay": {"english_name": "Atayal"}, "wru": {"english_name": "Waru"}, "afp": {"english_name": "Tapei"}, "bga": {"english_name": "Gwamhi-Wuri"}, "emx": {"english_name": "Erromintxela"}, "hlt": {"english_name": "Chin, Matu"}, "tev": {"english_name": "Teor"}, "daw": {"english_name": "Davawenyo"}, "hae": {"english_name": "Oromo, Eastern"}, "zay": {"english_name": "Zayse-Zergulla"}, "xma": {"english_name": "Mushungulu"}, "nyc": {"english_name": "Nyanga-li"}, "pti": {"english_name": "Pintiini"}, "mky": {"english_name": "Makian, East"}, "tdx": {"english_name": "Malagasy, Tandroy-Mahafaly"}, "cvn": {"english_name": "Chinantec, Valle Nacional"}, "gga": {"english_name": "Gao"}, "bvx": {"english_name": "Dibole"}, "nhx": {"english_name": "Nahuatl, Isthmus-Mecayapan"}, "zpw": {"english_name": "Zapotec, Zaniza"}, "hdn": {"english_name": "Haida, Northern"}, "wfg": {"english_name": "Yafi"}, "pl": {"name": "polski", "english_name": "Polish"}, "bpk": {"english_name": "Orowe"}, "kqw": {"english_name": "Kandas"}, "kdt": {"english_name": "Kuy"}, "urp": {"english_name": "Uru-Pa-In"}, "vrt": {"english_name": "Burmbar"}, "txn": {"english_name": "Tarangan, West"}, "zaf": {"english_name": "Zapotec, Ayoquesco"}, "mdn": {"english_name": "Mbati"}, "kxj": {"english_name": "Kulfa"}, "pi": {"english_name": "Pali"}, "bgk": {"english_name": "Bit"}, "ssp": {"english_name": "Spanish Sign Language"}, "ada": {"english_name": "Adangme"}, "cna": {"english_name": "Changthang"}, "gcd": {"english_name": "Ganggalida"}, "xuj": {"english_name": "Kurumba, Jennu"}, "kbu": {"english_name": "Kabutra"}, "bji": {"english_name": "Burji"}, "xpj": {"english_name": "Mpalitjanh"}, "sps": {"english_name": "Saposa"}, "lhu": {"english_name": "Lahu"}, "yub": {"english_name": "Yugambal"}, "xgr": {"english_name": "Garza"}, "ste": {"english_name": "Liana-Seti"}, "mlf": {"english_name": "Mal"}, "sdj": {"english_name": "Suundi"}, "nsv": {"english_name": "Nisu, Southwestern"}, "ked": {"english_name": "Kerewe"}, "wga": {"english_name": "Wagaya"}, "jbt": {"english_name": "Jabutí"}, "swo": {"english_name": "Shanenawa"}, "poo": {"english_name": "Pomo, Central"}, "muq": {"english_name": "Miao, Eastern Xiangxi"}, "whk": {"english_name": "Kenyah, Wahau"}, "brf": {"english_name": "Bera"}, "llb": {"english_name": "Lolo"}, "nyk": {"english_name": "Nyaneka"}, "llm": {"english_name": "Lasalimu"}, "kyw": {"english_name": "Kudmali"}, "aum": {"english_name": "Asu (Nigeria)"}, "tgw": {"english_name": "Senoufo, Tagwana"}, "lmx": {"english_name": "Laimbue"}, "trt": {"english_name": "Tunggare"}, "swl": {"english_name": "Swedish Sign Language"}, "mhm": {"english_name": "Makhuwa-Moniga"}, "mbl": {"english_name": "Maxakalí"}, "sut": {"english_name": "Subtiaba"}, "kyl": {"english_name": "Kalapuya"}, "qu": {"english_name": "Quechua"}, "thm": {"english_name": "Aheu"}, "cpx": {"english_name": "Chinese, Pu-Xian"}, "doy": {"english_name": "Dompo"}, "pdo": {"english_name": "Padoe"}, "twf": {"english_name": "Tiwa, Northern"}, "peo": {"english_name": "Persian, Old (ca. 600-400 B.C.)"}, "ijs": {"english_name": "Ijo, Southeast"}, "tca": {"english_name": "Ticuna"}, "mwl": {"english_name": "Mirandese"}, "sis": {"english_name": "Siuslaw"}, "sdf": {"english_name": "Sarli"}, "jal": {"english_name": "Yalahatan"}, "lil": {"english_name": "Lillooet"}, "pbc": {"english_name": "Patamona"}, "ugy": {"english_name": "Uruguayan Sign Language"}, "klm": {"english_name": "Migum"}, "xww": {"english_name": "Wemba Wemba"}, "atp": {"english_name": "Atta, Pudtol"}, "bof": {"english_name": "Bolon"}, "mtv": {"english_name": "Asaro'o"}, "iry": {"english_name": "Iraya"}, "kzi": {"english_name": "Kelabit"}, "tzx": {"english_name": "Tabriak"}, "bna": {"english_name": "Bonerate"}, "alt": {"english_name": "Altai, Southern"}, "lom": {"english_name": "Loma (Liberia)"}, "mme": {"english_name": "Mae"}, "bjw": {"english_name": "Bakwé"}, "drb": {"english_name": "Dair"}, "pua": {"english_name": "Purepecha, Western Highland"}, "lur": {"english_name": "Laura"}, "bse": {"english_name": "Wushi"}, "wnw": {"english_name": "Wintu"}, "xom": {"english_name": "Komo (Sudan)"}, "tbu": {"english_name": "Tubar"}, "zir": {"english_name": "Ziriya"}, "qua": {"english_name": "Quapaw"}, "kdm": {"english_name": "Kagoma"}, "ccd": {"english_name": "Creole, Cafundo"}, "awc": {"english_name": "Cicipu"}, "wap": {"english_name": "Wapishana"}, "ajn": {"english_name": "Andajin"}, "amv": {"english_name": "Ambelau"}, "yul": {"english_name": "Yulu"}, "mmu": {"english_name": "Mmaala"}, "adg": {"english_name": "Andegerebinha"}, "bez": {"english_name": "Bena (Tanzania)"}, "thw": {"english_name": "Thudam"}, "qya": {"english_name": "Quenya"}, "xyt": {"english_name": "Mayi-Thakurti"}, "lcq": {"english_name": "Luhu"}, "naa": {"english_name": "Namla"}, "xmh": {"english_name": "Kuku-Muminh"}, "brj": {"english_name": "Bieria"}, "glj": {"english_name": "Gula Iro"}, "shc": {"english_name": "Sonde"}, "ygr": {"english_name": "Yagaria"}, "ugb": {"english_name": "Kuku-Ugbanh"}, "hoy": {"english_name": "Holiya"}, "tci": {"english_name": "Wára"}, "ynu": {"english_name": "Yahuna"}, "ske": {"english_name": "Seke (Vanuatu)"}, "ymn": {"english_name": "Yamna"}, "kiq": {"english_name": "Kosadle"}, "nri": {"english_name": "Naga, Chokri"}, "zgb": {"english_name": "Zhuang, Guibei"}, "une": {"english_name": "Uneme"}, "kwy": {"english_name": "Kongo, San Salvador"}, "pgi": {"english_name": "Pagi"}, "nck": {"english_name": "Nakara"}, "pnc": {"english_name": "Pannei"}, "kak": {"english_name": "Kallahan, Kayapa"}, "tyj": {"english_name": "Tai Do"}, "irr": {"english_name": "Ir"}, "aux": {"english_name": "Aurá"}, "sgp": {"english_name": "Singpho"}, "bph": {"english_name": "Botlikh"}, "sty": {"english_name": "Tatar, Siberian"}, "bmh": {"english_name": "Kein"}, "alz": {"english_name": "Alur"}, "dun": {"english_name": "Dusun Deyah"}, "oma": {"english_name": "Omaha-Ponca"}, "umu": {"english_name": "Munsee"}, "caj": {"english_name": "Chané"}, "phu": {"english_name": "Phuan"}, "bac": {"english_name": "Badui"}, "tnm": {"english_name": "Tabla"}, "plh": {"english_name": "Paulohi"}, "clj": {"english_name": "Chin, Laitu"}, "slt": {"english_name": "Sila"}, "fuq": {"english_name": "Fulfulde, Central-Eastern Niger"}, "opa": {"english_name": "Okpamheri"}, "ywa": {"english_name": "Kalou"}, "pmy": {"english_name": "Malay, Papuan"}, "xwj": {"english_name": "Wajuk"}, "zro": {"english_name": "Záparo"}, "vo": {"english_name": "Volapük"}, "obu": {"english_name": "Obulom"}, "hoe": {"english_name": "Horom"}, "kpm": {"english_name": "Koho"}, "toc": {"english_name": "Totonac, Coyutla"}, "gbn": {"english_name": "Mo'da"}, "ssz": {"english_name": "Sengseng"}, "abr": {"english_name": "Abron"}, "xer": {"english_name": "Xerénte"}, "gaa": {"english_name": "Ga"}, "srt": {"english_name": "Sauri"}, "haf": {"english_name": "Haiphong Sign Language"}, "ver": {"english_name": "Mom Jango"}, "apy": {"english_name": "Apalaí"}, "hmp": {"english_name": "Hmong, Northern Mashan"}, "xpm": {"english_name": "Pumpokol"}, "bfa": {"english_name": "Bari"}, "gox": {"english_name": "Gobu"}, "msz": {"english_name": "Momare"}, "kpf": {"english_name": "Komba"}, "vnk": {"english_name": "Vano"}, "xcr": {"english_name": "Carian"}, "kvl": {"english_name": "Kayaw"}, "tys": {"english_name": "Tày Sa Pa"}, "dju": {"english_name": "Kapriman"}, "ldh": {"english_name": "Lamja-Dengsa-Tola"}, "bch": {"english_name": "Bariai"}, "mrn": {"english_name": "Cheke Holo"}, "nms": {"english_name": "Letemboi"}, "vai": {"english_name": "Vai"}, "cwg": {"english_name": "Chewong"}, "bhe": {"english_name": "Bhaya"}, "ksc": {"english_name": "Kalinga, Southern"}, "nrn": {"english_name": "Norn"}, "xuu": {"english_name": "Kxoe"}, "api": {"english_name": "Apiaká"}, "siv": {"english_name": "Sumariup"}, "and": {"english_name": "Ansus"}, "kcu": {"english_name": "Kami (Tanzania)"}, "mfm": {"english_name": "Marghi South"}, "aor": {"english_name": "Aore"}, "mdq": {"english_name": "Mbole"}, "wno": {"english_name": "Wano"}, "guw": {"english_name": "Gun"}, "bir": {"english_name": "Bisorio"}, "hac": {"english_name": "Gurani"}, "rou": {"english_name": "Runga"}, "yig": {"english_name": "Nasu, Wusa"}, "cmi": {"english_name": "Emberá-Chamí"}, "agw": {"english_name": "Kahua"}, "paf": {"english_name": "Paranawát"}, "ake": {"english_name": "Akawaio"}, "miw": {"english_name": "Akoye"}, "nse": {"english_name": "Nsenga"}, "mij": {"english_name": "Abar"}, "ert": {"english_name": "Eritai"}, "kbn": {"english_name": "Kare (Central African Republic)"}, "gsm": {"english_name": "Guatemalan Sign Language"}, "fax": {"english_name": "Fala"}, "bqh": {"english_name": "Baima"}, "cwa": {"english_name": "Kabwa"}, "xoo": {"english_name": "Xukurú"}, "tnl": {"english_name": "Lenakel"}, "guk": {"english_name": "Gumuz"}, "yer": {"english_name": "Tarok"}, "ati": {"english_name": "Attié"}, "nas": {"english_name": "Naasioi"}, "ubr": {"english_name": "Ubir"}, "bqk": {"english_name": "Banda-Mbrès"}, "mrp": {"english_name": "Morouas"}, "ksi": {"english_name": "Krisa"}, "prl": {"english_name": "Peruvian Sign Language"}, "iri": {"english_name": "Irigwe"}, "ajp": {"english_name": "Arabic, South Levantine"}, "arj": {"english_name": "Arapaso"}, "btn": {"english_name": "Ratagnon"}, "nuk": {"english_name": "Nuu-chah-nulth"}, "lo": {"english_name": "Lao"}, "gd": {"english_name": "Gaelic, Scottish"}, "hrm": {"english_name": "Miao, Horned"}, "sug": {"english_name": "Suganga"}, "ajz": {"english_name": "Karbi, Amri"}, "gbd": {"english_name": "Karadjeri"}, "hos": {"english_name": "Ho Chi Minh City Sign Language"}, "suq": {"english_name": "Suri"}, "ggt": {"english_name": "Gitua"}, "xbr": {"english_name": "Kambera"}, "cea": {"english_name": "Chehalis, Lower"}, "pek": {"english_name": "Penchal"}, "mov": {"english_name": "Mohave"}, "afg": {"english_name": "Afghan Sign Language"}, "nkn": {"english_name": "Nkangala"}, "bvt": {"english_name": "Bati (Indonesia)"}, "spm": {"english_name": "Akukem"}, "afo": {"english_name": "Eloyi"}, "gry": {"english_name": "Grebo, Barclayville"}, "dbr": {"english_name": "Dabarre"}, "ynl": {"english_name": "Yangulam"}, "kgq": {"english_name": "Kamoro"}, "kei": {"english_name": "Kei"}, "lst": {"english_name": "Trinidad and Tobago Sign Language"}, "rmn": {"english_name": "Romani, Balkan"}, "sef": {"english_name": "Senoufo, Cebaara"}, "mqt": {"english_name": "Mok"}, "tgy": {"english_name": "Togoyo"}, "gbh": {"english_name": "Gbe, Defi"}, "hks": {"english_name": "Hong Kong Sign Language"}, "bdi": {"english_name": "Burun"}, "aty": {"english_name": "Aneityum"}, "mfj": {"english_name": "Mefele"}, "btg": {"english_name": "Bété, Gagnoa"}, "mmv": {"english_name": "Miriti"}, "bay": {"english_name": "Batuley"}, "msu": {"english_name": "Musom"}, "zea": {"english_name": "Zeeuws"}, "wbm": {"english_name": "Wa"}, "kix": {"english_name": "Naga, Khiamniungan"}, "mwo": {"english_name": "Maewo, Central"}, "mte": {"english_name": "Mono (Solomon Islands)"}, "bfr": {"english_name": "Bazigar"}, "thn": {"english_name": "Thachanadan"}, "sdg": {"english_name": "Savi"}, "add": {"english_name": "Dzodinka"}, "kns": {"english_name": "Kensiu"}, "mko": {"english_name": "Mingang Doso"}, "lbb": {"english_name": "Label"}, "jit": {"english_name": "Jita"}, "bif": {"english_name": "Biafada"}, "yox": {"english_name": "Yoron"}, "gow": {"english_name": "Gorowa"}, "tgb": {"english_name": "Tobilung"}, "lbm": {"english_name": "Lodhi"}, "yad": {"english_name": "Yagua"}, "acf": {"english_name": "Creole French, Saint Lucian"}, "izh": {"english_name": "Ingrian"}, "gmh": {"english_name": "German, Middle High (ca. 1050-1500)"}, "dmd": {"english_name": "Madhi Madhi"}, "gbv": {"english_name": "Gbanu"}, "no": {"english_name": "Norwegian"}, "agq": {"english_name": "Aghem"}, "bxc": {"english_name": "Molengue"}, "tdd": {"english_name": "Tai Nüa"}, "scx": {"english_name": "Sicel"}, "dor": {"english_name": "Dori'o"}, "ysn": {"english_name": "Sani"}, "hdy": {"english_name": "Hadiyya"}, "sgw": {"english_name": "Sebat Bet Gurage"}, "mxy": {"english_name": "Mixtec, Southeastern Nochixtlán"}, "mdu": {"english_name": "Mboko"}, "psa": {"english_name": "Awyu, Asue"}, "rug": {"english_name": "Roviana"}, "kpc": {"english_name": "Curripaco"}, "mhx": {"english_name": "Maru"}, "gdf": {"english_name": "Guduf-Gava"}, "nez": {"english_name": "Nez Perce"}, "ymx": {"english_name": "Muji, Northern"}, "ngy": {"english_name": "Tibea"}, "ebk": {"english_name": "Bontok, Eastern"}, "ady": {"english_name": "Adyghe"}, "ceg": {"english_name": "Chamacoco"}, "wij": {"english_name": "Wik-Iiyanh"}, "sls": {"english_name": "Singapore Sign Language"}, "bmi": {"english_name": "Bagirmi"}, "moo": {"english_name": "Monom"}, "faa": {"english_name": "Fasu"}, "mph": {"english_name": "Maung"}, "bdj": {"english_name": "Bai"}, "khb": {"english_name": "Lü"}, "fud": {"english_name": "Futuna, East"}, "hij": {"english_name": "Hijuk"}, "ytl": {"english_name": "Tanglang"}, "mei": {"english_name": "Midob"}, "bxu": {"english_name": "Buriat, China"}, "sdb": {"english_name": "Shabak"}, "ghh": {"english_name": "Ghale, Northern"}, "kag": {"english_name": "Kajaman"}, "szw": {"english_name": "Sawai"}, "gmv": {"english_name": "Gamo"}, "ynq": {"english_name": "Yendang"}, "zsa": {"english_name": "Sarasira"}, "buz": {"english_name": "Bukwen"}, "boa": {"english_name": "Bora"}, "aln": {"english_name": "Albanian, Gheg"}, "var": {"english_name": "Huarijio"}, "zns": {"english_name": "Mangas"}, "ssj": {"english_name": "Sausi"}, "nkt": {"english_name": "Nyika (Tanzania)"}, "teb": {"english_name": "Tetete"}, "wmb": {"english_name": "Wambaya"}, "bvd": {"english_name": "Baeggu"}, "tbj": {"english_name": "Tiang"}, "yok": {"english_name": "Yokuts"}, "ior": {"english_name": "Inor"}, "mnj": {"english_name": "Munji"}, "iyx": {"english_name": "Yaka (Congo)"}, "nbc": {"english_name": "Naga, Chang"}, "ssg": {"english_name": "Seimat"}, "tou": {"english_name": "Tho"}, "aup": {"english_name": "Makayam"}, "tiq": {"english_name": "Tiéfo"}, "adf": {"english_name": "Arabic, Dhofari"}, "nyf": {"english_name": "Giryama"}, "lya": {"english_name": "Layakha"}, "lmq": {"english_name": "Lamatuka"}, "wmo": {"english_name": "Wom (Papua New Guinea)"}, "ari": {"english_name": "Arikara"}, "btt": {"english_name": "Bete-Bendi"}, "ije": {"english_name": "Biseni"}, "pww": {"english_name": "Karen, Pwo Northern"}, "weo": {"english_name": "Wemale"}, "mzu": {"english_name": "Inapang"}, "hid": {"english_name": "Hidatsa"}, "juk": {"english_name": "Wapan"}, "fqs": {"english_name": "Fas"}, "akw": {"english_name": "Akwa"}, "cog": {"english_name": "Chong"}, "zim": {"english_name": "Mesme"}, "srx": {"english_name": "Sirmauri"}, "azn": {"english_name": "Nahuatl, Western Durango"}, "cvg": {"english_name": "Chug"}, "buj": {"english_name": "Basa-Gurmana"}, "nqn": {"english_name": "Nen"}, "orc": {"english_name": "Orma"}, "hbu": {"english_name": "Habu"}, "dsh": {"english_name": "Daasanach"}, "bhi": {"english_name": "Bhilali"}, "bzl": {"english_name": "Boano (Sulawesi)"}, "yai": {"english_name": "Yagnobi"}, "nv": {"english_name": "Navajo"}, "brb": {"english_name": "Lave"}, "ogb": {"english_name": "Ogbia"}, "qxp": {"english_name": "Quechua, Puno"}, "luw": {"english_name": "Luo (Cameroon)"}, "bdh": {"english_name": "Baka (Sudan)"}, "kty": {"english_name": "Kango (Bas-Uélé District)"}, "pht": {"english_name": "Phu Thai"}, "nbr": {"english_name": "Numana-Nunku-Gbantu-Numbu"}, "mtc": {"english_name": "Munit"}, "adn": {"english_name": "Adang"}, "muj": {"english_name": "Mabire"}, "lww": {"english_name": "Lewo"}, "bze": {"english_name": "Bozo, Jenaama"}, "cnw": {"english_name": "Chin, Ngawn"}, "eky": {"english_name": "Kayah, Eastern"}, "zmm": {"english_name": "Marimanindji"}, "bzi": {"english_name": "Bisu"}, "aqg": {"english_name": "Arigidi"}, "zgm": {"english_name": "Zhuang, Minz"}, "lrr": {"english_name": "Yamphu, Southern"}, "hwc": {"english_name": "Creole English, Hawai'i"}, "ohu": {"english_name": "Hungarian, Old"}, "tbo": {"english_name": "Tawala"}, "cak": {"english_name": "Kaqchikel"}, "tux": {"english_name": "Tuxináwa"}, "sga": {"english_name": "Irish, Old (to 900)"}, "yua": {"english_name": "Yucateco"}, "idi": {"english_name": "Idi"}, "nkv": {"english_name": "Nyika (Malawi and Zambia)"}, "zsm": {"english_name": "Malay, Standard"}, "mse": {"english_name": "Musey"}, "spl": {"english_name": "Selepet"}, "mnv": {"english_name": "Rennell-Bellona"}, "kvq": {"english_name": "Karen, Geba"}, "txy": {"english_name": "Malagasy, Tanosy"}, "tcy": {"english_name": "Tulu"}, "cly": {"english_name": "Chatino, Eastern Highland"}, "qxo": {"english_name": "Quechua, Southern Conchucos Ancash"}, "bml": {"english_name": "Bomboli"}, "dbi": {"english_name": "Doka"}, "kfh": {"english_name": "Kurichiya"}, "yuf": {"english_name": "Havasupai-Walapai-Yavapai"}, "cbs": {"english_name": "Cashinahua"}, "mfx": {"english_name": "Melo"}, "kfn": {"english_name": "Kuk"}, "zwa": {"english_name": "Zay"}, "ayp": {"english_name": "Arabic, North Mesopotamian"}, "dak": {"english_name": "Dakota"}, "wnn": {"english_name": "Wunumara"}, "shi": {"english_name": "Tachelhit"}, "cnk": {"english_name": "Chin, Khumi"}, "njj": {"english_name": "Njen"}, "mqx": {"english_name": "Mamuju"}, "slg": {"english_name": "Selungai Murut"}, "bdn": {"english_name": "Baldemu"}, "ppm": {"english_name": "Papuma"}, "wab": {"english_name": "Wab"}, "aie": {"english_name": "Amara"}, "ifb": {"english_name": "Ifugao, Batad"}, "kgp": {"english_name": "Kaingang"}, "nia": {"english_name": "Nias"}, "pom": {"english_name": "Pomo, Southeastern"}, "bds": {"english_name": "Burunge"}, "eit": {"english_name": "Eitiep"}, "xel": {"english_name": "Kelo"}, "bbq": {"english_name": "Bamali"}, "rei": {"english_name": "Reli"}, "txa": {"english_name": "Tombonuo"}, "gel": {"english_name": "ut-Ma'in"}, "etc": {"english_name": "Etchemin"}, "vra": {"english_name": "Vera'a"}, "hgm": {"english_name": "Hai//om"}, "ppk": {"english_name": "Uma"}, "cid": {"english_name": "Chimariko"}, "atc": {"english_name": "Atsahuaca"}, "bza": {"english_name": "Bandi"}, "iqu": {"english_name": "Iquito"}, "umd": {"english_name": "Umbindhamu"}, "vms": {"english_name": "Moksela"}, "wrv": {"english_name": "Waruna"}, "aks": {"english_name": "Akaselem"}, "tuh": {"english_name": "Taulil"}, "kws": {"english_name": "Kwese"}, "ncc": {"english_name": "Ponam"}, "xnk": {"english_name": "Nganakarti"}, "nra": {"english_name": "Ngom"}, "umg": {"english_name": "Umbuygamu"}, "mnf": {"english_name": "Mundani"}, "wdd": {"english_name": "Wandji"}, "ynd": {"english_name": "Yandruwandha"}, "sbu": {"english_name": "Bhoti, Stod"}, "bsx": {"english_name": "Yangkam"}, "tiw": {"english_name": "Tiwi"}, "bxj": {"english_name": "Bayungu"}, "rme": {"english_name": "Angloromani"}, "sre": {"english_name": "Sara"}, "cku": {"english_name": "Koasati"}, "sbi": {"english_name": "Seti"}, "she": {"english_name": "Sheko"}, "bth": {"english_name": "Bidayuh, Biatah"}, "agx": {"english_name": "Aghul"}, "ntm": {"english_name": "Nateni"}, "igg": {"english_name": "Igana"}, "cua": {"english_name": "Cua"}, "nnt": {"english_name": "Nanticoke"}, "zkr": {"english_name": "Zakhring"}, "kuk": {"english_name": "Kepo'"}, "kbe": {"english_name": "Kanju"}, "ulm": {"english_name": "Ulumanda'"}, "kdw": {"english_name": "Koneraw"}, "mjw": {"english_name": "Karbi"}, "pa": {"name": "ਪੰਜਾਬੀ", "english_name": "Panjabi"}, "tqo": {"english_name": "Toaripi"}, "aik": {"english_name": "Ake"}, "vro": {"english_name": "Võro"}, "mez": {"english_name": "Menominee"}, "xbm": {"english_name": "Breton, Middle"}, "hhi": {"english_name": "Hoia Hoia"}, "ckz": {"english_name": "Cakchiquel-Quiché Mixed Language"}, "st": {"english_name": "Sotho, Southern"}, "zkk": {"english_name": "Karankawa"}, "agy": {"english_name": "Alta, Southern"}, "apr": {"english_name": "Arop-Lokep"}, "can": {"english_name": "Chambri"}, "ndr": {"english_name": "Ndoola"}, "mvq": {"english_name": "Moere"}, "txs": {"english_name": "Tonsea"}, "tmq": {"english_name": "Tumleo"}, "peg": {"english_name": "Pengo"}, "xkj": {"english_name": "Kajali"}, "mqm": {"english_name": "Marquesan, South"}, "tpj": {"english_name": "Tapieté"}, "nsu": {"english_name": "Nahuatl, Sierra Negra"}, "afu": {"english_name": "Awutu"}, "skg": {"english_name": "Malagasy, Sakalava"}, "gvl": {"english_name": "Gulay"}, "mil": {"english_name": "Mixtec, Peñoles"}, "cui": {"english_name": "Cuiba"}, "tjl": {"english_name": "Tai Laing"}, "mxe": {"english_name": "Mele-Fila"}, "chb": {"english_name": "Chibcha"}, "nix": {"english_name": "Hema"}, "kqo": {"english_name": "Krahn, Eastern"}, "heh": {"english_name": "Hehe"}, "jbk": {"english_name": "Barikewa"}, "ypn": {"english_name": "Phowa, Ani"}, "bm": {"english_name": "Bambara"}, "bzk": {"english_name": "Creole English, Nicaragua"}, "xal": {"english_name": "Kalmyk"}, "crg": {"english_name": "Michif"}, "bte": {"english_name": "Gamo-Ningi"}, "pln": {"english_name": "Palenquero"}, "kwf": {"english_name": "Kwara'ae"}, "mxc": {"english_name": "Manyika"}, "mhu": {"english_name": "Digaro-Mishmi"}, "caq": {"english_name": "Nicobarese, Car"}, "cow": {"english_name": "Cowlitz"}, "tma": {"english_name": "Tama (Chad)"}, "mer": {"english_name": "Meru"}, "dup": {"english_name": "Duano"}, "tik": {"english_name": "Tikar"}, "pwr": {"english_name": "Powari"}, "isk": {"english_name": "Ishkashimi"}, "asi": {"english_name": "Buruwai"}, "onr": {"english_name": "One, Northern"}, "jmd": {"english_name": "Yamdena"}, "bqt": {"english_name": "Bamukumbit"}, "kkz": {"english_name": "Kaska"}, "mmm": {"english_name": "Maii"}, "agm": {"english_name": "Angaataha"}, "gor": {"english_name": "Gorontalo"}, "mmf": {"english_name": "Mundat"}, "bxq": {"english_name": "Beele"}, "yiu": {"english_name": "Awu"}, "abt": {"english_name": "Ambulas"}, "ylu": {"english_name": "Aribwaung"}, "wlc": {"english_name": "Comorian, Mwali"}, "pib": {"english_name": "Yine"}, "csn": {"english_name": "Colombian Sign Language"}, "wsu": {"english_name": "Wasu"}, "bau": {"english_name": "Bada (Nigeria)"}, "nbv": {"english_name": "Ngamambo"}, "wss": {"english_name": "Wasa"}, "trd": {"english_name": "Turi"}, "smg": {"english_name": "Simbali"}, "khj": {"english_name": "Kuturmi"}, "gko": {"english_name": "Kok-Nar"}, "aiq": {"english_name": "Aimaq"}, "woc": {"english_name": "Wogeo"}, "dhv": {"english_name": "Dehu"}, "bya": {"english_name": "Batak"}, "gv": {"english_name": "Manx"}, "crb": {"english_name": "Carib, Island"}, "okr": {"english_name": "Kirike"}, "emu": {"english_name": "Muria, Eastern"}, "laq": {"english_name": "Qabiao"}, "raq": {"english_name": "Saam"}, "esu": {"english_name": "Yupik, Central"}, "wls": {"english_name": "Wallisian"}, "asf": {"english_name": "Australian Sign Language"}, "kap": {"english_name": "Bezhta"}, "kvy": {"english_name": "Karen, Yintale"}, "cdi": {"english_name": "Chodri"}, "bvv": {"english_name": "Baniva"}, "tnx": {"english_name": "Tanema"}, "jbr": {"english_name": "Jofotek-Bromnya"}, "tar": {"english_name": "Tarahumara, Central"}, "nul": {"english_name": "Nusa Laut"}, "nwg": {"english_name": "Ngayawung"}, "ser": {"english_name": "Serrano"}, "umi": {"english_name": "Ukit"}, "ong": {"english_name": "Olo"}, "bas": {"english_name": "Basa (Cameroon)"}, "iu": {"english_name": "Inuktitut"}, "skd": {"english_name": "Miwok, Southern Sierra"}, "mhq": {"english_name": "Mandan"}, "ril": {"english_name": "Riang (Myanmar)"}, "wai": {"english_name": "Wares"}, "mqn": {"english_name": "Moronene"}, "rmy": {"english_name": "Romani, Vlax"}, "myr": {"english_name": "Muniche"}, "bvr": {"english_name": "Burarra"}, "dum": {"english_name": "Dutch, Middle (ca. 1050-1350)"}, "ahk": {"english_name": "Akha"}, "mcm": {"english_name": "Creole Portuguese, Malaccan"}, "fag": {"english_name": "Finongan"}, "lkn": {"english_name": "Lakon"}, "bwi": {"english_name": "Baniwa"}, "kot": {"english_name": "Lagwan"}, "daq": {"english_name": "Maria, Dandami"}, "mdc": {"english_name": "Male (Papua New Guinea)"}, "yee": {"english_name": "Yimas"}, "byc": {"english_name": "Ubaghara"}, "nqg": {"english_name": "Nago, Southern"}, "qub": {"english_name": "Quechua, Huallaga Huánuco"}, "bid": {"english_name": "Bidiyo"}, "nhd": {"english_name": "Chiripá"}, "sss": {"english_name": "Sô"}, "osu": {"english_name": "One, Southern"}, "xtt": {"english_name": "Mixtec, Tacahua"}, "clm": {"english_name": "Clallam"}, "roo": {"english_name": "Rotokas"}, "wlx": {"english_name": "Wali (Ghana)"}, "zar": {"english_name": "Zapotec, Rincón"}, "wik": {"english_name": "Wikalkan"}, "jsl": {"english_name": "Japanese Sign Language"}, "kdj": {"english_name": "Karamojong"}, "tpz": {"english_name": "Tinputz"}, "gmy": {"english_name": "Greek, Mycenaean"}, "lce": {"english_name": "Loncong"}, "abe": {"english_name": "Abnaki, Western"}, "giu": {"english_name": "Mulao"}, "xwo": {"english_name": "Oirat, Written"}, "mgo": {"english_name": "Meta'"}, "blv": {"english_name": "Bolo"}, "zyb": {"english_name": "Zhuang, Yongbei"}, "hld": {"english_name": "Halang Doan"}, "sij": {"english_name": "Numbami"}, "ghr": {"english_name": "Ghera"}, "wah": {"english_name": "Watubela"}, "jim": {"english_name": "Jimi (Cameroon)"}, "dty": {"english_name": "Dotyali"}, "neh": {"english_name": "Nyenkha"}, "esq": {"english_name": "Esselen"}, "kxo": {"english_name": "Kanoé"}, "vmm": {"english_name": "Mixtec, Mitlatongo"}, "pia": {"english_name": "Pima Bajo"}, "tne": {"english_name": "Kallahan, Tinoc"}, "crl": {"english_name": "Cree, Northern East"}, "hoa": {"english_name": "Hoava"}, "wyb": {"english_name": "Wangaaybuwan-Ngiyambaa"}, "gmb": {"english_name": "Gula'alaa"}, "btc": {"english_name": "Bati (Cameroon)"}, "jyy": {"english_name": "Jaya"}, "gol": {"english_name": "Gola"}, "bow": {"english_name": "Rema"}, "mtx": {"english_name": "Mixtec, Tidaá"}, "piu": {"english_name": "Pintupi-Luritja"}, "msv": {"english_name": "Maslam"}, "udu": {"english_name": "Uduk"}, "fpe": {"english_name": "Creole English, Fernando Po"}, "lbl": {"english_name": "Bikol, Libon"}, "zrs": {"english_name": "Mairasi"}, "huc": {"english_name": "=/Hua"}, "otl": {"english_name": "Otomi, Tilapa"}, "zat": {"english_name": "Zapotec, Tabaa"}, "smu": {"english_name": "Somray"}, "luq": {"english_name": "Lucumi"}, "lbz": {"english_name": "Lardil"}, "jei": {"english_name": "Yei"}, "cjn": {"english_name": "Chenapian"}, "wem": {"english_name": "Gbe, Weme"}, "ig": {"english_name": "Igbo"}, "xir": {"english_name": "Xiriâna"}, "oku": {"english_name": "Oku"}, "xbe": {"english_name": "Bigambal"}, "arh": {"english_name": "Arhuaco"}, "hmn": {"english_name": "Hmong"}, "tml": {"english_name": "Citak, Tamnim"}, "vmh": {"english_name": "Maraghei"}, "rcf": {"english_name": "Creole French, Réunion"}, "hme": {"english_name": "Hmong, Eastern Huishui"}, "pdu": {"english_name": "Kayan"}, "zgn": {"english_name": "Zhuang, Guibian"}, "bnv": {"english_name": "Bonerif"}, "keg": {"english_name": "Tese"}, "acw": {"english_name": "Arabic, Hijazi"}, "mzb": {"english_name": "Tumzabt"}, "tpm": {"english_name": "Tampulma"}, "mjc": {"english_name": "Mixtec, San Juan Colorado"}, "hux": {"english_name": "Huitoto, Nüpode"}, "jas": {"english_name": "Javanese, New Caledonian"}, "nei": {"english_name": "Hittite, Neo-"}, "yab": {"english_name": "Yuhup"}, "rgs": {"english_name": "Roglai, Southern"}, "pwn": {"english_name": "Paiwan"}, "ndi": {"english_name": "Samba Leko"}, "kwz": {"english_name": "Kwadi"}, "gbw": {"english_name": "Gabi-Gabi"}, "maz": {"english_name": "Mazahua, Central"}, "btz": {"english_name": "Batak Alas-Kluet"}, "cry": {"english_name": "Cori"}, "za": {"english_name": "Zhuang"}, "kup": {"english_name": "Kunimaipa"}, "bux": {"english_name": "Boghom"}, "zyp": {"english_name": "Chin, Zyphe"}, "si": {"english_name": "Sinhala"}, "sbd": {"english_name": "Samo, Southern"}, "yuj": {"english_name": "Karkar-Yuri"}, "jkm": {"english_name": "Karen, Mobwa"}, "ntg": {"english_name": "Ngantangarra"}, "aqp": {"english_name": "Atakapa"}, "kqd": {"english_name": "Koy Sanjaq Surat"}, "mvx": {"english_name": "Meoswar"}, "haj": {"english_name": "Hajong"}, "bum": {"english_name": "Bulu (Cameroon)"}, "zqe": {"english_name": "Zhuang, Qiubei"}, "onj": {"english_name": "Onjob"}, "sms": {"english_name": "Sami, Skolt"}, "puy": {"english_name": "Purisimeño"}, "ptr": {"english_name": "Piamatsina"}, "enc": {"english_name": "En"}, "gbs": {"english_name": "Gbe, Gbesi"}, "cga": {"english_name": "Changriwa"}, "myj": {"english_name": "Mangayat"}, "mca": {"english_name": "Maca"}, "lle": {"english_name": "Lele (Papua New Guinea)"}, "cek": {"english_name": "Chin, Eastern Khumi"}, "drr": {"english_name": "Dororo"}, "xxb": {"english_name": "Boro (Ghana)"}, "iqw": {"english_name": "Ikwo"}, "nlg": {"english_name": "Gela"}, "nhe": {"english_name": "Nahuatl, Eastern Huasteca"}, "ddi": {"english_name": "Goodenough, West"}, "sox": {"english_name": "Swo"}, "mju": {"english_name": "Manna-Dora"}, "be": {"english_name": "Belarusian"}, "jup": {"english_name": "Hupdë"}, "lsh": {"english_name": "Lish"}, "uby": {"english_name": "Ubykh"}, "otk": {"english_name": "Turkish, Old"}, "nmd": {"english_name": "Ndumu"}, "prf": {"english_name": "Paranan"}, "nti": {"english_name": "Natioro"}, "geh": {"english_name": "German, Hutterite"}, "ynn": {"english_name": "Yana"}, "mam": {"english_name": "Mam"}, "ldj": {"english_name": "Lemoro"}, "dhw": {"english_name": "Dhanwar (Nepal)"}, "rog": {"english_name": "Roglai, Northern"}, "os": {"english_name": "Ossetian"}, "bjt": {"english_name": "Balanta-Ganja"}, "kko": {"english_name": "Karko"}, "nur": {"english_name": "Nukuria"}, "rms": {"english_name": "Romanian Sign Language"}, "xcv": {"english_name": "Chuvantsy"}, "mtf": {"english_name": "Murik (Papua New Guinea)"}, "tsv": {"english_name": "Tsogo"}, "mdf": {"english_name": "Moksha"}, "ms": {"name": "Malay (macrolanguage)", "english_name": "Malay (macrolanguage)"}, "koz": {"english_name": "Korak"}, "spy": {"english_name": "Sabaot"}, "kox": {"english_name": "Coxima"}, "zms": {"english_name": "Mbesa"}, "dgi": {"english_name": "Dagara, Northern"}, "khr": {"english_name": "Kharia"}, "ukp": {"english_name": "Ukpe-Bayobiri"}, "pse": {"english_name": "Malay, Central"}, "pip": {"english_name": "Pero"}, "fln": {"english_name": "Flinders Island"}, "nmf": {"english_name": "Naga, Tangkhul (India)"}, "buq": {"english_name": "Brem"}, "sxl": {"english_name": "Selian"}, "gbl": {"english_name": "Gamit"}, "tku": {"english_name": "Totonac, Upper Necaxa"}, "mqr": {"english_name": "Mander"}, "nyy": {"english_name": "Nyakyusa-Ngonde"}, "pmq": {"english_name": "Pame, Northern"}, "cuo": {"english_name": "Cumanagoto"}, "jbn": {"english_name": "Nafusi"}, "dmx": {"english_name": "Dema"}, "yzk": {"english_name": "Zokhuo"}, "bbt": {"english_name": "Mburku"}, "suc": {"english_name": "Subanon, Western"}, "imi": {"english_name": "Anamgura"}, "aho": {"english_name": "Ahom"}, "ipo": {"english_name": "Ipiko"}, "nr": {"english_name": "Ndebele, South"}, "ore": {"english_name": "Orejón"}, "pps": {"english_name": "Popoloca, San Luís Temalacayuca"}, "gdl": {"english_name": "Dirasha"}, "kzw": {"english_name": "Karirí-Xocó"}, "mve": {"english_name": "Marwari (Pakistan)"}, "njz": {"english_name": "Nyishi"}, "lkl": {"english_name": "Laeko-Libuat"}, "mks": {"english_name": "Mixtec, Silacayoapan"}, "mlp": {"english_name": "Bargam"}, "pru": {"english_name": "Puragi"}, "peb": {"english_name": "Pomo, Eastern"}, "tnz": {"english_name": "Tonga (Thailand)"}, "huk": {"english_name": "Hulung"}, "zrp": {"english_name": "Zarphatic"}, "olm": {"english_name": "Oloma"}, "tjn": {"english_name": "Tonjon"}, "dji": {"english_name": "Djinang"}, "nsm": {"english_name": "Naga, Sumi"}, "aig": {"english_name": "Creole English, Antigua and Barbuda"}, "sgr": {"english_name": "Sangisari"}, "spk": {"english_name": "Sengo"}, "jru": {"english_name": "Japrería"}, "mrc": {"english_name": "Maricopa"}, "klt": {"english_name": "Nukna"}, "pnx": {"english_name": "Phong-Kniang"}, "ntr": {"english_name": "Delo"}, "tkq": {"english_name": "Tee"}, "kfw": {"english_name": "Naga, Kharam"}, "iyo": {"english_name": "Mesaka"}, "gkp": {"english_name": "Kpelle, Guinea"}, "wom": {"english_name": "Wom (Nigeria)"}, "esk": {"english_name": "Inupiatun, Northwest Alaska"}, "dyd": {"english_name": "Dyugun"}, "gno": {"english_name": "Gondi, Northern"}, "kyn": {"english_name": "Binukidnon, Northern"}, "lif": {"english_name": "Limbu"}, "soe": {"english_name": "Songomeno"}, "ifa": {"english_name": "Ifugao, Amganad"}, "pee": {"english_name": "Taje"}, "hmj": {"english_name": "Ge"}, "okj": {"english_name": "Oko-Juwoi"}, "xld": {"english_name": "Lydian"}, "snv": {"english_name": "Sa'ban"}, "npg": {"english_name": "Naga, Ponyo-Gongwang"}, "bmj": {"english_name": "Bote-Majhi"}, "bwa": {"english_name": "Bwatoo"}, "swb": {"english_name": "Comorian, Maore"}, "bxb": {"english_name": "Bor, Belanda"}, "bhj": {"english_name": "Bahing"}, "oda": {"english_name": "Odut"}, "puu": {"english_name": "Punu"}, "pcb": {"english_name": "Pear"}, "kvg": {"english_name": "Kuni-Boazi"}, "nhf": {"english_name": "Nhuwala"}, "bqn": {"english_name": "Bulgarian Sign Language"}, "kss": {"english_name": "Kisi, Southern"}, "ajg": {"english_name": "Aja (Benin)"}, "bui": {"english_name": "Bongili"}, "djo": {"english_name": "Jangkang"}, "tbg": {"english_name": "Tairora, North"}, "str": {"english_name": "Salish, Straits"}, "bzp": {"english_name": "Kemberano"}, "nkp": {"english_name": "Niuatoputapu"}, "hmg": {"english_name": "Hmong, Southwestern Guiyang"}, "zmc": {"english_name": "Margany"}, "cca": {"english_name": "Cauca"}, "sqn": {"english_name": "Susquehannock"}, "pif": {"english_name": "Pingelapese"}, "jaq": {"english_name": "Yaqay"}, "abb": {"english_name": "Bankon"}, "pam": {"english_name": "Pampanga"}, "gap": {"english_name": "Gal"}, "mcj": {"english_name": "Mvanip"}, "lsr": {"english_name": "Aruop"}, "sti": {"english_name": "Stieng, Bulo"}, "lpa": {"english_name": "Lelepa"}, "agu": {"english_name": "Aguacateco"}, "zlm": {"english_name": "Malay (individual language)"}, "apz": {"english_name": "Safeyoka"}, "plz": {"english_name": "Paluan"}, "god": {"english_name": "Godié"}, "bwq": {"english_name": "Bobo Madaré, Southern"}, "dnj": {"english_name": "Dan"}, "mis": {"english_name": "Uncoded languages"}, "std": {"english_name": "Sentinel"}, "szd": {"english_name": "Seru"}, "ofu": {"english_name": "Efutop"}, "mk": {"name": "Македонски", "english_name": "Macedonian"}, "bgt": {"english_name": "Bughotu"}, "aby": {"english_name": "Aneme Wake"}, "lmv": {"english_name": "Lomaiviti"}, "maq": {"english_name": "Mazatec, Chiquihuitlán"}, "gbf": {"english_name": "Gaikundi"}, "mkk": {"english_name": "Byep"}, "atr": {"english_name": "Waimiri-Atroari"}, "gum": {"english_name": "Guambiano"}, "ngt": {"english_name": "Ngeq"}, "svc": {"english_name": "Creole English, Vincentian"}, "clu": {"english_name": "Caluyanun"}, "pog": {"english_name": "Potiguára"}, "bar": {"english_name": "Bavarian"}, "snb": {"english_name": "Sebuyau"}, "yar": {"english_name": "Yabarana"}, "ckt": {"english_name": "Chukot"}, "nfl": {"english_name": "Ayiwo"}, "mcf": {"english_name": "Matsés"}, "zaq": {"english_name": "Zapotec, Aloápam"}, "utp": {"english_name": "Amba (Solomon Islands)"}, "bmz": {"english_name": "Baramu"}, "ceb": {"english_name": "Cebuano"}, "vkt": {"english_name": "Malay, Tenggarong Kutai"}, "tpp": {"english_name": "Tepehua, Pisaflores"}, "tsd": {"english_name": "Tsakonian"}, "nrg": {"english_name": "Narango"}, "sol": {"english_name": "Solos"}, "jax": {"english_name": "Malay, Jambi"}, "oar": {"english_name": "Aramaic, Old (up to 700 BCE)"}, "grw": {"english_name": "Gweda"}, "cup": {"english_name": "Cupeño"}, "ngo": {"english_name": "Ngoni"}, "kmn": {"english_name": "Awtuw"}, "spo": {"english_name": "Spokane"}, "onk": {"english_name": "One, Kabore"}, "hui": {"english_name": "Huli"}, "ndz": {"english_name": "Ndogo"}, "dnr": {"english_name": "Danaru"}, "lbi": {"english_name": "La'bi"}, "lup": {"english_name": "Lumbu"}, "weu": {"english_name": "Chin, Rawngtu"}, "cpa": {"english_name": "Chinantec, Palantla"}, "hus": {"english_name": "Huastec"}, "kpk": {"english_name": "Kpan"}, "mfi": {"english_name": "Wandala"}, "yre": {"english_name": "Yaouré"}, "ala": {"english_name": "Alago"}, "dda": {"english_name": "Dadi Dadi"}, "psi": {"english_name": "Pashayi, Southeast"}, "kr": {"english_name": "Kanuri"}, "fip": {"english_name": "Fipa"}, "zhw": {"english_name": "Zhoa"}, "xyy": {"english_name": "Yorta Yorta"}, "ddg": {"english_name": "Fataluku"}, "hke": {"english_name": "Hunde"}, "kvx": {"english_name": "Koli, Parkari"}, "nuj": {"english_name": "Nyole"}, "saz": {"english_name": "Saurashtra"}, "ttz": {"english_name": "Tsum"}, "oca": {"english_name": "Ocaina"}, "lkr": {"english_name": "Päri"}, "ntp": {"english_name": "Tepehuan, Northern"}, "uam": {"english_name": "Uamué"}, "kev": {"english_name": "Kanikkaran"}, "tii": {"english_name": "Tiene"}, "bqq": {"english_name": "Biritai"}, "fut": {"english_name": "Futuna-Aniwa"}, "dgu": {"english_name": "Degaru"}, "co": {"english_name": "Corsican"}, "ku": {"english_name": "Kurdish"}, "krx": {"english_name": "Karon"}, "mwm": {"english_name": "Sar"}, "mrz": {"english_name": "Marind"}, "xul": {"english_name": "Ngunawal"}, "xtz": {"english_name": "Tasmanian"}, "srg": {"english_name": "Sulod"}, "enr": {"english_name": "Emumu"}, "xpr": {"english_name": "Parthian"}, "lb": {"english_name": "Luxembourgish"}, "szv": {"english_name": "Isu (Fako Division)"}, "hol": {"english_name": "Holu"}, "dsi": {"english_name": "Disa"}, "nhn": {"english_name": "Nahuatl, Central"}, "kfs": {"english_name": "Bilaspuri"}, "lv": {"name": "Latviešu", "english_name": "Latvian"}, "cum": {"english_name": "Cumeral"}, "emg": {"english_name": "Meohang, Eastern"}, "trr": {"english_name": "Taushiro"}, "tim": {"english_name": "Timbe"}, "zph": {"english_name": "Zapotec, Totomachapan"}, "kpd": {"english_name": "Koba"}, "ddj": {"english_name": "Jaru"}, "dde": {"english_name": "Doondo"}, "gis": {"english_name": "Giziga, North"}, "igs": {"english_name": "Interglossa"}, "mab": {"english_name": "Mixtec, Yutanduchi"}, "dif": {"english_name": "Dieri"}, "gtu": {"english_name": "Aghu-Tharnggala"}, "tpr": {"english_name": "Tuparí"}, "mhp": {"english_name": "Malay, Balinese"}, "par": {"english_name": "Panamint"}, "bmv": {"english_name": "Bum"}, "wlk": {"english_name": "Wailaki"}, "sdo": {"english_name": "Bidayuh, Bukar-Sadung"}, "zoh": {"english_name": "Zoque, Chimalapa"}, "xai": {"english_name": "Kaimbé"}, "cma": {"english_name": "Maa"}, "stj": {"english_name": "Samo, Matya"}, "agn": {"english_name": "Agutaynen"}, "esi": {"english_name": "Inupiatun, North Alaskan"}, "zpi": {"english_name": "Zapotec, Santa María Quiegolani"}, "kop": {"english_name": "Waube"}, "nsy": {"english_name": "Nasal"}, "phl": {"english_name": "Phalura"}, "tkl": {"english_name": "Tokelau"}, "kxm": {"english_name": "Khmer, Northern"}, "yyz": {"english_name": "Ayizi"}, "amk": {"english_name": "Ambai"}, "trj": {"english_name": "Toram"}, "yyr": {"english_name": "Yir Yoront"}, "twq": {"english_name": "Tasawaq"}, "bhs": {"english_name": "Buwal"}, "chg": {"english_name": "Chagatai"}, "cr": {"english_name": "Cree"}, "lkj": {"english_name": "Remun"}, "kyv": {"english_name": "Kayort"}, "nbi": {"english_name": "Naga, Mao"}, "mvd": {"english_name": "Mamboru"}, "vmy": {"english_name": "Mazatec, Ayautla"}, "bkk": {"english_name": "Brokskat"}, "kjg": {"english_name": "Khmu"}, "csa": {"english_name": "Chinantec, Chiltepec"}, "puq": {"english_name": "Puquina"}, "hss": {"english_name": "Harsusi"}, "csj": {"english_name": "Chin, Songlai"}, "ukl": {"english_name": "Ukrainian Sign Language"}, "wac": {"english_name": "Wasco-Wishram"}, "dge": {"english_name": "Degenan"}, "nyr": {"english_name": "Nyiha (Malawi)"}, "tjw": {"english_name": "Djabwurrung"}, "ikt": {"english_name": "Inuinnaqtun"}, "dic": {"english_name": "Dida, Lakota"}, "bzr": {"english_name": "Biri"}, "wiu": {"english_name": "Wiru"}, "tgs": {"english_name": "Nume"}, "crd": {"english_name": "Coeur d'Alene"}, "zpe": {"english_name": "Zapotec, Petapa"}, "ypz": {"english_name": "Phuza"}, "enw": {"english_name": "Enwan (Akwa Ibom State)"}, "sew": {"english_name": "Sewa Bay"}, "mbt": {"english_name": "Manobo, Matigsalug"}, "toy": {"english_name": "Topoiyo"}, "wat": {"english_name": "Kaninuwa"}, "tcs": {"english_name": "Creole, Torres Strait"}, "asx": {"english_name": "Muratayak"}, "lji": {"english_name": "Laiyolo"}, "kmw": {"english_name": "Komo (Democratic Republic of Congo)"}, "gss": {"english_name": "Greek Sign Language"}, "pcc": {"english_name": "Bouyei"}, "org": {"english_name": "Oring"}, "npo": {"english_name": "Naga, Pochuri"}, "vls": {"english_name": "Vlaams"}, "nrp": {"english_name": "Picene, North"}, "nab": {"english_name": "Nambikuára, Southern"}, "nlx": {"english_name": "Nahali"}, "mto": {"english_name": "Mixe, Totontepec"}, "kre": {"english_name": "Panará"}, "bmk": {"english_name": "Ghayavi"}, "xod": {"english_name": "Kokoda"}, "emm": {"english_name": "Mamulique"}, "arx": {"english_name": "Aruá (Rodonia State)"}, "tnb": {"english_name": "Tunebo, Western"}, "ekg": {"english_name": "Ekari"}, "ved": {"english_name": "Veddah"}, "kth": {"english_name": "Karanga"}, "xtn": {"english_name": "Mixtec, Northern Tlaxiaco"}, "byv": {"english_name": "Medumba"}, "pbe": {"english_name": "Popoloca, Mezontla"}, "wms": {"english_name": "Wambon"}, "ycl": {"english_name": "Lolopo"}, "uuu": {"english_name": "U"}, "nih": {"english_name": "Nyiha (Tanzania)"}, "nao": {"english_name": "Naaba"}, "dmw": {"english_name": "Mudburra"}, "seh": {"english_name": "Sena"}, "jhs": {"english_name": "Jhankot Sign Language"}, "shy": {"english_name": "Tachawit"}, "ga": {"name": "Gaeilge", "english_name": "Irish"}, "xxm": {"english_name": "Minkin"}, "kub": {"english_name": "Kutep"}, "snh": {"english_name": "Shinabo"}, "xln": {"english_name": "Alanic"}, "vmx": {"english_name": "Mixtec, Tamazola"}, "xms": {"english_name": "Moroccan Sign Language"}, "tun": {"english_name": "Tunica"}, "zkd": {"english_name": "Kadu"}, "pwb": {"english_name": "Panawa"}, "ctz": {"english_name": "Chatino, Zacatepec"}, "moe": {"english_name": "Montagnais"}, "tnw": {"english_name": "Tonsawang"}, "jvn": {"english_name": "Javanese, Caribbean"}, "wmn": {"english_name": "Waamwang"}, "tll": {"english_name": "Tetela"}, "as": {"english_name": "Assamese"}, "tzm": {"english_name": "Tamazight, Central Atlas"}, "tgt": {"english_name": "Tagbanwa, Central"}, "bff": {"english_name": "Bofi"}, "ia": {"english_name": "Interlingua (International Auxiliary Language Association)"}, "bge": {"english_name": "Bauria"}, "aib": {"english_name": "Ainu (China)"}, "agi": {"english_name": "Agariya"}, "ats": {"english_name": "Gros Ventre"}, "szn": {"english_name": "Sula"}, "lni": {"english_name": "Daantanai'"}, "abn": {"english_name": "Abua"}, "bmf": {"english_name": "Bom"}, "bup": {"english_name": "Busoa"}, "xtg": {"english_name": "Gaulish, Transalpine"}, "na": {"english_name": "Nauru"}, "acr": {"english_name": "Achi"}, "kqm": {"english_name": "Khisa"}, "mwb": {"english_name": "Juwal"}, "thy": {"english_name": "Tha"}, "ihp": {"english_name": "Iha"}, "nku": {"english_name": "Kulango, Bouna"}, "yah": {"english_name": "Yazgulyam"}, "nsi": {"english_name": "Nigerian Sign Language"}, "pnw": {"english_name": "Panytyima"}, "kpv": {"english_name": "Komi-Zyrian"}, "wan": {"english_name": "Wan"}, "dhs": {"english_name": "Dhaiso"}, "yna": {"english_name": "Aluo"}, "enu": {"english_name": "Enu"}, "xpg": {"english_name": "Phrygian"}, "mlv": {"english_name": "Motlav"}, "nrx": {"english_name": "Ngurmbur"}, "mqp": {"english_name": "Manipa"}, "avb": {"english_name": "Avau"}, "mem": {"english_name": "Mangala"}, "akv": {"english_name": "Akhvakh"}, "ehu": {"english_name": "Ehueun"}, "tmo": {"english_name": "Temoq"}, "gji": {"english_name": "Geji"}, "nue": {"english_name": "Ngundu"}, "txg": {"english_name": "Tangut"}, "ruo": {"english_name": "Romanian, Istro"}, "emw": {"english_name": "Emplawas"}, "wmi": {"english_name": "Wamin"}, "sdk": {"english_name": "Sos Kundi"}, "nli": {"english_name": "Grangali"}, "qvl": {"english_name": "Quechua, Cajatambo North Lima"}, "nes": {"english_name": "Kinnauri, Bhoti"}, "ctc": {"english_name": "Chetco"}, "buo": {"english_name": "Terei"}, "nsn": {"english_name": "Nehan"}, "uis": {"english_name": "Uisai"}, "bjr": {"english_name": "Binumarien"}, "lna": {"english_name": "Langbashe"}, "vsi": {"english_name": "Moldova Sign Language"}, "xni": {"english_name": "Ngarigu"}, "sld": {"english_name": "Sissala"}, "kai": {"english_name": "Karekare"}, "jge": {"english_name": "Judeo-Georgian"}, "kcl": {"english_name": "Kela (Papua New Guinea)"}, "bsm": {"english_name": "Busami"}, "zpo": {"english_name": "Zapotec, Amatlán"}, "gud": {"english_name": "Dida, Yocoboué"}, "dni": {"english_name": "Dani, Lower Grand Valley"}, "cnu": {"english_name": "Chenoua"}, "prk": {"english_name": "Parauk"}, "wrp": {"english_name": "Waropen"}, "nij": {"english_name": "Ngaju"}, "gce": {"english_name": "Galice"}, "akr": {"english_name": "Araki"}, "prm": {"english_name": "Kibiri"}, "abz": {"english_name": "Abui"}, "cpc": {"english_name": "Ajyíninka Apurucayali"}, "goo": {"english_name": "Gone Dau"}, "bfh": {"english_name": "Blafe"}, "woo": {"english_name": "Manombai"}, "trz": {"english_name": "Torá"}, "drc": {"english_name": "Minderico"}, "is": {"name": "Íslenska", "english_name": "Icelandic"}, "zen": {"english_name": "Zenaga"}, "hop": {"english_name": "Hopi"}, "gcn": {"english_name": "Gaina"}, "rm": {"english_name": "Romansh"}, "shr": {"english_name": "Shi"}, "pcg": {"english_name": "Paniya"}, "ktm": {"english_name": "Kurti"}, "rnn": {"english_name": "Roon"}, "nrk": {"english_name": "Ngarla"}, "ure": {"english_name": "Uru"}, "xil": {"english_name": "Illyrian"}, "ket": {"english_name": "Ket"}, "dik": {"english_name": "Dinka, Southwestern"}, "tnv": {"english_name": "Tangchangya"}, "eth": {"english_name": "Ethiopian Sign Language"}, "aix": {"english_name": "Aighon"}, "ruz": {"english_name": "Ruma"}, "yng": {"english_name": "Yango"}, "dva": {"english_name": "Duau"}, "aph": {"english_name": "Athpariya"}, "udm": {"english_name": "Udmurt"}, "nik": {"english_name": "Nicobarese, Southern"}, "svr": {"english_name": "Savara"}, "guz": {"english_name": "Gusii"}, "uhn": {"english_name": "Damal"}, "avt": {"english_name": "Au"}, "tbn": {"english_name": "Tunebo, Barro Negro"}, "sdc": {"english_name": "Sardinian, Sassarese"}, "tlf": {"english_name": "Telefol"}, "nzz": {"english_name": "Dogon, Nanga Dama"}, "byx": {"english_name": "Qaqet"}, "dmg": {"english_name": "Kinabatangan, Upper"}, "xkf": {"english_name": "Khengkha"}, "qud": {"english_name": "Quichua, Calderón Highland"}, "trh": {"english_name": "Turaka"}, "mhl": {"english_name": "Mauwake"}, "dix": {"english_name": "Dixon Reef"}, "skc": {"english_name": "Ma Manda"}, "nwo": {"english_name": "Nauo"}, "kiv": {"english_name": "Kimbu"}, "ast": {"name": "Asturianu", "english_name": "Asturian"}, "acy": {"english_name": "Arabic, Cypriot"}, "bra": {"english_name": "Braj"}, "nn": {"name": "Norwegian Nynorsk", "english_name": "Norwegian Nynorsk"}, "lip": {"english_name": "Sekpele"}, "nfr": {"english_name": "Nafaanra"}, "cst": {"english_name": "Ohlone, Northern"}, "skq": {"english_name": "Sininkere"}, "goz": {"english_name": "Gozarkhani"}, "cay": {"english_name": "Cayuga"}, "wes": {"english_name": "Pidgin, Cameroon"}, "stq": {"english_name": "Saterfriesisch"}, "alj": {"english_name": "Alangan"}, "ano": {"english_name": "Andoque"}, "bdz": {"english_name": "Badeshi"}, "bzy": {"english_name": "Obanliku"}, "try": {"english_name": "Turung"}, "dks": {"english_name": "Dinka, Southeastern"}, "dot": {"english_name": "Dass"}, "bzz": {"english_name": "Evant"}, "orz": {"english_name": "Ormu"}, "ngm": {"english_name": "Ngatik Men's Creole"}, "dhx": {"english_name": "Dhungaloo"}, "ywu": {"english_name": "Nasu, Wumeng"}, "bxo": {"english_name": "Barikanchi"}, "avn": {"english_name": "Avatime"}, "tg": {"english_name": "Tajik"}, "kkw": {"english_name": "Teke-Kukuya"}, "efa": {"english_name": "Efai"}, "czh": {"english_name": "Chinese, Huizhou"}, "ten": {"english_name": "Tama (Colombia)"}, "gwg": {"english_name": "Moo"}, "ngq": {"english_name": "Ngurimi"}, "prc": {"english_name": "Parachi"}, "xas": {"english_name": "Kamas"}, "bxk": {"english_name": "Bukusu"}, "gke": {"english_name": "Ndai"}, "xwe": {"english_name": "Gbe, Xwela"}, "lmd": {"english_name": "Lumun"}, "naq": {"english_name": "Nama (Namibia)"}, "ttw": {"english_name": "Long Wat"}, "mpy": {"english_name": "Mapia"}, "ml": {"english_name": "Malayalam"}, "kvu": {"english_name": "Karen, Yinbaw"}, "gdb": {"english_name": "Gadaba, Pottangi Ollar"}, "bsp": {"english_name": "Baga Sitemu"}, "kfe": {"english_name": "Kota (India)"}, "urc": {"english_name": "Urningangg"}, "btr": {"english_name": "Baetora"}, "tua": {"english_name": "Wiarumus"}, "byb": {"english_name": "Bikya"}, "cou": {"english_name": "Wamey"}, "tga": {"english_name": "Sagalla"}, "dln": {"english_name": "Darlong"}, "fal": {"english_name": "Fali, South"}, "lih": {"english_name": "Lihir"}, "pri": {"english_name": "Paicî"}, "khx": {"english_name": "Kanu"}, "kbx": {"english_name": "Ap Ma"}, "yme": {"english_name": "Yameo"}, "guq": {"english_name": "Aché"}, "bxf": {"english_name": "Bilur"}, "hue": {"english_name": "Huave, San Francisco Del Mar"}, "mh": {"english_name": "Marshallese"}, "thq": {"english_name": "Tharu, Kochila"}, "dpp": {"english_name": "Papar"}, "tda": {"english_name": "Tagdal"}, "tms": {"english_name": "Tima"}, "bgx": {"english_name": "Turkish, Balkan Gagauz"}, "stm": {"english_name": "Setaman"}, "mnl": {"english_name": "Tiale"}, "act": {"english_name": "Achterhoeks"}, "kqj": {"english_name": "Koromira"}, "ayg": {"english_name": "Ginyanga"}, "gib": {"english_name": "Gibanawa"}, "two": {"english_name": "Tswapong"}, "liu": {"english_name": "Logorik"}, "xvs": {"english_name": "Vestinian"}, "wrh": {"english_name": "Wiradhuri"}, "isg": {"english_name": "Irish Sign Language"}, "ebg": {"english_name": "Ebughu"}, "nng": {"english_name": "Naga, Maring"}, "gzi": {"english_name": "Gazi"}, "kkf": {"english_name": "Monpa, Kalaktang"}, "sa": {"english_name": "Sanskrit"}, "abp": {"english_name": "Ayta, Abellen"}, "tkd": {"english_name": "Tukudede"}, "buu": {"english_name": "Budu"}, "nhq": {"english_name": "Nahuatl, Huaxcaleca"}, "ckl": {"english_name": "Cibak"}, "ise": {"english_name": "Italian Sign Language"}, "coo": {"english_name": "Comox"}, "kmp": {"english_name": "Gimme"}, "sdt": {"english_name": "Shuadit"}, "nzs": {"english_name": "New Zealand Sign Language"}, "gnn": {"english_name": "Gumatj"}, "nbb": {"english_name": "Ndoe"}, "kfi": {"english_name": "Kurumba, Kannada"}, "szc": {"english_name": "Semaq Beri"}, "knc": {"english_name": "Kanuri, Central"}, "liy": {"english_name": "Banda-Bambari"}, "mfr": {"english_name": "Marithiel"}, "dax": {"english_name": "Dayi"}, "oyb": {"english_name": "Oy"}, "btd": {"english_name": "Batak Dairi"}, "bwr": {"english_name": "Bura-Pabir"}, "zpg": {"english_name": "Zapotec, Guevea De Humboldt"}, "dru": {"english_name": "Rukai"}, "wyr": {"english_name": "Wayoró"}, "prn": {"english_name": "Prasuni"}, "dac": {"english_name": "Dambi"}, "mxg": {"english_name": "Mbangala"}, "lno": {"english_name": "Lango (Sudan)"}, "agd": {"english_name": "Agarabi"}, "lkt": {"english_name": "Lakota"}, "ngs": {"english_name": "Gvoko"}, "rif": {"english_name": "Tarifit"}, "bhv": {"english_name": "Bahau"}, "noj": {"english_name": "Nonuya"}, "obl": {"english_name": "Oblo"}, "bwy": {"english_name": "Bwamu, Cwi"}, "dob": {"english_name": "Dobu"}, "srm": {"english_name": "Saramaccan"}, "bkj": {"english_name": "Pande"}, "ors": {"english_name": "Orang Seletar"}, "mdb": {"english_name": "Morigi"}, "arr": {"english_name": "Karo (Brazil)"}, "urf": {"english_name": "Uradhi"}, "xau": {"english_name": "Kauwera"}, "thd": {"english_name": "Thayore"}, "sli": {"english_name": "Silesian, Lower"}, "xve": {"english_name": "Venetic"}, "nyw": {"english_name": "Nyaw"}, "nnq": {"english_name": "Ngindo"}, "gdi": {"english_name": "Gundi"}, "dyy": {"english_name": "Dyaabugay"}, "bbu": {"english_name": "Kulung (Nigeria)"}, "eri": {"english_name": "Ogea"}, "ccc": {"english_name": "Chamicuro"}, "tbh": {"english_name": "Thurawal"}, "sww": {"english_name": "Sowa"}, "sju": {"english_name": "Sami, Ume"}, "bys": {"english_name": "Burak"}, "now": {"english_name": "Nyambo"}, "dto": {"english_name": "Dogon, Tommo So"}, "ky": {"english_name": "Kirghiz"}, "fj": {"english_name": "Fijian"}, "mip": {"english_name": "Mixtec, Apasco-Apoala"}, "nch": {"english_name": "Nahuatl, Central Huasteca"}, "ont": {"english_name": "Ontenu"}, "rir": {"english_name": "Ribun"}, "daj": {"english_name": "Daju, Dar Fur"}, "sgy": {"english_name": "Sanglechi"}, "bxg": {"english_name": "Bangala"}, "lgn": {"english_name": "Opuuo"}, "yln": {"english_name": "Buyang, Langnian"}, "jih": {"english_name": "sTodsde"}, "kv": {"english_name": "Komi"}, "yxg": {"english_name": "Yagara"}, "lus": {"english_name": "Lushai"}, "xmr": {"english_name": "Meroitic"}, "de": {"name": "Deutsch", "english_name": "German"}, "jma": {"english_name": "Dima"}, "liw": {"english_name": "Col"}, "byt": {"english_name": "Berti"}, "toj": {"english_name": "Tojolabal"}, "bng": {"english_name": "Benga"}, "yha": {"english_name": "Buyang, Baha"}, "trb": {"english_name": "Terebu"}, "ntw": {"english_name": "Nottoway"}, "wow": {"english_name": "Wawonii"}, "nuz": {"english_name": "Nahuatl, Tlamacazapa"}, "zgr": {"english_name": "Magori"}, "yva": {"english_name": "Yawa"}, "tig": {"name": "ትግረ", "english_name": "Tigre"}, "dbd": {"english_name": "Dadiya"}, "kid": {"english_name": "Koshin"}, "apt": {"english_name": "Apatani"}, "rnd": {"english_name": "Ruund"}, "als": {"english_name": "Albanian, Tosk"}, "kog": {"english_name": "Cogui"}, "duy": {"english_name": "Agta, Dicamay"}, "dny": {"english_name": "Dení"}, "crh": {"name": "Tatar, Crimean", "english_name": "Tatar, Crimean"}, "ign": {"english_name": "Ignaciano"}, "lix": {"english_name": "Liabuku"}, "pkc": {"english_name": "Paekche"}, "xby": {"english_name": "Batyala"}, "tsy": {"english_name": "Tebul Sign Language"}, "ayo": {"english_name": "Ayoreo"}, "uvl": {"english_name": "Lote"}, "mbb": {"english_name": "Manobo, Western Bukidnon"}, "pne": {"english_name": "Penan, Western"}, "zib": {"english_name": "Zimbabwe Sign Language"}, "tmb": {"english_name": "Katbol"}, "knn": {"english_name": "Konkani (individual language)"}, "mos": {"english_name": "Mossi"}, "tia": {"english_name": "Tamazight, Tidikelt"}, "nkd": {"english_name": "Koireng"}, "mmy": {"english_name": "Migaama"}, "whu": {"english_name": "Kayan, Wahau"}, "kes": {"english_name": "Kugbo"}, "tza": {"english_name": "Tanzanian Sign Language"}, "hmc": {"english_name": "Hmong, Central Huishui"}, "kxi": {"english_name": "Murut, Keningau"}, "npa": {"english_name": "Nar Phu"}, "xks": {"english_name": "Kumbewaha"}, "dhg": {"english_name": "Djangu"}, "xed": {"english_name": "Hdi"}, "sak": {"english_name": "Sake"}, "zos": {"english_name": "Zoque, Francisco León"}, "rng": {"english_name": "Ronga"}, "lga": {"english_name": "Lungga"}, "lhl": {"english_name": "Lohar, Lahul"}, "cia": {"english_name": "Cia-Cia"}, "daa": {"english_name": "Dangaléat"}, "rao": {"english_name": "Rao"}, "dmo": {"english_name": "Kemedzung"}, "rit": {"english_name": "Ritarungo"}, "vel": {"english_name": "Veluws"}, "mnd": {"english_name": "Mondé"}, "ymp": {"english_name": "Yamap"}, "shp": {"english_name": "Shipibo-Conibo"}, "bwk": {"english_name": "Bauwaki"}, "ibb": {"english_name": "Ibibio"}, "crv": {"english_name": "Chaura"}, "tak": {"english_name": "Tala"}, "rie": {"english_name": "Rien"}, "sbf": {"english_name": "Shabo"}, "zpy": {"english_name": "Zapotec, Mazaltepec"}, "hoo": {"english_name": "Holoholo"}, "wdg": {"english_name": "Wadaginam"}, "gvm": {"english_name": "Gurmana"}, "huo": {"english_name": "Hu"}, "knb": {"english_name": "Kalinga, Lubuagan"}, "psh": {"english_name": "Pashayi, Southwest"}, "ubi": {"english_name": "Ubi"}, "kl": {"english_name": "Kalaallisut"}, "sxm": {"english_name": "Samre"}, "toe": {"english_name": "Tomedes"}, "ilg": {"english_name": "Garig-Ilgar"}, "ruh": {"english_name": "Ruga"}, "ktz": {"english_name": "Ju/'hoan"}, "gnz": {"english_name": "Ganzi"}, "bec": {"english_name": "Iceve-Maci"}, "sqt": {"english_name": "Soqotri"}, "aci": {"english_name": "Aka-Cari"}, "pcw": {"english_name": "Pyapun"}, "nna": {"english_name": "Nyangumarta"}, "kuq": {"english_name": "Karipuna"}, "cth": {"english_name": "Chin, Thaiphum"}, "kzq": {"english_name": "Kaike"}, "rop": {"english_name": "Kriol"}, "gdm": {"english_name": "Laal"}, "psm": {"english_name": "Pauserna"}, "tea": {"english_name": "Temiar"}, "rna": {"english_name": "Runa"}, "kva": {"english_name": "Bagvalal"}, "cmg": {"english_name": "Mongolian, Classical"}, "amg": {"english_name": "Amurdak"}, "bet": {"english_name": "Béte, Guiberoua"}, "bon": {"english_name": "Bine"}, "gui": {"english_name": "Guaraní, Eastern Bolivian"}, "scb": {"english_name": "Chut"}, "ldl": {"english_name": "Kaan"}, "bzm": {"english_name": "Bolondo"}, "wuu": {"english_name": "Chinese, Wu"}, "gng": {"english_name": "Ngangam"}, "gmd": {"english_name": "Mághdì"}, "yui": {"english_name": "Yurutí"}, "liz": {"english_name": "Libinza"}, "lmi": {"english_name": "Lombi"}, "nxr": {"english_name": "Ninggerum"}, "prr": {"english_name": "Puri"}, "muz": {"english_name": "Mursi"}, "ggo": {"english_name": "Gondi, Southern"}, "nmt": {"english_name": "Namonuito"}, "ybe": {"english_name": "Yugur, West"}, "xud": {"english_name": "Umiida"}, "xsa": {"english_name": "Sabaean"}, "ogo": {"english_name": "Khana"}, "mli": {"english_name": "Malimpung"}, "mjm": {"english_name": "Medebur"}, "ldk": {"english_name": "Leelau"}, "rpn": {"english_name": "Repanbitip"}, "tpf": {"english_name": "Tarpia"}, "tan": {"english_name": "Tangale"}, "nqy": {"english_name": "Naga, Akyaung Ari"}, "frq": {"english_name": "Forak"}, "bpj": {"english_name": "Binji"}, "zaj": {"english_name": "Zaramo"}, "dlk": {"english_name": "Dahalik"}, "lcf": {"english_name": "Lubu"}, "shm": {"english_name": "Shahrudi"}, "nmw": {"english_name": "Nimoa"}, "mgy": {"english_name": "Mbunga"}, "kcy": {"english_name": "Korandje"}, "mle": {"english_name": "Manambu"}, "kru": {"english_name": "Kurukh"}, "ccp": {"english_name": "Chakma"}, "sod": {"english_name": "Songoora"}, "gdg": {"english_name": "Ga'dang"}, "see": {"english_name": "Seneca"}, "lox": {"english_name": "Loun"}, "rav": {"english_name": "Sampang"}, "kgd": {"english_name": "Kataang"}, "iki": {"english_name": "Iko"}, "akt": {"english_name": "Akolet"}, "rtw": {"english_name": "Rathawi"}, "gur": {"english_name": "Farefare"}, "zmg": {"english_name": "Marti Ke"}, "bvg": {"english_name": "Bonkeng"}, "kyy": {"english_name": "Kambaira"}, "gbx": {"english_name": "Gbe, Eastern Xwla"}, "mrv": {"english_name": "Mangareva"}, "to": {"english_name": "Tonga (Tonga Islands)"}, "pap": {"english_name": "Papiamento"}, "zuh": {"english_name": "Tokano"}, "mzm": {"english_name": "Mumuye"}, "brt": {"english_name": "Bitare"}, "pui": {"english_name": "Puinave"}, "zpu": {"english_name": "Zapotec, Yalálag"}, "hak": {"english_name": "Chinese, Hakka"}, "byk": {"english_name": "Biao"}, "ays": {"english_name": "Ayta, Sorsogon"}, "twx": {"english_name": "Tewe"}, "mcy": {"english_name": "Watut, South"}, "ilb": {"english_name": "Ila"}, "mvt": {"english_name": "Mpotovoro"}, "awx": {"english_name": "Awara"}, "coh": {"english_name": "Chonyi-Dzihana-Kauma"}, "knm": {"english_name": "Kanamarí"}, "has": {"english_name": "Haisla"}, "rhp": {"english_name": "Yahang"}, "ama": {"english_name": "Amanayé"}, "wud": {"english_name": "Wudu"}, "efi": {"english_name": "Efik"}, "wnc": {"english_name": "Wantoat"}, "bnk": {"english_name": "Bierebo"}, "zoo": {"english_name": "Zapotec, Asunción Mixtepec"}, "imo": {"english_name": "Imbongu"}, "fuy": {"english_name": "Fuyug"}, "tsk": {"english_name": "Tseku"}, "sbc": {"english_name": "Kele (Papua New Guinea)"}, "gru": {"english_name": "Kistane"}, "poc": {"english_name": "Poqomam"}, "wob": {"english_name": "Wè Northern"}, "peq": {"english_name": "Pomo, Southern"}, "smw": {"english_name": "Sumbawa"}, "mtm": {"english_name": "Mator"}, "bdy": {"english_name": "Bandjalang"}, "app": {"english_name": "Apma"}, "mqb": {"english_name": "Mbuko"}, "ksk": {"english_name": "Kansa"}, "kbq": {"english_name": "Kamano"}, "ttf": {"english_name": "Tuotomb"}, "tud": {"english_name": "Tuxá"}, "uzn": {"english_name": "Uzbek, Northern"}, "wmh": {"english_name": "Waima'a"}, "apv": {"english_name": "Alapmunte"}, "pux": {"english_name": "Puare"}, "mjq": {"english_name": "Malaryan"}, "ndc": {"english_name": "Ndau"}, "beu": {"english_name": "Blagar"}, "apd": {"english_name": "Arabic, Sudanese"}, "wky": {"english_name": "Wangkayutyuru"}, "nsz": {"english_name": "Nisenan"}, "sxn": {"english_name": "Sangir"}, "rgn": {"english_name": "Romagnol"}, "mio": {"english_name": "Mixtec, Pinotepa Nacional"}, "tuc": {"english_name": "Mutu"}, "aoa": {"english_name": "Angolar"}, "sst": {"english_name": "Sinasina"}, "mfk": {"english_name": "Mofu, North"}, "stl": {"english_name": "Stellingwerfs"}, "gam": {"english_name": "Kandawo"}, "wun": {"english_name": "Bungu"}, "kuu": {"english_name": "Kuskokwim, Upper"}, "nbu": {"english_name": "Naga, Rongmei"}, "ots": {"english_name": "Otomi, Estado de México"}, "mfq": {"english_name": "Moba"}, "fah": {"english_name": "Fali, Baissa"}, "tid": {"english_name": "Tidong"}, "byz": {"english_name": "Banaro"}, "ylm": {"english_name": "Limi"}, "aaa": {"english_name": "Ghotuo"}, "cby": {"english_name": "Carabayo"}, "rax": {"english_name": "Rang"}, "tst": {"english_name": "Songway Kiini, Tondi"}, "hz": {"english_name": "Herero"}, "kkt": {"english_name": "Koi"}, "sym": {"english_name": "Samo, Maya"}, "aag": {"english_name": "Ambrak"}, "awu": {"english_name": "Awyu, Central"}, "kbk": {"english_name": "Koiari, Grass"}, "tuo": {"english_name": "Tucano"}, "baf": {"english_name": "Nubaca"}, "aal": {"english_name": "Afade"}, "lmu": {"english_name": "Lamenu"}, "sfm": {"english_name": "Miao, Small Flowery"}, "wrn": {"english_name": "Warnang"}, "lwu": {"english_name": "Lawu"}, "eve": {"english_name": "Even"}, "lun": {"english_name": "Lunda"}, "njr": {"english_name": "Njerep"}, "ale": {"english_name": "Aleut"}, "kcr": {"english_name": "Katla"}, "ate": {"english_name": "Atemble"}, "asg": {"english_name": "Cishingini"}, "wii": {"english_name": "Minidien"}, "iwm": {"english_name": "Iwam"}, "obm": {"english_name": "Moabite"}, "tji": {"english_name": "Tujia, Northern"}, "mfn": {"english_name": "Mbembe, Cross River"}, "pwa": {"english_name": "Pawaia"}, "xth": {"english_name": "Yitha Yitha"}, "mln": {"english_name": "Malango"}, "jpr": {"english_name": "Judeo-Persian"}, "kzs": {"english_name": "Dusun, Sugut"}, "tlu": {"english_name": "Tulehu"}, "ljl": {"english_name": "Li'o"}, "flh": {"english_name": "Foau"}, "duc": {"english_name": "Duna"}, "pma": {"english_name": "Paama"}, "lbu": {"english_name": "Labu"}, "all": {"english_name": "Allar"}, "txx": {"english_name": "Tatana"}, "deg": {"english_name": "Degema"}, "xan": {"english_name": "Xamtanga"}, "lsd": {"english_name": "Lishana Deni"}, "juc": {"english_name": "Jurchen"}, "tdl": {"english_name": "Sur"}, "xsm": {"english_name": "Kasem"}, "ayh": {"english_name": "Arabic, Hadrami"}, "dso": {"english_name": "Desiya"}, "min": {"english_name": "Minangkabau"}, "tbl": {"english_name": "Tboli"}, "frd": {"english_name": "Fordata"}, "mnw": {"english_name": "Mon"}, "cpo": {"english_name": "Kpeego"}, "fia": {"english_name": "Nobiin"}, "gic": {"english_name": "Gail"}, "twg": {"english_name": "Tereweng"}, "gin": {"english_name": "Hinukh"}, "ayu": {"english_name": "Ayu"}, "cdf": {"english_name": "Chiru"}, "cts": {"english_name": "Bikol, Northern Catanduanes"}, "vrs": {"english_name": "Varisi"}, "cfa": {"english_name": "Dijim-Bwilim"}, "ggw": {"english_name": "Gogodala"}, "txh": {"english_name": "Thracian"}, "umr": {"english_name": "Umbugarla"}, "aon": {"english_name": "Arapesh, Bumbita"}, "klf": {"english_name": "Kendeje"}, "hal": {"english_name": "Halang"}, "ahh": {"english_name": "Aghu"}, "bxp": {"english_name": "Bebil"}, "nyh": {"english_name": "Nyigina"}, "lki": {"english_name": "Laki"}, "sko": {"english_name": "Seko Tengah"}, "mn": {"name": "Монгол", "english_name": "Mongolian"}, "sej": {"english_name": "Sene"}, "tt": {"name": "Татарча", "english_name": "Tatar"}, "ebu": {"english_name": "Embu"}, "cbo": {"english_name": "Izora"}, "lri": {"english_name": "Marachi"}, "sht": {"english_name": "Shasta"}, "fod": {"english_name": "Foodo"}, "lyn": {"english_name": "Luyana"}, "lyg": {"english_name": "Lyngngam"}, "kxz": {"english_name": "Kerewo"}, "myl": {"english_name": "Moma"}, "txc": {"english_name": "Tsetsaut"}, "nji": {"english_name": "Gudanji"}, "nte": {"english_name": "Nathembo"}, "rmq": {"english_name": "Caló"}, "mus": {"english_name": "Creek"}, "jku": {"english_name": "Labir"}, "bfw": {"english_name": "Bondo"}, "gek": {"english_name": "Yiwom"}, "kvk": {"english_name": "Korean Sign Language"}, "snk": {"english_name": "Soninke"}, "gve": {"english_name": "Duwet"}, "ugn": {"english_name": "Ugandan Sign Language"}, "xtr": {"english_name": "Tripuri, Early"}, "zbl": {"english_name": "Blissymbols"}, "dgw": {"english_name": "Daungwurrung"}, "hle": {"english_name": "Hlersu"}, "ero": {"english_name": "Horpa"}, "swk": {"english_name": "Sena, Malawi"}, "gl": {"name": "Galego", "english_name": "Galician"}, "tdv": {"english_name": "Toro"}, "nzu": {"english_name": "Teke-Nzikou"}, "bcb": {"english_name": "Bainouk-Samik"}, "zil": {"english_name": "Zialo"}, "yrb": {"english_name": "Yareba"}, "cht": {"english_name": "Cholón"}, "xpu": {"english_name": "Punic"}, "zal": {"english_name": "Zauzou"}, "pnr": {"english_name": "Panim"}, "bea": {"english_name": "Beaver"}, "kwo": {"english_name": "Kwomtari"}, "gae": {"english_name": "Guarequena"}, "seo": {"english_name": "Suarmin"}, "bdc": {"english_name": "Emberá-Baudó"}, "tpv": {"english_name": "Tanapag"}, "tif": {"english_name": "Tifal"}, "gza": {"english_name": "Ganza"}, "mxi": {"english_name": "Mozarabic"}, "xmc": {"english_name": "Makhuwa-Marrevone"}, "nxm": {"english_name": "Numidian"}, "crs": {"english_name": "Creole French, Seselwa"}, "kmg": {"english_name": "Kâte"}, "yuw": {"english_name": "Yau (Morobe Province)"}, "end": {"english_name": "Ende"}, "ha": {"english_name": "Hausa"}, "bfc": {"english_name": "Bai, Northern"}, "yty": {"english_name": "Yatay"}, "mnk": {"english_name": "Mandinka"}, "rmo": {"english_name": "Romani, Sinte"}, "tis": {"english_name": "Itneg, Masadiit"}, "wrm": {"english_name": "Warumungu"}, "pok": {"english_name": "Pokangá"}, "fwa": {"english_name": "Fwâi"}, "msm": {"english_name": "Manobo, Agusan"}, "scf": {"english_name": "Creole French, San Miguel"}, "xay": {"english_name": "Kayan Mahakam"}, "slr": {"english_name": "Salar"}, "chw": {"english_name": "Chuwabu"}, "gbj": {"english_name": "Gadaba, Bodo"}, "rkb": {"english_name": "Rikbaktsa"}, "kxh": {"english_name": "Karo (Ethiopia)"}, "nmn": {"english_name": "!Xóõ"}, "yaz": {"english_name": "Lokaa"}, "cks": {"english_name": "Tayo"}, "sbx": {"english_name": "Seberuang"}, "cde": {"english_name": "Chenchu"}, "bnq": {"english_name": "Bantik"}, "uan": {"english_name": "Kuan"}, "ckh": {"english_name": "Chak"}, "ers": {"english_name": "Ersu"}, "mck": {"english_name": "Mbunda"}, "maf": {"english_name": "Mafa"}, "ktc": {"english_name": "Kholok"}, "mwu": {"english_name": "Mittu"}, "pao": {"english_name": "Paiute, Northern"}, "kzu": {"english_name": "Kayupulau"}, "alo": {"english_name": "Larike-Wakasihu"}, "gux": {"english_name": "Gourmanchéma"}, "bvo": {"english_name": "Bolgo"}, "gay": {"english_name": "Gayo"}, "pbb": {"english_name": "Páez"}, "knj": {"english_name": "Kanjobal, Western"}, "dmk": {"english_name": "Domaaki"}, "xsh": {"english_name": "Shamang"}, "ltg": {"english_name": "Latgalian"}, "zaw": {"english_name": "Zapotec, Mitla"}, "bvy": {"english_name": "Baybayanon"}, "dgb": {"english_name": "Dogon, Bunoge"}, "isc": {"english_name": "Isconahua"}, "reg": {"english_name": "Kara (Tanzania)"}, "bov": {"english_name": "Tuwuli"}, "hre": {"english_name": "Hre"}, "spb": {"english_name": "Sepa (Indonesia)"}, "kyq": {"english_name": "Kenga"}, "hnu": {"english_name": "Hung"}, "blm": {"english_name": "Beli (Sudan)"}, "dnk": {"english_name": "Dengka"}, "idc": {"english_name": "Idon"}, "dam": {"english_name": "Damakawa"}, "aic": {"english_name": "Ainbai"}, "bi": {"english_name": "Bislama"}, "liq": {"english_name": "Libido"}, "sja": {"english_name": "Epena"}, "sd": {"english_name": "Sindhi"}, "tva": {"english_name": "Vaghua"}, "skm": {"english_name": "Kutong"}, "nmz": {"english_name": "Nawdm"}, "bbx": {"english_name": "Bubia"}, "dlm": {"english_name": "Dalmatian"}, "ykg": {"english_name": "Yukaghir, Northern"}, "ino": {"english_name": "Inoke-Yate"}, "apm": {"english_name": "Apache, Mescalero-Chiricahua"}, "xle": {"english_name": "Lemnian"}, "jad": {"english_name": "Jahanka"}, "tvs": {"english_name": "Taveta"}, "sgm": {"english_name": "Singa"}, "arn": {"english_name": "Mapudungun"}, "xmm": {"english_name": "Malay, Manado"}, "djn": {"english_name": "Djauan"}, "aid": {"english_name": "Alngith"}, "won": {"english_name": "Wongo"}, "nax": {"english_name": "Nakwi"}, "fwe": {"english_name": "Fwe"}, "brz": {"english_name": "Bilbil"}, "baj": {"english_name": "Barakai"}, "gvp": {"english_name": "Gavião, Pará"}, "mqq": {"english_name": "Minokok"}, "tcc": {"english_name": "Datooga"}, "bey": {"english_name": "Beli (Papua New Guinea)"}, "nzm": {"english_name": "Naga, Zeme"}, "wrx": {"english_name": "Wae Rana"}, "aod": {"english_name": "Andarum"}, "kfl": {"english_name": "Kung"}, "byp": {"english_name": "Bumaji"}, "yik": {"english_name": "Lalo, Dongshanba"}, "gqr": {"english_name": "Gor"}, "wao": {"english_name": "Wappo"}, "nnp": {"english_name": "Naga, Wancho"}, "btu": {"english_name": "Batu"}, "iru": {"english_name": "Irula"}, "dba": {"english_name": "Bangime"}, "xmz": {"english_name": "Mori Bawah"}, "mna": {"english_name": "Mbula"}, "uha": {"english_name": "Uhami"}, "rmw": {"english_name": "Romani, Welsh"}, "cin": {"english_name": "Cinta Larga"}, "lou": {"english_name": "Creole French, Louisiana"}, "orx": {"english_name": "Oro"}, "zh": {"name": "中文", "english_name": "Chinese"}, "mtr": {"english_name": "Mewari"}, "frm": {"english_name": "French, Middle (ca. 1400-1600)"}, "sq": {"english_name": "Albanian"}, "zmd": {"english_name": "Maridan"}, "jda": {"english_name": "Jad"}, "nuq": {"english_name": "Nukumanu"}, "twm": {"english_name": "Monpa, Tawang"}, "bkh": {"english_name": "Bakoko"}, "muo": {"english_name": "Nyong"}, "tdq": {"english_name": "Tita"}, "brg": {"english_name": "Baure"}, "xqa": {"english_name": "Karakhanid"}, "kiz": {"english_name": "Kisi"}, "tbf": {"english_name": "Mandara"}, "vmf": {"english_name": "Mainfränkisch"}, "mfb": {"english_name": "Bangka"}, "mkq": {"english_name": "Miwok, Bay"}, "brx": {"english_name": "Bodo (India)"}, "lgt": {"english_name": "Pahi"}, "kll": {"english_name": "Kalagan, Kagan"}, "tzo": {"english_name": "Tzotzil"}, "unn": {"english_name": "Kurnai"}, "tkm": {"english_name": "Takelma"}, "nrr": {"english_name": "Norra"}, "omo": {"english_name": "Utarmbung"}, "xae": {"english_name": "Aequian"}, "mad": {"english_name": "Madurese"}, "nkw": {"english_name": "Nkutu"}, "brq": {"english_name": "Breri"}, "zmk": {"english_name": "Mandandanyi"}, "ysg": {"english_name": "Sonaga"}, "kgg": {"english_name": "Kusunda"}, "ium": {"english_name": "Mien, Iu"}, "haw": {"english_name": "Hawaiian"}, "mku": {"english_name": "Maninka, Konyanka"}, "yki": {"english_name": "Yoke"}, "bek": {"english_name": "Bebeli"}, "mfw": {"english_name": "Mulaha"}, "tmc": {"english_name": "Tumak"}, "snz": {"english_name": "Sinsauru"}, "buy": {"english_name": "Bullom So"}, "fss": {"english_name": "Finland-Swedish Sign Language"}, "syk": {"english_name": "Sukur"}, "kcz": {"english_name": "Konongo"}, "fro": {"english_name": "French, Old (842-ca. 1400)"}, "kft": {"english_name": "Kanjari"}, "knd": {"english_name": "Konda"}, "vgt": {"english_name": "Vlaamse Gebarentaal"}, "auz": {"english_name": "Arabic, Uzbeki"}, "lwt": {"english_name": "Lewotobi"}, "tzh": {"english_name": "Tzeltal"}, "adr": {"english_name": "Adonara"}, "aox": {"english_name": "Atorada"}, "xrd": {"english_name": "Gundungurra"}, "bqy": {"english_name": "Bengkala Sign Language"}, "dav": {"english_name": "Taita"}, "tlq": {"english_name": "Tai Loi"}, "bhg": {"english_name": "Binandere"}, "nak": {"english_name": "Nakanai"}, "don": {"english_name": "Toura (Papua New Guinea)"}, "bgd": {"english_name": "Bareli, Rathwi"}, "ulu": {"english_name": "Uma' Lung"}, "abx": {"english_name": "Inabaknon"}, "mzt": {"english_name": "Mintil"}, "meh": {"english_name": "Mixtec, Southwestern Tlaxiaco"}, "ss": {"english_name": "Swati"}, "ndb": {"english_name": "Kenswei Nsei"}, "yiz": {"english_name": "Azhe"}, "spc": {"english_name": "Sapé"}, "dz": {"english_name": "Dzongkha"}, "pcf": {"english_name": "Paliyan"}, "pem": {"english_name": "Phende"}, "nop": {"english_name": "Numanggang"}, "ktq": {"english_name": "Katabaga"}, "ltu": {"english_name": "Latu"}, "itx": {"english_name": "Itik"}, "pks": {"english_name": "Pakistan Sign Language"}, "bxi": {"english_name": "Pirlatapa"}, "faz": {"english_name": "Fars, Northwestern"}, "mkg": {"english_name": "Mak (China)"}, "tce": {"english_name": "Tutchone, Southern"}, "aft": {"english_name": "Afitti"}, "knl": {"english_name": "Keninjal"}, "kli": {"english_name": "Kalumpang"}, "fuh": {"english_name": "Fulfulde, Western Niger"}, "ula": {"english_name": "Fungwa"}, "ktu": {"english_name": "Kituba (Democratic Republic of Congo)"}, "yhl": {"english_name": "Phowa, Hlepho"}, "kzt": {"english_name": "Dusun, Tambunan"}, "apk": {"english_name": "Apache, Kiowa"}, "bqs": {"english_name": "Bosngun"}, "duo": {"english_name": "Agta, Dupaninan"}, "nts": {"english_name": "Natagaimas"}, "yxa": {"english_name": "Mayawali"}, "xkc": {"english_name": "Kho'ini"}, "nwr": {"english_name": "Nawaru"}, "vnp": {"english_name": "Vunapu"}, "zsu": {"english_name": "Sukurum"}, "aed": {"english_name": "Argentine Sign Language"}, "miu": {"english_name": "Mixtec, Cacaloxtepec"}, "wni": {"english_name": "Comorian, Ndzwani"}, "css": {"english_name": "Ohlone, Southern"}, "myf": {"english_name": "Bambassi"}, "byg": {"english_name": "Baygo"}, "kzx": {"english_name": "Kamarian"}, "yaj": {"english_name": "Banda-Yangere"}, "tcp": {"english_name": "Chin, Tawr"}, "ba": {"english_name": "Bashkir"}, "ywt": {"english_name": "Lalo, Xishanba"}, "shd": {"english_name": "Kundal Shahi"}, "jee": {"english_name": "Jerung"}, "xwd": {"english_name": "Wadi Wadi"}, "gbb": {"english_name": "Kaytetye"}, "jub": {"english_name": "Wannu"}, "tw": {"english_name": "Twi"}, "thl": {"english_name": "Tharu, Dangaura"}, "cgg": {"english_name": "Chiga"}, "nks": {"english_name": "Asmat, North"}, "ddd": {"english_name": "Dongotono"}, "gia": {"english_name": "Kitja"}, "ifu": {"english_name": "Ifugao, Mayoyao"}, "kqv": {"english_name": "Okolod"}, "cnl": {"english_name": "Chinantec, Lalana"}, "cji": {"english_name": "Chamalal"}, "tkr": {"english_name": "Tsakhur"}, "tmu": {"english_name": "Iau"}, "tgj": {"english_name": "Tagin"}, "gho": {"english_name": "Ghomara"}, "lep": {"english_name": "Lepcha"}, "lbn": {"english_name": "Lamet"}, "dao": {"english_name": "Chin, Daai"}, "xrb": {"english_name": "Karaboro, Eastern"}, "phq": {"english_name": "Phana'"}, "dox": {"english_name": "Bussa"}, "och": {"english_name": "Chinese, Old"}, "lmb": {"english_name": "Merei"}, "ncu": {"english_name": "Chumburung"}, "nha": {"english_name": "Nhanda"}, "pum": {"english_name": "Puma"}, "bzv": {"english_name": "Naami"}, "tjs": {"english_name": "Tujia, Southern"}, "ssk": {"english_name": "Sunam"}, "ppo": {"english_name": "Folopa"}, "mpu": {"english_name": "Makuráp"}, "rup": {"english_name": "Romanian, Macedo-"}, "nis": {"english_name": "Nimi"}, "unm": {"english_name": "Unami"}, "nsp": {"english_name": "Nepalese Sign Language"}, "pkg": {"english_name": "Pak-Tong"}, "xpi": {"english_name": "Pictish"}, "tcb": {"english_name": "Tanacross"}, "akz": {"english_name": "Alabama"}, "ark": {"english_name": "Arikapú"}, "inl": {"english_name": "Indonesian Sign Language"}, "csk": {"english_name": "Jola-Kasa"}, "xke": {"english_name": "Kereho"}, "gyf": {"english_name": "Gungabula"}, "mgn": {"english_name": "Mbangi"}, "pca": {"english_name": "Popoloca, Santa Inés Ahuatempan"}, "put": {"english_name": "Putoh"}, "wme": {"english_name": "Wambule"}, "pej": {"english_name": "Pomo, Northern"}, "trn": {"english_name": "Trinitario"}, "ccr": {"english_name": "Cacaopera"}, "kij": {"english_name": "Kilivila"}, "lbk": {"english_name": "Bontok, Central"}, "brm": {"english_name": "Barambu"}, "kxw": {"english_name": "Konai"}, "rey": {"english_name": "Reyesano"}, "kew": {"english_name": "Kewa, West"}, "plg": {"english_name": "Pilagá"}, "slc": {"english_name": "Sáliba"}, "xha": {"english_name": "Harami"}, "sec": {"english_name": "Sechelt"}, "awi": {"english_name": "Aekyom"}, "bxl": {"english_name": "Jalkunan"}, "nug": {"english_name": "Nungali"}, "loi": {"english_name": "Loma (Côte d'Ivoire)"}, "bev": {"english_name": "Bété, Daloa"}, "ho": {"english_name": "Hiri Motu"}, "lop": {"english_name": "Lopa"}, "fbl": {"english_name": "Bikol, West Albay"}, "sbt": {"english_name": "Kimki"}, "uln": {"english_name": "Unserdeutsch"}, "jer": {"english_name": "Jere"}, "krt": {"english_name": "Kanuri, Tumari"}, "oua": {"english_name": "Tagargrent"}, "azz": {"english_name": "Nahuatl, Highland Puebla"}, "jic": {"english_name": "Tol"}, "yms": {"english_name": "Mysian"}, "ett": {"english_name": "Etruscan"}, "gdr": {"english_name": "Wipi"}, "cpn": {"english_name": "Cherepon"}, "asz": {"english_name": "As"}, "ps": {"name": "Pushto", "english_name": "Pushto"}, "gra": {"english_name": "Garasia, Rajput"}, "ass": {"english_name": "Ipulo"}, "mmx": {"english_name": "Madak"}, "sau": {"english_name": "Saleman"}, "oge": {"english_name": "Georgian, Old"}, "bbm": {"english_name": "Babango"}, "awn": {"english_name": "Awngi"}, "hah": {"english_name": "Hahon"}, "nsr": {"english_name": "Maritime Sign Language"}, "szl": {"english_name": "Silesian"}, "ctg": {"english_name": "Chittagonian"}, "kjr": {"english_name": "Kurudu"}, "bzo": {"english_name": "Bozaba"}, "bbb": {"english_name": "Barai"}, "ymc": {"english_name": "Muji, Southern"}, "emk": {"english_name": "Maninkakan, Eastern"}, "quq": {"english_name": "Quinqui"}, "lrm": {"english_name": "Marama"}, "roc": {"english_name": "Roglai, Cacgia"}, "mqk": {"english_name": "Manobo, Rajah Kabunsuwan"}, "yxy": {"english_name": "Yabula Yabula"}, "nfa": {"english_name": "Dhao"}, "wog": {"english_name": "Wogamusin"}, "mhg": {"english_name": "Margu"}, "dro": {"english_name": "Melanau, Daro-Matu"}, "irn": {"english_name": "Irántxe"}, "xrg": {"english_name": "Minang"}, "xhc": {"english_name": "Hunnic"}, "kqu": {"english_name": "Seroa"}, "pue": {"english_name": "Puelche"}, "msh": {"english_name": "Malagasy, Masikoro"}, "duv": {"english_name": "Duvle"}, "foi": {"english_name": "Foi"}, "bdq": {"english_name": "Bahnar"}, "ivb": {"english_name": "Ibatan"}, "stf": {"english_name": "Seta"}, "gwn": {"english_name": "Gwandara"}, "tdy": {"english_name": "Tadyawan"}, "nnk": {"english_name": "Nankina"}, "gnq": {"english_name": "Gana"}, "mxu": {"english_name": "Mada (Cameroon)"}, "yuk": {"english_name": "Yuki"}, "akm": {"english_name": "Aka-Bo"}, "vmj": {"english_name": "Mixtec, Ixtayutla"}, "kod": {"english_name": "Kodi"}, "beh": {"english_name": "Biali"}, "nxd": {"english_name": "Ngando (Democratic Republic of Congo)"}, "oub": {"english_name": "Glio-Oubi"}, "afk": {"english_name": "Nanubae"}, "zap": {"english_name": "Zapotec"}, "hpo": {"english_name": "Hpon"}, "wly": {"english_name": "Waling"}, "bjs": {"english_name": "Bajan"}, "unk": {"english_name": "Enawené-Nawé"}, "lmj": {"english_name": "Lembata, West"}, "air": {"english_name": "Airoran"}, "xcu": {"english_name": "Curonian"}, "quf": {"english_name": "Quechua, Lambayeque"}, "pil": {"english_name": "Yom"}, "grr": {"english_name": "Taznatit"}, "ngr": {"english_name": "Engdewu"}, "loy": {"english_name": "Loke"}, "bes": {"english_name": "Besme"}, "xgw": {"english_name": "Guwa"}, "axe": {"english_name": "Ayerrerenge"}, "xbw": {"english_name": "Kambiwá"}, "duz": {"english_name": "Duli"}, "yuy": {"english_name": "Yugur, East"}, "mie": {"english_name": "Mixtec, Ocotepec"}, "tiy": {"english_name": "Tiruray"}, "umc": {"english_name": "Marrucinian"}, "aya": {"english_name": "Awar"}, "tlb": {"english_name": "Tobelo"}, "kjd": {"english_name": "Kiwai, Southern"}, "dil": {"english_name": "Dilling"}, "gok": {"english_name": "Gowli"}, "plb": {"english_name": "Polonombauk"}, "luo": {"english_name": "Luo (Kenya and Tanzania)"}, "rmg": {"english_name": "Norwegian, Traveller"}, "kca": {"english_name": "Khanty"}, "bpb": {"english_name": "Barbacoas"}, "sml": {"english_name": "Sama, Central"}, "gxx": {"english_name": "Wè Southern"}, "mzr": {"english_name": "Marúbo"}, "kyu": {"english_name": "Kayah, Western"}, "mai": {"english_name": "Maithili"}, "osa": {"english_name": "Osage"}, "tcf": {"english_name": "Me'phaa, Malinaltepec"}, "tcd": {"english_name": "Tafi"}, "loa": {"english_name": "Loloda"}, "wsi": {"english_name": "Wusi"}, "bdg": {"english_name": "Bonggi"}, "mba": {"english_name": "Higaonon"}, "oks": {"english_name": "Oko-Eni-Osayen"}, "vaf": {"english_name": "Vafsi"}, "azt": {"english_name": "Atta, Faire"}, "jiy": {"english_name": "Jinuo, Buyuan"}, "pnq": {"english_name": "Pana (Burkina Faso)"}, "bsu": {"english_name": "Bahonsuai"}, "iwk": {"english_name": "I-Wak"}, "xcw": {"english_name": "Coahuilteco"}, "pcd": {"english_name": "Picard"}, "xwg": {"english_name": "Kwegu"}, "qvw": {"english_name": "Quechua, Huaylla Wanca"}, "clk": {"english_name": "Idu-Mishmi"}, "tac": {"english_name": "Tarahumara, Lowland"}, "tcu": {"english_name": "Tarahumara, Southeastern"}, "sbq": {"english_name": "Sileibi"}, "koa": {"english_name": "Konomala"}, "llg": {"english_name": "Lole"}, "kks": {"english_name": "Giiwo"}, "auk": {"english_name": "Heyo"}, "zaz": {"english_name": "Zari"}, "shs": {"english_name": "Shuswap"}, "dep": {"english_name": "Delaware, Pidgin"}, "fau": {"english_name": "Fayu"}, "kny": {"english_name": "Kanyok"}, "dbv": {"english_name": "Dungu"}, "dbg": {"english_name": "Dogon, Dogul Dom"}, "nae": {"english_name": "Naka'ela"}, "xrr": {"english_name": "Raetic"}, "are": {"english_name": "Arrarnta, Western"}, "gon": {"english_name": "Gondi"}, "gvn": {"english_name": "Kuku-Yalanji"}, "xbd": {"english_name": "Bindal"}, "tcx": {"english_name": "Toda"}, "xwl": {"english_name": "Gbe, Western Xwla"}, "kph": {"english_name": "Kplang"}, "boh": {"english_name": "Boma"}, "yka": {"english_name": "Yakan"}, "dtp": {"english_name": "Dusun, Central"}, "ajt": {"english_name": "Arabic, Judeo-Tunisian"}, "he": {"name": "עברית", "english_name": "Hebrew"}, "psu": {"english_name": "Prākrit, Sauraseni"}, "kqt": {"english_name": "Kadazan, Klias River"}, "urx": {"english_name": "Urimo"}, "bcl": {"english_name": "Bikol, Central"}, "ngp": {"english_name": "Ngulu"}, "dgo": {"english_name": "Dogri (individual language)"}, "cir": {"english_name": "Tiri"}, "hts": {"english_name": "Hadza"}, "xsp": {"english_name": "Silopi"}, "yeu": {"english_name": "Yerukula"}, "sch": {"english_name": "Sakachep"}, "xtd": {"english_name": "Mixtec, Diuxi-Tilantongo"}, "mwn": {"english_name": "Nyamwanga"}, "asc": {"english_name": "Asmat, Casuarina Coast"}, "nso": {"name": "Pedi", "english_name": "Pedi"}, "pmr": {"english_name": "Paynamar"}, "cld": {"english_name": "Neo-Aramaic, Chaldean"}, "hot": {"english_name": "Hote"}, "kqf": {"english_name": "Kakabai"}, "crz": {"english_name": "Cruzeño"}, "bqp": {"english_name": "Busa"}, "duu": {"english_name": "Drung"}, "xmq": {"english_name": "Kuku-Mangk"}, "pae": {"english_name": "Pagibete"}, "nuc": {"english_name": "Nukuini"}, "ymb": {"english_name": "Yambes"}, "kdq": {"english_name": "Koch"}, "cfd": {"english_name": "Cara"}, "rwr": {"english_name": "Marwari (India)"}, "kpo": {"english_name": "Ikposo"}, "hla": {"english_name": "Halia"}, "kgl": {"english_name": "Kunggari"}, "flr": {"english_name": "Fuliiru"}, "kud": {"english_name": "'Auhelawa"}, "mdl": {"english_name": "Maltese Sign Language"}, "cno": {"english_name": "Con"}, "mek": {"english_name": "Mekeo"}, "cle": {"english_name": "Chinantec, Lealao"}, "mws": {"english_name": "Mwimbi-Muthambi"}, "cbc": {"english_name": "Carapana"}, "hbs": {"english_name": "Serbo-Croatian"}, "nbt": {"english_name": "Na"}, "grh": {"english_name": "Gbiri-Niragu"}, "aen": {"english_name": "Armenian Sign Language"}, "csz": {"english_name": "Coos"}, "lay": {"english_name": "Lama (Myanmar)"}, "bvh": {"english_name": "Bure"}, "lja": {"english_name": "Golpa"}, "atm": {"english_name": "Ata"}, "jmn": {"english_name": "Naga, Makuri"}, "fun": {"english_name": "Fulniô"}, "wbi": {"english_name": "Vwanji"}, "keo": {"english_name": "Kakwa"}, "sar": {"english_name": "Saraveca"}, "glh": {"english_name": "Pashayi, Northwest"}, "tsj": {"english_name": "Tshangla"}, "pnn": {"english_name": "Pinai-Hagahai"}, "mzo": {"english_name": "Matipuhy"}, "dio": {"english_name": "Dibo"}, "nsa": {"english_name": "Naga, Sangtam"}, "mpi": {"english_name": "Mpade"}, "chr": {"english_name": "Cherokee"}, "ysp": {"english_name": "Lolopo, Southern"}, "kyf": {"english_name": "Kouya"}, "zas": {"english_name": "Zapotec, Santo Domingo Albarradas"}, "zom": {"english_name": "Zou"}, "vi": {"name": "Tiếng Việt", "english_name": "Vietnamese"}, "amj": {"english_name": "Amdang"}, "yrk": {"english_name": "Nenets"}, "smp": {"english_name": "Samaritan"}, "khw": {"english_name": "Khowar"}, "akf": {"english_name": "Akpa"}, "ham": {"english_name": "Hewa"}, "bib": {"english_name": "Bissa"}, "elh": {"english_name": "El Hugeirat"}, "cjy": {"english_name": "Chinese, Jinyu"}, "chd": {"english_name": "Chontal, Highland Oaxaca"}, "bcp": {"english_name": "Bali (Democratic Republic of Congo)"}, "ire": {"english_name": "Iresim"}, "omk": {"english_name": "Omok"}, "gdk": {"english_name": "Gadang"}, "bxm": {"english_name": "Buriat, Mongolia"}, "ciw": {"english_name": "Chippewa"}, "tdg": {"english_name": "Tamang, Western"}, "mcc": {"english_name": "Bitur"}, "yes": {"english_name": "Nyankpa"}, "rhg": {"english_name": "Rohingya"}, "wwr": {"english_name": "Warrwa"}, "gpn": {"english_name": "Taiap"}, "ror": {"english_name": "Rongga"}, "dbn": {"english_name": "Duriankere"}, "idt": {"english_name": "Idaté"}, "trv": {"english_name": "Taroko"}, "saa": {"english_name": "Saba"}, "rkm": {"english_name": "Marka"}, "hy": {"english_name": "Armenian"}, "mpd": {"english_name": "Machinere"}, "ks": {"english_name": "Kashmiri"}, "mby": {"english_name": "Memoni"}, "qxa": {"english_name": "Quechua, Chiquián Ancash"}, "npy": {"english_name": "Napu"}, "tos": {"english_name": "Totonac, Highland"}, "nsl": {"english_name": "Norwegian Sign Language"}, "quy": {"english_name": "Quechua, Ayacucho"}, "wkd": {"english_name": "Wakde"}, "eiv": {"english_name": "Askopan"}, "isn": {"english_name": "Isanzu"}, "ues": {"english_name": "Kioko"}, "muy": {"english_name": "Muyang"}, "bhr": {"english_name": "Malagasy, Bara"}, "qup": {"english_name": "Quechua, Southern Pastaza"}, "xsl": {"english_name": "Slavey, South"}, "tkn": {"english_name": "Toku-No-Shima"}, "rth": {"english_name": "Ratahan"}, "sgd": {"english_name": "Surigaonon"}, "bgp": {"english_name": "Balochi, Eastern"}, "mes": {"english_name": "Masmaje"}, "mui": {"english_name": "Musi"}, "goq": {"english_name": "Gorap"}, "msf": {"english_name": "Mekwei"}, "sib": {"english_name": "Sebop"}, "abw": {"english_name": "Pal"}, "ruy": {"english_name": "Mala (Nigeria)"}, "sgg": {"english_name": "Swiss-German Sign Language"}, "gmz": {"english_name": "Mgbolizhia"}, "ghn": {"english_name": "Ghanongga"}, "nnj": {"english_name": "Nyangatom"}, "ins": {"english_name": "Indian Sign Language"}, "mev": {"english_name": "Mano"}, "fmp": {"english_name": "Fe'fe'"}, "ibm": {"english_name": "Agoi"}, "lum": {"english_name": "Luimbi"}, "mhn": {"english_name": "Mócheno"}, "ilo": {"english_name": "Iloko"}, "zps": {"english_name": "Zapotec, Coatlán"}, "nrm": {"english_name": "Narom"}, "eli": {"english_name": "Nding"}, "grz": {"english_name": "Guramalum"}, "qul": {"english_name": "Quechua, North Bolivian"}, "nex": {"english_name": "Neme"}, "bdw": {"english_name": "Baham"}, "gfk": {"english_name": "Patpatar"}, "mhf": {"english_name": "Mamaa"}, "bql": {"english_name": "Bilakura"}, "gds": {"english_name": "Ghandruk Sign Language"}, "ktf": {"english_name": "Kwami"}, "lrk": {"english_name": "Loarki"}, "asv": {"english_name": "Asoa"}, "car": {"english_name": "Carib, Galibi"}, "br": {"name": "Brezhoneg", "english_name": "Breton"}, "ypb": {"english_name": "Phowa, Labo"}, "tfi": {"english_name": "Gbe, Tofin"}, "nlq": {"english_name": "Naga, Lao"}, "auy": {"english_name": "Awiyaana"}, "suj": {"english_name": "Shubi"}, "bma": {"english_name": "Lame"}, "ape": {"english_name": "Bukiyip"}, "qvm": {"english_name": "Quechua, Margos-Yarowilca-Lauricocha"}, "tpa": {"english_name": "Taupota"}, "kwe": {"english_name": "Kwerba"}, "bjp": {"english_name": "Fanamaket"}, "nhz": {"english_name": "Nahuatl, Santa María La Alta"}, "pmh": {"english_name": "Prākrit, Māhārāṣṭri"}, "bdf": {"english_name": "Biage"}, "bwo": {"english_name": "Boro (Ethiopia)"}, "otq": {"english_name": "Otomi, Querétaro"}, "ddw": {"english_name": "Dawera-Daweloor"}, "xpt": {"english_name": "Punthamara"}, "xct": {"english_name": "Tibetan, Classical"}, "ikw": {"english_name": "Ikwere"}, "dbe": {"english_name": "Dabe"}, "pmb": {"english_name": "Pambia"}, "elu": {"english_name": "Elu"}, "qvn": {"english_name": "Quechua, North Junín"}, "hov": {"english_name": "Hovongan"}, "xsq": {"english_name": "Makhuwa-Saka"}, "nml": {"english_name": "Ndemli"}, "yku": {"english_name": "Kuamasi"}, "neb": {"english_name": "Toura (Côte d'Ivoire)"}, "zbt": {"english_name": "Batui"}, "xsc": {"english_name": "Scythian"}, "cok": {"english_name": "Cora, Santa Teresa"}, "nuw": {"english_name": "Nguluwan"}, "suz": {"english_name": "Sunwar"}, "mty": {"english_name": "Nabi"}, "hod": {"english_name": "Holma"}, "jms": {"english_name": "Mashi (Nigeria)"}, "ndy": {"english_name": "Lutos"}, "ay": {"english_name": "Aymara"}, "ssb": {"english_name": "Sama, Southern"}, "ghl": {"english_name": "Ghulfan"}, "ynk": {"english_name": "Yupik, Naukan"}, "ckx": {"english_name": "Caka"}, "ruc": {"english_name": "Ruuli"}, "kmm": {"english_name": "Kom (India)"}, "kem": {"english_name": "Kemak"}, "jab": {"english_name": "Hyam"}, "czk": {"english_name": "Knaanic"}, "asl": {"english_name": "Asilulu"}, "fmu": {"english_name": "Muria, Far Western"}, "qyp": {"english_name": "Quiripi"}, "iwo": {"english_name": "Iwur"}, "vec": {"english_name": "Venetian"}, "usu": {"english_name": "Uya"}, "lhh": {"english_name": "Laha (Indonesia)"}, "drl": {"english_name": "Paakantyi"}, "tjg": {"english_name": "Tunjung"}, "pey": {"english_name": "Petjo"}, "xkz": {"english_name": "Kurtokha"}, "brr": {"english_name": "Birao"}, "quh": {"english_name": "Quechua, South Bolivian"}, "xgi": {"english_name": "Garingbal"}, "bpa": {"english_name": "Daakaka"}, "jel": {"english_name": "Yelmek"}, "xvi": {"english_name": "Kamviri"}, "siz": {"english_name": "Siwi"}, "enb": {"english_name": "Markweeta"}, "pid": {"english_name": "Piaroa"}, "sra": {"english_name": "Saruga"}, "clh": {"english_name": "Chilisso"}, "bkv": {"english_name": "Bekwarra"}, "dgh": {"english_name": "Dghwede"}, "xum": {"english_name": "Umbrian"}, "lae": {"english_name": "Pattani"}, "wrz": {"english_name": "Waray (Australia)"}, "ti": {"name": "ትግርኛ", "english_name": "Tigrinya"}, "csr": {"english_name": "Costa Rican Sign Language"}, "leb": {"english_name": "Lala-Bisa"}, "neq": {"english_name": "Mixe, North Central"}, "aia": {"english_name": "Arosi"}, "kpj": {"english_name": "Karajá"}, "rn": {"english_name": "Rundi"}, "zng": {"english_name": "Mang"}, "des": {"english_name": "Desano"}, "ktw": {"english_name": "Kato"}, "koe": {"english_name": "Kacipo-Balesi"}, "ttm": {"english_name": "Tutchone, Northern"}, "tfr": {"english_name": "Teribe"}, "irk": {"english_name": "Iraqw"}, "jiq": {"english_name": "Guanyinqiao"}, "xmj": {"english_name": "Majera"}, "kse": {"english_name": "Kuni"}, "hwa": {"english_name": "Wané"}, "sv": {"name": "Svenska", "english_name": "Swedish"}, "dkk": {"english_name": "Dakka"}, "uru": {"english_name": "Urumi"}, "giy": {"english_name": "Giyug"}, "cmt": {"english_name": "Camtho"}, "mhw": {"english_name": "Mbukushu"}, "ali": {"english_name": "Amaimon"}, "bck": {"english_name": "Bunaba"}, "kej": {"english_name": "Kadar"}, "sqr": {"english_name": "Arabic, Siculo"}, "pod": {"english_name": "Ponares"}, "chp": {"english_name": "Chipewyan"}, "cho": {"english_name": "Choctaw"}, "ihi": {"english_name": "Ihievbe"}, "mvk": {"english_name": "Mekmek"}, "mkm": {"english_name": "Moklen"}, "zku": {"english_name": "Kaurna"}, "aml": {"english_name": "War-Jaintia"}, "aoi": {"english_name": "Anindilyakwa"}, "idr": {"english_name": "Indri"}, "qxl": {"english_name": "Quichua, Salasaca Highland"}, "tyh": {"english_name": "O'du"}, "tnk": {"english_name": "Kwamera"}, "hvk": {"english_name": "Haveke"}, "kdc": {"english_name": "Kutu"}, "mmp": {"english_name": "Siawi"}, "icr": {"english_name": "Creole English, Islander"}, "kqx": {"english_name": "Mser"}, "gwf": {"english_name": "Gowro"}, "ajw": {"english_name": "Ajawa"}, "thz": {"english_name": "Tamajeq, Tayart"}, "lor": {"english_name": "Téén"}, "qva": {"english_name": "Quechua, Ambo-Pasco"}, "jid": {"english_name": "Bu"}, "ncb": {"english_name": "Nicobarese, Central"}, "ayl": {"english_name": "Arabic, Libyan"}, "kly": {"english_name": "Kalao"}, "bbe": {"english_name": "Bangba"}, "zka": {"english_name": "Kaimbulawa"}, "blf": {"english_name": "Buol"}, "ibu": {"english_name": "Ibu"}, "tpq": {"english_name": "Tukpa"}, "rsi": {"english_name": "Rennellese Sign Language"}, "axb": {"english_name": "Abipon"}, "tih": {"english_name": "Murut, Timugon"}, "hlu": {"english_name": "Luwian, Hieroglyphic"}, "krb": {"english_name": "Karkin"}, "lvu": {"english_name": "Levuka"}, "axm": {"english_name": "Armenian, Middle"}, "ayb": {"english_name": "Gbe, Ayizo"}, "mub": {"english_name": "Mubi"}, "amb": {"english_name": "Ambo"}, "csc": {"english_name": "Catalan Sign Language"}, "twa": {"english_name": "Twana"}, "xgg": {"english_name": "Goreng"}, "bne": {"english_name": "Bintauna"}, "pug": {"english_name": "Phuie"}, "yby": {"english_name": "Yaweyuha"}, "gan": {"english_name": "Chinese, Gan"}, "vko": {"english_name": "Kodeoha"}, "xkl": {"english_name": "Mainstream Kenyah"}, "ian": {"english_name": "Iatmul"}, "byj": {"english_name": "Bina (Nigeria)"}, "bpg": {"english_name": "Bonggo"}, "emb": {"english_name": "Embaloh"}, "bhz": {"english_name": "Bada (Indonesia)"}, "knz": {"english_name": "Kalamsé"}, "cam": {"english_name": "Cemuhî"}, "ykk": {"english_name": "Yakaikeke"}, "pcj": {"english_name": "Parenga"}, "elk": {"english_name": "Elkei"}, "mgk": {"english_name": "Mawes"}, "jna": {"english_name": "Jangshung"}, "kmq": {"english_name": "Kwama"}, "sea": {"english_name": "Semai"}, "se": {"english_name": "Sami, Northern"}, "yob": {"english_name": "Yoba"}, "kze": {"english_name": "Kosena"}, "geq": {"english_name": "Geme"}, "kmi": {"english_name": "Kami (Nigeria)"}, "vaa": {"english_name": "Vaagri Booli"}, "yli": {"english_name": "Yali, Angguruk"}, "kpb": {"english_name": "Kurumba, Mullu"}, "kie": {"english_name": "Kibet"}, "tdr": {"english_name": "Todrah"}, "ckv": {"english_name": "Kavalan"}, "bal": {"english_name": "Baluchi"}, "sbr": {"english_name": "Sembakung Murut"}, "lsa": {"english_name": "Lasgerdi"}, "avo": {"english_name": "Agavotaguerra"}, "omx": {"english_name": "Mon, Old"}, "yag": {"english_name": "Yámana"}, "ksw": {"english_name": "Karen, S'gaw"}, "nlk": {"english_name": "Yali, Ninia"}, "ttu": {"english_name": "Torau"}, "rrt": {"english_name": "Arritinngithigh"}, "acp": {"english_name": "Acipa, Eastern"}, "sco": {"english_name": "Scots"}, "erk": {"english_name": "Efate, South"}, "nkk": {"english_name": "Nokuku"}, "mwi": {"english_name": "Labo"}, "tcw": {"english_name": "Totonac, Tecpatlán"}, "enf": {"english_name": "Enets, Forest"}, "xsy": {"english_name": "Saisiyat"}, "bpr": {"english_name": "Blaan, Koronadal"}, "mgg": {"english_name": "Mpumpong"}, "kwa": {"english_name": "Dâw"}, "thh": {"english_name": "Tarahumara, Northern"}, "otz": {"english_name": "Otomi, Ixtenco"}, "bjg": {"english_name": "Bidyogo"}, "mbh": {"english_name": "Mangseng"}, "old": {"english_name": "Mochi"}, "mmn": {"english_name": "Mamanwa"}, "mrf": {"english_name": "Elseng"}, "nqk": {"english_name": "Ede Nago, Kura"}, "ziw": {"english_name": "Zigula"}, "ysr": {"english_name": "Yupik, Sirenik"}, "hvn": {"english_name": "Sabu"}, "aap": {"english_name": "Arára, Pará"}, "wbq": {"english_name": "Waddar"}, "gad": {"english_name": "Gaddang"}, "dub": {"english_name": "Dubli"}, "lch": {"english_name": "Luchazi"}, "bqw": {"english_name": "Buru (Nigeria)"}, "skh": {"english_name": "Sikule"}, "gft": {"english_name": "Gafat"}, "lgm": {"english_name": "Lega-Mwenga"}, "ur": {"english_name": "Urdu"}, "zyj": {"english_name": "Zhuang, Youjiang"}, "fub": {"english_name": "Fulfulde, Adamawa"}, "kuo": {"english_name": "Kumukio"}, "ymz": {"english_name": "Muzi"}, "thv": {"english_name": "Tamahaq, Tahaggart"}, "nd": {"english_name": "Ndebele, North"}, "cih": {"english_name": "Chinali"}, "mvr": {"english_name": "Marau"}, "gjk": {"english_name": "Koli, Kachi"}, "mey": {"english_name": "Hassaniyya"}, "law": {"english_name": "Lauje"}, "las": {"english_name": "Lama (Togo)"}, "mmc": {"english_name": "Mazahua, Michoacán"}, "tkx": {"english_name": "Tangko"}, "bkl": {"english_name": "Berik"}, "mkr": {"english_name": "Malas"}, "ppi": {"english_name": "Paipai"}, "juy": {"english_name": "Juray"}, "wwb": {"english_name": "Wakabunga"}, "wbf": {"english_name": "Wara"}, "dae": {"english_name": "Duupa"}, "yzg": {"english_name": "Buyang, E'ma"}, "sas": {"english_name": "Sasak"}, "tpc": {"english_name": "Me'phaa, Azoyú"}, "xwk": {"english_name": "Wangkumara"}, "taw": {"english_name": "Tai"}, "xsv": {"english_name": "Sudovian"}, "til": {"english_name": "Tillamook"}, "kgn": {"english_name": "Karingani"}, "squ": {"english_name": "Squamish"}, "trs": {"english_name": "Triqui, Chicahuaxtla"}, "zbw": {"english_name": "Berawan, West"}, "mne": {"english_name": "Naba"}, "bzw": {"english_name": "Basa (Nigeria)"}, "kih": {"english_name": "Kilmeri"}, "mxf": {"english_name": "Malgbe"}, "bae": {"english_name": "Baré"}, "hmi": {"english_name": "Hmong, Northern Huishui"}, "bdp": {"english_name": "Bende"}, "yev": {"english_name": "Yapunda"}, "kaj": {"english_name": "Jju"}, "mxl": {"english_name": "Gbe, Maxi"}, "xdk": {"english_name": "Dharuk"}, "bla": {"english_name": "Siksika"}, "mwe": {"english_name": "Mwera (Chimwera)"}, "khn": {"english_name": "Khandesi"}, "ego": {"english_name": "Eggon"}, "aax": {"english_name": "Mandobo Atas"}, "mts": {"english_name": "Yora"}, "xly": {"english_name": "Elymian"}, "kco": {"english_name": "Kinalakna"}, "naw": {"english_name": "Nawuri"}, "boo": {"english_name": "Bozo, Tiemacèwè"}, "tny": {"english_name": "Tongwe"}, "kaa": {"english_name": "Kara-Kalpak"}, "skv": {"english_name": "Skou"}, "mji": {"english_name": "Kim Mun"}, "tru": {"english_name": "Turoyo"}, "yle": {"english_name": "Yele"}, "sse": {"english_name": "Balangingi"}, "awv": {"english_name": "Awyu, Jair"}, "mel": {"english_name": "Melanau, Central"}, "wny": {"english_name": "Wanyi"}, "tnn": {"english_name": "Tanna, North"}, "tit": {"english_name": "Tinigua"}, "hmv": {"english_name": "Hmong Dô"}, "kmy": {"english_name": "Koma"}, "lem": {"english_name": "Nomaande"}, "lsp": {"english_name": "Panamanian Sign Language"}, "kle": {"english_name": "Kulung (Nepal)"}, "xow": {"english_name": "Kowaki"}, "tbk": {"english_name": "Tagbanwa, Calamian"}, "tl": {"english_name": "Tagalog"}, "cje": {"english_name": "Chru"}, "mrx": {"english_name": "Maremgi"}, "pnp": {"english_name": "Pancana"}, "tr": {"name": "Türkçe", "english_name": "Turkish"}, "pmn": {"english_name": "Pam"}, "dga": {"english_name": "Dagaare, Southern"}, "nxq": {"english_name": "Naxi"}, "xbn": {"english_name": "Kenaboi"}, "zav": {"english_name": "Zapotec, Yatzachi"}, "oco": {"english_name": "Cornish, Old"}, "nmo": {"english_name": "Naga, Moyon"}, "sez": {"english_name": "Chin, Senthang"}, "xua": {"english_name": "Kurumba, Alu"}, "kek": {"english_name": "Kekchí"}, "tsi": {"english_name": "Tsimshian"}, "guc": {"english_name": "Wayuu"}, "kvv": {"english_name": "Kola"}, "kdp": {"english_name": "Kaningdon-Nindem"}, "kj": {"english_name": "Kuanyama"}, "rgu": {"english_name": "Ringgou"}, "bnu": {"english_name": "Bentong"}, "nnu": {"english_name": "Dwang"}, "mpa": {"english_name": "Mpoto"}, "rki": {"english_name": "Rakhine"}, "udl": {"english_name": "Wuzlam"}, "paq": {"english_name": "Parya"}, "tij": {"english_name": "Tilung"}, "xmx": {"english_name": "Maden"}, "eki": {"english_name": "Eki"}, "sku": {"english_name": "Sakao"}, "piy": {"english_name": "Piya-Kwonci"}, "tlp": {"english_name": "Totonac, Filomena Mata-Coahuitlán"}, "wep": {"english_name": "Westphalien"}, "fak": {"english_name": "Fang (Cameroon)"}, "mur": {"english_name": "Murle"}, "smx": {"english_name": "Samba"}, "lpe": {"english_name": "Lepki"}, "gaj": {"english_name": "Gadsup"}, "orw": {"english_name": "Oro Win"}, "psr": {"english_name": "Portuguese Sign Language"}, "haa": {"english_name": "Han"}, "hvc": {"english_name": "Haitian Vodoun Culture Language"}, "goj": {"english_name": "Gowlan"}, "sgk": {"english_name": "Sangkong"}, "ude": {"english_name": "Udihe"}, "csf": {"english_name": "Cuba Sign Language"}, "moy": {"english_name": "Shekkacho"}, "sso": {"english_name": "Sissano"}, "ash": {"english_name": "Abishira"}, "ypa": {"english_name": "Phala"}, "kma": {"english_name": "Konni"}, "tli": {"english_name": "Tlingit"}, "ahp": {"english_name": "Aizi, Aproumu"}, "res": {"english_name": "Reshe"}, "ahg": {"english_name": "Qimant"}, "vao": {"english_name": "Vao"}, "zra": {"english_name": "Kara (Korea)"}, "atj": {"english_name": "Atikamekw"}, "mnr": {"english_name": "Mono (USA)"}, "hug": {"english_name": "Huachipaeri"}, "wyy": {"english_name": "Fijian, Western"}, "ch": {"english_name": "Chamorro"}, "aaw": {"english_name": "Solong"}, "vku": {"english_name": "Kurrama"}, "non": {"english_name": "Norse, Old"}, "mlj": {"english_name": "Miltu"}, "zzj": {"english_name": "Zhuang, Zuojiang"}, "uro": {"english_name": "Ura (Papua New Guinea)"}, "xib": {"english_name": "Iberian"}, "soi": {"english_name": "Sonha"}, "ulc": {"english_name": "Ulch"}, "nwb": {"english_name": "Nyabwa"}, "ory": {"english_name": "Oriya (individual language)"}, "ylo": {"english_name": "Yi, Naluo"}, "mfp": {"english_name": "Malay, Makassar"}, "klo": {"english_name": "Kapya"}, "twn": {"english_name": "Twendi"}, "dag": {"english_name": "Dagbani"}, "pro": {"english_name": "Provençal, Old (to 1500)"}, "ijc": {"english_name": "Izon"}, "brd": {"english_name": "Baraamu"}, "wrl": {"english_name": "Warlmanpa"}, "ycn": {"english_name": "Yucuna"}, "pfe": {"english_name": "Peere"}, "grq": {"english_name": "Gorovu"}, "mfa": {"english_name": "Malay, Pattani"}, "zmp": {"english_name": "Mpuono"}, "zpl": {"english_name": "Zapotec, Lachixío"}, "rwk": {"english_name": "Rwa"}, "kwk": {"english_name": "Kwakiutl"}, "ngu": {"english_name": "Nahuatl, Guerrero"}, "bjk": {"english_name": "Barok"}, "amm": {"english_name": "Ama (Papua New Guinea)"}, "itk": {"english_name": "Judeo-Italian"}, "sur": {"english_name": "Mwaghavul"}, "psq": {"english_name": "Pasi"}, "pop": {"english_name": "Pwapwâ"}, "mkn": {"english_name": "Malay, Kupang"}, "bns": {"english_name": "Bundeli"}, "eee": {"english_name": "E"}, "anm": {"english_name": "Anal"}, "fat": {"english_name": "Fanti"}, "msk": {"english_name": "Mansaka"}, "mup": {"english_name": "Malvi"}, "wry": {"english_name": "Merwari"}, "txe": {"english_name": "Totoli"}, "chk": {"english_name": "Chuukese"}, "nie": {"english_name": "Niellim"}, "etu": {"english_name": "Ejagham"}, "osc": {"english_name": "Oscan"}, "nev": {"english_name": "Nyaheun"}, "ln": {"english_name": "Lingala"}, "rel": {"english_name": "Rendille"}, "pov": {"english_name": "Crioulo, Upper Guinea"}, "spg": {"english_name": "Sian"}, "hay": {"english_name": "Haya"}, "htu": {"english_name": "Hitu"}, "dbo": {"english_name": "Dulbu"}, "faj": {"english_name": "Faita"}, "ttj": {"english_name": "Tooro"}, "slf": {"english_name": "Swiss-Italian Sign Language"}, "ayc": {"english_name": "Aymara, Southern"}, "stp": {"english_name": "Tepehuan, Southeastern"}, "jcs": {"english_name": "Jamaican Country Sign Language"}, "mbn": {"english_name": "Macaguán"}, "mwr": {"english_name": "Marwari"}, "lnw": {"english_name": "Lanima"}, "bho": {"english_name": "Bhojpuri"}, "pkt": {"english_name": "Maleng"}, "kdd": {"english_name": "Yankunytjatjara"}, "tpu": {"english_name": "Tampuan"}, "prd": {"english_name": "Parsi-Dari"}, "oog": {"english_name": "Ong"}, "scv": {"english_name": "Sheni"}, "jiv": {"english_name": "Shuar"}, "prb": {"english_name": "Lua'"}, "shx": {"english_name": "She"}, "slj": {"english_name": "Salumá"}, "tyl": {"english_name": "Thu Lao"}, "ena": {"english_name": "Apali"}, "nnv": {"english_name": "Nugunu (Australia)"}, "paz": {"english_name": "Pankararú"}, "xaa": {"english_name": "Arabic, Andalusian"}, "mmg": {"english_name": "Ambrym, North"}, "urr": {"english_name": "Lehalurup"}, "ne": {"english_name": "Nepali (macrolanguage)"}, "bpi": {"english_name": "Bagupi"}, "sos": {"english_name": "Seeku"}, "bzg": {"english_name": "Babuza"}, "uvh": {"english_name": "Uri"}, "wmc": {"english_name": "Wamas"}, "lgb": {"english_name": "Laghu"}, "ani": {"english_name": "Andi"}, "srf": {"english_name": "Nafi"}, "mra": {"english_name": "Mlabri"}, "ukg": {"english_name": "Ukuriguma"}, "ess": {"english_name": "Yupik, Central Siberian"}, "adt": {"english_name": "Adnyamathanha"}, "nnh": {"english_name": "Ngiemboon"}, "ljw": {"english_name": "Yirandali"}, "sne": {"english_name": "Bidayuh, Bau"}, "krm": {"english_name": "Krim"}, "jnd": {"english_name": "Jandavra"}, "bfb": {"english_name": "Bareli, Pauri"}, "arq": {"english_name": "Arabic, Algerian"}, "asn": {"english_name": "Asuriní, Xingú"}, "isa": {"english_name": "Isabi"}, "vkk": {"english_name": "Kaur"}, "vam": {"english_name": "Vanimo"}, "phg": {"english_name": "Phuong"}, "hsb": {"english_name": "Sorbian, Upper"}, "cbh": {"english_name": "Cagua"}, "gyn": {"english_name": "Creole English, Guyanese"}, "doc": {"english_name": "Dong, Northern"}, "kfd": {"english_name": "Koraga, Korra"}, "ykt": {"english_name": "Kathu"}, "dud": {"english_name": "Hun-Saare"}, "af": {"name": "Afrikaans", "english_name": "Afrikaans"}, "lll": {"english_name": "Lilau"}, "tey": {"english_name": "Tulishi"}, "djc": {"english_name": "Daju, Dar Daju"}, "bus": {"english_name": "Bokobaru"}, "loe": {"english_name": "Saluan"}, "nyd": {"english_name": "Nyore"}, "mxw": {"english_name": "Namo"}, "pbf": {"english_name": "Popoloca, Coyotepec"}, "lek": {"english_name": "Leipon"}, "ofs": {"english_name": "Frisian, Old"}, "seg": {"english_name": "Segeju"}, "mke": {"english_name": "Mawchi"}, "smt": {"english_name": "Simte"}, "vot": {"english_name": "Votic"}, "cme": {"english_name": "Cerma"}, "tks": {"english_name": "Takestani"}, "jah": {"english_name": "Jah Hut"}, "csy": {"english_name": "Chin, Siyin"}, "wgu": {"english_name": "Wirangu"}, "pbu": {"english_name": "Pashto, Northern"}, "csd": {"english_name": "Chiangmai Sign Language"}, "lzl": {"english_name": "Litzlitz"}, "dgg": {"english_name": "Doga"}, "kuz": {"english_name": "Kunza"}, "sqa": {"english_name": "Shama-Sambuga"}, "qve": {"english_name": "Quechua, Eastern Apurímac"}, "amz": {"english_name": "Atampaya"}, "cmm": {"english_name": "Michigamea"}, "tme": {"english_name": "Tremembé"}, "ts": {"english_name": "Tsonga"}, "bqr": {"english_name": "Burusu"}, "dgl": {"english_name": "Andaandi"}, "nqm": {"english_name": "Ndom"}, "cco": {"english_name": "Chinantec, Comaltepec"}, "ndv": {"english_name": "Ndut"}, "pwm": {"english_name": "Molbog"}, "msb": {"english_name": "Masbatenyo"}, "rmv": {"english_name": "Romanova"}, "llq": {"english_name": "Lolak"}, "sly": {"english_name": "Selayar"}, "bdv": {"english_name": "Bodo Parja"}, "pku": {"english_name": "Paku"}, "jul": {"english_name": "Jirel"}, "nui": {"english_name": "Ngumbi"}, "tlj": {"english_name": "Talinga-Bwisi"}, "waf": {"english_name": "Wakoná"}, "xip": {"english_name": "Xipináwa"}, "nux": {"english_name": "Mehek"}, "gaz": {"english_name": "Oromo, West Central"}, "mwh": {"english_name": "Mouk-Aria"}, "mox": {"english_name": "Molima"}, "nho": {"english_name": "Takuu"}, "rmk": {"english_name": "Romkun"}, "omb": {"english_name": "Ambae, East"}, "aes": {"english_name": "Alsea"}, "nht": {"english_name": "Nahuatl, Ometepec"}, "bvp": {"english_name": "Bumang"}, "zsl": {"english_name": "Zambian Sign Language"}, "llj": {"english_name": "Ladji Ladji"}, "fuf": {"english_name": "Pular"}, "hni": {"english_name": "Hani"}, "mxo": {"english_name": "Mbowe"}, "eso": {"english_name": "Estonian Sign Language"}, "jao": {"english_name": "Yanyuwa"}, "bap": {"english_name": "Bantawa"}, "omr": {"english_name": "Marathi, Old"}, "djd": {"english_name": "Djamindjung"}, "wub": {"english_name": "Wunambal"}, "ptt": {"english_name": "Enrekang"}, "iya": {"english_name": "Iyayu"}, "tww": {"english_name": "Tuwari"}, "fos": {"english_name": "Siraya"}, "gly": {"english_name": "Gule"}, "ndl": {"english_name": "Ndolo"}, "juh": {"english_name": "Hõne"}, "wei": {"english_name": "Kiunum"}, "mgr": {"english_name": "Mambwe-Lungu"}, "mcn": {"english_name": "Masana"}, "maw": {"english_name": "Mampruli"}, "swh": {"english_name": "Swahili (individual language)"}, "prs": {"english_name": "Dari"}, "mi": {"name": "Reo Māori", "english_name": "Maori"}, "kql": {"english_name": "Kyenele"}, "spv": {"english_name": "Sambalpuri"}, "kuv": {"english_name": "Kur"}, "ktv": {"english_name": "Katu, Eastern"}, "zme": {"english_name": "Mangerr"}, "igb": {"english_name": "Ebira"}, "sxs": {"english_name": "Sasaru"}, "rsl": {"english_name": "Russian Sign Language"}, "lfn": {"english_name": "Lingua Franca Nova"}, "snr": {"english_name": "Sihan"}, "tsq": {"english_name": "Thai Sign Language"}, "cbj": {"english_name": "Ede Cabe"}, "nme": {"english_name": "Naga, Mzieme"}, "yax": {"english_name": "Yauma"}, "byl": {"english_name": "Bayono"}, "aww": {"english_name": "Awun"}, "ibr": {"english_name": "Ibuoro"}, "mqi": {"english_name": "Mariri"}, "bmb": {"english_name": "Bembe"}, "yij": {"english_name": "Yindjibarndi"}, "mhd": {"english_name": "Mbugu"}, "soq": {"english_name": "Kanasi"}, "swx": {"english_name": "Suruahá"}, "crq": {"english_name": "Chorote, Iyo'wujwa"}, "wae": {"english_name": "Walser"}, "ibn": {"english_name": "Ibino"}, "kou": {"english_name": "Koke"}, "btf": {"english_name": "Birgit"}, "mwp": {"english_name": "Kala Lagaw Ya"}, "lka": {"english_name": "Lakalei"}, "jbu": {"english_name": "Jukun Takum"}, "fiw": {"english_name": "Fiwaga"}, "bzh": {"english_name": "Buang, Mapos"}, "ebo": {"english_name": "Teke-Ebo"}, "cip": {"english_name": "Chiapanec"}, "ila": {"english_name": "Ile Ape"}, "quz": {"english_name": "Quechua, Cusco"}, "spr": {"english_name": "Saparua"}, "nwc": {"english_name": "Newari, Classical"}, "aeb": {"english_name": "Arabic, Tunisian"}, "pis": {"english_name": "Pijin"}, "th": {"name": "ไทย", "english_name": "Thai"}, "tlk": {"english_name": "Taloki"}, "snf": {"english_name": "Noon"}, "kuy": {"english_name": "Kuuku-Ya'u"}, "ane": {"english_name": "Xârâcùù"}, "dya": {"english_name": "Dyan"}, "lrc": {"english_name": "Luri, Northern"}, "duw": {"english_name": "Dusun Witu"}, "lsy": {"english_name": "Mauritian Sign Language"}, "sei": {"english_name": "Seri"}, "pnh": {"english_name": "Penrhyn"}, "xbp": {"english_name": "Bibbulman"}, "xti": {"english_name": "Mixtec, Sinicahua"}, "nru": {"english_name": "Narua"}, "cnb": {"english_name": "Chin, Chinbon"}, "mwt": {"english_name": "Moken"}, "yly": {"english_name": "Nyâlayu"}, "kcp": {"english_name": "Kanga"}, "aew": {"english_name": "Ambakich"}, "lij": {"english_name": "Ligurian"}, "xao": {"english_name": "Khao"}, "skp": {"english_name": "Sekapan"}, "bdm": {"english_name": "Buduma"}, "kkk": {"english_name": "Kokota"}, "mcv": {"english_name": "Minanibai"}, "ito": {"english_name": "Itonama"}, "kjl": {"english_name": "Kham, Western Parbate"}, "kmt": {"english_name": "Kemtuik"}, "gju": {"english_name": "Gujari"}, "rjg": {"english_name": "Rajong"}, "lbc": {"english_name": "Lakkia"}, "nto": {"english_name": "Ntomba"}, "yav": {"english_name": "Yangben"}, "msl": {"english_name": "Molof"}, "jil": {"english_name": "Jilim"}, "fa": {"name": "فارسی", "english_name": "Persian"}, "cmo": {"english_name": "Mnong, Central"}, "lot": {"english_name": "Otuho"}, "dbw": {"english_name": "Dogon, Bankan Tey"}, "hrw": {"english_name": "Warwar Feni"}, "ce": {"english_name": "Chechen"}, "vmv": {"english_name": "Maidu, Valley"}, "rap": {"english_name": "Rapanui"}, "usk": {"english_name": "Usaghade"}, "tin": {"english_name": "Tindi"}, "sl": {"name": "slovenščina", "english_name": "Slovenian"}, "sey": {"english_name": "Secoya"}, "alf": {"english_name": "Alege"}, "mvm": {"english_name": "Muya"}, "the": {"english_name": "Tharu, Chitwania"}, "zor": {"english_name": "Zoque, Rayón"}, "siy": {"english_name": "Sivandi"}, "ist": {"english_name": "Istriot"}, "xhr": {"english_name": "Hernican"}, "nzi": {"english_name": "Nzima"}, "ylb": {"english_name": "Yaleba"}, "bba": {"english_name": "Baatonum"}, "set": {"english_name": "Sentani"}, "ctl": {"english_name": "Chinantec, Tlacoatzintepec"}, "pon": {"english_name": "Pohnpeian"}, "gma": {"english_name": "Gambera"}, "sob": {"english_name": "Sobei"}, "jnl": {"english_name": "Rawat"}, "agk": {"english_name": "Agta, Isarog"}, "hii": {"english_name": "Hinduri"}, "ack": {"english_name": "Aka-Kora"}, "srl": {"english_name": "Isirawa"}, "wur": {"english_name": "Wurrugu"}, "ybx": {"english_name": "Yawiyo"}, "llx": {"english_name": "Lauan"}, "lla": {"english_name": "Lala-Roba"}, "fvr": {"english_name": "Fur"}, "mmi": {"english_name": "Musar"}, "kgo": {"english_name": "Krongo"}, "sus": {"english_name": "Susu"}, "ntx": {"english_name": "Naga, Tangkhul (Myanmar)"}, "klb": {"english_name": "Kiliwa"}, "nbg": {"english_name": "Nagarchal"}, "zln": {"english_name": "Zhuang, Lianshan"}, "boi": {"english_name": "Barbareño"}, "tna": {"english_name": "Tacana"}, "bva": {"english_name": "Barein"}, "jml": {"english_name": "Jumli"}, "prp": {"english_name": "Parsi"}, "yiq": {"english_name": "Miqie"}, "gbp": {"english_name": "Gbaya-Bossangoa"}, "bsh": {"english_name": "Kati"}, "agc": {"english_name": "Agatu"}, "gul": {"english_name": "Creole English, Sea Island"}, "srb": {"english_name": "Sora"}, "ing": {"english_name": "Degexit'an"}, "yut": {"english_name": "Yopno"}, "ade": {"english_name": "Adele"}, "nem": {"english_name": "Nemi"}, "tiv": {"english_name": "Tiv"}, "tqr": {"english_name": "Torona"}, "lva": {"english_name": "Maku'a"}, "olo": {"english_name": "Livvi"}, "tss": {"english_name": "Taiwan Sign Language"}, "dau": {"english_name": "Daju, Dar Sila"}, "xco": {"english_name": "Chorasmian"}, "bvi": {"english_name": "Belanda Viri"}, "awg": {"english_name": "Anguthimri"}, "pay": {"english_name": "Pech"}, "ksl": {"english_name": "Kumalu"}, "urk": {"english_name": "Urak Lawoi'"}, "lme": {"english_name": "Pévé"}, "csg": {"english_name": "Chilean Sign Language"}, "otr": {"english_name": "Otoro"}, "iin": {"english_name": "Thiin"}, "yau": {"english_name": "Yuwana"}, "aim": {"english_name": "Aimol"}, "fi": {"name": "suomi", "english_name": "Finnish"}, "bdu": {"english_name": "Oroko"}, "qxn": {"english_name": "Quechua, Northern Conchucos Ancash"}, "mho": {"english_name": "Mashi (Zambia)"}, "rea": {"english_name": "Rerau"}, "pbo": {"english_name": "Papel"}, "ngv": {"english_name": "Nagumi"}, "kzd": {"english_name": "Kadai"}, "kpq": {"english_name": "Korupun-Sela"}, "aah": {"english_name": "Arapesh, Abu'"}, "kku": {"english_name": "Tumi"}, "xlb": {"english_name": "Loup B"}, "mfc": {"english_name": "Mba"}, "rai": {"english_name": "Ramoaaina"}, "lie": {"english_name": "Likila"}, "xsu": {"english_name": "Sanumá"}, "avs": {"english_name": "Aushiri"}, "bbg": {"english_name": "Barama"}, "ksu": {"english_name": "Khamyang"}, "yan": {"english_name": "Mayangna"}, "alx": {"english_name": "Amol"}, "zty": {"english_name": "Zapotec, Yatee"}, "tgc": {"english_name": "Tigak"}, "bwb": {"english_name": "Namosi-Naitasiri-Serua"}, "tnh": {"english_name": "Maiani"}, "smm": {"english_name": "Musasa"}, "urz": {"english_name": "Uru-Eu-Wau-Wau"}, "oka": {"english_name": "Okanagan"}, "syi": {"english_name": "Seki"}, "fam": {"english_name": "Fam"}, "ley": {"english_name": "Lemolang"}, "nyu": {"english_name": "Nyungwe"}, "pth": {"english_name": "Pataxó Hã-Ha-Hãe"}, "pss": {"english_name": "Kaulong"}, "ldi": {"english_name": "Laari"}, "mdt": {"english_name": "Mbere"}, "gus": {"english_name": "Guinean Sign Language"}, "slx": {"english_name": "Salampasu"}, "tsb": {"english_name": "Tsamai"}, "rxw": {"english_name": "Karuwali"}, "zmo": {"english_name": "Molo"}, "aae": {"english_name": "Albanian, Arbëreshë"}, "bdk": {"english_name": "Budukh"}, "aih": {"english_name": "Ai-Cham"}, "bvj": {"english_name": "Baan"}, "bmg": {"english_name": "Bamwe"}, "cox": {"english_name": "Nanti"}, "kfm": {"english_name": "Khunsari"}, "xps": {"english_name": "Pisidian"}, "jns": {"english_name": "Jaunsari"}, "eja": {"english_name": "Ejamat"}, "opy": {"english_name": "Ofayé"}, "pof": {"english_name": "Poke"}, "rgk": {"english_name": "Rangkas"}, "xrq": {"english_name": "Karranga"}, "kji": {"english_name": "Zabana"}, "iar": {"english_name": "Purari"}, "yph": {"english_name": "Phupha"}, "asj": {"english_name": "Sari"}, "lan": {"english_name": "Laru"}, "lma": {"english_name": "Limba, East"}, "eze": {"english_name": "Uzekwe"}, "av": {"english_name": "Avaric"}, "mry": {"english_name": "Mandaya"}, "omc": {"english_name": "Mochica"}, "pbi": {"english_name": "Parkwa"}, "bpx": {"english_name": "Bareli, Palya"}, "tap": {"english_name": "Taabwa"}, "knw": {"english_name": "Kung-Ekoka"}, "dmb": {"english_name": "Dogon, Mombo"}, "mbz": {"english_name": "Mixtec, Amoltepec"}, "mfs": {"english_name": "Mexican Sign Language"}, "hit": {"english_name": "Hittite"}, "mmk": {"english_name": "Mukha-Dora"}, "bny": {"english_name": "Bintulu"}, "uun": {"english_name": "Kulon-Pazeh"}, "blg": {"english_name": "Balau"}, "kao": {"english_name": "Xaasongaxango"}, "iml": {"english_name": "Miluk"}, "kzy": {"english_name": "Kango (Tshopo District)"}, "cnx": {"english_name": "Cornish, Middle"}, "lig": {"english_name": "Ligbi"}, "bjj": {"english_name": "Kanauji"}, "mde": {"english_name": "Maba (Chad)"}, "gaw": {"english_name": "Nobonob"}, "psw": {"english_name": "Port Sandwich"}, "ab": {"english_name": "Abkhazian"}, "gnt": {"english_name": "Guntai"}, "mau": {"english_name": "Mazatec, Huautla"}, "drs": {"english_name": "Gedeo"}, "axk": {"english_name": "Yaka (Central African Republic)"}, "lap": {"english_name": "Laka (Chad)"}, "axl": {"english_name": "Aranda, Lower Southern"}, "ayi": {"english_name": "Leyigha"}, "atk": {"english_name": "Ati"}, "ojc": {"english_name": "Ojibwa, Central"}, "kig": {"english_name": "Kimaama"}, "nbd": {"english_name": "Ngbinda"}, "lmp": {"english_name": "Limbum"}, "cch": {"english_name": "Atsam"}, "kry": {"english_name": "Kryts"}, "kti": {"english_name": "Muyu, North"}, "ker": {"english_name": "Kera"}, "tpy": {"english_name": "Trumai"}, "zkh": {"english_name": "Khorezmian"}, "pnb": {"english_name": "Panjabi, Western"}, "gax": {"english_name": "Oromo, Borana-Arsi-Guji"}, "wlm": {"english_name": "Welsh, Middle"}, "enh": {"english_name": "Enets, Tundra"}, "hei": {"english_name": "Heiltsuk"}, "xhd": {"english_name": "Hadrami"}, "wwa": {"english_name": "Waama"}, "lrt": {"english_name": "Malay, Larantuka"}, "kka": {"english_name": "Kakanda"}, "tgv": {"english_name": "Tingui-Boto"}, "huh": {"english_name": "Huilliche"}, "aif": {"english_name": "Agi"}, "aly": {"english_name": "Alyawarr"}, "sel": {"english_name": "Selkup"}, "iou": {"english_name": "Tuma-Irumu"}, "czo": {"english_name": "Chinese, Min Zhong"}, "wmt": {"english_name": "Walmajarri"}, "fuv": {"english_name": "Fulfulde, Nigerian"}, "pin": {"english_name": "Piame"}, "ssd": {"english_name": "Siroi"}, "dta": {"english_name": "Daur"}, "awt": {"english_name": "Araweté"}, "arl": {"english_name": "Arabela"}, "mxn": {"english_name": "Moi (Indonesia)"}, "mfl": {"english_name": "Putai"}, "kzn": {"english_name": "Kokola"}, "odt": {"english_name": "Dutch, Old"}, "blj": {"english_name": "Bolongan"}, "nhy": {"english_name": "Nahuatl, Northern Oaxaca"}, "prz": {"english_name": "Providencia Sign Language"}, "srq": {"english_name": "Sirionó"}, "unx": {"english_name": "Munda"}, "kja": {"english_name": "Mlap"}, "smb": {"english_name": "Simbari"}, "snx": {"english_name": "Sam"}, "akp": {"english_name": "Siwu"}, "xmk": {"english_name": "Macedonian, Ancient"}, "xvo": {"english_name": "Volscian"}, "syc": {"english_name": "Syriac, Classical"}, "soo": {"english_name": "Songo"}, "lgq": {"english_name": "Logba"}, "nen": {"english_name": "Nengone"}, "inp": {"english_name": "Iñapari"}, "snm": {"english_name": "Ma'di, Southern"}, "kkx": {"english_name": "Kohin"}, "raf": {"english_name": "Meohang, Western"}, "bee": {"english_name": "Byangsi"}, "bil": {"english_name": "Bile"}, "brv": {"english_name": "Bru, Western"}, "caa": {"english_name": "Chortí"}, "jmi": {"english_name": "Jimi (Nigeria)"}, "yda": {"english_name": "Yanda"}, "jaf": {"english_name": "Jara"}, "qxw": {"english_name": "Quechua, Jauja Wanca"}, "uks": {"english_name": "Urubú-Kaapor Sign Language"}, "qvz": {"english_name": "Quichua, Northern Pastaza"}, "bbk": {"english_name": "Babanki"}, "kof": {"english_name": "Kubi"}, "zkg": {"english_name": "Koguryo"}, "cte": {"english_name": "Chinantec, Tepinapa"}, "qws": {"english_name": "Quechua, Sihuas Ancash"}, "zmt": {"english_name": "Maringarr"}, "hve": {"english_name": "Huave, San Dionisio Del Mar"}, "hag": {"english_name": "Hanga"}, "bgg": {"english_name": "Bugun"}, "tog": {"english_name": "Tonga (Nyasa)"}, "mog": {"english_name": "Mongondow"}, "ssc": {"english_name": "Suba-Simbiti"}, "ffm": {"english_name": "Fulfulde, Maasina"}, "lmf": {"english_name": "Lembata, South"}, "hem": {"english_name": "Hemba"}, "dee": {"english_name": "Dewoin"}, "mnx": {"english_name": "Manikion"}, "clc": {"english_name": "Chilcotin"}, "io": {"english_name": "Ido"}, "spq": {"english_name": "Spanish, Loreto-Ucayali"}, "arc": {"english_name": "Aramaic, Official (700-300 BCE)"}, "kdh": {"english_name": "Tem"}, "awy": {"english_name": "Awyu, Edera"}, "gri": {"english_name": "Ghari"}, "bqo": {"english_name": "Balo"}, "bye": {"english_name": "Pouye"}, "txu": {"english_name": "Kayapó"}, "ndt": {"english_name": "Ndunga"}, "rpt": {"english_name": "Rapting"}, "tus": {"english_name": "Tuscarora"}, "tyz": {"english_name": "Tày"}, "olk": {"english_name": "Olkol"}, "srv": {"english_name": "Sorsoganon, Southern"}, "kfk": {"english_name": "Kinnauri"}, "mqg": {"english_name": "Malay, Kota Bangun Kutai"}, "krj": {"english_name": "Kinaray-A"}, "nxu": {"english_name": "Narau"}, "hub": {"english_name": "Huambisa"}, "hma": {"english_name": "Hmong, Southern Mashan"}, "nph": {"english_name": "Naga, Phom"}, "wra": {"english_name": "Warapu"}, "nsk": {"english_name": "Naskapi"}, "bkq": {"english_name": "Bakairí"}, "url": {"english_name": "Urali"}, "eaa": {"english_name": "Karenggapa"}, "akk": {"english_name": "Akkadian"}, "avd": {"english_name": "Alviri-Vidari"}, "kmk": {"english_name": "Kalinga, Limos"}, "tsw": {"english_name": "Tsishingini"}, "wrb": {"english_name": "Warluwara"}, "auu": {"english_name": "Auye"}, "mxs": {"english_name": "Mixtec, Huitepec"}, "pij": {"english_name": "Pijao"}, "bor": {"english_name": "Borôro"}, "lez": {"english_name": "Lezghian"}, "hrt": {"english_name": "Hértevin"}, "lse": {"english_name": "Lusengo"}, "cuk": {"english_name": "Kuna, San Blas"}, "wne": {"english_name": "Waneci"}, "mum": {"english_name": "Maiwala"}, "cbu": {"english_name": "Candoshi-Shapra"}, "pgs": {"english_name": "Pangseng"}, "ige": {"english_name": "Igede"}, "otw": {"english_name": "Ottawa"}, "rej": {"english_name": "Rejang"}, "bmr": {"english_name": "Muinane"}, "mou": {"english_name": "Mogum"}, "kwx": {"english_name": "Khirwar"}, "tuv": {"english_name": "Turkana"}, "amw": {"english_name": "Neo-Aramaic, Western"}, "jye": {"english_name": "Arabic, Judeo-Yemeni"}, "xkx": {"english_name": "Karore"}, "rnl": {"english_name": "Ranglong"}, "ayt": {"english_name": "Ayta, Magbukun"}, "psn": {"english_name": "Panasuan"}, "kvr": {"english_name": "Kerinci"}, "dhi": {"english_name": "Dhimal"}, "loc": {"english_name": "Inonhan"}, "xtl": {"english_name": "Mixtec, Tijaltepec"}, "myg": {"english_name": "Manta"}, "sil": {"english_name": "Sisaala, Tumulung"}, "nnl": {"english_name": "Naga, Northern Rengma"}, "xag": {"english_name": "Aghwan"}, "nfd": {"english_name": "Ahwai"}, "fan": {"english_name": "Fang (Equatorial Guinea)"}, "abh": {"english_name": "Arabic, Tajiki"}, "cu": {"english_name": "Slavic, Church"}, "kyx": {"english_name": "Rapoisi"}, "xkv": {"english_name": "Kgalagadi"}, "kxu": {"english_name": "Kui (India)"}, "mml": {"english_name": "Man Met"}, "bcc": {"english_name": "Balochi, Southern"}, "kng": {"english_name": "Koongo"}, "lmr": {"english_name": "Lamalera"}, "bjz": {"english_name": "Baruga"}, "vil": {"english_name": "Vilela"}, "ckb": {"english_name": "Kurdish, Central"}, "ngn": {"english_name": "Ngwo"}, "mkp": {"english_name": "Moikodi"}, "bbd": {"english_name": "Bau"}, "vbk": {"english_name": "Bontok, Southwestern"}, "bcd": {"english_name": "Babar, North"}, "ebr": {"english_name": "Ebrié"}, "mng": {"english_name": "Mnong, Eastern"}, "khv": {"english_name": "Khvarshi"}, "kgb": {"english_name": "Kawe"}, "sah": {"english_name": "Yakut"}, "mef": {"english_name": "Megam"}, "zkz": {"english_name": "Khazar"}, "cja": {"english_name": "Cham, Western"}, "tco": {"english_name": "Taungyo"}, "hsn": {"english_name": "Chinese, Xiang"}, "sxw": {"english_name": "Gbe, Saxwe"}, "nyl": {"english_name": "Nyeu"}, "mrj": {"english_name": "Mari, Western"}, "xmy": {"english_name": "Mayaguduna"}, "ekk": {"english_name": "Estonian, Standard"}, "bfp": {"english_name": "Beba"}, "lia": {"english_name": "Limba, West-Central"}, "ncp": {"english_name": "Ndaktup"}, "kkv": {"english_name": "Kangean"}, "mia": {"english_name": "Miami"}, "lof": {"english_name": "Logol"}, "tnd": {"english_name": "Tunebo, Angosturas"}, "bkx": {"english_name": "Baikeno"}, "adw": {"english_name": "Amundava"}, "pim": {"english_name": "Powhatan"}, "neo": {"english_name": "Ná-Meo"}, "mbi": {"english_name": "Manobo, Ilianen"}, "tto": {"english_name": "Ta'oih, Lower"}, "rwa": {"english_name": "Rawo"}, "suw": {"english_name": "Sumbwa"}, "wim": {"english_name": "Wik-Mungkan"}, "plw": {"english_name": "Palawano, Brooke's Point"}, "oyy": {"english_name": "Oya'oya"}, "izz": {"english_name": "Izii"}, "kjy": {"english_name": "Erave"}, "hai": {"english_name": "Haida"}, "lwg": {"english_name": "Wanga"}, "yko": {"english_name": "Yasa"}, "dtr": {"english_name": "Lotud"}, "bug": {"english_name": "Buginese"}, "kcm": {"english_name": "Gula (Central African Republic)"}, "lje": {"english_name": "Rampi"}, "stv": {"english_name": "Silt'e"}, "xub": {"english_name": "Kurumba, Betta"}, "itr": {"english_name": "Iteri"}, "gbg": {"english_name": "Gbanziri"}, "nkf": {"english_name": "Naga, Inpui"}, "ibe": {"english_name": "Akpes"}, "xbo": {"english_name": "Bolgarian"}, "fr": {"name": "français", "english_name": "French"}, "gcr": {"english_name": "Creole French, Guianese"}, "nll": {"english_name": "Nihali"}, "bhh": {"english_name": "Bukharic"}, "gec": {"english_name": "Grebo, Gboloo"}, "zkp": {"english_name": "Kaingáng, São Paulo"}, "kno": {"english_name": "Kono (Sierra Leone)"}, "ahl": {"english_name": "Igo"}, "lut": {"english_name": "Lushootseed"}, "lev": {"english_name": "Lamma"}, "waj": {"english_name": "Waffa"}, "kww": {"english_name": "Kwinti"}, "am": {"name": "አማርኛ", "english_name": "Amharic"}, "sou": {"english_name": "Thai, Southern"}, "gaf": {"english_name": "Gende"}, "sm": {"english_name": "Samoan"}, "wuv": {"english_name": "Wuvulu-Aua"}, "snw": {"english_name": "Selee"}, "mor": {"english_name": "Moro"}, "bhf": {"english_name": "Odiai"}, "bzb": {"english_name": "Andio"}, "moz": {"english_name": "Mukulu"}, "vma": {"english_name": "Martuyhunira"}, "bjy": {"english_name": "Bayali"}, "nba": {"english_name": "Nyemba"}, "aa": {"english_name": "Afar"}, "biq": {"english_name": "Bipi"}, "szp": {"english_name": "Suabo"}, "cbg": {"english_name": "Chimila"}, "wof": {"english_name": "Wolof, Gambian"}, "bty": {"english_name": "Bobot"}, "mwq": {"english_name": "Chin, Mün"}, "kyd": {"english_name": "Karey"}, "bkn": {"english_name": "Bukitan"}, "pwi": {"english_name": "Patwin"}, "brl": {"english_name": "Birwa"}, "poi": {"english_name": "Popoluca, Highland"}, "lgh": {"english_name": "Laghuu"}, "xkw": {"english_name": "Kembra"}, "wnp": {"english_name": "Wanap"}, "pxm": {"english_name": "Mixe, Quetzaltepec"}, "ekc": {"english_name": "Karnic, Eastern"}, "syw": {"english_name": "Kagate"}, "bsw": {"english_name": "Baiso"}, "uiv": {"english_name": "Iyive"}, "ggn": {"english_name": "Gurung, Eastern"}, "cpb": {"english_name": "Ashéninka, Ucayali-Yurúa"}, "bgv": {"english_name": "Warkay-Bipim"}, "kxp": {"english_name": "Koli, Wadiyara"}, "bpn": {"english_name": "Dzao Min"}, "tjm": {"english_name": "Timucua"}, "kdx": {"english_name": "Kam"}, "bfj": {"english_name": "Bafanji"}, "adq": {"english_name": "Adangbe"}, "rma": {"english_name": "Rama"}, "hnd": {"english_name": "Hindko, Southern"}, "mxd": {"english_name": "Modang"}, "gar": {"english_name": "Galeya"}, "tnq": {"english_name": "Taino"}, "bwj": {"english_name": "Bwamu, Láá Láá"}, "nxa": {"english_name": "Nauete"}, "ain": {"english_name": "Ainu (Japan)"}, "gub": {"english_name": "Guajajára"}, "cda": {"english_name": "Choni"}, "ish": {"english_name": "Esan"}, "oum": {"english_name": "Ouma"}, "kpz": {"english_name": "Kupsabiny"}, "bss": {"english_name": "Akoose"}, "xem": {"english_name": "Kembayan"}, "wci": {"english_name": "Gbe, Waci"}, "nac": {"english_name": "Narak"}, "jau": {"english_name": "Yaur"}, "ikx": {"english_name": "Ik"}, "kgv": {"english_name": "Karas"}, "bgo": {"english_name": "Baga Koga"}, "oko": {"english_name": "Korean, Old (3rd-9th cent.)"}, "sgz": {"english_name": "Sursurunga"}, "lks": {"english_name": "Kisa"}, "gdn": {"english_name": "Umanakaina"}, "aga": {"english_name": "Aguano"}, "vaj": {"english_name": "Vasekela Bushman"}, "mqu": {"english_name": "Mandari"}, "ssv": {"english_name": "Shark Bay"}, "kam": {"english_name": "Kamba (Kenya)"}, "bhq": {"english_name": "Tukang Besi South"}, "taq": {"english_name": "Tamasheq"}, "dux": {"english_name": "Duungooma"}, "gni": {"english_name": "Gooniyandi"}, "krh": {"english_name": "Kurama"}, "kpy": {"english_name": "Koryak"}, "kwg": {"english_name": "Sara Kaba Deme"}, "mha": {"english_name": "Manda (India)"}, "kce": {"english_name": "Kaivi"}, "bzd": {"english_name": "Bribri"}, "pea": {"english_name": "Indonesian, Peranakan"}, "pmo": {"english_name": "Pom"}, "bzu": {"english_name": "Burmeso"}, "ysy": {"english_name": "Sanie"}, "dmr": {"english_name": "Damar, East"}, "rkw": {"english_name": "Arakwal"}, "lbt": {"english_name": "Lachi"}, "xte": {"english_name": "Ketengban"}, "gwj": {"english_name": "/Gwi"}, "npb": {"english_name": "Nupbikha"}, "gig": {"english_name": "Goaria"}, "bjb": {"english_name": "Banggarla"}, "pme": {"english_name": "Pwaamei"}, "imy": {"english_name": "Milyan"}, "ili": {"english_name": "Ili Turki"}, "too": {"english_name": "Totonac, Xicotepec De Juárez"}, "tix": {"english_name": "Tiwa, Southern"}, "log": {"english_name": "Logo"}, "tzj": {"english_name": "Tz'utujil"}, "kbp": {"english_name": "Kabiyè"}, "uga": {"english_name": "Ugaritic"}, "sqq": {"english_name": "Sou"}, "xch": {"english_name": "Chemakum"}, "bww": {"english_name": "Bwa"}, "cim": {"english_name": "Cimbrian"}, "acm": {"english_name": "Arabic, Mesopotamian"}, "nsx": {"english_name": "Nsongo"}, "hor": {"english_name": "Horo"}, "pmd": {"english_name": "Pallanganmiddang"}, "bix": {"english_name": "Bijori"}, "srw": {"english_name": "Serua"}, "hya": {"english_name": "Hya"}, "ars": {"english_name": "Arabic, Najdi"}, "wgg": {"english_name": "Wangganguru"}, "noc": {"english_name": "Nuk"}, "itm": {"english_name": "Itu Mbon Uzo"}, "xlo": {"english_name": "Loup A"}, "moj": {"english_name": "Monzombo"}, "tlo": {"english_name": "Talodi"}, "da": {"name": "Dansk", "english_name": "Danish"}, "bnn": {"english_name": "Bunun"}, "rim": {"english_name": "Nyaturu"}, "mzz": {"english_name": "Maiadomu"}, "hsh": {"english_name": "Hungarian Sign Language"}, "bvf": {"english_name": "Boor"}, "bjf": {"english_name": "Neo-Aramaic, Barzani Jewish"}, "gvo": {"english_name": "Gavião Do Jiparaná"}, "gua": {"english_name": "Shiki"}, "sma": {"english_name": "Sami, Southern"}, "aer": {"english_name": "Arrernte, Eastern"}, "rw": {"name": "Ikinyarwanda", "english_name": "Kinyarwanda"}, "mps": {"english_name": "Dadibi"}, "wri": {"english_name": "Wariyangga"}, "abg": {"english_name": "Abaga"}, "kqn": {"english_name": "Kaonde"}, "bja": {"english_name": "Budza"}, "cjv": {"english_name": "Chuave"}, "mbd": {"english_name": "Manobo, Dibabawon"}, "hca": {"english_name": "Creole Hindi, Andaman"}, "inm": {"english_name": "Minaean"}, "ide": {"english_name": "Idere"}, "kls": {"english_name": "Kalasha"}, "sns": {"english_name": "South West Bay"}, "aan": {"english_name": "Anambé"}, "tem": {"english_name": "Timne"}, "tlv": {"english_name": "Taliabu"}, "xkd": {"english_name": "Kayan, Mendalam"}, "hnn": {"english_name": "Hanunoo"}, "bct": {"english_name": "Bendi"}, "sda": {"english_name": "Toraja-Sa'dan"}, "yuz": {"english_name": "Yuracare"}, "osp": {"english_name": "Spanish, Old"}, "noi": {"english_name": "Noiri"}, "jra": {"english_name": "Jarai"}, "mcw": {"english_name": "Mawa (Chad)"}, "gnd": {"english_name": "Zulgo-Gemzek"}, "shq": {"english_name": "Sala"}, "otd": {"english_name": "Ot Danum"}, "tag": {"english_name": "Tagoi"}, "lwm": {"english_name": "Laomian"}, "lmo": {"english_name": "Lombard"}, "nap": {"english_name": "Neapolitan"}, "zga": {"english_name": "Kinga"}, "pda": {"english_name": "Anam"}, "phr": {"english_name": "Pahari-Potwari"}, "zkb": {"english_name": "Koibal"}, "twp": {"english_name": "Ere"}, "ncf": {"english_name": "Notsi"}, "ndh": {"english_name": "Ndali"}, "myx": {"english_name": "Masaaba"}, "bqg": {"english_name": "Bago-Kusuntu"}, "aku": {"english_name": "Akum"}, "bqf": {"english_name": "Baga Kaloum"}, "djk": {"english_name": "Eastern Maroon Creole"}, "rmh": {"english_name": "Murkim"}, "mjp": {"english_name": "Malapandaram"}, "tvu": {"english_name": "Tunen"}, "bnp": {"english_name": "Bola"}, "kfz": {"english_name": "Koromfé"}, "mbk": {"english_name": "Malol"}, "pls": {"english_name": "Popoloca, San Marcos Tlalcoyalco"}, "nol": {"english_name": "Nomlaki"}, "bfz": {"english_name": "Pahari, Mahasu"}, "yxl": {"english_name": "Yardliyawarra"}, "kvb": {"english_name": "Kubu"}, "hur": {"english_name": "Halkomelem"}, "ags": {"english_name": "Esimbi"}, "wrk": {"english_name": "Garrwa"}, "gez": {"name": "ግዕዝኛ", "english_name": "Geez"}, "liv": {"english_name": "Liv"}, "yde": {"english_name": "Yangum Dey"}, "syr": {"english_name": "Syriac"}, "afe": {"english_name": "Putukwam"}, "apw": {"english_name": "Apache, Western"}, "okv": {"english_name": "Orokaiva"}, "mrq": {"english_name": "Marquesan, North"}, "sro": {"english_name": "Sardinian, Campidanese"}, "kui": {"english_name": "Kuikúro-Kalapálo"}, "amo": {"english_name": "Amo"}, "sad": {"english_name": "Sandawe"}, "shj": {"english_name": "Shatt"}, "gyr": {"english_name": "Guarayu"}, "krz": {"english_name": "Kanum, Sota"}, "unz": {"english_name": "Kaili, Unde"}, "so": {"english_name": "Somali"}, "nmk": {"english_name": "Namakura"}, "mwg": {"english_name": "Aiklep"}, "ccg": {"english_name": "Daka, Samba"}, "lpo": {"english_name": "Lipo"}, "qwc": {"english_name": "Quechua, Classical"}, "nla": {"english_name": "Ngombale"}, "urg": {"english_name": "Urigina"}, "glk": {"english_name": "Gilaki"}, "cwt": {"english_name": "Kuwaataay"}, "zpk": {"english_name": "Zapotec, Tlacolulita"}, "ify": {"english_name": "Kallahan, Keley-I"}, "wwo": {"english_name": "Wetamut"}, "mjd": {"english_name": "Maidu, Northwest"}, "yug": {"english_name": "Yug"}, "gzn": {"english_name": "Gane"}, "beq": {"english_name": "Beembe"}, "mcd": {"english_name": "Sharanahua"}, "mmz": {"english_name": "Mabaale"}, "tul": {"english_name": "Tula"}, "ybb": {"english_name": "Yemba"}, "kgm": {"english_name": "Karipúna"}, "dhl": {"english_name": "Dhalandji"}, "mwk": {"english_name": "Maninkakan, Kita"}, "sdl": {"english_name": "Saudi Arabian Sign Language"}, "amy": {"english_name": "Ami"}, "bbh": {"english_name": "Bugan"}, "pbh": {"english_name": "E'ñapa Woromaipu"}, "kfq": {"english_name": "Korku"}, "mxm": {"english_name": "Meramera"}, "aht": {"english_name": "Ahtena"}, "zca": {"english_name": "Zapotec, Coatecas Altas"}, "wng": {"english_name": "Wanggom"}, "ome": {"english_name": "Omejes"}, "tvd": {"english_name": "Tsuvadi"}, "sky": {"english_name": "Sikaiana"}, "jam": {"english_name": "Creole English, Jamaican"}, "bav": {"english_name": "Vengo"}, "bwf": {"english_name": "Boselewa"}, "zkv": {"english_name": "Krevinian"}, "hav": {"english_name": "Havu"}, "zml": {"english_name": "Madngele"}, "lib": {"english_name": "Likum"}, "pac": {"english_name": "Pacoh"}, "tsp": {"english_name": "Toussian, Northern"}, "ntk": {"english_name": "Ikoma-Nata-Isenye"}, "jeb": {"english_name": "Jebero"}, "xls": {"english_name": "Lusitanian"}, "swm": {"english_name": "Samosa"}, "nka": {"english_name": "Nkoya"}, "tew": {"english_name": "Tewa (USA)"}, "osi": {"english_name": "Osing"}, "huz": {"english_name": "Hunzib"}, "ght": {"english_name": "Kuke"}, "nhv": {"english_name": "Nahuatl, Temascaltepec"}, "mgu": {"english_name": "Mailu"}, "psc": {"english_name": "Persian Sign Language"}, "nyg": {"english_name": "Nyindu"}, "bdx": {"english_name": "Budong-Budong"}, "stb": {"english_name": "Subanen, Northern"}, "sjg": {"english_name": "Assangori"}, "oin": {"english_name": "One, Inebu"}, "trc": {"english_name": "Triqui, Copala"}, "ghe": {"english_name": "Ghale, Southern"}, "pmj": {"english_name": "Pumi, Southern"}, "epi": {"english_name": "Epie"}, "ray": {"english_name": "Rapa"}, "lld": {"english_name": "Ladin"}, "kts": {"english_name": "Muyu, South"}, "kay": {"english_name": "Kamayurá"}, "aja": {"english_name": "Aja (Sudan)"}, "lzn": {"english_name": "Naga, Leinong"}, "kkd": {"english_name": "Kinuku"}, "blo": {"english_name": "Anii"}, "lnd": {"english_name": "Lundayeh"}, "sor": {"english_name": "Somrai"}, "zhd": {"english_name": "Zhuang, Dai"}, "mbw": {"english_name": "Maring"}, "bmq": {"english_name": "Bomu"}, "ktg": {"english_name": "Kalkutung"}, "mrk": {"english_name": "Hmwaveke"}, "neg": {"english_name": "Negidal"}, "xdy": {"english_name": "Dayak, Malayic"}, "rdb": {"english_name": "Rudbari"}, "aio": {"english_name": "Aiton"}, "mec": {"english_name": "Mara"}, "bbz": {"english_name": "Creole Arabic, Babalia"}, "rat": {"english_name": "Razajerdi"}, "phn": {"english_name": "Phoenician"}, "swn": {"english_name": "Sawknah"}, "bbs": {"english_name": "Bakpinka"}, "omn": {"english_name": "Minoan"}, "bhx": {"english_name": "Bhalay"}, "tpi": {"english_name": "Tok Pisin"}, "kvm": {"english_name": "Kendem"}, "ria": {"english_name": "Riang (India)"}, "ssh": {"english_name": "Arabic, Shihhi"}, "klv": {"english_name": "Maskelynes"}, "ngl": {"english_name": "Lomwe"}, "mni": {"english_name": "Manipuri"}, "jls": {"english_name": "Jamaican Sign Language"}, "vlp": {"english_name": "Valpei"}, "kaf": {"english_name": "Katso"}, "scp": {"english_name": "Helambu Sherpa"}, "blq": {"english_name": "Baluan-Pam"}, "aru": {"english_name": "Aruá (Amazonas State)"}, "tpx": {"english_name": "Me'phaa, Acatepec"}, "mdj": {"english_name": "Mangbetu"}, "sdh": {"english_name": "Kurdish, Southern"}, "lbe": {"english_name": "Lak"}, "jaz": {"english_name": "Jawe"}, "wtw": {"english_name": "Wotu"}, "onb": {"english_name": "Lingao"}, "msc": {"english_name": "Maninka, Sankaran"}, "aji": {"english_name": "Ajië"}, "elx": {"english_name": "Elamite"}, "tcm": {"english_name": "Tanahmerah"}, "ncr": {"english_name": "Ncane"}, "bcq": {"english_name": "Bench"}, "kbs": {"english_name": "Kande"}, "xbj": {"english_name": "Birrpayi"}, "hed": {"english_name": "Herdé"}, "mpt": {"english_name": "Mian"}, "xpn": {"english_name": "Kapinawá"}, "dim": {"english_name": "Dime"}, "cdy": {"english_name": "Chadong"}, "kna": {"english_name": "Dera (Nigeria)"}, "gbr": {"english_name": "Gbagyi"}, "tye": {"english_name": "Kyanga"}, "omi": {"english_name": "Omi"}, "oni": {"english_name": "Onin"}, "nxi": {"english_name": "Nindi"}, "ybi": {"english_name": "Yamphu"}, "cse": {"english_name": "Czech Sign Language"}, "mjo": {"english_name": "Malankuravan"}, "apq": {"english_name": "A-Pucikwar"}, "wum": {"english_name": "Wumbvu"}, "age": {"english_name": "Angal"}, "bdl": {"english_name": "Bajau, Indonesian"}, "clo": {"english_name": "Chontal, Lowland Oaxaca"}, "vnm": {"english_name": "Vinmavis"}, "rxd": {"english_name": "Ngardi"}, "miz": {"english_name": "Mixtec, Coatzospan"}, "xbx": {"english_name": "Kabixí"}, "auo": {"english_name": "Auyokawa"}, "kef": {"english_name": "Kpessi"}, "cra": {"english_name": "Chara"}, "mic": {"english_name": "Mi'kmaq"}, "dgx": {"english_name": "Doghoro"}, "pgg": {"english_name": "Pangwali"}, "zlj": {"english_name": "Zhuang, Liujiang"}, "oaa": {"english_name": "Orok"}, "frr": {"english_name": "Frisian, Northern"}, "yaf": {"english_name": "Yaka (Democratic Republic of Congo)"}, "mkx": {"english_name": "Manobo, Kinamiging"}, "gac": {"english_name": "Great Andamanese, Mixed"}, "mhy": {"english_name": "Ma'anyan"}, "nyo": {"english_name": "Nyoro"}, "nl": {"name": "Nederlands", "english_name": "Dutch"}, "tvy": {"english_name": "Pidgin, Timor"}, "qui": {"english_name": "Quileute"}, "hu": {"name": "magyar", "english_name": "Hungarian"}, "gdh": {"english_name": "Gadjerawang"}, "bdb": {"english_name": "Basap"}, "dbu": {"english_name": "Dogon, Bondum Dom"}, "lej": {"english_name": "Lengola"}, "wku": {"english_name": "Kunduvadi"}, "ncg": {"english_name": "Nisga'a"}, "knt": {"english_name": "Katukína, Panoan"}, "it": {"name": "Italiano", "english_name": "Italian"}, "mql": {"english_name": "Mbelime"}, "bls": {"english_name": "Balaesang"}, "axg": {"english_name": "Arára, Mato Grosso"}, "lpx": {"english_name": "Lopit"}, "hiw": {"english_name": "Hiw"}, "lag": {"english_name": "Langi"}, "pbn": {"english_name": "Kpasam"}, "keu": {"english_name": "Akebu"}, "pzn": {"english_name": "Naga, Para"}, "let": {"english_name": "Lesing-Gelimi"}, "cta": {"english_name": "Chatino, Tataltepec"}, "yne": {"english_name": "Lang'e"}, "pig": {"english_name": "Pisabo"}, "blz": {"english_name": "Balantak"}, "oro": {"english_name": "Orokolo"}, "plq": {"english_name": "Palaic"}, "yuc": {"english_name": "Yuchi"}, "xmn": {"english_name": "Persian, Manichaean Middle"}, "mkz": {"english_name": "Makasae"}, "hab": {"english_name": "Hanoi Sign Language"}, "cbv": {"english_name": "Cacua"}, "ole": {"english_name": "Olekha"}, "itv": {"english_name": "Itawit"}, "srr": {"english_name": "Serer"}, "qwm": {"english_name": "Kuman (Russia)"}, "cgc": {"english_name": "Kagayanen"}, "lha": {"english_name": "Laha (Viet Nam)"}, "lto": {"english_name": "Tsotso"}, "lui": {"english_name": "Luiseno"}, "bxv": {"english_name": "Berakou"}, "bpo": {"english_name": "Anasi"}, "xky": {"english_name": "Uma' Lasan"}, "vau": {"english_name": "Vanuma"}, "nar": {"english_name": "Iguta"}, "diw": {"english_name": "Dinka, Northwestern"}, "xor": {"english_name": "Korubo"}, "hmm": {"english_name": "Hmong, Central Mashan"}, "srh": {"english_name": "Sarikoli"}, "ccm": {"english_name": "Creole Malay, Malaccan"}, "nsf": {"english_name": "Nisu, Northwestern"}, "rri": {"english_name": "Ririo"}, "mtt": {"english_name": "Mota"}, "sll": {"english_name": "Salt-Yui"}, "umb": {"english_name": "Umbundu"}, "fkk": {"english_name": "Kirya-Konzəl"}, "lua": {"english_name": "Luba-Lulua"}, "cpg": {"english_name": "Greek, Cappadocian"}, "gha": {"english_name": "Ghadamès"}, "tri": {"english_name": "Trió"}, "cll": {"english_name": "Chala"}, "obi": {"english_name": "Obispeño"}, "tdu": {"english_name": "Dusun, Tempasuk"}, "mdh": {"english_name": "Maguindanaon"}, "lkc": {"english_name": "Kucong"}, "brc": {"english_name": "Creole Dutch, Berbice"}, "blt": {"english_name": "Tai Dam"}, "kbc": {"english_name": "Kadiwéu"}, "kzk": {"english_name": "Kazukuru"}, "mlh": {"english_name": "Mape"}, "shl": {"english_name": "Shendu"}, "ism": {"english_name": "Masimasi"}, "jaj": {"english_name": "Zazao"}, "tax": {"english_name": "Tamki"}, "orr": {"english_name": "Oruma"}, "pmz": {"english_name": "Pame, Southern"}, "yla": {"english_name": "Yaul"}, "dah": {"english_name": "Gwahatike"}, "sbw": {"english_name": "Simba"}, "klh": {"english_name": "Weliki"}, "ami": {"english_name": "Amis"}, "xmw": {"english_name": "Malagasy, Tsimihety"}, "mpl": {"english_name": "Watut, Middle"}, "gdd": {"english_name": "Gedaged"}, "nmb": {"english_name": "Nambas, Big"}, "glw": {"english_name": "Glavda"}, "hnj": {"english_name": "Hmong Njua"}, "uve": {"english_name": "Uvean, West"}, "doi": {"english_name": "Dogri (macrolanguage)"}, "gwm": {"english_name": "Awngthim"}, "tmg": {"english_name": "Ternateño"}, "nda": {"english_name": "Ndasa"}, "mpm": {"english_name": "Mixtec, Yosondúa"}, "qxu": {"english_name": "Quechua, Arequipa-La Unión"}, "uba": {"english_name": "Ubang"}, "bep": {"english_name": "Besoa"}, "sqs": {"english_name": "Sri Lankan Sign Language"}, "lok": {"english_name": "Loko"}, "meo": {"english_name": "Malay, Kedah"}, "cob": {"english_name": "Chicomuceltec"}, "keb": {"english_name": "Kélé"}, "kmo": {"english_name": "Kwoma"}, "ycp": {"english_name": "Chepya"}, "dsb": {"english_name": "Sorbian, Lower"}, "nnb": {"english_name": "Nande"}, "xet": {"english_name": "Xetá"}, "sam": {"english_name": "Aramaic, Samaritan"}, "cwe": {"english_name": "Kwere"}, "nec": {"english_name": "Nedebang"}, "muv": {"english_name": "Muthuvan"}, "tht": {"english_name": "Tahltan"}, "itw": {"english_name": "Ito"}, "wad": {"english_name": "Wandamen"}, "nmy": {"english_name": "Namuyi"}, "mlm": {"english_name": "Mulam"}, "hrc": {"english_name": "Niwer Mil"}, "quc": {"english_name": "K'iche'"}, "nby": {"english_name": "Ningera"}, "vit": {"english_name": "Viti"}, "deh": {"english_name": "Dehwari"}, "lrz": {"english_name": "Lemerig"}, "tcl": {"english_name": "Taman (Myanmar)"}, "ckq": {"english_name": "Kajakse"}, "cut": {"english_name": "Cuicatec, Teutila"}, "src": {"english_name": "Sardinian, Logudorese"}, "hup": {"english_name": "Hupa"}, "mrl": {"english_name": "Mortlockese"}, "ymg": {"english_name": "Yamongeri"}, "ppp": {"english_name": "Pelende"}, "mqh": {"english_name": "Mixtec, Tlazoyaltepec"}, "yey": {"english_name": "Yeyi"}, "pka": {"english_name": "Prākrit, Ardhamāgadhī"}, "apg": {"english_name": "Ampanang"}, "ney": {"english_name": "Neyo"}, "lnu": {"english_name": "Longuda"}, "sba": {"english_name": "Ngambay"}, "lwl": {"english_name": "Lawa, Eastern"}, "slz": {"english_name": "Ma'ya"}, "kip": {"english_name": "Kham, Sheshi"}, "eke": {"english_name": "Ekit"}, "nuf": {"english_name": "Nusu"}, "ttd": {"english_name": "Tauade"}, "ggu": {"english_name": "Gagu"}, "mss": {"english_name": "Masela, West"}, "nos": {"english_name": "Nisu, Eastern"}, "htx": {"english_name": "Hittite, Middle"}, "kgk": {"english_name": "Kaiwá"}, "aog": {"english_name": "Angoram"}, "xng": {"english_name": "Mongolian, Middle"}, "dzn": {"english_name": "Dzando"}, "bbp": {"english_name": "Banda, West Central"}, "quk": {"english_name": "Quechua, Chachapoyas"}}, "bing images": ["de-DE", "ar-SA", "es-AR", "en-AU", "de-AT", "fr-BE", "nl-BE", "pt-BR", "fr-CA", "en-CA", "ko-KR", "es-ES", "es-US", "en-US", "fr-FR", "zh-HK", "en-IN", "en-ID", "it-IT", "ja-JP", "en-MY", "es-MX", "no-NO", "nl-NL", "pl-PL", "en-GB", "zh-CN", "ru-RU", "en-ZA", "sv-SE", "de-CH", "fr-CH", "zh-TW", "tr-TR"], "wikidata": {"it": {"articles": 1418064, "name": "Italiano", "english_name": "Italian"}, "azb": {"articles": 68162, "name": "تۆرکجه", "english_name": "South Azerbaijani"}, "kbp": {"articles": 1261, "name": "Kabɩyɛ", "english_name": "Kabiye"}, "bar": {"articles": 24214, "name": "Boarisch", "english_name": "Bavarian"}, "tyv": {"articles": 1515, "name": "Тыва", "english_name": "Tuvan"}, "za": {"articles": 1178, "name": "Cuengh", "english_name": "Zhuang"}, "az": {"articles": 131962, "name": "Azərbaycanca", "english_name": "Azerbaijani"}, "crh": {"articles": 5644, "name": "Qırımtatarca", "english_name": "Crimean Tatar"}, "nn": {"articles": 136687, "name": "Nynorsk", "english_name": "Norwegian (Nynorsk)"}, "fi": {"articles": 431267, "name": "Suomi", "english_name": "Finnish"}, "mdf": {"articles": 1182, "name": "Мокшень (Mokshanj Kälj)", "english_name": "Moksha"}, "mai": {"articles": 12317, "name": "मैथिली", "english_name": "Maithili"}, "gag": {"articles": 2757, "name": "Gagauz", "english_name": "Gagauz"}, "ceb": {"articles": 5383102, "name": "Sinugboanong Binisaya", "english_name": "Cebuano"}, "yo": {"articles": 31608, "name": "Yorùbá", "english_name": "Yoruba"}, "ty": {"articles": 1196, "name": "Reo Mā`ohi", "english_name": "Tahitian"}, "fo": {"articles": 12678, "name": "Føroyskt", "english_name": "Faroese"}, "krc": {"articles": 2019, "name": "Къарачай-Малкъар (Qarachay-Malqar)", "english_name": "Karachay-Balkar"}, "gu": {"articles": 27562, "name": "ગુજરાતી", "english_name": "Gujarati"}, "srn": {"articles": 1059, "name": "Sranantongo", "english_name": "Sranan"}, "min": {"articles": 222143, "name": "Minangkabau", "english_name": "Minangkabau"}, "ik": {"articles": 261, "name": "Iñupiak", "english_name": "Inupiak"}, "ti": {"articles": 179, "name": "ትግርኛ", "english_name": "Tigrinya"}, "als": {"articles": 24008, "name": "Alemannisch", "english_name": "Alemannic"}, "ab": {"articles": 3400, "name": "Аҧсуа", "english_name": "Abkhazian"}, "hif": {"articles": 9732, "name": "Fiji Hindi", "english_name": "Fiji Hindi"}, "pcd": {"articles": 3621, "name": "Picard", "english_name": "Picard"}, "mi": {"articles": 7138, "name": "Māori", "english_name": "Maori"}, "fy": {"articles": 39580, "name": "Frysk", "english_name": "West Frisian"}, "yi": {"articles": 14302, "name": "ייִדיש", "english_name": "Yiddish"}, "tpi": {"articles": 1429, "name": "Tok Pisin", "english_name": "Tok Pisin"}, "rn": {"articles": 610, "name": "Kirundi", "english_name": "Kirundi"}, "sco": {"articles": 49298, "name": "Scots", "english_name": "Scots"}, "te": {"articles": 68668, "name": "తెలుగు", "english_name": "Telugu"}, "lij": {"articles": 3354, "name": "Líguru", "english_name": "Ligurian"}, "ss": {"articles": 439, "name": "SiSwati", "english_name": "Swati"}, "ht": {"articles": 51730, "name": "Krèyol ayisyen", "english_name": "Haitian"}, "af": {"articles": 48890, "name": "Afrikaans", "english_name": "Afrikaans"}, "om": {"articles": 765, "name": "Oromoo", "english_name": "Oromo"}, "sg": {"articles": 255, "name": "Sängö", "english_name": "Sango"}, "is": {"articles": 44302, "name": "Íslenska", "english_name": "Icelandic"}, "sh": {"articles": 442131, "name": "Srpskohrvatski / Српскохрватски", "english_name": "Serbo-Croatian"}, "sv": {"articles": 3784404, "name": "Svenska", "english_name": "Swedish"}, "war": {"articles": 1262806, "name": "Winaray", "english_name": "Waray-Waray"}, "pnb": {"articles": 46004, "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)", "english_name": "Western Punjabi"}, "tr": {"articles": 305725, "name": "Türkçe", "english_name": "Turkish"}, "roa-rup": {"articles": 1216, "name": "Armãneashce", "english_name": "Aromanian"}, "lbe": {"articles": 1215, "name": "Лакку", "english_name": "Lak"}, "ug": {"articles": 3503, "name": "ئۇيغۇر تىلى", "english_name": "Uyghur"}, "haw": {"articles": 2058, "name": "Hawai`i", "english_name": "Hawaiian"}, "pms": {"articles": 64299, "name": "Piemontèis", "english_name": "Piedmontese"}, "myv": {"articles": 5844, "name": "Эрзянь (Erzjanj Kelj)", "english_name": "Erzya"}, "map-bms": {"articles": 13308, "name": "Basa Banyumasan", "english_name": "Banyumasan"}, "tk": {"articles": 5319, "name": "تركمن / Туркмен", "english_name": "Turkmen"}, "mn": {"articles": 17830, "name": "Монгол", "english_name": "Mongolian"}, "rm": {"articles": 3482, "name": "Rumantsch", "english_name": "Romansh"}, "atj": {"articles": 416, "name": "Atikamekw", "english_name": "Atikamekw"}, "tt": {"articles": 76120, "name": "Tatarça / Татарча", "english_name": "Tatar"}, "frp": {"articles": 2835, "name": "Arpitan", "english_name": "Franco-Provençal"}, "ch": {"articles": 433, "name": "Chamoru", "english_name": "Chamorro"}, "ksh": {"articles": 2837, "name": "Ripoarisch", "english_name": "Ripuarian"}, "ko": {"articles": 409269, "name": "한국어", "english_name": "Korean"}, "bs": {"articles": 77079, "name": "Bosanski", "english_name": "Bosnian"}, "ak": {"articles": 322, "name": "Akana", "english_name": "Akan"}, "zh-min-nan": {"articles": 226187, "name": "Bân-lâm-gú", "english_name": "Min Nan"}, "co": {"articles": 5499, "name": "Corsu", "english_name": "Corsican"}, "ku": {"articles": 23198, "name": "Kurdî / كوردی", "english_name": "Kurdish"}, "he": {"articles": 219907, "name": "עברית", "english_name": "Hebrew"}, "koi": {"articles": 3452, "name": "Перем Коми (Perem Komi)", "english_name": "Komi-Permyak"}, "xal": {"articles": 2065, "name": "Хальмг", "english_name": "Kalmyk"}, "bcl": {"articles": 7298, "name": "Bikol", "english_name": "Central Bicolano"}, "eml": {"articles": 9557, "name": "Emiliàn e rumagnòl", "english_name": "Emilian-Romagnol"}, "es": {"articles": 1389641, "name": "Español", "english_name": "Spanish"}, "xh": {"articles": 728, "name": "isiXhosa", "english_name": "Xhosa"}, "jbo": {"articles": 1206, "name": "Lojban", "english_name": "Lojban"}, "nov": {"articles": 1652, "name": "Novial", "english_name": "Novial"}, "lb": {"articles": 51312, "name": "Lëtzebuergesch", "english_name": "Luxembourgish"}, "na": {"articles": 1286, "name": "dorerin Naoero", "english_name": "Nauruan"}, "lo": {"articles": 2817, "name": "ລາວ", "english_name": "Lao"}, "simple": {"articles": 131605, "name": "Simple English", "english_name": "Simple English"}, "nso": {"articles": 7824, "name": "Sepedi", "english_name": "Northern Sotho"}, "kbd": {"articles": 1574, "name": "Адыгэбзэ (Adighabze)", "english_name": "Kabardian Circassian"}, "su": {"articles": 39477, "name": "Basa Sunda", "english_name": "Sundanese"}, "th": {"articles": 122166, "name": "ไทย", "english_name": "Thai"}, "lv": {"articles": 82426, "name": "Latviešu", "english_name": "Latvian"}, "ba": {"articles": 41302, "name": "Башҡорт", "english_name": "Bashkir"}, "uz": {"articles": 129071, "name": "O‘zbek", "english_name": "Uzbek"}, "pl": {"articles": 1266265, "name": "Polski", "english_name": "Polish"}, "pfl": {"articles": 2072, "name": "Pälzisch", "english_name": "Palatinate German"}, "cs": {"articles": 400491, "name": "Čeština", "english_name": "Czech"}, "kk": {"articles": 220924, "name": "Қазақша", "english_name": "Kazakh"}, "la": {"articles": 127986, "name": "Latina", "english_name": "Latin"}, "si": {"articles": 14470, "name": "සිංහල", "english_name": "Sinhalese"}, "tw": {"articles": 604, "name": "Twi", "english_name": "Twi"}, "eo": {"articles": 245097, "name": "Esperanto", "english_name": "Esperanto"}, "ky": {"articles": 79879, "name": "Кыргызча", "english_name": "Kirghiz"}, "ast": {"articles": 59860, "name": "Asturianu", "english_name": "Asturian"}, "zh-classical": {"articles": 7389, "name": "古文 / 文言文", "english_name": "Classical Chinese"}, "sr": {"articles": 602867, "name": "Српски / Srpski", "english_name": "Serbian"}, "el": {"articles": 143124, "name": "Ελληνικά", "english_name": "Greek"}, "be": {"articles": 151018, "name": "Беларуская", "english_name": "Belarusian"}, "gl": {"articles": 145482, "name": "Galego", "english_name": "Galician"}, "tcy": {"articles": 902, "name": "ತುಳು", "english_name": "Tulu"}, "wuu": {"articles": 7120, "name": "吴语", "english_name": "Wu"}, "dv": {"articles": 3018, "name": "ދިވެހިބަސް", "english_name": "Divehi"}, "zea": {"articles": 4405, "name": "Zeêuws", "english_name": "Zeelandic"}, "ace": {"articles": 7209, "name": "Bahsa Acèh", "english_name": "Acehnese"}, "fj": {"articles": 426, "name": "Na Vosa Vakaviti", "english_name": "Fijian"}, "pa": {"articles": 27889, "name": "ਪੰਜਾਬੀ", "english_name": "Punjabi"}, "mg": {"articles": 84770, "name": "Malagasy", "english_name": "Malagasy"}, "frr": {"articles": 6483, "name": "Nordfriisk", "english_name": "North Frisian"}, "nv": {"articles": 4360, "name": "Diné bizaad", "english_name": "Navajo"}, "mzn": {"articles": 12613, "name": "مَزِروني", "english_name": "Mazandarani"}, "udm": {"articles": 4286, "name": "Удмурт кыл", "english_name": "Udmurt"}, "scn": {"articles": 25840, "name": "Sicilianu", "english_name": "Sicilian"}, "rue": {"articles": 6412, "name": "Русиньскый", "english_name": "Rusyn"}, "stq": {"articles": 3916, "name": "Seeltersk", "english_name": "Saterland Frisian"}, "zu": {"articles": 881, "name": "isiZulu", "english_name": "Zulu"}, "sc": {"articles": 5638, "name": "Sardu", "english_name": "Sardinian"}, "am": {"articles": 14115, "name": "አማርኛ", "english_name": "Amharic"}, "nl": {"articles": 1923974, "name": "Nederlands", "english_name": "Dutch"}, "st": {"articles": 536, "name": "Sesotho", "english_name": "Sesotho"}, "bn": {"articles": 56084, "name": "বাংলা", "english_name": "Bengali"}, "hu": {"articles": 426404, "name": "Magyar", "english_name": "Hungarian"}, "se": {"articles": 7357, "name": "Sámegiella", "english_name": "Northern Sami"}, "csb": {"articles": 5217, "name": "Kaszëbsczi", "english_name": "Kashubian"}, "fa": {"articles": 591515, "name": "فارسی", "english_name": "Persian"}, "ha": {"articles": 1664, "name": "هَوُسَ", "english_name": "Hausa"}, "chr": {"articles": 871, "name": "ᏣᎳᎩ", "english_name": "Cherokee"}, "ln": {"articles": 2958, "name": "Lingala", "english_name": "Lingala"}, "cdo": {"articles": 13544, "name": "Mìng-dĕ̤ng-ngṳ̄", "english_name": "Min Dong"}, "vi": {"articles": 1168165, "name": "Tiếng Việt", "english_name": "Vietnamese"}, "da": {"articles": 235280, "name": "Dansk", "english_name": "Danish"}, "tg": {"articles": 93225, "name": "Тоҷикӣ", "english_name": "Tajik"}, "ms": {"articles": 311875, "name": "Bahasa Melayu", "english_name": "Malay"}, "os": {"articles": 10541, "name": "Иронау", "english_name": "Ossetian"}, "ce": {"articles": 164742, "name": "Нохчийн", "english_name": "Chechen"}, "io": {"articles": 27478, "name": "Ido", "english_name": "Ido"}, "roa-tara": {"articles": 9228, "name": "Tarandíne", "english_name": "Tarantino"}, "arc": {"articles": 1622, "name": "ܐܪܡܝܐ", "english_name": "Aramaic"}, "sl": {"articles": 160164, "name": "Slovenščina", "english_name": "Slovenian"}, "rw": {"articles": 1819, "name": "Ikinyarwanda", "english_name": "Kinyarwanda"}, "ang": {"articles": 2982, "name": "Englisc", "english_name": "Anglo-Saxon"}, "eu": {"articles": 288705, "name": "Euskara", "english_name": "Basque"}, "chy": {"articles": 608, "name": "Tsetsêhestâhese", "english_name": "Cheyenne"}, "mhr": {"articles": 9712, "name": "Олык Марий (Olyk Marij)", "english_name": "Meadow Mari"}, "fur": {"articles": 3204, "name": "Furlan", "english_name": "Friulian"}, "ar": {"articles": 559796, "name": "العربية", "english_name": "Arabic"}, "qu": {"articles": 20387, "name": "Runa Simi", "english_name": "Quechua"}, "id": {"articles": 423343, "name": "Bahasa Indonesia", "english_name": "Indonesian"}, "pih": {"articles": 629, "name": "Norfuk", "english_name": "Norfolk"}, "uk": {"articles": 769488, "name": "Українська", "english_name": "Ukrainian"}, "mwl": {"articles": 3522, "name": "Mirandés", "english_name": "Mirandese"}, "ext": {"articles": 2919, "name": "Estremeñu", "english_name": "Extremaduran"}, "pnt": {"articles": 455, "name": "Ποντιακά", "english_name": "Pontic"}, "bpy": {"articles": 25081, "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী", "english_name": "Bishnupriya Manipuri"}, "hy": {"articles": 237866, "name": "Հայերեն", "english_name": "Armenian"}, "ks": {"articles": 316, "name": "कश्मीरी / كشميري", "english_name": "Kashmiri"}, "gd": {"articles": 14675, "name": "Gàidhlig", "english_name": "Scottish Gaelic"}, "ve": {"articles": 256, "name": "Tshivenda", "english_name": "Venda"}, "sk": {"articles": 224878, "name": "Slovenčina", "english_name": "Slovak"}, "ig": {"articles": 1286, "name": "Igbo", "english_name": "Igbo"}, "ne": {"articles": 30358, "name": "नेपाली", "english_name": "Nepali"}, "to": {"articles": 1690, "name": "faka Tonga", "english_name": "Tongan"}, "ka": {"articles": 120692, "name": "ქართული", "english_name": "Georgian"}, "sn": {"articles": 3077, "name": "chiShona", "english_name": "Shona"}, "or": {"articles": 13497, "name": "ଓଡ଼ିଆ", "english_name": "Oriya"}, "ca": {"articles": 572844, "name": "Català", "english_name": "Catalan"}, "ie": {"articles": 3887, "name": "Interlingue", "english_name": "Interlingue"}, "ltg": {"articles": 801, "name": "Latgaļu", "english_name": "Latgalian"}, "ml": {"articles": 54585, "name": "മലയാളം", "english_name": "Malayalam"}, "hak": {"articles": 8163, "name": "Hak-kâ-fa / 客家話", "english_name": "Hakka"}, "got": {"articles": 536, "name": "𐌲𐌿𐍄𐌹𐍃𐌺", "english_name": "Gothic"}, "lez": {"articles": 3939, "name": "Лезги чІал (Lezgi č’al)", "english_name": "Lezgian"}, "lmo": {"articles": 36894, "name": "Lumbaart", "english_name": "Lombard"}, "nap": {"articles": 14485, "name": "Nnapulitano", "english_name": "Neapolitan"}, "ady": {"articles": 405, "name": "Адыгэбзэ", "english_name": "Adyghe"}, "cv": {"articles": 41027, "name": "Чăваш", "english_name": "Chuvash"}, "diq": {"articles": 8722, "name": "Zazaki", "english_name": "Zazaki"}, "pt": {"articles": 991996, "name": "Português", "english_name": "Portuguese"}, "tn": {"articles": 639, "name": "Setswana", "english_name": "Tswana"}, "vls": {"articles": 6344, "name": "West-Vlams", "english_name": "West Flemish"}, "ckb": {"articles": 20927, "name": "Soranî / کوردی", "english_name": "Sorani"}, "mr": {"articles": 50699, "name": "मराठी", "english_name": "Marathi"}, "gn": {"articles": 3387, "name": "Avañe'ẽ", "english_name": "Guarani"}, "bi": {"articles": 1159, "name": "Bislama", "english_name": "Bislama"}, "ur": {"articles": 127702, "name": "اردو", "english_name": "Urdu"}, "vec": {"articles": 11100, "name": "Vèneto", "english_name": "Venetian"}, "sq": {"articles": 72462, "name": "Shqip", "english_name": "Albanian"}, "vep": {"articles": 5712, "name": "Vepsän", "english_name": "Vepsian"}, "km": {"articles": 6161, "name": "ភាសាខ្មែរ", "english_name": "Khmer"}, "ro": {"articles": 383724, "name": "Română", "english_name": "Romanian"}, "olo": {"articles": 2534, "name": "Karjalan", "english_name": "Livvi-Karelian"}, "pag": {"articles": 2550, "name": "Pangasinan", "english_name": "Pangasinan"}, "ps": {"articles": 8815, "name": "پښتو", "english_name": "Pashto"}, "nrm": {"articles": 3690, "name": "Nouormand/Normaund", "english_name": "Norman"}, "ta": {"articles": 115120, "name": "தமிழ்", "english_name": "Tamil"}, "hsb": {"articles": 12523, "name": "Hornjoserbsce", "english_name": "Upper Sorbian"}, "iu": {"articles": 397, "name": "ᐃᓄᒃᑎᑐᑦ", "english_name": "Inuktitut"}, "kg": {"articles": 1177, "name": "KiKongo", "english_name": "Kongo"}, "ki": {"articles": 1354, "name": "Gĩkũyũ", "english_name": "Kikuyu"}, "kw": {"articles": 3800, "name": "Kernewek/Karnuack", "english_name": "Cornish"}, "bg": {"articles": 239438, "name": "Български", "english_name": "Bulgarian"}, "gv": {"articles": 4966, "name": "Gaelg", "english_name": "Manx"}, "pap": {"articles": 1911, "name": "Papiamentu", "english_name": "Papiamentu"}, "cu": {"articles": 636, "name": "Словѣньскъ", "english_name": "Old Church Slavonic"}, "en": {"articles": 5572371, "name": "English", "english_name": "English"}, "wo": {"articles": 1161, "name": "Wolof", "english_name": "Wolof"}, "br": {"articles": 63886, "name": "Brezhoneg", "english_name": "Breton"}, "bh": {"articles": 9520, "name": "भोजपुरी", "english_name": "Bihari"}, "szl": {"articles": 6800, "name": "Ślůnski", "english_name": "Silesian"}, "nah": {"articles": 7115, "name": "Nāhuatl", "english_name": "Nahuatl"}, "so": {"articles": 4478, "name": "Soomaali", "english_name": "Somali"}, "jv": {"articles": 54607, "name": "Basa Jawa", "english_name": "Javanese"}, "cr": {"articles": 128, "name": "Nehiyaw", "english_name": "Cree"}, "be-tarask": {"articles": 62221, "name": "Беларуская (тарашкевіца)", "english_name": "Belarusian (Taraškievica)"}, "bm": {"articles": 435, "name": "Bamanankan", "english_name": "Bambara"}, "ja": {"articles": 1095739, "name": "日本語", "english_name": "Japanese"}, "my": {"articles": 38066, "name": "မြန်မာဘာသာ", "english_name": "Burmese"}, "bo": {"articles": 5723, "name": "བོད་སྐད", "english_name": "Tibetan"}, "arz": {"articles": 17822, "name": "مصرى (Maṣri)", "english_name": "Egyptian Arabic"}, "glk": {"articles": 5673, "name": "گیلکی", "english_name": "Gilaki"}, "vo": {"articles": 120920, "name": "Volapük", "english_name": "Volapük"}, "ga": {"articles": 46365, "name": "Gaeilge", "english_name": "Irish"}, "sah": {"articles": 11563, "name": "Саха тыла (Saxa Tyla)", "english_name": "Sakha"}, "as": {"articles": 4881, "name": "অসমীয়া", "english_name": "Assamese"}, "rmy": {"articles": 655, "name": "romani - रोमानी", "english_name": "Romani"}, "bat-smg": {"articles": 16239, "name": "Žemaitėška", "english_name": "Samogitian"}, "mt": {"articles": 3289, "name": "Malti", "english_name": "Maltese"}, "lad": {"articles": 4644, "name": "Dzhudezmo", "english_name": "Ladino"}, "fiu-vro": {"articles": 5519, "name": "Võro", "english_name": "Võro"}, "mrj": {"articles": 10265, "name": "Кырык Мары (Kyryk Mary)", "english_name": "Hill Mari"}, "ny": {"articles": 381, "name": "Chichewa", "english_name": "Chichewa"}, "et": {"articles": 169376, "name": "Eesti", "english_name": "Estonian"}, "an": {"articles": 32707, "name": "Aragonés", "english_name": "Aragonese"}, "tet": {"articles": 1416, "name": "Tetun", "english_name": "Tetum"}, "dz": {"articles": 224, "name": "ཇོང་ཁ", "english_name": "Dzongkha"}, "gom": {"articles": 3381, "name": "गोंयची कोंकणी / Gõychi Konknni", "english_name": "Goan Konkani"}, "sa": {"articles": 11220, "name": "संस्कृतम्", "english_name": "Sanskrit"}, "lrc": {"articles": 5353, "name": "لۊری شومالی", "english_name": "Northern Luri"}, "bjn": {"articles": 1780, "name": "Bahasa Banjar", "english_name": "Banjar"}, "ia": {"articles": 20622, "name": "Interlingua", "english_name": "Interlingua"}, "lg": {"articles": 1167, "name": "Luganda", "english_name": "Luganda"}, "zh": {"articles": 991730, "name": "中文", "english_name": "Chinese"}, "ts": {"articles": 554, "name": "Xitsonga", "english_name": "Tsonga"}, "sd": {"articles": 8445, "name": "سنڌي، سندھی ، सिन्ध", "english_name": "Sindhi"}, "pam": {"articles": 8550, "name": "Kapampangan", "english_name": "Kapampangan"}, "hr": {"articles": 184073, "name": "Hrvatski", "english_name": "Croatian"}, "new": {"articles": 72142, "name": "नेपाल भाषा", "english_name": "Newar"}, "kaa": {"articles": 1896, "name": "Qaraqalpaqsha", "english_name": "Karakalpak"}, "cbk-zam": {"articles": 2913, "name": "Chavacano de Zamboanga", "english_name": "Zamboanga Chavacano"}, "oc": {"articles": 84238, "name": "Occitan", "english_name": "Occitan"}, "bxr": {"articles": 2076, "name": "Буряад", "english_name": "Buryat"}, "jam": {"articles": 1619, "name": "Jumiekan Kryuol", "english_name": "Jamaican Patois"}, "ay": {"articles": 4282, "name": "Aymar", "english_name": "Aymara"}, "li": {"articles": 12113, "name": "Limburgs", "english_name": "Limburgish"}, "wa": {"articles": 14527, "name": "Walon", "english_name": "Walloon"}, "hi": {"articles": 123325, "name": "हिन्दी", "english_name": "Hindi"}, "xmf": {"articles": 12366, "name": "მარგალური (Margaluri)", "english_name": "Mingrelian"}, "sw": {"articles": 39316, "name": "Kiswahili", "english_name": "Swahili"}, "ee": {"articles": 340, "name": "Eʋegbe", "english_name": "Ewe"}, "dsb": {"articles": 3112, "name": "Dolnoserbski", "english_name": "Lower Sorbian"}, "nds": {"articles": 28059, "name": "Plattdüütsch", "english_name": "Low Saxon"}, "kl": {"articles": 1642, "name": "Kalaallisut", "english_name": "Greenlandic"}, "no": {"articles": 483210, "name": "Norsk (Bokmål)", "english_name": "Norwegian (Bokmål)"}, "tl": {"articles": 86383, "name": "Tagalog", "english_name": "Tagalog"}, "bug": {"articles": 14127, "name": "Basa Ugi", "english_name": "Buginese"}, "zh-yue": {"articles": 65026, "name": "粵語", "english_name": "Cantonese"}, "kv": {"articles": 5260, "name": "Коми", "english_name": "Komi"}, "mk": {"articles": 92868, "name": "Македонски", "english_name": "Macedonian"}, "pdc": {"articles": 1812, "name": "Deitsch", "english_name": "Pennsylvania German"}, "kn": {"articles": 23031, "name": "ಕನ್ನಡ", "english_name": "Kannada"}, "ilo": {"articles": 10928, "name": "Ilokano", "english_name": "Ilokano"}, "cy": {"articles": 96178, "name": "Cymraeg", "english_name": "Welsh"}, "de": {"articles": 2154675, "name": "Deutsch", "english_name": "German"}, "dty": {"articles": 2736, "name": "डोटेली", "english_name": "Doteli"}, "lt": {"articles": 186360, "name": "Lietuvių", "english_name": "Lithuanian"}, "fr": {"articles": 1957499, "name": "Français", "english_name": "French"}, "kab": {"articles": 2898, "name": "Taqbaylit", "english_name": "Kabyle"}, "gan": {"articles": 6397, "name": "贛語", "english_name": "Gan"}, "pi": {"articles": 2528, "name": "पाऴि", "english_name": "Pali"}, "sm": {"articles": 797, "name": "Gagana Samoa", "english_name": "Samoan"}, "nds-nl": {"articles": 6753, "name": "Nedersaksisch", "english_name": "Dutch Low Saxon"}, "av": {"articles": 2311, "name": "Авар", "english_name": "Avar"}, "tum": {"articles": 560, "name": "chiTumbuka", "english_name": "Tumbuka"}, "ru": {"articles": 1453844, "name": "Русский", "english_name": "Russian"}, "ff": {"articles": 227, "name": "Fulfulde", "english_name": "Fula"}}, "gigablast": [], "ddg definitions": ["zh-CN", "fi-FI", "es-ES", "en-AU", "de-AT", "ro-RO", "es-US", "ca-ES", "ms-MY", "nl-BE", "lv-LV", "lt-LT", "da-DK", "sl-SL", "en-US", "tl-PH", "cs-CZ", "es-AR", "et-EE", "en-ZA", "hu-HU", "id-ID", "ar-XA", "es-PE", "en-NZ", "bg-BG", "en-MY", "fr-CH", "nl-NL", "th-TH", "ca-CT", "el-GR", "it-CH", "jp-JP", "de-CH", "tr-TR", "ru-RU", "en-UK", "en-CA", "he-IL", "hr-HR", "en-ID", "en-IE", "en-IN", "de-DE", "fr-BE", "sk-SK", "fr-FR", "pt-BR", "no-NO", "es-CO", "vi-VN", "pl-PL", "pt-PT", "en-SG", "fr-CA", "wt-WT", "sv-SE", "it-IT", "tzh-TW", "es-CL", "tzh-HK", "kr-KR", "es-MX", "en-PH"], "bing news": ["sq", "de", "ar", "bg", "ca", "cs", "zh-CHS", "zh-CHT", "ko", "hr", "da", "sk", "sl", "es", "et", "fi", "fr", "el", "he", "nl", "hu", "id", "en", "is", "it", "ja", "lv", "lt", "ms", "no", "fa", "pl", "pt-BR", "pt-PT", "ro", "ru", "sr", "sv", "th", "tr", "uk", "vi"], "swisscows": ["browser", "ar-SA", "es-AR", "en-AU", "de-AT", "fr-BE", "nl-BE", "pt-BR", "en-CA", "fr-CA", "es-CL", "zh-CN", "da-DK", "fi-FI", "fr-FR", "de-DE", "zh-HK", "en-IN", "en-IE", "it-IT", "ja-JP", "ko-KR", "lv-LV", "en-MY", "es-MX", "nl-NL", "en-NZ", "no-NO", "en-PH", "pl-PL", "pt-PT", "ru-RU", "en-ZA", "es-ES", "sv-SE", "de-CH", "fr-CH", "zh-TW", "tr-TR", "uk-UA", "en-GB", "en-US", "es-US"], "wikipedia": {"it": {"articles": 1418064, "name": "Italiano", "english_name": "Italian"}, "azb": {"articles": 68162, "name": "تۆرکجه", "english_name": "South Azerbaijani"}, "kbp": {"articles": 1261, "name": "Kabɩyɛ", "english_name": "Kabiye"}, "bar": {"articles": 24214, "name": "Boarisch", "english_name": "Bavarian"}, "tyv": {"articles": 1515, "name": "Тыва", "english_name": "Tuvan"}, "za": {"articles": 1178, "name": "Cuengh", "english_name": "Zhuang"}, "az": {"articles": 131962, "name": "Azərbaycanca", "english_name": "Azerbaijani"}, "crh": {"articles": 5644, "name": "Qırımtatarca", "english_name": "Crimean Tatar"}, "nn": {"articles": 136687, "name": "Nynorsk", "english_name": "Norwegian (Nynorsk)"}, "fi": {"articles": 431267, "name": "Suomi", "english_name": "Finnish"}, "mdf": {"articles": 1182, "name": "Мокшень (Mokshanj Kälj)", "english_name": "Moksha"}, "mai": {"articles": 12317, "name": "मैथिली", "english_name": "Maithili"}, "gag": {"articles": 2757, "name": "Gagauz", "english_name": "Gagauz"}, "ceb": {"articles": 5383102, "name": "Sinugboanong Binisaya", "english_name": "Cebuano"}, "yo": {"articles": 31608, "name": "Yorùbá", "english_name": "Yoruba"}, "ty": {"articles": 1196, "name": "Reo Mā`ohi", "english_name": "Tahitian"}, "fo": {"articles": 12678, "name": "Føroyskt", "english_name": "Faroese"}, "krc": {"articles": 2019, "name": "Къарачай-Малкъар (Qarachay-Malqar)", "english_name": "Karachay-Balkar"}, "gu": {"articles": 27562, "name": "ગુજરાતી", "english_name": "Gujarati"}, "srn": {"articles": 1059, "name": "Sranantongo", "english_name": "Sranan"}, "min": {"articles": 222143, "name": "Minangkabau", "english_name": "Minangkabau"}, "ik": {"articles": 261, "name": "Iñupiak", "english_name": "Inupiak"}, "ti": {"articles": 179, "name": "ትግርኛ", "english_name": "Tigrinya"}, "als": {"articles": 24008, "name": "Alemannisch", "english_name": "Alemannic"}, "ab": {"articles": 3400, "name": "Аҧсуа", "english_name": "Abkhazian"}, "hif": {"articles": 9732, "name": "Fiji Hindi", "english_name": "Fiji Hindi"}, "pcd": {"articles": 3621, "name": "Picard", "english_name": "Picard"}, "mi": {"articles": 7138, "name": "Māori", "english_name": "Maori"}, "fy": {"articles": 39580, "name": "Frysk", "english_name": "West Frisian"}, "yi": {"articles": 14302, "name": "ייִדיש", "english_name": "Yiddish"}, "tpi": {"articles": 1429, "name": "Tok Pisin", "english_name": "Tok Pisin"}, "rn": {"articles": 610, "name": "Kirundi", "english_name": "Kirundi"}, "sco": {"articles": 49298, "name": "Scots", "english_name": "Scots"}, "te": {"articles": 68668, "name": "తెలుగు", "english_name": "Telugu"}, "lij": {"articles": 3354, "name": "Líguru", "english_name": "Ligurian"}, "ss": {"articles": 439, "name": "SiSwati", "english_name": "Swati"}, "ht": {"articles": 51730, "name": "Krèyol ayisyen", "english_name": "Haitian"}, "af": {"articles": 48890, "name": "Afrikaans", "english_name": "Afrikaans"}, "om": {"articles": 765, "name": "Oromoo", "english_name": "Oromo"}, "sg": {"articles": 255, "name": "Sängö", "english_name": "Sango"}, "is": {"articles": 44302, "name": "Íslenska", "english_name": "Icelandic"}, "sh": {"articles": 442131, "name": "Srpskohrvatski / Српскохрватски", "english_name": "Serbo-Croatian"}, "sv": {"articles": 3784404, "name": "Svenska", "english_name": "Swedish"}, "war": {"articles": 1262806, "name": "Winaray", "english_name": "Waray-Waray"}, "pnb": {"articles": 46004, "name": "شاہ مکھی پنجابی (Shāhmukhī Pañjābī)", "english_name": "Western Punjabi"}, "tr": {"articles": 305725, "name": "Türkçe", "english_name": "Turkish"}, "roa-rup": {"articles": 1216, "name": "Armãneashce", "english_name": "Aromanian"}, "lbe": {"articles": 1215, "name": "Лакку", "english_name": "Lak"}, "ug": {"articles": 3503, "name": "ئۇيغۇر تىلى", "english_name": "Uyghur"}, "haw": {"articles": 2058, "name": "Hawai`i", "english_name": "Hawaiian"}, "pms": {"articles": 64299, "name": "Piemontèis", "english_name": "Piedmontese"}, "myv": {"articles": 5844, "name": "Эрзянь (Erzjanj Kelj)", "english_name": "Erzya"}, "map-bms": {"articles": 13308, "name": "Basa Banyumasan", "english_name": "Banyumasan"}, "tk": {"articles": 5319, "name": "تركمن / Туркмен", "english_name": "Turkmen"}, "mn": {"articles": 17830, "name": "Монгол", "english_name": "Mongolian"}, "rm": {"articles": 3482, "name": "Rumantsch", "english_name": "Romansh"}, "atj": {"articles": 416, "name": "Atikamekw", "english_name": "Atikamekw"}, "tt": {"articles": 76120, "name": "Tatarça / Татарча", "english_name": "Tatar"}, "frp": {"articles": 2835, "name": "Arpitan", "english_name": "Franco-Provençal"}, "ch": {"articles": 433, "name": "Chamoru", "english_name": "Chamorro"}, "ksh": {"articles": 2837, "name": "Ripoarisch", "english_name": "Ripuarian"}, "ko": {"articles": 409269, "name": "한국어", "english_name": "Korean"}, "bs": {"articles": 77079, "name": "Bosanski", "english_name": "Bosnian"}, "ak": {"articles": 322, "name": "Akana", "english_name": "Akan"}, "zh-min-nan": {"articles": 226187, "name": "Bân-lâm-gú", "english_name": "Min Nan"}, "co": {"articles": 5499, "name": "Corsu", "english_name": "Corsican"}, "ku": {"articles": 23198, "name": "Kurdî / كوردی", "english_name": "Kurdish"}, "he": {"articles": 219907, "name": "עברית", "english_name": "Hebrew"}, "koi": {"articles": 3452, "name": "Перем Коми (Perem Komi)", "english_name": "Komi-Permyak"}, "xal": {"articles": 2065, "name": "Хальмг", "english_name": "Kalmyk"}, "bcl": {"articles": 7298, "name": "Bikol", "english_name": "Central Bicolano"}, "eml": {"articles": 9557, "name": "Emiliàn e rumagnòl", "english_name": "Emilian-Romagnol"}, "es": {"articles": 1389641, "name": "Español", "english_name": "Spanish"}, "xh": {"articles": 728, "name": "isiXhosa", "english_name": "Xhosa"}, "jbo": {"articles": 1206, "name": "Lojban", "english_name": "Lojban"}, "nov": {"articles": 1652, "name": "Novial", "english_name": "Novial"}, "lb": {"articles": 51312, "name": "Lëtzebuergesch", "english_name": "Luxembourgish"}, "na": {"articles": 1286, "name": "dorerin Naoero", "english_name": "Nauruan"}, "lo": {"articles": 2817, "name": "ລາວ", "english_name": "Lao"}, "simple": {"articles": 131605, "name": "Simple English", "english_name": "Simple English"}, "nso": {"articles": 7824, "name": "Sepedi", "english_name": "Northern Sotho"}, "kbd": {"articles": 1574, "name": "Адыгэбзэ (Adighabze)", "english_name": "Kabardian Circassian"}, "su": {"articles": 39477, "name": "Basa Sunda", "english_name": "Sundanese"}, "th": {"articles": 122166, "name": "ไทย", "english_name": "Thai"}, "lv": {"articles": 82426, "name": "Latviešu", "english_name": "Latvian"}, "ba": {"articles": 41302, "name": "Башҡорт", "english_name": "Bashkir"}, "uz": {"articles": 129071, "name": "O‘zbek", "english_name": "Uzbek"}, "pl": {"articles": 1266265, "name": "Polski", "english_name": "Polish"}, "pfl": {"articles": 2072, "name": "Pälzisch", "english_name": "Palatinate German"}, "cs": {"articles": 400491, "name": "Čeština", "english_name": "Czech"}, "kk": {"articles": 220924, "name": "Қазақша", "english_name": "Kazakh"}, "la": {"articles": 127986, "name": "Latina", "english_name": "Latin"}, "si": {"articles": 14470, "name": "සිංහල", "english_name": "Sinhalese"}, "tw": {"articles": 604, "name": "Twi", "english_name": "Twi"}, "eo": {"articles": 245097, "name": "Esperanto", "english_name": "Esperanto"}, "ky": {"articles": 79879, "name": "Кыргызча", "english_name": "Kirghiz"}, "ast": {"articles": 59860, "name": "Asturianu", "english_name": "Asturian"}, "zh-classical": {"articles": 7389, "name": "古文 / 文言文", "english_name": "Classical Chinese"}, "sr": {"articles": 602867, "name": "Српски / Srpski", "english_name": "Serbian"}, "el": {"articles": 143124, "name": "Ελληνικά", "english_name": "Greek"}, "be": {"articles": 151018, "name": "Беларуская", "english_name": "Belarusian"}, "gl": {"articles": 145482, "name": "Galego", "english_name": "Galician"}, "tcy": {"articles": 902, "name": "ತುಳು", "english_name": "Tulu"}, "wuu": {"articles": 7120, "name": "吴语", "english_name": "Wu"}, "dv": {"articles": 3018, "name": "ދިވެހިބަސް", "english_name": "Divehi"}, "zea": {"articles": 4405, "name": "Zeêuws", "english_name": "Zeelandic"}, "ace": {"articles": 7209, "name": "Bahsa Acèh", "english_name": "Acehnese"}, "fj": {"articles": 426, "name": "Na Vosa Vakaviti", "english_name": "Fijian"}, "pa": {"articles": 27889, "name": "ਪੰਜਾਬੀ", "english_name": "Punjabi"}, "mg": {"articles": 84770, "name": "Malagasy", "english_name": "Malagasy"}, "frr": {"articles": 6483, "name": "Nordfriisk", "english_name": "North Frisian"}, "nv": {"articles": 4360, "name": "Diné bizaad", "english_name": "Navajo"}, "mzn": {"articles": 12613, "name": "مَزِروني", "english_name": "Mazandarani"}, "udm": {"articles": 4286, "name": "Удмурт кыл", "english_name": "Udmurt"}, "scn": {"articles": 25840, "name": "Sicilianu", "english_name": "Sicilian"}, "rue": {"articles": 6412, "name": "Русиньскый", "english_name": "Rusyn"}, "stq": {"articles": 3916, "name": "Seeltersk", "english_name": "Saterland Frisian"}, "zu": {"articles": 881, "name": "isiZulu", "english_name": "Zulu"}, "sc": {"articles": 5638, "name": "Sardu", "english_name": "Sardinian"}, "am": {"articles": 14115, "name": "አማርኛ", "english_name": "Amharic"}, "nl": {"articles": 1923974, "name": "Nederlands", "english_name": "Dutch"}, "st": {"articles": 536, "name": "Sesotho", "english_name": "Sesotho"}, "bn": {"articles": 56084, "name": "বাংলা", "english_name": "Bengali"}, "hu": {"articles": 426404, "name": "Magyar", "english_name": "Hungarian"}, "se": {"articles": 7357, "name": "Sámegiella", "english_name": "Northern Sami"}, "csb": {"articles": 5217, "name": "Kaszëbsczi", "english_name": "Kashubian"}, "fa": {"articles": 591515, "name": "فارسی", "english_name": "Persian"}, "ha": {"articles": 1664, "name": "هَوُسَ", "english_name": "Hausa"}, "chr": {"articles": 871, "name": "ᏣᎳᎩ", "english_name": "Cherokee"}, "ln": {"articles": 2958, "name": "Lingala", "english_name": "Lingala"}, "cdo": {"articles": 13544, "name": "Mìng-dĕ̤ng-ngṳ̄", "english_name": "Min Dong"}, "vi": {"articles": 1168165, "name": "Tiếng Việt", "english_name": "Vietnamese"}, "da": {"articles": 235280, "name": "Dansk", "english_name": "Danish"}, "tg": {"articles": 93225, "name": "Тоҷикӣ", "english_name": "Tajik"}, "ms": {"articles": 311875, "name": "Bahasa Melayu", "english_name": "Malay"}, "os": {"articles": 10541, "name": "Иронау", "english_name": "Ossetian"}, "ce": {"articles": 164742, "name": "Нохчийн", "english_name": "Chechen"}, "io": {"articles": 27478, "name": "Ido", "english_name": "Ido"}, "roa-tara": {"articles": 9228, "name": "Tarandíne", "english_name": "Tarantino"}, "arc": {"articles": 1622, "name": "ܐܪܡܝܐ", "english_name": "Aramaic"}, "sl": {"articles": 160164, "name": "Slovenščina", "english_name": "Slovenian"}, "rw": {"articles": 1819, "name": "Ikinyarwanda", "english_name": "Kinyarwanda"}, "ang": {"articles": 2982, "name": "Englisc", "english_name": "Anglo-Saxon"}, "eu": {"articles": 288705, "name": "Euskara", "english_name": "Basque"}, "chy": {"articles": 608, "name": "Tsetsêhestâhese", "english_name": "Cheyenne"}, "mhr": {"articles": 9712, "name": "Олык Марий (Olyk Marij)", "english_name": "Meadow Mari"}, "fur": {"articles": 3204, "name": "Furlan", "english_name": "Friulian"}, "ar": {"articles": 559796, "name": "العربية", "english_name": "Arabic"}, "qu": {"articles": 20387, "name": "Runa Simi", "english_name": "Quechua"}, "id": {"articles": 423343, "name": "Bahasa Indonesia", "english_name": "Indonesian"}, "pih": {"articles": 629, "name": "Norfuk", "english_name": "Norfolk"}, "uk": {"articles": 769488, "name": "Українська", "english_name": "Ukrainian"}, "mwl": {"articles": 3522, "name": "Mirandés", "english_name": "Mirandese"}, "ext": {"articles": 2919, "name": "Estremeñu", "english_name": "Extremaduran"}, "pnt": {"articles": 455, "name": "Ποντιακά", "english_name": "Pontic"}, "bpy": {"articles": 25081, "name": "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী", "english_name": "Bishnupriya Manipuri"}, "hy": {"articles": 237866, "name": "Հայերեն", "english_name": "Armenian"}, "ks": {"articles": 316, "name": "कश्मीरी / كشميري", "english_name": "Kashmiri"}, "gd": {"articles": 14675, "name": "Gàidhlig", "english_name": "Scottish Gaelic"}, "ve": {"articles": 256, "name": "Tshivenda", "english_name": "Venda"}, "sk": {"articles": 224878, "name": "Slovenčina", "english_name": "Slovak"}, "ig": {"articles": 1286, "name": "Igbo", "english_name": "Igbo"}, "ne": {"articles": 30358, "name": "नेपाली", "english_name": "Nepali"}, "to": {"articles": 1690, "name": "faka Tonga", "english_name": "Tongan"}, "ka": {"articles": 120692, "name": "ქართული", "english_name": "Georgian"}, "sn": {"articles": 3077, "name": "chiShona", "english_name": "Shona"}, "or": {"articles": 13497, "name": "ଓଡ଼ିଆ", "english_name": "Oriya"}, "ca": {"articles": 572844, "name": "Català", "english_name": "Catalan"}, "ie": {"articles": 3887, "name": "Interlingue", "english_name": "Interlingue"}, "ltg": {"articles": 801, "name": "Latgaļu", "english_name": "Latgalian"}, "ml": {"articles": 54585, "name": "മലയാളം", "english_name": "Malayalam"}, "hak": {"articles": 8163, "name": "Hak-kâ-fa / 客家話", "english_name": "Hakka"}, "got": {"articles": 536, "name": "𐌲𐌿𐍄𐌹𐍃𐌺", "english_name": "Gothic"}, "lez": {"articles": 3939, "name": "Лезги чІал (Lezgi č’al)", "english_name": "Lezgian"}, "lmo": {"articles": 36894, "name": "Lumbaart", "english_name": "Lombard"}, "nap": {"articles": 14485, "name": "Nnapulitano", "english_name": "Neapolitan"}, "ady": {"articles": 405, "name": "Адыгэбзэ", "english_name": "Adyghe"}, "cv": {"articles": 41027, "name": "Чăваш", "english_name": "Chuvash"}, "diq": {"articles": 8722, "name": "Zazaki", "english_name": "Zazaki"}, "pt": {"articles": 991996, "name": "Português", "english_name": "Portuguese"}, "tn": {"articles": 639, "name": "Setswana", "english_name": "Tswana"}, "vls": {"articles": 6344, "name": "West-Vlams", "english_name": "West Flemish"}, "ckb": {"articles": 20927, "name": "Soranî / کوردی", "english_name": "Sorani"}, "mr": {"articles": 50699, "name": "मराठी", "english_name": "Marathi"}, "gn": {"articles": 3387, "name": "Avañe'ẽ", "english_name": "Guarani"}, "bi": {"articles": 1159, "name": "Bislama", "english_name": "Bislama"}, "ur": {"articles": 127702, "name": "اردو", "english_name": "Urdu"}, "vec": {"articles": 11100, "name": "Vèneto", "english_name": "Venetian"}, "sq": {"articles": 72462, "name": "Shqip", "english_name": "Albanian"}, "vep": {"articles": 5712, "name": "Vepsän", "english_name": "Vepsian"}, "km": {"articles": 6161, "name": "ភាសាខ្មែរ", "english_name": "Khmer"}, "ro": {"articles": 383724, "name": "Română", "english_name": "Romanian"}, "olo": {"articles": 2534, "name": "Karjalan", "english_name": "Livvi-Karelian"}, "pag": {"articles": 2550, "name": "Pangasinan", "english_name": "Pangasinan"}, "ps": {"articles": 8815, "name": "پښتو", "english_name": "Pashto"}, "nrm": {"articles": 3690, "name": "Nouormand/Normaund", "english_name": "Norman"}, "ta": {"articles": 115120, "name": "தமிழ்", "english_name": "Tamil"}, "hsb": {"articles": 12523, "name": "Hornjoserbsce", "english_name": "Upper Sorbian"}, "iu": {"articles": 397, "name": "ᐃᓄᒃᑎᑐᑦ", "english_name": "Inuktitut"}, "kg": {"articles": 1177, "name": "KiKongo", "english_name": "Kongo"}, "ki": {"articles": 1354, "name": "Gĩkũyũ", "english_name": "Kikuyu"}, "kw": {"articles": 3800, "name": "Kernewek/Karnuack", "english_name": "Cornish"}, "bg": {"articles": 239438, "name": "Български", "english_name": "Bulgarian"}, "gv": {"articles": 4966, "name": "Gaelg", "english_name": "Manx"}, "pap": {"articles": 1911, "name": "Papiamentu", "english_name": "Papiamentu"}, "cu": {"articles": 636, "name": "Словѣньскъ", "english_name": "Old Church Slavonic"}, "en": {"articles": 5572371, "name": "English", "english_name": "English"}, "wo": {"articles": 1161, "name": "Wolof", "english_name": "Wolof"}, "br": {"articles": 63886, "name": "Brezhoneg", "english_name": "Breton"}, "bh": {"articles": 9520, "name": "भोजपुरी", "english_name": "Bihari"}, "szl": {"articles": 6800, "name": "Ślůnski", "english_name": "Silesian"}, "nah": {"articles": 7115, "name": "Nāhuatl", "english_name": "Nahuatl"}, "so": {"articles": 4478, "name": "Soomaali", "english_name": "Somali"}, "jv": {"articles": 54607, "name": "Basa Jawa", "english_name": "Javanese"}, "cr": {"articles": 128, "name": "Nehiyaw", "english_name": "Cree"}, "be-tarask": {"articles": 62221, "name": "Беларуская (тарашкевіца)", "english_name": "Belarusian (Taraškievica)"}, "bm": {"articles": 435, "name": "Bamanankan", "english_name": "Bambara"}, "ja": {"articles": 1095739, "name": "日本語", "english_name": "Japanese"}, "my": {"articles": 38066, "name": "မြန်မာဘာသာ", "english_name": "Burmese"}, "bo": {"articles": 5723, "name": "བོད་སྐད", "english_name": "Tibetan"}, "arz": {"articles": 17822, "name": "مصرى (Maṣri)", "english_name": "Egyptian Arabic"}, "glk": {"articles": 5673, "name": "گیلکی", "english_name": "Gilaki"}, "vo": {"articles": 120920, "name": "Volapük", "english_name": "Volapük"}, "ga": {"articles": 46365, "name": "Gaeilge", "english_name": "Irish"}, "sah": {"articles": 11563, "name": "Саха тыла (Saxa Tyla)", "english_name": "Sakha"}, "as": {"articles": 4881, "name": "অসমীয়া", "english_name": "Assamese"}, "rmy": {"articles": 655, "name": "romani - रोमानी", "english_name": "Romani"}, "bat-smg": {"articles": 16239, "name": "Žemaitėška", "english_name": "Samogitian"}, "mt": {"articles": 3289, "name": "Malti", "english_name": "Maltese"}, "lad": {"articles": 4644, "name": "Dzhudezmo", "english_name": "Ladino"}, "fiu-vro": {"articles": 5519, "name": "Võro", "english_name": "Võro"}, "mrj": {"articles": 10265, "name": "Кырык Мары (Kyryk Mary)", "english_name": "Hill Mari"}, "ny": {"articles": 381, "name": "Chichewa", "english_name": "Chichewa"}, "et": {"articles": 169376, "name": "Eesti", "english_name": "Estonian"}, "an": {"articles": 32707, "name": "Aragonés", "english_name": "Aragonese"}, "tet": {"articles": 1416, "name": "Tetun", "english_name": "Tetum"}, "dz": {"articles": 224, "name": "ཇོང་ཁ", "english_name": "Dzongkha"}, "gom": {"articles": 3381, "name": "गोंयची कोंकणी / Gõychi Konknni", "english_name": "Goan Konkani"}, "sa": {"articles": 11220, "name": "संस्कृतम्", "english_name": "Sanskrit"}, "lrc": {"articles": 5353, "name": "لۊری شومالی", "english_name": "Northern Luri"}, "bjn": {"articles": 1780, "name": "Bahasa Banjar", "english_name": "Banjar"}, "ia": {"articles": 20622, "name": "Interlingua", "english_name": "Interlingua"}, "lg": {"articles": 1167, "name": "Luganda", "english_name": "Luganda"}, "zh": {"articles": 991730, "name": "中文", "english_name": "Chinese"}, "ts": {"articles": 554, "name": "Xitsonga", "english_name": "Tsonga"}, "sd": {"articles": 8445, "name": "سنڌي، سندھی ، सिन्ध", "english_name": "Sindhi"}, "pam": {"articles": 8550, "name": "Kapampangan", "english_name": "Kapampangan"}, "hr": {"articles": 184073, "name": "Hrvatski", "english_name": "Croatian"}, "new": {"articles": 72142, "name": "नेपाल भाषा", "english_name": "Newar"}, "kaa": {"articles": 1896, "name": "Qaraqalpaqsha", "english_name": "Karakalpak"}, "cbk-zam": {"articles": 2913, "name": "Chavacano de Zamboanga", "english_name": "Zamboanga Chavacano"}, "oc": {"articles": 84238, "name": "Occitan", "english_name": "Occitan"}, "bxr": {"articles": 2076, "name": "Буряад", "english_name": "Buryat"}, "jam": {"articles": 1619, "name": "Jumiekan Kryuol", "english_name": "Jamaican Patois"}, "ay": {"articles": 4282, "name": "Aymar", "english_name": "Aymara"}, "li": {"articles": 12113, "name": "Limburgs", "english_name": "Limburgish"}, "wa": {"articles": 14527, "name": "Walon", "english_name": "Walloon"}, "hi": {"articles": 123325, "name": "हिन्दी", "english_name": "Hindi"}, "xmf": {"articles": 12366, "name": "მარგალური (Margaluri)", "english_name": "Mingrelian"}, "sw": {"articles": 39316, "name": "Kiswahili", "english_name": "Swahili"}, "ee": {"articles": 340, "name": "Eʋegbe", "english_name": "Ewe"}, "dsb": {"articles": 3112, "name": "Dolnoserbski", "english_name": "Lower Sorbian"}, "nds": {"articles": 28059, "name": "Plattdüütsch", "english_name": "Low Saxon"}, "kl": {"articles": 1642, "name": "Kalaallisut", "english_name": "Greenlandic"}, "no": {"articles": 483210, "name": "Norsk (Bokmål)", "english_name": "Norwegian (Bokmål)"}, "tl": {"articles": 86383, "name": "Tagalog", "english_name": "Tagalog"}, "bug": {"articles": 14127, "name": "Basa Ugi", "english_name": "Buginese"}, "zh-yue": {"articles": 65026, "name": "粵語", "english_name": "Cantonese"}, "kv": {"articles": 5260, "name": "Коми", "english_name": "Komi"}, "mk": {"articles": 92868, "name": "Македонски", "english_name": "Macedonian"}, "pdc": {"articles": 1812, "name": "Deitsch", "english_name": "Pennsylvania German"}, "kn": {"articles": 23031, "name": "ಕನ್ನಡ", "english_name": "Kannada"}, "ilo": {"articles": 10928, "name": "Ilokano", "english_name": "Ilokano"}, "cy": {"articles": 96178, "name": "Cymraeg", "english_name": "Welsh"}, "de": {"articles": 2154675, "name": "Deutsch", "english_name": "German"}, "dty": {"articles": 2736, "name": "डोटेली", "english_name": "Doteli"}, "lt": {"articles": 186360, "name": "Lietuvių", "english_name": "Lithuanian"}, "fr": {"articles": 1957499, "name": "Français", "english_name": "French"}, "kab": {"articles": 2898, "name": "Taqbaylit", "english_name": "Kabyle"}, "gan": {"articles": 6397, "name": "贛語", "english_name": "Gan"}, "pi": {"articles": 2528, "name": "पाऴि", "english_name": "Pali"}, "sm": {"articles": 797, "name": "Gagana Samoa", "english_name": "Samoan"}, "nds-nl": {"articles": 6753, "name": "Nedersaksisch", "english_name": "Dutch Low Saxon"}, "av": {"articles": 2311, "name": "Авар", "english_name": "Avar"}, "tum": {"articles": 560, "name": "chiTumbuka", "english_name": "Tumbuka"}, "ru": {"articles": 1453844, "name": "Русский", "english_name": "Russian"}, "ff": {"articles": 227, "name": "Fulfulde", "english_name": "Fula"}}, "yahoo": ["ar", "bg", "zh-CHS", "zh-CHT", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "he", "hu", "it", "ja", "ko", "lv", "lt", "no", "pl", "pt", "ro", "ru", "sk", "sl", "es", "sv", "th", "tr"]}
diff --git a/searx/data/useragents.json b/searx/data/useragents.json
@@ -0,0 +1,14 @@
+{
+ "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}",
+ "versions": [
+ "61.0.1",
+ "61.0",
+ "60.0.2",
+ "60.0.1",
+ "60.0"
+ ],
+ "os": [
+ "Windows NT 10; WOW64",
+ "X11; Linux x86_64"
+ ]
+}
+\ No newline at end of file
diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py
@@ -20,13 +20,14 @@ import sys
import threading
from os.path import realpath, dirname
from io import open
+from babel.localedata import locale_identifiers
from flask_babel import gettext
from operator import itemgetter
from json import loads
from requests import get
from searx import settings
from searx import logger
-from searx.utils import load_module
+from searx.utils import load_module, match_language
logger = logger.getChild('engines')
@@ -38,6 +39,8 @@ engines = {}
categories = {'general': []}
languages = loads(open(engine_dir + '/../data/engines_languages.json', 'r', encoding='utf-8').read())
+babel_langs = [lang_parts[0] + '-' + lang_parts[-1] if len(lang_parts) > 1 else lang_parts[0]
+ for lang_parts in (lang_code.split('_') for lang_code in locale_identifiers())]
engine_shortcuts = {}
engine_default_args = {'paging': False,
@@ -97,6 +100,22 @@ def load_engine(engine_data):
if engine_data['name'] in languages:
setattr(engine, 'supported_languages', languages[engine_data['name']])
+ # find custom aliases for non standard language codes
+ if hasattr(engine, 'supported_languages'):
+ if hasattr(engine, 'language_aliases'):
+ language_aliases = getattr(engine, 'language_aliases')
+ else:
+ language_aliases = {}
+
+ for engine_lang in getattr(engine, 'supported_languages'):
+ iso_lang = match_language(engine_lang, babel_langs, fallback=None)
+ if iso_lang and iso_lang != engine_lang and not engine_lang.startswith(iso_lang) and \
+ iso_lang not in getattr(engine, 'supported_languages'):
+ language_aliases[iso_lang] = engine_lang
+
+ if language_aliases:
+ setattr(engine, 'language_aliases', language_aliases)
+
# assign language fetching method if auxiliary method exists
if hasattr(engine, '_fetch_supported_languages'):
setattr(engine, 'fetch_supported_languages',
diff --git a/searx/engines/acgsou.py b/searx/engines/acgsou.py
@@ -0,0 +1,75 @@
+"""
+ Acgsou (Japanese Animation/Music/Comics Bittorrent tracker)
+
+ @website https://www.acgsou.com/
+ @provide-api no
+ @using-api no
+ @results HTML
+ @stable no (HTML can change)
+ @parse url, title, content, seed, leech, torrentfile
+"""
+
+from lxml import html
+from searx.engines.xpath import extract_text
+from searx.url_utils import urlencode
+from searx.utils import get_torrent_size, int_or_zero
+
+# engine dependent config
+categories = ['files', 'images', 'videos', 'music']
+paging = True
+
+# search-url
+base_url = 'http://www.acgsou.com/'
+search_url = base_url + 'search.php?{query}&page={offset}'
+# xpath queries
+xpath_results = '//table[contains(@class, "list_style table_fixed")]//tr[not(th)]'
+xpath_category = './/td[2]/a[1]'
+xpath_title = './/td[3]/a[last()]'
+xpath_torrent_links = './/td[3]/a'
+xpath_filesize = './/td[4]/text()'
+
+
+def request(query, params):
+ query = urlencode({'keyword': query})
+ params['url'] = search_url.format(query=query, offset=params['pageno'])
+ return params
+
+
+def response(resp):
+ results = []
+ dom = html.fromstring(resp.text)
+ for result in dom.xpath(xpath_results):
+ # defaults
+ filesize = 0
+ magnet_link = "magnet:?xt=urn:btih:{}&tr=http://tracker.acgsou.com:2710/announce"
+ torrent_link = ""
+
+ try:
+ category = extract_text(result.xpath(xpath_category)[0])
+ except:
+ pass
+
+ page_a = result.xpath(xpath_title)[0]
+ title = extract_text(page_a)
+ href = base_url + page_a.attrib.get('href')
+
+ magnet_link = magnet_link.format(page_a.attrib.get('href')[5:-5])
+
+ try:
+ filesize_info = result.xpath(xpath_filesize)[0]
+ filesize = filesize_info[:-2]
+ filesize_multiplier = filesize_info[-2:]
+ filesize = get_torrent_size(filesize, filesize_multiplier)
+ except:
+ pass
+ # I didn't add download/seed/leech count since as I figured out they are generated randomly everytime
+ content = u'Category: "{category}".'
+ content = content.format(category=category)
+
+ results.append({'url': href,
+ 'title': title,
+ 'content': content,
+ 'filesize': filesize,
+ 'magnetlink': magnet_link,
+ 'template': 'torrent.html'})
+ return results
diff --git a/searx/engines/archlinux.py b/searx/engines/archlinux.py
@@ -99,13 +99,13 @@ supported_languages = dict(lang_urls, **main_langs)
# do search-request
def request(query, params):
- # translate the locale (e.g. 'en_US') to language code ('en')
+ # translate the locale (e.g. 'en-US') to language code ('en')
language = locale_to_lang_code(params['language'])
# if our language is hosted on the main site, we need to add its name
# to the query in order to narrow the results to that language
if language in main_langs:
- query += '(' + main_langs[language] + ')'
+ query += b' (' + main_langs[language] + b')'
# prepare the request parameters
query = urlencode({'search': query})
diff --git a/searx/engines/base.py b/searx/engines/base.py
@@ -55,7 +55,7 @@ shorcut_dict = {
def request(query, params):
# replace shortcuts with API advanced search keywords
for key in shorcut_dict.keys():
- query = re.sub(str(key), str(shorcut_dict[key]), query)
+ query = re.sub(key, shorcut_dict[key], str(query))
# basic search
offset = (params['pageno'] - 1) * number_of_results
diff --git a/searx/engines/bing.py b/searx/engines/bing.py
@@ -16,12 +16,14 @@
from lxml import html
from searx.engines.xpath import extract_text
from searx.url_utils import urlencode
+from searx.utils import match_language, gen_useragent
# engine dependent config
categories = ['general']
paging = True
language_support = True
supported_languages_url = 'https://www.bing.com/account/general'
+language_aliases = {'zh-CN': 'zh-CHS', 'zh-TW': 'zh-CHT', 'zh-HK': 'zh-CHT'}
# search-url
base_url = 'https://www.bing.com/'
@@ -32,15 +34,18 @@ search_string = 'search?{query}&first={offset}'
def request(query, params):
offset = (params['pageno'] - 1) * 10 + 1
- lang = params['language'].split('-')[0].upper()
+ lang = match_language(params['language'], supported_languages, language_aliases)
- query = u'language:{} {}'.format(lang, query.decode('utf-8')).encode('utf-8')
+ query = u'language:{} {}'.format(lang.split('-')[0].upper(), query.decode('utf-8')).encode('utf-8')
search_path = search_string.format(
query=urlencode({'q': query}),
offset=offset)
params['url'] = base_url + search_path
+
+ params['headers']['User-Agent'] = gen_useragent('Windows NT 6.3; WOW64')
+
return params
diff --git a/searx/engines/bing_images.py b/searx/engines/bing_images.py
@@ -19,6 +19,7 @@ from lxml import html
from json import loads
import re
from searx.url_utils import urlencode
+from searx.utils import match_language
# engine dependent config
categories = ['images']
@@ -46,26 +47,6 @@ safesearch_types = {2: 'STRICT',
_quote_keys_regex = re.compile('({|,)([a-z][a-z0-9]*):(")', re.I | re.U)
-# get supported region code
-def get_region_code(lang, lang_list=None):
- region = None
- if lang in (lang_list or supported_languages):
- region = lang
- elif lang.startswith('no'):
- region = 'nb-NO'
- else:
- # try to get a supported country code with language
- lang = lang.split('-')[0]
- for lc in (lang_list or supported_languages):
- if lang == lc.split('-')[0]:
- region = lc
- break
- if region:
- return region.lower()
- else:
- return 'en-us'
-
-
# do search-request
def request(query, params):
offset = (params['pageno'] - 1) * 10 + 1
@@ -74,7 +55,7 @@ def request(query, params):
query=urlencode({'q': query}),
offset=offset)
- language = get_region_code(params['language'])
+ language = match_language(params['language'], supported_languages).lower()
params['cookies']['SRCHHPGUSR'] = \
'ADLT=' + safesearch_types.get(params['safesearch'], 'DEMOTE')
diff --git a/searx/engines/bing_news.py b/searx/engines/bing_news.py
@@ -14,8 +14,8 @@
from datetime import datetime
from dateutil import parser
from lxml import etree
-from searx.utils import list_get
-from searx.engines.bing import _fetch_supported_languages, supported_languages_url
+from searx.utils import list_get, match_language
+from searx.engines.bing import _fetch_supported_languages, supported_languages_url, language_aliases
from searx.url_utils import urlencode, urlparse, parse_qsl
# engine dependent config
@@ -71,7 +71,7 @@ def request(query, params):
offset = (params['pageno'] - 1) * 10 + 1
- language = params['language']
+ language = match_language(params['language'], supported_languages, language_aliases)
params['url'] = _get_url(query, language, offset, params['time_range'])
diff --git a/searx/engines/bing_videos.py b/searx/engines/bing_videos.py
@@ -12,9 +12,10 @@
from json import loads
from lxml import html
-from searx.engines.bing_images import _fetch_supported_languages, supported_languages_url, get_region_code
+from searx.engines.bing_images import _fetch_supported_languages, supported_languages_url
from searx.engines.xpath import extract_text
from searx.url_utils import urlencode
+from searx.utils import match_language
categories = ['videos']
@@ -47,8 +48,8 @@ def request(query, params):
'ADLT=' + safesearch_types.get(params['safesearch'], 'DEMOTE')
# language cookie
- region = get_region_code(params['language'], lang_list=supported_languages)
- params['cookies']['_EDGE_S'] = 'mkt=' + region + '&F=1'
+ language = match_language(params['language'], supported_languages).lower()
+ params['cookies']['_EDGE_S'] = 'mkt=' + language + '&F=1'
# query and paging
params['url'] = search_url.format(query=urlencode({'q': query}),
diff --git a/searx/engines/currency_convert.py b/searx/engines/currency_convert.py
@@ -11,7 +11,7 @@ if sys.version_info[0] == 3:
unicode = str
categories = []
-url = 'https://finance.google.com/finance/converter?a=1&from={0}&to={1}'
+url = 'https://duckduckgo.com/js/spice/currency/1/{0}/{1}'
weight = 100
parser_re = re.compile(b'.*?(\\d+(?:\\.\\d+)?) ([^.0-9]+) (?:in|to) ([^.0-9]+)', re.I)
@@ -44,7 +44,6 @@ def request(query, params):
if not m:
# wrong query
return params
-
amount, from_currency, to_currency = m.groups()
amount = float(amount)
from_currency = name_to_iso4217(from_currency.strip())
@@ -63,16 +62,13 @@ def request(query, params):
def response(resp):
+ """remove first and last lines to get only json"""
+ json_resp = resp.text[resp.text.find('\n') + 1:resp.text.rfind('\n') - 2]
results = []
- pat = '<span class=bld>(.+) {0}</span>'.format(
- resp.search_params['to'].upper())
-
try:
- conversion_rate = re.findall(pat, resp.text)[0]
- conversion_rate = float(conversion_rate)
+ conversion_rate = float(json.loads(json_resp)['conversion']['converted-amount'])
except:
return results
-
answer = '{0} {1} = {2} {3}, 1 {1} ({5}) = {4} {3} ({6})'.format(
resp.search_params['amount'],
resp.search_params['from'],
@@ -83,7 +79,7 @@ def response(resp):
resp.search_params['to_name'],
)
- url = 'https://finance.google.com/finance?q={0}{1}'.format(
+ url = 'https://duckduckgo.com/js/spice/currency/1/{0}/{1}'.format(
resp.search_params['from'].upper(), resp.search_params['to'])
results.append({'answer': answer, 'url': url})
diff --git a/searx/engines/dailymotion.py b/searx/engines/dailymotion.py
@@ -15,6 +15,7 @@
from json import loads
from datetime import datetime
from searx.url_utils import urlencode
+from searx.utils import match_language
# engine dependent config
categories = ['videos']
@@ -32,7 +33,7 @@ supported_languages_url = 'https://api.dailymotion.com/languages'
# do search-request
def request(query, params):
- locale = params['language']
+ locale = match_language(params['language'], supported_languages)
params['url'] = search_url.format(
query=urlencode({'search': query, 'localization': locale}),
diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py
@@ -18,16 +18,27 @@ from json import loads
from searx.engines.xpath import extract_text
from searx.poolrequests import get
from searx.url_utils import urlencode
+from searx.utils import match_language
# engine dependent config
categories = ['general']
paging = True
language_support = True
-supported_languages_url = 'https://duckduckgo.com/d2030.js'
+supported_languages_url = 'https://duckduckgo.com/util/u172.js'
time_range_support = True
+language_aliases = {
+ 'ar-SA': 'ar-XA',
+ 'es-419': 'es-XL',
+ 'ja': 'jp-JP',
+ 'ko': 'kr-KR',
+ 'sl-SI': 'sl-SL',
+ 'zh-TW': 'tzh-TW',
+ 'zh-HK': 'tzh-HK'
+}
+
# search-url
-url = 'https://duckduckgo.com/html?{query}&s={offset}&api=/d.js&o=json&dc={dc_param}'
+url = 'https://duckduckgo.com/html?{query}&s={offset}&dc={dc_param}'
time_range_url = '&df={range}'
time_range_dict = {'day': 'd',
@@ -42,34 +53,12 @@ content_xpath = './/a[@class="result__snippet"]'
# match query's language to a region code that duckduckgo will accept
-def get_region_code(lang, lang_list=None):
- # custom fixes for languages
- if lang[:2] == 'ja':
- region_code = 'jp-jp'
- elif lang[:2] == 'sl':
- region_code = 'sl-sl'
- elif lang == 'zh-TW':
- region_code = 'tw-tzh'
- elif lang == 'zh-HK':
- region_code = 'hk-tzh'
- elif lang[-2:] == 'SA':
- region_code = 'xa-' + lang.split('-')[0]
- elif lang[-2:] == 'GB':
- region_code = 'uk-' + lang.split('-')[0]
- else:
- region_code = lang.split('-')
- if len(region_code) == 2:
- # country code goes first
- region_code = region_code[1].lower() + '-' + region_code[0].lower()
- else:
- # tries to get a country code from language
- region_code = region_code[0].lower()
- for lc in (lang_list or supported_languages):
- lc = lc.split('-')
- if region_code == lc[0]:
- region_code = lc[1].lower() + '-' + lc[0].lower()
- break
- return region_code
+def get_region_code(lang, lang_list=[]):
+ lang_code = match_language(lang, lang_list, language_aliases, 'wt-WT')
+ lang_parts = lang_code.split('-')
+
+ # country code goes first
+ return lang_parts[1].lower() + '-' + lang_parts[0].lower()
# do search-request
@@ -79,7 +68,7 @@ def request(query, params):
offset = (params['pageno'] - 1) * 30
- region_code = get_region_code(params['language'])
+ region_code = get_region_code(params['language'], supported_languages)
params['url'] = url.format(
query=urlencode({'q': query, 'kl': region_code}), offset=offset, dc_param=offset)
diff --git a/searx/engines/duckduckgo_definitions.py b/searx/engines/duckduckgo_definitions.py
@@ -2,9 +2,9 @@ import json
from lxml import html
from re import compile
from searx.engines.xpath import extract_text
-from searx.engines.duckduckgo import _fetch_supported_languages, supported_languages_url
+from searx.engines.duckduckgo import _fetch_supported_languages, supported_languages_url, language_aliases
from searx.url_utils import urlencode
-from searx.utils import html_to_text
+from searx.utils import html_to_text, match_language
url = 'https://api.duckduckgo.com/'\
+ '?{query}&format=json&pretty=0&no_redirect=1&d=1'
@@ -24,7 +24,8 @@ def result_to_text(url, text, htmlResult):
def request(query, params):
params['url'] = url.format(query=urlencode({'q': query}))
- params['headers']['Accept-Language'] = params['language'].split('-')[0]
+ language = match_language(params['language'], supported_languages, language_aliases)
+ params['headers']['Accept-Language'] = language.split('-')[0]
return params
diff --git a/searx/engines/duckduckgo_images.py b/searx/engines/duckduckgo_images.py
@@ -15,7 +15,10 @@
from json import loads
from searx.engines.xpath import extract_text
-from searx.engines.duckduckgo import _fetch_supported_languages, supported_languages_url, get_region_code
+from searx.engines.duckduckgo import (
+ _fetch_supported_languages, supported_languages_url,
+ get_region_code, language_aliases
+)
from searx.poolrequests import get
from searx.url_utils import urlencode
diff --git a/searx/engines/findx.py b/searx/engines/findx.py
@@ -0,0 +1,115 @@
+"""
+FindX (General, Images, Videos)
+
+@website https://www.findx.com
+@provide-api no
+@using-api no
+@results HTML
+@stable no
+@parse url, title, content, embedded, img_src, thumbnail_src
+"""
+
+from dateutil import parser
+from json import loads
+import re
+
+from lxml import html
+
+from searx import logger
+from searx.engines.xpath import extract_text
+from searx.engines.youtube_noapi import base_youtube_url, embedded_url
+from searx.url_utils import urlencode
+
+
+paging = True
+results_xpath = '//script[@id="initial-state"]'
+search_url = 'https://www.findx.com/{category}?{q}'
+type_map = {
+ 'none': 'web',
+ 'general': 'web',
+ 'images': 'images',
+ 'videos': 'videos',
+}
+
+
+def request(query, params):
+ params['url'] = search_url.format(
+ category=type_map[params['category']],
+ q=urlencode({
+ 'q': query,
+ 'page': params['pageno']
+ })
+ )
+ return params
+
+
+def response(resp):
+ dom = html.fromstring(resp.text)
+ results_raw_json = dom.xpath(results_xpath)
+ results_json = loads(extract_text(results_raw_json))
+
+ if len(results_json['web']['results']) > 0:
+ return _general_results(results_json['web']['results']['webSearch']['results'])
+
+ if len(results_json['images']['results']) > 0:
+ return _images_results(results_json['images']['results'])
+
+ if len(results_json['video']['results']) > 0:
+ return _videos_results(results_json['video']['results'])
+
+ return []
+
+
+def _general_results(general_results):
+ results = []
+ for result in general_results:
+ results.append({
+ 'url': result['url'],
+ 'title': result['title'],
+ 'content': result['sum'],
+ })
+ return results
+
+
+def _images_results(image_results):
+ results = []
+ for result in image_results:
+ results.append({
+ 'url': result['sourceURL'],
+ 'title': result['title'],
+ 'content': result['source'],
+ 'thumbnail_src': _extract_url(result['assets']['thumb']['url']),
+ 'img_src': _extract_url(result['assets']['file']['url']),
+ 'template': 'images.html',
+ })
+ return results
+
+
+def _videos_results(video_results):
+ results = []
+ for result in video_results:
+ if not result['kind'].startswith('youtube'):
+ logger.warn('Unknown video kind in findx: {}'.format(result['kind']))
+ continue
+
+ description = result['snippet']['description']
+ if len(description) > 300:
+ description = description[:300] + '...'
+
+ results.append({
+ 'url': base_youtube_url + result['id'],
+ 'title': result['snippet']['title'],
+ 'content': description,
+ 'thumbnail': _extract_url(result['snippet']['thumbnails']['default']['url']),
+ 'publishedDate': parser.parse(result['snippet']['publishedAt']),
+ 'embedded': embedded_url.format(videoid=result['id']),
+ 'template': 'videos.html',
+ })
+ return results
+
+
+def _extract_url(url):
+ matching = re.search('(/https?://[^)]+)', url)
+ if matching:
+ return matching.group(0)[1:]
+ return ''
diff --git a/searx/engines/gigablast.py b/searx/engines/gigablast.py
@@ -34,6 +34,7 @@ search_string = 'search?{query}'\
'&qlang={lang}'\
'&ff={safesearch}'\
'&rxiec={rxieu}'\
+ '&ulse={ulse}'\
'&rand={rxikd}' # current unix timestamp
# specific xpath variables
@@ -64,6 +65,7 @@ def request(query, params):
number_of_results=number_of_results,
rxikd=int(time() * 1000),
rxieu=random.randint(1000000000, 9999999999),
+ ulse=random.randint(100000000, 999999999),
lang=language,
safesearch=safesearch)
diff --git a/searx/engines/google.py b/searx/engines/google.py
@@ -14,6 +14,7 @@ from lxml import html, etree
from searx.engines.xpath import extract_text, extract_url
from searx import logger
from searx.url_utils import urlencode, urlparse, parse_qsl
+from searx.utils import match_language
logger = logger.getChild('google engine')
@@ -72,7 +73,7 @@ country_to_hostname = {
'RO': 'www.google.ro', # Romania
'RU': 'www.google.ru', # Russia
'SK': 'www.google.sk', # Slovakia
- 'SL': 'www.google.si', # Slovenia (SL -> si)
+ 'SI': 'www.google.si', # Slovenia
'SE': 'www.google.se', # Sweden
'TH': 'www.google.co.th', # Thailand
'TR': 'www.google.com.tr', # Turkey
@@ -90,7 +91,7 @@ url_map = 'https://www.openstreetmap.org/'\
search_path = '/search'
search_url = ('https://{hostname}' +
search_path +
- '?{query}&start={offset}&gws_rd=cr&gbv=1&lr={lang}&ei=x')
+ '?{query}&start={offset}&gws_rd=cr&gbv=1&lr={lang}&hl={lang_short}&ei=x')
time_range_search = "&tbs=qdr:{range}"
time_range_dict = {'day': 'd',
@@ -165,22 +166,16 @@ def extract_text_from_dom(result, xpath):
def request(query, params):
offset = (params['pageno'] - 1) * 10
- # temporary fix until a way of supporting en-US is found
- if params['language'] == 'en-US':
- params['language'] = 'en-GB'
-
- if params['language'][:2] == 'jv':
- language = 'jw'
- country = 'ID'
- url_lang = 'lang_jw'
+ language = match_language(params['language'], supported_languages)
+ language_array = language.split('-')
+ if params['language'].find('-') > 0:
+ country = params['language'].split('-')[1]
+ elif len(language_array) == 2:
+ country = language_array[1]
else:
- language_array = params['language'].lower().split('-')
- if len(language_array) == 2:
- country = language_array[1]
- else:
- country = 'US'
- language = language_array[0] + ',' + language_array[0] + '-' + country
- url_lang = 'lang_' + language_array[0]
+ country = 'US'
+
+ url_lang = 'lang_' + language
if use_locale_domain:
google_hostname = country_to_hostname.get(country.upper(), default_hostname)
@@ -192,11 +187,12 @@ def request(query, params):
params['url'] = search_url.format(offset=offset,
query=urlencode({'q': query}),
hostname=google_hostname,
- lang=url_lang)
+ lang=url_lang,
+ lang_short=language)
if params['time_range'] in time_range_dict:
params['url'] += time_range_search.format(range=time_range_dict[params['time_range']])
- params['headers']['Accept-Language'] = language
+ params['headers']['Accept-Language'] = language + ',' + language + '-' + country
params['headers']['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
params['google_hostname'] = google_hostname
diff --git a/searx/engines/google_images.py b/searx/engines/google_images.py
@@ -13,7 +13,7 @@
from datetime import date, timedelta
from json import loads
from lxml import html
-from searx.url_utils import urlencode
+from searx.url_utils import urlencode, urlparse, parse_qs
# engine dependent config
@@ -25,10 +25,9 @@ number_of_results = 100
search_url = 'https://www.google.com/search'\
'?{query}'\
- '&asearch=ichunk'\
- '&async=_id:rg_s,_pms:s'\
'&tbm=isch'\
- '&yv=2'\
+ '&gbv=1'\
+ '&sa=G'\
'&{search_options}'
time_range_attr = "qdr:{range}"
time_range_custom_attr = "cdr:1,cd_min:{start},cd_max{end}"
@@ -66,30 +65,22 @@ def request(query, params):
def response(resp):
results = []
- g_result = loads(resp.text)
-
- dom = html.fromstring(g_result[1][1])
+ dom = html.fromstring(resp.text)
# parse results
- for result in dom.xpath('//div[@data-ved]'):
-
- try:
- metadata = loads(''.join(result.xpath('./div[contains(@class, "rg_meta")]/text()')))
- except:
- continue
-
- thumbnail_src = metadata['tu']
-
- # http to https
- thumbnail_src = thumbnail_src.replace("http://", "https://")
-
+ for img in dom.xpath('//a'):
+ r = {
+ 'title': u' '.join(img.xpath('.//div[class="rg_ilmbg"]//text()')),
+ 'content': '',
+ 'template': 'images.html',
+ }
+ url = urlparse(img.xpath('.//@href')[0])
+ query = parse_qs(url.query)
+ r['url'] = query['imgrefurl'][0]
+ r['img_src'] = query['imgurl'][0]
+ r['thumbnail_src'] = r['img_src']
# append result
- results.append({'url': metadata['ru'],
- 'title': metadata['pt'],
- 'content': metadata['s'],
- 'thumbnail_src': thumbnail_src,
- 'img_src': metadata['ou'],
- 'template': 'images.html'})
+ results.append(r)
# return results
return results
diff --git a/searx/engines/google_news.py b/searx/engines/google_news.py
@@ -13,6 +13,7 @@
from lxml import html
from searx.engines.google import _fetch_supported_languages, supported_languages_url
from searx.url_utils import urlencode
+from searx.utils import match_language
# search-url
categories = ['news']
@@ -50,8 +51,9 @@ def request(query, params):
params['url'] = search_url.format(query=urlencode({'q': query}),
search_options=urlencode(search_options))
- language_array = params['language'].lower().split('-')
- params['url'] += '&lr=lang_' + language_array[0]
+ language = match_language(params['language'], supported_languages).split('-')[0]
+ if language:
+ params['url'] += '&lr=lang_' + language
return params
@@ -66,8 +68,8 @@ def response(resp):
for result in dom.xpath('//div[@class="g"]|//div[@class="g _cy"]'):
try:
r = {
- 'url': result.xpath('.//a[@class="l _PMs"]')[0].attrib.get("href"),
- 'title': ''.join(result.xpath('.//a[@class="l _PMs"]//text()')),
+ 'url': result.xpath('.//a[@class="l lLrAF"]')[0].attrib.get("href"),
+ 'title': ''.join(result.xpath('.//a[@class="l lLrAF"]//text()')),
'content': ''.join(result.xpath('.//div[@class="st"]//text()')),
}
except:
diff --git a/searx/engines/nyaa.py b/searx/engines/nyaa.py
@@ -1,7 +1,7 @@
"""
Nyaa.si (Anime Bittorrent tracker)
- @website http://www.nyaa.si/
+ @website https://nyaa.si/
@provide-api no
@using-api no
@results HTML
@@ -19,7 +19,7 @@ categories = ['files', 'images', 'videos', 'music']
paging = True
# search-url
-base_url = 'http://www.nyaa.si/'
+base_url = 'https://nyaa.si/'
search_url = base_url + '?page=search&{query}&offset={offset}'
# xpath queries
diff --git a/searx/engines/piratebay.py b/searx/engines/piratebay.py
@@ -18,7 +18,7 @@ categories = ['videos', 'music', 'files']
paging = True
# search-url
-url = 'https://thepiratebay.se/'
+url = 'https://thepiratebay.org/'
search_url = url + 'search/{search_term}/{pageno}/99/{search_type}'
# piratebay specific type-definitions
diff --git a/searx/engines/qwant.py b/searx/engines/qwant.py
@@ -14,6 +14,7 @@ from datetime import datetime
from json import loads
from searx.utils import html_to_text
from searx.url_utils import urlencode
+from searx.utils import match_language
# engine dependent config
categories = None
@@ -27,7 +28,7 @@ category_to_keyword = {'general': 'web',
'social media': 'social'}
# search-url
-url = 'https://api.qwant.com/api/search/{keyword}?count=10&offset={offset}&f=&{query}'
+url = 'https://api.qwant.com/api/search/{keyword}?count=10&offset={offset}&f=&{query}&t={keyword}&uiv=4'
# do search-request
@@ -45,16 +46,8 @@ def request(query, params):
offset=offset)
# add language tag
- if params['language'] == 'no' or params['language'].startswith('no-'):
- params['language'] = params['language'].replace('no', 'nb', 1)
- if params['language'].find('-') < 0:
- # tries to get a country code from language
- for lang in supported_languages:
- lc = lang.split('-')
- if params['language'] == lc[0]:
- params['language'] = lang
- break
- params['url'] += '&locale=' + params['language'].replace('-', '_').lower()
+ language = match_language(params['language'], supported_languages)
+ params['url'] += '&locale=' + language.replace('-', '_').lower()
return params
diff --git a/searx/engines/swisscows.py b/searx/engines/swisscows.py
@@ -14,6 +14,7 @@ from json import loads
import re
from lxml.html import fromstring
from searx.url_utils import unquote, urlencode
+from searx.utils import match_language
# engine dependent config
categories = ['general', 'images']
@@ -35,11 +36,8 @@ regex_img_url_remove_start = re.compile(b'^https?://i\.swisscows\.ch/\?link=')
# do search-request
def request(query, params):
- if params['language'].split('-')[0] == 'no':
- region = 'nb-NO'
- else:
- region = params['language']
- ui_language = params['language'].split('-')[0]
+ region = match_language(params['language'], supported_languages)
+ ui_language = region.split('-')[0]
search_path = search_string.format(
query=urlencode({'query': query, 'uiLanguage': ui_language, 'region': region}),
diff --git a/searx/engines/wikidata.py b/searx/engines/wikidata.py
@@ -16,6 +16,7 @@ from searx.poolrequests import get
from searx.engines.xpath import extract_text
from searx.engines.wikipedia import _fetch_supported_languages, supported_languages_url
from searx.url_utils import urlencode
+from searx.utils import match_language
from json import loads
from lxml.html import fromstring
@@ -26,7 +27,7 @@ result_count = 1
# urls
wikidata_host = 'https://www.wikidata.org'
url_search = wikidata_host \
- + '/wiki/Special:ItemDisambiguation?{query}'
+ + '/w/index.php?{query}'
wikidata_api = wikidata_host + '/w/api.php'
url_detail = wikidata_api\
@@ -39,7 +40,7 @@ url_map = 'https://www.openstreetmap.org/'\
url_image = 'https://commons.wikimedia.org/wiki/Special:FilePath/{filename}?width=500&height=400'
# xpaths
-wikidata_ids_xpath = '//div/ul[@class="wikibase-disambiguation"]/li/a/@title'
+wikidata_ids_xpath = '//ul[@class="mw-search-results"]/li//a/@href'
title_xpath = '//*[contains(@class,"wikibase-title-label")]'
description_xpath = '//div[contains(@class,"wikibase-entitytermsview-heading-description")]'
property_xpath = '//div[@id="{propertyid}"]'
@@ -53,25 +54,25 @@ value_xpath = './/div[contains(@class,"wikibase-statementview-mainsnak")]'\
+ '/*/div[contains(@class,"wikibase-snakview-value")]'
language_fallback_xpath = '//sup[contains(@class,"wb-language-fallback-indicator")]'
calendar_name_xpath = './/sup[contains(@class,"wb-calendar-name")]'
+media_xpath = value_xpath + '//div[contains(@class,"commons-media-caption")]//a'
def request(query, params):
- language = params['language'].split('-')[0]
-
params['url'] = url_search.format(
- query=urlencode({'label': query, 'language': language}))
+ query=urlencode({'search': query}))
return params
def response(resp):
results = []
html = fromstring(resp.text)
- wikidata_ids = html.xpath(wikidata_ids_xpath)
+ search_results = html.xpath(wikidata_ids_xpath)
- language = resp.search_params['language'].split('-')[0]
+ language = match_language(resp.search_params['language'], supported_languages).split('-')[0]
# TODO: make requests asynchronous to avoid timeout when result_count > 1
- for wikidata_id in wikidata_ids[:result_count]:
+ for search_result in search_results[:result_count]:
+ wikidata_id = search_result.split('/')[-1]
url = url_detail.format(query=urlencode({'page': wikidata_id, 'uselang': language}))
htmlresponse = get(url)
jsonresponse = loads(htmlresponse.text)
@@ -313,7 +314,7 @@ def add_image(result):
for property_id in property_ids:
image = result.xpath(property_xpath.replace('{propertyid}', property_id))
if image:
- image_name = image[0].xpath(value_xpath)
+ image_name = image[0].xpath(media_xpath)
image_src = url_image.replace('{filename}', extract_text(image_name[0]))
return image_src
diff --git a/searx/engines/wikipedia.py b/searx/engines/wikipedia.py
@@ -13,6 +13,7 @@
from json import loads
from lxml.html import fromstring
from searx.url_utils import quote, urlencode
+from searx.utils import match_language
# search-url
base_url = u'https://{language}.wikipedia.org/'
@@ -30,13 +31,7 @@ supported_languages_url = 'https://meta.wikimedia.org/wiki/List_of_Wikipedias'
# set language in base_url
def url_lang(lang):
- lang = lang.split('-')[0]
- if lang not in supported_languages:
- language = 'en'
- else:
- language = lang
-
- return language
+ return match_language(lang, supported_languages).split('-')[0]
# do search-request
diff --git a/searx/engines/xpath.py b/searx/engines/xpath.py
@@ -53,7 +53,7 @@ def extract_url(xpath_results, search_url):
if url.startswith('//'):
# add http or https to this kind of url //example.com/
parsed_search_url = urlparse(search_url)
- url = u'{0}:{1}'.format(parsed_search_url.scheme, url)
+ url = u'{0}:{1}'.format(parsed_search_url.scheme or 'http', url)
elif url.startswith('/'):
# fix relative url to the search engine
url = urljoin(search_url, url)
diff --git a/searx/engines/yahoo.py b/searx/engines/yahoo.py
@@ -14,6 +14,7 @@
from lxml import html
from searx.engines.xpath import extract_text, extract_url
from searx.url_utils import unquote, urlencode
+from searx.utils import match_language
# engine dependent config
categories = ['general']
@@ -39,6 +40,8 @@ time_range_dict = {'day': ['1d', 'd'],
'week': ['1w', 'w'],
'month': ['1m', 'm']}
+language_aliases = {'zh-CN': 'zh-CHS', 'zh-TW': 'zh-CHT', 'zh-HK': 'zh-CHT'}
+
# remove yahoo-specific tracking-url
def parse_url(url_string):
@@ -70,23 +73,16 @@ def _get_url(query, offset, language, time_range):
lang=language)
-def _get_language(params):
- if params['language'][:2] == 'zh':
- if params['language'] == 'zh' or params['language'] == 'zh-CH':
- return 'szh'
- else:
- return 'tzh'
- else:
- return params['language'].split('-')[0]
-
-
# do search-request
def request(query, params):
if params['time_range'] and params['time_range'] not in time_range_dict:
return params
offset = (params['pageno'] - 1) * 10 + 1
- language = _get_language(params)
+ language = match_language(params['language'], supported_languages, language_aliases)
+ if language not in language_aliases.values():
+ language = language.split('-')[0]
+ language = language.replace('-', '_').lower()
params['url'] = _get_url(query, offset, language, params['time_range'])
@@ -145,7 +141,11 @@ def _fetch_supported_languages(resp):
dom = html.fromstring(resp.text)
options = dom.xpath('//div[@id="yschlang"]/span/label/input')
for option in options:
- code = option.xpath('./@value')[0][5:].replace('_', '-')
+ code_parts = option.xpath('./@value')[0][5:].split('_')
+ if len(code_parts) == 2:
+ code = code_parts[0] + '-' + code_parts[1].upper()
+ else:
+ code = code_parts[0]
supported_languages.append(code)
return supported_languages
diff --git a/searx/engines/yahoo_news.py b/searx/engines/yahoo_news.py
@@ -13,9 +13,12 @@ import re
from datetime import datetime, timedelta
from lxml import html
from searx.engines.xpath import extract_text, extract_url
-from searx.engines.yahoo import parse_url, _fetch_supported_languages, supported_languages_url
+from searx.engines.yahoo import (
+ parse_url, _fetch_supported_languages, supported_languages_url, language_aliases
+)
from dateutil import parser
from searx.url_utils import urlencode
+from searx.utils import match_language
# engine dependent config
categories = ['news']
@@ -38,7 +41,7 @@ suggestion_xpath = '//div[contains(@class,"VerALSOTRY")]//a'
def request(query, params):
offset = (params['pageno'] - 1) * 10 + 1
- language = params['language'].split('-')[0]
+ language = match_language(params['language'], supported_languages, language_aliases).split('-')[0]
params['url'] = search_url.format(offset=offset,
query=urlencode({'p': query}),
diff --git a/searx/languages.py b/searx/languages.py
@@ -5,11 +5,7 @@
language_codes = (
(u"ar-SA", u"العربية", u"", u"Arabic"),
(u"bg-BG", u"Български", u"", u"Bulgarian"),
- (u"ca", u"Català", u"", u"Catalan"),
- (u"ca-AD", u"Català", u"Andorra", u"Catalan"),
- (u"ca-CT", u"Català", u"", u"Catalan"),
- (u"ca-ES", u"Català", u"Espanya", u"Catalan"),
- (u"ca-FR", u"Català", u"França", u"Catalan"),
+ (u"ca-ES", u"Català", u"", u"Catalan"),
(u"cs-CZ", u"Čeština", u"", u"Czech"),
(u"da-DK", u"Dansk", u"", u"Danish"),
(u"de", u"Deutsch", u"", u"German"),
@@ -21,55 +17,51 @@ language_codes = (
(u"en-AU", u"English", u"Australia", u"English"),
(u"en-CA", u"English", u"Canada", u"English"),
(u"en-GB", u"English", u"United Kingdom", u"English"),
- (u"en-ID", u"English", u"Indonesia", u"English"),
- (u"en-IE", u"English", u"Ireland", u"English"),
(u"en-IN", u"English", u"India", u"English"),
(u"en-MY", u"English", u"Malaysia", u"English"),
- (u"en-NZ", u"English", u"New Zealand", u"English"),
- (u"en-PH", u"English", u"Philippines", u"English"),
- (u"en-SG", u"English", u"Singapore", u"English"),
(u"en-US", u"English", u"United States", u"English"),
- (u"en-ZA", u"English", u"South Africa", u"English"),
(u"es", u"Español", u"", u"Spanish"),
- (u"es-AD", u"Español", u"Andorra", u"Spanish"),
(u"es-AR", u"Español", u"Argentina", u"Spanish"),
- (u"es-CL", u"Español", u"Chile", u"Spanish"),
- (u"es-CO", u"Español", u"Colombia", u"Spanish"),
(u"es-ES", u"Español", u"España", u"Spanish"),
(u"es-MX", u"Español", u"México", u"Spanish"),
- (u"es-PE", u"Español", u"Perú", u"Spanish"),
- (u"es-US", u"Español", u"Estados Unidos", u"Spanish"),
(u"et-EE", u"Eesti", u"", u"Estonian"),
+ (u"fa-IR", u"فارسی", u"", u"Persian"),
(u"fi-FI", u"Suomi", u"", u"Finnish"),
(u"fr", u"Français", u"", u"French"),
- (u"fr-AD", u"Français", u"Andorre", u"French"),
(u"fr-BE", u"Français", u"Belgique", u"French"),
(u"fr-CA", u"Français", u"Canada", u"French"),
(u"fr-CH", u"Français", u"Suisse", u"French"),
(u"fr-FR", u"Français", u"France", u"French"),
(u"he-IL", u"עברית", u"", u"Hebrew"),
+ (u"hr-HR", u"Hrvatski", u"", u"Croatian"),
(u"hu-HU", u"Magyar", u"", u"Hungarian"),
- (u"it", u"Italiano", u"", u"Italian"),
- (u"it-CH", u"Italiano", u"Svizzera", u"Italian"),
- (u"it-IT", u"Italiano", u"Italia", u"Italian"),
+ (u"id-ID", u"Indonesia", u"", u"Indonesian"),
+ (u"is-IS", u"Íslenska", u"", u"Icelandic"),
+ (u"it-IT", u"Italiano", u"", u"Italian"),
(u"ja-JP", u"日本語", u"", u"Japanese"),
(u"ko-KR", u"한국어", u"", u"Korean"),
+ (u"lt-LT", u"Lietuvių", u"", u"Lithuanian"),
+ (u"lv-LV", u"Latviešu", u"", u"Latvian"),
+ (u"ms-MY", u"Bahasa Melayu", u"", u"Malay"),
+ (u"nb-NO", u"Norsk Bokmål", u"", u"Norwegian Bokmål"),
(u"nl", u"Nederlands", u"", u"Dutch"),
(u"nl-BE", u"Nederlands", u"België", u"Dutch"),
(u"nl-NL", u"Nederlands", u"Nederland", u"Dutch"),
- (u"no-NO", u"Norsk", u"", u"Norwegian"),
(u"pl-PL", u"Polski", u"", u"Polish"),
(u"pt", u"Português", u"", u"Portuguese"),
- (u"pt-AD", u"Português", u"Andorra", u"Portuguese"),
(u"pt-BR", u"Português", u"Brasil", u"Portuguese"),
(u"pt-PT", u"Português", u"Portugal", u"Portuguese"),
(u"ro-RO", u"Română", u"", u"Romanian"),
(u"ru-RU", u"Русский", u"", u"Russian"),
+ (u"sk-SK", u"Slovenčina", u"", u"Slovak"),
+ (u"sl-SI", u"Slovenščina", u"", u"Slovenian"),
+ (u"sr-RS", u"Српски", u"", u"Serbian"),
(u"sv-SE", u"Svenska", u"", u"Swedish"),
(u"th-TH", u"ไทย", u"", u"Thai"),
(u"tr-TR", u"Türkçe", u"", u"Turkish"),
+ (u"uk-UA", u"Українська", u"", u"Ukrainian"),
+ (u"vi-VN", u"Tiếng Việt", u"", u"Vietnamese"),
(u"zh", u"中文", u"", u"Chinese"),
(u"zh-CN", u"中文", u"中国", u"Chinese"),
- (u"zh-HK", u"中文", u"香港", u"Chinese"),
- (u"zh-TW", u"中文", u"台湾", u"Chinese")
+ (u"zh-TW", u"中文", u"台灣", u"Chinese")
)
diff --git a/searx/plugins/oa_doi_rewrite.py b/searx/plugins/oa_doi_rewrite.py
@@ -9,7 +9,7 @@ regex = re.compile(r'10\.\d{4,9}/[^\s]+')
name = gettext('Open Access DOI rewrite')
description = gettext('Avoid paywalls by redirecting to open-access versions of publications when available')
default_on = False
-preference_section = 'privacy'
+preference_section = 'general'
doi_resolvers = settings['doi_resolvers']
@@ -30,7 +30,8 @@ def get_doi_resolver(args, preference_doi_resolver):
doi_resolver = args.get('doi_resolver', preference_doi_resolver)[0]
if doi_resolver not in doi_resolvers:
doi_resolvers = settings['default_doi_resolver']
- return doi_resolver
+ doi_resolver_url = doi_resolvers[doi_resolver]
+ return doi_resolver_url
def on_result(request, search, result):
diff --git a/searx/preferences.py b/searx/preferences.py
@@ -115,10 +115,6 @@ class SearchLanguageSetting(EnumStringSetting):
pass
elif lang in self.choices:
data = lang
- elif data == 'nb-NO':
- data = 'no-NO'
- elif data == 'ar-XA':
- data = 'ar-SA'
else:
data = self.value
self.value = data
diff --git a/searx/query.py b/searx/query.py
@@ -96,9 +96,13 @@ class RawTextQuery(object):
break
# user may set a valid, yet not selectable language
- if not self.languages and VALID_LANGUAGE_CODE.match(lang):
- self.languages.append(lang)
- parse_next = True
+ if VALID_LANGUAGE_CODE.match(lang):
+ lang_parts = lang.split('-')
+ if len(lang_parts) > 1:
+ lang = lang_parts[0].lower() + '-' + lang_parts[1].upper()
+ if lang not in self.languages:
+ self.languages.append(lang)
+ parse_next = True
# this force a engine or category
if query_part[0] == '!' or query_part[0] == '?':
@@ -107,14 +111,21 @@ class RawTextQuery(object):
# check if prefix is equal with engine shortcut
if prefix in engine_shortcuts:
parse_next = True
- self.engines.append({'category': 'none',
- 'name': engine_shortcuts[prefix]})
+ engine_name = engine_shortcuts[prefix]
+ if engine_name in engines:
+ for engine_category in engines[engine_name].categories:
+ self.engines.append({'category': engine_category,
+ 'name': engine_name,
+ 'from_bang': True})
# check if prefix is equal with engine name
elif prefix in engines:
parse_next = True
- self.engines.append({'category': 'none',
- 'name': prefix})
+ if prefix in engines:
+ for engine_category in engines[prefix].categories:
+ self.engines.append({'category': engine_category,
+ 'name': prefix,
+ 'from_bang': True})
# check if prefix is equal with categorie name
elif prefix in categories:
diff --git a/searx/search.py b/searx/search.py
@@ -258,8 +258,13 @@ def get_search_query_from_webapp(preferences, form):
# if engines are calculated from query,
# set categories by using that informations
if query_engines and raw_text_query.specific:
- query_categories = list(set(engine['category']
- for engine in query_engines))
+ additional_categories = set()
+ for engine in query_engines:
+ if 'from_bang' in engine and engine['from_bang']:
+ additional_categories.add('none')
+ else:
+ additional_categories.add(engine['category'])
+ query_categories = list(additional_categories)
# otherwise, using defined categories to
# calculate which engines should be used
diff --git a/searx/settings.yml b/searx/settings.yml
@@ -174,6 +174,7 @@ engines:
- name : wikidata
engine : wikidata
shortcut : wd
+ timeout : 3.0
weight : 2
- name : duckduckgo
@@ -191,10 +192,9 @@ engines:
engine : xpath
paging : True
search_url : http://etymonline.com/?search={query}&p={pageno}
- url_xpath : //dt/a[1]/@href
- title_xpath : //dt
- content_xpath : //dd
- suggestion_xpath : //a[@class="crossreference"]
+ url_xpath : //a[contains(@class, "word--")]/@href
+ title_xpath : //p[contains(@class, "word__name--")]/text()
+ content_xpath : //section[contains(@class, "word__defination")]/object
first_page_num : 0
shortcut : et
disabled : True
@@ -218,6 +218,24 @@ engines:
shortcut : fd
disabled : True
+ - name : findx
+ engine : findx
+ shortcut : fx
+ categories : general
+ disabled : True
+
+ - name : findx images
+ engine : findx
+ shortcut : fxi
+ categories : images
+ disabled : True
+
+ - name : findx videos
+ engine : findx
+ shortcut : fxv
+ categories : videos
+ disabled : True
+
- name : flickr
categories : images
shortcut : fl
@@ -292,7 +310,7 @@ engines:
engine : xpath
paging : True
search_url : https://scholar.google.com/scholar?start={pageno}&q={query}&hl=en&as_sdt=0,5&as_vis=1
- results_xpath : //div[@class="gs_r"]/div[@class="gs_ri"]
+ results_xpath : //div[contains(@class, "gs_r")]/div[@class="gs_ri"]
url_xpath : .//h3/a/@href
title_xpath : .//h3/a
content_xpath : .//div[@class="gs_rs"]
@@ -414,6 +432,12 @@ engines:
engine : nyaa
shortcut : nt
disabled : True
+
+ - name : acgsou
+ engine : acgsou
+ shortcut : acg
+ disabled : True
+ timeout: 5.0
- name : openairedatasets
engine : json_engine
@@ -723,6 +747,7 @@ locales:
it : Italiano (Italian)
ja : 日本語 (Japanese)
nl : Nederlands (Dutch)
+ pl : Polski (Polish)
pt : Português (Portuguese)
pt_BR : Português (Portuguese_Brazil)
ro : Română (Romanian)
@@ -740,5 +765,6 @@ doi_resolvers :
oadoi.org : 'https://oadoi.org/'
doi.org : 'https://doi.org/'
doai.io : 'http://doai.io/'
+ sci-hub.tw : 'http://sci-hub.tw/'
default_doi_resolver : 'oadoi.org'
diff --git a/searx/static/plugins/css/infinite_scroll.css b/searx/static/plugins/css/infinite_scroll.css
@@ -14,3 +14,6 @@
border-radius: 50% !important;
margin: 0 auto;
}
+#pagination button {
+ visibility: hidden;
+}
diff --git a/searx/static/themes/oscar/css/logicodev-dark.min.css b/searx/static/themes/oscar/css/logicodev-dark.min.css
@@ -1 +1 @@
-*{border-radius:0!important}html{position:relative;min-height:100%;color:#29314d}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin-bottom:80px;background-color:#fff}body a{color:#08c}.footer{position:absolute;bottom:0;width:100%;height:60px;text-align:center;color:#999}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:before,.onoffswitch-inner:after{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#01d7d4;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF!important;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.result_header{margin-top:0;margin-bottom:2px;font-size:16px}.result_header .favicon{margin-bottom:-3px}.result_header a{color:#29314d;text-decoration:none}.result_header a:hover{color:#08c}.result_header a:visited{color:#684898}.result_header a .highlight{background-color:#f6f9fa}.result-content{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result-content .highlight{font-weight:700}.external-link{color:#069025;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-default,.result-code,.result-torrent,.result-videos,.result-map{clear:both;padding:2px 4px}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#f6f9fa}.result-images{float:left!important;width:24%;margin:.5%}.result-images a{display:block;width:100%;background-size:cover}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-videos hr{margin:5px 0 15px 0}.result-videos .collapse{width:100%}.result-videos .in{margin-bottom:8px}.result-torrent{clear:both}.result-torrent b{margin-right:5px;margin-left:5px}.result-torrent .seeders{color:#2ecc71}.result-torrent .leechers{color:#f35e77}.result-map{clear:both}.result-code{clear:both}.result-code .code-fork,.result-code .code-fork a{color:#666}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:60px}.label-default{color:#a4a4a4;background:0 0}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}.infobox .panel-heading{background-color:#f6f9fa}.infobox .panel-heading .panel-title{font-weight:700}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox .btn{background-color:#2ecc71;border:none}.infobox .btn a{color:#fff;margin:5px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories,#categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{flex-grow:1;flex-basis:auto;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-top:.4rem;text-align:center}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#ddd 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#main-logo{margin-top:10vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#a4a4a4}#search_form .input-group-btn .btn{border-color:#a4a4a4}#search_form .input-group-btn .btn:hover{background-color:#2ecc71;color:#fff}.custom-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.search-margin{margin-bottom:.6em}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-right:.7rem;padding-left:.7rem}#advanced-search-container label:last-child,#advanced-search-container .input-group-addon:last-child{border-right:#ddd 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#check-advanced{display:none}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}pre,code{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.lineno{margin-right:5px}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#556366;font-style:italic}.highlight .err{border:1px solid #ffa92f}.highlight .k{color:#BE74D5;font-weight:700}.highlight .o{color:#d19a66}.highlight .cm{color:#556366;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#556366;font-style:italic}.highlight .cs{color:#556366;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:#BE74D5;font-weight:700}.highlight .kd{color:#BE74D5;font-weight:700}.highlight .kn{color:#BE74D5;font-weight:700}.highlight .kp{color:#be74d5}.highlight .kr{color:#BE74D5;font-weight:700}.highlight .kt{color:#d46c72}.highlight .m{color:#d19a66}.highlight .s{color:#86c372}.highlight .na{color:#7d9029}.highlight .nb{color:#be74d5}.highlight .nc{color:#61AFEF;font-weight:700}.highlight .no{color:#d19a66}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#61afef}.highlight .nl{color:#a0a000}.highlight .nn{color:#61AFEF;font-weight:700}.highlight .nt{color:#BE74D5;font-weight:700}.highlight .nv{color:#dfc06f}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#d7dae0}.highlight .mf{color:#d19a66}.highlight .mh{color:#d19a66}.highlight .mi{color:#d19a66}.highlight .mo{color:#d19a66}.highlight .sb{color:#86c372}.highlight .sc{color:#86c372}.highlight .sd{color:#86C372;font-style:italic}.highlight .s2{color:#86c372}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#86c372}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:#be74d5}.highlight .sr{color:#b68}.highlight .s1{color:#86c372}.highlight .ss{color:#dfc06f}.highlight .bp{color:#be74d5}.highlight .vc{color:#dfc06f}.highlight .vg{color:#dfc06f}.highlight .vi{color:#dfc06f}.highlight .il{color:#d19a66}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;color:#556366}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.highlight pre{background-color:#282C34;color:#D7DAE0;border:none;margin-bottom:25px;font-size:15px;padding:20px 10px}.highlight{font-weight:700}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}body{background:#1d1f21 none!important;color:#D5D8D7!important}a{color:#41a2ce!important;text-decoration:none!important}a:hover{color:#5F89AC!important}input,button,textarea,select{border:1px solid #282a2e!important;background-color:#444!important;color:#BBB!important}input:focus,button:focus,textarea:focus,select:focus{border:1px solid #C5C8C6!important;box-shadow:initial!important}div#advanced-search-container div#categories label{background:0 0;border:1px solid #282a2e}ul.nav li a{border:0!important;border-bottom:1px solid #4d3f43!important}#categories *,.modal-wrapper *{background:#1d1f21 none!important;color:#D5D8D7!important}#categories *{border:1px solid #3d3f43!important}#categories :checked+label{border-bottom:4px solid #3d9f94!important}.result-content{color:#B5B8B7!important}.external-link{color:#35B887!important}.table-striped tr td,.table-striped tr th{border-color:#4d3f43!important}.highlight{background:#333!important}.navbar{background:#1d1f21 none;border:none}.navbar .active,.menu{background:none!important}.label-default{background:0 0;color:#BBB}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus,.nav-tabs.nav-justified>.active>a{background-color:#282a2e!important}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#222426}.btn{color:#BBB;background-color:#444;border:1px solid #282a2e}.btn:hover{color:#444!important;background-color:#BBB!important}.btn-primary.active{color:#C5C8C6;background-color:#5F89AC;border-color:#5F89AC}.panel{border:1px solid #111;background:0 0}.panel-heading{color:#C5C8C6!important;background:#282a2e!important;border-bottom:none}.panel-body{color:#C5C8C6!important;background:#1d1f21!important;border-color:#111!important}p.btn.btn-default{background:0 0}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th,.table-striped>thead>tr:nth-child(odd)>th{background:#2d2f32 none!important;color:#D5D8D7!important}.label-success{background:#1d6f42 none!important}.label-danger{background:#ad1f12 none!important}.searx-navbar{background:#333334;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searx-navbar .instance a{color:#01d7d4;margin-left:2rem}#main-logo{margin-top:20vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}.onoffswitch-inner:before,.onoffswitch-inner:after{background:#1d1f21 none!important}.onoffswitch-switch,.onoffswitch-label{border:2px solid #3d3f43!important}.nav>li>a:hover,.nav>li>a:focus{background-color:#3d3f43!important}.img-thumbnail,.thumbnail{padding:0;line-height:1.42857143;background:0 0;border:none}.modal-content{background:#1d1f21 none!important}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background:rgba(240,0,0,.56)!important;color:#C5C8C6!important}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background:rgba(237,59,59,.61)!important;color:#C5C8C6!important}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background:#66696e!important}.btn-success{color:#C5C8C6;background:#449d44}.btn-danger{color:#C5C8C6;background:#d9534f}.well{background:#444;border-color:#282a2e}.highlight{background-color:transparent!important}
-\ No newline at end of file
+*{border-radius:0!important}html{position:relative;min-height:100%;color:#29314d}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin-bottom:80px;background-color:#fff}body a{color:#08c}.footer{position:absolute;bottom:0;width:100%;height:60px;text-align:center;color:#999}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:before,.onoffswitch-inner:after{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#01d7d4;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF!important;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.result_header{margin-top:0;margin-bottom:2px;font-size:16px}.result_header .favicon{margin-bottom:-3px}.result_header a{color:#29314d;text-decoration:none}.result_header a:hover{color:#08c}.result_header a:visited{color:#684898}.result_header a .highlight{background-color:#f6f9fa}.result-content{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result-content .highlight{font-weight:700}.external-link{color:#069025;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-default,.result-code,.result-torrent,.result-videos,.result-map{clear:both;padding:2px 4px}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#f6f9fa}.result-images{float:left!important;width:24%;margin:.5%}.result-images a{display:block;width:100%;background-size:cover}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-videos hr{margin:5px 0 15px 0}.result-videos .collapse{width:100%}.result-videos .in{margin-bottom:8px}.result-torrent{clear:both}.result-torrent b{margin-right:5px;margin-left:5px}.result-torrent .seeders{color:#2ecc71}.result-torrent .leechers{color:#f35e77}.result-map{clear:both}.result-code{clear:both}.result-code .code-fork,.result-code .code-fork a{color:#666}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:60px}.label-default{color:#a4a4a4;background:0 0}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}.infobox .panel-heading{background-color:#f6f9fa}.infobox .panel-heading .panel-title{font-weight:700}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox .btn{background-color:#2ecc71;border:none}.infobox .btn a{color:#fff;margin:5px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories,#categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{flex-grow:1;flex-basis:auto;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-top:.4rem;text-align:center;min-width:50px}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#ddd 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#main-logo{margin-top:10vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#a4a4a4}#search_form .input-group-btn .btn{border-color:#a4a4a4}#search_form .input-group-btn .btn:hover{background-color:#2ecc71;color:#fff}.custom-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.search-margin{margin-bottom:.6em}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-right:.7rem;padding-left:.7rem}#advanced-search-container label:last-child,#advanced-search-container .input-group-addon:last-child{border-right:#ddd 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#check-advanced{display:none}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}pre,code{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.lineno{margin-right:5px}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#556366;font-style:italic}.highlight .err{border:1px solid #ffa92f}.highlight .k{color:#BE74D5;font-weight:700}.highlight .o{color:#d19a66}.highlight .cm{color:#556366;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#556366;font-style:italic}.highlight .cs{color:#556366;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:#BE74D5;font-weight:700}.highlight .kd{color:#BE74D5;font-weight:700}.highlight .kn{color:#BE74D5;font-weight:700}.highlight .kp{color:#be74d5}.highlight .kr{color:#BE74D5;font-weight:700}.highlight .kt{color:#d46c72}.highlight .m{color:#d19a66}.highlight .s{color:#86c372}.highlight .na{color:#7d9029}.highlight .nb{color:#be74d5}.highlight .nc{color:#61AFEF;font-weight:700}.highlight .no{color:#d19a66}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#61afef}.highlight .nl{color:#a0a000}.highlight .nn{color:#61AFEF;font-weight:700}.highlight .nt{color:#BE74D5;font-weight:700}.highlight .nv{color:#dfc06f}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#d7dae0}.highlight .mf{color:#d19a66}.highlight .mh{color:#d19a66}.highlight .mi{color:#d19a66}.highlight .mo{color:#d19a66}.highlight .sb{color:#86c372}.highlight .sc{color:#86c372}.highlight .sd{color:#86C372;font-style:italic}.highlight .s2{color:#86c372}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#86c372}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:#be74d5}.highlight .sr{color:#b68}.highlight .s1{color:#86c372}.highlight .ss{color:#dfc06f}.highlight .bp{color:#be74d5}.highlight .vc{color:#dfc06f}.highlight .vg{color:#dfc06f}.highlight .vi{color:#dfc06f}.highlight .il{color:#d19a66}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;color:#556366}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.highlight pre{background-color:#282C34;color:#D7DAE0;border:none;margin-bottom:25px;font-size:15px;padding:20px 10px}.highlight{font-weight:700}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}body{background:#1d1f21 none!important;color:#D5D8D7!important}a{color:#41a2ce!important;text-decoration:none!important}a:hover{color:#5F89AC!important}input,button,textarea,select{border:1px solid #282a2e!important;background-color:#444!important;color:#BBB!important}input:focus,button:focus,textarea:focus,select:focus{border:1px solid #C5C8C6!important;box-shadow:initial!important}div#advanced-search-container div#categories label{background:0 0;border:1px solid #282a2e}ul.nav li a{border:0!important;border-bottom:1px solid #4d3f43!important}#categories *,.modal-wrapper *{background:#1d1f21 none!important;color:#D5D8D7!important}#categories *{border:1px solid #3d3f43!important}#categories :checked+label{border-bottom:4px solid #3d9f94!important}.result-content{color:#B5B8B7!important}.external-link{color:#35B887!important}.table-striped tr td,.table-striped tr th{border-color:#4d3f43!important}.highlight{background:#333!important}.navbar{background:#1d1f21 none;border:none}.navbar .active,.menu{background:none!important}.label-default{background:0 0;color:#BBB}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus,.nav-tabs.nav-justified>.active>a{background-color:#282a2e!important}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#222426}.btn{color:#BBB;background-color:#444;border:1px solid #282a2e}.btn:hover{color:#444!important;background-color:#BBB!important}.btn-primary.active{color:#C5C8C6;background-color:#5F89AC;border-color:#5F89AC}.panel{border:1px solid #111;background:0 0}.panel-heading{color:#C5C8C6!important;background:#282a2e!important;border-bottom:none}.panel-body{color:#C5C8C6!important;background:#1d1f21!important;border-color:#111!important}p.btn.btn-default{background:0 0}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th,.table-striped>thead>tr:nth-child(odd)>th{background:#2d2f32 none!important;color:#D5D8D7!important}.label-success{background:#1d6f42 none!important}.label-danger{background:#ad1f12 none!important}.searx-navbar{background:#333334;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searx-navbar .instance a{color:#01d7d4;margin-left:2rem}#main-logo{margin-top:20vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}.onoffswitch-inner:before,.onoffswitch-inner:after{background:#1d1f21 none!important}.onoffswitch-switch,.onoffswitch-label{border:2px solid #3d3f43!important}.nav>li>a:hover,.nav>li>a:focus{background-color:#3d3f43!important}.img-thumbnail,.thumbnail{padding:0;line-height:1.42857143;background:0 0;border:none}.modal-content{background:#1d1f21 none!important}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background:rgba(240,0,0,.56)!important;color:#C5C8C6!important}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background:rgba(237,59,59,.61)!important;color:#C5C8C6!important}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background:#66696e!important}.btn-success{color:#C5C8C6;background:#449d44}.btn-danger{color:#C5C8C6;background:#d9534f}.well{background:#444;border-color:#282a2e}.highlight{background-color:transparent!important}
+\ No newline at end of file
diff --git a/searx/static/themes/oscar/css/logicodev.min.css b/searx/static/themes/oscar/css/logicodev.min.css
@@ -1 +1 @@
-.searx-navbar{background:#29314d;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searx-navbar .instance a{color:#01d7d4;margin-left:2rem}#main-logo{margin-top:20vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}*{border-radius:0!important}html{position:relative;min-height:100%;color:#29314d}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin-bottom:80px;background-color:#fff}body a{color:#08c}.footer{position:absolute;bottom:0;width:100%;height:60px;text-align:center;color:#999}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:before,.onoffswitch-inner:after{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#01d7d4;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF!important;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.result_header{margin-top:0;margin-bottom:2px;font-size:16px}.result_header .favicon{margin-bottom:-3px}.result_header a{color:#29314d;text-decoration:none}.result_header a:hover{color:#08c}.result_header a:visited{color:#684898}.result_header a .highlight{background-color:#f6f9fa}.result-content{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result-content .highlight{font-weight:700}.external-link{color:#069025;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-default,.result-code,.result-torrent,.result-videos,.result-map{clear:both;padding:2px 4px}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#f6f9fa}.result-images{float:left!important;width:24%;margin:.5%}.result-images a{display:block;width:100%;background-size:cover}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-videos hr{margin:5px 0 15px 0}.result-videos .collapse{width:100%}.result-videos .in{margin-bottom:8px}.result-torrent{clear:both}.result-torrent b{margin-right:5px;margin-left:5px}.result-torrent .seeders{color:#2ecc71}.result-torrent .leechers{color:#f35e77}.result-map{clear:both}.result-code{clear:both}.result-code .code-fork,.result-code .code-fork a{color:#666}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:60px}.label-default{color:#a4a4a4;background:0 0}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}.infobox .panel-heading{background-color:#f6f9fa}.infobox .panel-heading .panel-title{font-weight:700}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox .btn{background-color:#2ecc71;border:none}.infobox .btn a{color:#fff;margin:5px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories,#categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{flex-grow:1;flex-basis:auto;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-top:.4rem;text-align:center}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#ddd 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#main-logo{margin-top:10vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#a4a4a4}#search_form .input-group-btn .btn{border-color:#a4a4a4}#search_form .input-group-btn .btn:hover{background-color:#2ecc71;color:#fff}.custom-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.search-margin{margin-bottom:.6em}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-right:.7rem;padding-left:.7rem}#advanced-search-container label:last-child,#advanced-search-container .input-group-addon:last-child{border-right:#ddd 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#check-advanced{display:none}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}pre,code{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.lineno{margin-right:5px}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#556366;font-style:italic}.highlight .err{border:1px solid #ffa92f}.highlight .k{color:#BE74D5;font-weight:700}.highlight .o{color:#d19a66}.highlight .cm{color:#556366;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#556366;font-style:italic}.highlight .cs{color:#556366;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:#BE74D5;font-weight:700}.highlight .kd{color:#BE74D5;font-weight:700}.highlight .kn{color:#BE74D5;font-weight:700}.highlight .kp{color:#be74d5}.highlight .kr{color:#BE74D5;font-weight:700}.highlight .kt{color:#d46c72}.highlight .m{color:#d19a66}.highlight .s{color:#86c372}.highlight .na{color:#7d9029}.highlight .nb{color:#be74d5}.highlight .nc{color:#61AFEF;font-weight:700}.highlight .no{color:#d19a66}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#61afef}.highlight .nl{color:#a0a000}.highlight .nn{color:#61AFEF;font-weight:700}.highlight .nt{color:#BE74D5;font-weight:700}.highlight .nv{color:#dfc06f}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#d7dae0}.highlight .mf{color:#d19a66}.highlight .mh{color:#d19a66}.highlight .mi{color:#d19a66}.highlight .mo{color:#d19a66}.highlight .sb{color:#86c372}.highlight .sc{color:#86c372}.highlight .sd{color:#86C372;font-style:italic}.highlight .s2{color:#86c372}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#86c372}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:#be74d5}.highlight .sr{color:#b68}.highlight .s1{color:#86c372}.highlight .ss{color:#dfc06f}.highlight .bp{color:#be74d5}.highlight .vc{color:#dfc06f}.highlight .vg{color:#dfc06f}.highlight .vi{color:#dfc06f}.highlight .il{color:#d19a66}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;color:#556366}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.highlight pre{background-color:#282C34;color:#D7DAE0;border:none;margin-bottom:25px;font-size:15px;padding:20px 10px}.highlight{font-weight:700}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}
-\ No newline at end of file
+.searx-navbar{background:#29314d;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:.8rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;color:#fff;text-decoration:none}.searx-navbar .instance a{color:#01d7d4;margin-left:2rem}#main-logo{margin-top:20vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}*{border-radius:0!important}html{position:relative;min-height:100%;color:#29314d}body{font-family:Roboto,Helvetica,Arial,sans-serif;margin-bottom:80px;background-color:#fff}body a{color:#08c}.footer{position:absolute;bottom:0;width:100%;height:60px;text-align:center;color:#999}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:before,.onoffswitch-inner:after{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#01d7d4;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF!important;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.result_header{margin-top:0;margin-bottom:2px;font-size:16px}.result_header .favicon{margin-bottom:-3px}.result_header a{color:#29314d;text-decoration:none}.result_header a:hover{color:#08c}.result_header a:visited{color:#684898}.result_header a .highlight{background-color:#f6f9fa}.result-content{margin-top:2px;margin-bottom:0;word-wrap:break-word;color:#666;font-size:13px}.result-content .highlight{font-weight:700}.external-link{color:#069025;font-size:12px;margin-bottom:15px}.external-link a{margin-right:3px}.result-default,.result-code,.result-torrent,.result-videos,.result-map{clear:both;padding:2px 4px}.result-default:hover,.result-code:hover,.result-torrent:hover,.result-videos:hover,.result-map:hover{background-color:#f6f9fa}.result-images{float:left!important;width:24%;margin:.5%}.result-images a{display:block;width:100%;background-size:cover}.img-thumbnail{margin:5px;max-height:128px;min-height:128px}.result-videos{clear:both}.result-videos hr{margin:5px 0 15px 0}.result-videos .collapse{width:100%}.result-videos .in{margin-bottom:8px}.result-torrent{clear:both}.result-torrent b{margin-right:5px;margin-left:5px}.result-torrent .seeders{color:#2ecc71}.result-torrent .leechers{color:#f35e77}.result-map{clear:both}.result-code{clear:both}.result-code .code-fork,.result-code .code-fork a{color:#666}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:60px}.label-default{color:#a4a4a4;background:0 0}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}.infobox .panel-heading{background-color:#f6f9fa}.infobox .panel-heading .panel-title{font-weight:700}.infobox p{font-family:"DejaVu Serif",Georgia,Cambria,"Times New Roman",Times,serif!important;font-style:italic}.infobox .btn{background-color:#2ecc71;border:none}.infobox .btn a{color:#fff;margin:5px}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories,#categories{text-transform:capitalize;margin-bottom:.5rem;display:flex;flex-wrap:wrap;flex-flow:row wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{flex-grow:1;flex-basis:auto;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-top:.4rem;text-align:center;min-width:50px}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#ddd 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#main-logo{margin-top:10vh;margin-bottom:25px}#main-logo>img{max-width:350px;width:80%}#q{box-shadow:none;border-right:none;border-color:#a4a4a4}#search_form .input-group-btn .btn{border-color:#a4a4a4}#search_form .input-group-btn .btn:hover{background-color:#2ecc71;color:#fff}.custom-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;color:#666;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGnsAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW86/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNy0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC) 96% no-repeat}.search-margin{margin-bottom:.6em}#advanced-search-container{display:none;text-align:left;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{font-size:1.2rem;font-weight:400;background-color:#fff;border:#ddd 1px solid;border-right:none;color:#666;padding-bottom:.4rem;padding-right:.7rem;padding-left:.7rem}#advanced-search-container label:last-child,#advanced-search-container .input-group-addon:last-child{border-right:#ddd 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#29314d;font-weight:700;border-bottom:#01d7d4 5px solid}#check-advanced{display:none}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}pre,code{font-family:'Ubuntu Mono','Courier New','Lucida Console',monospace!important}.lineno{margin-right:5px}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#556366;font-style:italic}.highlight .err{border:1px solid #ffa92f}.highlight .k{color:#BE74D5;font-weight:700}.highlight .o{color:#d19a66}.highlight .cm{color:#556366;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#556366;font-style:italic}.highlight .cs{color:#556366;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:#BE74D5;font-weight:700}.highlight .kd{color:#BE74D5;font-weight:700}.highlight .kn{color:#BE74D5;font-weight:700}.highlight .kp{color:#be74d5}.highlight .kr{color:#BE74D5;font-weight:700}.highlight .kt{color:#d46c72}.highlight .m{color:#d19a66}.highlight .s{color:#86c372}.highlight .na{color:#7d9029}.highlight .nb{color:#be74d5}.highlight .nc{color:#61AFEF;font-weight:700}.highlight .no{color:#d19a66}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#61afef}.highlight .nl{color:#a0a000}.highlight .nn{color:#61AFEF;font-weight:700}.highlight .nt{color:#BE74D5;font-weight:700}.highlight .nv{color:#dfc06f}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#d7dae0}.highlight .mf{color:#d19a66}.highlight .mh{color:#d19a66}.highlight .mi{color:#d19a66}.highlight .mo{color:#d19a66}.highlight .sb{color:#86c372}.highlight .sc{color:#86c372}.highlight .sd{color:#86C372;font-style:italic}.highlight .s2{color:#86c372}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#86c372}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:#be74d5}.highlight .sr{color:#b68}.highlight .s1{color:#86c372}.highlight .ss{color:#dfc06f}.highlight .bp{color:#be74d5}.highlight .vc{color:#dfc06f}.highlight .vg{color:#dfc06f}.highlight .vi{color:#dfc06f}.highlight .il{color:#d19a66}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;color:#556366}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.highlight pre{background-color:#282C34;color:#D7DAE0;border:none;margin-bottom:25px;font-size:15px;padding:20px 10px}.highlight{font-weight:700}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}
+\ No newline at end of file
diff --git a/searx/static/themes/oscar/css/pointhi.min.css b/searx/static/themes/oscar/css/pointhi.min.css
@@ -1 +1 @@
-html{position:relative;min-height:100%}body{margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;height:60px}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:before,.onoffswitch-inner:after{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#0C0;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF!important;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:700}.result-content{margin-top:5px;word-wrap:break-word}.result-content .highlight{font-weight:700}.result-default{clear:both}.result-images{float:left!important;height:138px}.img-thumbnail{margin:5px;max-height:128px}.result-videos{clear:both}.result-torrents{clear:both}.result-map{clear:both}.result-code{clear:both}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:50px}.label-default{color:#AAA;background:#FFF}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories,#categories{text-transform:capitalize;margin-bottom:1.5rem;margin-top:1.5rem;display:flex;flex-wrap:wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{flex-grow:1;flex-basis:auto;font-size:1.3rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#333;padding-bottom:.8rem;padding-top:.8rem;text-align:center}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#DDD 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#000;font-weight:700;background-color:#EEE}#advanced-search-container{display:none;text-align:center;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{font-size:1.3rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#333;padding-bottom:.8rem;padding-left:1.2rem;padding-right:1.2rem}#advanced-search-container label:last-child,#advanced-search-container .input-group-addon:last-child{border-right:#DDD 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#000;font-weight:700;background-color:#EEE}#check-advanced{display:none}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#408080;font-style:italic}.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:green;font-weight:700}.highlight .kd{color:green;font-weight:700}.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177c}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf{color:#666}.highlight .mh{color:#666}.highlight .mi{color:#666}.highlight .mo{color:#666}.highlight .sb{color:#ba2121}.highlight .sc{color:#ba2121}.highlight .sd{color:#BA2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#ba2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:green}.highlight .vc{color:#19177c}.highlight .vg{color:#19177c}.highlight .vi{color:#19177c}.highlight .il{color:#666}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.searx-navbar{background:#eee;color:#aaa;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:1.3rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;text-decoration:none}.searx-navbar .instance a{color:#444;margin-left:2rem}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}
-\ No newline at end of file
+html{position:relative;min-height:100%}body{margin-bottom:80px}.footer{position:absolute;bottom:0;width:100%;height:60px}input[type=checkbox]:checked+.label_hide_if_checked,input[type=checkbox]:checked+.label_hide_if_not_checked+.label_hide_if_checked{display:none}input[type=checkbox]:not(:checked)+.label_hide_if_not_checked,input[type=checkbox]:not(:checked)+.label_hide_if_checked+.label_hide_if_not_checked{display:none}.onoff-checkbox{width:15%}.onoffswitch{position:relative;width:110px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.onoffswitch-checkbox{display:none}.onoffswitch-label{display:block;overflow:hidden;cursor:pointer;border:2px solid #FFF!important;border-radius:50px!important}.onoffswitch-inner{display:block;transition:margin .3s ease-in 0s}.onoffswitch-inner:before,.onoffswitch-inner:after{display:block;float:left;width:50%;height:30px;padding:0;line-height:40px;font-size:20px;box-sizing:border-box;content:"";background-color:#EEE}.onoffswitch-switch{display:block;width:37px;background-color:#0C0;position:absolute;top:0;bottom:0;right:0;border:2px solid #FFF!important;border-radius:50px!important;transition:all .3s ease-in 0s}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner{margin-right:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch{right:71px;background-color:#A1A1A1}.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:700}.result-content{margin-top:5px;word-wrap:break-word}.result-content .highlight{font-weight:700}.result-default{clear:both}.result-images{float:left!important;height:138px}.img-thumbnail{margin:5px;max-height:128px}.result-videos{clear:both}.result-torrents{clear:both}.result-map{clear:both}.result-code{clear:both}.suggestion_item{margin:2px 5px;max-width:100%}.suggestion_item .btn{max-width:100%;white-space:normal;word-wrap:break-word;text-align:left}.result_download{margin-right:5px}#pagination{margin-top:30px;padding-bottom:50px}.label-default{color:#AAA;background:#FFF}.result .text-muted small{word-wrap:break-word}.modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-wrapper{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0 none;position:relative}.infobox .infobox_part{margin-bottom:20px;word-wrap:break-word;table-layout:fixed}.infobox .infobox_part:last-child{margin-bottom:0}.search_categories,#categories{text-transform:capitalize;margin-bottom:1.5rem;margin-top:1.5rem;display:flex;flex-wrap:wrap;align-content:stretch}.search_categories label,#categories label,.search_categories .input-group-addon,#categories .input-group-addon{flex-grow:1;flex-basis:auto;font-size:1.3rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#333;padding-bottom:.8rem;padding-top:.8rem;text-align:center;min-width:50px}.search_categories label:last-child,#categories label:last-child,.search_categories .input-group-addon:last-child,#categories .input-group-addon:last-child{border-right:#DDD 1px solid}.search_categories input[type=checkbox]:checked+label,#categories input[type=checkbox]:checked+label{color:#000;font-weight:700;background-color:#EEE}#advanced-search-container{display:none;text-align:center;margin-bottom:1rem;clear:both}#advanced-search-container label,#advanced-search-container .input-group-addon{font-size:1.3rem;font-weight:400;background-color:#fff;border:#DDD 1px solid;border-right:none;color:#333;padding-bottom:.8rem;padding-left:1.2rem;padding-right:1.2rem}#advanced-search-container label:last-child,#advanced-search-container .input-group-addon:last-child{border-right:#DDD 1px solid}#advanced-search-container input[type=radio]{display:none}#advanced-search-container input[type=radio]:checked+label{color:#000;font-weight:700;background-color:#EEE}#check-advanced{display:none}#check-advanced:checked~#advanced-search-container{display:block}.advanced{padding:0;margin-top:.3rem;text-align:right}.advanced label,.advanced select{cursor:pointer}.cursor-text{cursor:text!important}.cursor-pointer{cursor:pointer!important}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .c1{color:#408080;font-style:italic}.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc{color:green;font-weight:700}.highlight .kd{color:green;font-weight:700}.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177c}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf{color:#666}.highlight .mh{color:#666}.highlight .mi{color:#666}.highlight .mo{color:#666}.highlight .sb{color:#ba2121}.highlight .sc{color:#ba2121}.highlight .sd{color:#BA2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#ba2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:green}.highlight .vc{color:#19177c}.highlight .vg{color:#19177c}.highlight .vi{color:#19177c}.highlight .il{color:#666}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.searx-navbar{background:#eee;color:#aaa;height:2.3rem;font-size:1.3rem;line-height:1.3rem;padding:.5rem;font-weight:700;margin-bottom:1.3rem}.searx-navbar a,.searx-navbar a:hover{margin-right:2rem;text-decoration:none}.searx-navbar .instance a{color:#444;margin-left:2rem}.table>tbody>tr>td,.table>tbody>tr>th{vertical-align:middle!important}
+\ No newline at end of file
diff --git a/searx/static/themes/oscar/img/icons/youtube.png b/searx/static/themes/oscar/img/icons/youtube.png
Binary files differ.
diff --git a/searx/static/themes/oscar/less/logicodev/search.less b/searx/static/themes/oscar/less/logicodev/search.less
@@ -18,6 +18,7 @@
padding-bottom: 0.4rem;
padding-top: 0.4rem;
text-align: center;
+ min-width: 50px;
}
label:last-child, .input-group-addon:last-child {
border-right: @mild-gray 1px solid;
diff --git a/searx/static/themes/oscar/less/pointhi/search.less b/searx/static/themes/oscar/less/pointhi/search.less
@@ -18,6 +18,7 @@
padding-bottom: 0.8rem;
padding-top: 0.8rem;
text-align: center;
+ min-width: 50px;
}
label:last-child, .input-group-addon:last-child {
diff --git a/searx/static/themes/simple/css/searx-rtl.css b/searx/static/themes/simple/css/searx-rtl.css
@@ -1,45 +1,31 @@
-/*! searx | 03-12-2017 | https://github.com/asciimoo/searx */
+/*! searx | 14-08-2018 | https://github.com/asciimoo/searx */
/*
* searx, A privacy-respecting, hackable metasearch engine
*
* To convert "style.less" to "style.css" run: $make styles
*/
-/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
+/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
- * 2. Prevent adjustments of font size after orientation changes in
- * IE on Windows Phone and in iOS.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15;
/* 1 */
- -ms-text-size-adjust: 100%;
- /* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
}
/* Sections
========================================================================== */
/**
- * Remove the margin in all browsers (opinionated).
+ * Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
- * Add the correct display in IE 9-.
- */
-article,
-aside,
-footer,
-header,
-nav,
-section {
- display: block;
-}
-/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
@@ -50,22 +36,6 @@ h1 {
/* Grouping content
========================================================================== */
/**
- * Add the correct display in IE 9-.
- * 1. Add the correct display in IE.
- */
-figcaption,
-figure,
-main {
- /* 1 */
- display: block;
-}
-/**
- * Add the correct margin in IE 8.
- */
-figure {
- margin: 1em 40px;
-}
-/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
@@ -90,17 +60,13 @@ pre {
/* Text-level semantics
========================================================================== */
/**
- * 1. Remove the gray background on active links in IE 10.
- * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
+ * Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
- /* 1 */
- -webkit-text-decoration-skip: objects;
- /* 2 */
}
/**
- * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
+ * 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
@@ -112,13 +78,6 @@ abbr[title] {
/* 2 */
}
/**
- * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
- */
-b,
-strong {
- font-weight: inherit;
-}
-/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
@@ -138,19 +97,6 @@ samp {
/* 2 */
}
/**
- * Add the correct font style in Android 4.3-.
- */
-dfn {
- font-style: italic;
-}
-/**
- * Add the correct background and color in IE 9-.
- */
-mark {
- background-color: #ff0;
- color: #000;
-}
-/**
* Add the correct font size in all browsers.
*/
small {
@@ -176,35 +122,15 @@ sup {
/* Embedded content
========================================================================== */
/**
- * Add the correct display in IE 9-.
- */
-audio,
-video {
- display: inline-block;
-}
-/**
- * Add the correct display in iOS 4-7.
- */
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-/**
- * Remove the border on images inside links in IE 10-.
+ * Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
-/**
- * Hide the overflow in IE.
- */
-svg:not(:root) {
- overflow: hidden;
-}
/* Forms
========================================================================== */
/**
- * 1. Change the font styles in all browsers (opinionated).
+ * 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
@@ -212,7 +138,7 @@ input,
optgroup,
select,
textarea {
- font-family: sans-serif;
+ font-family: inherit;
/* 1 */
font-size: 100%;
/* 1 */
@@ -240,16 +166,13 @@ select {
text-transform: none;
}
/**
- * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
- * controls in Android 4.
- * 2. Correct the inability to style clickable types in iOS and Safari.
+ * Correct the inability to style clickable types in iOS and Safari.
*/
button,
-html [type="button"],
+[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
- /* 2 */
}
/**
* Remove the inner border and padding in Firefox.
@@ -297,24 +220,20 @@ legend {
/* 1 */
}
/**
- * 1. Add the correct display in IE 9-.
- * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
- display: inline-block;
- /* 1 */
vertical-align: baseline;
- /* 2 */
}
/**
- * Remove the default vertical scrollbar in IE.
+ * Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
- * 1. Add the correct box sizing in IE 10-.
- * 2. Remove the padding in IE 10-.
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
@@ -341,9 +260,8 @@ textarea {
/* 2 */
}
/**
- * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+ * Remove the inner padding in Chrome and Safari on macOS.
*/
-[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
@@ -360,11 +278,9 @@ textarea {
/* Interactive
========================================================================== */
/*
- * Add the correct display in IE 9-.
- * 1. Add the correct display in Edge, IE, and Firefox.
+ * Add the correct display in Edge, IE 10+, and Firefox.
*/
-details,
-menu {
+details {
display: block;
}
/*
@@ -373,24 +289,16 @@ menu {
summary {
display: list-item;
}
-/* Scripting
+/* Misc
========================================================================== */
/**
- * Add the correct display in IE 9-.
- */
-canvas {
- display: inline-block;
-}
-/**
- * Add the correct display in IE.
+ * Add the correct display in IE 10+.
*/
template {
display: none;
}
-/* Hidden
- ========================================================================== */
/**
- * Add the correct display in IE 10-.
+ * Add the correct display in IE 10.
*/
[hidden] {
display: none;
@@ -706,7 +614,14 @@ html.js .show_if_nojs {
float: left;
}
.invisible {
- display: none;
+ display: none !important;
+}
+.list-unstyled {
+ list-style-type: none;
+}
+.list-unstyled li {
+ margin-top: 4px;
+ margin-bottom: 4px;
}
.danger {
background-color: #fae1e1;
@@ -722,6 +637,13 @@ html.js .show_if_nojs {
padding: 1px 5px;
border-radius: 5px;
}
+kbd {
+ padding: 2px 4px;
+ margin: 1px;
+ font-size: 90%;
+ color: white;
+ background: black;
+}
table {
width: 100%;
}
@@ -737,6 +659,27 @@ td {
tr:hover {
background: #ececec;
}
+div.selectable_url {
+ border: 1px solid #888;
+ padding: 4px;
+ color: #444;
+ width: 100%;
+ display: block;
+ margin: 0.1em;
+ overflow: hidden;
+ height: 1.2em;
+ line-height: 1.2em;
+}
+div.selectable_url pre {
+ display: block;
+ font-size: 0.8em;
+ word-break: break-all;
+ margin: 0.1em;
+ -webkit-user-select: all;
+ -moz-user-select: all;
+ -ms-user-select: element;
+ user-select: all;
+}
.dialog-error {
position: relative;
width: 70%;
@@ -768,6 +711,22 @@ tr:hover {
.dialog-error p {
margin: 1px 0 0 0;
}
+.dialog-error table {
+ width: auto;
+}
+.dialog-error tr {
+ vertical-align: text-top;
+}
+.dialog-error tr:hover {
+ background: transparent;
+}
+.dialog-error td {
+ padding: 0 1em 0 0;
+}
+.dialog-error h4 {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+}
.dialog-error:before {
content: "\f110";
}
@@ -802,9 +761,78 @@ tr:hover {
.dialog-warning p {
margin: 1px 0 0 0;
}
+.dialog-warning table {
+ width: auto;
+}
+.dialog-warning tr {
+ vertical-align: text-top;
+}
+.dialog-warning tr:hover {
+ background: transparent;
+}
+.dialog-warning td {
+ padding: 0 1em 0 0;
+}
+.dialog-warning h4 {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+}
.dialog-warning:before {
content: "\f10f";
}
+.dialog-modal {
+ position: relative;
+ width: 70%;
+ padding: 1em 1em 1em 2.7em;
+ margin: 0em 8% 1em 8%;
+ border: 1px solid black;
+ border-radius: 4px;
+ text-align: left;
+ background: white;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ /* bring your own prefixes */
+ transform: translate(-50%, -50%);
+ z-index: 100000;
+ margin: 0 50% 0 0;
+ box-shadow: 0 0 1em;
+}
+.dialog-modal:before {
+ position: absolute;
+ top: 0.5em;
+ left: 0.5em;
+ font-family: "ion";
+ font-size: 1.5em;
+}
+.dialog-modal .close {
+ float: right;
+ position: relative;
+ top: -3px;
+ color: inherit;
+ font-size: 1.5em;
+}
+.dialog-modal ul,
+.dialog-modal ol,
+.dialog-modal p {
+ margin: 1px 0 0 0;
+}
+.dialog-modal table {
+ width: auto;
+}
+.dialog-modal tr {
+ vertical-align: text-top;
+}
+.dialog-modal tr:hover {
+ background: transparent;
+}
+.dialog-modal td {
+ padding: 0 1em 0 0;
+}
+.dialog-modal h4 {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+}
.btn-collapse {
cursor: pointer;
}
@@ -816,6 +844,7 @@ tr:hover {
margin: 0;
border: none;
}
+/* -- tabs --*/
.tabs .tabs > label {
font-size: 90%;
}
@@ -894,6 +923,7 @@ html body .tabs > input:checked + label {
html body .tabs > input:checked + label + section {
display: block;
}
+/* -- select -- */
select {
height: 28px;
margin: 0 1em 0 0;
@@ -924,6 +954,7 @@ select:focus {
border-bottom: 1px solid #3498DB;
}
}
+/* -- checkbox-onoff -- */
@supports (border-radius: 50px) {
.checkbox-onoff {
display: inline-block;
@@ -955,6 +986,7 @@ select:focus {
background: #dcdcdc;
}
}
+/* -- checkbox --*/
@supports (transform: rotate(-45deg)) {
.checkbox {
width: 20px;
@@ -1007,6 +1039,48 @@ select:focus {
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 rgba(0, 0, 0, 0.2);
+ border-right: 0.5em solid rgba(0, 0, 0, 0.2);
+ border-bottom: 0.5em solid rgba(0, 0, 0, 0.2);
+ border-left: 0.5em solid rgba(255, 255, 255, 0);
+ -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);
+ }
+}
/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */
.autocomplete {
position: absolute;
@@ -1073,8 +1147,8 @@ select:focus {
}
@font-face {
font-family: "ion";
- src: url("../fonts/ion.eot?94af7082ea096aefe3a7b6642834716e");
- src: url("../fonts/ion.eot?#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?94af7082ea096aefe3a7b6642834716e") format("woff2"), url("../fonts/ion.woff?94af7082ea096aefe3a7b6642834716e") format("woff"), url("../fonts/ion.ttf?94af7082ea096aefe3a7b6642834716e") format("truetype"), url("../fonts/ion.svg?94af7082ea096aefe3a7b6642834716e#ion") format("svg");
+ src: url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
+ src: url("../fonts/ion.eot?#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"), url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"), url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"), url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
font-weight: normal;
font-style: normal;
}
@@ -1154,6 +1228,9 @@ select:focus {
.ion-magnet:before {
content: "\f114";
}
+.ion-close:before {
+ content: "\f115";
+}
.ion-icon-big {
display: inline-block;
vertical-align: middle;
@@ -1240,6 +1317,22 @@ select:focus {
#main_preferences table td {
text-align: center;
}
+#main_preferences table.cookies {
+ width: auto;
+}
+#main_preferences table.cookies th,
+#main_preferences table.cookies td {
+ text-align: left;
+ padding: 0.25em;
+}
+#main_preferences table.cookies th:first-child,
+#main_preferences table.cookies td:first-child {
+ padding-right: 4em;
+}
+#main_preferences table.cookies > tbody > tr:nth-child(even) > th,
+#main_preferences table.cookies > tbody > tr:nth-child(even) > td {
+ background-color: #ececec;
+}
#main_preferences .name,
#main_preferences .shortcut {
text-align: left;
@@ -1263,6 +1356,9 @@ select:focus {
#main_preferences .preferences_back a::first-letter {
text-transform: uppercase;
}
+#main_preferences div.selectable_url pre {
+ width: 100%;
+}
@media screen and (max-width: 75em) {
.preferences_back {
clear: both;
@@ -1291,12 +1387,40 @@ select:focus {
}
*/
}
+#clear_search {
+ display: block;
+ border-collapse: separate;
+ box-sizing: border-box;
+ width: 1.8em;
+ margin: 0;
+ padding: 2px;
+ height: 2.2em;
+ background: none repeat scroll 0 0 #FFF;
+ border-top: 1px solid #3498DB;
+ border-bottom: 1px solid #3498DB;
+ border-right: none;
+ border-left: none;
+ border-radius: 0px;
+ outline: none;
+ color: #222;
+ font-size: 16px;
+ z-index: 10000;
+}
+#clear_search:hover {
+ color: #3498DB;
+}
+#clear_search.empty * {
+ display: none;
+}
+#q::-ms-clear,
+#q::-webkit-search-cancel-button {
+ display: none;
+}
#q,
#send_search {
display: block !important;
border-collapse: separate;
box-sizing: border-box;
- position: relative;
margin: 0;
padding: 2px;
height: 2.2em;
@@ -1857,27 +1981,8 @@ article.result-images[data-vim-selected]::before {
#search_url {
margin-top: 8px;
}
-#search_url div {
- border: 1px solid #888;
- padding: 4px;
- color: #444;
- width: 100%;
- display: block;
- margin: 0.1em;
- overflow: hidden;
- height: 1.2em;
- line-height: 1.2em;
-}
-#search_url div pre {
- display: block;
+#search_url div.selectable_url pre {
width: 200em;
- font-size: 0.8em;
- word-break: break-all;
- margin: 0.1em;
- -webkit-user-select: all;
- -moz-user-select: all;
- -ms-user-select: all;
- user-select: all;
}
#linkto_preferences {
position: absolute;
@@ -2001,6 +2106,28 @@ article.result-images[data-vim-selected]::before {
max-width: 98%;
}
}
+#main_results div#results.only_template_images {
+ flex-direction: column;
+ width: auto;
+ display: flex;
+}
+#main_results div#results.only_template_images #sidebar {
+ position: relative;
+ top: auto;
+ order: 2;
+}
+#main_results div#results.only_template_images #urls {
+ position: relative;
+ order: 1;
+}
+#main_results div#results.only_template_images #backToTop {
+ right: 0.5em;
+ left: auto;
+}
+#main_results div#results.only_template_images #pagination {
+ position: relative;
+ order: 3;
+}
@media screen and (max-width: 50em) {
article[data-vim-selected]::before {
display: none;
diff --git a/searx/static/themes/simple/css/searx-rtl.min.css b/searx/static/themes/simple/css/searx-rtl.min.css
@@ -1 +1 @@
-/*! searx | 03-12-2017 | https://github.com/asciimoo/searx *//*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}audio,canvas,progress,video{display:inline-block}[type=checkbox],[type=radio],legend{padding:0;box-sizing:border-box}.badge,.center{text-align:center}.badge,progress,sub,sup{vertical-align:baseline}#q,#send_search,.tabs>section,legend{box-sizing:border-box}#apis,#pagination,#pagination br,#sidebar .infobox .attributes,#sidebar .infobox .urls,#sidebar .infobox br,.result .break,footer{clear:both}html{line-height:1.15}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}.highlight pre,textarea{overflow:auto}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=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:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}.badge,.search_box{white-space:nowrap}[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-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}.dialog-error:before,.dialog-warning:before,.ion-icon-big:before,.ion-icon:before{font-family:ion}summary{display:list-item}.invisible,[hidden],html.js .show_if_nojs,html.no-js .hide_if_nojs,template{display:none}.highlight .hll{background-color:#ffc}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}#categories,.tabs>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.btn-collapse,.tabs>label,select:focus,select:hover{cursor:pointer}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.right{float:right}.left{float:left}.danger{background-color:#fae1e1}.badge{display:inline-block;color:#fff;background-color:#777;min-width:10px;padding:1px 5px;border-radius:5px}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}.dialog-error,.dialog-warning{width:70%;padding:1em 1em 1em 2.7em;text-align:left}tr:hover{background:#ececec}.dialog-error{position:relative;margin:0 8% 1em;border:1px solid #db3434;border-radius:4px;color:#db3434;background:#fae1e1}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f110"}.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}.dialog-warning{position:relative;margin:0 8% 1em;border:1px solid #dbba34;border-radius:4px;color:#dbba34;background:#faf5e1}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f10f"}.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}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px;user-select:none}.tabs>label:hover{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;border-top:1px solid #000;display:none}.tabs>label:last-of-type{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;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 #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}@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:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:0}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}#main_preferences form,.index .title,footer,main{width:100%}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}#categories_container,#q,#send_search,.category{position:relative}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.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{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}.ion-icon,.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}@media screen and (max-width:50em){.tabs>label{width:100%}.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}#main_preferences table td,.index{text-align:center}@font-face{font-family:ion;src:url(../fonts/ion.eot?94af7082ea096aefe3a7b6642834716e);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?94af7082ea096aefe3a7b6642834716e) format("woff2"),url(../fonts/ion.woff?94af7082ea096aefe3a7b6642834716e) format("woff"),url(../fonts/ion.ttf?94af7082ea096aefe3a7b6642834716e) format("truetype"),url(../fonts/ion.svg?94af7082ea096aefe3a7b6642834716e#ion) format("svg");font-weight:400;font-style:normal}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-icon-big{font-size:149%}.index .title{background:url(../img/searx.png) center no-repeat;min-height:80px}.index h1{font-size:5em;visibility:hidden}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}.preferences_back{clear:both}}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:#3498DB;color:#fff;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row}#q,#send_search{display:block!important;border-collapse:separate;margin:0;padding:2px;height:2.2em;background:#FFF;border:1px solid #3498DB;border-radius:0;outline:0;color:#222;font-size:16px;z-index:2}#q{outline:0;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;background-color:#3498DB;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}#search_url div,.result-videos .content{overflow:hidden}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0}#search_wrapper{width:100%;margin:0 0 .7em;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body,html,main{padding:0;margin:0}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}footer p,html{font-size:.9em}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;text-align:center}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited,a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 0;padding:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat,.result .url{font-size:.9em;padding:0;max-width:54em;word-wrap:break-word}.result .altlink,.result .content,.result .stat{margin:0;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{margin:0 0 3px;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.result-images,.result-images img{margin:0;padding:0;max-height:200px}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;position:relative}.result-images img{float:inherit;border:none;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}#answers,#backToTop,#sidebar .infobox{border:1px solid #ddd;box-shadow:0 0 5px #CCC}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em;color:#444}#answers{margin:10px 8px;padding:.9em}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0;padding:.9em;font-size:.9em}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#apis,#search_url{margin-top:8px}#sidebar .infobox input{font-size:1em}#search_url div{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;height:1.2em;line-height:1.2em}#search_url div pre{display:block;width:200em;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#backToTop{margin:0 0 0 2em;padding:0;font-size:1em;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}.image_result,.image_result img,.result .thumbnail{max-width:98%}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px}.result-images{border-bottom:none!important}}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px}#corrections{margin:1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}#search_submit{left:1px;right:auto}
-\ No newline at end of file
+/*! searx | 14-08-2018 | https://github.com/asciimoo/searx *//*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}[type=checkbox],[type=radio],legend{padding:0;box-sizing:border-box}.badge,.center{text-align:center}.badge,progress,sub,sup{vertical-align:baseline}.autocomplete>ul,.list-unstyled{list-style-type:none}.tabs>section,legend{box-sizing:border-box}#main_preferences h1 span,#main_stats h1 span,.index h1{visibility:hidden}#apis,#pagination,#pagination br,#sidebar .infobox .attributes,#sidebar .infobox .urls,#sidebar .infobox br,.result .break,footer{clear:both}html{line-height:1.15}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{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}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}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}.highlight pre,textarea{overflow:auto}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:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}.badge,.search_box{white-space:nowrap}[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}.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}.dialog-error:before,.dialog-modal:before,.dialog-warning:before,.ion-icon-big:before,.ion-icon:before{font-family:ion}details{display:block}summary{display:list-item}[hidden],html.js .show_if_nojs,html.no-js .hide_if_nojs,template{display:none}.highlight .hll{background-color:#ffc}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.badge,kbd{color:#fff}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.btn-collapse,.tabs>label,select:focus,select:hover{cursor:pointer}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.badge{display:inline-block;background-color:#777;min-width:10px;padding:1px 5px;border-radius:5px}.dialog-error tr,.dialog-modal tr,.dialog-warning tr{vertical-align:text-top}kbd{padding:2px 4px;margin:1px;font-size:90%;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}#categories,.tabs>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #db3434;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f110"}.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}.dialog-error table{width:auto}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #dbba34;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f10f"}.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}.dialog-warning table{width:auto}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{width:70%;padding:1em 1em 1em 2.7em;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-size:1.5em}.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}.dialog-modal table{width:auto}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px;user-select:none}.tabs>label:hover,.tabs>label:last-of-type{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;border-top:1px solid #000;display:none}.tabs>label:last-of-type{background:#3498DB;color:#FFF;font-weight:700;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 #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}@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:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:0}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label: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 rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-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)}}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}#categories_container,.category{position:relative}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}#send_search:hover,.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete:empty{display:none}.autocomplete>ul{margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.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{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}.ion-icon,.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}#main_preferences table td,.index{text-align:center}@font-face{font-family:ion;src:url(../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51) format("woff2"),url(../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51) format("woff"),url(../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51) format("truetype"),url(../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion) format("svg");font-weight:400;font-style:normal}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{font-size:149%}.index .title{background:url(../img/searx.png) center no-repeat;width:100%;min-height:80px}.index h1{font-size:5em}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}.preferences_back{clear:both}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table.cookies{width:auto}#main_preferences div.selectable_url pre,footer,main{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:#3498DB;color:#fff;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row}#clear_search,#q,#send_search{border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:#FFF;color:#222;font-size:16px;outline:0}#clear_search{display:block;width:1.8em;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border:1px solid #3498DB;border-radius:0;z-index:2}#q{outline:0;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0}#search_wrapper{width:100%;margin:0 0 .7em;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body,html,main{padding:0;margin:0}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}footer p,html{font-size:.9em}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;text-align:center}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited,a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 0;padding:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat,.result .url{font-size:.9em;padding:0;max-width:54em;word-wrap:break-word}.result .altlink,.result .content,.result .stat{margin:0;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{margin:0 0 3px;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.result-images,.result-images img{margin:0;padding:0;max-height:200px}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;position:relative}.result-images img{float:inherit;border:none;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}#answers,#backToTop,#sidebar .infobox{border:1px solid #ddd;box-shadow:0 0 5px #CCC}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em;color:#444}#answers{margin:10px 8px;padding:.9em}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0;padding:.9em;font-size:.9em}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#apis,#search_url{margin-top:8px}#sidebar .infobox input{font-size:1em}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#backToTop{margin:0 0 0 2em;padding:0;font-size:1em;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}.image_result,.image_result img,.result .thumbnail{max-width:98%}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px}.result-images{border-bottom:none!important}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px}#corrections{margin:1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}#search_submit{left:1px;right:auto}
+\ No newline at end of file
diff --git a/searx/static/themes/simple/css/searx.css b/searx/static/themes/simple/css/searx.css
@@ -1,45 +1,31 @@
-/*! searx | 03-12-2017 | https://github.com/asciimoo/searx */
+/*! searx | 14-08-2018 | https://github.com/asciimoo/searx */
/*
* searx, A privacy-respecting, hackable metasearch engine
*
* To convert "style.less" to "style.css" run: $make styles
*/
-/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
+/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
- * 2. Prevent adjustments of font size after orientation changes in
- * IE on Windows Phone and in iOS.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15;
/* 1 */
- -ms-text-size-adjust: 100%;
- /* 2 */
-webkit-text-size-adjust: 100%;
/* 2 */
}
/* Sections
========================================================================== */
/**
- * Remove the margin in all browsers (opinionated).
+ * Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
- * Add the correct display in IE 9-.
- */
-article,
-aside,
-footer,
-header,
-nav,
-section {
- display: block;
-}
-/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
@@ -50,22 +36,6 @@ h1 {
/* Grouping content
========================================================================== */
/**
- * Add the correct display in IE 9-.
- * 1. Add the correct display in IE.
- */
-figcaption,
-figure,
-main {
- /* 1 */
- display: block;
-}
-/**
- * Add the correct margin in IE 8.
- */
-figure {
- margin: 1em 40px;
-}
-/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
@@ -90,17 +60,13 @@ pre {
/* Text-level semantics
========================================================================== */
/**
- * 1. Remove the gray background on active links in IE 10.
- * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
+ * Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
- /* 1 */
- -webkit-text-decoration-skip: objects;
- /* 2 */
}
/**
- * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
+ * 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
@@ -112,13 +78,6 @@ abbr[title] {
/* 2 */
}
/**
- * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
- */
-b,
-strong {
- font-weight: inherit;
-}
-/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
@@ -138,19 +97,6 @@ samp {
/* 2 */
}
/**
- * Add the correct font style in Android 4.3-.
- */
-dfn {
- font-style: italic;
-}
-/**
- * Add the correct background and color in IE 9-.
- */
-mark {
- background-color: #ff0;
- color: #000;
-}
-/**
* Add the correct font size in all browsers.
*/
small {
@@ -176,35 +122,15 @@ sup {
/* Embedded content
========================================================================== */
/**
- * Add the correct display in IE 9-.
- */
-audio,
-video {
- display: inline-block;
-}
-/**
- * Add the correct display in iOS 4-7.
- */
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-/**
- * Remove the border on images inside links in IE 10-.
+ * Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
-/**
- * Hide the overflow in IE.
- */
-svg:not(:root) {
- overflow: hidden;
-}
/* Forms
========================================================================== */
/**
- * 1. Change the font styles in all browsers (opinionated).
+ * 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
@@ -212,7 +138,7 @@ input,
optgroup,
select,
textarea {
- font-family: sans-serif;
+ font-family: inherit;
/* 1 */
font-size: 100%;
/* 1 */
@@ -240,16 +166,13 @@ select {
text-transform: none;
}
/**
- * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
- * controls in Android 4.
- * 2. Correct the inability to style clickable types in iOS and Safari.
+ * Correct the inability to style clickable types in iOS and Safari.
*/
button,
-html [type="button"],
+[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
- /* 2 */
}
/**
* Remove the inner border and padding in Firefox.
@@ -297,24 +220,20 @@ legend {
/* 1 */
}
/**
- * 1. Add the correct display in IE 9-.
- * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
- display: inline-block;
- /* 1 */
vertical-align: baseline;
- /* 2 */
}
/**
- * Remove the default vertical scrollbar in IE.
+ * Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
- * 1. Add the correct box sizing in IE 10-.
- * 2. Remove the padding in IE 10-.
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
@@ -341,9 +260,8 @@ textarea {
/* 2 */
}
/**
- * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+ * Remove the inner padding in Chrome and Safari on macOS.
*/
-[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
@@ -360,11 +278,9 @@ textarea {
/* Interactive
========================================================================== */
/*
- * Add the correct display in IE 9-.
- * 1. Add the correct display in Edge, IE, and Firefox.
+ * Add the correct display in Edge, IE 10+, and Firefox.
*/
-details,
-menu {
+details {
display: block;
}
/*
@@ -373,24 +289,16 @@ menu {
summary {
display: list-item;
}
-/* Scripting
+/* Misc
========================================================================== */
/**
- * Add the correct display in IE 9-.
- */
-canvas {
- display: inline-block;
-}
-/**
- * Add the correct display in IE.
+ * Add the correct display in IE 10+.
*/
template {
display: none;
}
-/* Hidden
- ========================================================================== */
/**
- * Add the correct display in IE 10-.
+ * Add the correct display in IE 10.
*/
[hidden] {
display: none;
@@ -706,7 +614,14 @@ html.js .show_if_nojs {
float: left;
}
.invisible {
- display: none;
+ display: none !important;
+}
+.list-unstyled {
+ list-style-type: none;
+}
+.list-unstyled li {
+ margin-top: 4px;
+ margin-bottom: 4px;
}
.danger {
background-color: #fae1e1;
@@ -722,6 +637,13 @@ html.js .show_if_nojs {
padding: 1px 5px;
border-radius: 5px;
}
+kbd {
+ padding: 2px 4px;
+ margin: 1px;
+ font-size: 90%;
+ color: white;
+ background: black;
+}
table {
width: 100%;
}
@@ -737,6 +659,27 @@ td {
tr:hover {
background: #ececec;
}
+div.selectable_url {
+ border: 1px solid #888;
+ padding: 4px;
+ color: #444;
+ width: 100%;
+ display: block;
+ margin: 0.1em;
+ overflow: hidden;
+ height: 1.2em;
+ line-height: 1.2em;
+}
+div.selectable_url pre {
+ display: block;
+ font-size: 0.8em;
+ word-break: break-all;
+ margin: 0.1em;
+ -webkit-user-select: all;
+ -moz-user-select: all;
+ -ms-user-select: element;
+ user-select: all;
+}
.dialog-error {
position: relative;
width: 70%;
@@ -768,6 +711,22 @@ tr:hover {
.dialog-error p {
margin: 1px 0 0 0;
}
+.dialog-error table {
+ width: auto;
+}
+.dialog-error tr {
+ vertical-align: text-top;
+}
+.dialog-error tr:hover {
+ background: transparent;
+}
+.dialog-error td {
+ padding: 0 1em 0 0;
+}
+.dialog-error h4 {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+}
.dialog-error:before {
content: "\f110";
}
@@ -802,9 +761,78 @@ tr:hover {
.dialog-warning p {
margin: 1px 0 0 0;
}
+.dialog-warning table {
+ width: auto;
+}
+.dialog-warning tr {
+ vertical-align: text-top;
+}
+.dialog-warning tr:hover {
+ background: transparent;
+}
+.dialog-warning td {
+ padding: 0 1em 0 0;
+}
+.dialog-warning h4 {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+}
.dialog-warning:before {
content: "\f10f";
}
+.dialog-modal {
+ position: relative;
+ width: 70%;
+ padding: 1em 1em 1em 2.7em;
+ margin: 0em 8% 1em 8%;
+ border: 1px solid black;
+ border-radius: 4px;
+ text-align: left;
+ background: white;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ /* bring your own prefixes */
+ transform: translate(-50%, -50%);
+ z-index: 100000;
+ margin: 0 50% 0 0;
+ box-shadow: 0 0 1em;
+}
+.dialog-modal:before {
+ position: absolute;
+ top: 0.5em;
+ left: 0.5em;
+ font-family: "ion";
+ font-size: 1.5em;
+}
+.dialog-modal .close {
+ float: right;
+ position: relative;
+ top: -3px;
+ color: inherit;
+ font-size: 1.5em;
+}
+.dialog-modal ul,
+.dialog-modal ol,
+.dialog-modal p {
+ margin: 1px 0 0 0;
+}
+.dialog-modal table {
+ width: auto;
+}
+.dialog-modal tr {
+ vertical-align: text-top;
+}
+.dialog-modal tr:hover {
+ background: transparent;
+}
+.dialog-modal td {
+ padding: 0 1em 0 0;
+}
+.dialog-modal h4 {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+}
.btn-collapse {
cursor: pointer;
}
@@ -816,6 +844,7 @@ tr:hover {
margin: 0;
border: none;
}
+/* -- tabs --*/
.tabs .tabs > label {
font-size: 90%;
}
@@ -894,6 +923,7 @@ html body .tabs > input:checked + label {
html body .tabs > input:checked + label + section {
display: block;
}
+/* -- select -- */
select {
height: 28px;
margin: 0 1em 0 0;
@@ -924,6 +954,7 @@ select:focus {
border-bottom: 1px solid #3498DB;
}
}
+/* -- checkbox-onoff -- */
@supports (border-radius: 50px) {
.checkbox-onoff {
display: inline-block;
@@ -955,6 +986,7 @@ select:focus {
background: #dcdcdc;
}
}
+/* -- checkbox --*/
@supports (transform: rotate(-45deg)) {
.checkbox {
width: 20px;
@@ -1007,6 +1039,48 @@ select:focus {
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 rgba(0, 0, 0, 0.2);
+ border-right: 0.5em solid rgba(0, 0, 0, 0.2);
+ border-bottom: 0.5em solid rgba(0, 0, 0, 0.2);
+ border-left: 0.5em solid rgba(255, 255, 255, 0);
+ -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);
+ }
+}
/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */
.autocomplete {
position: absolute;
@@ -1073,8 +1147,8 @@ select:focus {
}
@font-face {
font-family: "ion";
- src: url("../fonts/ion.eot?94af7082ea096aefe3a7b6642834716e");
- src: url("../fonts/ion.eot?#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?94af7082ea096aefe3a7b6642834716e") format("woff2"), url("../fonts/ion.woff?94af7082ea096aefe3a7b6642834716e") format("woff"), url("../fonts/ion.ttf?94af7082ea096aefe3a7b6642834716e") format("truetype"), url("../fonts/ion.svg?94af7082ea096aefe3a7b6642834716e#ion") format("svg");
+ src: url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
+ src: url("../fonts/ion.eot?#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"), url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"), url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"), url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
font-weight: normal;
font-style: normal;
}
@@ -1154,6 +1228,9 @@ select:focus {
.ion-magnet:before {
content: "\f114";
}
+.ion-close:before {
+ content: "\f115";
+}
.ion-icon-big {
display: inline-block;
vertical-align: middle;
@@ -1240,6 +1317,22 @@ select:focus {
#main_preferences table td {
text-align: center;
}
+#main_preferences table.cookies {
+ width: auto;
+}
+#main_preferences table.cookies th,
+#main_preferences table.cookies td {
+ text-align: left;
+ padding: 0.25em;
+}
+#main_preferences table.cookies th:first-child,
+#main_preferences table.cookies td:first-child {
+ padding-right: 4em;
+}
+#main_preferences table.cookies > tbody > tr:nth-child(even) > th,
+#main_preferences table.cookies > tbody > tr:nth-child(even) > td {
+ background-color: #ececec;
+}
#main_preferences .name,
#main_preferences .shortcut {
text-align: left;
@@ -1263,6 +1356,9 @@ select:focus {
#main_preferences .preferences_back a::first-letter {
text-transform: uppercase;
}
+#main_preferences div.selectable_url pre {
+ width: 100%;
+}
@media screen and (max-width: 75em) {
.preferences_back {
clear: both;
@@ -1291,12 +1387,40 @@ select:focus {
}
*/
}
+#clear_search {
+ display: block;
+ border-collapse: separate;
+ box-sizing: border-box;
+ width: 1.8em;
+ margin: 0;
+ padding: 2px;
+ height: 2.2em;
+ background: none repeat scroll 0 0 #FFF;
+ border-top: 1px solid #3498DB;
+ border-bottom: 1px solid #3498DB;
+ border-right: none;
+ border-left: none;
+ border-radius: 0px;
+ outline: none;
+ color: #222;
+ font-size: 16px;
+ z-index: 10000;
+}
+#clear_search:hover {
+ color: #3498DB;
+}
+#clear_search.empty * {
+ display: none;
+}
+#q::-ms-clear,
+#q::-webkit-search-cancel-button {
+ display: none;
+}
#q,
#send_search {
display: block !important;
border-collapse: separate;
box-sizing: border-box;
- position: relative;
margin: 0;
padding: 2px;
height: 2.2em;
@@ -1857,27 +1981,8 @@ article.result-images[data-vim-selected]::before {
#search_url {
margin-top: 8px;
}
-#search_url div {
- border: 1px solid #888;
- padding: 4px;
- color: #444;
- width: 100%;
- display: block;
- margin: 0.1em;
- overflow: hidden;
- height: 1.2em;
- line-height: 1.2em;
-}
-#search_url div pre {
- display: block;
+#search_url div.selectable_url pre {
width: 200em;
- font-size: 0.8em;
- word-break: break-all;
- margin: 0.1em;
- -webkit-user-select: all;
- -moz-user-select: all;
- -ms-user-select: all;
- user-select: all;
}
#linkto_preferences {
position: absolute;
@@ -2001,6 +2106,28 @@ article.result-images[data-vim-selected]::before {
max-width: 98%;
}
}
+#main_results div#results.only_template_images {
+ flex-direction: column;
+ width: auto;
+ display: flex;
+}
+#main_results div#results.only_template_images #sidebar {
+ position: relative;
+ top: auto;
+ order: 2;
+}
+#main_results div#results.only_template_images #urls {
+ position: relative;
+ order: 1;
+}
+#main_results div#results.only_template_images #backToTop {
+ right: 0.5em;
+ left: auto;
+}
+#main_results div#results.only_template_images #pagination {
+ position: relative;
+ order: 3;
+}
@media screen and (max-width: 50em) {
article[data-vim-selected]::before {
display: none;
diff --git a/searx/static/themes/simple/css/searx.min.css b/searx/static/themes/simple/css/searx.min.css
@@ -1 +1 @@
-/*! searx | 03-12-2017 | https://github.com/asciimoo/searx *//*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}audio,canvas,progress,video{display:inline-block}[type=checkbox],[type=radio],legend{padding:0;box-sizing:border-box}.badge,.center{text-align:center}.badge,progress,sub,sup{vertical-align:baseline}#q,#send_search,.tabs>section,legend{box-sizing:border-box}#apis,#pagination,#pagination br,#sidebar .infobox .attributes,#sidebar .infobox .urls,#sidebar .infobox br,.result .break,footer{clear:both}html{line-height:1.15}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}.highlight pre,textarea{overflow:auto}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=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:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}.badge,.search_box{white-space:nowrap}[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-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}.dialog-error:before,.dialog-warning:before,.ion-icon-big:before,.ion-icon:before{font-family:ion}summary{display:list-item}.invisible,[hidden],html.js .show_if_nojs,html.no-js .hide_if_nojs,template{display:none}.highlight .hll{background-color:#ffc}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}#categories,.tabs>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.btn-collapse,.tabs>label,select:focus,select:hover{cursor:pointer}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.right{float:right}.left{float:left}.danger{background-color:#fae1e1}.badge{display:inline-block;color:#fff;background-color:#777;min-width:10px;padding:1px 5px;border-radius:5px}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}.dialog-error,.dialog-warning{width:70%;padding:1em 1em 1em 2.7em;text-align:left}tr:hover{background:#ececec}.dialog-error{position:relative;margin:0 8% 1em;border:1px solid #db3434;border-radius:4px;color:#db3434;background:#fae1e1}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f110"}.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}.dialog-warning{position:relative;margin:0 8% 1em;border:1px solid #dbba34;border-radius:4px;color:#dbba34;background:#faf5e1}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f10f"}.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}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px;user-select:none}.tabs>label:hover{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;border-top:1px solid #000;display:none}.tabs>label:last-of-type{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;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 #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}@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:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:0}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label:hover::after{opacity:.5}}#main_preferences form,.index .title,footer,main{width:100%}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}#categories_container,#q,#send_search,.category{position:relative}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}.autocomplete:empty{display:none}.autocomplete>ul{list-style-type:none;margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.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{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}.ion-icon,.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}@media screen and (max-width:50em){.tabs>label{width:100%}.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}#main_preferences table td,.index{text-align:center}@font-face{font-family:ion;src:url(../fonts/ion.eot?94af7082ea096aefe3a7b6642834716e);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?94af7082ea096aefe3a7b6642834716e) format("woff2"),url(../fonts/ion.woff?94af7082ea096aefe3a7b6642834716e) format("woff"),url(../fonts/ion.ttf?94af7082ea096aefe3a7b6642834716e) format("truetype"),url(../fonts/ion.svg?94af7082ea096aefe3a7b6642834716e#ion) format("svg");font-weight:400;font-style:normal}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-icon-big{font-size:149%}.index .title{background:url(../img/searx.png) center no-repeat;min-height:80px}.index h1{font-size:5em;visibility:hidden}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}.preferences_back{clear:both}}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:#3498DB;color:#fff;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row}#q,#send_search{display:block!important;border-collapse:separate;margin:0;padding:2px;height:2.2em;background:#FFF;border:1px solid #3498DB;border-radius:0;outline:0;color:#222;font-size:16px;z-index:2}#q{outline:0;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;background-color:#3498DB;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}#search_url div,.result-videos .content{overflow:hidden}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0}#search_wrapper{width:100%;margin:0 0 .7em;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body,html,main{padding:0;margin:0}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}footer p,html{font-size:.9em}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;text-align:center}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#main_preferences h1 span,#main_stats h1 span{visibility:hidden}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited,a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 0;padding:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat,.result .url{font-size:.9em;padding:0;max-width:54em;word-wrap:break-word}.result .altlink,.result .content,.result .stat{margin:0;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{margin:0 0 3px;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.result-images,.result-images img{margin:0;padding:0;max-height:200px}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;position:relative}.result-images img{float:inherit;border:none;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}#answers,#backToTop,#sidebar .infobox{border:1px solid #ddd;box-shadow:0 0 5px #CCC}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em;color:#444}#answers{margin:10px 8px;padding:.9em}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0;padding:.9em;font-size:.9em}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#apis,#search_url{margin-top:8px}#sidebar .infobox input{font-size:1em}#search_url div{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;height:1.2em;line-height:1.2em}#search_url div pre{display:block;width:200em;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#backToTop{margin:0 0 0 2em;padding:0;font-size:1em;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}.image_result,.image_result img,.result .thumbnail{max-width:98%}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px}.result-images{border-bottom:none!important}}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px}#corrections{margin:1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}
-\ No newline at end of file
+/*! searx | 14-08-2018 | https://github.com/asciimoo/searx *//*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}[type=checkbox],[type=radio],legend{padding:0;box-sizing:border-box}.badge,.center{text-align:center}.badge,progress,sub,sup{vertical-align:baseline}.autocomplete>ul,.list-unstyled{list-style-type:none}.tabs>section,legend{box-sizing:border-box}#main_preferences h1 span,#main_stats h1 span,.index h1{visibility:hidden}#apis,#pagination,#pagination br,#sidebar .infobox .attributes,#sidebar .infobox .urls,#sidebar .infobox br,.result .break,footer{clear:both}html{line-height:1.15}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0}code,kbd,pre,samp{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}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}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}.highlight pre,textarea{overflow:auto}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:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;white-space:normal}.badge,.search_box{white-space:nowrap}[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}.highlight .c,.highlight .cm,.highlight .ge,.highlight .sd{font-style:italic}.dialog-error:before,.dialog-modal:before,.dialog-warning:before,.ion-icon-big:before,.ion-icon:before{font-family:ion}details{display:block}summary{display:list-item}[hidden],html.js .show_if_nojs,html.no-js .hide_if_nojs,template{display:none}.highlight .hll{background-color:#ffc}.highlight .c{color:#408080}.highlight .err{border:1px solid red}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .cm{color:#408080}.highlight .cp{color:#BC7A00}.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#A00000}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00A000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04D}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#B00040}.highlight .m{color:#666}.highlight .s{color:#BA2121}.highlight .na{color:#7D9029}.highlight .nb{color:green}.highlight .nc{color:#00F;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#A2F}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#D2413A;font-weight:700}.highlight .nf{color:#00F}.highlight .nl{color:#A0A000}.highlight .nn{color:#00F;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177C}.highlight .ow{color:#A2F;font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .s2,.highlight .sb,.highlight .sc{color:#BA2121}.highlight .sd{color:#BA2121}.highlight .se{color:#B62;font-weight:700}.highlight .sh{color:#BA2121}.highlight .si{color:#B68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#B68}.highlight .s1{color:#BA2121}.highlight .ss{color:#19177C}.highlight .bp{color:green}.highlight .vc,.highlight .vg,.highlight .vi{color:#19177C}.highlight .il{color:#666}.badge,kbd{color:#fff}.highlight .lineno{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.btn-collapse,.tabs>label,select:focus,select:hover{cursor:pointer}.highlight .lineno::selection{background:0 0}.highlight .lineno::-moz-selection{background:0 0}.right{float:right}.left{float:left}.invisible{display:none!important}.list-unstyled li{margin-top:4px;margin-bottom:4px}.danger{background-color:#fae1e1}.badge{display:inline-block;background-color:#777;min-width:10px;padding:1px 5px;border-radius:5px}.dialog-error tr,.dialog-modal tr,.dialog-warning tr{vertical-align:text-top}kbd{padding:2px 4px;margin:1px;font-size:90%;background:#000}table{width:100%}table.striped tr{border-bottom:1px solid #ececec}th{padding:.4em}td{padding:0 4px}tr:hover{background:#ececec}div.selectable_url{border:1px solid #888;padding:4px;color:#444;width:100%;display:block;margin:.1em;overflow:hidden;height:1.2em;line-height:1.2em}div.selectable_url pre{display:block;font-size:.8em;word-break:break-all;margin:.1em;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:element;user-select:all}#categories,.tabs>label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.dialog-error{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #db3434;border-radius:4px;text-align:left;color:#db3434;background:#fae1e1}.dialog-error:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f110"}.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}.dialog-error table{width:auto}.dialog-error tr:hover{background:0 0}.dialog-error td{padding:0 1em 0 0}.dialog-error h4{margin-top:.3em;margin-bottom:.3em}.dialog-warning{position:relative;width:70%;padding:1em 1em 1em 2.7em;margin:0 8% 1em;border:1px solid #dbba34;border-radius:4px;text-align:left;color:#dbba34;background:#faf5e1}.dialog-warning:before{position:absolute;top:.5em;left:.5em;font-size:1.5em;content:"\f10f"}.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}.dialog-warning table{width:auto}.dialog-warning tr:hover{background:0 0}.dialog-warning td{padding:0 1em 0 0}.dialog-warning h4{margin-top:.3em;margin-bottom:.3em}.dialog-modal{width:70%;padding:1em 1em 1em 2.7em;border:1px solid #000;border-radius:4px;text-align:left;background:#fff;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100000;margin:0 50% 0 0;box-shadow:0 0 1em}.dialog-modal:before{position:absolute;top:.5em;left:.5em;font-size:1.5em}.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}.dialog-modal table{width:auto}.dialog-modal tr:hover{background:0 0}.dialog-modal td{padding:0 1em 0 0}.dialog-modal h4{margin-top:.3em;margin-bottom:.3em}.scrollx{overflow-x:auto;overflow-y:hidden;display:block;padding:0;margin:0;border:none}.tabs .tabs>label{font-size:90%}.tabs{display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap;width:100%;min-width:100%}.tabs>*{order:2}.tabs>input[type=radio]{display:none}.tabs>label{order:1;padding:.7em;margin:0 .7em;letter-spacing:.5px;text-transform:uppercase;border:solid #fff;border-width:0 0 2px;user-select:none}.tabs>label:hover,.tabs>label:last-of-type{border-bottom:2px solid #084999}.tabs>section{min-width:100%;padding:.7rem 0;border-top:1px solid #000;display:none}.tabs>label:last-of-type{background:#3498DB;color:#FFF;font-weight:700;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 #084999}html body .tabs>input:checked+label{border-bottom:2px solid #084999;background:#3498DB;color:#FFF;font-weight:700;letter-spacing:-.1px}html body .tabs>input:checked+label+section{display:block}select{height:28px;margin:0 1em 0 0;padding:2px 8px 2px 0!important;color:#222;font-size:12px;z-index:2}@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:none;border-bottom:1px solid #d7d7d7;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTI4LDE5MiAyNTYsMzIwIDM4NCwxOTIiLz48L2c+PC9zdmc+Cg==) no-repeat;background-position-x:105%;background-size:2em;background-origin:content-box;outline:0}select:focus,select:hover{border-bottom:1px solid #3498DB}}@supports (border-radius:50px){.checkbox-onoff{display:inline-block;width:40px;height:10px;background:#dcdcdc;margin:8px auto;position:relative;border-radius:50px}.checkbox-onoff label{display:block;width:20px;height:20px;position:absolute;top:-5px;cursor:pointer;border-radius:50px;box-shadow:0 3px 5px 0 rgba(0,0,0,.3);transition:all .4s ease;left:27px;background-color:#3498DB}.checkbox-onoff input[type=checkbox]{visibility:hidden}.checkbox-onoff input[type=checkbox]:checked+label{left:-5px;background:#dcdcdc}}@supports (transform:rotate(-45deg)){.checkbox{width:20px;position:relative;margin:20px auto}.checkbox label{width:20px;height:20px;cursor:pointer;position:absolute;top:0;left:0;background:#fff;border-radius:4px;box-shadow:inset 0 1px 1px #fff,0 1px 4px rgba(0,0,0,.5)}.checkbox label:after{content:'';width:9px;height:5px;position:absolute;top:4px;left:4px;border:3px solid #333;border-top:none;border-right:none;background:0 0;opacity:0;transform:rotate(-45deg)}.checkbox input[type=checkbox]{visibility:hidden}.checkbox input[type=checkbox]:checked+label:after{border-color:#3498DB;opacity:1}.checkbox input[disabled]+label{background-color:transparent!important;box-shadow:none!important;cursor:inherit}.checkbox input:not(:checked):not([readonly]):not([disabled])+label: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 rgba(0,0,0,.2);border-right:.5em solid rgba(0,0,0,.2);border-bottom:.5em solid rgba(0,0,0,.2);border-left:.5em solid rgba(255,255,255,0);-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)}}/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */.autocomplete{position:absolute;max-height:0;overflow-y:hidden;text-align:left}#categories_container,.category{position:relative}.autocomplete:active,.autocomplete:focus,.autocomplete:hover{background-color:#fff}#send_search:hover,.autocomplete>ul>li.active,.autocomplete>ul>li:active,.autocomplete>ul>li:focus{background-color:#3498DB}.autocomplete:empty{display:none}.autocomplete>ul{margin:0;padding:0}.autocomplete>ul>li{cursor:pointer;padding:5px 0 5px 10px}.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{text-decoration:none}.autocomplete>ul>li.locked{cursor:inherit}.autocomplete.open{display:block;background-color:#fff;border:1px solid #3498DB;max-height:500px;overflow-y:auto;z-index:100}.autocomplete.open:empty{display:none}.ion-icon,.ion-icon-big{display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:middle}@media screen and (max-width:50em){.autocomplete{bottom:0}.autocomplete>ul>li{padding:7px 0 7px 10px;border-bottom:1px solid #E8E7E6;text-align:left}}#main_preferences table td,.index{text-align:center}@font-face{font-family:ion;src:url(../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51);src:url(../fonts/ion.eot?#iefix) format("embedded-opentype"),url(../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51) format("woff2"),url(../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51) format("woff"),url(../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51) format("truetype"),url(../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion) format("svg");font-weight:400;font-style:normal}.ion-navicon-round:before{content:"\f101"}.ion-search:before{content:"\f102"}.ion-play:before{content:"\f103"}.ion-link:before{content:"\f104"}.ion-chevron-up:before{content:"\f105"}.ion-chevron-left:before{content:"\f106"}.ion-chevron-right:before{content:"\f107"}.ion-arrow-down-a:before{content:"\f108"}.ion-arrow-up-a:before{content:"\f109"}.ion-arrow-swap:before{content:"\f10a"}.ion-arrow-dropdown:before{content:"\f10b"}.ion-globe:before{content:"\f10c"}.ion-time:before{content:"\f10d"}.ion-location:before{content:"\f10e"}.ion-warning:before{content:"\f10f"}.ion-error:before{content:"\f110"}.ion-film-outline:before{content:"\f111"}.ion-music-note:before{content:"\f112"}.ion-more-vertical:before{content:"\f113"}.ion-magnet:before{content:"\f114"}.ion-close:before{content:"\f115"}.ion-icon-big{font-size:149%}.index .title{background:url(../img/searx.png) center no-repeat;width:100%;min-height:80px}.index h1{font-size:5em}.index #search{margin:0 auto;background:inherit;border:inherit}.index .search_filters{display:block;margin:1em 0}.index .category label{padding:6px 10px;border-bottom:initial!important}@media screen and (max-width:75em){div.title h1{font-size:1em}.preferences_back{clear:both}}#main_preferences form{width:100%}#main_preferences fieldset{margin:8px;border:none}#main_preferences legend{margin:0;padding:5px 0 0;display:block;float:left;width:300px}#main_preferences .value{margin:0;padding:0;float:left;width:15em}#main_preferences .description{margin:0;padding:5px 0 0;float:left;width:50%;color:#909090;font-size:90%}#main_preferences select{width:200px;font-size:inherit!important}#main_preferences table{border-collapse:collapse}#main_preferences table.cookies{width:auto}#main_preferences div.selectable_url pre,footer,main{width:100%}#main_preferences table.cookies td,#main_preferences table.cookies th{text-align:left;padding:.25em}#main_preferences table.cookies td:first-child,#main_preferences table.cookies th:first-child{padding-right:4em}#main_preferences table.cookies>tbody>tr:nth-child(even)>td,#main_preferences table.cookies>tbody>tr:nth-child(even)>th{background-color:#ececec}#main_preferences .name,#main_preferences .shortcut{text-align:left}#main_preferences .preferences_back{background:#3498DB;color:#fff;border:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:.5em}#main_preferences .preferences_back a{display:block;color:#FFF}#main_preferences .preferences_back a::first-letter{text-transform:uppercase}#search{padding:0 2em;margin:0;background:#f7f7f7;border-bottom:1px solid #d7d7d7}#search_wrapper{padding:10px 0}.search_box{margin:0 12px 0 0;display:inline-flex;flex-direction:row}#clear_search,#q,#send_search{border-collapse:separate;box-sizing:border-box;margin:0;padding:2px;height:2.2em;background:#FFF;color:#222;font-size:16px;outline:0}#clear_search{display:block;width:1.8em;border-top:1px solid #3498DB;border-bottom:1px solid #3498DB;border-right:none;border-left:none;border-radius:0;z-index:10000}#clear_search:hover{color:#3498DB}#clear_search.empty *{display:none}#q::-ms-clear,#q::-webkit-search-cancel-button{display:none}#q,#send_search{display:block!important;border:1px solid #3498DB;border-radius:0;z-index:2}#q{outline:0;padding-left:8px;padding-right:0!important;border-right:none;width:40em}#send_search{border-left:none;width:2.2em}#send_search:hover{cursor:pointer;color:#ECF0F1}.no-js #send_search{width:auto!important}.search_filters{display:inline-block;vertical-align:middle}@media screen and (max-width:75em){#categories{font-size:90%;clear:both}#categories .checkbox_container{margin:auto}html.touch #main_index #categories_container,html.touch #main_results #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #main_index #categories_container .category,html.touch #main_results #categories_container .category{display:inline-block;width:auto}html.touch #main_index #categories,html.touch #main_results #categories{width:100%;margin:0;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}}@media screen and (max-width:50em){#search{width:100%;margin:0;padding:.1em 0 0}#search_wrapper{width:100%;margin:0 0 .7em;padding:0}.search_box{width:99%;margin:.1em;padding:0 .1em 0 0;display:flex;flex-direction:row}#q{width:auto!important;flex:1}.search_filters{display:block;margin:.5em}.language,.time_range{width:45%}.category{display:block;width:90%}.category label{border-bottom:0}}#categories{margin:0 10px 0 0;user-select:none}#categories::-webkit-scrollbar{width:0;height:0}.category{display:inline-block;margin:0 3px;padding:0}.category input{display:none}.category label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;font-size:.9em;border-bottom:2px solid transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body,html,main{padding:0;margin:0}.category input[type=checkbox]:focus+label{box-shadow:0 0 8px #3498DB}.category input[type=checkbox]:checked+label{background:#3498DB;color:#FFF;border-bottom:2px solid #084999}#categories_container .help{position:absolute;width:100%;bottom:-20px;overflow:hidden;opacity:0;transition:opacity 1s ease;font-size:.8em;text-position:center;background:#fff}footer p,html{font-size:.9em}#categories_container:hover .help{opacity:.8;transition:opacity 1s ease}html{font-family:arial,sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444}#main_about,#main_preferences,#main_stats{margin:3em;width:auto}footer{bottom:0;height:3em;margin:1em 0;padding:1em 0;text-align:center}#main_preferences h1,#main_stats h1{background:url(../img/searx.png) no-repeat;background-size:auto 75%;min-height:40px;margin:0 auto}#results button[type=submit],input[type=submit]{padding:.5rem;margin:2px 4px;display:inline-block;background:#3498DB;color:#FFF;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}a{text-decoration:none;color:#29314d}a:visited,a:visited .highlight{color:#684898}article[data-vim-selected]{background:#f7f7f7}article[data-vim-selected]::before{position:absolute;left:1em;padding:2px;content:">";font-weight:700;color:#3498DB}article.result-images[data-vim-selected]{background:#3498DB}article.result-images[data-vim-selected]::before{display:none;content:""}.result{margin:19px 0 18px;padding:0}.result h3{font-size:1.1em;word-wrap:break-word;margin:5px 0 0;padding:0}.result h3 a{color:#084999;font-weight:400;font-size:1.1em}.result h3 a:visited{color:#684898}.result h3 a:focus,.result h3 a:hover{text-decoration:underline;border:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.result .cache_link,.result .proxyfied_link{font-size:.9em!important}.result .altlink,.result .content,.result .stat,.result .url{font-size:.9em;padding:0;max-width:54em;word-wrap:break-word}.result .altlink,.result .content,.result .stat{margin:0;line-height:1.24}.result .altlink .highlight,.result .content .highlight,.result .stat .highlight{color:#000;background:inherit;font-weight:700}.result .codelines .highlight{color:inherit;background:inherit;font-weight:400}.result .url{margin:0 0 3px;color:#25a55b}.result .published_date{font-size:.8em;color:#888}.result img.thumbnail{float:left;padding:0 5px 10px 0;width:20em;min-width:20em;min-height:8em}.result img.image{float:left;padding:0 5px 10px 0;width:100px;max-height:100px;object-fit:scale-down;object-position:right top}.category-social .image{width:auto!important;min-width:48px;min-height:48px;padding:0 5px 25px 0!important}.result-videos .content{overflow:hidden}.engines{float:right;color:#888}.engines span{font-size:smaller;margin:0 .5em 0 0}.result-images,.result-images img{margin:0;padding:0;max-height:200px}.small_font{font-size:.8em}.highlight{color:#094089;background:inherit;font-weight:700}.result-images{display:inline-block;position:relative}.result-images img{float:inherit;border:none;background:#084999}.result-images span a{display:none;color:#FFF}.result-images:hover span a{display:block;position:absolute;bottom:0;right:0;padding:4px;margin:0 0 4px 4px;background-color:rgba(0,0,0,.6);font-size:.7em}.torrent_result{border-left:10px solid #d3d3d3;padding-left:3px}#answers,#backToTop,#sidebar .infobox{border:1px solid #ddd;box-shadow:0 0 5px #CCC}.torrent_result p{margin:3px;font-size:.8em}.torrent_result a{color:#084999}.torrent_result a:hover{text-decoration:underline}.torrent_result a:visited{color:#684898}#results{margin:2em 2em 20px;padding:0;width:50em}#suggestions .wrapper{display:flex;flex-flow:row wrap;justify-content:flex-end}#suggestions .wrapper form{display:inline-block;flex:1 1 50%}#answers,#corrections,#suggestions{max-width:50em}#answers input,#corrections input,#infoboxes input,#suggestions input{padding:0;margin:3px;font-size:.9em;display:inline-block;background:0 0;color:#444;cursor:pointer}#answers .infobox .url a,#answers input[type=submit],#corrections .infobox .url a,#corrections input[type=submit],#infoboxes .infobox .url a,#infoboxes input[type=submit],#suggestions .infobox .url a,#suggestions input[type=submit]{color:#084999;text-decoration:none;font-size:.9rem}#answers .infobox .url a:hover,#answers input[type=submit]:hover,#corrections .infobox .url a:hover,#corrections input[type=submit]:hover,#infoboxes .infobox .url a:hover,#infoboxes input[type=submit]:hover,#suggestions .infobox .url a:hover,#suggestions input[type=submit]:hover{text-decoration:underline}#corrections{display:flex;flex-flow:row wrap;margin:1em 0}#corrections h4,#corrections input[type=submit]{display:inline-block;margin:0 .5em 0 0}#corrections input[type=submit]::after{content:", "}#apis .title,#search_url .title,#suggestions .title{margin:2em 0 .5em;color:#444}#answers{margin:10px 8px;padding:.9em}#answers h4{display:none}#answers .answer{display:block;font-size:1.2em;font-weight:700}#answers form,#infoboxes form{min-width:210px}#sidebar{position:absolute;top:100px;left:57em;margin:0 2px 5px 5px;padding:0 2px 2px;max-width:25em;word-wrap:break-word}#sidebar .infobox{margin:10px 0;padding:.9em;font-size:.9em}#sidebar .infobox h2{margin:0 0 .5em}#sidebar .infobox img{max-width:100%;max-height:12em;display:block;margin:0;padding:0}#sidebar .infobox dl{margin:.5em 0}#sidebar .infobox dt{display:inline;margin:.5em .25em .5em 0;padding:0;font-weight:700}#sidebar .infobox dd{display:inline;margin:.5em 0;padding:0}#apis,#search_url{margin-top:8px}#sidebar .infobox input{font-size:1em}#search_url div.selectable_url pre{width:200em}#linkto_preferences{position:absolute;right:10px;top:.9em;padding:0;border:0;display:block;font-size:1.2em;color:#222}#linkto_preferences a:active *,#linkto_preferences a:hover *,#linkto_preferences a:link *,#linkto_preferences a:visited *{color:#222}#backToTop{margin:0 0 0 2em;padding:0;font-size:1em;background:#fff;position:fixed;bottom:85px;left:50em;transition:opacity .5s;opacity:0}#backToTop a{display:block;margin:0;padding:.6em}@media screen and (max-width:75em){#main_about,#main_preferences,#main_stats{margin:.5em;width:auto}#answers,#suggestions{margin-top:1em}#infoboxes{position:inherit;max-width:inherit}#infoboxes .infobox{clear:both}#infoboxes .infobox img{float:left;max-width:10em;margin:.5em .5em .5em 0}#sidebar{position:static;max-width:50em;margin:0 0 2px;padding:0;float:none;border:none;width:auto}.image_result,.image_result img,.result .thumbnail{max-width:98%}#sidebar input{border:0}#apis,#search_url{display:none}.result{border-bottom:1px solid #E8E7E6;margin:0;padding-top:8px;padding-bottom:6px}.result h3{margin:0 0 1px}.result .url span.url{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.result .url a{float:right;padding:0 .5em}.result .engines{float:right;padding:0 0 3px}.result-images{border-bottom:none!important}}#main_results div#results.only_template_images{flex-direction:column;width:auto;display:flex}#main_results div#results.only_template_images #sidebar{position:relative;top:auto;order:2}#main_results div#results.only_template_images #urls{position:relative;order:1}#main_results div#results.only_template_images #backToTop{right:.5em;left:auto}#main_results div#results.only_template_images #pagination{position:relative;order:3}@media screen and (max-width:50em){article[data-vim-selected]::before{display:none;content:""}#linkto_preferences{display:none;postion:fixed!important;top:100px;right:0}#sidebar{margin:0 5px 2px}#corrections{margin:1em 5px}#results{margin:0;padding:0;width:initial}#backToTop{left:40em;bottom:35px}.result{padding:8px 10px 6px}.result-images{margin:0;padding:0;border:none}}@media screen and (max-width:35em){.result-videos img.thumbnail{float:none!important}.result-videos .content{overflow:inherit}}
+\ No newline at end of file
diff --git a/searx/static/themes/simple/fonts/ion.css b/searx/static/themes/simple/fonts/ion.css
@@ -3,12 +3,12 @@
@font-face {
font-family:"ion";
- src:url("../fonts/ion.eot?492c5e946f5ae6f02467d64ca0f55cd1");
+ src:url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
src:url("../fonts/ion.eot?#iefix") format("embedded-opentype"),
- url("../fonts/ion.woff2?492c5e946f5ae6f02467d64ca0f55cd1") format("woff2"),
- url("../fonts/ion.woff?492c5e946f5ae6f02467d64ca0f55cd1") format("woff"),
- url("../fonts/ion.ttf?492c5e946f5ae6f02467d64ca0f55cd1") format("truetype"),
- url("../fonts/ion.svg?492c5e946f5ae6f02467d64ca0f55cd1#ion") format("svg");
+ url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"),
+ url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"),
+ url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"),
+ url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
font-weight:normal;
font-style:normal;
}
@@ -132,3 +132,8 @@
.ion-magnet:before {
content:"\f114";
}
+
+
+.ion-close:before {
+ content:"\f115";
+}
diff --git a/searx/static/themes/simple/fonts/ion.eot b/searx/static/themes/simple/fonts/ion.eot
Binary files differ.
diff --git a/searx/static/themes/simple/fonts/ion.html b/searx/static/themes/simple/fonts/ion.html
@@ -60,12 +60,12 @@
@font-face {
font-family:"ion";
- src:url("ion.eot?492c5e946f5ae6f02467d64ca0f55cd1");
+ src:url("ion.eot?ce7a0ead692560b4405a96d5b8471f51");
src:url("ion.eot?#iefix") format("embedded-opentype"),
- url("ion.woff2?492c5e946f5ae6f02467d64ca0f55cd1") format("woff2"),
- url("ion.woff?492c5e946f5ae6f02467d64ca0f55cd1") format("woff"),
- url("ion.ttf?492c5e946f5ae6f02467d64ca0f55cd1") format("truetype"),
- url("ion.svg?492c5e946f5ae6f02467d64ca0f55cd1#ion") format("svg");
+ url("ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"),
+ url("ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"),
+ url("ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"),
+ url("ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
font-weight:normal;
font-style:normal;
}
@@ -190,6 +190,11 @@
content:"\f114";
}
+
+.ion-close:before {
+ content:"\f115";
+}
+
</style>
</head>
<body>
@@ -237,6 +242,8 @@
<div class="icons__item" data-name="magnet"><i class="ion-icon ion-magnet"></i> ion-magnet</div>
+ <div class="icons__item" data-name="close"><i class="ion-icon ion-close"></i> ion-close</div>
+
</div>
diff --git a/searx/static/themes/simple/fonts/ion.svg b/searx/static/themes/simple/fonts/ion.svg
@@ -1,11 +1,11 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
-2017-12-3: Created.
+2018-8-11: Created with FontForge (http://fontforge.org)
-->
-<svg xmlns="http://www.w3.org/2000/svg">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata>
-Created by FontForge 20120731 at Sun Dec 3 21:40:53 2017
+Created by FontForge 20170924 at Sat Aug 11 14:26:20 2018
By alexandre,,,
</metadata>
@@ -13,16 +13,16 @@ Created by FontForge 20120731 at Sun Dec 3 21:40:53 2017
<font id="ion" horiz-adv-x="512" >
<font-face
font-family="ion"
- font-weight="500"
+ font-weight="400"
font-stretch="normal"
units-per-em="512"
- panose-1="2 0 6 9 0 0 0 0 0 0"
+ panose-1="2 0 5 9 0 0 0 0 0 0"
ascent="448"
descent="-64"
bbox="27.2368 -31.9632 479.993 415.9"
underline-thickness="25.6"
underline-position="-51.2"
- unicode-range="U+F101-F114"
+ unicode-range="U+F101-F115"
/>
<missing-glyph />
<glyph glyph-name="arrow-down-a" unicode=""
@@ -30,34 +30,36 @@ d="M256.5 -0.5l-192 192h112v192h160v-192h112z" />
<glyph glyph-name="arrow-dropdown" unicode=""
d="M128 256h256l-128 -128z" />
<glyph glyph-name="arrow-swap" unicode=""
-d="M64 120c0 4.40039 3.59961 7.99999 8 7.99999h248v64l128 -96l-128 -96v64h-248c-4.40039 0 -8 3.59961 -8 8v48zM448 264c0 -4.40039 -3.59961 -8 -8 -8h-248v-64l-128 96l128 96v-64h248c4.40039 0 8 -3.59961 8 -8v-48z" />
+d="M64 120c0 4.40039 3.59961 8 8 8h248v64l128 -96l-128 -96v64h-248c-4.40039 0 -8 3.59961 -8 8v48zM448 264c0 -4.40039 -3.59961 -8 -8 -8h-248v-64l-128 96l128 96v-64h248c4.40039 0 8 -3.59961 8 -8v-48z" />
<glyph glyph-name="arrow-up-a" unicode=""
d="M256.5 383.5l192 -192h-112v-192h-160v192h-112z" />
<glyph glyph-name="chevron-left" unicode=""
-d="M213.7 192l167.2 -174.2c4.19922 -4.2998 4.09961 -11.3994 -0.200195 -15.7998l-29.9004 -30.5996c-4.2998 -4.40039 -11.2998 -4.5 -15.5 -0.200191l-204.2 212.7c-2.09961 2.19922 -3.09961 5.09961 -3 8.09961c-0.199219 2.90039 0.800781 5.90039 3 8.09961
+d="M213.7 192l167.2 -174.2c4.19922 -4.2998 4.09961 -11.3994 -0.200195 -15.7998l-29.9004 -30.5996c-4.2998 -4.40039 -11.2998 -4.5 -15.5 -0.200195l-204.2 212.7c-2.09961 2.19922 -3.09961 5.09961 -3 8.09961c-0.199219 2.90039 0.800781 5.90039 3 8.09961
l204.2 212.601c4.2002 4.2998 11.2002 4.2002 15.5 -0.200195l29.9004 -30.5996c4.2998 -4.40039 4.39941 -11.5 0.200195 -15.8008l-167.2 -174.1v0v0z" />
<glyph glyph-name="chevron-right" unicode=""
d="M298.3 192v0v0l-167.2 174.1c-4.19922 4.30078 -4.09961 11.4004 0.200195 15.8008l29.9004 30.5996c4.2998 4.40039 11.2998 4.5 15.5 0.200195l204.2 -212.7c2.19922 -2.2002 3.19922 -5.2002 3 -8.09961c0.0996094 -3 -0.900391 -5.90039 -3 -8.10059l-204.2 -212.6
-c-4.2002 -4.29981 -11.2002 -4.2002 -15.5 0.200191l-29.9004 30.5996c-4.2998 4.40039 -4.39941 11.5 -0.200195 15.7998z" />
+c-4.2002 -4.2998 -11.2002 -4.2002 -15.5 0.200195l-29.9004 30.5996c-4.2998 4.40039 -4.39941 11.5 -0.200195 15.7998z" />
<glyph glyph-name="chevron-up" unicode=""
d="M256 234.3l-174.2 -167.2c-4.2998 -4.19922 -11.3994 -4.09961 -15.7998 0.200195l-30.5996 29.9004c-4.40039 4.2998 -4.5 11.2998 -0.200195 15.5l212.7 204.2c2.19922 2.09961 5.09961 3.09961 8.09961 3c2.90039 0.199219 5.90039 -0.800781 8.09961 -3l212.7 -204.2
-c4.2998 -4.2002 4.20016 -11.2002 -0.200226 -15.5l-30.5996 -29.9004c-4.40039 -4.2998 -11.5 -4.39941 -15.7998 -0.200195l-174.2 167.2v0v0z" />
+c4.2998 -4.2002 4.2002 -11.2002 -0.200195 -15.5l-30.5996 -29.9004c-4.40039 -4.2998 -11.5 -4.39941 -15.7998 -0.200195l-174.2 167.2v0v0z" />
+ <glyph glyph-name="close" unicode=""
+d="M405 311.202l-119.202 -119.202l119.202 -119.202l-29.7979 -29.7979l-119.202 119.202l-119.202 -119.202l-29.7979 29.7979l119.202 119.202l-119.202 119.202l29.7979 29.7979l119.202 -119.202l119.202 119.202z" />
<glyph glyph-name="error" unicode=""
-d="M256 400c114.4 0 208 -93.6006 208 -208c0 -114.399 -93.5996 -208 -208 -208s-208 93.6006 -208 208c0 114.399 93.5996 208 208 208zM280 88v40h-48v-40h48zM280 176v128h-48v-128h48z" />
+d="M256 400c114.4 0 208 -93.6006 208 -208s-93.5996 -208 -208 -208s-208 93.6006 -208 208s93.5996 208 208 208zM280 88v40h-48v-40h48zM280 176v128h-48v-128h48z" />
<glyph glyph-name="film-outline" unicode=""
d="M56 360h400v-336h-400v336zM128 40v48h-56v-48h56zM128 104v48h-56v-48h56zM128 168v48h-56v-48h56zM128 232v48h-56v-48h56zM128 296v48h-56v-48h56zM368 40v144h-224v-144h224zM368 200v144h-224v-144h224zM440 40v48h-56v-48h56zM440 104v48h-56v-48h56zM440 168v48
h-56v-48h56zM440 232v48h-56v-48h56zM440 296v48h-56v-48h56z" />
<glyph glyph-name="globe" unicode=""
-d="M256 400c114.875 0 208 -93.125 208 -208c0 -114.875 -93.125 -208 -208 -208c-114.876 0 -208 93.125 -208 208c0 114.875 93.124 208 208 208zM234.451 15.001c6.04297 15.0449 19.9453 28.6484 7.27342 39.1172c-8.17285 6.75 -15.6123 13.6279 -23.1104 21.125
-c-2.47461 2.47363 -9.9082 19.7109 -8.35156 22.3916c5.10254 8.78613 5.76367 14.8613 8.12988 24.7236c2.94336 12.2627 -3.33398 15.4434 -13.3828 21.8389c-15.2256 9.68848 -28.9629 22.4844 -43.3223 33.4941c-7.11621 5.45508 -17.4355 10.0986 -20.0186 18.9521
+d="M256 400c114.875 0 208 -93.125 208 -208s-93.125 -208 -208 -208c-114.876 0 -208 93.125 -208 208s93.124 208 208 208zM234.451 15.001c6.04297 15.0449 19.9453 28.6484 7.27344 39.1172c-8.17285 6.75 -15.6123 13.6279 -23.1104 21.125
+c-2.47461 2.47363 -9.9082 19.7109 -8.35156 22.3916c5.10254 8.78613 5.76367 14.8613 8.12988 24.7236c2.94336 12.2627 -3.33398 15.4434 -13.3828 21.8389c-15.2256 9.68848 -28.9629 22.4844 -43.3213 33.4941c-7.11719 5.45508 -17.4365 10.0986 -20.0195 18.9521
c-2.64062 9.05078 -3.97363 20.2598 -9.40039 28.0781c-13.9277 20.0752 -11.5791 34.9678 -9.93945 58.7627c0.449219 6.52637 -1.30371 15.6572 -2.01367 24.1748c-27.5654 -32.2354 -42.6016 -72.7891 -42.6016 -115.659c0 -47.6221 18.5439 -92.3926 52.2178 -126.067
c28.541 -28.54 65.0557 -46.2061 104.52 -50.9316zM382.067 65.9326c23.0352 23.0381 38.9873 51.2695 46.7686 82.0527c-8.34668 -1.19141 -18.3838 2.22754 -18.3838 2.22754s-21.7363 23.707 -23.5244 44.5723c-1.85645 21.667 0.498047 38.3945 -2.89551 56.8105
-c-2.87988 15.624 -19.2803 31.5 -26.6729 46.3018c-6.92188 13.8555 -13.7334 27.7031 -20.2646 41.7451c2.25098 -0.848633 4.90039 -1.40234 6.96484 -2.62305c4.99902 0.636719 9.43066 1.22949 13.4629 1.59082c-22.5381 15.6758 -48.2725 25.8418 -75.5225 29.7998
-v-8.33887l3.55273 -9.27734l-13.7793 -12.9951l-8.6748 2.79492l-9.92383 10.2334l-9.94434 11.8008l-14.084 5.66016c-15.7227 -2.36133 -30.9336 -6.78711 -45.3096 -13.1523c0.360352 -2.30762 0.662109 -4.64453 0.662109 -7.13281
-c7.17383 2.98926 15.2764 5.04883 22.4502 8.03906c2.96289 1.23438 12.7529 -7.1748 15.6221 -8.96777c-4.0957 -4.70996 -20.5576 -15.4434 -21.3574 -21.3574c-0.317383 -2.33984 6.50586 -6.06348 6.45117 -9.69141
-c-0.0878906 -5.74609 -0.173828 -11.4912 -0.259766 -17.2373c3.24414 2.76172 20.0332 20.3672 21.9404 20.8594c12.7256 3.2832 34.3916 -17.7646 36.249 -25.1934c1.8584 -7.42871 -21.6514 -23.6826 -32.6113 -34.0469
-c-8.39941 -7.94434 -24.8086 -12.5137 -19.8037 -24.2285c1.62695 -3.80957 10.0498 -20.0156 5.21191 -24.0586c-5.92188 -4.94824 -14.7686 8.97656 -17.3418 12.0938c-8.1543 9.87695 -25.626 6.02539 -37.9082 6.47852c0 -17.4209 -0.757812 -31.1885 14.9219 -42.9971
-c15.1953 -11.4434 29.5977 -24.7061 47.0781 -32.3389c12.7637 -5.57129 35.7158 6.53613 47.0205 -1.41699c15.8672 -11.165 29.3066 -21.624 47.1611 -29.375c7.93359 -3.44531 32.418 -19.8828 25.3525 -30.7812c-4.96582 -7.66211 -9.87305 -14.8848 -13.5771 -23.2168
+c-2.87988 15.624 -19.2803 31.5 -26.6729 46.3018c-6.9209 13.8555 -13.7334 27.7031 -20.2646 41.7451c2.25098 -0.848633 4.90039 -1.40234 6.96484 -2.62305c4.99902 0.636719 9.43066 1.22949 13.4629 1.59082c-22.5381 15.6758 -48.2725 25.8418 -75.5225 29.7998
+v-8.33887l3.55273 -9.27734l-13.7783 -12.9951l-8.67578 2.79492l-9.92383 10.2334l-9.94336 11.8008l-14.084 5.66016c-15.7236 -2.36133 -30.9346 -6.78711 -45.3105 -13.1523c0.360352 -2.30762 0.662109 -4.64453 0.662109 -7.13281
+c7.17383 2.98926 15.2764 5.04883 22.4502 8.03906c2.96289 1.23438 12.7529 -7.1748 15.6221 -8.96777c-4.0957 -4.70996 -20.5576 -15.4434 -21.3574 -21.3574c-0.316406 -2.33984 6.50586 -6.06348 6.45117 -9.69141
+c-0.0878906 -5.74609 -0.173828 -11.4912 -0.259766 -17.2373c3.24414 2.76172 20.0342 20.3672 21.9404 20.8594c12.7256 3.2832 34.3916 -17.7646 36.249 -25.1934c1.8584 -7.42871 -21.6514 -23.6826 -32.6113 -34.0469
+c-8.39941 -7.94434 -24.8086 -12.5137 -19.8037 -24.2285c1.62695 -3.80957 10.0508 -20.0156 5.21191 -24.0586c-5.92188 -4.94824 -14.7686 8.97656 -17.3418 12.0938c-8.15332 9.87695 -25.626 6.02539 -37.9082 6.47852c0 -17.4209 -0.757812 -31.1885 14.9229 -42.9971
+c15.1943 -11.4434 29.5967 -24.7061 47.0771 -32.3389c12.7637 -5.57129 35.7158 6.53613 47.0205 -1.41699c15.8672 -11.165 29.3066 -21.624 47.1611 -29.375c7.93359 -3.44531 32.418 -19.8828 25.3525 -30.7812c-4.96582 -7.66211 -9.87305 -14.8848 -13.5771 -23.2168
c-3.70703 -8.34375 -12.5957 -18.876 -19.6924 -24.3525c-8.15918 -6.29199 -16.9551 -17.1455 -21.8955 -29.3623c34.8574 6.5957 66.9229 23.4482 92.5566 49.0811z" />
<glyph glyph-name="link" unicode=""
d="M256.5 240h-0.5v0h0.5zM368.5 288c44.2002 0 79.5 -35.2998 79.5 -79.5v-32c0 -44.2002 -35.2998 -80.5 -79.5 -80.5h-112c-32.7002 0 -61 19.7998 -73.5996 48c-4.40039 10 -6.90039 21 -6.90039 32.5v31.5h48v-31.5c0 -17.5996 14.9004 -32.5 32.5 -32.5h112
@@ -67,37 +69,37 @@ c-17.5996 0 -32.5 -13.9004 -32.5 -31.5v-32c0 -17.5996 14.9004 -32.5 32.5 -32.5h1
d="M256 384c65.9004 0 119.3 -53.7002 119.3 -120c0 -114.6 -119.3 -264 -119.3 -264s-119.3 149.4 -119.3 264c0 66.2998 53.3994 120 119.3 120zM256 205.8c31.2002 0 56.4004 25.4004 56.4004 56.7002c0 31.4004 -25.2002 56.7998 -56.4004 56.7998
c-31.0996 0 -56.4004 -25.5 -56.4004 -56.7998s25.2002 -56.7002 56.4004 -56.7002z" />
<glyph glyph-name="magnet" unicode=""
-d="M27.7061 117.644h86.2139v-67.7236h-86.2256zM252.787 283.909c0 40.4043 -40.4521 43.457 -68.0937 43.457c-0.200195 0 -0.367188 -0.166992 -0.367188 -0.366211s0.166992 -0.366211 0.367188 -0.366211c27.7676 0 67.3604 -3.08398 67.3604 -42.7246h0.733383z
-M113.554 142.632c-28.2832 -0.604492 -56.9688 0.0244141 -85.4844 0.0078125c-0.223633 50.5547 0.00195312 101.386 0.00195312 150.508c0.249023 43.3125 13.4043 70.168 42.957 92.0605c32.9863 25.5547 71.2646 27.0957 112.144 27.2324
-c40.8623 -0.136719 79.1436 -1.67773 112.13 -27.2324c29.5635 -21.8926 42.7188 -48.7461 42.9678 -92.0625c0 -49.1631 0.238281 -99.6865 0.00195312 -150.495c-28.3008 0.00585938 -56.9746 -0.62793 -85.4844 -0.0078125l-0.733383 -0.358398
-c0 -0.197266 0.163101 -0.362305 0.358414 -0.366211c28.75 -0.636719 57.4912 0.0107422 86.2246 0c0.208008 -0.000976562 0.365234 0.183594 0.366211 0.364258c0.238281 50.8672 0 101.591 0 150.867c-0.25 43.4795 -13.5273 70.626 -43.2588 92.6426
-c-33.1963 25.7178 -71.71 27.2451 -112.575 27.3818c-40.8711 -0.136719 -79.3877 -1.66406 -112.583 -27.3818c-29.7207 -22.0166 -42.9971 -49.1611 -43.248 -92.6445c0 -49.2715 -0.227539 -99.999 0 -150.876
-c0.000976562 -0.208984 0.185547 -0.365234 0.367188 -0.365234c28.7324 0.0224609 57.4853 -0.625 86.2236 0c0.196289 0.00390625 0.358406 0.170898 0.358406 0.366211zM114.287 283.897c0 39.6406 39.6045 42.7363 67.3604 42.7363
-c0.200195 0 0.367188 0.166992 0.367188 0.366211s-0.166992 0.366211 -0.367188 0.366211c-27.6299 0 -68.0937 -3.06348 -68.0937 -43.4688h0.733391zM184.692 327.005c27.7061 0 67.7236 -3.07129 67.7236 -43.1006v-141.615
-c28.7422 -0.639648 57.4834 0.0117188 86.2256 0c0.232422 50.8633 0 101.586 0 150.854c-0.255859 43.4033 -13.4746 70.3994 -43.1133 92.3574c-33.0938 25.6348 -71.4932 27.1709 -112.36 27.3105c-40.8672 -0.139648 -79.2666 -1.67578 -112.36 -27.3105
-c-29.6377 -21.958 -42.8574 -48.9541 -43.1016 -92.3574c0 -49.2686 -0.232422 -99.9912 0 -150.866c28.7422 0.0234375 57.4834 -0.62793 86.2139 0v141.615c0 40.0293 40.0293 43.1123 67.7236 43.1123zM252.463 117.644h86.2022v-67.7236h-86.2022v67.7236z" />
+d="M27.7061 117.644h86.2139v-67.7236h-86.2256zM184.326 327c0 -0.199219 0.166992 -0.366211 0.367188 -0.366211c27.7676 0 67.3604 -3.08398 67.3604 -42.7246v-141.625c0 -0.197266 0.163086 -0.362305 0.358398 -0.366211
+c28.75 -0.636719 57.4912 0.0107422 86.2236 0c0.208984 -0.000976562 0.366211 0.183594 0.367188 0.364258c0.238281 50.8672 0 101.591 0 150.867c-0.250977 43.4795 -13.5273 70.627 -43.2588 92.6426c-33.1963 25.7178 -71.71 27.2451 -112.575 27.3818
+c-40.8711 -0.136719 -79.3877 -1.66406 -112.583 -27.3818c-29.7207 -22.0166 -42.9971 -49.1611 -43.248 -92.6445c0 -49.2715 -0.227539 -99.999 0 -150.876c0.000976562 -0.208984 0.185547 -0.365234 0.367188 -0.365234c28.7324 0.0224609 57.4854 -0.625 86.2236 0
+c0.196289 0.00390625 0.358398 0.170898 0.358398 0.366211v141.625c0 39.6406 39.6045 42.7363 67.3604 42.7363c0.200195 0 0.367188 0.166992 0.367188 0.366211s-0.166992 0.366211 -0.367188 0.366211c-27.6299 0 -68.0938 -3.06348 -68.0938 -43.4688v-141.266
+c-28.2832 -0.604492 -56.9688 0.0244141 -85.4844 0.0078125c-0.223633 50.5547 0.00195312 101.386 0.00195312 150.508c0.249023 43.3125 13.4043 70.168 42.957 92.0605c32.9863 25.5547 71.2646 27.0957 112.144 27.2324
+c40.8623 -0.136719 79.1436 -1.67773 112.13 -27.2324c29.5645 -21.8926 42.7188 -48.7461 42.9678 -92.0625c0 -49.1631 0.238281 -99.6865 0.00195312 -150.495c-28.3008 0.00585938 -56.9746 -0.62793 -85.4844 -0.0078125v141.267
+c0 40.4043 -40.4521 43.457 -68.0938 43.457c-0.200195 0 -0.367188 -0.166992 -0.367188 -0.366211zM184.692 327.005c27.7061 0 67.7236 -3.07227 67.7236 -43.1006v-141.615c28.7422 -0.639648 57.4834 0.0117188 86.2256 0c0.232422 50.8633 0 101.586 0 150.854
+c-0.255859 43.4033 -13.4746 70.3994 -43.1133 92.3574c-33.0938 25.6348 -71.4932 27.1709 -112.36 27.3105c-40.8672 -0.139648 -79.2666 -1.67578 -112.36 -27.3105c-29.6377 -21.958 -42.8574 -48.9541 -43.1016 -92.3574c0 -49.2686 -0.232422 -99.9912 0 -150.866
+c28.7422 0.0234375 57.4834 -0.62793 86.2139 0v141.615c0 40.0293 40.0293 43.1123 67.7236 43.1123zM252.463 117.644h86.2021v-67.7236h-86.2021v67.7236z" />
<glyph glyph-name="more-vertical" unicode=""
d="M296 312c0 -22.002 -17.998 -40 -40 -40s-40 17.998 -40 40s17.998 40 40 40s40 -17.998 40 -40zM296 72c0 -22.002 -17.998 -40 -40 -40s-40 17.998 -40 40s17.998 40 40 40s40 -17.998 40 -40zM296 192c0 -22.002 -17.998 -40 -40 -40s-40 17.998 -40 40
s17.998 40 40 40s40 -17.998 40 -40z" />
<glyph glyph-name="music-note" unicode=""
d="M426 415.9c12.0996 0 22 -9.5 22.0996 -21.2002v-302.8c0 -24.7002 -3 -42.9004 -12 -54.9004h-0.199219c-9.10059 -15 -25 -21 -43.2002 -21h-37.2002c-28.2998 0 -51.2002 19.9004 -51.2002 48s22.9004 48 51.2002 48h60.5v192l-208 -38v-232
-c0 -8.2998 -3.40039 -27 -13 -41.0996c-1 -1.80078 -2.09961 -3.40039 -3.40039 -5c-0.5 -0.600586 -0.899414 -1.5 -1.5 -2.10059c-0.0996094 -0.0996094 -0.299805 -0.0996103 -0.399414 -0.200196c-9.40039 -10.5996 -23 -17.5 -38.2998 -17.5h-36.2002
+c0 -8.2998 -3.40039 -27 -13 -41.0996c-1 -1.80078 -2.09961 -3.40039 -3.40039 -5c-0.5 -0.600586 -0.899414 -1.5 -1.5 -2.10059c-0.0996094 -0.0996094 -0.299805 -0.0996094 -0.399414 -0.200195c-9.40039 -10.5996 -23 -17.5 -38.2998 -17.5h-36.2002
c-28.2002 0 -51.2998 20 -51.2998 48s23.0996 48 51.0996 48v-0.0996094h61v286.5c1 14.5 13.5 27.9004 27.2998 31.5996l217.601 33.2002s2.89941 0.600586 5.09961 0.600586z" />
<glyph glyph-name="navicon-round" unicode=""
d="M417.4 224c16.8994 0 30.5996 -14.2998 30.5996 -32s-13.7002 -32 -30.5996 -32h-322.801c-16.8994 0 -30.5996 14.2998 -30.5996 32s13.7002 32 30.5996 32h322.801zM417.4 352c16.8994 0 30.5996 -14.2998 30.5996 -32s-13.7002 -32 -30.5996 -32h-322.801
c-16.8994 0 -30.5996 14.2998 -30.5996 32s13.7002 32 30.5996 32h322.801zM417.4 96c16.8994 0 30.5996 -14.2998 30.5996 -32s-13.7002 -32 -30.5996 -32h-322.801c-16.8994 0 -30.5996 14.2998 -30.5996 32s13.7002 32 30.5996 32h322.801z" />
<glyph glyph-name="play" unicode=""
-d="M405.2 215.1c6.59961 -5.59961 10.7998 -13.7998 10.7998 -23.0996s-4.2002 -17.5996 -10.7998 -23.0996l-278.101 -165.5c-3.69922 -2 -7.09962 -3.40039 -11.1992 -3.40039c-10.9004 0 -19.8008 9 -19.8008 20h-0.0996094v344h0.0996094c0 11 8.90039 20 19.8008 20
-c4 0 7.49999 -1.2002 10.8994 -3.2002z" />
+d="M405.2 215.1c6.59961 -5.59961 10.7998 -13.7998 10.7998 -23.0996s-4.2002 -17.5996 -10.7998 -23.0996l-278.101 -165.5c-3.69922 -2 -7.09961 -3.40039 -11.1992 -3.40039c-10.9004 0 -19.8008 9 -19.8008 20h-0.0996094v344h0.0996094c0 11 8.90039 20 19.8008 20
+c4 0 7.5 -1.2002 10.8994 -3.2002z" />
<glyph glyph-name="search" unicode=""
d="M445 61.2998c4 -4 4 -10.3994 0 -14.5l-43.2998 -43.7998c-1.90039 -2 -4.60059 -3.09961 -7.2998 -3.09961c-2.7002 0 -5.40039 1.19922 -7.30078 3.09961l-84.3994 85.5996c-24.6006 -14.6992 -52.2002 -22.3994 -80.1006 -22.3994
c-87.3994 0 -158.6 71.2998 -158.6 158.899c0 87.6006 71.2002 158.9 158.6 158.9c87.4004 0 158.601 -71.2998 158.601 -158.9c0 -27 -7.2002 -53.7998 -21 -77.8994zM222.6 322.1c-53.3994 0 -96.7998 -43.5 -96.7998 -97s43.4004 -97 96.7998 -97
c53.4004 0 96.8008 43.5 96.8008 97s-43.4004 97 -96.8008 97z" />
<glyph glyph-name="time" unicode=""
-d="M256 405c117.149 0 213 -95.8506 213 -213c0 -117.149 -94.7891 -213 -213 -213s-213 95.8506 -213 213c0 117.149 94.7891 213 213 213zM256 21.5996c93.7178 0 170.4 76.6826 170.4 170.4s-76.6826 170.4 -170.4 170.4s-170.4 -76.6836 -170.4 -170.4
-s76.6826 -170.4 170.4 -170.4zM266.65 298.5v-111.824l95.8496 -56.4434l-15.9746 -26.625l-111.825 67.0928v127.8h31.9502z" />
+d="M256 405c117.149 0 213 -95.8506 213 -213s-94.7891 -213 -213 -213s-213 95.8506 -213 213s94.7891 213 213 213zM256 21.5996c93.7178 0 170.4 76.6826 170.4 170.4s-76.6826 170.4 -170.4 170.4s-170.4 -76.6836 -170.4 -170.4s76.6826 -170.4 170.4 -170.4z
+M266.65 298.5v-111.824l95.8496 -56.4434l-15.9746 -26.625l-111.825 67.0928v127.8h31.9502z" />
<glyph glyph-name="warning" unicode=""
-d="M476.7 25.7998c2.7998 -4.89941 4.7998 -13 1.7998 -17.8994c-2.90039 -4.90039 -8.20016 -7.90039 -14 -7.90039h-417.1c-5.80078 0 -11.1006 3 -14 7.90039c-2.90039 4.89941 -0.900391 12.8994 1.89941 17.8994l206.601 349.5c2.7998 5 8.1992 8.7002 14.0996 8.7002
+d="M476.7 25.7998c2.7998 -4.89941 4.7998 -13 1.7998 -17.8994c-2.90039 -4.90039 -8.2002 -7.90039 -14 -7.90039h-417.1c-5.80078 0 -11.1006 3 -14 7.90039c-2.90039 4.89941 -0.900391 12.8994 1.89941 17.8994l206.601 349.5c2.7998 5 8.19922 8.7002 14.0996 8.7002
c5.7998 0 11.2002 -3.7002 14.0996 -8.7002zM288 48v48h-64v-48h64zM288 128v144h-64v-144h64z" />
</font>
</defs></svg>
diff --git a/searx/static/themes/simple/fonts/ion.ttf b/searx/static/themes/simple/fonts/ion.ttf
Binary files differ.
diff --git a/searx/static/themes/simple/fonts/ion.woff b/searx/static/themes/simple/fonts/ion.woff
Binary files differ.
diff --git a/searx/static/themes/simple/fonts/ion.woff2 b/searx/static/themes/simple/fonts/ion.woff2
Binary files differ.
diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js
@@ -25,6 +25,10 @@ module.exports = function(grunt) {
output: {
comments: 'some'
},
+ ie8: false,
+ warnings: true,
+ compress: false,
+ mangle: true,
sourceMap: true
},
dist: {
@@ -63,7 +67,7 @@ module.exports = function(grunt) {
plugins: [
new (require('less-plugin-clean-css'))({
advanced: true,
- compatibility: 'ie8'
+ compatibility: '*'
})
],
banner: '/*! searx | <%= grunt.template.today("dd-mm-yyyy") %> | https://github.com/asciimoo/searx */\n'
@@ -99,7 +103,8 @@ module.exports = function(grunt) {
'node_modules/ionicons-npm/src/music-note.svg',
'node_modules/ionicons-npm/src/ion-close-round.svg',
'node_modules/ionicons-npm/src/android-more-vertical.svg',
- 'magnet.svg'
+ 'magnet.svg',
+ 'node_modules/ionicons-npm/src/android-close.svg',
],
dest: 'fonts',
destLess: 'less',
diff --git a/searx/static/themes/simple/img/loader.gif b/searx/static/themes/simple/img/loader.gif
Binary files differ.
diff --git a/searx/static/themes/simple/js/searx.js b/searx/static/themes/simple/js/searx.js
@@ -147,10 +147,19 @@
}
};
+ searx.insertBefore = function (newNode, referenceNode) {
+ element.parentNode.insertBefore(newNode, referenceNode);
+ };
+
+ searx.insertAfter = function(newNode, referenceNode) {
+ referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
+ };
+
searx.on('.close', 'click', function(e) {
var el = e.target || e.srcElement;
- this.parentNode.style.display="None";
+ this.parentNode.classList.add('invisible');
});
+
return searx;
})(window, document, window.searx);
;(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 e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
@@ -958,7 +967,7 @@ module.exports = AutoComplete;
}
};
- searx.on(document, "keyup", function(e) {
+ searx.on(document, "keydown", function(e) {
// check for modifiers so we don't break browser's hotkeys
if (vimKeys.hasOwnProperty(e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
var tagName = e.target.tagName.toLowerCase();
@@ -968,6 +977,7 @@ module.exports = AutoComplete;
}
} else {
if (e.target === document.body || tagName === 'a' || tagName === 'button') {
+ e.preventDefault();
vimKeys[e.keyCode].fun();
}
}
@@ -1132,13 +1142,7 @@ module.exports = AutoComplete;
};
}
- function toggleHelp() {
- var helpPanel = document.querySelector('#vim-hotkeys-help');
- if (helpPanel.length) {
- helpPanel.classList.toggle('hidden');
- return;
- }
-
+ function initHelpContent(divElement) {
var categories = {};
for (var k in vimKeys) {
@@ -1155,14 +1159,9 @@ module.exports = AutoComplete;
return;
}
- var html = '<div id="vim-hotkeys-help" class="well vim-hotkeys-help">';
- html += '<div class="container-fluid">';
-
- html += '<div class="row">';
- html += '<div class="col-sm-12">';
- html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';
- html += '</div>'; // col-sm-12
- html += '</div>'; // row
+ var html = '<a href="#" class="close" aria-label="close" title="close">×</a>';
+ html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';
+ html += '<table>';
for (var i = 0; i < sorted.length; i++) {
var cat = categories[sorted[i]];
@@ -1171,13 +1170,11 @@ module.exports = AutoComplete;
var first = i % 2 === 0;
if (first) {
- html += '<div class="row dflex">';
+ html += '<tr>';
}
- html += '<div class="col-sm-' + (first && lastCategory ? 12 : 6) + ' dflex">';
+ html += '<td>';
- html += '<div class="panel panel-default iflex">';
- html += '<div class="panel-heading">' + cat[0].cat + '</div>';
- html += '<div class="panel-body">';
+ html += '<h4>' + cat[0].cat + '</h4>';
html += '<ul class="list-unstyled">';
for (var cj in cat) {
@@ -1185,20 +1182,38 @@ module.exports = AutoComplete;
}
html += '</ul>';
- html += '</div>'; // panel-body
- html += '</div>'; // panel
- html += '</div>'; // col-sm-*
+ html += '</td>'; // col-sm-*
if (!first || lastCategory) {
- html += '</div>'; // row
+ html += '</tr>'; // row
}
}
- html += '</div>'; // container-fluid
- html += '</div>'; // vim-hotkeys-help
+ html += '</table>';
+
+ divElement.innerHTML = html;
+ }
+
+ function toggleHelp() {
+ var helpPanel = document.querySelector('#vim-hotkeys-help');
+ console.log(helpPanel);
+ if (helpPanel === undefined || helpPanel === null) {
+ // first call
+ helpPanel = document.createElement('div');
+ helpPanel.id = 'vim-hotkeys-help';
+ helpPanel.className='dialog-modal';
+ helpPanel.style='width: 40%';
+ initHelpContent(helpPanel);
+ var body = document.getElementsByTagName('body')[0];
+ body.appendChild(helpPanel);
+ } else {
+ // togggle hidden
+ helpPanel.classList.toggle('invisible');
+ return;
+ }
- $('body').append(html);
}
+
});
;/**
* searx is free software: you can redistribute it and/or modify
@@ -1292,13 +1307,14 @@ module.exports = AutoComplete;
newHtml += "</td></tr>";
}
}
- result_table_loadicon.classList.add('invisible');
+ result_table_loadicon.parentNode.removeChild(result_table_loadicon);
result_table.classList.remove('invisible');
result_table.querySelector("tbody").innerHTML = newHtml;
}
})
.catch(function() {
- result_table_loadicon.innerHTML = result_table_loadicon.innerHTML + "<p class=\"text-muted\">could not load data!</p>";
+ result_table_loadicon.classList.remove('invisible');
+ result_table_loadicon.innerHTML = "could not load data!";
});
}
}
@@ -1473,6 +1489,26 @@ module.exports = AutoComplete;
}
}
+ 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() {
+ qinput.value='';
+ qinput.focus();
+ updateClearButton();
+ });
+ qinput.addEventListener('keyup', updateClearButton, false);
+ }
+
searx.ready(function() {
qinput = d.getElementById(qinput_id);
@@ -1486,6 +1522,9 @@ module.exports = AutoComplete;
}
if (qinput !== null) {
+ // clear button
+ createClearButton(qinput);
+
// autocompleter
if (searx.autocompleter) {
searx.autocomplete = AutoComplete.call(w, {
diff --git a/searx/static/themes/simple/js/searx.min.js b/searx/static/themes/simple/js/searx.min.js
@@ -1,6 +1,6 @@
-/*! simple/searx.min.js | 03-12-2017 | https://github.com/asciimoo/searx */
+/*! simple/searx.min.js | 14-08-2018 | https://github.com/asciimoo/searx */
-!function(t,e,n){"use strict";function o(t,e,n){try{t.call(e,n)}catch(t){console.log(t)}}t.Element&&function(t){t.matches=t.matches||t.matchesSelector||t.webkitMatchesSelector||t.msMatchesSelector||function(t){for(var e=this,n=(e.parentNode||e.document).querySelectorAll(t),o=-1;n[++o]&&n[o]!=e;);return!!n[o]}}(Element.prototype),n=n||{},n.on=function(t,n,a,i){i=i||!1,"string"!=typeof t?t.addEventListener(n,a,i):e.addEventListener(n,function(n){for(var i=n.target||n.srcElement,r=!1;i&&i.matches&&i!==e&&!(r=i.matches(t));)i=i.parentElement;r&&o(a,i,n)},i)},n.ready=function(e){"loading"!=document.readyState?e.call(t):t.addEventListener("DOMContentLoaded",e.bind(t))},n.http=function(t,e,n){var o=new XMLHttpRequest,a=function(){},i=function(){},r={then:function(t){return a=t,r},catch:function(t){return i=t,r}};try{o.open(t,e,!0),o.onload=function(){200==o.status?a(o.response,o.responseType):i(Error(o.statusText))},o.onerror=function(){i(Error("Network Error"))},o.onabort=function(){i(Error("Transaction is aborted"))},o.send()}catch(t){i(t)}return r},n.loadStyle=function(t){var o=n.staticPath+t,a="style_"+t.replace(".","_"),i=e.getElementById(a);null===i&&((i=e.createElement("link")).setAttribute("id",a),i.setAttribute("rel","stylesheet"),i.setAttribute("type","text/css"),i.setAttribute("href",o),e.body.appendChild(i))},n.loadScript=function(t,o){var a=n.staticPath+t,i="script_"+t.replace(".","_"),r=e.getElementById(i);if(null===r)(r=e.createElement("script")).setAttribute("id",i),r.setAttribute("src",a),r.onload=o,r.onerror=function(){r.setAttribute("error","1")},e.body.appendChild(r);else if(r.hasAttribute("error"))console.log("callback not executed : script '"+a+"' not loaded.");else try{o.apply(r,[])}catch(t){console.log(t)}},n.on(".close","click",function(t){t.target||t.srcElement;this.parentNode.style.display="None"})}(window,document,window.searx),function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).AutoComplete=t()}}(function(){return function t(e,n,o){function a(r,s){if(!n[r]){if(!e[r]){var l="function"==typeof require&&require;if(!s&&l)return l(r,!0);if(i)return i(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[r]={exports:{}};e[r][0].call(c.exports,function(t){var n=e[r][1][t];return a(n||t)},c,c.exports,t,e,n,o)}return n[r].exports}for(var i="function"==typeof require&&require,r=0;r<o.length;r++)a(o[r]);return a}({1:[function(t,e,n){/*
+(function(e,t,n){"use strict";if(e.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function i(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}n=n||{};n.on=function(e,n,r,a){a=a||false;if(typeof e!=="string"){e.addEventListener(n,r,a)}else{t.addEventListener(n,function(n){var a=n.target||n.srcElement,o=false;while(a&&a.matches&&a!==t&&!(o=a.matches(e)))a=a.parentElement;if(o)i(r,a,n)},a)}};n.ready=function(t){if(document.readyState!="loading"){t.call(e)}else{e.addEventListener("DOMContentLoaded",t.bind(e))}};n.http=function(e,t,n){var i=new XMLHttpRequest,r=function(){},a=function(){},o={then:function(e){r=e;return o},catch:function(e){a=e;return o}};try{i.open(e,t,true);i.onload=function(){if(i.status==200){r(i.response,i.responseType)}else{a(Error(i.statusText))}};i.onerror=function(){a(Error("Network Error"))};i.onabort=function(){a(Error("Transaction is aborted"))};i.send()}catch(e){a(e)}return o};n.loadStyle=function(e){var i=n.staticPath+e,r="style_"+e.replace(".","_"),a=t.getElementById(r);if(a===null){a=t.createElement("link");a.setAttribute("id",r);a.setAttribute("rel","stylesheet");a.setAttribute("type","text/css");a.setAttribute("href",i);t.body.appendChild(a)}};n.loadScript=function(e,i){var r=n.staticPath+e,a="script_"+e.replace(".","_"),o=t.getElementById(a);if(o===null){o=t.createElement("script");o.setAttribute("id",a);o.setAttribute("src",r);o.onload=i;o.onerror=function(){o.setAttribute("error","1")};t.body.appendChild(o)}else if(!o.hasAttribute("error")){try{i.apply(o,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+r+"' not loaded.")}};n.insertBefore=function(e,t){element.parentNode.insertBefore(e,t)};n.insertAfter=function(e,t){t.parentNode.insertBefore(e,t.nextSibling)};n.on(".close","click",function(e){var t=e.target||e.srcElement;this.parentNode.classList.add("invisible")});return n})(window,document,window.searx);(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 e(t,n,i){function r(o,s){if(!n[o]){if(!t[o]){var l=typeof require=="function"&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return r(n?n:e)},c,c.exports,e,t,n,i)}return n[o].exports}var a=typeof require=="function"&&require;for(var o=0;o<i.length;o++)r(i[o]);return r}({1:[function(e,t,n){/*
* @license MIT
*
* Autocomplete.js v2.6.3
@@ -9,7 +9,7 @@
*
* (c) 2017, Baptiste Donaux
*/
-"use strict";var o;!function(t){t[t.AND=0]="AND",t[t.OR=1]="OR"}(o||(o={}));var a;!function(t){t[t.KEYDOWN=0]="KEYDOWN",t[t.KEYUP=1]="KEYUP"}(a||(a={}));var i=function(){function t(e,n){if(void 0===e&&(e={}),void 0===n&&(n="[data-autocomplete]"),Array.isArray(n))n.forEach(function(n){new t(e,n)});else{if("string"!=typeof n){var o=t.merge(t.defaults,e,{DOMResults:document.createElement("div")});return t.prototype.create(o,n),o}var a=document.querySelectorAll(n);Array.prototype.forEach.call(a,function(n){new t(e,n)})}}return t.prototype.create=function(e,n){if(e.Input=n,e.Input.nodeName.match(/^INPUT$/i)&&(!1===e.Input.hasAttribute("type")||e.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))){e.Input.setAttribute("autocomplete","off"),e._Position(e),e.Input.parentNode.appendChild(e.DOMResults),e.$Listeners={blur:e._Blur.bind(e),destroy:t.prototype.destroy.bind(null,e),focus:e._Focus.bind(e),keyup:t.prototype.event.bind(null,e,a.KEYUP),keydown:t.prototype.event.bind(null,e,a.KEYDOWN),position:e._Position.bind(e)};for(var o in e.$Listeners)e.Input.addEventListener(o,e.$Listeners[o])}},t.prototype.getEventsByType=function(t,e){var n={};for(var o in t.KeyboardMappings){var i=a.KEYUP;void 0!==t.KeyboardMappings[o].Event&&(i=t.KeyboardMappings[o].Event),i==e&&(n[o]=t.KeyboardMappings[o])}return n},t.prototype.event=function(e,n,a){for(var i in t.prototype.getEventsByType(e,n)){var r=t.merge({Operator:o.AND},e.KeyboardMappings[i]),s=o.AND==r.Operator;r.Conditions.forEach(function(e){(!0===s&&r.Operator==o.AND||!1===s&&r.Operator==o.OR)&&((e=t.merge({Not:!1},e)).hasOwnProperty("Is")?s=e.Is==a.keyCode?!e.Not:e.Not:e.hasOwnProperty("From")&&e.hasOwnProperty("To")&&(s=a.keyCode>=e.From&&a.keyCode<=e.To?!e.Not:e.Not))}),!0===s&&r.Callback.call(e,a)}},t.prototype.makeRequest=function(t,e){var n=Object.getOwnPropertyNames(t.HttpHeaders),o=new XMLHttpRequest,a=t._HttpMethod(),i=t._Url(),r=t._Pre(),s=encodeURIComponent(t._QueryArg())+"="+encodeURIComponent(r);a.match(/^GET$/i)&&(-1!==i.indexOf("?")?i+="&"+s:i+="?"+s),o.open(a,i,!0);for(var l=n.length-1;l>=0;l--)o.setRequestHeader(n[l],t.HttpHeaders[n[l]]);return o.onreadystatechange=function(){4==o.readyState&&200==o.status&&(t.$Cache[r]=o.response,e(o.response))},o},t.prototype.ajax=function(e,n,o){void 0===o&&(o=!0),e.$AjaxTimer&&window.clearTimeout(e.$AjaxTimer),!0===o?e.$AjaxTimer=window.setTimeout(t.prototype.ajax.bind(null,e,n,!1),e.Delay):(e.Request&&e.Request.abort(),e.Request=n,e.Request.send(e._QueryArg()+"="+e._Pre()))},t.prototype.cache=function(e,n){var o=e._Cache(e._Pre());if(void 0===o){var a=t.prototype.makeRequest(e,n);t.prototype.ajax(e,a)}else n(o)},t.prototype.destroy=function(t){for(var e in t.$Listeners)t.Input.removeEventListener(e,t.$Listeners[e]);t.DOMResults.parentNode.removeChild(t.DOMResults)},t}();i.merge=function(){for(var t,e={},n=0;n<arguments.length;n++)for(t in arguments[n])e[t]=arguments[n][t];return e},i.defaults={Delay:150,EmptyMessage:"No result here",Highlight:{getRegex:function(t){return new RegExp(t,"ig")},transform:function(t){return"<strong>"+t+"</strong>"}},HttpHeaders:{"Content-type":"application/x-www-form-urlencoded"},Limit:0,MinChars:0,HttpMethod:"GET",QueryArg:"q",Url:null,KeyboardMappings:{Enter:{Conditions:[{Is:13,Not:!1}],Callback:function(t){if(-1!=this.DOMResults.getAttribute("class").indexOf("open")){var e=this.DOMResults.querySelector("li.active");null!==e&&(t.preventDefault(),this._Select(e),this.DOMResults.setAttribute("class","autocomplete"))}},Operator:o.AND,Event:a.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:!1},{Is:40,Not:!1}],Callback:function(t){t.preventDefault()},Operator:o.OR,Event:a.KEYDOWN},KeyUpAndDown_up:{Conditions:[{Is:38,Not:!1},{Is:40,Not:!1}],Callback:function(t){t.preventDefault();var e=this.DOMResults.querySelector("li:first-child:not(.locked)"),n=this.DOMResults.querySelector("li:last-child:not(.locked)"),o=this.DOMResults.querySelector("li.active");if(o){var a=Array.prototype.indexOf.call(o.parentNode.children,o)+(t.keyCode-39),i=this.DOMResults.getElementsByTagName("li").length;a<0?a=i-1:a>=i&&(a=0),o.classList.remove("active"),o.parentElement.children.item(a).classList.add("active")}else n&&38==t.keyCode?n.classList.add("active"):e&&e.classList.add("active")},Operator:o.OR,Event:a.KEYUP},AlphaNum:{Conditions:[{Is:13,Not:!0},{From:35,To:40,Not:!0}],Callback:function(){var t=this.Input.getAttribute("data-autocomplete-old-value"),e=this._Pre();""!==e&&e.length>=this._MinChars()&&(t&&e==t||this.DOMResults.setAttribute("class","autocomplete open"),i.prototype.cache(this,function(t){this._Render(this._Post(t)),this._Open()}.bind(this)))},Operator:o.AND,Event:a.KEYUP}},DOMResults:null,Request:null,Input:null,_EmptyMessage:function(){return this.Input.hasAttribute("data-autocomplete-empty-message")?this.Input.getAttribute("data-autocomplete-empty-message"):!1!==this.EmptyMessage?this.EmptyMessage:""},_Limit:function(){var t=this.Input.getAttribute("data-autocomplete-limit");return isNaN(t)||null===t?this.Limit:parseInt(t,10)},_MinChars:function(){var t=this.Input.getAttribute("data-autocomplete-minchars");return isNaN(t)||null===t?this.MinChars:parseInt(t,10)},_Highlight:function(t){return t.replace(this.Highlight.getRegex(this._Pre()),this.Highlight.transform)},_HttpMethod:function(){return this.Input.hasAttribute("data-autocomplete-method")?this.Input.getAttribute("data-autocomplete-method"):this.HttpMethod},_QueryArg:function(){return this.Input.hasAttribute("data-autocomplete-param-name")?this.Input.getAttribute("data-autocomplete-param-name"):this.QueryArg},_Url:function(){return this.Input.hasAttribute("data-autocomplete")?this.Input.getAttribute("data-autocomplete"):this.Url},_Blur:function(t){if(!0===t)this.DOMResults.setAttribute("class","autocomplete"),this.Input.setAttribute("data-autocomplete-old-value",this.Input.value);else{var e=this;setTimeout(function(){e._Blur(!0)},150)}},_Cache:function(t){return this.$Cache[t]},_Focus:function(){var t=this.Input.getAttribute("data-autocomplete-old-value");(!t||this.Input.value!=t)&&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){"locked"!=e.getAttribute("class")&&(e.onclick=function(n){t._Select(e)},e.onmouseenter=function(){var n=t.DOMResults.querySelector("li.active");n!==e&&(null!==n&&n.classList.remove("active"),e.classList.add("active"))})})},_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(t){var e;e="string"==typeof t?this._RenderRaw(t):this._RenderResponseItems(t),this.DOMResults.hasChildNodes()&&this.DOMResults.removeChild(this.DOMResults.childNodes[0]),this.DOMResults.appendChild(e)},_RenderResponseItems:function(t){var e=document.createElement("ul"),n=document.createElement("li"),o=this._Limit();o<0?t=t.reverse():0===o&&(o=t.length);for(var a=0;a<Math.min(Math.abs(o),t.length);a++)n.innerHTML=t[a].Label,n.setAttribute("data-autocomplete-value",t[a].Value),e.appendChild(n),n=document.createElement("li");return e},_RenderRaw:function(t){var e=document.createElement("ul"),n=document.createElement("li");if(t.length>0)this.DOMResults.innerHTML=t;else{var o=this._EmptyMessage();""!==o&&(n.innerHTML=o,n.setAttribute("class","locked"),e.appendChild(n))}return e},_Post:function(t){try{var e=[],n=JSON.parse(t);if(0===Object.keys(n).length)return"";if(Array.isArray(n))for(var o=0;o<Object.keys(n).length;o++)e[e.length]={Value:n[o],Label:this._Highlight(n[o])};else for(var a in n)e.push({Value:a,Label:this._Highlight(n[a])});return e}catch(e){return t}},_Pre:function(){return this.Input.value},_Select:function(t){console.log("test test test"),t.hasAttribute("data-autocomplete-value")?this.Input.value=t.getAttribute("data-autocomplete-value"):this.Input.value=t.innerHTML,this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)},$AjaxTimer:null,$Cache:{},$Listeners:{}},e.exports=i},{}]},{},[1])(1)}),/**
+"use strict";var i;(function(e){e[e["AND"]=0]="AND";e[e["OR"]=1]="OR"})(i||(i={}));var r;(function(e){e[e["KEYDOWN"]=0]="KEYDOWN";e[e["KEYUP"]=1]="KEYUP"})(r||(r={}));var a=function(){function e(t,n){if(t===void 0){t={}}if(n===void 0){n="[data-autocomplete]"}if(Array.isArray(n)){n.forEach(function(n){new e(t,n)})}else if(typeof n=="string"){var i=document.querySelectorAll(n);Array.prototype.forEach.call(i,function(n){new e(t,n)})}else{var r=e.merge(e.defaults,t,{DOMResults:document.createElement("div")});e.prototype.create(r,n);return r}}e.prototype.create=function(t,n){t.Input=n;if(t.Input.nodeName.match(/^INPUT$/i)&&(t.Input.hasAttribute("type")===false||t.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))){t.Input.setAttribute("autocomplete","off");t._Position(t);t.Input.parentNode.appendChild(t.DOMResults);t.$Listeners={blur:t._Blur.bind(t),destroy:e.prototype.destroy.bind(null,t),focus:t._Focus.bind(t),keyup:e.prototype.event.bind(null,t,r.KEYUP),keydown:e.prototype.event.bind(null,t,r.KEYDOWN),position:t._Position.bind(t)};for(var i in t.$Listeners){t.Input.addEventListener(i,t.$Listeners[i])}}};e.prototype.getEventsByType=function(e,t){var n={};for(var i in e.KeyboardMappings){var a=r.KEYUP;if(e.KeyboardMappings[i].Event!==undefined){a=e.KeyboardMappings[i].Event}if(a==t){n[i]=e.KeyboardMappings[i]}}return n};e.prototype.event=function(t,n,r){var a=function(t){if(l===true&&s.Operator==i.AND||l===false&&s.Operator==i.OR){t=e.merge({Not:false},t);if(t.hasOwnProperty("Is")){if(t.Is==r.keyCode){l=!t.Not}else{l=t.Not}}else if(t.hasOwnProperty("From")&&t.hasOwnProperty("To")){if(r.keyCode>=t.From&&r.keyCode<=t.To){l=!t.Not}else{l=t.Not}}}};for(var o in e.prototype.getEventsByType(t,n)){var s=e.merge({Operator:i.AND},t.KeyboardMappings[o]),l=i.AND==s.Operator;s.Conditions.forEach(a);if(l===true){s.Callback.call(t,r)}}};e.prototype.makeRequest=function(e,t){var n=Object.getOwnPropertyNames(e.HttpHeaders),i=new XMLHttpRequest,r=e._HttpMethod(),a=e._Url(),o=e._Pre(),s=encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(o);if(r.match(/^GET$/i)){if(a.indexOf("?")!==-1){a+="&"+s}else{a+="?"+s}}i.open(r,a,true);for(var l=n.length-1;l>=0;l--){i.setRequestHeader(n[l],e.HttpHeaders[n[l]])}i.onreadystatechange=function(){if(i.readyState==4&&i.status==200){e.$Cache[o]=i.response;t(i.response)}};return i};e.prototype.ajax=function(t,n,i){if(i===void 0){i=true}if(t.$AjaxTimer){window.clearTimeout(t.$AjaxTimer)}if(i===true){t.$AjaxTimer=window.setTimeout(e.prototype.ajax.bind(null,t,n,false),t.Delay)}else{if(t.Request){t.Request.abort()}t.Request=n;t.Request.send(t._QueryArg()+"="+t._Pre())}};e.prototype.cache=function(t,n){var i=t._Cache(t._Pre());if(i===undefined){var r=e.prototype.makeRequest(t,n);e.prototype.ajax(t,r)}else{n(i)}};e.prototype.destroy=function(e){for(var t in e.$Listeners){e.Input.removeEventListener(t,e.$Listeners[t])}e.DOMResults.parentNode.removeChild(e.DOMResults)};return e}();a.merge=function(){var e={},t;for(var n=0;n<arguments.length;n++){for(t in arguments[n]){e[t]=arguments[n][t]}}return e};a.defaults={Delay:150,EmptyMessage:"No result here",Highlight:{getRegex:function(e){return new RegExp(e,"ig")},transform:function(e){return"<strong>"+e+"</strong>"}},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:i.AND,Event:r.KEYDOWN},KeyUpAndDown_down:{Conditions:[{Is:38,Not:false},{Is:40,Not:false}],Callback:function(e){e.preventDefault()},Operator:i.OR,Event:r.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)"),i=this.DOMResults.querySelector("li.active");if(i){var r=Array.prototype.indexOf.call(i.parentNode.children,i),a=r+(e.keyCode-39),o=this.DOMResults.getElementsByTagName("li").length;if(a<0){a=o-1}else if(a>=o){a=0}i.classList.remove("active");i.parentElement.children.item(a).classList.add("active")}else if(n&&e.keyCode==38){n.classList.add("active")}else if(t){t.classList.add("active")}},Operator:i.OR,Event:r.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))}},Operator:i.AND,Event:r.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===true){this.DOMResults.setAttribute("class","autocomplete");this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)}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 e=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(t){if(t.getAttribute("class")!="locked"){t.onclick=function(n){e._Select(t)};t.onmouseenter=function(){var n=e.DOMResults.querySelector("li.active");if(n!==t){if(n!==null){n.classList.remove("active")}t.classList.add("active")}}}})},_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"),i=this._Limit();if(i<0){e=e.reverse()}else if(i===0){i=e.length}for(var r=0;r<Math.min(Math.abs(i),e.length);r++){n.innerHTML=e[r].Label;n.setAttribute("data-autocomplete-value",e[r].Value);t.appendChild(n);n=document.createElement("li")}return t},_RenderRaw:function(e){var t=document.createElement("ul"),n=document.createElement("li");if(e.length>0){this.DOMResults.innerHTML=e}else{var i=this._EmptyMessage();if(i!==""){n.innerHTML=i;n.setAttribute("class","locked");t.appendChild(n)}}return t},_Post:function(e){try{var t=[];var n=JSON.parse(e);if(Object.keys(n).length===0){return""}if(Array.isArray(n)){for(var i=0;i<Object.keys(n).length;i++){t[t.length]={Value:n[i],Label:this._Highlight(n[i])}}}else{for(var r in n){t.push({Value:r,Label:this._Highlight(n[r])})}}return t}catch(t){return e}},_Pre:function(){return this.Input.value},_Select:function(e){console.log("test test test");if(e.hasAttribute("data-autocomplete-value")){this.Input.value=e.getAttribute("data-autocomplete-value")}else{this.Input.value=e.innerHTML}this.Input.setAttribute("data-autocomplete-old-value",this.Input.value)},$AjaxTimer:null,$Cache:{},$Listeners:{}};t.exports=a},{}]},{},[1])(1)});/**
*
* Google Image Layout v0.0.1
* Description, by Anh Trinh.
@@ -19,5 +19,5 @@
* @license Free to use under the MIT License.
*
*/
-function(t,e){"use strict";function n(t,e,n,o){this.container_selector=t,this.results_selector=e,this.img_selector=n,this.margin=10,this.maxHeight=o,this._alignAllDone=!0}n.prototype._getHeigth=function(t,e){var n,o=0;e-=t.length*this.margin;for(var a=0;a<t.length;a++)(n=t[a]).naturalWidth>0&&n.naturalHeight>0?o+=n.naturalWidth/n.naturalHeight:o+=1;return e/o},n.prototype._setSize=function(t,e){for(var n,o,a=t.length,i=0;i<a;i++)o=(n=t[i]).naturalWidth>0&&n.naturalHeight>0?e*n.naturalWidth/n.naturalHeight:e,n.style.width=o+"px",n.style.height=e+"px",n.style.marginLeft="3px",n.style.marginTop="3px",n.style.marginRight=this.margin-7+"px",n.style.marginBottom=this.margin-7+"px"},n.prototype._alignImgs=function(t){var n,o,a=e.querySelector(this.container_selector).clientWidth;t:for(;t.length>0;){for(var i=1;i<=t.length;i++)if(n=t.slice(0,i),(o=this._getHeigth(n,a))<this.maxHeight){this._setSize(n,o),t=t.slice(i);continue t}this._setSize(n,Math.min(this.maxHeight,o));break}},n.prototype.align=function(t){for(var n=e.querySelectorAll(this.results_selector),o=n.length,a=null,i=null,r=[],s=0;s<o;s++)(i=n[s]).previousElementSibling!==a&&r.length>0&&(this._alignImgs(r),r=[]),r.push(i.querySelector(this.img_selector)),a=i;r.length>0&&this._alignImgs(r)},n.prototype.watch=function(){function n(t){i._alignAllDone&&(i._alignAllDone=!1,setTimeout(function(){i.align(),i._alignAllDone=!0},100))}var o,a,i=this,r=e.querySelectorAll(this.results_selector),s=r.length;for(t.addEventListener("resize",n),t.addEventListener("pageshow",function(t){i.align()}),o=0;o<s;o++)void 0!==(a=r[o].querySelector(this.img_selector))&&(a.addEventListener("load",n),a.addEventListener("error",n))},t.searx.ImageLayout=n}(window,document),searx.ready(function(){function t(t){return function(e){var o=document.querySelector(".result[data-vim-selected]"),a=t;if(null===o){if(null===(o=document.querySelector(".result")))return;"down"!==t&&"up"!==t||(a=o)}var i,r=document.querySelectorAll(".result");if("string"!=typeof a)i=a;else switch(a){case"visible":for(var s=document.documentElement.scrollTop||document.body.scrollTop,l=s+document.documentElement.clientHeight,u=0;u<r.length;u++){var c=(i=r[u]).offsetTop;if(c+i.clientHeight<=l&&c>s)break}break;case"down":null===(i=o.nextElementSibling)&&(i=r[0]);break;case"up":null===(i=o.previousElementSibling)&&(i=r[r.length-1]);break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}if(i){o.removeAttribute("data-vim-selected"),i.setAttribute("data-vim-selected","true");var d=i.querySelector("h3 a")||i.querySelector("a");null!==d&&d.focus(),e||n()}}}function e(t){return function(){var e=$('div#pagination button[type="submit"]');2===e.length?t>=0&&t<e.length?e[t].click():console.log("pageButtonClick(): invalid argument"):console.log("page navigation with this theme is not supported")}}function n(){var t=document.querySelector(".result[data-vim-selected]");if(null!==t){var e=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,o=t.offsetTop,a=o+t.clientHeight;null===t.previousElementSibling&&a<n?window.scroll(window.scrollX,0):e>o-120?window.scroll(window.scrollX,o-120):e+n<a+120&&window.scroll(window.scrollX,a-n+120)}}function o(e){return function(){window.scrollBy(0,e),t("visible")()}}function a(e,n){return function(){window.scrollTo(0,e),t(n)()}}function i(t){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(null!==e){var n=e.getAttribute("href");t?window.open(n):window.location.href=n}}}searx.on(".result","click",function(){t(this)(!0)}),searx.on(".result a","focus",function(e){for(var n=e.target;void 0!==n;){if(n.classList.contains("result")){null===n.getAttribute("data-vim-selected")&&t(n)(!0);break}n=n.parentNode}},!0);var r={27:{key:"Escape",fun:function(){document.activeElement&&document.activeElement.blur()},des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:function(){window.scrollTo(0,0),document.querySelector("#q").focus()},des:"focus on the search input",cat:"Control"},66:{key:"b",fun:o(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:o(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:o(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:o(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:a(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:a(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:t("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:t("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:e(0),des:"go to previous page",cat:"Results"},78:{key:"n",fun:e(1),des:"go to next page",cat:"Results"},79:{key:"o",fun:i(!1),des:"open search result",cat:"Results"},84:{key:"t",fun:i(!0),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:function(){document.location.reload(!0)},des:"reload page from the server",cat:"Control"},72:{key:"h",fun:function(){var t=document.querySelector("#vim-hotkeys-help");if(t.length)t.classList.toggle("hidden");else{var e={};for(var n in r){var o=r[n];e[o.cat]=e[o.cat]||[],e[o.cat].push(o)}var a=Object.keys(e).sort(function(t,n){return e[n].length-e[t].length});if(0!==a.length){var i='<div id="vim-hotkeys-help" class="well vim-hotkeys-help">';i+='<div class="container-fluid">',i+='<div class="row">',i+='<div class="col-sm-12">',i+="<h3>How to navigate searx with Vim-like hotkeys</h3>",i+="</div>",i+="</div>";for(var s=0;s<a.length;s++){var l=e[a[s]],u=s===a.length-1,c=s%2==0;c&&(i+='<div class="row dflex">'),i+='<div class="col-sm-'+(c&&u?12:6)+' dflex">',i+='<div class="panel panel-default iflex">',i+='<div class="panel-heading">'+l[0].cat+"</div>",i+='<div class="panel-body">',i+='<ul class="list-unstyled">';for(var d in l)i+="<li><kbd>"+l[d].key+"</kbd> "+l[d].des+"</li>";i+="</ul>",i+="</div>",i+="</div>",i+="</div>",c&&!u||(i+="</div>")}i+="</div>",i+="</div>",$("body").append(i)}}},des:"toggle help window",cat:"Other"}};searx.on(document,"keyup",function(t){if(r.hasOwnProperty(t.keyCode)&&!t.ctrlKey&&!t.altKey&&!t.shiftKey&&!t.metaKey){var e=t.target.tagName.toLowerCase();27===t.keyCode?"input"!==e&&"select"!==e&&"textarea"!==e||r[t.keyCode].fun():t.target!==document.body&&"a"!==e&&"button"!==e||r[t.keyCode].fun()}})}),function(t,e,n){"use strict";n.ready(function(){n.on(".searx_overpass_request","click",function(t){this.classList.remove("searx_overpass_request");var o="https://overpass-api.de/api/interpreter?data=[out:json][timeout:25];(",a=this.dataset.osmId,i=this.dataset.osmType,r=e.querySelector("#"+this.dataset.resultTable),s=e.querySelector("#"+this.dataset.resultTableLoadicon),l=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(a&&i&&r){var u=null;switch(i){case"node":u=o+"node("+a+"););out meta;";break;case"way":u=o+"way("+a+"););out meta;";break;case"relation":u=o+"relation("+a+"););out meta;"}u&&n.http("GET",u).then(function(t,e){if((t=JSON.parse(t))&&t.elements&&t.elements[0]){var n=t.elements[0],o="";for(var a in n.tags)if(null===n.tags.name||-1==l.indexOf(a)){switch(o+="<tr><td>"+a+"</td><td>",a){case"phone":case"fax":o+='<a href="tel:'+n.tags[a].replace(/ /g,"")+'">'+n.tags[a]+"</a>";break;case"email":o+='<a href="mailto:'+n.tags[a]+'">'+n.tags[a]+"</a>";break;case"website":case"url":o+='<a href="'+n.tags[a]+'">'+n.tags[a]+"</a>";break;case"wikidata":o+='<a href="https://www.wikidata.org/wiki/'+n.tags[a]+'">'+n.tags[a]+"</a>";break;case"wikipedia":if(-1!=n.tags[a].indexOf(":")){o+='<a href="https://'+n.tags[a].substring(0,n.tags[a].indexOf(":"))+".wikipedia.org/wiki/"+n.tags[a].substring(n.tags[a].indexOf(":")+1)+'">'+n.tags[a]+"</a>";break}default:o+=n.tags[a]}o+="</td></tr>"}s.classList.add("invisible"),r.classList.remove("invisible"),r.querySelector("tbody").innerHTML=o}}).catch(function(){s.innerHTML=s.innerHTML+'<p class="text-muted">could not load data!</p>'})}t.preventDefault()}),n.on(".searx_init_map","click",function(t){this.classList.remove("searx_init_map");var e=this.dataset.leafletTarget,o=parseFloat(this.dataset.mapLon),a=parseFloat(this.dataset.mapLat),i=parseFloat(this.dataset.mapZoom),r=JSON.parse(this.dataset.mapBoundingbox),s=JSON.parse(this.dataset.mapGeojson);n.loadStyle("leaflet/leaflet.css"),n.loadScript("leaflet/leaflet.js",function(){var t=null;if(r){var n=L.latLng(r[0],r[2]),l=L.latLng(r[1],r[3]);t=L.latLngBounds(n,l)}var u=L.map(e),c=new L.TileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{minZoom:1,maxZoom:19,attribution:'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'});new L.TileLayer("https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",{minZoom:1,maxZoom:19,attribution:'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'});t?setTimeout(function(){u.fitBounds(t,{maxZoom:17})},0):o&&a&&(i?u.setView(new L.latLng(a,o),i):u.setView(new L.latLng(a,o),8)),u.addLayer(c);var d={"OSM Mapnik":c};L.control.layers(d).addTo(u),s&&L.geoJson(s).addTo(u)}),t.preventDefault()})})}(window,document,window.searx),function(t,e,n){"use strict";n.ready(function(){n.image_thumbnail_layout=new n.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",200),n.image_thumbnail_layout.watch(),n.on(".btn-collapse","click",function(t){var n=this.getAttribute("data-btn-text-collapsed"),o=this.getAttribute("data-btn-text-not-collapsed"),a=this.getAttribute("data-target"),i=e.querySelector(a),r=this.innerHTML;r=this.classList.contains("collapsed")?r.replace(n,o):r.replace(o,n),this.innerHTML=r,this.classList.toggle("collapsed"),i.classList.toggle("invisible")}),n.on(".media-loader","click",function(t){var n=this.getAttribute("data-target"),o=e.querySelector(n+" > iframe"),a=o.getAttribute("src");null!==a&&void 0!==a&&!1!==a||o.setAttribute("src",o.getAttribute("data-src"))}),t.addEventListener("scroll",function(){var t=e.getElementById("backToTop"),n=document.documentElement.scrollTop||document.body.scrollTop;null!==t&&(t.style.opacity=n>=200?1:0)})})}(window,document,window.searx),function(t,e,n){"use strict";function o(t){if(t.setSelectionRange){var e=t.value.length;t.setSelectionRange(e,e)}}function a(){if(i.value.length>0){var t=document.getElementById("search");setTimeout(t.submit.bind(t),0)}}var i,r=!0;n.ready(function(){null!==(i=e.getElementById("q"))&&(n.autocompleter&&(n.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:n.noItemFound,HttpMethod:n.method,MinChars:4,Delay:300},"#q"),t.addEventListener("resize",function(){var t=new CustomEvent("position");i.dispatchEvent(t)})),i.addEventListener("focus",function(t){r&&(o(i),r=!1)},!1),i.focus()),null!==i&&n.search_on_category_select&&(e.querySelector(".help").className="invisible",n.on("#categories input","change",function(t){var n,o=e.querySelectorAll('#categories input[type="checkbox"]');for(n=0;n<o.length;n++)o[n]!==this&&o[n].checked&&o[n].click();return this.checked||this.click(),a(),!1}),n.on(e.getElementById("time_range"),"change",a),n.on(e.getElementById("language"),"change",a))})}(window,document,window.searx);
+(function(e,t){"use strict";function n(e,t,n,i){this.container_selector=e;this.results_selector=t;this.img_selector=n;this.margin=10;this.maxHeight=i;this._alignAllDone=true}n.prototype._getHeigth=function(e,t){var n=0,i;t-=e.length*this.margin;for(var r=0;r<e.length;r++){i=e[r];if(i.naturalWidth>0&&i.naturalHeight>0){n+=i.naturalWidth/i.naturalHeight}else{n+=1}}return t/n};n.prototype._setSize=function(e,t){var n,i,r=e.length;for(var a=0;a<r;a++){n=e[a];if(n.naturalWidth>0&&n.naturalHeight>0){i=t*n.naturalWidth/n.naturalHeight}else{i=t}n.style.width=i+"px";n.style.height=t+"px";n.style.marginLeft="3px";n.style.marginTop="3px";n.style.marginRight=this.margin-7+"px";n.style.marginBottom=this.margin-7+"px"}};n.prototype._alignImgs=function(e){var n,i,r=t.querySelector(this.container_selector).clientWidth;e:while(e.length>0){for(var a=1;a<=e.length;a++){n=e.slice(0,a);i=this._getHeigth(n,r);if(i<this.maxHeight){this._setSize(n,i);e=e.slice(a);continue e}}this._setSize(n,Math.min(this.maxHeight,i));break}};n.prototype.align=function(e){var n=t.querySelectorAll(this.results_selector),i=n.length,r=null,a=null,o=[];for(var s=0;s<i;s++){a=n[s];if(a.previousElementSibling!==r&&o.length>0){this._alignImgs(o);o=[]}o.push(a.querySelector(this.img_selector));r=a}if(o.length>0){this._alignImgs(o)}};n.prototype.watch=function(){var n,i,r,a,o=this,s=t.querySelectorAll(this.results_selector),l=s.length;function u(e){o.align()}function c(e){if(o._alignAllDone){o._alignAllDone=false;setTimeout(function(){o.align();o._alignAllDone=true},100)}}e.addEventListener("resize",c);e.addEventListener("pageshow",u);for(n=0;n<l;n++){i=s[n].querySelector(this.img_selector);if(typeof i!=="undefined"){i.addEventListener("load",c);i.addEventListener("error",c)}}};e.searx.ImageLayout=n})(window,document);searx.ready(function(){searx.on(".result","click",function(){t(this)(true)});searx.on(".result a","focus",function(e){var n=e.target;while(n!==undefined){if(n.classList.contains("result")){if(n.getAttribute("data-vim-selected")===null){t(n)(true)}break}n=n.parentNode}},true);var e={27:{key:"Escape",fun:i,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:l,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:o(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:o(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:o(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:o(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:s(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:s(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:t("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:t("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:r(0),des:"go to previous page",cat:"Results"},78:{key:"n",fun:r(1),des:"go to next page",cat:"Results"},79:{key:"o",fun:u(false),des:"open search result",cat:"Results"},84:{key:"t",fun:u(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:n,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:d,des:"toggle help window",cat:"Other"}};searx.on(document,"keydown",function(t){if(e.hasOwnProperty(t.keyCode)&&!t.ctrlKey&&!t.altKey&&!t.shiftKey&&!t.metaKey){var n=t.target.tagName.toLowerCase();if(t.keyCode===27){if(n==="input"||n==="select"||n==="textarea"){e[t.keyCode].fun()}}else{if(t.target===document.body||n==="a"||n==="button"){t.preventDefault();e[t.keyCode].fun()}}}});function t(e){return function(t){var n=document.querySelector(".result[data-vim-selected]"),i=e;if(n===null){n=document.querySelector(".result");if(n===null){return}if(e==="down"||e==="up"){i=n}}var r,o=document.querySelectorAll(".result");if(typeof i!=="string"){r=i}else{switch(i){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var l=s+document.documentElement.clientHeight;for(var u=0;u<o.length;u++){r=o[u];var c=r.offsetTop;var d=c+r.clientHeight;if(d<=l&&c>s){break}}break;case"down":r=n.nextElementSibling;if(r===null){r=o[0]}break;case"up":r=n.previousElementSibling;if(r===null){r=o[o.length-1]}break;case"bottom":r=o[o.length-1];break;case"top":default:r=o[0]}}if(r){n.removeAttribute("data-vim-selected");r.setAttribute("data-vim-selected","true");var f=r.querySelector("h3 a")||r.querySelector("a");if(f!==null){f.focus()}if(!t){a()}}}}function n(){document.location.reload(true)}function i(){if(document.activeElement){document.activeElement.blur()}}function r(e){return function(){var t=$('div#pagination button[type="submit"]');if(t.length!==2){console.log("page navigation with this theme is not supported");return}if(e>=0&&e<t.length){t[e].click()}else{console.log("pageButtonClick(): invalid argument")}}}function a(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,a=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-a){window.scroll(window.scrollX,i-a)}else{var o=t+n;if(o<r+a){window.scroll(window.scrollX,r-n+a)}}}function o(e){return function(){window.scrollBy(0,e);t("visible")()}}function s(e,n){return function(){window.scrollTo(0,e);t(n)()}}function l(){window.scrollTo(0,0);document.querySelector("#q").focus()}function u(e){return function(){var t=document.querySelector(".result[data-vim-selected] h3 a");if(t!==null){var n=t.getAttribute("href");if(e){window.open(n)}else{window.location.href=n}}}}function c(t){var n={};for(var i in e){var r=e[i];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var a=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(a.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var s=0;s<a.length;s++){var l=n[a[s]];var u=s===a.length-1;var c=s%2===0;if(c){o+="<tr>"}o+="<td>";o+="<h4>"+l[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var d in l){o+="<li><kbd>"+l[d].key+"</kbd> "+l[d].des+"</li>"}o+="</ul>";o+="</td>";if(!c||u){o+="</tr>"}}o+="</table>";t.innerHTML=o}function d(){var e=document.querySelector("#vim-hotkeys-help");console.log(e);if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";e.style="width: 40%";c(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}});(function(e,t,n){"use strict";n.ready(function(){n.on(".searx_overpass_request","click",function(e){this.classList.remove("searx_overpass_request");var i="https://overpass-api.de/api/interpreter?data=";var r=i+"[out:json][timeout:25];(";var a=");out meta;";var o=this.dataset.osmId;var s=this.dataset.osmType;var l=t.querySelector("#"+this.dataset.resultTable);var u=t.querySelector("#"+this.dataset.resultTableLoadicon);var c=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(o&&s&&l){var d=null;switch(s){case"node":d=r+"node("+o+");"+a;break;case"way":d=r+"way("+o+");"+a;break;case"relation":d=r+"relation("+o+");"+a;break;default:break}if(d){n.http("GET",d).then(function(e,t){e=JSON.parse(e);if(e&&e.elements&&e.elements[0]){var n=e.elements[0];var i="";for(var r in n.tags){if(n.tags.name===null||c.indexOf(r)==-1){i+="<tr><td>"+r+"</td><td>";switch(r){case"phone":case"fax":i+='<a href="tel:'+n.tags[r].replace(/ /g,"")+'">'+n.tags[r]+"</a>";break;case"email":i+='<a href="mailto:'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"website":case"url":i+='<a href="'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"wikidata":i+='<a href="https://www.wikidata.org/wiki/'+n.tags[r]+'">'+n.tags[r]+"</a>";break;case"wikipedia":if(n.tags[r].indexOf(":")!=-1){i+='<a href="https://'+n.tags[r].substring(0,n.tags[r].indexOf(":"))+".wikipedia.org/wiki/"+n.tags[r].substring(n.tags[r].indexOf(":")+1)+'">'+n.tags[r]+"</a>";break}default:i+=n.tags[r];break}i+="</td></tr>"}}u.parentNode.removeChild(u);l.classList.remove("invisible");l.querySelector("tbody").innerHTML=i}}).catch(function(){u.classList.remove("invisible");u.innerHTML="could not load data!"})}}e.preventDefault()});n.on(".searx_init_map","click",function(e){this.classList.remove("searx_init_map");var t=this.dataset.leafletTarget;var i=parseFloat(this.dataset.mapLon);var r=parseFloat(this.dataset.mapLat);var a=parseFloat(this.dataset.mapZoom);var o=JSON.parse(this.dataset.mapBoundingbox);var s=JSON.parse(this.dataset.mapGeojson);n.loadStyle("leaflet/leaflet.css");n.loadScript("leaflet/leaflet.js",function(){var e=null;if(o){var n=L.latLng(o[0],o[2]);var l=L.latLng(o[1],o[3]);e=L.latLngBounds(n,l)}var u=L.map(t);var c="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var d='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var f=new L.TileLayer(c,{minZoom:1,maxZoom:19,attribution:d});var p="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var h='Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var m=new L.TileLayer(p,{minZoom:1,maxZoom:19,attribution:h});if(e){setTimeout(function(){u.fitBounds(e,{maxZoom:17})},0)}else if(i&&r){if(a){u.setView(new L.latLng(r,i),a)}else{u.setView(new L.latLng(r,i),8)}}u.addLayer(f);var g={"OSM Mapnik":f};L.control.layers(g).addTo(u);if(s){L.geoJson(s).addTo(u)}});e.preventDefault()})})})(window,document,window.searx);(function(e,t,n){"use strict";n.ready(function(){n.image_thumbnail_layout=new n.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",200);n.image_thumbnail_layout.watch();n.on(".btn-collapse","click",function(e){var n=this.getAttribute("data-btn-text-collapsed");var i=this.getAttribute("data-btn-text-not-collapsed");var r=this.getAttribute("data-target");var a=t.querySelector(r);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(n,i)}else{o=o.replace(i,n)}this.innerHTML=o;this.classList.toggle("collapsed");a.classList.toggle("invisible")});n.on(".media-loader","click",function(e){var n=this.getAttribute("data-target");var i=t.querySelector(n+" > iframe");var r=i.getAttribute("src");if(r===null||r===undefined||r===false){i.setAttribute("src",i.getAttribute("data-src"))}});e.addEventListener("scroll",function(){var e=t.getElementById("backToTop"),n=document.documentElement.scrollTop||document.body.scrollTop;if(e!==null){if(n>=200){e.style.opacity=1}else{e.style.opacity=0}}})})})(window,document,window.searx);(function(e,t,n){"use strict";var i=true,r="q",a;function o(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function s(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function l(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}n.ready(function(){a=t.getElementById(r);function u(e){if(i){o(a);i=false}else{}}if(a!==null){l(a);if(n.autocompleter){n.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:n.noItemFound,HttpMethod:n.method,MinChars:4,Delay:300},"#"+r);e.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",u,false);a.focus()}if(a!==null&&n.search_on_category_select){t.querySelector(".help").className="invisible";n.on("#categories input","change",function(e){var n,i=t.querySelectorAll('#categories input[type="checkbox"]');for(n=0;n<i.length;n++){if(i[n]!==this&&i[n].checked){i[n].click()}}if(!this.checked){this.click()}s();return false});n.on(t.getElementById("time_range"),"change",s);n.on(t.getElementById("language"),"change",s)}})})(window,document,window.searx);
//# sourceMappingURL=searx.min.js.map
\ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.min.js.map b/searx/static/themes/simple/js/searx.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["searx.js"],"names":["w","d","searx","callbackSafe","callback","el","e","call","exception","console","log","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","staticPath","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","style","display","window","f","exports","module","define","amd","global","self","AutoComplete","t","n","r","o","u","a","require","code","l","length","1","ConditionOperator","EventType","params","Array","isArray","forEach","specificParams","merge","defaults","DOMResults","create","elements","input","element","Input","nodeName","match","getAttribute","_Position","$Listeners","blur","_Blur","destroy","focus","_Focus","keyup","event","KEYUP","keydown","KEYDOWN","position","getEventsByType","type","mappings","key","KeyboardMappings","undefined","Event","name","mapping","Operator","AND","Conditions","condition","OR","Not","hasOwnProperty","Is","keyCode","From","To","Callback","makeRequest","propertyHttpHeaders","Object","getOwnPropertyNames","HttpHeaders","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","setTimeout","Delay","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","EmptyMessage","Highlight","getRegex","value","RegExp","transform","Content-type","Limit","MinChars","HttpMethod","QueryArg","Url","Enter","liActive","querySelector","preventDefault","_Select","KeyUpAndDown_down","KeyUpAndDown_up","first","last","active","children","lisCount","getElementsByTagName","classList","remove","item","add","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_EmptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","li","onclick","onmouseenter","offsetTop","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","innerHTML","Label","Value","emptyMessage","returnResponse","json","JSON","parse","keys","push","ImageLayout","container_selector","results_selector","img_selector","maxHeight","margin","_alignAllDone","_getHeigth","images","width","img","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","slice","h","containerWidth","align","results_selectorNode","results_length","previous","current","previousElementSibling","watch","throttleAlign","results_nodes","highlightResult","which","noScroll","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","etop","nextElementSibling","removeAttribute","link","scrollPageToSelected","pageButtonClick","num","buttons","$","click","sel","wtop","wheight","ebot","scroll","scrollX","scrollPage","amount","scrollBy","scrollPageTo","nav","scrollTo","openResult","newTab","location","href","contains","vimKeys","27","fun","activeElement","des","cat","73","66","innerHeight","70","85","68","71","scrollHeight","86","75","74","80","78","79","84","82","reload","72","helpPanel","toggle","categories","k","sorted","sort","b","html","lastCategory","cj","append","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","query_start","overpass_url","osm_id","dataset","osmId","osm_type","osmType","result_table","resultTable","result_table_loadicon","resultTableLoadicon","osm_ignore_tags","query","contentType","newHtml","row","tags","substring","leaflet_target","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnik","TileLayer","minZoom","maxZoom","attribution","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","control","layers","addTo","geoJson","image_thumbnail_layout","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","opacity","placeCursorAtEnd","setSelectionRange","len","submitIfQuery","qinput","search","submit","firstFocus","autocompleter","autocomplete","noItemFound","CustomEvent","dispatchEvent","search_on_category_select","className","checked"],"mappings":";;CAiBA,SAAUA,EAAGC,EAAGC,GAEd,aAoBA,SAASC,EAAaC,EAAUC,EAAIC,GAClC,IACEF,EAASG,KAAKF,EAAIC,GAClB,MAAOE,GACPC,QAAQC,IAAIF,IAlBZR,EAAEW,SACJ,SAAUC,GACRA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,uBACjBH,EAAiBI,mBACjB,SAASC,GAEP,IADA,IAAIC,EAAOC,KAAMC,GAASF,EAAKG,YAAcH,EAAKI,UAAUC,iBAAiBN,GAAWO,GAAK,EACtFJ,IAAQI,IAAMJ,EAAMI,IAAMN,IACjC,QAASE,EAAMI,IARnB,CAUGb,QAAQc,WAWbvB,EAAQA,MAERA,EAAMwB,GAAK,SAASC,EAAKC,EAAWxB,EAAUyB,GAC5CA,EAAaA,IAAc,EACR,iBAARF,EAETA,EAAIG,iBAAiBF,EAAWxB,EAAUyB,GAG1C5B,EAAE6B,iBAAiBF,EAAW,SAAStB,GAErC,IADA,IAAID,EAAKC,EAAEyB,QAAUzB,EAAE0B,WAAYC,GAAQ,EACpC5B,GAAMA,EAAGQ,SAAWR,IAAOJ,KAAOgC,EAAQ5B,EAAGQ,QAAQc,KAAOtB,EAAKA,EAAG6B,cACvED,GAAO9B,EAAaC,EAAUC,EAAIC,IACrCuB,IAIP3B,EAAMiC,MAAQ,SAAS/B,GACM,WAAvBkB,SAASc,WACXhC,EAASG,KAAKP,GAEdA,EAAE8B,iBAAiB,mBAAoB1B,EAASiC,KAAKrC,KAIzDE,EAAMoC,KAAO,SAASC,EAAQC,EAAKpC,GACjC,IAAIqC,EAAM,IAAIC,eACdC,EAAU,aACVC,EAAS,aACTC,GACEC,KAAM,SAAS1C,GAAgC,OAApBuC,EAAUvC,EAAiByC,GACtDE,MAAO,SAAS3C,GAA+B,OAAnBwC,EAASxC,EAAiByC,IAGxD,IACEJ,EAAIO,KAAKT,EAAQC,GAAK,GAGtBC,EAAIQ,OAAS,WACO,KAAdR,EAAIS,OACNP,EAAQF,EAAIU,SAAUV,EAAIW,cAE1BR,EAAOS,MAAMZ,EAAIa,cAKrBb,EAAIc,QAAU,WACZX,EAAOS,MAAM,mBAGfZ,EAAIe,QAAU,WACZZ,EAAOS,MAAM,4BAIfZ,EAAIgB,OACJ,MAAOC,GACPd,EAAOc,GAGT,OAAOb,GAGT3C,EAAMyD,UAAY,SAASC,GACzB,IAAIC,EAAO3D,EAAM4D,WAAaF,EAC9BG,EAAK,SAAWH,EAAII,QAAQ,IAAK,KACjCC,EAAIhE,EAAEiE,eAAeH,GACX,OAANE,KACFA,EAAIhE,EAAEkE,cAAc,SAClBC,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAO,cACtBH,EAAEG,aAAa,OAAQ,YACvBH,EAAEG,aAAa,OAAQP,GACvB5D,EAAEoE,KAAKC,YAAYL,KAIvB/D,EAAMqE,WAAa,SAASX,EAAKxD,GAC/B,IAAIyD,EAAO3D,EAAM4D,WAAaF,EAC9BG,EAAK,UAAYH,EAAII,QAAQ,IAAK,KAClCC,EAAIhE,EAAEiE,eAAeH,GACrB,GAAU,OAANE,GACFA,EAAIhE,EAAEkE,cAAc,WAClBC,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAOP,GACtBI,EAAEhB,OAAS7C,EACX6D,EAAEV,QAAU,WACVU,EAAEG,aAAa,QAAS,MAE1BnE,EAAEoE,KAAKC,YAAYL,QACd,GAAKA,EAAEO,aAAa,SAOzB/D,QAAQC,IAAI,mCAAqCmD,EAAO,sBANxD,IACEzD,EAASqE,MAAMR,MACf,MAAOzD,GACPC,QAAQC,IAAIF,KAOlBN,EAAMwB,GAAG,SAAU,QAAS,SAASpB,GAC1BA,EAAEyB,QAAUzB,EAAE0B,WACvBb,KAAKE,WAAWqD,MAAMC,QAAQ,SAtIlC,CAyIGC,OAAQtD,SAAUsD,OAAO1E,OAC3B,SAAU2E,GAAG,GAAoB,iBAAVC,SAAoC,oBAATC,OAAsBA,OAAOD,QAAQD,SAAS,GAAmB,mBAATG,QAAqBA,OAAOC,IAAKD,UAAUH,OAAO,EAA0B,oBAATD,OAAwBA,OAA+B,oBAATM,OAAwBA,OAA6B,oBAAPC,KAAsBA,KAAYhE,MAAOiE,aAAeP,KAAjU,CAAwU,WAAqC,OAAO,SAAUvE,EAAE+E,EAAEC,EAAEC,GAAG,SAAStB,EAAEuB,EAAEC,GAAG,IAAIH,EAAEE,GAAG,CAAC,IAAIH,EAAEG,GAAG,CAAC,IAAIE,EAAkB,mBAATC,SAAqBA,QAAQ,IAAIF,GAAGC,EAAE,OAAOA,EAAEF,GAAE,GAAI,GAAGhE,EAAE,OAAOA,EAAEgE,GAAE,GAAI,IAAIX,EAAE,IAAIxB,MAAM,uBAAuBmC,EAAE,KAAK,MAAMX,EAAEe,KAAK,mBAAmBf,EAAE,IAAIgB,EAAEP,EAAEE,IAAIV,YAAYO,EAAEG,GAAG,GAAGjF,KAAKsF,EAAEf,QAAQ,SAASxE,GAAG,IAAIgF,EAAED,EAAEG,GAAG,GAAGlF,GAAG,OAAO2D,EAAEqB,GAAIhF,IAAIuF,EAAEA,EAAEf,QAAQxE,EAAE+E,EAAEC,EAAEC,GAAG,OAAOD,EAAEE,GAAGV,QAAkD,IAAI,IAA1CtD,EAAkB,mBAATmE,SAAqBA,QAAgBH,EAAE,EAAEA,EAAED,EAAEO,OAAON,IAAIvB,EAAEsB,EAAEC,IAAI,OAAOvB,EAAvb,EAA4b8B,GAAG,SAASJ,EAAQZ,EAAOD;;;;;;;;;AAU50B,aACA,IAAIkB,GACJ,SAAWA,GACPA,EAAkBA,EAAuB,IAAI,GAAK,MAClDA,EAAkBA,EAAsB,GAAI,GAAK,KAFrD,CAGGA,IAAsBA,OACzB,IAAIC,GACJ,SAAWA,GACPA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAiB,MAAI,GAAK,QAFxC,CAGGA,IAAcA,OAOjB,IAAIb,EAAgB,WAEhB,SAASA,EAAac,EAAQjF,GAG1B,QAFe,IAAXiF,IAAqBA,WACR,IAAbjF,IAAuBA,EAAW,uBAClCkF,MAAMC,QAAQnF,GACdA,EAASoF,QAAQ,SAAUpC,GACvB,IAAImB,EAAac,EAAQjC,SAG5B,CAAA,GAAuB,iBAAZhD,EAMX,CACD,IAAIqF,EAAiBlB,EAAamB,MAAMnB,EAAaoB,SAAUN,GAC3DO,WAAYnF,SAAS6C,cAAc,SAGvC,OADAiB,EAAa3D,UAAUiF,OAAOJ,EAAgBrF,GACvCqF,EAVP,IAAIK,EAAWrF,SAASC,iBAAiBN,GACzCkF,MAAM1E,UAAU4E,QAAQ9F,KAAKoG,EAAU,SAAUC,GAC7C,IAAIxB,EAAac,EAAQU,MAmIrC,OAxHAxB,EAAa3D,UAAUiF,OAAS,SAAUR,EAAQW,GAE9C,GADAX,EAAOY,MAAQD,EACXX,EAAOY,MAAMC,SAASC,MAAM,eAAsD,IAAtCd,EAAOY,MAAMtC,aAAa,SAAqB0B,EAAOY,MAAMG,aAAa,QAAQD,MAAM,mBAAoB,CACvJd,EAAOY,MAAM1C,aAAa,eAAgB,OAC1C8B,EAAOgB,UAAUhB,GACjBA,EAAOY,MAAMzF,WAAWiD,YAAY4B,EAAOO,YAC3CP,EAAOiB,YACHC,KAAMlB,EAAOmB,MAAMhF,KAAK6D,GACxBoB,QAASlC,EAAa3D,UAAU6F,QAAQjF,KAAK,KAAM6D,GACnDqB,MAAOrB,EAAOsB,OAAOnF,KAAK6D,GAC1BuB,MAAOrC,EAAa3D,UAAUiG,MAAMrF,KAAK,KAAM6D,EAAQD,EAAU0B,OACjEC,QAASxC,EAAa3D,UAAUiG,MAAMrF,KAAK,KAAM6D,EAAQD,EAAU4B,SACnEC,SAAU5B,EAAOgB,UAAU7E,KAAK6D,IAEpC,IAAK,IAAIwB,KAASxB,EAAOiB,WACrBjB,EAAOY,MAAMhF,iBAAiB4F,EAAOxB,EAAOiB,WAAWO,MAInEtC,EAAa3D,UAAUsG,gBAAkB,SAAU7B,EAAQ8B,GACvD,IAAIC,KACJ,IAAK,IAAIC,KAAOhC,EAAOiC,iBAAkB,CACrC,IAAIT,EAAQzB,EAAU0B,WACqBS,IAAvClC,EAAOiC,iBAAiBD,GAAKG,QAC7BX,EAAQxB,EAAOiC,iBAAiBD,GAAKG,OAErCX,GAASM,IACTC,EAASC,GAAOhC,EAAOiC,iBAAiBD,IAGhD,OAAOD,GAEX7C,EAAa3D,UAAUiG,MAAQ,SAAUxB,EAAQ8B,EAAMN,GAwBnD,IAAK,IAAIY,KAAQlD,EAAa3D,UAAUsG,gBAAgB7B,EAAQ8B,GAAO,CACnE,IAAIO,EAAUnD,EAAamB,OACvBiC,SAAUxC,EAAkByC,KAC7BvC,EAAOiC,iBAAiBG,IAAQtB,EAAQhB,EAAkByC,KAAOF,EAAQC,SAC5ED,EAAQG,WAAWrC,QA3BD,SAAUsC,KACb,IAAV3B,GAAkBuB,EAAQC,UAAYxC,EAAkByC,MAAmB,IAAVzB,GAAmBuB,EAAQC,UAAYxC,EAAkB4C,OAC3HD,EAAYvD,EAAamB,OACrBsC,KAAK,GACNF,IACWG,eAAe,MAErB9B,EADA2B,EAAUI,IAAMrB,EAAMsB,SACbL,EAAUE,IAGXF,EAAUE,IAGjBF,EAAUG,eAAe,SAAWH,EAAUG,eAAe,QAE9D9B,EADAU,EAAMsB,SAAWL,EAAUM,MAAQvB,EAAMsB,SAAWL,EAAUO,IACrDP,EAAUE,IAGXF,EAAUE,SAUhB,IAAV7B,GACAuB,EAAQY,SAAS5I,KAAK2F,EAAQwB,KAI1CtC,EAAa3D,UAAU2H,YAAc,SAAUlD,EAAQ9F,GACnD,IAAIiJ,EAAsBC,OAAOC,oBAAoBrD,EAAOsD,aAAcC,EAAU,IAAI/G,eAAkBH,EAAS2D,EAAOwD,cAAelH,EAAM0D,EAAOyD,OAAQC,EAAc1D,EAAO2D,OAAQC,EAAuBC,mBAAmB7D,EAAO8D,aAAe,IAAMD,mBAAmBH,GAChRrH,EAAOyE,MAAM,aACa,IAAtBxE,EAAIyH,QAAQ,KACZzH,GAAO,IAAMsH,EAGbtH,GAAO,IAAMsH,GAGrBL,EAAQzG,KAAKT,EAAQC,GAAK,GAC1B,IAAK,IAAIhB,EAAI6H,EAAoBvD,OAAS,EAAGtE,GAAK,EAAGA,IACjDiI,EAAQS,iBAAiBb,EAAoB7H,GAAI0E,EAAOsD,YAAYH,EAAoB7H,KAQ5F,OANAiI,EAAQU,mBAAqB,WACC,GAAtBV,EAAQrH,YAAqC,KAAlBqH,EAAQvG,SACnCgD,EAAOkE,OAAOR,GAAeH,EAAQtG,SACrC/C,EAASqJ,EAAQtG,YAGlBsG,GAEXrE,EAAa3D,UAAU4I,KAAO,SAAUnE,EAAQuD,EAASa,QACrC,IAAZA,IAAsBA,GAAU,GAChCpE,EAAOqE,YACP3F,OAAO4F,aAAatE,EAAOqE,aAEf,IAAZD,EACApE,EAAOqE,WAAa3F,OAAO6F,WAAWrF,EAAa3D,UAAU4I,KAAKhI,KAAK,KAAM6D,EAAQuD,GAAS,GAAQvD,EAAOwE,QAGzGxE,EAAOyE,SACPzE,EAAOyE,QAAQC,QAEnB1E,EAAOyE,QAAUlB,EACjBvD,EAAOyE,QAAQlH,KAAKyC,EAAO8D,YAAc,IAAM9D,EAAO2D,UAG9DzE,EAAa3D,UAAUoJ,MAAQ,SAAU3E,EAAQ9F,GAC7C,IAAI+C,EAAW+C,EAAO4E,OAAO5E,EAAO2D,QACpC,QAAiBzB,IAAbjF,EAAwB,CACxB,IAAIsG,EAAUrE,EAAa3D,UAAU2H,YAAYlD,EAAQ9F,GACzDgF,EAAa3D,UAAU4I,KAAKnE,EAAQuD,QAGpCrJ,EAAS+C,IAGjBiC,EAAa3D,UAAU6F,QAAU,SAAUpB,GACvC,IAAK,IAAIwB,KAASxB,EAAOiB,WACrBjB,EAAOY,MAAMiE,oBAAoBrD,EAAOxB,EAAOiB,WAAWO,IAE9DxB,EAAOO,WAAWpF,WAAW2J,YAAY9E,EAAOO,aAE7CrB,EAhJQ,GAkJnBA,EAAamB,MAAQ,WAEjB,IAAK,IADW0E,EAAZ1E,KACK/E,EAAI,EAAGA,EAAI0J,UAAUpF,OAAQtE,IAClC,IAAKyJ,KAAOC,UAAU1J,GAClB+E,EAAM0E,GAAOC,UAAU1J,GAAGyJ,GAGlC,OAAO1E,GAEXnB,EAAaoB,UACTkE,MAAO,IACPS,aAAc,iBACdC,WACIC,SAAU,SAAUC,GAChB,OAAO,IAAIC,OAAOD,EAAO,OAE7BE,UAAW,SAAUF,GACjB,MAAO,WAAaA,EAAQ,cAGpC9B,aACIiC,eAAgB,qCAEpBC,MAAO,EACPC,SAAU,EACVC,WAAY,MACZC,SAAU,IACVC,IAAK,KACL3D,kBACI4D,OACIrD,aACQK,GAAI,GACJF,KAAK,IAEbM,SAAU,SAAUzB,GAChB,IAA8D,GAA1DvG,KAAKsF,WAAWQ,aAAa,SAASgD,QAAQ,QAAe,CAC7D,IAAI+B,EAAW7K,KAAKsF,WAAWwF,cAAc,aAC5B,OAAbD,IACAtE,EAAMwE,iBACN/K,KAAKgL,QAAQH,GACb7K,KAAKsF,WAAWrC,aAAa,QAAS,mBAIlDoE,SAAUxC,EAAkByC,IAC5BJ,MAAOpC,EAAU4B,SAErBuE,mBACI1D,aACQK,GAAI,GACJF,KAAK,IAGLE,GAAI,GACJF,KAAK,IAEbM,SAAU,SAAUzB,GAChBA,EAAMwE,kBAEV1D,SAAUxC,EAAkB4C,GAC5BP,MAAOpC,EAAU4B,SAErBwE,iBACI3D,aACQK,GAAI,GACJF,KAAK,IAGLE,GAAI,GACJF,KAAK,IAEbM,SAAU,SAAUzB,GAChBA,EAAMwE,iBACN,IAAII,EAAQnL,KAAKsF,WAAWwF,cAAc,+BAAgCM,EAAOpL,KAAKsF,WAAWwF,cAAc,8BAA+BO,EAASrL,KAAKsF,WAAWwF,cAAc,aACrL,GAAIO,EAAQ,CACR,IAAqF1E,EAAlE3B,MAAM1E,UAAUwI,QAAQ1J,KAAKiM,EAAOnL,WAAWoL,SAAUD,IAAoC9E,EAAMsB,QAAU,IAAK0D,EAAWvL,KAAKsF,WAAWkG,qBAAqB,MAAM7G,OACvLgC,EAAW,EACXA,EAAW4E,EAAW,EAEjB5E,GAAY4E,IACjB5E,EAAW,GAEf0E,EAAOI,UAAUC,OAAO,UACxBL,EAAOtK,cAAcuK,SAASK,KAAKhF,GAAU8E,UAAUG,IAAI,eAEtDR,GAAyB,IAAjB7E,EAAMsB,QACnBuD,EAAKK,UAAUG,IAAI,UAEdT,GACLA,EAAMM,UAAUG,IAAI,WAG5BvE,SAAUxC,EAAkB4C,GAC5BP,MAAOpC,EAAU0B,OAErBqF,UACItE,aACQK,GAAI,GACJF,KAAK,IAELI,KAAM,GACNC,GAAI,GACJL,KAAK,IAEbM,SAAU,WACN,IAAI8D,EAAW9L,KAAK2F,MAAMG,aAAa,+BAAgCiG,EAAe/L,KAAK0I,OACtE,KAAjBqD,GAAuBA,EAAapH,QAAU3E,KAAKgM,cAC9CF,GAAYC,GAAgBD,GAC7B9L,KAAKsF,WAAWrC,aAAa,QAAS,qBAE1CgB,EAAa3D,UAAUoJ,MAAM1J,KAAM,SAAUgC,GACzChC,KAAKiM,QAAQjM,KAAKkM,MAAMlK,IACxBhC,KAAKmM,SACPjL,KAAKlB,SAGfqH,SAAUxC,EAAkByC,IAC5BJ,MAAOpC,EAAU0B,QAGzBlB,WAAY,KACZkE,QAAS,KACT7D,MAAO,KAIPyG,cAAe,WAWX,OATIpM,KAAK2F,MAAMtC,aAAa,mCACTrD,KAAK2F,MAAMG,aAAa,oCAEZ,IAAtB9F,KAAKgK,aACKhK,KAAKgK,aAGL,IAOvBqC,OAAQ,WACJ,IAAIC,EAAQtM,KAAK2F,MAAMG,aAAa,2BACpC,OAAIyG,MAAMD,IAAoB,OAAVA,EACTtM,KAAKuK,MAETiC,SAASF,EAAO,KAK3BN,UAAW,WACP,IAAIS,EAAWzM,KAAK2F,MAAMG,aAAa,8BACvC,OAAIyG,MAAME,IAA0B,OAAbA,EACZzM,KAAKwK,SAETgC,SAASC,EAAU,KAK9BC,WAAY,SAAUC,GAClB,OAAOA,EAAM9J,QAAQ7C,KAAKiK,UAAUC,SAASlK,KAAK0I,QAAS1I,KAAKiK,UAAUI,YAK9E9B,YAAa,WACT,OAAIvI,KAAK2F,MAAMtC,aAAa,4BACjBrD,KAAK2F,MAAMG,aAAa,4BAE5B9F,KAAKyK,YAKhB5B,UAAW,WACP,OAAI7I,KAAK2F,MAAMtC,aAAa,gCACjBrD,KAAK2F,MAAMG,aAAa,gCAE5B9F,KAAK0K,UAKhBlC,KAAM,WACF,OAAIxI,KAAK2F,MAAMtC,aAAa,qBACjBrD,KAAK2F,MAAMG,aAAa,qBAE5B9F,KAAK2K,KAKhBzE,MAAO,SAAU0G,GACb,IAAY,IAARA,EACA5M,KAAKsF,WAAWrC,aAAa,QAAS,gBACtCjD,KAAK2F,MAAM1C,aAAa,8BAA+BjD,KAAK2F,MAAMwE,WAEjE,CACD,IAAIpF,EAAS/E,KACbsJ,WAAW,WACPvE,EAAOmB,OAAM,IACd,OAMXyD,OAAQ,SAAUQ,GACd,OAAOnK,KAAKiJ,OAAOkB,IAKvB9D,OAAQ,WACJ,IAAIyF,EAAW9L,KAAK2F,MAAMG,aAAa,iCACjCgG,GAAY9L,KAAK2F,MAAMwE,OAAS2B,IAAa9L,KAAKgM,aAAehM,KAAK2F,MAAMwE,MAAMxF,QACpF3E,KAAKsF,WAAWrC,aAAa,QAAS,sBAM9CkJ,MAAO,WACH,IAAIpH,EAAS/E,KACbgF,MAAM1E,UAAU4E,QAAQ9F,KAAKY,KAAKsF,WAAWkG,qBAAqB,MAAO,SAAUqB,GAC/C,UAA5BA,EAAG/G,aAAa,WAClB+G,EAAGC,QAAU,SAAUvG,GACjBxB,EAAOiG,QAAQ6B,IAEnBA,EAAGE,aAAe,WACd,IAAI1B,EAAStG,EAAOO,WAAWwF,cAAc,aACzCO,IAAWwB,IACI,OAAXxB,GACAA,EAAOI,UAAUC,OAAO,UAE5BmB,EAAGpB,UAAUG,IAAI,gBASrC7F,UAAW,WACP/F,KAAKsF,WAAWrC,aAAa,QAAS,gBACtCjD,KAAKsF,WAAWrC,aAAa,QAAS,QAAUjD,KAAK2F,MAAMqH,UAAYhN,KAAK2F,MAAMsH,cAAgB,WAAajN,KAAK2F,MAAMuH,WAAa,YAAclN,KAAK2F,MAAMwH,YAAc,QAKlLlB,QAAS,SAAUjK,GACf,IAAIoL,EAEAA,EADmB,iBAAZpL,EACFhC,KAAKqN,WAAWrL,GAGhBhC,KAAKsN,qBAAqBtL,GAE/BhC,KAAKsF,WAAWiI,iBAChBvN,KAAKsF,WAAWuE,YAAY7J,KAAKsF,WAAWkI,WAAW,IAE3DxN,KAAKsF,WAAWnC,YAAYiK,IAKhCE,qBAAsB,SAAUtL,GAC5B,IAAIoL,EAAKjN,SAAS6C,cAAc,MAAO6J,EAAK1M,SAAS6C,cAAc,MAAOsJ,EAAQtM,KAAKqM,SAEnFC,EAAQ,EACRtK,EAAWA,EAASyL,UAEL,IAAVnB,IACLA,EAAQtK,EAAS2C,QAErB,IAAK,IAAIgH,EAAO,EAAGA,EAAO+B,KAAKC,IAAID,KAAKE,IAAItB,GAAQtK,EAAS2C,QAASgH,IAClEkB,EAAGgB,UAAY7L,EAAS2J,GAAMmC,MAC9BjB,EAAG5J,aAAa,0BAA2BjB,EAAS2J,GAAMoC,OAC1DX,EAAGjK,YAAY0J,GACfA,EAAK1M,SAAS6C,cAAc,MAEhC,OAAOoK,GAKXC,WAAY,SAAUrL,GAClB,IAAIoL,EAAKjN,SAAS6C,cAAc,MAAO6J,EAAK1M,SAAS6C,cAAc,MACnE,GAAIhB,EAAS2C,OAAS,EAClB3E,KAAKsF,WAAWuI,UAAY7L,MAE3B,CACD,IAAIgM,EAAehO,KAAKoM,gBACH,KAAjB4B,IACAnB,EAAGgB,UAAYG,EACfnB,EAAG5J,aAAa,QAAS,UACzBmK,EAAGjK,YAAY0J,IAGvB,OAAOO,GAKXlB,MAAO,SAAUlK,GACb,IACI,IAAIiM,KAEAC,EAAOC,KAAKC,MAAMpM,GACtB,GAAiC,IAA7BmG,OAAOkG,KAAKH,GAAMvJ,OAClB,MAAO,GAEX,GAAIK,MAAMC,QAAQiJ,GACd,IAAK,IAAI7N,EAAI,EAAGA,EAAI8H,OAAOkG,KAAKH,GAAMvJ,OAAQtE,IAC1C4N,EAAeA,EAAetJ,SAAYoJ,MAASG,EAAK7N,GAAIyN,MAAS9N,KAAK0M,WAAWwB,EAAK7N,UAI9F,IAAK,IAAI8J,KAAS+D,EACdD,EAAeK,MACXP,MAAS5D,EACT2D,MAAS9N,KAAK0M,WAAWwB,EAAK/D,MAI1C,OAAO8D,EAEX,MAAO1H,GAEH,OAAOvE,IAMf0G,KAAM,WACF,OAAO1I,KAAK2F,MAAMwE,OAKtBa,QAAS,SAAUW,GACtBrM,QAAQC,IAAI,kBACDoM,EAAKtI,aAAa,2BAClBrD,KAAK2F,MAAMwE,MAAQwB,EAAK7F,aAAa,2BAGrC9F,KAAK2F,MAAMwE,MAAQwB,EAAKkC,UAE5B7N,KAAK2F,MAAM1C,aAAa,8BAA+BjD,KAAK2F,MAAMwE,QAEtEf,WAAY,KACZH,UACAjD,eAEJpC,EAAOD,QAAUM,YAEN,IAAI;;;;;;;;;;AAYf,SAAUpF,EAAGC,GACX,aAEA,SAASyP,EAAYC,EAAoBC,EAAkBC,EAAcC,GACvE3O,KAAKwO,mBAAqBA,EAC1BxO,KAAKyO,iBAAmBA,EACxBzO,KAAK0O,aAAeA,EACpB1O,KAAK4O,OAAS,GACd5O,KAAK2O,UAAYA,EACjB3O,KAAK6O,eAAgB,EAcvBN,EAAYjO,UAAUwO,WAAa,SAASC,EAAQC,GAClD,IACAC,EADI7K,EAAI,EAGR4K,GAASD,EAAOpK,OAAS3E,KAAK4O,OAC9B,IAAK,IAAIvO,EAAI,EAAGA,EAAI0O,EAAOpK,OAAQtE,KACjC4O,EAAMF,EAAO1O,IACJ6O,aAAe,GAAOD,EAAIE,cAAgB,EACjD/K,GAAK6K,EAAIC,aAAeD,EAAIE,cAG5B/K,GAAK,EAIT,OAAO4K,EAAQ5K,GAGjBmK,EAAYjO,UAAU8O,SAAW,SAASL,EAAQM,GAEhD,IAAK,IADDJ,EAAKK,EAAUC,EAAeR,EAAOpK,OAChCtE,EAAI,EAAGA,EAAIkP,EAAclP,IAG9BiP,GAFFL,EAAMF,EAAO1O,IACJ6O,aAAe,GAAOD,EAAIE,cAAgB,EACtCE,EAASJ,EAAIC,aAAeD,EAAIE,cAGhCE,EAEbJ,EAAI1L,MAAMyL,MAAQM,EAAW,KAC7BL,EAAI1L,MAAM8L,OAASA,EAAS,KAC5BJ,EAAI1L,MAAMiM,WAAa,MACvBP,EAAI1L,MAAMkM,UAAY,MACtBR,EAAI1L,MAAMmM,YAAc1P,KAAK4O,OAAS,EAAI,KAC1CK,EAAI1L,MAAMoM,aAAe3P,KAAK4O,OAAS,EAAI,MAI/CL,EAAYjO,UAAUsP,WAAa,SAASC,GAC1C,IAAIC,EAAOC,EACXC,EAAiBlR,EAAEgM,cAAc9K,KAAKwO,oBAAoBrB,YAE1DtO,EAAG,KAAOgR,EAASlL,OAAS,GAAG,CAC7B,IAAK,IAAItE,EAAI,EAAGA,GAAKwP,EAASlL,OAAQtE,IAGpC,GAFAyP,EAAQD,EAASC,MAAM,EAAGzP,IAC1B0P,EAAI/P,KAAK8O,WAAWgB,EAAOE,IACnBhQ,KAAK2O,UAAW,CACtB3O,KAAKoP,SAASU,EAAOC,GACrBF,EAAWA,EAASC,MAAMzP,GAC1B,SAASxB,EAGbmB,KAAKoP,SAASU,EAAOpC,KAAKC,IAAI3N,KAAK2O,UAAWoB,IAC9C,QAIJxB,EAAYjO,UAAU2P,MAAQ,SAASxB,GAMrC,IAAK,IALDyB,EAAuBpR,EAAEsB,iBAAiBJ,KAAKyO,kBACnD0B,EAAiBD,EAAqBvL,OACtCyL,EAAW,KACXC,EAAU,KACVR,KACSxP,EAAI,EAAGA,EAAI8P,EAAgB9P,KAClCgQ,EAAUH,EAAqB7P,IACnBiQ,yBAA2BF,GAAYP,EAASlL,OAAS,IAInE3E,KAAK4P,WAAWC,GAEhBA,MAGFA,EAASvB,KAAK+B,EAAQvF,cAAc9K,KAAK0O,eAEzC0B,EAAWC,EAGTR,EAASlL,OAAS,GACpB3E,KAAK4P,WAAWC,IAIpBtB,EAAYjO,UAAUiQ,MAAQ,WAU5B,SAASC,EAAcrR,GACjBqB,EAAIqO,gBACNrO,EAAIqO,eAAgB,EACpBvF,WAAW,WACT9I,EAAIyP,QACJzP,EAAIqO,eAAgB,GACnB,MAfP,IAAIxO,EAAG4O,EACPzO,EAAMR,KACNyQ,EAAgB3R,EAAEsB,iBAAiBJ,KAAKyO,kBACxC0B,EAAiBM,EAAc9L,OAmB/B,IAHA9F,EAAE8B,iBAAiB,SAAU6P,GAC7B3R,EAAE8B,iBAAiB,WAfnB,SAAexB,GACbqB,EAAIyP,UAgBD5P,EAAI,EAAGA,EAAI8P,EAAgB9P,SAEX,KADnB4O,EAAMwB,EAAcpQ,GAAGyK,cAAc9K,KAAK0O,iBAExCO,EAAItO,iBAAiB,OAAQ6P,GAC7BvB,EAAItO,iBAAiB,QAAS6P,KAKpC3R,EAAEE,MAAMwP,YAAcA,EA1IxB,CA4IG9K,OAAQtD,UACVpB,MAAMiC,MAAM,WAsIX,SAAS0P,EAAgBC,GACvB,OAAO,SAASC,GACd,IAAIP,EAAUlQ,SAAS2K,cAAc,8BACrC+F,EAAiBF,EACjB,GAAgB,OAAZN,EAAkB,CAGpB,GAAgB,QADhBA,EAAUlQ,SAAS2K,cAAc,YAG/B,OAGY,SAAV6F,GAA8B,OAAVA,IACtBE,EAAiBR,GAIrB,IAAIS,EAAMC,EAAU5Q,SAASC,iBAAiB,WAE9C,GAA8B,iBAAnByQ,EACTC,EAAOD,OAEP,OAAQA,GACN,IAAK,UAIL,IAAK,IAHDG,EAAM7Q,SAAS8Q,gBAAgBC,WAAa/Q,SAAS+C,KAAKgO,UAC1DC,EAAMH,EAAM7Q,SAAS8Q,gBAAgBG,aAEhC/Q,EAAI,EAAGA,EAAI0Q,EAAQpM,OAAQtE,IAAK,CAEvC,IAAIgR,GADJP,EAAOC,EAAQ1Q,IACC2M,UAGhB,GAFWqE,EAAOP,EAAKM,cAEVD,GAASE,EAAOL,EAC3B,MAGJ,MACA,IAAK,OAEQ,QADbF,EAAOT,EAAQiB,sBAEbR,EAAOC,EAAQ,IAEjB,MACA,IAAK,KAEQ,QADbD,EAAOT,EAAQC,0BAEbQ,EAAOC,EAAQA,EAAQpM,OAAS,IAElC,MACA,IAAK,SACLmM,EAAOC,EAAQA,EAAQpM,OAAS,GAChC,MACA,IAAK,MAEL,QACAmM,EAAOC,EAAQ,GAInB,GAAID,EAAM,CACRT,EAAQkB,gBAAgB,qBACxBT,EAAK7N,aAAa,oBAAqB,QACvC,IAAIuO,EAAOV,EAAKhG,cAAc,SAAWgG,EAAKhG,cAAc,KAC/C,OAAT0G,GACFA,EAAKpL,QAEFwK,GACHa,MAgBR,SAASC,EAAgBC,GACvB,OAAO,WACL,IAAIC,EAAUC,EAAE,wCACO,IAAnBD,EAAQjN,OAIRgN,GAAO,GAAKA,EAAMC,EAAQjN,OAC5BiN,EAAQD,GAAKG,QAEbxS,QAAQC,IAAI,uCANZD,QAAQC,IAAI,qDAWlB,SAASkS,IACP,IAAIM,EAAM5R,SAAS2K,cAAc,8BACjC,GAAY,OAARiH,EAAJ,CAGA,IAAIC,EAAO7R,SAAS8Q,gBAAgBC,WAAa/Q,SAAS+C,KAAKgO,UAC/De,EAAU9R,SAAS8Q,gBAAgBG,aACnCC,EAAOU,EAAI/E,UACXkF,EAAOb,EAAOU,EAAIX,aAGkB,OAA/BW,EAAIzB,wBAAqC4B,EAAOD,EAGnDxO,OAAO0O,OAAO1O,OAAO2O,QAAS,GAG5BJ,EAAQX,EARH,IASP5N,OAAO0O,OAAO1O,OAAO2O,QAASf,EATvB,KAWIW,EAAOC,EACNC,EAZL,KAaLzO,OAAO0O,OAAO1O,OAAO2O,QAASF,EAAOD,EAbhC,MAkBX,SAASI,EAAWC,GAClB,OAAO,WACL7O,OAAO8O,SAAS,EAAGD,GACnB5B,EAAgB,cAIpB,SAAS8B,EAAa7L,EAAU8L,GAC9B,OAAO,WACLhP,OAAOiP,SAAS,EAAG/L,GACnB+J,EAAgB+B,MASpB,SAASE,EAAWC,GAClB,OAAO,WACL,IAAIpB,EAAOrR,SAAS2K,cAAc,mCAClC,GAAa,OAAT0G,EAAe,CACjB,IAAInQ,EAAMmQ,EAAK1L,aAAa,QACxB8M,EACFnP,OAAO5B,KAAKR,GAEZoC,OAAOoP,SAASC,KAAOzR,IA5R/BtC,MAAMwB,GAAG,UAAW,QAAS,WAC3BmQ,EAAgB1Q,OAAM,KAGxBjB,MAAMwB,GAAG,YAAa,QAAS,SAASpB,GAEtC,IADA,IAAID,EAAKC,EAAEyB,YACGqG,IAAP/H,GAAkB,CACvB,GAAIA,EAAGuM,UAAUsH,SAAS,UAAW,CACU,OAAzC7T,EAAG4G,aAAa,sBAClB4K,EAAgBxR,IAAI,GAEtB,MAEFA,EAAKA,EAAGgB,cAET,GAEH,IAAI8S,GACFC,IACElM,IAAK,SACLmM,IA6LJ,WACM/S,SAASgT,eACXhT,SAASgT,cAAclN,QA9LvBmN,IAAK,sCACLC,IAAK,WAEPC,IACEvM,IAAK,IACLmM,IAqPJ,WACEzP,OAAOiP,SAAS,EAAG,GACnBvS,SAAS2K,cAAc,MAAM1E,SAtP3BgN,IAAK,4BACLC,IAAK,WAEPE,IACExM,IAAK,IACLmM,IAAKb,GAAY5O,OAAO+P,aACxBJ,IAAK,qBACLC,IAAK,cAEPI,IACE1M,IAAK,IACLmM,IAAKb,EAAW5O,OAAO+P,aACvBJ,IAAK,uBACLC,IAAK,cAEPK,IACE3M,IAAK,IACLmM,IAAKb,GAAY5O,OAAO+P,YAAc,GACtCJ,IAAK,wBACLC,IAAK,cAEPM,IACE5M,IAAK,IACLmM,IAAKb,EAAW5O,OAAO+P,YAAc,GACrCJ,IAAK,0BACLC,IAAK,cAEPO,IACE7M,IAAK,IACLmM,IAAKV,GAAcrS,SAAS+C,KAAK2Q,aAAc,OAC/CT,IAAK,gCACLC,IAAK,cAEPS,IACE/M,IAAK,IACLmM,IAAKV,EAAarS,SAAS+C,KAAK2Q,aAAc,UAC9CT,IAAK,mCACLC,IAAK,cAEPU,IACEhN,IAAK,IACLmM,IAAKxC,EAAgB,MACrB0C,IAAK,gCACLC,IAAK,WAEPW,IACEjN,IAAK,IACLmM,IAAKxC,EAAgB,QACrB0C,IAAK,4BACLC,IAAK,WAEPY,IACElN,IAAK,IACLmM,IAAKxB,EAAgB,GACrB0B,IAAK,sBACLC,IAAK,WAEPa,IACEnN,IAAK,IACLmM,IAAKxB,EAAgB,GACrB0B,IAAK,kBACLC,IAAK,WAEPc,IACEpN,IAAK,IACLmM,IAAKP,GAAW,GAChBS,IAAK,qBACLC,IAAK,WAEPe,IACErN,IAAK,IACLmM,IAAKP,GAAW,GAChBS,IAAK,+BACLC,IAAK,WAEPgB,IACEtN,IAAK,IACLmM,IAqGJ,WACE/S,SAAS0S,SAASyB,QAAO,IArGvBlB,IAAK,8BACLC,IAAK,WAEPkB,IACExN,IAAK,IACLmM,IAoLJ,WACE,IAAIsB,EAAYrU,SAAS2K,cAAc,qBACvC,GAAI0J,EAAU7P,OACZ6P,EAAU/I,UAAUgJ,OAAO,cAD7B,CAKA,IAAIC,KAEJ,IAAK,IAAIC,KAAK3B,EAAS,CACrB,IAAIjM,EAAMiM,EAAQ2B,GAClBD,EAAW3N,EAAIsM,KAAOqB,EAAW3N,EAAIsM,SACrCqB,EAAW3N,EAAIsM,KAAK/E,KAAKvH,GAG3B,IAAI6N,EAASzM,OAAOkG,KAAKqG,GAAYG,KAAK,SAAStQ,EAAGuQ,GACpD,OAAOJ,EAAWI,GAAGnQ,OAAS+P,EAAWnQ,GAAGI,SAG9C,GAAsB,IAAlBiQ,EAAOjQ,OAAX,CAIA,IAAIoQ,EAAO,4DACXA,GAAQ,gCAERA,GAAQ,oBACRA,GAAQ,0BACRA,GAAQ,uDACRA,GAAQ,SACRA,GAAQ,SAER,IAAK,IAAI1U,EAAI,EAAGA,EAAIuU,EAAOjQ,OAAQtE,IAAK,CACtC,IAAIgT,EAAMqB,EAAWE,EAAOvU,IAExB2U,EAAe3U,IAAOuU,EAAOjQ,OAAS,EACtCwG,EAAQ9K,EAAI,GAAM,EAElB8K,IACF4J,GAAQ,2BAEVA,GAAQ,uBAAyB5J,GAAS6J,EAAe,GAAK,GAAK,WAEnED,GAAQ,0CACRA,GAAQ,8BAAgC1B,EAAI,GAAGA,IAAM,SACrD0B,GAAQ,2BACRA,GAAQ,6BAER,IAAK,IAAIE,KAAM5B,EACb0B,GAAQ,YAAc1B,EAAI4B,GAAIlO,IAAM,UAAYsM,EAAI4B,GAAI7B,IAAM,QAGhE2B,GAAQ,QACRA,GAAQ,SACRA,GAAQ,SACRA,GAAQ,SAEH5J,IAAS6J,IACZD,GAAQ,UAIZA,GAAQ,SACRA,GAAQ,SAERlD,EAAE,QAAQqD,OAAOH,MApPf3B,IAAK,qBACLC,IAAK,UAITtU,MAAMwB,GAAGJ,SAAU,QAAS,SAAShB,GAEnC,GAAI6T,EAAQrL,eAAexI,EAAE0I,WAAa1I,EAAEgW,UAAYhW,EAAEiW,SAAWjW,EAAEkW,WAAalW,EAAEmW,QAAS,CAC7F,IAAIC,EAAUpW,EAAEyB,OAAO2U,QAAQC,cACb,KAAdrW,EAAE0I,QACY,UAAZ0N,GAAmC,WAAZA,GAAoC,aAAZA,GACjDvC,EAAQ7T,EAAE0I,SAASqL,MAGjB/T,EAAEyB,SAAWT,SAAS+C,MAAoB,MAAZqS,GAA+B,WAAZA,GACnDvC,EAAQ7T,EAAE0I,SAASqL,WAyP7B,SAAWrU,EAAGC,EAAGC,GACf,aAEAA,EAAMiC,MAAM,WACVjC,EAAMwB,GAAG,0BAA2B,QAAS,SAASgG,GAEpDvG,KAAKyL,UAAUC,OAAO,0BAGtB,IACI+J,EAAcC,wEAGdC,EAAS3V,KAAK4V,QAAQC,MACtBC,EAAW9V,KAAK4V,QAAQG,QACxBC,EAAelX,EAAEgM,cAAc,IAAM9K,KAAK4V,QAAQK,aAClDC,EAAwBpX,EAAEgM,cAAc,IAAM9K,KAAK4V,QAAQO,qBAG3DC,GAAoB,YAAa,eAAgB,mBAAoB,gBAAiB,eAE1F,GAAGT,GAAUG,GAAYE,EAAc,CACrC,IAAIK,EAAQ,KACZ,OAAOP,GACL,IAAK,OACLO,EAAQZ,EAAc,QAAUE,EAAS,gBACzC,MACA,IAAK,MACLU,EAAQZ,EAAc,OAASE,EAAS,gBACxC,MACA,IAAK,WACLU,EAAQZ,EAAc,YAAcE,EAAS,gBAK5CU,GAEDtX,EAAMoC,KAAM,MAAOkV,GAAQ1U,KAAK,SAASoT,EAAMuB,GAE7C,IADAvB,EAAO5G,KAAKC,MAAM2G,KACPA,EAAKvP,UAAYuP,EAAKvP,SAAS,GAAI,CAC5C,IAAIE,EAAUqP,EAAKvP,SAAS,GACxB+Q,EAAU,GACd,IAAK,IAAIC,KAAO9Q,EAAQ+Q,KACtB,GAAyB,OAAtB/Q,EAAQ+Q,KAAKtP,OAAkD,GAAjCiP,EAAgBtN,QAAQ0N,GAAY,CAEnE,OADAD,GAAW,WAAaC,EAAM,YACvBA,GACL,IAAK,QACL,IAAK,MACLD,GAAW,gBAAmB7Q,EAAQ+Q,KAAKD,GAAK3T,QAAQ,KAAK,IAAM,KAAQ6C,EAAQ+Q,KAAKD,GAAO,OAC/F,MACA,IAAK,QACLD,GAAW,mBAAsB7Q,EAAQ+Q,KAAKD,GAAO,KAAQ9Q,EAAQ+Q,KAAKD,GAAO,OACjF,MACA,IAAK,UACL,IAAK,MACLD,GAAW,YAAe7Q,EAAQ+Q,KAAKD,GAAO,KAAQ9Q,EAAQ+Q,KAAKD,GAAO,OAC1E,MACA,IAAK,WACLD,GAAW,0CAA6C7Q,EAAQ+Q,KAAKD,GAAO,KAAQ9Q,EAAQ+Q,KAAKD,GAAO,OACxG,MACA,IAAK,YACL,IAAsC,GAAnC9Q,EAAQ+Q,KAAKD,GAAK1N,QAAQ,KAAY,CACvCyN,GAAW,oBAAuB7Q,EAAQ+Q,KAAKD,GAAKE,UAAU,EAAEhR,EAAQ+Q,KAAKD,GAAK1N,QAAQ,MAAQ,uBAAyBpD,EAAQ+Q,KAAKD,GAAKE,UAAUhR,EAAQ+Q,KAAKD,GAAK1N,QAAQ,KAAK,GAAK,KAAQpD,EAAQ+Q,KAAKD,GAAO,OACvN,MAGF,QAEAD,GAAW7Q,EAAQ+Q,KAAKD,GAG1BD,GAAW,aAGfL,EAAsBzK,UAAUG,IAAI,aACpCoK,EAAavK,UAAUC,OAAO,aAC9BsK,EAAalL,cAAc,SAAS+C,UAAY0I,KAGnD3U,MAAM,WACLsU,EAAsBrI,UAAYqI,EAAsBrI,UAAY,mDAM1EtH,EAAMwE,mBAGRhM,EAAMwB,GAAG,kBAAmB,QAAS,SAASgG,GAE5CvG,KAAKyL,UAAUC,OAAO,kBAGtB,IAAIiL,EAAiB3W,KAAK4V,QAAQgB,cAC9BC,EAAUC,WAAW9W,KAAK4V,QAAQmB,QAClCC,EAAUF,WAAW9W,KAAK4V,QAAQqB,QAClCC,EAAWJ,WAAW9W,KAAK4V,QAAQuB,SACnCC,EAAkBjJ,KAAKC,MAAMpO,KAAK4V,QAAQyB,gBAC1CC,EAAcnJ,KAAKC,MAAMpO,KAAK4V,QAAQ2B,YAE1CxY,EAAMyD,UAAU,uBAChBzD,EAAMqE,WAAW,qBAAsB,WACrC,IAAIoU,EAAa,KACjB,GAAGJ,EAAiB,CAClB,IAAIK,EAAYC,EAAEC,OAAOP,EAAgB,GAAIA,EAAgB,IACzDQ,EAAYF,EAAEC,OAAOP,EAAgB,GAAIA,EAAgB,IAC7DI,EAAaE,EAAEG,aAAaJ,EAAWG,GAIzC,IAAIE,EAAMJ,EAAEI,IAAInB,GAIZoB,EAAY,IAAIL,EAAEM,UAFL,sDAE8BC,QAAS,EAAGC,QAAS,GAAIC,YADpD,kFAID,IAAIT,EAAEM,UAFL,uDAEiCC,QAAS,EAAGC,QAAS,GAAIC,YADrD,yGAGtBX,EAGDlO,WAAW,WACTwO,EAAIM,UAAUZ,GACZU,QAAQ,MAET,GACMrB,GAAWG,IACjBE,EACDY,EAAIO,QAAQ,IAAIX,EAAEC,OAAOX,EAASH,GAASK,GAE3CY,EAAIO,QAAQ,IAAIX,EAAEC,OAAOX,EAASH,GAAS,IAI/CiB,EAAIQ,SAASP,GAEb,IAAIQ,GACFC,aAAcT,GAIhBL,EAAEe,QAAQC,OAAOH,GAAYI,MAAMb,GAEhCR,GACDI,EAAEkB,QAAQtB,GAAaqB,MAAMb,KAOjCvR,EAAMwE,qBA1JZ,CA6JGtH,OAAQtD,SAAUsD,OAAO1E,OAiB5B,SAAUF,EAAGC,EAAGC,GACd,aAEAA,EAAMiC,MAAM,WACVjC,EAAM8Z,uBAAyB,IAAI9Z,EAAMwP,YAAY,QAAS,uBAAwB,sBAAuB,KAC7GxP,EAAM8Z,uBAAuBtI,QAE7BxR,EAAMwB,GAAG,gBAAiB,QAAS,SAASgG,GAC1C,IAAIuS,EAAoB9Y,KAAK8F,aAAa,2BACtCiT,EAAuB/Y,KAAK8F,aAAa,+BACzClF,EAASZ,KAAK8F,aAAa,eAC3BkT,EAAgBla,EAAEgM,cAAclK,GAChCmU,EAAO/U,KAAK6N,UAEdkH,EADE/U,KAAKyL,UAAUsH,SAAS,aACnBgC,EAAKlS,QAAQiW,EAAmBC,GAEhChE,EAAKlS,QAAQkW,EAAsBD,GAE5C9Y,KAAK6N,UAAYkH,EACjB/U,KAAKyL,UAAUgJ,OAAO,aACtBuE,EAAcvN,UAAUgJ,OAAO,eAGjC1V,EAAMwB,GAAG,gBAAiB,QAAS,SAASgG,GAC1C,IAAI3F,EAASZ,KAAK8F,aAAa,eAC3BmT,EAAcna,EAAEgM,cAAclK,EAAS,aACvCsY,EAAUD,EAAYnT,aAAa,OACvB,OAAZoT,QAAgCjS,IAAZiS,IAAqC,IAAZA,GAC/CD,EAAYhW,aAAa,MAAOgW,EAAYnT,aAAa,eAI7DjH,EAAE8B,iBAAiB,SAAU,WAC3B,IAAIxB,EAAIL,EAAEiE,eAAe,aACzBmO,EAAY/Q,SAAS8Q,gBAAgBC,WAAa/Q,SAAS+C,KAAKgO,UACtD,OAAN/R,IAEAA,EAAEoE,MAAM4V,QADNjI,GAAa,IACG,EAEA,OAvC5B,CA8CGzN,OAAQtD,SAAUsD,OAAO1E,OAiB5B,SAAUF,EAAGC,EAAGC,GACd,aAIA,SAASqa,EAAiB1T,GACxB,GAAIA,EAAQ2T,kBAAmB,CAC7B,IAAIC,EAAM5T,EAAQyE,MAAMxF,OACxBe,EAAQ2T,kBAAkBC,EAAKA,IAInC,SAASC,IACP,GAAIC,EAAOrP,MAAMxF,OAAU,EAAG,CAC5B,IAAI8U,EAAStZ,SAAS4C,eAAe,UACrCuG,WAAWmQ,EAAOC,OAAOxY,KAAKuY,GAAS,IAZ3C,IAAwCD,EAApCG,GAAa,EAgBjB5a,EAAMiC,MAAM,WAYK,QAXfwY,EAAS1a,EAAEiE,eAjBsB,QA8B3BhE,EAAM6a,gBACR7a,EAAM8a,aAAe5V,aAAa7E,KAAKP,GACrC8L,IAAK,kBACLX,aAAcjL,EAAM+a,YACpBrP,WAAY1L,EAAMqC,OAClBoJ,SAAU,EACVjB,MAAO,KACN,MAGH1K,EAAE8B,iBAAiB,SAAU,WAC3B,IAAI4F,EAAQ,IAAIwT,YAAY,YAC5BP,EAAOQ,cAAczT,MAIzBiT,EAAO7Y,iBAAiB,QA3B1B,SAA8BxB,GACxBwa,IACFP,EAAiBI,GACjBG,GAAa,KAwBwC,GACvDH,EAAOpT,SAIM,OAAXoT,GAAmBza,EAAMkb,4BAC3Bnb,EAAEgM,cAAc,SAASoP,UAAU,YAEnCnb,EAAMwB,GAAG,oBAAqB,SAAU,SAASpB,GAC/C,IAAIkB,EAAGqU,EAAa5V,EAAEsB,iBAAiB,sCACvC,IAAIC,EAAE,EAAGA,EAAEqU,EAAW/P,OAAQtE,IACxBqU,EAAWrU,KAAOL,MAAQ0U,EAAWrU,GAAG8Z,SAC1CzF,EAAWrU,GAAGyR,QAOlB,OAJM9R,KAAKma,SACTna,KAAK8R,QAEPyH,KACO,IAGTxa,EAAMwB,GAAGzB,EAAEiE,eAAe,cAAe,SAAUwW,GACnDxa,EAAMwB,GAAGzB,EAAEiE,eAAe,YAAa,SAAUwW,MAxEvD,CA6EG9V,OAAQtD,SAAUsD,OAAO1E","file":"searx.min.js"}
-\ No newline at end of file
+{"version":3,"sources":["searx.js"],"names":["w","d","searx","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","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","staticPath","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","element","insertAfter","nextSibling","classList","add","window","f","exports","module","define","amd","g","global","self","AutoComplete","t","n","r","o","u","a","require","code","l","length","1","ConditionOperator","EventType","params","Array","isArray","forEach","elements","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","getAttribute","_Position","$Listeners","blur","_Blur","destroy","focus","_Focus","keyup","event","KEYUP","keydown","KEYDOWN","position","getEventsByType","type","mappings","key","KeyboardMappings","Event","undefined","eventIdentifier","condition","mapping","Operator","AND","OR","Not","hasOwnProperty","Is","keyCode","From","To","name","Conditions","Callback","makeRequest","propertyHttpHeaders","Object","getOwnPropertyNames","HttpHeaders","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","setTimeout","Delay","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","EmptyMessage","Highlight","getRegex","value","RegExp","transform","Content-type","Limit","MinChars","HttpMethod","QueryArg","Url","Enter","liActive","querySelector","preventDefault","_Select","KeyUpAndDown_down","KeyUpAndDown_up","first","last","active","currentIndex","children","lisCount","getElementsByTagName","remove","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","li","onclick","onmouseenter","offsetTop","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","innerHTML","Label","Value","returnResponse","json","JSON","parse","keys","push","ImageLayout","container_selector","results_selector","img_selector","maxHeight","margin","_alignAllDone","_getHeigth","images","width","img","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","slice","h","containerWidth","align","results_selectorNode","results_length","previous","current","previousElementSibling","watch","imgNodeLength","results_nodes","throttleAlign","highlightResult","contains","vimKeys","27","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","pageButtonClick","78","79","openResult","84","82","reloadPage","72","toggleHelp","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","etop","ebot","nextElementSibling","removeAttribute","link","scrollPageToSelected","location","reload","activeElement","num","buttons","$","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","sorted","sort","b","html","lastCategory","cj","helpPanel","className","toggle","overpass_url","query_start","query_end","osm_id","dataset","osmId","osm_type","osmType","result_table","resultTable","result_table_loadicon","resultTableLoadicon","osm_ignore_tags","query","contentType","newHtml","row","tags","substring","leaflet_target","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","control","layers","addTo","geoJson","image_thumbnail_layout","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","opacity","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","noItemFound","CustomEvent","dispatchEvent","search_on_category_select","checked"],"mappings":";;CAiBA,SAAUA,EAAGC,EAAGC,GAEd,aAMA,GAAIF,EAAEG,QAAS,EACb,SAAUC,GACRA,EAAiBC,QAAUD,EAAiBC,SAC5CD,EAAiBE,iBACjBF,EAAiBG,uBACjBH,EAAiBI,mBACjB,SAASC,GACP,IAAIC,EAAOC,KAAMC,GAASF,EAAKG,YAAcH,EAAKI,UAAUC,iBAAiBN,GAAWO,GAAK,EAC7F,MAAOJ,IAAQI,IAAMJ,EAAMI,IAAMN,GACjC,QAASE,EAAMI,KARnB,CAUGb,QAAQc,WAGb,SAASC,EAAaC,EAAUC,EAAIC,GAClC,IACEF,EAASG,KAAKF,EAAIC,GAClB,MAAOE,GACPC,QAAQC,IAAIF,IAIhBrB,EAAQA,MAERA,EAAMwB,GAAK,SAASC,EAAKC,EAAWT,EAAUU,GAC5CA,EAAaA,GAAc,MAC3B,UAAWF,IAAQ,SAAU,CAE3BA,EAAIG,iBAAiBF,EAAWT,EAAUU,OACrC,CAEL5B,EAAE6B,iBAAiBF,EAAW,SAASP,GACrC,IAAID,EAAKC,EAAEU,QAAUV,EAAEW,WAAYC,EAAQ,MAC3C,MAAOb,GAAMA,EAAGf,SAAWe,IAAOnB,KAAOgC,EAAQb,EAAGf,QAAQsB,IAAOP,EAAKA,EAAGc,cAC3E,GAAID,EAAOf,EAAaC,EAAUC,EAAIC,IACrCQ,KAIP3B,EAAMiC,MAAQ,SAAShB,GACrB,GAAIL,SAASsB,YAAc,UAAW,CACpCjB,EAASG,KAAKtB,OACT,CACLA,EAAE8B,iBAAiB,mBAAoBX,EAASkB,KAAKrC,MAIzDE,EAAMoC,KAAO,SAASC,EAAQC,EAAKrB,GACjC,IAAIsB,EAAM,IAAIC,eACdC,EAAU,aACVC,EAAS,aACTC,GACEC,KAAM,SAAS3B,GAAYwB,EAAUxB,EAAU,OAAO0B,GACtDE,MAAO,SAAS5B,GAAYyB,EAASzB,EAAU,OAAO0B,IAGxD,IACEJ,EAAIO,KAAKT,EAAQC,EAAK,MAGtBC,EAAIQ,OAAS,WACX,GAAIR,EAAIS,QAAU,IAAK,CACrBP,EAAQF,EAAIU,SAAUV,EAAIW,kBACrB,CACLR,EAAOS,MAAMZ,EAAIa,eAKrBb,EAAIc,QAAU,WACZX,EAAOS,MAAM,mBAGfZ,EAAIe,QAAU,WACZZ,EAAOS,MAAM,4BAIfZ,EAAIgB,OACJ,MAAOC,GACPd,EAAOc,GAGT,OAAOb,GAGT3C,EAAMyD,UAAY,SAASC,GACzB,IAAIC,EAAO3D,EAAM4D,WAAaF,EAC9BG,EAAK,SAAWH,EAAII,QAAQ,IAAK,KACjCC,EAAIhE,EAAEiE,eAAeH,GACrB,GAAIE,IAAM,KAAM,CACdA,EAAIhE,EAAEkE,cAAc,QACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAO,cACtBH,EAAEG,aAAa,OAAQ,YACvBH,EAAEG,aAAa,OAAQP,GACvB5D,EAAEoE,KAAKC,YAAYL,KAIvB/D,EAAMqE,WAAa,SAASX,EAAKzC,GAC/B,IAAI0C,EAAO3D,EAAM4D,WAAaF,EAC9BG,EAAK,UAAYH,EAAII,QAAQ,IAAK,KAClCC,EAAIhE,EAAEiE,eAAeH,GACrB,GAAIE,IAAM,KAAM,CACdA,EAAIhE,EAAEkE,cAAc,UACpBF,EAAEG,aAAa,KAAML,GACrBE,EAAEG,aAAa,MAAOP,GACtBI,EAAEhB,OAAS9B,EACX8C,EAAEV,QAAU,WACVU,EAAEG,aAAa,QAAS,MAE1BnE,EAAEoE,KAAKC,YAAYL,QACd,IAAKA,EAAEO,aAAa,SAAU,CACnC,IACErD,EAASsD,MAAMR,MACf,MAAO1C,GACPC,QAAQC,IAAIF,QAET,CACLC,QAAQC,IAAI,mCAAqCoC,EAAO,mBAI5D3D,EAAMwE,aAAe,SAAUC,EAASC,GACtCC,QAAQhE,WAAW6D,aAAaC,EAASC,IAG3C1E,EAAM4E,YAAc,SAASH,EAASC,GACpCA,EAAc/D,WAAW6D,aAAaC,EAASC,EAAcG,cAG/D7E,EAAMwB,GAAG,SAAU,QAAS,SAASL,GACnC,IAAID,EAAKC,EAAEU,QAAUV,EAAEW,WACvBrB,KAAKE,WAAWmE,UAAUC,IAAI,eAGhC,OAAO/E,GAjJT,CAkJGgF,OAAQpE,SAAUoE,OAAOhF,QAC3B,SAAUiF,GAAG,UAAUC,UAAU,iBAAiBC,SAAS,YAAY,CAACA,OAAOD,QAAQD,SAAS,UAAUG,SAAS,YAAYA,OAAOC,IAAI,CAACD,UAAUH,OAAO,CAAC,IAAIK,EAAE,UAAUN,SAAS,YAAY,CAACM,EAAEN,YAAY,UAAUO,SAAS,YAAY,CAACD,EAAEC,YAAY,UAAUC,OAAO,YAAY,CAACF,EAAEE,SAAS,CAACF,EAAE7E,KAAK6E,EAAEG,aAAeR,MAAjU,CAAwU,WAAW,IAAIG,EAAOD,EAAOD,EAAQ,OAAO,SAAU/D,EAAEuE,EAAEC,EAAEC,GAAG,SAAS7B,EAAE8B,EAAEC,GAAG,IAAIH,EAAEE,GAAG,CAAC,IAAIH,EAAEG,GAAG,CAAC,IAAIE,SAASC,SAAS,YAAYA,QAAQ,IAAIF,GAAGC,EAAE,OAAOA,EAAEF,GAAG,GAAG,GAAG/E,EAAE,OAAOA,EAAE+E,GAAG,GAAG,IAAIZ,EAAE,IAAI9B,MAAM,uBAAuB0C,EAAE,KAAK,MAAMZ,EAAEgB,KAAK,mBAAmBhB,EAAE,IAAIiB,EAAEP,EAAEE,IAAIX,YAAYQ,EAAEG,GAAG,GAAGzE,KAAK8E,EAAEhB,QAAQ,SAAS/D,GAAG,IAAIwE,EAAED,EAAEG,GAAG,GAAG1E,GAAG,OAAO4C,EAAE4B,EAAEA,EAAExE,IAAI+E,EAAEA,EAAEhB,QAAQ/D,EAAEuE,EAAEC,EAAEC,GAAG,OAAOD,EAAEE,GAAGX,QAAQ,IAAIpE,SAASkF,SAAS,YAAYA,QAAQ,IAAI,IAAIH,EAAE,EAAEA,EAAED,EAAEO,OAAON,IAAI9B,EAAE6B,EAAEC,IAAI,OAAO9B,EAAvb,EAA4bqC,GAAG,SAASJ,EAAQb,EAAOD;;;;;;;;;AAU50B,aACA,IAAImB,GACJ,SAAWA,GACPA,EAAkBA,EAAkB,OAAS,GAAK,MAClDA,EAAkBA,EAAkB,MAAQ,GAAK,MAFrD,CAGGA,IAAsBA,OACzB,IAAIC,GACJ,SAAWA,GACPA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,SAAW,GAAK,SAFxC,CAGGA,IAAcA,OAOjB,IAAIb,EAAgB,WAEhB,SAASA,EAAac,EAAQhG,GAC1B,GAAIgG,SAAgB,EAAG,CAAEA,KACzB,GAAIhG,SAAkB,EAAG,CAAEA,EAAW,sBACtC,GAAIiG,MAAMC,QAAQlG,GAAW,CACzBA,EAASmG,QAAQ,SAAU3C,GACvB,IAAI0B,EAAac,EAAQxC,UAG5B,UAAWxD,GAAY,SAAU,CAClC,IAAIoG,EAAW/F,SAASC,iBAAiBN,GACzCiG,MAAMzF,UAAU2F,QAAQtF,KAAKuF,EAAU,SAAUC,GAC7C,IAAInB,EAAac,EAAQK,SAG5B,CACD,IAAIC,EAAiBpB,EAAaqB,MAAMrB,EAAasB,SAAUR,GAC3DS,WAAYpG,SAASqD,cAAc,SAEvCwB,EAAa1E,UAAUkG,OAAOJ,EAAgBtG,GAC9C,OAAOsG,GAGfpB,EAAa1E,UAAUkG,OAAS,SAAUV,EAAQ5B,GAC9C4B,EAAOW,MAAQvC,EACf,GAAI4B,EAAOW,MAAMC,SAASC,MAAM,cAAgBb,EAAOW,MAAM5C,aAAa,UAAY,OAASiC,EAAOW,MAAMG,aAAa,QAAQD,MAAM,mBAAoB,CACvJb,EAAOW,MAAMhD,aAAa,eAAgB,OAC1CqC,EAAOe,UAAUf,GACjBA,EAAOW,MAAMvG,WAAWyD,YAAYmC,EAAOS,YAC3CT,EAAOgB,YACHC,KAAMjB,EAAOkB,MAAMtF,KAAKoE,GACxBmB,QAASjC,EAAa1E,UAAU2G,QAAQvF,KAAK,KAAMoE,GACnDoB,MAAOpB,EAAOqB,OAAOzF,KAAKoE,GAC1BsB,MAAOpC,EAAa1E,UAAU+G,MAAM3F,KAAK,KAAMoE,EAAQD,EAAUyB,OACjEC,QAASvC,EAAa1E,UAAU+G,MAAM3F,KAAK,KAAMoE,EAAQD,EAAU2B,SACnEC,SAAU3B,EAAOe,UAAUnF,KAAKoE,IAEpC,IAAK,IAAIuB,KAASvB,EAAOgB,WAAY,CACjChB,EAAOW,MAAMtF,iBAAiBkG,EAAOvB,EAAOgB,WAAWO,OAInErC,EAAa1E,UAAUoH,gBAAkB,SAAU5B,EAAQ6B,GACvD,IAAIC,KACJ,IAAK,IAAIC,KAAO/B,EAAOgC,iBAAkB,CACrC,IAAIT,EAAQxB,EAAUyB,MACtB,GAAIxB,EAAOgC,iBAAiBD,GAAKE,QAAUC,UAAW,CAClDX,EAAQvB,EAAOgC,iBAAiBD,GAAKE,MAEzC,GAAIV,GAASM,EAAM,CACfC,EAASC,GAAO/B,EAAOgC,iBAAiBD,IAGhD,OAAOD,GAEX5C,EAAa1E,UAAU+G,MAAQ,SAAUvB,EAAQ6B,EAAMN,GACnD,IAAIY,EAAkB,SAAUC,GAC5B,GAAKvB,IAAU,MAAQwB,EAAQC,UAAYxC,EAAkByC,KAAS1B,IAAU,OAASwB,EAAQC,UAAYxC,EAAkB0C,GAAK,CAChIJ,EAAYlD,EAAaqB,OACrBkC,IAAK,OACNL,GACH,GAAIA,EAAUM,eAAe,MAAO,CAChC,GAAIN,EAAUO,IAAMpB,EAAMqB,QAAS,CAC/B/B,GAASuB,EAAUK,QAElB,CACD5B,EAAQuB,EAAUK,UAGrB,GAAIL,EAAUM,eAAe,SAAWN,EAAUM,eAAe,MAAO,CACzE,GAAInB,EAAMqB,SAAWR,EAAUS,MAAQtB,EAAMqB,SAAWR,EAAUU,GAAI,CAClEjC,GAASuB,EAAUK,QAElB,CACD5B,EAAQuB,EAAUK,QAKlC,IAAK,IAAIM,KAAQ7D,EAAa1E,UAAUoH,gBAAgB5B,EAAQ6B,GAAO,CACnE,IAAIQ,EAAUnD,EAAaqB,OACvB+B,SAAUxC,EAAkByC,KAC7BvC,EAAOgC,iBAAiBe,IAAQlC,EAAQf,EAAkByC,KAAOF,EAAQC,SAC5ED,EAAQW,WAAW7C,QAAQgC,GAC3B,GAAItB,IAAU,KAAM,CAChBwB,EAAQY,SAASpI,KAAKmF,EAAQuB,MAI1CrC,EAAa1E,UAAU0I,YAAc,SAAUlD,EAAQtF,GACnD,IAAIyI,EAAsBC,OAAOC,oBAAoBrD,EAAOsD,aAAcC,EAAU,IAAItH,eAAkBH,EAASkE,EAAOwD,cAAezH,EAAMiE,EAAOyD,OAAQC,EAAc1D,EAAO2D,OAAQC,EAAuBC,mBAAmB7D,EAAO8D,aAAe,IAAMD,mBAAmBH,GACpR,GAAI5H,EAAO+E,MAAM,UAAW,CACxB,GAAI9E,EAAIgI,QAAQ,QAAU,EAAG,CACzBhI,GAAO,IAAM6H,MAEZ,CACD7H,GAAO,IAAM6H,GAGrBL,EAAQhH,KAAKT,EAAQC,EAAK,MAC1B,IAAK,IAAIxB,EAAI4I,EAAoBvD,OAAS,EAAGrF,GAAK,EAAGA,IAAK,CACtDgJ,EAAQS,iBAAiBb,EAAoB5I,GAAIyF,EAAOsD,YAAYH,EAAoB5I,KAE5FgJ,EAAQU,mBAAqB,WACzB,GAAIV,EAAQ5H,YAAc,GAAK4H,EAAQ9G,QAAU,IAAK,CAClDuD,EAAOkE,OAAOR,GAAeH,EAAQ7G,SACrChC,EAAS6I,EAAQ7G,YAGzB,OAAO6G,GAEXrE,EAAa1E,UAAU2J,KAAO,SAAUnE,EAAQuD,EAASa,GACrD,GAAIA,SAAiB,EAAG,CAAEA,EAAU,KACpC,GAAIpE,EAAOqE,WAAY,CACnB5F,OAAO6F,aAAatE,EAAOqE,YAE/B,GAAID,IAAY,KAAM,CAClBpE,EAAOqE,WAAa5F,OAAO8F,WAAWrF,EAAa1E,UAAU2J,KAAKvI,KAAK,KAAMoE,EAAQuD,EAAS,OAAQvD,EAAOwE,WAE5G,CACD,GAAIxE,EAAOyE,QAAS,CAChBzE,EAAOyE,QAAQC,QAEnB1E,EAAOyE,QAAUlB,EACjBvD,EAAOyE,QAAQzH,KAAKgD,EAAO8D,YAAc,IAAM9D,EAAO2D,UAG9DzE,EAAa1E,UAAUmK,MAAQ,SAAU3E,EAAQtF,GAC7C,IAAIgC,EAAWsD,EAAO4E,OAAO5E,EAAO2D,QACpC,GAAIjH,IAAawF,UAAW,CACxB,IAAIqB,EAAUrE,EAAa1E,UAAU0I,YAAYlD,EAAQtF,GACzDwE,EAAa1E,UAAU2J,KAAKnE,EAAQuD,OAEnC,CACD7I,EAASgC,KAGjBwC,EAAa1E,UAAU2G,QAAU,SAAUnB,GACvC,IAAK,IAAIuB,KAASvB,EAAOgB,WAAY,CACjChB,EAAOW,MAAMkE,oBAAoBtD,EAAOvB,EAAOgB,WAAWO,IAE9DvB,EAAOS,WAAWrG,WAAW0K,YAAY9E,EAAOS,aAEpD,OAAOvB,EAhJQ,GAkJnBA,EAAaqB,MAAQ,WACjB,IAAIA,KAAYwE,EAChB,IAAK,IAAIxK,EAAI,EAAGA,EAAIyK,UAAUpF,OAAQrF,IAAK,CACvC,IAAKwK,KAAOC,UAAUzK,GAAI,CACtBgG,EAAMwE,GAAOC,UAAUzK,GAAGwK,IAGlC,OAAOxE,GAEXrB,EAAasB,UACTgE,MAAO,IACPS,aAAc,iBACdC,WACIC,SAAU,SAAUC,GAChB,OAAO,IAAIC,OAAOD,EAAO,OAE7BE,UAAW,SAAUF,GACjB,MAAO,WAAaA,EAAQ,cAGpC9B,aACIiC,eAAgB,qCAEpBC,MAAO,EACPC,SAAU,EACVC,WAAY,MACZC,SAAU,IACVC,IAAK,KACL5D,kBACI6D,OACI7C,aACQL,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChB,GAAIrH,KAAKuG,WAAWK,aAAa,SAASiD,QAAQ,UAAY,EAAG,CAC7D,IAAI+B,EAAW5L,KAAKuG,WAAWsF,cAAc,aAC7C,GAAID,IAAa,KAAM,CACnBvE,EAAMyE,iBACN9L,KAAK+L,QAAQH,GACb5L,KAAKuG,WAAW9C,aAAa,QAAS,mBAIlD2E,SAAUxC,EAAkByC,IAC5BN,MAAOlC,EAAU2B,SAErBwE,mBACIlD,aACQL,GAAI,GACJF,IAAK,QAGLE,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChBA,EAAMyE,kBAEV1D,SAAUxC,EAAkB0C,GAC5BP,MAAOlC,EAAU2B,SAErByE,iBACInD,aACQL,GAAI,GACJF,IAAK,QAGLE,GAAI,GACJF,IAAK,QAEbQ,SAAU,SAAU1B,GAChBA,EAAMyE,iBACN,IAAII,EAAQlM,KAAKuG,WAAWsF,cAAc,+BAAgCM,EAAOnM,KAAKuG,WAAWsF,cAAc,8BAA+BO,EAASpM,KAAKuG,WAAWsF,cAAc,aACrL,GAAIO,EAAQ,CACR,IAAIC,EAAetG,MAAMzF,UAAUuJ,QAAQlJ,KAAKyL,EAAOlM,WAAWoM,SAAUF,GAAS3E,EAAW4E,GAAgBhF,EAAMqB,QAAU,IAAK6D,EAAWvM,KAAKuG,WAAWiG,qBAAqB,MAAM9G,OAC3L,GAAI+B,EAAW,EAAG,CACdA,EAAW8E,EAAW,OAErB,GAAI9E,GAAY8E,EAAU,CAC3B9E,EAAW,EAEf2E,EAAO/H,UAAUoI,OAAO,UACxBL,EAAO7K,cAAc+K,SAASI,KAAKjF,GAAUpD,UAAUC,IAAI,eAE1D,GAAI6H,GAAQ9E,EAAMqB,SAAW,GAAI,CAClCyD,EAAK9H,UAAUC,IAAI,eAElB,GAAI4H,EAAO,CACZA,EAAM7H,UAAUC,IAAI,YAG5B8D,SAAUxC,EAAkB0C,GAC5BP,MAAOlC,EAAUyB,OAErBqF,UACI7D,aACQL,GAAI,GACJF,IAAK,OAELI,KAAM,GACNC,GAAI,GACJL,IAAK,OAEbQ,SAAU,WACN,IAAI6D,EAAW5M,KAAKyG,MAAMG,aAAa,+BAAgCiG,EAAe7M,KAAKyJ,OAC3F,GAAIoD,IAAiB,IAAMA,EAAanH,QAAU1F,KAAK8M,YAAa,CAChE,IAAKF,GAAYC,GAAgBD,EAAU,CACvC5M,KAAKuG,WAAW9C,aAAa,QAAS,qBAE1CuB,EAAa1E,UAAUmK,MAAMzK,KAAM,SAAUwC,GACzCxC,KAAK+M,QAAQ/M,KAAKgN,MAAMxK,IACxBxC,KAAKiN,SACPvL,KAAK1B,SAGfoI,SAAUxC,EAAkByC,IAC5BN,MAAOlC,EAAUyB,QAGzBf,WAAY,KACZgE,QAAS,KACT9D,MAAO,KAIPyG,cAAe,WACX,IAAIC,EAAe,GACnB,GAAInN,KAAKyG,MAAM5C,aAAa,mCAAoC,CAC5DsJ,EAAenN,KAAKyG,MAAMG,aAAa,wCAEtC,GAAI5G,KAAK+K,eAAiB,MAAO,CAClCoC,EAAenN,KAAK+K,iBAEnB,CACDoC,EAAe,GAEnB,OAAOA,GAKXC,OAAQ,WACJ,IAAIC,EAAQrN,KAAKyG,MAAMG,aAAa,2BACpC,GAAI0G,MAAMD,IAAUA,IAAU,KAAM,CAChC,OAAOrN,KAAKsL,MAEhB,OAAOiC,SAASF,EAAO,KAK3BP,UAAW,WACP,IAAIU,EAAWxN,KAAKyG,MAAMG,aAAa,8BACvC,GAAI0G,MAAME,IAAaA,IAAa,KAAM,CACtC,OAAOxN,KAAKuL,SAEhB,OAAOgC,SAASC,EAAU,KAK9BC,WAAY,SAAUC,GAClB,OAAOA,EAAMrK,QAAQrD,KAAKgL,UAAUC,SAASjL,KAAKyJ,QAASzJ,KAAKgL,UAAUI,YAK9E9B,YAAa,WACT,GAAItJ,KAAKyG,MAAM5C,aAAa,4BAA6B,CACrD,OAAO7D,KAAKyG,MAAMG,aAAa,4BAEnC,OAAO5G,KAAKwL,YAKhB5B,UAAW,WACP,GAAI5J,KAAKyG,MAAM5C,aAAa,gCAAiC,CACzD,OAAO7D,KAAKyG,MAAMG,aAAa,gCAEnC,OAAO5G,KAAKyL,UAKhBlC,KAAM,WACF,GAAIvJ,KAAKyG,MAAM5C,aAAa,qBAAsB,CAC9C,OAAO7D,KAAKyG,MAAMG,aAAa,qBAEnC,OAAO5G,KAAK0L,KAKhB1E,MAAO,SAAU2G,GACb,GAAIA,IAAQ,KAAM,CACd3N,KAAKuG,WAAW9C,aAAa,QAAS,gBACtCzD,KAAKyG,MAAMhD,aAAa,8BAA+BzD,KAAKyG,MAAMyE,WAEjE,CACD,IAAIpF,EAAS9F,KACbqK,WAAW,WACPvE,EAAOkB,MAAM,OACd,OAMX0D,OAAQ,SAAUQ,GACd,OAAOlL,KAAKgK,OAAOkB,IAKvB/D,OAAQ,WACJ,IAAIyF,EAAW5M,KAAKyG,MAAMG,aAAa,+BACvC,KAAMgG,GAAY5M,KAAKyG,MAAMyE,OAAS0B,IAAa5M,KAAK8M,aAAe9M,KAAKyG,MAAMyE,MAAMxF,OAAQ,CAC5F1F,KAAKuG,WAAW9C,aAAa,QAAS,uBAM9CwJ,MAAO,WACH,IAAInH,EAAS9F,KACb+F,MAAMzF,UAAU2F,QAAQtF,KAAKX,KAAKuG,WAAWiG,qBAAqB,MAAO,SAAUoB,GAC/E,GAAIA,EAAGhH,aAAa,UAAY,SAAU,CACxCgH,EAAGC,QAAU,SAAUxG,GACjBvB,EAAOiG,QAAQ6B,IAEnBA,EAAGE,aAAe,WACd,IAAI1B,EAAStG,EAAOS,WAAWsF,cAAc,aAC7C,GAAIO,IAAWwB,EAAI,CACf,GAAIxB,IAAW,KAAM,CACjBA,EAAO/H,UAAUoI,OAAO,UAE5BmB,EAAGvJ,UAAUC,IAAI,gBASrCuC,UAAW,WACP7G,KAAKuG,WAAW9C,aAAa,QAAS,gBACtCzD,KAAKuG,WAAW9C,aAAa,QAAS,QAAUzD,KAAKyG,MAAMsH,UAAY/N,KAAKyG,MAAMuH,cAAgB,WAAahO,KAAKyG,MAAMwH,WAAa,YAAcjO,KAAKyG,MAAMyH,YAAc,QAKlLnB,QAAS,SAAUvK,GACf,IAAI2L,EACJ,UAAW3L,GAAY,SAAU,CAC7B2L,EAAKnO,KAAKoO,WAAW5L,OAEpB,CACD2L,EAAKnO,KAAKqO,qBAAqB7L,GAEnC,GAAIxC,KAAKuG,WAAW+H,gBAAiB,CACjCtO,KAAKuG,WAAWqE,YAAY5K,KAAKuG,WAAWgI,WAAW,IAE3DvO,KAAKuG,WAAW5C,YAAYwK,IAKhCE,qBAAsB,SAAU7L,GAC5B,IAAI2L,EAAKhO,SAASqD,cAAc,MAAOoK,EAAKzN,SAASqD,cAAc,MAAO6J,EAAQrN,KAAKoN,SAEvF,GAAIC,EAAQ,EAAG,CACX7K,EAAWA,EAASgM,eAEnB,GAAInB,IAAU,EAAG,CAClBA,EAAQ7K,EAASkD,OAErB,IAAK,IAAIgH,EAAO,EAAGA,EAAO+B,KAAKC,IAAID,KAAKE,IAAItB,GAAQ7K,EAASkD,QAASgH,IAAQ,CAC1EkB,EAAGgB,UAAYpM,EAASkK,GAAMmC,MAC9BjB,EAAGnK,aAAa,0BAA2BjB,EAASkK,GAAMoC,OAC1DX,EAAGxK,YAAYiK,GACfA,EAAKzN,SAASqD,cAAc,MAEhC,OAAO2K,GAKXC,WAAY,SAAU5L,GAClB,IAAI2L,EAAKhO,SAASqD,cAAc,MAAOoK,EAAKzN,SAASqD,cAAc,MACnE,GAAIhB,EAASkD,OAAS,EAAG,CACrB1F,KAAKuG,WAAWqI,UAAYpM,MAE3B,CACD,IAAI2K,EAAenN,KAAKkN,gBACxB,GAAIC,IAAiB,GAAI,CACrBS,EAAGgB,UAAYzB,EACfS,EAAGnK,aAAa,QAAS,UACzB0K,EAAGxK,YAAYiK,IAGvB,OAAOO,GAKXnB,MAAO,SAAUxK,GACb,IACI,IAAIuM,KAEJ,IAAIC,EAAOC,KAAKC,MAAM1M,GACtB,GAAI0G,OAAOiG,KAAKH,GAAMtJ,SAAW,EAAG,CAChC,MAAO,GAEX,GAAIK,MAAMC,QAAQgJ,GAAO,CACrB,IAAK,IAAI3O,EAAI,EAAGA,EAAI6I,OAAOiG,KAAKH,GAAMtJ,OAAQrF,IAAK,CAC/C0O,EAAeA,EAAerJ,SAAYoJ,MAASE,EAAK3O,GAAIwO,MAAS7O,KAAKyN,WAAWuB,EAAK3O,UAG7F,CACD,IAAK,IAAI6K,KAAS8D,EAAM,CACpBD,EAAeK,MACXN,MAAS5D,EACT2D,MAAS7O,KAAKyN,WAAWuB,EAAK9D,OAI1C,OAAO6D,EAEX,MAAO1H,GAEH,OAAO7E,IAMfiH,KAAM,WACF,OAAOzJ,KAAKyG,MAAMyE,OAKtBa,QAAS,SAAUW,GACtB7L,QAAQC,IAAI,kBACL,GAAI4L,EAAK7I,aAAa,2BAA4B,CAC9C7D,KAAKyG,MAAMyE,MAAQwB,EAAK9F,aAAa,+BAEpC,CACD5G,KAAKyG,MAAMyE,MAAQwB,EAAKkC,UAE5B5O,KAAKyG,MAAMhD,aAAa,8BAA+BzD,KAAKyG,MAAMyE,QAEtEf,WAAY,KACZH,UACAlD,eAEJpC,EAAOD,QAAUO,YAEN,IAAI;;;;;;;;;;CAYf,SAAU3F,EAAGC,GACX,aAEA,SAAS+P,EAAYC,EAAoBC,EAAkBC,EAAcC,GACvEzP,KAAKsP,mBAAqBA,EAC1BtP,KAAKuP,iBAAmBA,EACxBvP,KAAKwP,aAAeA,EACpBxP,KAAK0P,OAAS,GACd1P,KAAKyP,UAAYA,EACjBzP,KAAK2P,cAAgB,KAcvBN,EAAY/O,UAAUsP,WAAa,SAASC,EAAQC,GAClD,IAAI3K,EAAI,EACR4K,EAEAD,GAASD,EAAOnK,OAAS1F,KAAK0P,OAC9B,IAAK,IAAIrP,EAAI,EAAGA,EAAIwP,EAAOnK,OAAQrF,IAAK,CACtC0P,EAAMF,EAAOxP,GACb,GAAK0P,EAAIC,aAAe,GAAOD,EAAIE,cAAgB,EAAI,CACrD9K,GAAK4K,EAAIC,aAAeD,EAAIE,kBACvB,CAEL9K,GAAK,GAIT,OAAO2K,EAAQ3K,GAGjBkK,EAAY/O,UAAU4P,SAAW,SAASL,EAAQM,GAChD,IAAIJ,EAAKK,EAAUC,EAAeR,EAAOnK,OACzC,IAAK,IAAIrF,EAAI,EAAGA,EAAIgQ,EAAchQ,IAAK,CACrC0P,EAAMF,EAAOxP,GACb,GAAK0P,EAAIC,aAAe,GAAOD,EAAIE,cAAgB,EAAI,CACrDG,EAAWD,EAASJ,EAAIC,aAAeD,EAAIE,kBACtC,CAELG,EAAWD,EAEbJ,EAAIO,MAAMR,MAAQM,EAAW,KAC7BL,EAAIO,MAAMH,OAASA,EAAS,KAC5BJ,EAAIO,MAAMC,WAAa,MACvBR,EAAIO,MAAME,UAAY,MACtBT,EAAIO,MAAMG,YAAczQ,KAAK0P,OAAS,EAAI,KAC1CK,EAAIO,MAAMI,aAAe1Q,KAAK0P,OAAS,EAAI,OAI/CL,EAAY/O,UAAUqQ,WAAa,SAASC,GAC1C,IAAIC,EAAOC,EACXC,EAAiBzR,EAAEuM,cAAc7L,KAAKsP,oBAAoBpB,YAE1D7O,EAAG,MAAOuR,EAASlL,OAAS,EAAG,CAC7B,IAAK,IAAIrF,EAAI,EAAGA,GAAKuQ,EAASlL,OAAQrF,IAAK,CACzCwQ,EAAQD,EAASC,MAAM,EAAGxQ,GAC1ByQ,EAAI9Q,KAAK4P,WAAWiB,EAAOE,GAC3B,GAAID,EAAI9Q,KAAKyP,UAAW,CACtBzP,KAAKkQ,SAASW,EAAOC,GACrBF,EAAWA,EAASC,MAAMxQ,GAC1B,SAAShB,GAGbW,KAAKkQ,SAASW,EAAOpC,KAAKC,IAAI1O,KAAKyP,UAAWqB,IAC9C,QAIJzB,EAAY/O,UAAU0Q,MAAQ,SAASzB,GACrC,IAAI0B,EAAuB3R,EAAEc,iBAAiBJ,KAAKuP,kBACnD2B,EAAiBD,EAAqBvL,OACtCyL,EAAW,KACXC,EAAU,KACVR,KACA,IAAK,IAAIvQ,EAAI,EAAGA,EAAI6Q,EAAgB7Q,IAAK,CACvC+Q,EAAUH,EAAqB5Q,GAC/B,GAAI+Q,EAAQC,yBAA2BF,GAAYP,EAASlL,OAAS,EAAG,CAItE1F,KAAK2Q,WAAWC,GAEhBA,KAGFA,EAASxB,KAAKgC,EAAQvF,cAAc7L,KAAKwP,eAEzC2B,EAAWC,EAGb,GAAIR,EAASlL,OAAS,EAAG,CACvB1F,KAAK2Q,WAAWC,KAIpBvB,EAAY/O,UAAUgR,MAAQ,WAC5B,IAAIjR,EAAG0P,EAAKa,EAAUW,EACtBvQ,EAAMhB,KACNwR,EAAgBlS,EAAEc,iBAAiBJ,KAAKuP,kBACxC2B,EAAiBM,EAAc9L,OAE/B,SAASsL,EAAMtQ,GACbM,EAAIgQ,QAGN,SAASS,EAAc/Q,GACrB,GAAIM,EAAI2O,cAAe,CACrB3O,EAAI2O,cAAgB,MACpBtF,WAAW,WACTrJ,EAAIgQ,QACJhQ,EAAI2O,cAAgB,MACnB,MAIPtQ,EAAE8B,iBAAiB,SAAUsQ,GAC7BpS,EAAE8B,iBAAiB,WAAY6P,GAE/B,IAAK3Q,EAAI,EAAGA,EAAI6Q,EAAgB7Q,IAAK,CACnC0P,EAAMyB,EAAcnR,GAAGwL,cAAc7L,KAAKwP,cAC1C,UAAWO,IAAQ,YAAa,CAC9BA,EAAI5O,iBAAiB,OAAQsQ,GAC7B1B,EAAI5O,iBAAiB,QAASsQ,MAKpCpS,EAAEE,MAAM8P,YAAcA,GA1IxB,CA4IG9K,OAAQpE,UACVZ,MAAMiC,MAAM,WAEXjC,MAAMwB,GAAG,UAAW,QAAS,WAC3B2Q,EAAgB1R,MAAM,QAGxBT,MAAMwB,GAAG,YAAa,QAAS,SAASL,GACtC,IAAID,EAAKC,EAAEU,OACX,MAAOX,IAAOuH,UAAW,CACvB,GAAIvH,EAAG4D,UAAUsN,SAAS,UAAW,CACnC,GAAIlR,EAAGmG,aAAa,uBAAyB,KAAM,CACjD8K,EAAgBjR,GAAI,MAEtB,MAEFA,EAAKA,EAAGP,aAET,MAEH,IAAI0R,GACFC,IACEhK,IAAK,SACLiK,IAAKC,EACLC,IAAK,sCACLC,IAAK,WAEPC,IACErK,IAAK,IACLiK,IAAKK,EACLH,IAAK,4BACLC,IAAK,WAEPG,IACEvK,IAAK,IACLiK,IAAKO,GAAY9N,OAAO+N,aACxBN,IAAK,qBACLC,IAAK,cAEPM,IACE1K,IAAK,IACLiK,IAAKO,EAAW9N,OAAO+N,aACvBN,IAAK,uBACLC,IAAK,cAEPO,IACE3K,IAAK,IACLiK,IAAKO,GAAY9N,OAAO+N,YAAc,GACtCN,IAAK,wBACLC,IAAK,cAEPQ,IACE5K,IAAK,IACLiK,IAAKO,EAAW9N,OAAO+N,YAAc,GACrCN,IAAK,0BACLC,IAAK,cAEPS,IACE7K,IAAK,IACLiK,IAAKa,GAAcxS,SAASuD,KAAKkP,aAAc,OAC/CZ,IAAK,gCACLC,IAAK,cAEPY,IACEhL,IAAK,IACLiK,IAAKa,EAAaxS,SAASuD,KAAKkP,aAAc,UAC9CZ,IAAK,mCACLC,IAAK,cAEPa,IACEjL,IAAK,IACLiK,IAAKJ,EAAgB,MACrBM,IAAK,gCACLC,IAAK,WAEPc,IACElL,IAAK,IACLiK,IAAKJ,EAAgB,QACrBM,IAAK,4BACLC,IAAK,WAEPe,IACEnL,IAAK,IACLiK,IAAKmB,EAAgB,GACrBjB,IAAK,sBACLC,IAAK,WAEPiB,IACErL,IAAK,IACLiK,IAAKmB,EAAgB,GACrBjB,IAAK,kBACLC,IAAK,WAEPkB,IACEtL,IAAK,IACLiK,IAAKsB,EAAW,OAChBpB,IAAK,qBACLC,IAAK,WAEPoB,IACExL,IAAK,IACLiK,IAAKsB,EAAW,MAChBpB,IAAK,+BACLC,IAAK,WAEPqB,IACEzL,IAAK,IACLiK,IAAKyB,EACLvB,IAAK,8BACLC,IAAK,WAEPuB,IACE3L,IAAK,IACLiK,IAAK2B,EACLzB,IAAK,qBACLC,IAAK,UAIT1S,MAAMwB,GAAGZ,SAAU,UAAW,SAASO,GAErC,GAAIkR,EAAQpJ,eAAe9H,EAAEgI,WAAahI,EAAEgT,UAAYhT,EAAEiT,SAAWjT,EAAEkT,WAAalT,EAAEmT,QAAS,CAC7F,IAAIC,EAAUpT,EAAEU,OAAO0S,QAAQC,cAC/B,GAAIrT,EAAEgI,UAAY,GAAI,CACpB,GAAIoL,IAAY,SAAWA,IAAY,UAAYA,IAAY,WAAY,CACzElC,EAAQlR,EAAEgI,SAASoJ,WAEhB,CACL,GAAIpR,EAAEU,SAAWjB,SAASuD,MAAQoQ,IAAY,KAAOA,IAAY,SAAU,CACzEpT,EAAEoL,iBACF8F,EAAQlR,EAAEgI,SAASoJ,WAM3B,SAASJ,EAAgBsC,GACvB,OAAO,SAASC,GACd,IAAI7C,EAAUjR,SAAS0L,cAAc,8BACrCqI,EAAiBF,EACjB,GAAI5C,IAAY,KAAM,CAEpBA,EAAUjR,SAAS0L,cAAc,WACjC,GAAIuF,IAAY,KAAM,CAEpB,OAGF,GAAI4C,IAAU,QAAUA,IAAU,KAAM,CACtCE,EAAiB9C,GAIrB,IAAI+C,EAAMC,EAAUjU,SAASC,iBAAiB,WAE9C,UAAW8T,IAAmB,SAAU,CACtCC,EAAOD,MACF,CACL,OAAQA,GACN,IAAK,UACL,IAAIG,EAAMlU,SAASmU,gBAAgBC,WAAapU,SAASuD,KAAK6Q,UAC9D,IAAIC,EAAMH,EAAMlU,SAASmU,gBAAgBG,aAEzC,IAAK,IAAIpU,EAAI,EAAGA,EAAI+T,EAAQ1O,OAAQrF,IAAK,CACvC8T,EAAOC,EAAQ/T,GACf,IAAIqU,EAAOP,EAAKpG,UAChB,IAAI4G,EAAOD,EAAOP,EAAKM,aAEvB,GAAKE,GAAQH,GAASE,EAAOL,EAAM,CACjC,OAGJ,MACA,IAAK,OACLF,EAAO/C,EAAQwD,mBACf,GAAIT,IAAS,KAAM,CACjBA,EAAOC,EAAQ,GAEjB,MACA,IAAK,KACLD,EAAO/C,EAAQC,uBACf,GAAI8C,IAAS,KAAM,CACjBA,EAAOC,EAAQA,EAAQ1O,OAAS,GAElC,MACA,IAAK,SACLyO,EAAOC,EAAQA,EAAQ1O,OAAS,GAChC,MACA,IAAK,MAEL,QACAyO,EAAOC,EAAQ,IAInB,GAAID,EAAM,CACR/C,EAAQyD,gBAAgB,qBACxBV,EAAK1Q,aAAa,oBAAqB,QACvC,IAAIqR,EAAOX,EAAKtI,cAAc,SAAWsI,EAAKtI,cAAc,KAC5D,GAAIiJ,IAAS,KAAM,CACjBA,EAAK5N,QAEP,IAAK+M,EAAU,CACbc,OAMR,SAASxB,IACPpT,SAAS6U,SAASC,OAAO,MAG3B,SAASlD,IACP,GAAI5R,SAAS+U,cAAe,CAC1B/U,SAAS+U,cAAcnO,QAI3B,SAASkM,EAAgBkC,GACvB,OAAO,WACL,IAAIC,EAAUC,EAAE,wCAChB,GAAID,EAAQ1P,SAAW,EAAG,CACxB7E,QAAQC,IAAI,oDACZ,OAEF,GAAIqU,GAAO,GAAKA,EAAMC,EAAQ1P,OAAQ,CACpC0P,EAAQD,GAAKG,YACR,CACLzU,QAAQC,IAAI,yCAKlB,SAASiU,IACP,IAAIQ,EAAMpV,SAAS0L,cAAc,8BACjC,GAAI0J,IAAQ,KAAM,CAChB,OAEF,IAAIC,EAAOrV,SAASmU,gBAAgBC,WAAapU,SAASuD,KAAK6Q,UAC/DkB,EAAUtV,SAASmU,gBAAgBG,aACnCC,EAAOa,EAAIxH,UACX4G,EAAOD,EAAOa,EAAId,aAClBiB,EAAS,IAET,GAAKH,EAAIlE,yBAA2B,MAAUsD,EAAOc,EAAU,CAG7DlR,OAAOoR,OAAOpR,OAAOqR,QAAS,GAC9B,OAEF,GAAIJ,EAAQd,EAAOgB,EAAS,CAC1BnR,OAAOoR,OAAOpR,OAAOqR,QAASlB,EAAOgB,OAChC,CACL,IAAIG,EAAOL,EAAOC,EAClB,GAAII,EAAQlB,EAAOe,EAAS,CAC1BnR,OAAOoR,OAAOpR,OAAOqR,QAASjB,EAAOc,EAAUC,KAKrD,SAASrD,EAAWyD,GAClB,OAAO,WACLvR,OAAOwR,SAAS,EAAGD,GACnBpE,EAAgB,cAIpB,SAASiB,EAAalL,EAAUuO,GAC9B,OAAO,WACLzR,OAAO0R,SAAS,EAAGxO,GACnBiK,EAAgBsE,MAIpB,SAAS7D,IACP5N,OAAO0R,SAAS,EAAG,GACnB9V,SAAS0L,cAAc,MAAM3E,QAG/B,SAASkM,EAAW8C,GAClB,OAAO,WACL,IAAIpB,EAAO3U,SAAS0L,cAAc,mCAClC,GAAIiJ,IAAS,KAAM,CACjB,IAAIjT,EAAMiT,EAAKlO,aAAa,QAC5B,GAAIsP,EAAQ,CACV3R,OAAOlC,KAAKR,OACP,CACL0C,OAAOyQ,SAASmB,KAAOtU,KAM/B,SAASuU,EAAgBC,GACvB,IAAIC,KAEJ,IAAK,IAAIC,KAAK3E,EAAS,CACrB,IAAI/J,EAAM+J,EAAQ2E,GAClBD,EAAWzO,EAAIoK,KAAOqE,EAAWzO,EAAIoK,SACrCqE,EAAWzO,EAAIoK,KAAK7C,KAAKvH,GAG3B,IAAI2O,EAAStN,OAAOiG,KAAKmH,GAAYG,KAAK,SAASnR,EAAGoR,GACpD,OAAOJ,EAAWI,GAAGhR,OAAS4Q,EAAWhR,GAAGI,SAG9C,GAAI8Q,EAAO9Q,SAAW,EAAG,CACvB,OAGH,IAAIiR,EAAO,mEACVA,GAAQ,uDACVA,GAAQ,UAEN,IAAK,IAAItW,EAAI,EAAGA,EAAImW,EAAO9Q,OAAQrF,IAAK,CACtC,IAAI4R,EAAMqE,EAAWE,EAAOnW,IAE5B,IAAIuW,EAAevW,IAAOmW,EAAO9Q,OAAS,EAC1C,IAAIwG,EAAQ7L,EAAI,IAAM,EAEtB,GAAI6L,EAAO,CACTyK,GAAQ,OAEVA,GAAQ,OAERA,GAAQ,OAAS1E,EAAI,GAAGA,IAAM,QAC9B0E,GAAQ,6BAER,IAAK,IAAIE,KAAM5E,EAAK,CAClB0E,GAAQ,YAAc1E,EAAI4E,GAAIhP,IAAM,UAAYoK,EAAI4E,GAAI7E,IAAM,QAGhE2E,GAAQ,QACRA,GAAQ,QAER,IAAKzK,GAAS0K,EAAc,CAC1BD,GAAQ,SAIdA,GAAQ,WAENN,EAAWzH,UAAY+H,EAGzB,SAASlD,IACR,IAAIqD,EAAY3W,SAAS0L,cAAc,qBACvChL,QAAQC,IAAIgW,GACb,GAAIA,IAAc9O,WAAa8O,IAAc,KAAM,CAElDA,EAAY3W,SAASqD,cAAc,OAChCsT,EAAU1T,GAAK,mBACjB0T,EAAUC,UAAU,eACpBD,EAAUxG,MAAM,aACjB8F,EAAgBU,GAChB,IAAIpT,EAAOvD,SAASqM,qBAAqB,QAAQ,GACjD9I,EAAKC,YAAYmT,OACX,CAENA,EAAUzS,UAAU2S,OAAO,aAC3B,YAuBH,SAAW3X,EAAGC,EAAGC,GACf,aAEAA,EAAMiC,MAAM,WACVjC,EAAMwB,GAAG,0BAA2B,QAAS,SAASsG,GAEpDrH,KAAKqE,UAAUoI,OAAO,0BAGtB,IAAIwK,EAAe,gDACnB,IAAIC,EAAcD,EAAe,2BACjC,IAAIE,EAAY,cAEhB,IAAIC,EAASpX,KAAKqX,QAAQC,MAC1B,IAAIC,EAAWvX,KAAKqX,QAAQG,QAC5B,IAAIC,EAAenY,EAAEuM,cAAc,IAAM7L,KAAKqX,QAAQK,aACtD,IAAIC,EAAwBrY,EAAEuM,cAAc,IAAM7L,KAAKqX,QAAQO,qBAG/D,IAAIC,GAAoB,YAAa,eAAgB,mBAAoB,gBAAiB,eAE1F,GAAGT,GAAUG,GAAYE,EAAc,CACrC,IAAIK,EAAQ,KACZ,OAAOP,GACL,IAAK,OACLO,EAAQZ,EAAc,QAAUE,EAAS,KAAOD,EAChD,MACA,IAAK,MACLW,EAAQZ,EAAc,OAASE,EAAS,KAAOD,EAC/C,MACA,IAAK,WACLW,EAAQZ,EAAc,YAAcE,EAAS,KAAOD,EACpD,MACA,QACA,MAEF,GAAGW,EAAO,CAERvY,EAAMoC,KAAM,MAAOmW,GAAQ3V,KAAK,SAASwU,EAAMoB,GAC7CpB,EAAO1H,KAAKC,MAAMyH,GAClB,GAAGA,GAAQA,EAAKzQ,UAAYyQ,EAAKzQ,SAAS,GAAI,CAC5C,IAAIhC,EAAUyS,EAAKzQ,SAAS,GAC5B,IAAI8R,EAAU,GACd,IAAK,IAAIC,KAAO/T,EAAQgU,KAAM,CAC5B,GAAGhU,EAAQgU,KAAKrP,OAAS,MAAQgP,EAAgBhO,QAAQoO,KAAS,EAAG,CACnED,GAAW,WAAaC,EAAM,YAC9B,OAAOA,GACL,IAAK,QACL,IAAK,MACLD,GAAW,gBAAmB9T,EAAQgU,KAAKD,GAAK5U,QAAQ,KAAK,IAAM,KAAQa,EAAQgU,KAAKD,GAAO,OAC/F,MACA,IAAK,QACLD,GAAW,mBAAsB9T,EAAQgU,KAAKD,GAAO,KAAQ/T,EAAQgU,KAAKD,GAAO,OACjF,MACA,IAAK,UACL,IAAK,MACLD,GAAW,YAAe9T,EAAQgU,KAAKD,GAAO,KAAQ/T,EAAQgU,KAAKD,GAAO,OAC1E,MACA,IAAK,WACLD,GAAW,0CAA6C9T,EAAQgU,KAAKD,GAAO,KAAQ/T,EAAQgU,KAAKD,GAAO,OACxG,MACA,IAAK,YACL,GAAG/T,EAAQgU,KAAKD,GAAKpO,QAAQ,OAAS,EAAG,CACvCmO,GAAW,oBAAuB9T,EAAQgU,KAAKD,GAAKE,UAAU,EAAEjU,EAAQgU,KAAKD,GAAKpO,QAAQ,MAAQ,uBAAyB3F,EAAQgU,KAAKD,GAAKE,UAAUjU,EAAQgU,KAAKD,GAAKpO,QAAQ,KAAK,GAAK,KAAQ3F,EAAQgU,KAAKD,GAAO,OACvN,MAGF,QAEAD,GAAW9T,EAAQgU,KAAKD,GACxB,MAEFD,GAAW,cAGtBL,EAAsBzX,WAAW0K,YAAY+M,GACtCF,EAAapT,UAAUoI,OAAO,aAC9BgL,EAAa5L,cAAc,SAAS+C,UAAYoJ,KAGnD5V,MAAM,WACLuV,EAAsBtT,UAAUoI,OAAO,aACvCkL,EAAsB/I,UAAY,0BAMxCvH,EAAMyE,mBAGRvM,EAAMwB,GAAG,kBAAmB,QAAS,SAASsG,GAE5CrH,KAAKqE,UAAUoI,OAAO,kBAGtB,IAAI2L,EAAiBpY,KAAKqX,QAAQgB,cAClC,IAAIC,EAAUC,WAAWvY,KAAKqX,QAAQmB,QACtC,IAAIC,EAAUF,WAAWvY,KAAKqX,QAAQqB,QACtC,IAAIC,EAAWJ,WAAWvY,KAAKqX,QAAQuB,SACvC,IAAIC,EAAkB5J,KAAKC,MAAMlP,KAAKqX,QAAQyB,gBAC9C,IAAIC,EAAc9J,KAAKC,MAAMlP,KAAKqX,QAAQ2B,YAE1CzZ,EAAMyD,UAAU,uBAChBzD,EAAMqE,WAAW,qBAAsB,WACrC,IAAIqV,EAAa,KACjB,GAAGJ,EAAiB,CAClB,IAAIK,EAAYC,EAAEC,OAAOP,EAAgB,GAAIA,EAAgB,IAC7D,IAAIQ,EAAYF,EAAEC,OAAOP,EAAgB,GAAIA,EAAgB,IAC7DI,EAAaE,EAAEG,aAAaJ,EAAWG,GAIzC,IAAIE,EAAMJ,EAAEI,IAAInB,GAEhB,IAAIoB,EAAa,qDACjB,IAAIC,EAAgB,gFACpB,IAAIC,EAAY,IAAIP,EAAEQ,UAAUH,GAAeI,QAAS,EAAGC,QAAS,GAAIC,YAAaL,IACrF,IAAIM,EAAgB,sDACpB,IAAIC,EAAqB,uGACzB,IAAIC,EAAe,IAAId,EAAEQ,UAAUI,GAAkBH,QAAS,EAAGC,QAAS,GAAIC,YAAaE,IAE3F,GAAGf,EAAY,CAGb5O,WAAW,WACTkP,EAAIW,UAAUjB,GACZY,QAAQ,MAET,QACE,GAAIvB,GAAWG,EAAS,CAC7B,GAAGE,EAAU,CACXY,EAAIY,QAAQ,IAAIhB,EAAEC,OAAOX,EAASH,GAASK,OACtC,CACLY,EAAIY,QAAQ,IAAIhB,EAAEC,OAAOX,EAASH,GAAS,IAI/CiB,EAAIa,SAASV,GAEb,IAAIW,GACFC,aAAcZ,GAIhBP,EAAEoB,QAAQC,OAAOH,GAAYI,MAAMlB,GAEnC,GAAGR,EAAa,CACdI,EAAEuB,QAAQ3B,GAAa0B,MAAMlB,MAOjClS,EAAMyE,sBA3JZ,CA8JGvH,OAAQpE,SAAUoE,OAAOhF,QAiB5B,SAAUF,EAAGC,EAAGC,GACd,aAEAA,EAAMiC,MAAM,WACVjC,EAAMob,uBAAyB,IAAIpb,EAAM8P,YAAY,QAAS,uBAAwB,sBAAuB,KAC7G9P,EAAMob,uBAAuBrJ,QAE7B/R,EAAMwB,GAAG,gBAAiB,QAAS,SAASsG,GAC1C,IAAIuT,EAAoB5a,KAAK4G,aAAa,2BAC1C,IAAIiU,EAAuB7a,KAAK4G,aAAa,+BAC7C,IAAIxF,EAASpB,KAAK4G,aAAa,eAC/B,IAAIkU,EAAgBxb,EAAEuM,cAAczK,GACpC,IAAIuV,EAAO3W,KAAK4O,UAChB,GAAI5O,KAAKqE,UAAUsN,SAAS,aAAc,CACxCgF,EAAOA,EAAKtT,QAAQuX,EAAmBC,OAClC,CACLlE,EAAOA,EAAKtT,QAAQwX,EAAsBD,GAE5C5a,KAAK4O,UAAY+H,EACjB3W,KAAKqE,UAAU2S,OAAO,aACtB8D,EAAczW,UAAU2S,OAAO,eAGjCzX,EAAMwB,GAAG,gBAAiB,QAAS,SAASsG,GAC1C,IAAIjG,EAASpB,KAAK4G,aAAa,eAC/B,IAAImU,EAAczb,EAAEuM,cAAczK,EAAS,aAC3C,IAAI4Z,EAAUD,EAAYnU,aAAa,OACvC,GAAIoU,IAAY,MAAQA,IAAYhT,WAAagT,IAAY,MAAO,CAClED,EAAYtX,aAAa,MAAOsX,EAAYnU,aAAa,gBAI7DvH,EAAE8B,iBAAiB,SAAU,WAC3B,IAAIT,EAAIpB,EAAEiE,eAAe,aACzBgR,EAAYpU,SAASmU,gBAAgBC,WAAapU,SAASuD,KAAK6Q,UAChE,GAAI7T,IAAM,KAAM,CACd,GAAI6T,GAAa,IAAK,CACpB7T,EAAE4P,MAAM2K,QAAU,MACb,CACLva,EAAE4P,MAAM2K,QAAU,SAvC5B,CA8CG1W,OAAQpE,SAAUoE,OAAOhF,QAiB5B,SAAUF,EAAGC,EAAGC,GACd,aAEA,IAAI2b,EAAa,KAAMC,EAAY,IAAKC,EAExC,SAASC,EAAiBnX,GACxB,GAAIA,EAAQoX,kBAAmB,CAC7B,IAAIC,EAAMrX,EAAQgH,MAAMxF,OACxBxB,EAAQoX,kBAAkBC,EAAKA,IAInC,SAASC,IACP,GAAIJ,EAAOlQ,MAAMxF,OAAU,EAAG,CAC5B,IAAI+V,EAAStb,SAASoD,eAAe,UACrC8G,WAAWoR,EAAOC,OAAOha,KAAK+Z,GAAS,IAI3C,SAASE,EAAkBP,GACzB,IAAIQ,EAAKzb,SAASoD,eAAe,gBACjC,IAAIsY,EAAoB,WACtB,GAAIT,EAAOlQ,MAAMxF,SAAW,EAAG,CACpCkW,EAAGvX,UAAUC,IAAI,aACL,CACZsX,EAAGvX,UAAUoI,OAAO,WAKjBoP,IACAD,EAAGza,iBAAiB,QAAS,WAC3Bia,EAAOlQ,MAAM,GACbkQ,EAAOlU,QACP2U,MAEFT,EAAOja,iBAAiB,QAAS0a,EAAmB,OAGtDtc,EAAMiC,MAAM,WACV4Z,EAAS9b,EAAEiE,eAAe4X,GAE1B,SAASW,EAAqBpb,GAC5B,GAAIwa,EAAY,CACdG,EAAiBD,GACjBF,EAAa,UACR,GAKT,GAAIE,IAAW,KAAM,CAEnBO,EAAkBP,GAGlB,GAAI7b,EAAMwc,cAAe,CACvBxc,EAAMyc,aAAehX,aAAarE,KAAKtB,GACrCqM,IAAK,kBACLX,aAAcxL,EAAM0c,YACpBzQ,WAAYjM,EAAMqC,OAClB2J,SAAU,EACVjB,MAAO,KACN,IAAM6Q,GAGT9b,EAAE8B,iBAAiB,SAAU,WAC3B,IAAIkG,EAAQ,IAAI6U,YAAY,YAC5Bd,EAAOe,cAAc9U,KAIzB+T,EAAOja,iBAAiB,QAAS2a,EAAsB,OACvDV,EAAOlU,QAIT,GAAIkU,IAAW,MAAQ7b,EAAM6c,0BAA2B,CACtD9c,EAAEuM,cAAc,SAASkL,UAAU,YAEnCxX,EAAMwB,GAAG,oBAAqB,SAAU,SAASL,GAC/C,IAAIL,EAAGiW,EAAahX,EAAEc,iBAAiB,sCACvC,IAAIC,EAAE,EAAGA,EAAEiW,EAAW5Q,OAAQrF,IAAK,CACjC,GAAIiW,EAAWjW,KAAOL,MAAQsW,EAAWjW,GAAGgc,QAAS,CACnD/F,EAAWjW,GAAGiV,SAGlB,IAAMtV,KAAKqc,QAAS,CAClBrc,KAAKsV,QAEPkG,IACA,OAAO,QAGTjc,EAAMwB,GAAGzB,EAAEiE,eAAe,cAAe,SAAUiY,GACnDjc,EAAMwB,GAAGzB,EAAEiE,eAAe,YAAa,SAAUiY,OA/FvD,CAoGGjX,OAAQpE,SAAUoE,OAAOhF","file":"searx.min.js"}
+\ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx_src/00_searx_toolkit.js b/searx/static/themes/simple/js/searx_src/00_searx_toolkit.js
@@ -147,9 +147,18 @@
}
};
+ searx.insertBefore = function (newNode, referenceNode) {
+ element.parentNode.insertBefore(newNode, referenceNode);
+ };
+
+ searx.insertAfter = function(newNode, referenceNode) {
+ referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
+ };
+
searx.on('.close', 'click', function(e) {
var el = e.target || e.srcElement;
- this.parentNode.style.display="None";
+ this.parentNode.classList.add('invisible');
});
+
return searx;
})(window, document, window.searx);
diff --git a/searx/static/themes/simple/js/searx_src/searx_keyboard.js b/searx/static/themes/simple/js/searx_src/searx_keyboard.js
@@ -116,7 +116,7 @@ searx.ready(function() {
}
};
- searx.on(document, "keyup", function(e) {
+ searx.on(document, "keydown", function(e) {
// check for modifiers so we don't break browser's hotkeys
if (vimKeys.hasOwnProperty(e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
var tagName = e.target.tagName.toLowerCase();
@@ -126,6 +126,7 @@ searx.ready(function() {
}
} else {
if (e.target === document.body || tagName === 'a' || tagName === 'button') {
+ e.preventDefault();
vimKeys[e.keyCode].fun();
}
}
@@ -290,13 +291,7 @@ searx.ready(function() {
};
}
- function toggleHelp() {
- var helpPanel = document.querySelector('#vim-hotkeys-help');
- if (helpPanel.length) {
- helpPanel.classList.toggle('hidden');
- return;
- }
-
+ function initHelpContent(divElement) {
var categories = {};
for (var k in vimKeys) {
@@ -313,14 +308,9 @@ searx.ready(function() {
return;
}
- var html = '<div id="vim-hotkeys-help" class="well vim-hotkeys-help">';
- html += '<div class="container-fluid">';
-
- html += '<div class="row">';
- html += '<div class="col-sm-12">';
- html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';
- html += '</div>'; // col-sm-12
- html += '</div>'; // row
+ var html = '<a href="#" class="close" aria-label="close" title="close">×</a>';
+ html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';
+ html += '<table>';
for (var i = 0; i < sorted.length; i++) {
var cat = categories[sorted[i]];
@@ -329,13 +319,11 @@ searx.ready(function() {
var first = i % 2 === 0;
if (first) {
- html += '<div class="row dflex">';
+ html += '<tr>';
}
- html += '<div class="col-sm-' + (first && lastCategory ? 12 : 6) + ' dflex">';
+ html += '<td>';
- html += '<div class="panel panel-default iflex">';
- html += '<div class="panel-heading">' + cat[0].cat + '</div>';
- html += '<div class="panel-body">';
+ html += '<h4>' + cat[0].cat + '</h4>';
html += '<ul class="list-unstyled">';
for (var cj in cat) {
@@ -343,18 +331,36 @@ searx.ready(function() {
}
html += '</ul>';
- html += '</div>'; // panel-body
- html += '</div>'; // panel
- html += '</div>'; // col-sm-*
+ html += '</td>'; // col-sm-*
if (!first || lastCategory) {
- html += '</div>'; // row
+ html += '</tr>'; // row
}
}
- html += '</div>'; // container-fluid
- html += '</div>'; // vim-hotkeys-help
+ html += '</table>';
+
+ divElement.innerHTML = html;
+ }
+
+ function toggleHelp() {
+ var helpPanel = document.querySelector('#vim-hotkeys-help');
+ console.log(helpPanel);
+ if (helpPanel === undefined || helpPanel === null) {
+ // first call
+ helpPanel = document.createElement('div');
+ helpPanel.id = 'vim-hotkeys-help';
+ helpPanel.className='dialog-modal';
+ helpPanel.style='width: 40%';
+ initHelpContent(helpPanel);
+ var body = document.getElementsByTagName('body')[0];
+ body.appendChild(helpPanel);
+ } else {
+ // togggle hidden
+ helpPanel.classList.toggle('invisible');
+ return;
+ }
- $('body').append(html);
}
+
});
diff --git a/searx/static/themes/simple/js/searx_src/searx_mapresult.js b/searx/static/themes/simple/js/searx_src/searx_mapresult.js
@@ -90,13 +90,14 @@
newHtml += "</td></tr>";
}
}
- result_table_loadicon.classList.add('invisible');
+ result_table_loadicon.parentNode.removeChild(result_table_loadicon);
result_table.classList.remove('invisible');
result_table.querySelector("tbody").innerHTML = newHtml;
}
})
.catch(function() {
- result_table_loadicon.innerHTML = result_table_loadicon.innerHTML + "<p class=\"text-muted\">could not load data!</p>";
+ result_table_loadicon.classList.remove('invisible');
+ result_table_loadicon.innerHTML = "could not load data!";
});
}
}
diff --git a/searx/static/themes/simple/js/searx_src/searx_search.js b/searx/static/themes/simple/js/searx_src/searx_search.js
@@ -33,6 +33,26 @@
}
}
+ 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() {
+ qinput.value='';
+ qinput.focus();
+ updateClearButton();
+ });
+ qinput.addEventListener('keyup', updateClearButton, false);
+ }
+
searx.ready(function() {
qinput = d.getElementById(qinput_id);
@@ -46,6 +66,9 @@
}
if (qinput !== null) {
+ // clear button
+ createClearButton(qinput);
+
// autocompleter
if (searx.autocompleter) {
searx.autocomplete = AutoComplete.call(w, {
diff --git a/searx/static/themes/simple/leaflet/images/marker-icon-2x.png b/searx/static/themes/simple/leaflet/images/marker-icon-2x.png
Binary files differ.
diff --git a/searx/static/themes/simple/leaflet/leaflet.css b/searx/static/themes/simple/leaflet/leaflet.css
@@ -1,624 +1,636 @@
-/* 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;
- }
-/* 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,
-.leaflet-container .leaflet-marker-pane img,
-.leaflet-container .leaflet-shadow-pane img,
-.leaflet-container .leaflet-tile-pane img,
-.leaflet-container img.leaflet-image-layer {
- max-width: none !important;
- }
-
-.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;
- }
-.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
- -ms-touch-action: none;
- touch-action: none;
-}
-.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-tile {
- will-change: opacity;
- }
-.leaflet-fade-anim .leaflet-popup {
- opacity: 0;
- -webkit-transition: opacity 0.2s linear;
- -moz-transition: opacity 0.2s linear;
- -o-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;
- }
-.leaflet-zoom-anim .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);
- -o-transition: -o-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;
- -o-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;
- }
-.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;
- }
-
-/* 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 {
- pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
- pointer-events: auto;
- }
-
-/* visual tweaks */
-
-.leaflet-container {
- background: #ddd;
- outline: 0;
- }
-.leaflet-container a {
- color: #0078A8;
- }
-.leaflet-container a.leaflet-active {
- outline: 2px solid orange;
- }
-.leaflet-zoom-box {
- border: 2px dotted #38f;
- background: rgba(255,255,255,0.5);
- }
-
-
-/* general typography */
-.leaflet-container {
- font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
- }
-
-
-/* general toolbar styles */
-
-.leaflet-bar {
- box-shadow: 0 1px 5px rgba(0,0,0,0.65);
- border-radius: 4px;
- }
-.leaflet-bar a,
-.leaflet-bar a:hover {
- 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 {
- 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;
- }
-
-
-/* zoom control */
-
-.leaflet-control-zoom-in,
-.leaflet-control-zoom-out {
- font: bold 18px 'Lucida Console', Monaco, monospace;
- text-indent: 1px;
- }
-.leaflet-control-zoom-out {
- font-size: 20px;
- }
-
-.leaflet-touch .leaflet-control-zoom-in {
- font-size: 22px;
- }
-.leaflet-touch .leaflet-control-zoom-out {
- font-size: 24px;
- }
-
-
-/* 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;
- padding-right: 5px;
- }
-.leaflet-control-layers-selector {
- margin-top: 2px;
- position: relative;
- top: 1px;
- }
-.leaflet-control-layers label {
- display: block;
- }
-.leaflet-control-layers-separator {
- height: 0;
- border-top: 1px solid #ddd;
- margin: 5px -10px 5px -6px;
- }
-
-/* Default icon URLs */
-.leaflet-default-icon-path {
- background-image: url(images/marker-icon.png);
- }
-
-
-/* attribution and scale controls */
-
-.leaflet-container .leaflet-control-attribution {
- background: #fff;
- background: rgba(255, 255, 255, 0.7);
- margin: 0;
- }
-.leaflet-control-attribution,
-.leaflet-control-scale-line {
- padding: 0 5px;
- color: #333;
- }
-.leaflet-control-attribution a {
- text-decoration: none;
- }
-.leaflet-control-attribution a:hover {
- text-decoration: underline;
- }
-.leaflet-container .leaflet-control-attribution,
-.leaflet-container .leaflet-control-scale {
- font-size: 11px;
- }
-.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;
- font-size: 11px;
- white-space: nowrap;
- overflow: hidden;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-
- background: #fff;
- background: rgba(255, 255, 255, 0.5);
- }
-.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 19px;
- line-height: 1.4;
- }
-.leaflet-popup-content p {
- margin: 18px 0;
- }
-.leaflet-popup-tip-container {
- width: 40px;
- height: 20px;
- position: absolute;
- left: 50%;
- margin-left: -20px;
- overflow: hidden;
- pointer-events: none;
- }
-.leaflet-popup-tip {
- width: 17px;
- height: 17px;
- padding: 1px;
-
- margin: -10px auto 0;
-
- -webkit-transform: rotate(45deg);
- -moz-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- -o-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;
- padding: 4px 4px 0 0;
- border: none;
- text-align: center;
- width: 18px;
- height: 14px;
- font: 16px/14px Tahoma, Verdana, sans-serif;
- color: #c3c3c3;
- text-decoration: none;
- font-weight: bold;
- background: transparent;
- }
-.leaflet-container a.leaflet-popup-close-button:hover {
- color: #999;
- }
-.leaflet-popup-scrolled {
- overflow: auto;
- border-bottom: 1px solid #ddd;
- border-top: 1px solid #ddd;
- }
-
-.leaflet-oldie .leaflet-popup-content-wrapper {
- 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-popup-tip-container {
- margin-top: -1px;
- }
-
-.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-clickable {
- 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;
- }
+/* 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;
+ }
+/* 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,
+.leaflet-container .leaflet-marker-pane img,
+.leaflet-container .leaflet-shadow-pane img,
+.leaflet-container .leaflet-tile-pane img,
+.leaflet-container img.leaflet-image-layer {
+ max-width: none !important;
+ max-height: none !important;
+ }
+
+.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-tile {
+ will-change: opacity;
+ }
+.leaflet-fade-anim .leaflet-popup {
+ opacity: 0;
+ -webkit-transition: opacity 0.2s linear;
+ -moz-transition: opacity 0.2s linear;
+ -o-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;
+ }
+.leaflet-zoom-anim .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);
+ -o-transition: -o-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;
+ -o-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;
+ }
+.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;
+ }
+
+/* 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 {
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+ pointer-events: auto;
+ }
+
+/* visual tweaks */
+
+.leaflet-container {
+ background: #ddd;
+ outline: 0;
+ }
+.leaflet-container a {
+ color: #0078A8;
+ }
+.leaflet-container a.leaflet-active {
+ outline: 2px solid orange;
+ }
+.leaflet-zoom-box {
+ border: 2px dotted #38f;
+ background: rgba(255,255,255,0.5);
+ }
+
+
+/* general typography */
+.leaflet-container {
+ font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
+ }
+
+
+/* general toolbar styles */
+
+.leaflet-bar {
+ box-shadow: 0 1px 5px rgba(0,0,0,0.65);
+ border-radius: 4px;
+ }
+.leaflet-bar a,
+.leaflet-bar a:hover {
+ 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 {
+ 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;
+ }
+.leaflet-control-layers-separator {
+ height: 0;
+ border-top: 1px solid #ddd;
+ margin: 5px -10px 5px -6px;
+ }
+
+/* Default icon URLs */
+.leaflet-default-icon-path {
+ background-image: url(images/marker-icon.png);
+ }
+
+
+/* attribution and scale controls */
+
+.leaflet-container .leaflet-control-attribution {
+ background: #fff;
+ background: rgba(255, 255, 255, 0.7);
+ margin: 0;
+ }
+.leaflet-control-attribution,
+.leaflet-control-scale-line {
+ padding: 0 5px;
+ color: #333;
+ }
+.leaflet-control-attribution a {
+ text-decoration: none;
+ }
+.leaflet-control-attribution a:hover {
+ text-decoration: underline;
+ }
+.leaflet-container .leaflet-control-attribution,
+.leaflet-container .leaflet-control-scale {
+ font-size: 11px;
+ }
+.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;
+ font-size: 11px;
+ white-space: nowrap;
+ overflow: hidden;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+
+ background: #fff;
+ background: rgba(255, 255, 255, 0.5);
+ }
+.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 19px;
+ line-height: 1.4;
+ }
+.leaflet-popup-content p {
+ margin: 18px 0;
+ }
+.leaflet-popup-tip-container {
+ width: 40px;
+ height: 20px;
+ position: absolute;
+ left: 50%;
+ margin-left: -20px;
+ overflow: hidden;
+ pointer-events: none;
+ }
+.leaflet-popup-tip {
+ width: 17px;
+ height: 17px;
+ padding: 1px;
+
+ margin: -10px auto 0;
+
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -o-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;
+ padding: 4px 4px 0 0;
+ border: none;
+ text-align: center;
+ width: 18px;
+ height: 14px;
+ font: 16px/14px Tahoma, Verdana, sans-serif;
+ color: #c3c3c3;
+ text-decoration: none;
+ font-weight: bold;
+ background: transparent;
+ }
+.leaflet-container a.leaflet-popup-close-button:hover {
+ color: #999;
+ }
+.leaflet-popup-scrolled {
+ overflow: auto;
+ border-bottom: 1px solid #ddd;
+ border-top: 1px solid #ddd;
+ }
+
+.leaflet-oldie .leaflet-popup-content-wrapper {
+ 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-popup-tip-container {
+ margin-top: -1px;
+ }
+
+.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-clickable {
+ 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;
+ }
diff --git a/searx/static/themes/simple/leaflet/leaflet.js b/searx/static/themes/simple/leaflet/leaflet.js
@@ -1,9 +1,5 @@
-/*
- Leaflet 1.0.3+ed36a04, a JS library for interactive maps. http://leafletjs.com
- (c) 2010-2016 Vladimir Agafonkin, (c) 2010-2011 CloudMade
-*/
-!function(t,e,i){function n(){var e=t.L;o.noConflict=function(){return t.L=e,this},t.L=o}var o={version:"1.0.3+ed36a04"};"object"==typeof module&&"object"==typeof module.exports?module.exports=o:"function"==typeof define&&define.amd&&define(o),"undefined"!=typeof t&&n(),o.Util={extend:function(t){var e,i,n,o;for(i=1,n=arguments.length;i<n;i++){o=arguments[i];for(e in o)t[e]=o[e]}return t},create:Object.create||function(){function t(){}return function(e){return t.prototype=e,new t}}(),bind:function(t,e){var i=Array.prototype.slice;if(t.bind)return t.bind.apply(t,i.call(arguments,1));var n=i.call(arguments,2);return function(){return t.apply(e,n.length?n.concat(i.call(arguments)):arguments)}},stamp:function(t){return t._leaflet_id=t._leaflet_id||++o.Util.lastId,t._leaflet_id},lastId:0,throttle:function(t,e,i){var n,o,s,r;return r=function(){n=!1,o&&(s.apply(i,o),o=!1)},s=function(){n?o=arguments:(t.apply(i,arguments),setTimeout(r,e),n=!0)}},wrapNum:function(t,e,i){var n=e[1],o=e[0],s=n-o;return t===n&&i?t:((t-o)%s+s)%s+o},falseFn:function(){return!1},formatNum:function(t,e){var i=Math.pow(10,e||5);return Math.round(t*i)/i},trim:function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")},splitWords:function(t){return o.Util.trim(t).split(/\s+/)},setOptions:function(t,e){t.hasOwnProperty("options")||(t.options=t.options?o.Util.create(t.options):{});for(var i in e)t.options[i]=e[i];return t.options},getParamString:function(t,e,i){var n=[];for(var o in t)n.push(encodeURIComponent(i?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(e&&e.indexOf("?")!==-1?"&":"?")+n.join("&")},template:function(t,e){return t.replace(o.Util.templateRe,function(t,n){var o=e[n];if(o===i)throw new Error("No value provided for variable "+t);return"function"==typeof o&&(o=o(e)),o})},templateRe:/\{ *([\w_\-]+) *\}/g,isArray:Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},indexOf:function(t,e){for(var i=0;i<t.length;i++)if(t[i]===e)return i;return-1},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function e(e){return t["webkit"+e]||t["moz"+e]||t["ms"+e]}function i(e){var i=+new Date,o=Math.max(0,16-(i-n));return n=i+o,t.setTimeout(e,o)}var n=0,s=t.requestAnimationFrame||e("RequestAnimationFrame")||i,r=t.cancelAnimationFrame||e("CancelAnimationFrame")||e("CancelRequestAnimationFrame")||function(e){t.clearTimeout(e)};o.Util.requestAnimFrame=function(e,n,r){return r&&s===i?void e.call(n):s.call(t,o.bind(e,n))},o.Util.cancelAnimFrame=function(e){e&&r.call(t,e)}}(),o.extend=o.Util.extend,o.bind=o.Util.bind,o.stamp=o.Util.stamp,o.setOptions=o.Util.setOptions,o.Class=function(){},o.Class.extend=function(t){var e=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},i=e.__super__=this.prototype,n=o.Util.create(i);n.constructor=e,e.prototype=n;for(var s in this)this.hasOwnProperty(s)&&"prototype"!==s&&(e[s]=this[s]);return t.statics&&(o.extend(e,t.statics),delete t.statics),t.includes&&(o.Util.extend.apply(null,[n].concat(t.includes)),delete t.includes),n.options&&(t.options=o.Util.extend(o.Util.create(n.options),t.options)),o.extend(n,t),n._initHooks=[],n.callInitHooks=function(){if(!this._initHooksCalled){i.callInitHooks&&i.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,e=n._initHooks.length;t<e;t++)n._initHooks[t].call(this)}},e},o.Class.include=function(t){return o.extend(this.prototype,t),this},o.Class.mergeOptions=function(t){return o.extend(this.prototype.options,t),this},o.Class.addInitHook=function(t){var e=Array.prototype.slice.call(arguments,1),i="function"==typeof t?t:function(){this[t].apply(this,e)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(i),this},o.Evented=o.Class.extend({on:function(t,e,i){if("object"==typeof t)for(var n in t)this._on(n,t[n],e);else{t=o.Util.splitWords(t);for(var s=0,r=t.length;s<r;s++)this._on(t[s],e,i)}return this},off:function(t,e,i){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],e);else{t=o.Util.splitWords(t);for(var s=0,r=t.length;s<r;s++)this._off(t[s],e,i)}else delete this._events;return this},_on:function(t,e,n){this._events=this._events||{};var o=this._events[t];o||(o=[],this._events[t]=o),n===this&&(n=i);for(var s={fn:e,ctx:n},r=o,a=0,h=r.length;a<h;a++)if(r[a].fn===e&&r[a].ctx===n)return;r.push(s)},_off:function(t,e,n){var s,r,a;if(this._events&&(s=this._events[t])){if(!e){for(r=0,a=s.length;r<a;r++)s[r].fn=o.Util.falseFn;return void delete this._events[t]}if(n===this&&(n=i),s)for(r=0,a=s.length;r<a;r++){var h=s[r];if(h.ctx===n&&h.fn===e)return h.fn=o.Util.falseFn,this._firingCount&&(this._events[t]=s=s.slice()),void s.splice(r,1)}}},fire:function(t,e,i){if(!this.listens(t,i))return this;var n=o.Util.extend({},e,{type:t,target:this});if(this._events){var s=this._events[t];if(s){this._firingCount=this._firingCount+1||1;for(var r=0,a=s.length;r<a;r++){var h=s[r];h.fn.call(h.ctx||this,n)}this._firingCount--}}return i&&this._propagateEvent(n),this},listens:function(t,e){var i=this._events&&this._events[t];if(i&&i.length)return!0;if(e)for(var n in this._eventParents)if(this._eventParents[n].listens(t,e))return!0;return!1},once:function(t,e,i){if("object"==typeof t){for(var n in t)this.once(n,t[n],e);return this}var s=o.bind(function(){this.off(t,e,i).off(t,s,i)},this);return this.on(t,e,i).on(t,s,i)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[o.stamp(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[o.stamp(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,o.extend({layer:t.target},t),!0)}});var s=o.Evented.prototype;s.addEventListener=s.on,s.removeEventListener=s.clearAllEventListeners=s.off,s.addOneTimeEventListener=s.once,s.fireEvent=s.fire,s.hasEventListeners=s.listens,o.Mixin={Events:s},function(){var i=navigator.userAgent.toLowerCase(),n=e.documentElement,s="ActiveXObject"in t,r=i.indexOf("webkit")!==-1,a=i.indexOf("phantom")!==-1,h=i.search("android [23]")!==-1,l=i.indexOf("chrome")!==-1,u=i.indexOf("gecko")!==-1&&!r&&!t.opera&&!s,c=0===navigator.platform.indexOf("Win"),d="undefined"!=typeof orientation||i.indexOf("mobile")!==-1,_=!t.PointerEvent&&t.MSPointerEvent,m=t.PointerEvent||_,p=s&&"transition"in n.style,f="WebKitCSSMatrix"in t&&"m11"in new t.WebKitCSSMatrix&&!h,g="MozPerspective"in n.style,v="OTransition"in n.style,y=!t.L_NO_TOUCH&&(m||"ontouchstart"in t||t.DocumentTouch&&e instanceof t.DocumentTouch);o.Browser={ie:s,ielt9:s&&!e.addEventListener,edge:"msLaunchUri"in navigator&&!("documentMode"in e),webkit:r,gecko:u,android:i.indexOf("android")!==-1,android23:h,chrome:l,safari:!l&&i.indexOf("safari")!==-1,win:c,ie3d:p,webkit3d:f,gecko3d:g,opera12:v,any3d:!t.L_DISABLE_3D&&(p||f||g)&&!v&&!a,mobile:d,mobileWebkit:d&&r,mobileWebkit3d:d&&f,mobileOpera:d&&t.opera,mobileGecko:d&&u,touch:!!y,msPointer:!!_,pointer:!!m,retina:(t.devicePixelRatio||t.screen.deviceXDPI/t.screen.logicalXDPI)>1}}(),o.Point=function(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e},o.Point.prototype={clone:function(){return new o.Point(this.x,this.y)},add:function(t){return this.clone()._add(o.point(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(o.point(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new o.Point(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new o.Point(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},distanceTo:function(t){t=o.point(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=o.point(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=o.point(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+o.Util.formatNum(this.x)+", "+o.Util.formatNum(this.y)+")"}},o.point=function(t,e,n){return t instanceof o.Point?t:o.Util.isArray(t)?new o.Point(t[0],t[1]):t===i||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new o.Point(t.x,t.y):new o.Point(t,e,n)},o.Bounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])},o.Bounds.prototype={extend:function(t){return t=o.point(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new o.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new o.Point(this.min.x,this.max.y)},getTopRight:function(){return new o.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var e,i;return t="number"==typeof t[0]||t instanceof o.Point?o.point(t):o.bounds(t),t instanceof o.Bounds?(e=t.min,i=t.max):e=i=t,e.x>=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,r=s.x>=e.x&&n.x<=i.x,a=s.y>=e.y&&n.y<=i.y;return r&&a},overlaps:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,r=s.x>e.x&&n.x<i.x,a=s.y>e.y&&n.y<i.y;return r&&a},isValid:function(){return!(!this.min||!this.max)}},o.bounds=function(t,e){return!t||t instanceof o.Bounds?t:new o.Bounds(t,e)},o.Transformation=function(t,e,i,n){this._a=t,this._b=e,this._c=i,this._d=n},o.Transformation.prototype={transform:function(t,e){return this._transform(t.clone(),e)},_transform:function(t,e){return e=e||1,t.x=e*(this._a*t.x+this._b),t.y=e*(this._c*t.y+this._d),t},untransform:function(t,e){return e=e||1,new o.Point((t.x/e-this._b)/this._a,(t.y/e-this._d)/this._c)}},o.DomUtil={get:function(t){return"string"==typeof t?e.getElementById(t):t},getStyle:function(t,i){var n=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!n||"auto"===n)&&e.defaultView){var o=e.defaultView.getComputedStyle(t,null);n=o?o[i]:null}return"auto"===n?null:n},create:function(t,i,n){var o=e.createElement(t);return o.className=i||"",n&&n.appendChild(o),o},remove:function(t){var e=t.parentNode;e&&e.removeChild(t)},empty:function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},toFront:function(t){t.parentNode.appendChild(t)},toBack:function(t){var e=t.parentNode;e.insertBefore(t,e.firstChild)},hasClass:function(t,e){if(t.classList!==i)return t.classList.contains(e);var n=o.DomUtil.getClass(t);return n.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(n)},addClass:function(t,e){if(t.classList!==i)for(var n=o.Util.splitWords(e),s=0,r=n.length;s<r;s++)t.classList.add(n[s]);else if(!o.DomUtil.hasClass(t,e)){var a=o.DomUtil.getClass(t);o.DomUtil.setClass(t,(a?a+" ":"")+e)}},removeClass:function(t,e){t.classList!==i?t.classList.remove(e):o.DomUtil.setClass(t,o.Util.trim((" "+o.DomUtil.getClass(t)+" ").replace(" "+e+" "," ")))},setClass:function(t,e){t.className.baseVal===i?t.className=e:t.className.baseVal=e},getClass:function(t){return t.className.baseVal===i?t.className:t.className.baseVal},setOpacity:function(t,e){"opacity"in t.style?t.style.opacity=e:"filter"in t.style&&o.DomUtil._setOpacityIE(t,e)},_setOpacityIE:function(t,e){var i=!1,n="DXImageTransform.Microsoft.Alpha";try{i=t.filters.item(n)}catch(t){if(1===e)return}e=Math.round(100*e),i?(i.Enabled=100!==e,i.Opacity=e):t.style.filter+=" progid:"+n+"(opacity="+e+")"},testProp:function(t){for(var i=e.documentElement.style,n=0;n<t.length;n++)if(t[n]in i)return t[n];return!1},setTransform:function(t,e,i){var n=e||new o.Point(0,0);t.style[o.DomUtil.TRANSFORM]=(o.Browser.ie3d?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(i?" scale("+i+")":"")},setPosition:function(t,e){t._leaflet_pos=e,o.Browser.any3d?o.DomUtil.setTransform(t,e):(t.style.left=e.x+"px",t.style.top=e.y+"px")},getPosition:function(t){return t._leaflet_pos||new o.Point(0,0)}},function(){o.DomUtil.TRANSFORM=o.DomUtil.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]);var i=o.DomUtil.TRANSITION=o.DomUtil.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]);if(o.DomUtil.TRANSITION_END="webkitTransition"===i||"OTransition"===i?i+"End":"transitionend","onselectstart"in e)o.DomUtil.disableTextSelection=function(){o.DomEvent.on(t,"selectstart",o.DomEvent.preventDefault)},o.DomUtil.enableTextSelection=function(){o.DomEvent.off(t,"selectstart",o.DomEvent.preventDefault)};else{var n=o.DomUtil.testProp(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);o.DomUtil.disableTextSelection=function(){if(n){var t=e.documentElement.style;this._userSelect=t[n],t[n]="none"}},o.DomUtil.enableTextSelection=function(){n&&(e.documentElement.style[n]=this._userSelect,delete this._userSelect)}}o.DomUtil.disableImageDrag=function(){o.DomEvent.on(t,"dragstart",o.DomEvent.preventDefault)},o.DomUtil.enableImageDrag=function(){o.DomEvent.off(t,"dragstart",o.DomEvent.preventDefault)},o.DomUtil.preventOutline=function(e){for(;e.tabIndex===-1;)e=e.parentNode;e&&e.style&&(o.DomUtil.restoreOutline(),this._outlineElement=e,this._outlineStyle=e.style.outline,e.style.outline="none",o.DomEvent.on(t,"keydown",o.DomUtil.restoreOutline,this))},o.DomUtil.restoreOutline=function(){this._outlineElement&&(this._outlineElement.style.outline=this._outlineStyle,delete this._outlineElement,delete this._outlineStyle,o.DomEvent.off(t,"keydown",o.DomUtil.restoreOutline,this))}}(),o.LatLng=function(t,e,n){if(isNaN(t)||isNaN(e))throw new Error("Invalid LatLng object: ("+t+", "+e+")");this.lat=+t,this.lng=+e,n!==i&&(this.alt=+n)},o.LatLng.prototype={equals:function(t,e){if(!t)return!1;t=o.latLng(t);var n=Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng));return n<=(e===i?1e-9:e)},toString:function(t){return"LatLng("+o.Util.formatNum(this.lat,t)+", "+o.Util.formatNum(this.lng,t)+")"},distanceTo:function(t){return o.CRS.Earth.distance(this,o.latLng(t))},wrap:function(){return o.CRS.Earth.wrapLatLng(this)},toBounds:function(t){var e=180*t/40075017,i=e/Math.cos(Math.PI/180*this.lat);return o.latLngBounds([this.lat-e,this.lng-i],[this.lat+e,this.lng+i])},clone:function(){return new o.LatLng(this.lat,this.lng,this.alt)}},o.latLng=function(t,e,n){return t instanceof o.LatLng?t:o.Util.isArray(t)&&"object"!=typeof t[0]?3===t.length?new o.LatLng(t[0],t[1],t[2]):2===t.length?new o.LatLng(t[0],t[1]):null:t===i||null===t?t:"object"==typeof t&&"lat"in t?new o.LatLng(t.lat,"lng"in t?t.lng:t.lon,t.alt):e===i?null:new o.LatLng(t,e,n)},o.LatLngBounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])},o.LatLngBounds.prototype={extend:function(t){var e,i,n=this._southWest,s=this._northEast;if(t instanceof o.LatLng)e=t,i=t;else{if(!(t instanceof o.LatLngBounds))return t?this.extend(o.latLng(t)||o.latLngBounds(t)):this;if(e=t._southWest,i=t._northEast,!e||!i)return this}return n||s?(n.lat=Math.min(e.lat,n.lat),n.lng=Math.min(e.lng,n.lng),s.lat=Math.max(i.lat,s.lat),s.lng=Math.max(i.lng,s.lng)):(this._southWest=new o.LatLng(e.lat,e.lng),this._northEast=new o.LatLng(i.lat,i.lng)),this},pad:function(t){var e=this._southWest,i=this._northEast,n=Math.abs(e.lat-i.lat)*t,s=Math.abs(e.lng-i.lng)*t;return new o.LatLngBounds(new o.LatLng(e.lat-n,e.lng-s),new o.LatLng(i.lat+n,i.lng+s))},getCenter:function(){return new o.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new o.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new o.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof o.LatLng||"lat"in t?o.latLng(t):o.latLngBounds(t);var e,i,n=this._southWest,s=this._northEast;return t instanceof o.LatLngBounds?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=s.lat&&e.lng>=n.lng&&i.lng<=s.lng},intersects:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),r=s.lat>=e.lat&&n.lat<=i.lat,a=s.lng>=e.lng&&n.lng<=i.lng;return r&&a},overlaps:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),r=s.lat>e.lat&&n.lat<i.lat,a=s.lng>e.lng&&n.lng<i.lng;return r&&a},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t){return!!t&&(t=o.latLngBounds(t),this._southWest.equals(t.getSouthWest())&&this._northEast.equals(t.getNorthEast()))},isValid:function(){return!(!this._southWest||!this._northEast)}},o.latLngBounds=function(t,e){return t instanceof o.LatLngBounds?t:new o.LatLngBounds(t,e)},o.Projection={},o.Projection.LonLat={project:function(t){return new o.Point(t.lng,t.lat)},unproject:function(t){return new o.LatLng(t.y,t.x)},bounds:o.bounds([-180,-90],[180,90])},o.Projection.SphericalMercator={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var e=Math.PI/180,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),s=Math.sin(n*e);return new o.Point(this.R*t.lng*e,this.R*Math.log((1+s)/(1-s))/2)},unproject:function(t){var e=180/Math.PI;return new o.LatLng((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*e,t.x*e/this.R)},bounds:function(){var t=6378137*Math.PI;return o.bounds([-t,-t],[t,t])}()},o.CRS={latLngToPoint:function(t,e){var i=this.projection.project(t),n=this.scale(e);return this.transformation._transform(i,n)},pointToLatLng:function(t,e){var i=this.scale(e),n=this.transformation.untransform(t,i);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var e=this.projection.bounds,i=this.scale(t),n=this.transformation.transform(e.min,i),s=this.transformation.transform(e.max,i);return o.bounds(n,s)},infinite:!1,wrapLatLng:function(t){var e=this.wrapLng?o.Util.wrapNum(t.lng,this.wrapLng,!0):t.lng,i=this.wrapLat?o.Util.wrapNum(t.lat,this.wrapLat,!0):t.lat,n=t.alt;return o.latLng(i,e,n)},wrapLatLngBounds:function(t){var e=t.getCenter(),i=this.wrapLatLng(e),n=e.lat-i.lat,s=e.lng-i.lng;if(0===n&&0===s)return t;var r=t.getSouthWest(),a=t.getNorthEast(),h=o.latLng({lat:r.lat-n,lng:r.lng-s}),l=o.latLng({lat:a.lat-n,lng:a.lng-s});return new o.LatLngBounds(h,l)}},o.CRS.Simple=o.extend({},o.CRS,{projection:o.Projection.LonLat,transformation:new o.Transformation(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0}),o.CRS.Earth=o.extend({},o.CRS,{wrapLng:[-180,180],R:6371e3,distance:function(t,e){var i=Math.PI/180,n=t.lat*i,o=e.lat*i,s=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((e.lng-t.lng)*i);return this.R*Math.acos(Math.min(s,1))}}),o.CRS.EPSG3857=o.extend({},o.CRS.Earth,{code:"EPSG:3857",projection:o.Projection.SphericalMercator,transformation:function(){var t=.5/(Math.PI*o.Projection.SphericalMercator.R);return new o.Transformation(t,.5,-t,.5)}()}),o.CRS.EPSG900913=o.extend({},o.CRS.EPSG3857,{code:"EPSG:900913"}),o.CRS.EPSG4326=o.extend({},o.CRS.Earth,{code:"EPSG:4326",projection:o.Projection.LonLat,transformation:new o.Transformation(1/180,1,-1/180,.5)}),o.Map=o.Evented.extend({options:{crs:o.CRS.EPSG3857,center:i,zoom:i,minZoom:i,maxZoom:i,layers:[],maxBounds:i,renderer:i,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,e){e=o.setOptions(this,e),this._initContainer(t),this._initLayout(),this._onResize=o.bind(this._onResize,this),this._initEvents(),e.maxBounds&&this.setMaxBounds(e.maxBounds),e.zoom!==i&&(this._zoom=this._limitZoom(e.zoom)),e.center&&e.zoom!==i&&this.setView(o.latLng(e.center),e.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._zoomAnimated=o.DomUtil.TRANSITION&&o.Browser.any3d&&!o.Browser.mobileOpera&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),o.DomEvent.on(this._proxy,o.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,n){if(e=e===i?this._zoom:this._limitZoom(e),t=this._limitCenter(o.latLng(t),e,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&n!==!0){n.animate!==i&&(n.zoom=o.extend({animate:n.animate},n.zoom),n.pan=o.extend({animate:n.animate,duration:n.duration},n.pan));var s=this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan);if(s)return clearTimeout(this._sizeTimer),this}return this._resetView(t,e),this},setZoom:function(t,e){return this._loaded?this.setView(this.getCenter(),t,{zoom:e}):(this._zoom=t,this)},zoomIn:function(t,e){return t=t||(o.Browser.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom+t,e)},zoomOut:function(t,e){return t=t||(o.Browser.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom-t,e)},setZoomAround:function(t,e,i){var n=this.getZoomScale(e),s=this.getSize().divideBy(2),r=t instanceof o.Point?t:this.latLngToContainerPoint(t),a=r.subtract(s).multiplyBy(1-1/n),h=this.containerPointToLatLng(s.add(a));return this.setView(h,e,{zoom:i})},_getBoundsCenterZoom:function(t,e){e=e||{},t=t.getBounds?t.getBounds():o.latLngBounds(t);var i=o.point(e.paddingTopLeft||e.padding||[0,0]),n=o.point(e.paddingBottomRight||e.padding||[0,0]),s=this.getBoundsZoom(t,!1,i.add(n));s="number"==typeof e.maxZoom?Math.min(e.maxZoom,s):s;var r=n.subtract(i).divideBy(2),a=this.project(t.getSouthWest(),s),h=this.project(t.getNorthEast(),s),l=this.unproject(a.add(h).divideBy(2).add(r),s);return{center:l,zoom:s}},fitBounds:function(t,e){if(t=o.latLngBounds(t),!t.isValid())throw new Error("Bounds are not valid.");var i=this._getBoundsCenterZoom(t,e);return this.setView(i.center,i.zoom,e)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,e){return this.setView(t,this._zoom,{pan:e})},panBy:function(t,e){if(t=o.point(t).round(),e=e||{},!t.x&&!t.y)return this.fire("moveend");if(e.animate!==!0&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new o.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire("movestart"),e.animate!==!1){o.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var i=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},flyTo:function(t,e,n){function s(t){var e=t?-1:1,i=t?v:g,n=v*v-g*g+e*L*L*y*y,o=2*i*L*y,s=n/o,r=Math.sqrt(s*s+1)-s,a=r<1e-9?-18:Math.log(r);return a}function r(t){return(Math.exp(t)-Math.exp(-t))/2}function a(t){return(Math.exp(t)+Math.exp(-t))/2}function h(t){return r(t)/a(t)}function l(t){return g*(a(x)/a(x+P*t))}function u(t){return g*(a(x)*h(x+P*t)-r(x))/L}function c(t){return 1-Math.pow(1-t,1.5)}function d(){var i=(Date.now()-w)/T,n=c(i)*b;i<=1?(this._flyToFrame=o.Util.requestAnimFrame(d,this),this._move(this.unproject(_.add(m.subtract(_).multiplyBy(u(n)/y)),f),this.getScaleZoom(g/l(n),f),{flyTo:!0})):this._move(t,e)._moveEnd(!0)}if(n=n||{},n.animate===!1||!o.Browser.any3d)return this.setView(t,e,n);this._stop();var _=this.project(this.getCenter()),m=this.project(t),p=this.getSize(),f=this._zoom;t=o.latLng(t),e=e===i?f:e;var g=Math.max(p.x,p.y),v=g*this.getZoomScale(f,e),y=m.distanceTo(_)||1,P=1.42,L=P*P,x=s(0),w=Date.now(),b=(s(1)-x)/P,T=n.duration?1e3*n.duration:1e3*b*.8;return this._moveStart(!0),d.call(this),this},flyToBounds:function(t,e){var i=this._getBoundsCenterZoom(t,e);return this.flyTo(i.center,i.zoom,e)},setMaxBounds:function(t){return t=o.latLngBounds(t),t.isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){return this.options.minZoom=t,this._loaded&&this.getZoom()<this.options.minZoom?this.setZoom(t):this},setMaxZoom:function(t){return this.options.maxZoom=t,this._loaded&&this.getZoom()>this.options.maxZoom?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,o.latLngBounds(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=o.extend({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),s=i.divideBy(2).round(),r=n.subtract(s);return r.x||r.y?(t.animate&&t.pan?this.panBy(r):(t.pan&&this._rawPanBy(r),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o.bind(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){if(t=this._locateOptions=o.extend({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o.bind(this._handleGeolocationResponse,this),i=o.bind(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),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=t.code,i=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: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new o.LatLng(e,i),s=n.toBounds(t.coords.accuracy),r=this._locateOptions;if(r.setView){var a=this.getBoundsZoom(s);this.setView(n,r.maxZoom?Math.min(a,r.maxZoom):a)}var h={latlng:n,bounds:s,timestamp:t.timestamp};for(var l in t.coords)"number"==typeof t.coords[l]&&(h[l]=t.coords[l]);this.fire("locationfound",h)},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),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=i,this._containerId=i}o.DomUtil.remove(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire("unload");for(var t in this._layers)this._layers[t].remove();return this},createPane:function(t,e){var i="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),n=o.DomUtil.create("div",i,e||this._mapPane);return t&&(this._panes[t]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new o.LatLngBounds(e,i)},getMinZoom:function(){return this.options.minZoom===i?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===i?this._layersMaxZoom===i?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=o.latLngBounds(t),i=o.point(i||[0,0]);var n=this.getZoom()||0,s=this.getMinZoom(),r=this.getMaxZoom(),a=t.getNorthWest(),h=t.getSouthEast(),l=this.getSize().subtract(i),u=o.bounds(this.project(h,n),this.project(a,n)).getSize(),c=o.Browser.any3d?this.options.zoomSnap:1,d=Math.min(l.x/u.x,l.y/u.y);return n=this.getScaleZoom(d,n),c&&(n=Math.round(n/(c/100))*(c/100),n=e?Math.ceil(n/c)*c:Math.floor(n/c)*c),Math.max(s,Math.min(r,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new o.Point(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new o.Bounds(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(t===i?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 n=this.options.crs;return e=e===i?this._zoom:e,n.scale(t)/n.scale(e)},getScaleZoom:function(t,e){var n=this.options.crs;e=e===i?this._zoom:e;var o=n.zoom(t*n.scale(e));return isNaN(o)?1/0:o},project:function(t,e){return e=e===i?this._zoom:e,this.options.crs.latLngToPoint(o.latLng(t),e)},unproject:function(t,e){return e=e===i?this._zoom:e,this.options.crs.pointToLatLng(o.point(t),e)},layerPointToLatLng:function(t){var e=o.point(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(o.latLng(t))._round();return e._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(o.latLng(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(o.latLngBounds(t))},distance:function(t,e){return this.options.crs.distance(o.latLng(t),o.latLng(e))},containerPointToLayerPoint:function(t){return o.point(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return o.point(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(o.point(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(o.latLng(t)))},mouseEventToContainerPoint:function(t){return o.DomEvent.getMousePosition(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=o.DomUtil.get(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");o.DomEvent.addListener(e,"scroll",this._onScroll,this),this._containerId=o.Util.stamp(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&o.Browser.any3d,
-o.DomUtil.addClass(t,"leaflet-container"+(o.Browser.touch?" leaflet-touch":"")+(o.Browser.retina?" leaflet-retina":"")+(o.Browser.ielt9?" leaflet-oldie":"")+(o.Browser.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=o.DomUtil.getStyle(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==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),o.DomUtil.setPosition(this._mapPane,new o.Point(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(o.DomUtil.addClass(t.markerPane,"leaflet-zoom-hide"),o.DomUtil.addClass(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){o.DomUtil.setPosition(this._mapPane,new o.Point(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t){return t&&this.fire("zoomstart"),this.fire("movestart")},_move:function(t,e,n){e===i&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(o||n&&n.pinch)&&this.fire("zoom",n),this.fire("move",n)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return o.Util.cancelAnimFrame(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){o.DomUtil.setPosition(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(e){if(o.DomEvent){this._targets={},this._targets[o.stamp(this._container)]=this;var i=e?"off":"on";o.DomEvent[i](this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&o.DomEvent[i](t,"resize",this._onResize,this),o.Browser.any3d&&this.options.transform3DLimit&&this[i]("moveend",this._onMoveEnd)}},_onResize:function(){o.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=o.Util.requestAnimFrame(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=[],s="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if(i=this._targets[o.stamp(r)],i&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(s&&!o.DomEvent._isExternalTarget(r,t))break;if(n.push(i),s)break}if(r===this._container)break;r=r.parentNode}return n.length||a||s||!o.DomEvent._isExternalTarget(r,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!o.DomEvent._skipped(t)){var e="keypress"===t.type&&13===t.keyCode?"click":t.type;"mousedown"===e&&o.DomUtil.preventOutline(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_fireDOMEvent:function(t,e,i){if("click"===t.type){var n=o.Util.extend({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}if(!t._stopped&&(i=(i||[]).concat(this._findEventTargets(t,e)),i.length)){var s=i[0];"contextmenu"===e&&s.listens(e,!0)&&o.DomEvent.preventDefault(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s instanceof o.Marker;r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h<i.length;h++)if(i[h].fire(e,r,!0),r.originalEvent._stopped||i[h].options.nonBubblingEvents&&o.Util.indexOf(i[h].options.nonBubblingEvents,e)!==-1)return}},_draggableMoved:function(t){return t=t.dragging&&t.dragging.enabled()?t:this,t.dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,e=this._handlers.length;t<e;t++)this._handlers[t].disable()},whenReady:function(t,e){return this._loaded?t.call(e||this,{target:this}):this.on("load",t,e),this},_getMapPanePos:function(){return o.DomUtil.getPosition(this._mapPane)||new o.Point(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,e){var n=t&&e!==i?this._getNewPixelOrigin(t,e):this.getPixelOrigin();return n.subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,e){var i=this.getSize()._divideBy(2);return this.project(t,e)._subtract(i)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,e,i){var n=this._getNewPixelOrigin(i,e);return this.project(t,e)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,e,i){var n=this._getNewPixelOrigin(i,e);return o.bounds([this.project(t.getSouthWest(),e)._subtract(n),this.project(t.getNorthWest(),e)._subtract(n),this.project(t.getSouthEast(),e)._subtract(n),this.project(t.getNorthEast(),e)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,e,i){if(!i)return t;var n=this.project(t,e),s=this.getSize().divideBy(2),r=new o.Bounds(n.subtract(s),n.add(s)),a=this._getBoundsOffset(r,i,e);return a.round().equals([0,0])?t:this.unproject(n.add(a),e)},_limitOffset:function(t,e){if(!e)return t;var i=this.getPixelBounds(),n=new o.Bounds(i.min.add(t),i.max.add(t));return t.add(this._getBoundsOffset(n,e))},_getBoundsOffset:function(t,e,i){var n=o.bounds(this.project(e.getNorthEast(),i),this.project(e.getSouthWest(),i)),s=n.min.subtract(t.min),r=n.max.subtract(t.max),a=this._rebound(s.x,-r.x),h=this._rebound(s.y,-r.y);return new o.Point(a,h)},_rebound:function(t,e){return t+e>0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=o.Browser.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){o.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._floor();return!((e&&e.animate)!==!0&&!this.getSize().contains(i))&&(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=o.DomUtil.create("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(e){var i=o.DomUtil.TRANSFORM,n=t.style[i];o.DomUtil.setTransform(t,this.project(e.center,e.zoom),this.getZoomScale(e.zoom,1)),n===t.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var e=this.getCenter(),i=this.getZoom();o.DomUtil.setTransform(t,this.project(e,i),this.getZoomScale(i,1))},this)},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),s=this._getCenterOffset(t)._divideBy(1-1/n);return!(i.animate!==!0&&!this.getSize().contains(s))&&(o.Util.requestAnimFrame(function(){this._moveStart(!0)._animateZoom(t,e,!0)},this),!0)},_animateZoom:function(t,e,i,n){i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,o.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),setTimeout(o.bind(this._onZoomTransitionEnd,this),250)},_onZoomTransitionEnd:function(){this._animatingZoom&&(o.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),o.Util.requestAnimFrame(function(){this._moveEnd(!0)},this))}}),o.map=function(t,e){return new o.Map(t,e)},o.Layer=o.Evented.extend({options:{pane:"overlayPane",nonBubblingEvents:[],attribution:null},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[o.stamp(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[o.stamp(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",function(){e.off(i,this)},this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}}),o.Map.include({addLayer:function(t){var e=o.stamp(t);return this._layers[e]?this:(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var e=o.stamp(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&o.stamp(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){t=t?o.Util.isArray(t)?t:[t]:[];for(var e=0,i=t.length;e<i;e++)this.addLayer(t[e])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[o.stamp(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var e=o.stamp(t);this._zoomBoundLayers[e]&&(delete this._zoomBoundLayers[e],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,e=-(1/0),n=this._getZoomSpan();for(var o in this._zoomBoundLayers){var s=this._zoomBoundLayers[o].options;t=s.minZoom===i?t:Math.min(t,s.minZoom),e=s.maxZoom===i?e:Math.max(e,s.maxZoom)}this._layersMaxZoom=e===-(1/0)?i:e,this._layersMinZoom=t===1/0?i:t,n!==this._getZoomSpan()&&this.fire("zoomlevelschange"),this.options.maxZoom===i&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===i&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var r="_leaflet_events";o.DomEvent={on:function(t,e,i,n){if("object"==typeof e)for(var s in e)this._on(t,s,e[s],i);else{e=o.Util.splitWords(e);for(var r=0,a=e.length;r<a;r++)this._on(t,e[r],i,n)}return this},off:function(t,e,i,n){if("object"==typeof e)for(var s in e)this._off(t,s,e[s],i);else{e=o.Util.splitWords(e);for(var r=0,a=e.length;r<a;r++)this._off(t,e[r],i,n)}return this},_on:function(e,i,n,s){var a=i+o.stamp(n)+(s?"_"+o.stamp(s):"");if(e[r]&&e[r][a])return this;var h=function(i){return n.call(s||e,i||t.event)},l=h;return o.Browser.pointer&&0===i.indexOf("touch")?this.addPointerListener(e,i,h,a):!o.Browser.touch||"dblclick"!==i||!this.addDoubleTapListener||o.Browser.pointer&&o.Browser.chrome?"addEventListener"in e?"mousewheel"===i?e.addEventListener("onwheel"in e?"wheel":"mousewheel",h,!1):"mouseenter"===i||"mouseleave"===i?(h=function(i){i=i||t.event,o.DomEvent._isExternalTarget(e,i)&&l(i)},e.addEventListener("mouseenter"===i?"mouseover":"mouseout",h,!1)):("click"===i&&o.Browser.android&&(h=function(t){return o.DomEvent._filterClick(t,l)}),e.addEventListener(i,h,!1)):"attachEvent"in e&&e.attachEvent("on"+i,h):this.addDoubleTapListener(e,h,a),e[r]=e[r]||{},e[r][a]=h,this},_off:function(t,e,i,n){var s=e+o.stamp(i)+(n?"_"+o.stamp(n):""),a=t[r]&&t[r][s];return a?(o.Browser.pointer&&0===e.indexOf("touch")?this.removePointerListener(t,e,s):o.Browser.touch&&"dblclick"===e&&this.removeDoubleTapListener?this.removeDoubleTapListener(t,s):"removeEventListener"in t?"mousewheel"===e?t.removeEventListener("onwheel"in t?"wheel":"mousewheel",a,!1):t.removeEventListener("mouseenter"===e?"mouseover":"mouseleave"===e?"mouseout":e,a,!1):"detachEvent"in t&&t.detachEvent("on"+e,a),t[r][s]=null,this):this},stopPropagation:function(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,o.DomEvent._skipped(t),this},disableScrollPropagation:function(t){return o.DomEvent.on(t,"mousewheel",o.DomEvent.stopPropagation)},disableClickPropagation:function(t){var e=o.DomEvent.stopPropagation;return o.DomEvent.on(t,o.Draggable.START.join(" "),e),o.DomEvent.on(t,{click:o.DomEvent._fakeStop,dblclick:e})},preventDefault:function(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this},stop:function(t){return o.DomEvent.preventDefault(t).stopPropagation(t)},getMousePosition:function(t,e){if(!e)return new o.Point(t.clientX,t.clientY);var i=e.getBoundingClientRect();return new o.Point(t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop)},_wheelPxFactor:o.Browser.win&&o.Browser.chrome?2:o.Browser.gecko?t.devicePixelRatio:1,getWheelDelta:function(t){return o.Browser.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/o.DomEvent._wheelPxFactor:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0},_skipEvents:{},_fakeStop:function(t){o.DomEvent._skipEvents[t.type]=!0},_skipped:function(t){var e=this._skipEvents[t.type];return this._skipEvents[t.type]=!1,e},_isExternalTarget:function(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t},_filterClick:function(t,e){var i=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=o.DomEvent._lastClick&&i-o.DomEvent._lastClick;return n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated?void o.DomEvent.stop(t):(o.DomEvent._lastClick=i,void e(t))}},o.DomEvent.addListener=o.DomEvent.on,o.DomEvent.removeListener=o.DomEvent.off,o.PosAnimation=o.Evented.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=o.DomUtil.getPosition(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=o.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;e<i?this._runFrame(this._easeOut(e/i),t):(this._runFrame(1),this._complete())},_runFrame:function(t,e){var i=this._startPos.add(this._offset.multiplyBy(t));e&&i._round(),o.DomUtil.setPosition(this._el,i),this.fire("step")},_complete:function(){o.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),o.Projection.Mercator={R:6378137,R_MINOR:6356752.314245179,bounds:o.bounds([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,s=this.R_MINOR/i,r=Math.sqrt(1-s*s),a=r*Math.sin(n),h=Math.tan(Math.PI/4-n/2)/Math.pow((1-a)/(1+a),r/2);return n=-i*Math.log(Math.max(h,1e-10)),new o.Point(t.lng*e*i,n)},unproject:function(t){for(var e,i=180/Math.PI,n=this.R,s=this.R_MINOR/n,r=Math.sqrt(1-s*s),a=Math.exp(-t.y/n),h=Math.PI/2-2*Math.atan(a),l=0,u=.1;l<15&&Math.abs(u)>1e-7;l++)e=r*Math.sin(h),e=Math.pow((1-e)/(1+e),r/2),u=Math.PI/2-2*Math.atan(a*e)-h,h+=u;return new o.LatLng(h*i,t.x*i/n)}},o.CRS.EPSG3395=o.extend({},o.CRS.Earth,{code:"EPSG:3395",projection:o.Projection.Mercator,transformation:function(){var t=.5/(Math.PI*o.Projection.Mercator.R);return new o.Transformation(t,.5,-t,.5)}()}),o.GridLayer=o.Layer.extend({options:{tileSize:256,opacity:1,updateWhenIdle:o.Browser.mobile,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:i,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){o.setOptions(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),o.DomUtil.remove(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=null},bringToFront:function(){return this._map&&(o.DomUtil.toFront(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(o.DomUtil.toBack(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return e.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof o.Point?t:new o.Point(t,t)},_updateZIndex:function(){this._container&&this.options.zIndex!==i&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var e,i=this.getPane().children,n=-t(-(1/0),1/0),o=0,s=i.length;o<s;o++)e=i[o].style.zIndex,i[o]!==this._container&&e&&(n=t(n,+e));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!o.Browser.ielt9){o.DomUtil.setOpacity(this._container,this.options.opacity);var t=+new Date,e=!1,i=!1;for(var n in this._tiles){var s=this._tiles[n];if(s.current&&s.loaded){var r=Math.min(1,(t-s.loaded)/200);o.DomUtil.setOpacity(s.el,r),r<1?e=!0:(s.active&&(i=!0),s.active=!0)}}i&&!this._noPrune&&this._pruneTiles(),e&&(o.Util.cancelAnimFrame(this._fadeFrame),this._fadeFrame=o.Util.requestAnimFrame(this._updateOpacity,this))}},_initContainer:function(){this._container||(this._container=o.DomUtil.create("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,e=this.options.maxZoom;if(t===i)return i;for(var n in this._levels)this._levels[n].el.children.length||n===t?this._levels[n].el.style.zIndex=e-Math.abs(t-n):(o.DomUtil.remove(this._levels[n].el),this._removeTilesAtZoom(n),delete this._levels[n]);var s=this._levels[t],r=this._map;return s||(s=this._levels[t]={},s.el=o.DomUtil.create("div","leaflet-tile-container leaflet-zoom-animated",this._container),s.el.style.zIndex=e,s.origin=r.project(r.unproject(r.getPixelOrigin()),t).round(),s.zoom=t,this._setZoomTransform(s,r.getCenter(),r.getZoom()),o.Util.falseFn(s.el.offsetWidth)),this._level=s,s},_pruneTiles:function(){if(this._map){var t,e,i=this._map.getZoom();if(i>this.options.maxZoom||i<this.options.minZoom)return void this._removeAllTiles();for(t in this._tiles)e=this._tiles[t],e.retain=e.current;for(t in this._tiles)if(e=this._tiles[t],e.current&&!e.active){var n=e.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}},_removeTilesAtZoom:function(t){for(var e in this._tiles)this._tiles[e].coords.z===t&&this._removeTile(e)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)o.DomUtil.remove(this._levels[t].el),delete this._levels[t];this._removeAllTiles(),this._tileZoom=null},_retainParent:function(t,e,i,n){var s=Math.floor(t/2),r=Math.floor(e/2),a=i-1,h=new o.Point(+s,+r);h.z=+a;var l=this._tileCoordsToKey(h),u=this._tiles[l];return u&&u.active?(u.retain=!0,!0):(u&&u.loaded&&(u.retain=!0),a>n&&this._retainParent(s,r,a,n))},_retainChildren:function(t,e,i,n){for(var s=2*t;s<2*t+2;s++)for(var r=2*e;r<2*e+2;r++){var a=new o.Point(s,r);a.z=i+1;var h=this._tileCoordsToKey(a),l=this._tiles[h];l&&l.active?l.retain=!0:(l&&l.loaded&&(l.retain=!0),i+1<n&&this._retainChildren(s,r,i+1,n))}},_resetView:function(t){var e=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),e,e)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_setView:function(t,e,n,o){var s=Math.round(e);(this.options.maxZoom!==i&&s>this.options.maxZoom||this.options.minZoom!==i&&s<this.options.minZoom)&&(s=i);var r=this.options.updateWhenZooming&&s!==this._tileZoom;o&&!r||(this._tileZoom=s,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),s!==i&&this._update(t),n||this._pruneTiles(),this._noPrune=!!n),this._setZoomTransforms(t,e)},_setZoomTransforms:function(t,e){for(var i in this._levels)this._setZoomTransform(this._levels[i],t,e)},_setZoomTransform:function(t,e,i){var n=this._map.getZoomScale(i,t.zoom),s=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e,i)).round();o.Browser.any3d?o.DomUtil.setTransform(t.el,s,n):o.DomUtil.setPosition(t.el,s)},_resetGrid:function(){var t=this._map,e=t.options.crs,i=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=e.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,e.wrapLng[0]],n).x/i.x),Math.ceil(t.project([0,e.wrapLng[1]],n).x/i.y)],this._wrapY=e.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([e.wrapLat[0],0],n).y/i.x),Math.ceil(t.project([e.wrapLat[1],0],n).y/i.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var e=this._map,i=e._animatingZoom?Math.max(e._animateToZoom,e.getZoom()):e.getZoom(),n=e.getZoomScale(i,this._tileZoom),s=e.project(t,this._tileZoom).floor(),r=e.getSize().divideBy(2*n);return new o.Bounds(s.subtract(r),s.add(r))},_update:function(t){var n=this._map;if(n){var s=n.getZoom();if(t===i&&(t=n.getCenter()),this._tileZoom!==i){var r=this._getTiledPixelBounds(t),a=this._pxBoundsToTileRange(r),h=a.getCenter(),l=[],u=this.options.keepBuffer,c=new o.Bounds(a.getBottomLeft().subtract([u,-u]),a.getTopRight().add([u,-u]));for(var d in this._tiles){var _=this._tiles[d].coords;_.z===this._tileZoom&&c.contains(o.point(_.x,_.y))||(this._tiles[d].current=!1)}if(Math.abs(s-this._tileZoom)>1)return void this._setView(t,s);for(var m=a.min.y;m<=a.max.y;m++)for(var p=a.min.x;p<=a.max.x;p++){var f=new o.Point(p,m);if(f.z=this._tileZoom,this._isValidTile(f)){var g=this._tiles[this._tileCoordsToKey(f)];g?g.current=!0:l.push(f)}}if(l.sort(function(t,e){return t.distanceTo(h)-e.distanceTo(h)}),0!==l.length){this._loading||(this._loading=!0,this.fire("loading"));var v=e.createDocumentFragment();for(p=0;p<l.length;p++)this._addTile(l[p],v);this._level.el.appendChild(v)}}}},_isValidTile:function(t){var e=this._map.options.crs;if(!e.infinite){var i=this._globalTileRange;if(!e.wrapLng&&(t.x<i.min.x||t.x>i.max.x)||!e.wrapLat&&(t.y<i.min.y||t.y>i.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return o.latLngBounds(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToBounds:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),s=n.add(i),r=e.unproject(n,t.z),a=e.unproject(s,t.z),h=new o.LatLngBounds(r,a);return this.options.noWrap||e.wrapLatLngBounds(h),h},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new o.Point(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(o.DomUtil.remove(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){o.DomUtil.addClass(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=o.Util.falseFn,t.onmousemove=o.Util.falseFn,o.Browser.ielt9&&this.options.opacity<1&&o.DomUtil.setOpacity(t,this.options.opacity),o.Browser.android&&!o.Browser.android23&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),o.bind(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&o.Util.requestAnimFrame(o.bind(this._tileReady,this,t,null,s)),o.DomUtil.setPosition(s,i),this._tiles[n]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){if(this._map){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);i=this._tiles[n],i&&(i.loaded=+new Date,this._map._fadeAnimated?(o.DomUtil.setOpacity(i.el,0),o.Util.cancelAnimFrame(this._fadeFrame),this._fadeFrame=o.Util.requestAnimFrame(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(o.DomUtil.addClass(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),o.Browser.ielt9||!this._map._fadeAnimated?o.Util.requestAnimFrame(this._pruneTiles,this):setTimeout(o.bind(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new o.Point(this._wrapX?o.Util.wrapNum(t.x,this._wrapX):t.x,this._wrapY?o.Util.wrapNum(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new o.Bounds(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}}),o.gridLayer=function(t){return new o.GridLayer(t)},o.TileLayer=o.GridLayer.extend({options:{minZoom:0,maxZoom:18,maxNativeZoom:null,minNativeZoom:null,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,e=o.setOptions(this,e),e.detectRetina&&o.Browser.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),o.Browser.android||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url=t,e||this.redraw(),this},createTile:function(t,i){var n=e.createElement("img");return o.DomEvent.on(n,"load",o.bind(this._tileOnLoad,this,i,n)),o.DomEvent.on(n,"error",o.bind(this._tileOnError,this,i,n)),this.options.crossOrigin&&(n.crossOrigin=""),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:o.Browser.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=i),e["-y"]=i}return o.Util.template(this._url,o.extend(e,this.options))},_tileOnLoad:function(t,e){o.Browser.ielt9?setTimeout(o.bind(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.src!==n&&(e.src=n),t(i,e)},getTileSize:function(){var t=this._map,e=o.GridLayer.prototype.getTileSize.call(this),i=this._tileZoom+this.options.zoomOffset,n=this.options.minNativeZoom,s=this.options.maxNativeZoom;return null!==n&&i<n?e.divideBy(t.getZoomScale(n,i)).round():null!==s&&i>s?e.divideBy(t.getZoomScale(s,i)).round():e},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom,i=this.options.zoomReverse,n=this.options.zoomOffset,o=this.options.minNativeZoom,s=this.options.maxNativeZoom;return i&&(t=e-t),t+=n,null!==o&&t<o?o:null!==s&&t>s?s:t},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&(e=this._tiles[t].el,e.onload=o.Util.falseFn,e.onerror=o.Util.falseFn,e.complete||(e.src=o.Util.emptyImageUrl,o.DomUtil.remove(e)))}}),o.tileLayer=function(t,e){return new o.TileLayer(t,e)},o.TileLayer.WMS=o.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i=o.extend({},this.defaultWmsParams);for(var n in e)n in this.options||(i[n]=e[n]);e=o.setOptions(this,e),i.width=i.height=e.tileSize*(e.detectRetina&&o.Browser.retina?2:1),this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,o.TileLayer.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToBounds(t),i=this._crs.project(e.getNorthWest()),n=this._crs.project(e.getSouthEast()),s=(this._wmsVersion>=1.3&&this._crs===o.CRS.EPSG4326?[n.y,i.x,i.y,n.x]:[i.x,n.y,n.x,i.y]).join(","),r=o.TileLayer.prototype.getTileUrl.call(this,t);return r+o.Util.getParamString(this.wmsParams,r,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+s},setParams:function(t,e){return o.extend(this.wmsParams,t),e||this.redraw(),this}}),o.tileLayer.wms=function(t,e){return new o.TileLayer.WMS(t,e)},o.ImageOverlay=o.Layer.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1},initialize:function(t,e,i){this._url=t,this._bounds=o.latLngBounds(e),o.setOptions(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(o.DomUtil.addClass(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){o.DomUtil.remove(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&o.DomUtil.toFront(this._image),this},bringToBack:function(){return this._map&&o.DomUtil.toBack(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=t,this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._image=o.DomUtil.create("img","leaflet-image-layer "+(this._zoomAnimated?"leaflet-zoom-animated":""));t.onselectstart=o.Util.falseFn,t.onmousemove=o.Util.falseFn,t.onload=o.bind(this.fire,this,"load"),this.options.crossOrigin&&(t.crossOrigin=""),t.src=this._url,t.alt=this.options.alt},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;
-o.DomUtil.setTransform(this._image,i,e)},_reset:function(){var t=this._image,e=new o.Bounds(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();o.DomUtil.setPosition(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){o.DomUtil.setOpacity(this._image,this.options.opacity)}}),o.imageOverlay=function(t,e,i){return new o.ImageOverlay(t,e,i)},o.Icon=o.Class.extend({initialize:function(t){o.setOptions(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t);if(!i){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(i,e&&"IMG"===e.tagName?e:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,e){var i=this.options,n=i[e+"Size"];"number"==typeof n&&(n=[n,n]);var s=o.point(n),r=o.point("shadow"===e&&i.shadowAnchor||i.iconAnchor||s&&s.divideBy(2,!0));t.className="leaflet-marker-"+e+" "+(i.className||""),r&&(t.style.marginLeft=-r.x+"px",t.style.marginTop=-r.y+"px"),s&&(t.style.width=s.x+"px",t.style.height=s.y+"px")},_createImg:function(t,i){return i=i||e.createElement("img"),i.src=t,i},_getIconUrl:function(t){return o.Browser.retina&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),o.icon=function(t){return new o.Icon(t)},o.Icon.Default=o.Icon.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return o.Icon.Default.imagePath||(o.Icon.Default.imagePath=this._detectIconPath()),(this.options.imagePath||o.Icon.Default.imagePath)+o.Icon.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=o.DomUtil.create("div","leaflet-default-icon-path",e.body),i=o.DomUtil.getStyle(t,"background-image")||o.DomUtil.getStyle(t,"backgroundImage");return e.body.removeChild(t),0===i.indexOf("url")?i.replace(/^url\([\"\']?/,"").replace(/marker-icon\.png[\"\']?\)$/,""):""}}),o.Marker=o.Layer.extend({options:{icon:new o.Icon.Default,interactive:!0,draggable:!1,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",nonBubblingEvents:["click","dblclick","mouseover","mouseout","contextmenu"]},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var e=this._latlng;return this._latlng=o.latLng(t),this.update(),this.fire("move",{oldLatLng:e,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,e="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),i=t.icon.createIcon(this._icon),n=!1;i!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(i.title=t.title),t.alt&&(i.alt=t.alt)),o.DomUtil.addClass(i,e),t.keyboard&&(i.tabIndex="0"),this._icon=i,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var s=t.icon.createShadow(this._shadow),r=!1;s!==this._shadow&&(this._removeShadow(),r=!0),s&&(o.DomUtil.addClass(s,e),s.alt=""),this._shadow=s,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),s&&r&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),o.DomUtil.remove(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&o.DomUtil.remove(this._shadow),this._shadow=null},_setPos:function(t){o.DomUtil.setPosition(this._icon,t),this._shadow&&o.DomUtil.setPosition(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(e)},_initInteraction:function(){if(this.options.interactive&&(o.DomUtil.addClass(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),o.Handler.MarkerDrag)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new o.Handler.MarkerDrag(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;o.DomUtil.setOpacity(this._icon,t),this._shadow&&o.DomUtil.setOpacity(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor||[0,0]},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor||[0,0]}}),o.marker=function(t,e){return new o.Marker(t,e)},o.DivIcon=o.Icon.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:e.createElement("div"),n=this.options;if(i.innerHTML=n.html!==!1?n.html:"",n.bgPos){var s=o.point(n.bgPos);i.style.backgroundPosition=-s.x+"px "+-s.y+"px"}return this._setIconStyles(i,"icon"),i},createShadow:function(){return null}}),o.divIcon=function(t){return new o.DivIcon(t)},o.DivOverlay=o.Layer.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,e){o.setOptions(this,t),this._source=e},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&o.DomUtil.setOpacity(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&o.DomUtil.setOpacity(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(o.DomUtil.setOpacity(this._container,0),this._removeTimeout=setTimeout(o.bind(o.DomUtil.remove,o.DomUtil,this._container),200)):o.DomUtil.remove(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=o.latLng(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&o.DomUtil.toFront(this._container),this},bringToBack:function(){return this._map&&o.DomUtil.toBack(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,e="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof e)t.innerHTML=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(e)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=o.point(this.options.offset),i=this._getAnchor();this._zoomAnimated?o.DomUtil.setPosition(this._container,t.add(i)):e=e.add(t).add(i);var n=this._containerBottom=-e.y,s=this._containerLeft=-Math.round(this._containerWidth/2)+e.x;this._container.style.bottom=n+"px",this._container.style.left=s+"px"}},_getAnchor:function(){return[0,0]}}),o.Popup=o.DivOverlay.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){o.DivOverlay.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof o.Path||this._source.on("preclick",o.DomEvent.stopPropagation))},onRemove:function(t){o.DivOverlay.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof o.Path||this._source.off("preclick",o.DomEvent.stopPropagation))},getEvents:function(){var t=o.DivOverlay.prototype.getEvents.call(this);return("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",e=this._container=o.DomUtil.create("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated");if(this.options.closeButton){var i=this._closeButton=o.DomUtil.create("a",t+"-close-button",e);i.href="#close",i.innerHTML="×",o.DomEvent.on(i,"click",this._onCloseButtonClick,this)}var n=this._wrapper=o.DomUtil.create("div",t+"-content-wrapper",e);this._contentNode=o.DomUtil.create("div",t+"-content",n),o.DomEvent.disableClickPropagation(n).disableScrollPropagation(this._contentNode).on(n,"contextmenu",o.DomEvent.stopPropagation),this._tipContainer=o.DomUtil.create("div",t+"-tip-container",e),this._tip=o.DomUtil.create("div",t+"-tip",this._tipContainer)},_updateLayout:function(){var t=this._contentNode,e=t.style;e.width="",e.whiteSpace="nowrap";var i=t.offsetWidth;i=Math.min(i,this.options.maxWidth),i=Math.max(i,this.options.minWidth),e.width=i+1+"px",e.whiteSpace="",e.height="";var n=t.offsetHeight,s=this.options.maxHeight,r="leaflet-popup-scrolled";s&&n>s?(e.height=s+"px",o.DomUtil.addClass(t,r)):o.DomUtil.removeClass(t,r),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();o.DomUtil.setPosition(this._container,e.add(i))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,e=parseInt(o.DomUtil.getStyle(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,s=new o.Point(this._containerLeft,-i-this._containerBottom);s._add(o.DomUtil.getPosition(this._container));var r=t.layerPointToContainerPoint(s),a=o.point(this.options.autoPanPadding),h=o.point(this.options.autoPanPaddingTopLeft||a),l=o.point(this.options.autoPanPaddingBottomRight||a),u=t.getSize(),c=0,d=0;r.x+n+l.x>u.x&&(c=r.x+n-u.x+l.x),r.x-c-h.x<0&&(c=r.x-h.x),r.y+i+l.y>u.y&&(d=r.y+i-u.y+l.y),r.y-d-h.y<0&&(d=r.y-h.y),(c||d)&&t.fire("autopanstart").panBy([c,d])}},_onCloseButtonClick:function(t){this._close(),o.DomEvent.stop(t)},_getAnchor:function(){return o.point(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),o.popup=function(t,e){return new o.Popup(t,e)},o.Map.mergeOptions({closePopupOnClick:!0}),o.Map.include({openPopup:function(t,e,i){return t instanceof o.Popup||(t=new o.Popup(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),o.Layer.include({bindPopup:function(t,e){return t instanceof o.Popup?(o.setOptions(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new o.Popup(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){if(t instanceof o.Layer||(e=t,t=this),t instanceof o.FeatureGroup)for(var i in this._layers){t=this._layers[i];break}return e||(e=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),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=t.layer||t.target;if(this._popup&&this._map)return o.DomEvent.stop(t),e instanceof o.Path?void this.openPopup(t.layer||t.target,t.latlng):void(this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)}}),o.Tooltip=o.DivOverlay.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){o.DivOverlay.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){o.DivOverlay.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=o.DivOverlay.prototype.getEvents.call(this);return o.Browser.touch&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip",e=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=o.DomUtil.create("div",e)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e=this._map,i=this._container,n=e.latLngToContainerPoint(e.getCenter()),s=e.layerPointToContainerPoint(t),r=this.options.direction,a=i.offsetWidth,h=i.offsetHeight,l=o.point(this.options.offset),u=this._getAnchor();"top"===r?t=t.add(o.point(-a/2+l.x,-h+l.y+u.y,!0)):"bottom"===r?t=t.subtract(o.point(a/2-l.x,-l.y,!0)):"center"===r?t=t.subtract(o.point(a/2+l.x,h/2-u.y+l.y,!0)):"right"===r||"auto"===r&&s.x<n.x?(r="right",t=t.add(o.point(l.x+u.x,u.y-h/2+l.y,!0))):(r="left",t=t.subtract(o.point(a+u.x-l.x,h/2-u.y-l.y,!0))),o.DomUtil.removeClass(i,"leaflet-tooltip-right"),o.DomUtil.removeClass(i,"leaflet-tooltip-left"),o.DomUtil.removeClass(i,"leaflet-tooltip-top"),o.DomUtil.removeClass(i,"leaflet-tooltip-bottom"),o.DomUtil.addClass(i,"leaflet-tooltip-"+r),o.DomUtil.setPosition(i,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&o.DomUtil.setOpacity(this._container,t)},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(e)},_getAnchor:function(){return o.point(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}}),o.tooltip=function(t,e){return new o.Tooltip(t,e)},o.Map.include({openTooltip:function(t,e,i){return t instanceof o.Tooltip||(t=new o.Tooltip(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),o.Layer.include({bindTooltip:function(t,e){return t instanceof o.Tooltip?(o.setOptions(t,e),this._tooltip=t,t._source=this):(this._tooltip&&!e||(this._tooltip=o.tooltip(e,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var e=t?"off":"on",i={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?i.add=this._openTooltip:(i.mouseover=this._openTooltip,i.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(i.mousemove=this._moveTooltip),o.Browser.touch&&(i.click=this._openTooltip)),this[e](i),this._tooltipHandlersAdded=!t}},openTooltip:function(t,e){if(t instanceof o.Layer||(e=t,t=this),t instanceof o.FeatureGroup)for(var i in this._layers){t=this._layers[i];break}return e||(e=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,e),this._tooltip.options.interactive&&this._tooltip._container&&(o.DomUtil.addClass(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(o.DomUtil.removeClass(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var e=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(e,this._tooltip.options.sticky?t.latlng:i)},_moveTooltip:function(t){var e,i,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(e=this._map.mouseEventToContainerPoint(t.originalEvent),i=this._map.containerPointToLayerPoint(e),n=this._map.layerPointToLatLng(i)),this._tooltip.setLatLng(n)}}),o.LayerGroup=o.Layer.extend({initialize:function(t){this._layers={};var e,i;if(t)for(e=0,i=t.length;e<i;e++)this.addLayer(t[e])},addLayer:function(t){var e=this.getLayerId(t);return this._layers[e]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var e=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[e]&&this._map.removeLayer(this._layers[e]),delete this._layers[e],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){for(var t in this._layers)this.removeLayer(this._layers[t]);return this},invoke:function(t){var e,i,n=Array.prototype.slice.call(arguments,1);for(e in this._layers)i=this._layers[e],i[t]&&i[t].apply(i,n);return this},onAdd:function(t){for(var e in this._layers)t.addLayer(this._layers[e])},onRemove:function(t){for(var e in this._layers)t.removeLayer(this._layers[e])},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];for(var e in this._layers)t.push(this._layers[e]);return t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return o.stamp(t)}}),o.layerGroup=function(t){return new o.LayerGroup(t)},o.FeatureGroup=o.LayerGroup.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),o.LayerGroup.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),o.LayerGroup.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new o.LatLngBounds;for(var e in this._layers){var i=this._layers[e];t.extend(i.getBounds?i.getBounds():i.getLatLng())}return t}}),o.featureGroup=function(t){return new o.FeatureGroup(t)},o.Renderer=o.Layer.extend({options:{padding:.1},initialize:function(t){o.setOptions(this,t),o.stamp(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&o.DomUtil.addClass(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){o.DomUtil.remove(this._container),this.off("update",this._updatePaths,this)},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=o.DomUtil.getPosition(this._container),s=this._map.getSize().multiplyBy(.5+this.options.padding),r=this._map.project(this._center,e),a=this._map.project(t,e),h=a.subtract(r),l=s.multiplyBy(-i).add(n).add(s).subtract(h);o.Browser.any3d?o.DomUtil.setTransform(this._container,l,i):o.DomUtil.setPosition(this._container,l)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new o.Bounds(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),o.Map.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this.options.preferCanvas&&o.canvas()||o.svg()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||t===i)return!1;var e=this._paneRenderers[t];return e===i&&(e=o.SVG&&o.svg({pane:t})||o.Canvas&&o.canvas({pane:t}),this._paneRenderers[t]=e),e}}),o.Path=o.Layer.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return o.setOptions(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+(o.Browser.touch?10:0)}}),o.LineUtil={simplify:function(t,e){if(!e||!t.length)return t.slice();var i=e*e;return t=this._reducePoints(t,i),t=this._simplifyDP(t,i)},pointToSegmentDistance:function(t,e,i){return Math.sqrt(this._sqClosestPointOnSegment(t,e,i,!0))},closestPointOnSegment:function(t,e,i){return this._sqClosestPointOnSegment(t,e,i)},_simplifyDP:function(t,e){var n=t.length,o=typeof Uint8Array!=i+""?Uint8Array:Array,s=new o(n);s[0]=s[n-1]=1,this._simplifyDPStep(t,s,e,0,n-1);var r,a=[];for(r=0;r<n;r++)s[r]&&a.push(t[r]);return a},_simplifyDPStep:function(t,e,i,n,o){var s,r,a,h=0;for(r=n+1;r<=o-1;r++)a=this._sqClosestPointOnSegment(t[r],t[n],t[o],!0),a>h&&(s=r,h=a);h>i&&(e[s]=1,this._simplifyDPStep(t,e,i,n,s),this._simplifyDPStep(t,e,i,s,o))},_reducePoints:function(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;n<s;n++)this._sqDist(t[n],t[o])>e&&(i.push(t[n]),o=n);return o<s-1&&i.push(t[s-1]),i},clipSegment:function(t,e,i,n,o){var s,r,a,h=n?this._lastCode:this._getBitCode(t,i),l=this._getBitCode(e,i);for(this._lastCode=l;;){if(!(h|l))return[t,e];if(h&l)return!1;s=h||l,r=this._getEdgeIntersection(t,e,s,i,o),a=this._getBitCode(r,i),s===h?(t=r,h=a):(e=r,l=a)}},_getEdgeIntersection:function(t,e,i,n,s){var r,a,h=e.x-t.x,l=e.y-t.y,u=n.min,c=n.max;return 8&i?(r=t.x+h*(c.y-t.y)/l,a=c.y):4&i?(r=t.x+h*(u.y-t.y)/l,a=u.y):2&i?(r=c.x,a=t.y+l*(c.x-t.x)/h):1&i&&(r=u.x,a=t.y+l*(u.x-t.x)/h),new o.Point(r,a,s)},_getBitCode:function(t,e){var i=0;return t.x<e.min.x?i|=1:t.x>e.max.x&&(i|=2),t.y<e.min.y?i|=4:t.y>e.max.y&&(i|=8),i},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},_sqClosestPointOnSegment:function(t,e,i,n){var s,r=e.x,a=e.y,h=i.x-r,l=i.y-a,u=h*h+l*l;return u>0&&(s=((t.x-r)*h+(t.y-a)*l)/u,s>1?(r=i.x,a=i.y):s>0&&(r+=h*s,a+=l*s)),h=t.x-r,l=t.y-a,n?h*h+l*l:new o.Point(r,a)}},o.Polyline=o.Path.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,e){o.setOptions(this,e),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var e,i,n=1/0,s=null,r=o.LineUtil._sqClosestPointOnSegment,a=0,h=this._parts.length;a<h;a++)for(var l=this._parts[a],u=1,c=l.length;u<c;u++){e=l[u-1],i=l[u];var d=r(t,e,i,!0);d<n&&(n=d,s=r(t,e,i))}return s&&(s.distance=Math.sqrt(n)),s},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,e,i,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(t=0,e=0;t<h-1;t++)e+=a[t].distanceTo(a[t+1])/2;if(0===e)return this._map.layerPointToLatLng(a[0]);for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],i=o.distanceTo(s),n+=i,n>e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=o.latLng(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new o.LatLngBounds,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return o.Polyline._flat(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=o.Polyline._flat(t),n=0,s=t.length;n<s;n++)i?(e[n]=o.latLng(t[n]),this._bounds.extend(e[n])):e[n]=this._convertLatLngs(t[n]);return e},_project:function(){var t=new o.Bounds;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t);var e=this._clickTolerance(),i=new o.Point(e,e);this._bounds.isValid()&&t.isValid()&&(t.min._subtract(i),t.max._add(i),this._pxBounds=t)},_projectLatlngs:function(t,e,i){var n,s,r=t[0]instanceof o.LatLng,a=t.length;if(r){for(s=[],n=0;n<a;n++)s[n]=this._map.latLngToLayerPoint(t[n]),i.extend(s[n]);e.push(s)}else for(n=0;n<a;n++)this._projectLatlngs(t[n],e,i)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip)return void(this._parts=this._rings);var e,i,n,s,r,a,h,l=this._parts;for(e=0,n=0,s=this._rings.length;e<s;e++)for(h=this._rings[e],i=0,r=h.length;i<r-1;i++)a=o.LineUtil.clipSegment(h[i],h[i+1],t,i,!0),a&&(l[n]=l[n]||[],l[n].push(a[0]),a[1]===h[i+1]&&i!==r-2||(l[n].push(a[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,e=this.options.smoothFactor,i=0,n=t.length;i<n;i++)t[i]=o.LineUtil.simplify(t[i],e)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)}}),o.polyline=function(t,e){return new o.Polyline(t,e)},o.Polyline._flat=function(t){return!o.Util.isArray(t[0])||"object"!=typeof t[0][0]&&"undefined"!=typeof t[0][0]},o.PolyUtil={},o.PolyUtil.clipPolygon=function(t,e,i){var n,s,r,a,h,l,u,c,d,_=[1,4,2,8],m=o.LineUtil;for(s=0,u=t.length;s<u;s++)t[s]._code=m._getBitCode(t[s],e);for(a=0;a<4;a++){for(c=_[a],n=[],s=0,u=t.length,r=u-1;s<u;r=s++)h=t[s],l=t[r],h._code&c?l._code&c||(d=m._getEdgeIntersection(l,h,c,e,i),d._code=m._getBitCode(d,e),n.push(d)):(l._code&c&&(d=m._getEdgeIntersection(l,h,c,e,i),d._code=m._getBitCode(d,e),n.push(d)),n.push(h));t=n}return t},o.Polygon=o.Polyline.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,e,i,n,o,s,r,a,h,l=this._rings[0],u=l.length;if(!u)return null;for(s=r=a=0,t=0,e=u-1;t<u;e=t++)i=l[t],n=l[e],o=i.y*n.x-n.y*i.x,r+=(i.x+n.x)*o,a+=(i.y+n.y)*o,s+=3*o;return h=0===s?l[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var e=o.Polyline.prototype._convertLatLngs.call(this,t),i=e.length;return i>=2&&e[0]instanceof o.LatLng&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){o.Polyline.prototype._setLatLngs.call(this,t),o.Polyline._flat(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return o.Polyline._flat(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new o.Point(e,e);if(t=new o.Bounds(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip)return void(this._parts=this._rings);for(var n,s=0,r=this._rings.length;s<r;s++)n=o.PolyUtil.clipPolygon(this._rings[s],t,!0),n.length&&this._parts.push(n)}},_updatePath:function(){this._renderer._updatePoly(this,!0)}}),o.polygon=function(t,e){return new o.Polygon(t,e)},o.Rectangle=o.Polygon.extend({initialize:function(t,e){o.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=o.latLngBounds(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}}),o.rectangle=function(t,e){return new o.Rectangle(t,e)},o.CircleMarker=o.Path.extend({options:{fill:!0,radius:10},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=o.latLng(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var e=t&&t.radius||this._radius;return o.Path.prototype.setStyle.call(this,t),this.setRadius(e),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,e=this._radiusY||t,i=this._clickTolerance(),n=[t+i,e+i];this._pxBounds=new o.Bounds(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)}}),o.circleMarker=function(t,e){return new o.CircleMarker(t,e)},o.Circle=o.CircleMarker.extend({initialize:function(t,e,i){if("number"==typeof e&&(e=o.extend({},i,{radius:e})),o.setOptions(this,e),this._latlng=o.latLng(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,
-this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new o.LatLngBounds(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:o.Path.prototype.setStyle,_project:function(){var t=this._latlng.lng,e=this._latlng.lat,i=this._map,n=i.options.crs;if(n.distance===o.CRS.Earth.distance){var s=Math.PI/180,r=this._mRadius/o.CRS.Earth.R/s,a=i.project([e+r,t]),h=i.project([e-r,t]),l=a.add(h).divideBy(2),u=i.unproject(l).lat,c=Math.acos((Math.cos(r*s)-Math.sin(e*s)*Math.sin(u*s))/(Math.cos(e*s)*Math.cos(u*s)))/s;(isNaN(c)||0===c)&&(c=r/Math.cos(Math.PI/180*e)),this._point=l.subtract(i.getPixelOrigin()),this._radius=isNaN(c)?0:Math.max(Math.round(l.x-i.project([u,t-c]).x),1),this._radiusY=Math.max(Math.round(l.y-a.y),1)}else{var d=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=i.latLngToLayerPoint(this._latlng),this._radius=this._point.x-i.latLngToLayerPoint(d).x}this._updateBounds()}}),o.circle=function(t,e,i){return new o.Circle(t,e,i)},o.SVG=o.Renderer.extend({getEvents:function(){var t=o.Renderer.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=o.SVG.create("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=o.SVG.create("g"),this._container.appendChild(this._rootGroup)},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){o.Renderer.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),o.DomUtil.setPosition(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=o.SVG.create("path");t.options.className&&o.DomUtil.addClass(e,t.options.className),t.options.interactive&&o.DomUtil.addClass(e,"leaflet-interactive"),this._updateStyle(t),this._layers[o.stamp(t)]=t},_addPath:function(t){this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){o.DomUtil.remove(t._path),t.removeInteractiveTarget(t._path),delete this._layers[o.stamp(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,o.SVG.pointsToPath(t._parts,e))},_updateCircle:function(t){var e=t._point,i=t._radius,n=t._radiusY||i,o="a"+i+","+n+" 0 1,0 ",s=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+o+2*i+",0 "+o+2*-i+",0 ";this._setPath(t,s)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){o.DomUtil.toFront(t._path)},_bringToBack:function(t){o.DomUtil.toBack(t._path)}}),o.extend(o.SVG,{create:function(t){return e.createElementNS("http://www.w3.org/2000/svg",t)},pointsToPath:function(t,e){var i,n,s,r,a,h,l="";for(i=0,s=t.length;i<s;i++){for(a=t[i],n=0,r=a.length;n<r;n++)h=a[n],l+=(n?"L":"M")+h.x+" "+h.y;l+=e?o.Browser.svg?"z":"x":""}return l||"M0 0"}}),o.Browser.svg=!(!e.createElementNS||!o.SVG.create("svg").createSVGRect),o.svg=function(t){return o.Browser.svg||o.Browser.vml?new o.SVG(t):null},o.Browser.vml=!o.Browser.svg&&function(){try{var t=e.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),o.SVG.include(o.Browser.vml?{_initContainer:function(){this._container=o.DomUtil.create("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(o.Renderer.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=o.SVG.create("shape");o.DomUtil.addClass(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=o.SVG.create("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[o.stamp(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;o.DomUtil.remove(e),t.removeInteractiveTarget(e),delete this._layers[o.stamp(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,s=t._container;s.stroked=!!n.stroke,s.filled=!!n.fill,n.stroke?(e||(e=t._stroke=o.SVG.create("stroke")),s.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=o.Util.isArray(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(s.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=o.SVG.create("fill")),s.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(s.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){o.DomUtil.toFront(t._container)},_bringToBack:function(t){o.DomUtil.toBack(t._container)}}:{}),o.Browser.vml&&(o.SVG.create=function(){try{return e.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return e.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}()),o.Canvas=o.Renderer.extend({getEvents:function(){var t=o.Renderer.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){o.Renderer.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=e.createElement("canvas");o.DomEvent.on(t,"mousemove",o.Util.throttle(this._onMouseMove,32,this),this).on(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this).on(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_updatePaths:function(){if(!this._postponeUpdatePaths){var t;this._redrawBounds=null;for(var e in this._layers)t=this._layers[e],t._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},o.Renderer.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=o.Browser.retina?2:1;o.DomUtil.setPosition(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",o.Browser.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){o.Renderer.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[o.stamp(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[o.stamp(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(t.options.dashArray){var e,i=t.options.dashArray.split(","),n=[];for(e=0;e<i.length;e++)n.push(Number(i[e]));t.options._dashArray=n}},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||o.Util.requestAnimFrame(this._redraw,this))},_extendRedrawBounds:function(t){var e=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new o.Bounds,this._redrawBounds.extend(t._pxBounds.min.subtract([e,e])),this._redrawBounds.extend(t._pxBounds.max.add([e,e]))},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t=this._redrawBounds;if(t){var e=t.getSize();this._ctx.clearRect(t.min.x,t.min.y,e.x,e.y)}else this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var t,e=this._redrawBounds;if(this._ctx.save(),e){var i=e.getSize();this._ctx.beginPath(),this._ctx.rect(e.min.x,e.min.y,i.x,i.y),this._ctx.clip()}this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!e||t._pxBounds&&t._pxBounds.intersects(e))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,e){if(this._drawing){var i,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),h.setLineDash&&h.setLineDash(t.options&&t.options._dashArray||[]),i=0;i<a;i++){for(n=0,o=r[i].length;n<o;n++)s=r[i][n],h[n?"lineTo":"moveTo"](s.x,s.y);e&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var e=t._point,i=this._ctx,n=t._radius,o=(t._radiusY||n)/n;this._drawnLayers[t._leaflet_id]=t,1!==o&&(i.save(),i.scale(1,o)),i.beginPath(),i.arc(e.x,e.y/o,n,0,2*Math.PI,!1),1!==o&&i.restore(),this._fillStroke(i,t)}},_fillStroke:function(t,e){var i=e.options;i.fill&&(t.globalAlpha=i.fillOpacity,t.fillStyle=i.fillColor||i.color,t.fill(i.fillRule||"evenodd")),i.stroke&&0!==i.weight&&(t.globalAlpha=i.opacity,t.lineWidth=i.weight,t.strokeStyle=i.color,t.lineCap=i.lineCap,t.lineJoin=i.lineJoin,t.stroke())},_onClick:function(t){for(var e,i,n=this._map.mouseEventToLayerPoint(t),s=this._drawFirst;s;s=s.next)e=s.layer,e.options.interactive&&e._containsPoint(n)&&!this._map._draggableMoved(e)&&(i=e);i&&(o.DomEvent._fakeStop(t),this._fireEvent([i],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var e=this._map.mouseEventToLayerPoint(t);this._handleMouseHover(t,e)}},_handleMouseOut:function(t){var e=this._hoveredLayer;e&&(o.DomUtil.removeClass(this._container,"leaflet-interactive"),this._fireEvent([e],t,"mouseout"),this._hoveredLayer=null)},_handleMouseHover:function(t,e){for(var i,n,s=this._drawFirst;s;s=s.next)i=s.layer,i.options.interactive&&i._containsPoint(e)&&(n=i);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(o.DomUtil.addClass(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,e,i){this._map._fireDOMEvent(e,i||e.type,t)},_bringToFront:function(t){var e=t._order,i=e.next,n=e.prev;i&&(i.prev=n,n?n.next=i:i&&(this._drawFirst=i),e.prev=this._drawLast,this._drawLast.next=e,e.next=null,this._drawLast=e,this._requestRedraw(t))},_bringToBack:function(t){var e=t._order,i=e.next,n=e.prev;n&&(n.next=i,i?i.prev=n:n&&(this._drawLast=n),e.prev=null,e.next=this._drawFirst,this._drawFirst.prev=e,this._drawFirst=e,this._requestRedraw(t))}}),o.Browser.canvas=function(){return!!e.createElement("canvas").getContext}(),o.canvas=function(t){return o.Browser.canvas?new o.Canvas(t):null},o.Polyline.prototype._containsPoint=function(t,e){var i,n,s,r,a,h,l=this._clickTolerance();if(!this._pxBounds.contains(t))return!1;for(i=0,r=this._parts.length;i<r;i++)for(h=this._parts[i],n=0,a=h.length,s=a-1;n<a;s=n++)if((e||0!==n)&&o.LineUtil.pointToSegmentDistance(t,h[s],h[n])<=l)return!0;return!1},o.Polygon.prototype._containsPoint=function(t){var e,i,n,s,r,a,h,l,u=!1;if(!this._pxBounds.contains(t))return!1;for(s=0,h=this._parts.length;s<h;s++)for(e=this._parts[s],r=0,l=e.length,a=l-1;r<l;a=r++)i=e[r],n=e[a],i.y>t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||o.Polyline.prototype._containsPoint.call(this,t,!0)},o.CircleMarker.prototype._containsPoint=function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()},o.GeoJSON=o.FeatureGroup.extend({initialize:function(t,e){o.setOptions(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,s=o.Util.isArray(t)?t:t.features;if(s){for(e=0,i=s.length;e<i;e++)n=s[e],(n.geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var r=this.options;if(r.filter&&!r.filter(t))return this;var a=o.GeoJSON.geometryToLayer(t,r);return a?(a.feature=o.GeoJSON.asFeature(t),a.defaultOptions=a.options,this.resetStyle(a),r.onEachFeature&&r.onEachFeature(t,a),this.addLayer(a)):this},resetStyle:function(t){return t.options=o.Util.extend({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return this.eachLayer(function(e){this._setLayerStyle(e,t)},this)},_setLayerStyle:function(t,e){"function"==typeof e&&(e=e(t.feature)),t.setStyle&&t.setStyle(e)}}),o.extend(o.GeoJSON,{geometryToLayer:function(t,e){var i,n,s,r,a="Feature"===t.type?t.geometry:t,h=a?a.coordinates:null,l=[],u=e&&e.pointToLayer,c=e&&e.coordsToLatLng||this.coordsToLatLng;if(!h&&!a)return null;switch(a.type){case"Point":return i=c(h),u?u(t,i):new o.Marker(i);case"MultiPoint":for(s=0,r=h.length;s<r;s++)i=c(h[s]),l.push(u?u(t,i):new o.Marker(i));return new o.FeatureGroup(l);case"LineString":case"MultiLineString":return n=this.coordsToLatLngs(h,"LineString"===a.type?0:1,c),new o.Polyline(n,e);case"Polygon":case"MultiPolygon":return n=this.coordsToLatLngs(h,"Polygon"===a.type?1:2,c),new o.Polygon(n,e);case"GeometryCollection":for(s=0,r=a.geometries.length;s<r;s++){var d=this.geometryToLayer({geometry:a.geometries[s],type:"Feature",properties:t.properties},e);d&&l.push(d)}return new o.FeatureGroup(l);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(t){return new o.LatLng(t[1],t[0],t[2])},coordsToLatLngs:function(t,e,i){for(var n,o=[],s=0,r=t.length;s<r;s++)n=e?this.coordsToLatLngs(t[s],e-1,i):(i||this.coordsToLatLng)(t[s]),o.push(n);return o},latLngToCoords:function(t){return t.alt!==i?[t.lng,t.lat,t.alt]:[t.lng,t.lat]},latLngsToCoords:function(t,e,i){for(var n=[],s=0,r=t.length;s<r;s++)n.push(e?o.GeoJSON.latLngsToCoords(t[s],e-1,i):o.GeoJSON.latLngToCoords(t[s]));return!e&&i&&n.push(n[0]),n},getFeature:function(t,e){return t.feature?o.extend({},t.feature,{geometry:e}):o.GeoJSON.asFeature(e)},asFeature:function(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}});var a={toGeoJSON:function(){return o.GeoJSON.getFeature(this,{type:"Point",coordinates:o.GeoJSON.latLngToCoords(this.getLatLng())})}};o.Marker.include(a),o.Circle.include(a),o.CircleMarker.include(a),o.Polyline.prototype.toGeoJSON=function(){var t=!o.Polyline._flat(this._latlngs),e=o.GeoJSON.latLngsToCoords(this._latlngs,t?1:0);return o.GeoJSON.getFeature(this,{type:(t?"Multi":"")+"LineString",coordinates:e})},o.Polygon.prototype.toGeoJSON=function(){var t=!o.Polyline._flat(this._latlngs),e=t&&!o.Polyline._flat(this._latlngs[0]),i=o.GeoJSON.latLngsToCoords(this._latlngs,e?2:t?1:0,!0);return t||(i=[i]),o.GeoJSON.getFeature(this,{type:(e?"Multi":"")+"Polygon",coordinates:i})},o.LayerGroup.include({toMultiPoint:function(){var t=[];return this.eachLayer(function(e){t.push(e.toGeoJSON().geometry.coordinates)}),o.GeoJSON.getFeature(this,{type:"MultiPoint",coordinates:t})},toGeoJSON:function(){var t=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===t)return this.toMultiPoint();var e="GeometryCollection"===t,i=[];return this.eachLayer(function(t){if(t.toGeoJSON){var n=t.toGeoJSON();i.push(e?n.geometry:o.GeoJSON.asFeature(n))}}),e?o.GeoJSON.getFeature(this,{geometries:i,type:"GeometryCollection"}):{type:"FeatureCollection",features:i}}}),o.geoJSON=function(t,e){return new o.GeoJSON(t,e)},o.geoJson=o.geoJSON,o.Draggable=o.Evented.extend({options:{clickTolerance:3},statics:{START:o.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(t,e,i){this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(o.DomEvent.on(this._dragStartTarget,o.Draggable.START.join(" "),this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(o.Draggable._dragging===this&&this.finishDrag(),o.DomEvent.off(this._dragStartTarget,o.Draggable.START.join(" "),this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!o.DomUtil.hasClass(this._element,"leaflet-zoom-anim")&&!(o.Draggable._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(o.Draggable._dragging=this,this._preventOutline&&o.DomUtil.preventOutline(this._element),o.DomUtil.disableImageDrag(),o.DomUtil.disableTextSelection(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t;this._startPoint=new o.Point(i.clientX,i.clientY),o.DomEvent.on(e,o.Draggable.MOVE[t.type],this._onMove,this).on(e,o.Draggable.END[t.type],this._onUp,this)}},_onMove:function(i){if(!i._simulated&&this._enabled){if(i.touches&&i.touches.length>1)return void(this._moved=!0);var n=i.touches&&1===i.touches.length?i.touches[0]:i,s=new o.Point(n.clientX,n.clientY),r=s.subtract(this._startPoint);(r.x||r.y)&&(Math.abs(r.x)+Math.abs(r.y)<this.options.clickTolerance||(o.DomEvent.preventDefault(i),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=o.DomUtil.getPosition(this._element).subtract(r),o.DomUtil.addClass(e.body,"leaflet-dragging"),this._lastTarget=i.target||i.srcElement,t.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),o.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(r),this._moving=!0,o.Util.cancelAnimFrame(this._animRequest),this._lastEvent=i,this._animRequest=o.Util.requestAnimFrame(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),o.DomUtil.setPosition(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){o.DomUtil.removeClass(e.body,"leaflet-dragging"),this._lastTarget&&(o.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var t in o.Draggable.MOVE)o.DomEvent.off(e,o.Draggable.MOVE[t],this._onMove,this).off(e,o.Draggable.END[t],this._onUp,this);o.DomUtil.enableImageDrag(),o.DomUtil.enableTextSelection(),this._moved&&this._moving&&(o.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,o.Draggable._dragging=!1}}),o.Handler=o.Class.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}}),o.Map.mergeOptions({dragging:!0,inertia:!o.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),o.Map.Drag=o.Handler.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new o.Draggable(t._mapPane,t._container),this._draggable.on({down:this._onDown,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))}o.DomUtil.addClass(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){o.DomUtil.removeClass(this._map._container,"leaflet-grab"),o.DomUtil.removeClass(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},_onDown:function(){this._map._stop()},_onDragStart:function(){var t=this._map;if(this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=o.latLngBounds(this._map.options.maxBounds);this._offsetLimit=o.bounds(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),e-this._times[0]>50&&(this._positions.shift(),this._times.shift())}this._map.fire("move",t).fire("drag",t)},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.x<e.min.x&&(t.x=this._viscousLimit(t.x,e.min.x)),t.y<e.min.y&&(t.y=this._viscousLimit(t.y,e.min.y)),t.x>e.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,s=(n+e+i)%t-e-i,r=Math.abs(o+i)<Math.abs(s+i)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var e=this._map,i=e.options,n=!i.inertia||this._times.length<2;if(e.fire("dragend",t),n)e.fire("moveend");else{var s=this._lastPos.subtract(this._positions[0]),r=(this._lastTime-this._times[0])/1e3,a=i.easeLinearity,h=s.multiplyBy(a/r),l=h.distanceTo([0,0]),u=Math.min(i.inertiaMaxSpeed,l),c=h.multiplyBy(u/l),d=u/(i.inertiaDeceleration*a),_=c.multiplyBy(-d/2).round();_.x||_.y?(_=e._limitOffset(_,e.options.maxBounds),o.Util.requestAnimFrame(function(){e.panBy(_,{duration:d,easeLinearity:a,noMoveStart:!0,animate:!0})})):e.fire("moveend")}}}),o.Map.addInitHook("addHandler","dragging",o.Map.Drag),o.Map.mergeOptions({doubleClickZoom:!0}),o.Map.DoubleClickZoom=o.Handler.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,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}}),o.Map.addInitHook("addHandler","doubleClickZoom",o.Map.DoubleClickZoom),o.Map.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60}),o.Map.ScrollWheelZoom=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){o.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var e=o.DomEvent.getWheelDelta(t),i=this._map.options.wheelDebounceTime;this._delta+=e,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var n=Math.max(i-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(o.bind(this._performZoom,this),n),o.DomEvent.stop(t)},_performZoom:function(){var t=this._map,e=t.getZoom(),i=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=i?Math.ceil(o/i)*i:o,r=t._limitZoom(e+(this._delta>0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}}),o.Map.addInitHook("addHandler","scrollWheelZoom",o.Map.ScrollWheelZoom),o.extend(o.DomEvent,{_touchstart:o.Browser.msPointer?"MSPointerDown":o.Browser.pointer?"pointerdown":"touchstart",_touchend:o.Browser.msPointer?"MSPointerUp":o.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(t,e,i){function n(t){var e;if(o.Browser.pointer){if(!o.Browser.edge||"mouse"===t.pointerType)return;e=o.DomEvent._pointersCount}else e=t.touches.length;if(!(e>1)){var i=Date.now(),n=i-(r||i);a=t.touches?t.touches[0]:t,h=n>0&&n<=l,r=i}}function s(t){if(h&&!a.cancelBubble){if(o.Browser.pointer){if(!o.Browser.edge||"mouse"===t.pointerType)return;var i,n,s={};for(n in a)i=a[n],s[n]=i&&i.bind?i.bind(a):i;a=s}a.type="dblclick",e(a),r=null}}var r,a,h=!1,l=250,u="_leaflet_",c=this._touchstart,d=this._touchend;return t[u+c+i]=n,t[u+d+i]=s,t[u+"dblclick"+i]=e,t.addEventListener(c,n,!1),t.addEventListener(d,s,!1),t.addEventListener("dblclick",e,!1),this},removeDoubleTapListener:function(t,e){var i="_leaflet_",n=t[i+this._touchstart+e],s=t[i+this._touchend+e],r=t[i+"dblclick"+e];return t.removeEventListener(this._touchstart,n,!1),t.removeEventListener(this._touchend,s,!1),o.Browser.edge||t.removeEventListener("dblclick",r,!1),this}}),o.extend(o.DomEvent,{POINTER_DOWN:o.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:o.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:o.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:o.Browser.msPointer?"MSPointerCancel":"pointercancel",TAG_WHITE_LIST:["INPUT","SELECT","OPTION"],_pointers:{},_pointersCount:0,addPointerListener:function(t,e,i,n){return"touchstart"===e?this._addPointerStart(t,i,n):"touchmove"===e?this._addPointerMove(t,i,n):"touchend"===e&&this._addPointerEnd(t,i,n),this},removePointerListener:function(t,e,i){var n=t["_leaflet_"+e+i];return"touchstart"===e?t.removeEventListener(this.POINTER_DOWN,n,!1):"touchmove"===e?t.removeEventListener(this.POINTER_MOVE,n,!1):"touchend"===e&&(t.removeEventListener(this.POINTER_UP,n,!1),t.removeEventListener(this.POINTER_CANCEL,n,!1)),this},_addPointerStart:function(t,i,n){var s=o.bind(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(this.TAG_WHITE_LIST.indexOf(t.target.tagName)<0))return;o.DomEvent.preventDefault(t)}this._handlePointer(t,i)},this);if(t["_leaflet_touchstart"+n]=s,t.addEventListener(this.POINTER_DOWN,s,!1),!this._pointerDocListener){var r=o.bind(this._globalPointerUp,this);e.documentElement.addEventListener(this.POINTER_DOWN,o.bind(this._globalPointerDown,this),!0),e.documentElement.addEventListener(this.POINTER_MOVE,o.bind(this._globalPointerMove,this),!0),e.documentElement.addEventListener(this.POINTER_UP,r,!0),e.documentElement.addEventListener(this.POINTER_CANCEL,r,!0),this._pointerDocListener=!0}},_globalPointerDown:function(t){this._pointers[t.pointerId]=t,this._pointersCount++},_globalPointerMove:function(t){this._pointers[t.pointerId]&&(this._pointers[t.pointerId]=t)},_globalPointerUp:function(t){delete this._pointers[t.pointerId],this._pointersCount--},_handlePointer:function(t,e){t.touches=[];for(var i in this._pointers)t.touches.push(this._pointers[i]);t.changedTouches=[t],e(t)},_addPointerMove:function(t,e,i){var n=o.bind(function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&this._handlePointer(t,e)},this);t["_leaflet_touchmove"+i]=n,t.addEventListener(this.POINTER_MOVE,n,!1)},_addPointerEnd:function(t,e,i){var n=o.bind(function(t){this._handlePointer(t,e)},this);t["_leaflet_touchend"+i]=n,t.addEventListener(this.POINTER_UP,n,!1),t.addEventListener(this.POINTER_CANCEL,n,!1)}}),o.Map.mergeOptions({touchZoom:o.Browser.touch&&!o.Browser.android23,bounceAtZoomLimits:!0}),o.Map.TouchZoom=o.Handler.extend({addHooks:function(){o.DomUtil.addClass(this._map._container,"leaflet-touch-zoom"),o.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){o.DomUtil.removeClass(this._map._container,"leaflet-touch-zoom"),o.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var n=i.mouseEventToContainerPoint(t.touches[0]),s=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(n.add(s)._divideBy(2))),this._startDist=n.distanceTo(s),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),o.DomEvent.on(e,"touchmove",this._onTouchMove,this).on(e,"touchend",this._onTouchEnd,this),o.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&s<1||this._zoom>e.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0),this._moved=!0),o.Util.cancelAnimFrame(this._animRequest);var a=o.bind(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=o.Util.requestAnimFrame(a,this,!0),o.DomEvent.preventDefault(t)}},_onTouchEnd:function(){return this._moved&&this._zooming?(this._zooming=!1,o.Util.cancelAnimFrame(this._animRequest),o.DomEvent.off(e,"touchmove",this._onTouchMove).off(e,"touchend",this._onTouchEnd),void(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):void(this._zooming=!1)}}),o.Map.addInitHook("addHandler","touchZoom",o.Map.TouchZoom),o.Map.mergeOptions({tap:!0,tapTolerance:15}),o.Map.Tap=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(o.DomEvent.preventDefault(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new o.Point(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.addClass(n,"leaflet-active"),this._holdTimeout=setTimeout(o.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),o.DomEvent.on(e,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),o.DomEvent.off(e,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],n=i.target;n&&n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.removeClass(n,"leaflet-active"),this._simulateEvent("mouseup",i),
-this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new o.Point(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(i,n){var o=e.createEvent("MouseEvents");o._simulated=!0,n.target._simulatedClick=!0,o.initMouseEvent(i,!0,!0,t,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(o)}}),o.Browser.touch&&!o.Browser.pointer&&o.Map.addInitHook("addHandler","tap",o.Map.Tap),o.Map.mergeOptions({boxZoom:!0}),o.Map.BoxZoom=o.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane},addHooks:function(){o.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){o.DomEvent.off(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_resetState:function(){this._moved=!1},_onMouseDown:function(t){return!(!t.shiftKey||1!==t.which&&1!==t.button)&&(this._resetState(),o.DomUtil.disableTextSelection(),o.DomUtil.disableImageDrag(),this._startPoint=this._map.mouseEventToContainerPoint(t),void o.DomEvent.on(e,{contextmenu:o.DomEvent.stop,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this))},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=o.DomUtil.create("div","leaflet-zoom-box",this._container),o.DomUtil.addClass(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new o.Bounds(this._point,this._startPoint),i=e.getSize();o.DomUtil.setPosition(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(o.DomUtil.remove(this._box),o.DomUtil.removeClass(this._container,"leaflet-crosshair")),o.DomUtil.enableTextSelection(),o.DomUtil.enableImageDrag(),o.DomEvent.off(e,{contextmenu:o.DomEvent.stop,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){setTimeout(o.bind(this._resetState,this),0);var e=new o.LatLngBounds(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}}),o.Map.addInitHook("addHandler","boxZoom",o.Map.BoxZoom),o.Map.mergeOptions({keyboard:!0,keyboardPanDelta:80}),o.Map.Keyboard=o.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),o.DomEvent.on(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),o.DomEvent.off(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var i=e.body,n=e.documentElement,o=i.scrollTop||n.scrollTop,s=i.scrollLeft||n.scrollLeft;this._map._container.focus(),t.scrollTo(s,o)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var e,i,n=this._panKeys={},o=this.keyCodes;for(e=0,i=o.left.length;e<i;e++)n[o.left[e]]=[-1*t,0];for(e=0,i=o.right.length;e<i;e++)n[o.right[e]]=[t,0];for(e=0,i=o.down.length;e<i;e++)n[o.down[e]]=[0,t];for(e=0,i=o.up.length;e<i;e++)n[o.up[e]]=[0,-1*t]},_setZoomDelta:function(t){var e,i,n=this._zoomKeys={},o=this.keyCodes;for(e=0,i=o.zoomIn.length;e<i;e++)n[o.zoomIn[e]]=t;for(e=0,i=o.zoomOut.length;e<i;e++)n[o.zoomOut[e]]=-t},_addHooks:function(){o.DomEvent.on(e,"keydown",this._onKeyDown,this)},_removeHooks:function(){o.DomEvent.off(e,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e,i=t.keyCode,n=this._map;if(i in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;e=this._panKeys[i],t.shiftKey&&(e=o.point(e).multiplyBy(3)),n.panBy(e),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else if(i in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[i]);else{if(27!==i)return;n.closePopup()}o.DomEvent.stop(t)}}}),o.Map.addInitHook("addHandler","keyboard",o.Map.Keyboard),o.Handler.MarkerDrag=o.Handler.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new o.Draggable(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),o.DomUtil.addClass(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&o.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(t){var e=this._marker,i=e._shadow,n=o.DomUtil.getPosition(e._icon),s=e._map.layerPointToLatLng(n);i&&o.DomUtil.setPosition(i,n),e._latlng=s,t.latlng=s,t.oldLatLng=this._oldLatLng,e.fire("move",t).fire("drag",t)},_onDragEnd:function(t){delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),o.Control=o.Class.extend({options:{position:"topright"},initialize:function(t){o.setOptions(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(),n=t._controlCorners[i];return o.DomUtil.addClass(e,"leaflet-control"),i.indexOf("bottom")!==-1?n.insertBefore(e,n.firstChild):n.appendChild(e),this},remove:function(){return this._map?(o.DomUtil.remove(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),o.control=function(t){return new o.Control(t)},o.Map.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,s){var r=i+t+" "+i+s;e[t+s]=o.DomUtil.create("div",r,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=o.DomUtil.create("div",i+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){o.DomUtil.remove(this._controlContainer)}}),o.Control.Zoom=o.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=o.DomUtil.create("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._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,s){var r=o.DomUtil.create("a",i,n);return r.innerHTML=t,r.href="#",r.title=e,r.setAttribute("role","button"),r.setAttribute("aria-label",e),o.DomEvent.on(r,"mousedown dblclick",o.DomEvent.stopPropagation).on(r,"click",o.DomEvent.stop).on(r,"click",s,this).on(r,"click",this._refocusOnMap,this),r},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";o.DomUtil.removeClass(this._zoomInButton,e),o.DomUtil.removeClass(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&o.DomUtil.addClass(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&o.DomUtil.addClass(this._zoomInButton,e)}}),o.Map.mergeOptions({zoomControl:!0}),o.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new o.Control.Zoom,this.addControl(this.zoomControl))}),o.control.zoom=function(t){return new o.Control.Zoom(t)},o.Control.Attribution=o.Control.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){o.setOptions(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=o.DomUtil.create("div","leaflet-control-attribution"),o.DomEvent&&o.DomEvent.disableClickPropagation(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},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):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}}),o.Map.mergeOptions({attributionControl:!0}),o.Map.addInitHook(function(){this.options.attributionControl&&(new o.Control.Attribution).addTo(this)}),o.control.attribution=function(t){return new o.Control.Attribution(t)},o.Control.Scale=o.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=o.DomUtil.create("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=o.DomUtil.create("div",e,i)),t.imperial&&(this._iScale=o.DomUtil.create("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_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),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),o.control.scale=function(t){return new o.Control.Scale(t)},o.Control.Layers=o.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i<n?-1:n<i?1:0}},initialize:function(t,e,i){o.setOptions(this,i),this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){return this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this),this._container},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._map?this._update():this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);var e=this._getLayer(o.stamp(t));return e&&this._layers.splice(this._layers.indexOf(e),1),this._map?this._update():this},expand:function(){o.DomUtil.addClass(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._form.clientHeight?(o.DomUtil.addClass(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=t+"px"):o.DomUtil.removeClass(this._form,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return o.DomUtil.removeClass(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",e=this._container=o.DomUtil.create("div",t),i=this.options.collapsed;e.setAttribute("aria-haspopup",!0),o.DomEvent.disableClickPropagation(e),o.Browser.touch||o.DomEvent.disableScrollPropagation(e);var n=this._form=o.DomUtil.create("form",t+"-list");i&&(this._map.on("click",this.collapse,this),o.Browser.android||o.DomEvent.on(e,{mouseenter:this.expand,mouseleave:this.collapse},this));var s=this._layersLink=o.DomUtil.create("a",t+"-toggle",e);s.href="#",s.title="Layers",o.Browser.touch?o.DomEvent.on(s,"click",o.DomEvent.stop).on(s,"click",this.expand,this):o.DomEvent.on(s,"focus",this.expand,this),o.DomEvent.on(n,"click",function(){setTimeout(o.bind(this._onInputClick,this),0)},this),i||this.expand(),this._baseLayersList=o.DomUtil.create("div",t+"-base",n),this._separator=o.DomUtil.create("div",t+"-separator",n),this._overlaysList=o.DomUtil.create("div",t+"-overlays",n),e.appendChild(n)},_getLayer:function(t){for(var e=0;e<this._layers.length;e++)if(this._layers[e]&&o.stamp(this._layers[e].layer)===t)return this._layers[e]},_addLayer:function(t,e,i){t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:e,overlay:i}),this.options.sortLayers&&this._layers.sort(o.bind(function(t,e){return this.options.sortFunction(t.layer,e.layer,t.name,e.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex))},_update:function(){if(!this._container)return this;o.DomUtil.empty(this._baseLayersList),o.DomUtil.empty(this._overlaysList);var t,e,i,n,s=0;for(i=0;i<this._layers.length;i++)n=this._layers[i],this._addItem(n),e=e||n.overlay,t=t||!n.overlay,s+=n.overlay?0:1;return this.options.hideSingleBase&&(t=t&&s>1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(o.stamp(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,i){var n='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",o=e.createElement("div");return o.innerHTML=n,o.firstChild},_addItem:function(t){var i,n=e.createElement("label"),s=this._map.hasLayer(t.layer);t.overlay?(i=e.createElement("input"),i.type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=s):i=this._createRadioElement("leaflet-base-layers",s),i.layerId=o.stamp(t.layer),o.DomEvent.on(i,"click",this._onInputClick,this);var r=e.createElement("span");r.innerHTML=" "+t.name;var a=e.createElement("div");n.appendChild(a),a.appendChild(i),a.appendChild(r);var h=t.overlay?this._overlaysList:this._baseLayersList;return h.appendChild(n),this._checkDisabledLayers(),n},_onInputClick:function(){var t,e,i,n=this._form.getElementsByTagName("input"),o=[],s=[];this._handlingClick=!0;for(var r=n.length-1;r>=0;r--)t=n[r],e=this._getLayer(t.layerId).layer,i=this._map.hasLayer(e),t.checked&&!i?o.push(e):!t.checked&&i&&s.push(e);for(r=0;r<s.length;r++)this._map.removeLayer(s[r]);for(r=0;r<o.length;r++)this._map.addLayer(o[r]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,e,n=this._form.getElementsByTagName("input"),o=this._map.getZoom(),s=n.length-1;s>=0;s--)t=n[s],e=this._getLayer(t.layerId).layer,t.disabled=e.options.minZoom!==i&&o<e.options.minZoom||e.options.maxZoom!==i&&o>e.options.maxZoom},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),o.control.layers=function(t,e,i){return new o.Control.Layers(t,e,i)}}(window,document);
-\ No newline at end of file
+/* @preserve
+ * Leaflet 1.3.3+Detached: b22aef4aa71afd640bf8e91915b78899bf64ff89.b22aef4, a JS library for interactive maps. http://leafletjs.com
+ * (c) 2010-2018 Vladimir Agafonkin, (c) 2010-2011 CloudMade
+ */
+!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";function i(t){var i,e,n,o;for(e=1,n=arguments.length;e<n;e++){o=arguments[e];for(i in o)t[i]=o[i]}return t}function e(t,i){var e=Array.prototype.slice;if(t.bind)return t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return function(){return t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}function n(t){return t._leaflet_id=t._leaflet_id||++ei,t._leaflet_id}function o(t,i,e){var n,o,s,r;return r=function(){n=!1,o&&(s.apply(e,o),o=!1)},s=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(r,i),n=!0)}}function s(t,i,e){var n=i[1],o=i[0],s=n-o;return t===n&&e?t:((t-o)%s+s)%s+o}function r(){return!1}function a(t,i){var e=Math.pow(10,void 0===i?6:i);return Math.round(t*e)/e}function h(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function u(t){return h(t).split(/\s+/)}function l(t,i){t.hasOwnProperty("options")||(t.options=t.options?ii(t.options):{});for(var e in i)t.options[e]=i[e];return t.options}function c(t,i,e){var n=[];for(var o in t)n.push(encodeURIComponent(e?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(i&&-1!==i.indexOf("?")?"&":"?")+n.join("&")}function _(t,i){return t.replace(ni,function(t,e){var n=i[e];if(void 0===n)throw new Error("No value provided for variable "+t);return"function"==typeof n&&(n=n(i)),n})}function d(t,i){for(var e=0;e<t.length;e++)if(t[e]===i)return e;return-1}function p(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}function m(t){var i=+new Date,e=Math.max(0,16-(i-ri));return ri=i+e,window.setTimeout(t,e)}function f(t,i,n){if(!n||ai!==m)return ai.call(window,e(t,i));t.call(i)}function g(t){t&&hi.call(window,t)}function v(){}function y(t){if("undefined"!=typeof L&&L&&L.Mixin){t=oi(t)?t:[t];for(var i=0;i<t.length;i++)t[i]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}}function x(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}function w(t,i,e){return t instanceof x?t:oi(t)?new x(t[0],t[1]):void 0===t||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new x(t.x,t.y):new x(t,i,e)}function P(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function b(t,i){return!t||t instanceof P?t:new P(t,i)}function T(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function z(t,i){return t instanceof T?t:new T(t,i)}function M(t,i,e){if(isNaN(t)||isNaN(i))throw new Error("Invalid LatLng object: ("+t+", "+i+")");this.lat=+t,this.lng=+i,void 0!==e&&(this.alt=+e)}function C(t,i,e){return t instanceof M?t:oi(t)&&"object"!=typeof t[0]?3===t.length?new M(t[0],t[1],t[2]):2===t.length?new M(t[0],t[1]):null:void 0===t||null===t?t:"object"==typeof t&&"lat"in t?new M(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===i?null:new M(t,i,e)}function S(t,i,e,n){if(oi(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function Z(t,i,e,n){return new S(t,i,e,n)}function E(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function k(t,i){var e,n,o,s,r,a,h="";for(e=0,o=t.length;e<o;e++){for(n=0,s=(r=t[e]).length;n<s;n++)a=r[n],h+=(n?"L":"M")+a.x+" "+a.y;h+=i?Ji?"z":"x":""}return h||"M0 0"}function A(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}function B(t,i,e,n){return"touchstart"===i?O(t,e,n):"touchmove"===i?W(t,e,n):"touchend"===i&&H(t,e,n),this}function I(t,i,e){var n=t["_leaflet_"+i+e];return"touchstart"===i?t.removeEventListener(te,n,!1):"touchmove"===i?t.removeEventListener(ie,n,!1):"touchend"===i&&(t.removeEventListener(ee,n,!1),t.removeEventListener(ne,n,!1)),this}function O(t,i,n){var o=e(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(oe.indexOf(t.target.tagName)<0))return;Pt(t)}j(t,i)});t["_leaflet_touchstart"+n]=o,t.addEventListener(te,o,!1),re||(document.documentElement.addEventListener(te,R,!0),document.documentElement.addEventListener(ie,N,!0),document.documentElement.addEventListener(ee,D,!0),document.documentElement.addEventListener(ne,D,!0),re=!0)}function R(t){se[t.pointerId]=t,ae++}function N(t){se[t.pointerId]&&(se[t.pointerId]=t)}function D(t){delete se[t.pointerId],ae--}function j(t,i){t.touches=[];for(var e in se)t.touches.push(se[e]);t.changedTouches=[t],i(t)}function W(t,i,e){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&j(t,i)};t["_leaflet_touchmove"+e]=n,t.addEventListener(ie,n,!1)}function H(t,i,e){var n=function(t){j(t,i)};t["_leaflet_touchend"+e]=n,t.addEventListener(ee,n,!1),t.addEventListener(ne,n,!1)}function F(t,i,e){function n(t){var i;if(Vi){if(!bi||"mouse"===t.pointerType)return;i=ae}else i=t.touches.length;if(!(i>1)){var e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=e}}function o(t){if(a&&!r.cancelBubble){if(Vi){if(!bi||"mouse"===t.pointerType)return;var e,n,o={};for(n in r)e=r[n],o[n]=e&&e.bind?e.bind(r):e;r=o}r.type="dblclick",i(r),s=null}}var s,r,a=!1,h=250;return t[le+he+e]=n,t[le+ue+e]=o,t[le+"dblclick"+e]=i,t.addEventListener(he,n,!1),t.addEventListener(ue,o,!1),t.addEventListener("dblclick",i,!1),this}function U(t,i){var e=t[le+he+i],n=t[le+ue+i],o=t[le+"dblclick"+i];return t.removeEventListener(he,e,!1),t.removeEventListener(ue,n,!1),bi||t.removeEventListener("dblclick",o,!1),this}function V(t){return"string"==typeof t?document.getElementById(t):t}function q(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function G(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function K(t){var i=t.parentNode;i&&i.removeChild(t)}function Y(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function X(t){var i=t.parentNode;i.lastChild!==t&&i.appendChild(t)}function J(t){var i=t.parentNode;i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function $(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=et(t);return e.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function Q(t,i){if(void 0!==t.classList)for(var e=u(i),n=0,o=e.length;n<o;n++)t.classList.add(e[n]);else if(!$(t,i)){var s=et(t);it(t,(s?s+" ":"")+i)}}function tt(t,i){void 0!==t.classList?t.classList.remove(i):it(t,h((" "+et(t)+" ").replace(" "+i+" "," ")))}function it(t,i){void 0===t.className.baseVal?t.className=i:t.className.baseVal=i}function et(t){return void 0===t.className.baseVal?t.className:t.className.baseVal}function nt(t,i){"opacity"in t.style?t.style.opacity=i:"filter"in t.style&&ot(t,i)}function ot(t,i){var e=!1,n="DXImageTransform.Microsoft.Alpha";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+=" progid:"+n+"(opacity="+i+")"}function st(t){for(var i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return t[e];return!1}function rt(t,i,e){var n=i||new x(0,0);t.style[ce]=(Ri?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(e?" scale("+e+")":"")}function at(t,i){t._leaflet_pos=i,ji?rt(t,i):(t.style.left=i.x+"px",t.style.top=i.y+"px")}function ht(t){return t._leaflet_pos||new x(0,0)}function ut(){mt(window,"dragstart",Pt)}function lt(){ft(window,"dragstart",Pt)}function ct(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(_t(),me=t,fe=t.style.outline,t.style.outline="none",mt(window,"keydown",_t))}function _t(){me&&(me.style.outline=fe,me=void 0,fe=void 0,ft(window,"keydown",_t))}function dt(t){do{t=t.parentNode}while(!(t.offsetWidth&&t.offsetHeight||t===document.body));return t}function pt(t){var i=t.getBoundingClientRect();return{x:i.width/t.offsetWidth||1,y:i.height/t.offsetHeight||1,boundingClientRect:i}}function mt(t,i,e,n){if("object"==typeof i)for(var o in i)gt(t,o,i[o],e);else for(var s=0,r=(i=u(i)).length;s<r;s++)gt(t,i[s],e,n);return this}function ft(t,i,e,n){if("object"==typeof i)for(var o in i)vt(t,o,i[o],e);else if(i)for(var s=0,r=(i=u(i)).length;s<r;s++)vt(t,i[s],e,n);else{for(var a in t[ye])vt(t,a,t[ye][a]);delete t[ye]}return this}function gt(t,i,e,o){var s=i+n(e)+(o?"_"+n(o):"");if(t[ye]&&t[ye][s])return this;var r=function(i){return e.call(o||t,i||window.event)},a=r;Vi&&0===i.indexOf("touch")?B(t,i,r,s):!qi||"dblclick"!==i||!F||Vi&&Ei?"addEventListener"in t?"mousewheel"===i?t.addEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):"mouseenter"===i||"mouseleave"===i?(r=function(i){i=i||window.event,Ct(t,i)&&a(i)},t.addEventListener("mouseenter"===i?"mouseover":"mouseout",r,!1)):("click"===i&&zi&&(r=function(t){St(t,a)}),t.addEventListener(i,r,!1)):"attachEvent"in t&&t.attachEvent("on"+i,r):F(t,r,s),t[ye]=t[ye]||{},t[ye][s]=r}function vt(t,i,e,o){var s=i+n(e)+(o?"_"+n(o):""),r=t[ye]&&t[ye][s];if(!r)return this;Vi&&0===i.indexOf("touch")?I(t,i,s):!qi||"dblclick"!==i||!U||Vi&&Ei?"removeEventListener"in t?"mousewheel"===i?t.removeEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):t.removeEventListener("mouseenter"===i?"mouseover":"mouseleave"===i?"mouseout":i,r,!1):"detachEvent"in t&&t.detachEvent("on"+i,r):U(t,s),t[ye][s]=null}function yt(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,Mt(t),this}function xt(t){return gt(t,"mousewheel",yt),this}function wt(t){return mt(t,"mousedown touchstart dblclick",yt),gt(t,"click",zt),this}function Pt(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Lt(t){return Pt(t),yt(t),this}function bt(t,i){if(!i)return new x(t.clientX,t.clientY);var e=pt(i),n=e.boundingClientRect;return new x((t.clientX-n.left)/e.x-i.clientLeft,(t.clientY-n.top)/e.y-i.clientTop)}function Tt(t){return bi?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/xe:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function zt(t){we[t.type]=!0}function Mt(t){var i=we[t.type];return we[t.type]=!1,i}function Ct(t,i){var e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return e!==t}function St(t,i){var e=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=ge&&e-ge;n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated?Lt(t):(ge=e,i(t))}function Zt(t,i){if(!i||!t.length)return t.slice();var e=i*i;return t=Bt(t,e),t=kt(t,e)}function Et(t,i,e){return Math.sqrt(Dt(t,i,e,!0))}function kt(t,i){var e=t.length,n=new(typeof Uint8Array!=void 0+""?Uint8Array:Array)(e);n[0]=n[e-1]=1,At(t,n,i,0,e-1);var o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}function At(t,i,e,n,o){var s,r,a,h=0;for(r=n+1;r<=o-1;r++)(a=Dt(t[r],t[n],t[o],!0))>h&&(s=r,h=a);h>e&&(i[s]=1,At(t,i,e,n,s),At(t,i,e,s,o))}function Bt(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;n<s;n++)Nt(t[n],t[o])>i&&(e.push(t[n]),o=n);return o<s-1&&e.push(t[s-1]),e}function It(t,i,e,n,o){var s,r,a,h=n?ke:Rt(t,e),u=Rt(i,e);for(ke=u;;){if(!(h|u))return[t,i];if(h&u)return!1;a=Rt(r=Ot(t,i,s=h||u,e,o),e),s===h?(t=r,h=a):(i=r,u=a)}}function Ot(t,i,e,n,o){var s,r,a=i.x-t.x,h=i.y-t.y,u=n.min,l=n.max;return 8&e?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&e?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&e?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&e&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new x(s,r,o)}function Rt(t,i){var e=0;return t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function Nt(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Dt(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new x(s,r)}function jt(t){return!oi(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Wt(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),jt(t)}function Ht(t,i,e){var n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o<u;o++)t[o]._code=Rt(t[o],i);for(r=0;r<4;r++){for(l=_[r],n=[],o=0,s=(u=t.length)-1;o<u;s=o++)a=t[o],h=t[s],a._code&l?h._code&l||((c=Ot(h,a,l,i,e))._code=Rt(c,i),n.push(c)):(h._code&l&&((c=Ot(h,a,l,i,e))._code=Rt(c,i),n.push(c)),n.push(a));t=n}return t}function Ft(t,i){var e,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],u=i&&i.pointToLayer,l=i&&i.coordsToLatLng||Ut;if(!a&&!r)return null;switch(r.type){case"Point":return e=l(a),u?u(t,e):new $e(e);case"MultiPoint":for(o=0,s=a.length;o<s;o++)e=l(a[o]),h.push(u?u(t,e):new $e(e));return new Ke(h);case"LineString":case"MultiLineString":return n=Vt(a,"LineString"===r.type?0:1,l),new nn(n,i);case"Polygon":case"MultiPolygon":return n=Vt(a,"Polygon"===r.type?1:2,l),new on(n,i);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=Ft({geometry:r.geometries[o],type:"Feature",properties:t.properties},i);c&&h.push(c)}return new Ke(h);default:throw new Error("Invalid GeoJSON object.")}}function Ut(t){return new M(t[1],t[0],t[2])}function Vt(t,i,e){for(var n,o=[],s=0,r=t.length;s<r;s++)n=i?Vt(t[s],i-1,e):(e||Ut)(t[s]),o.push(n);return o}function qt(t,i){return i="number"==typeof i?i:6,void 0!==t.alt?[a(t.lng,i),a(t.lat,i),a(t.alt,i)]:[a(t.lng,i),a(t.lat,i)]}function Gt(t,i,e,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(i?Gt(t[s],i-1,e,n):qt(t[s],n));return!i&&e&&o.push(o[0]),o}function Kt(t,e){return t.feature?i({},t.feature,{geometry:e}):Yt(e)}function Yt(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}function Xt(t,i){return new sn(t,i)}function Jt(t,i){return new mn(t,i)}function $t(t){return Xi?new vn(t):null}function Qt(t){return Ji||$i?new Pn(t):null}var ti=Object.freeze;Object.freeze=function(t){return t};var ii=Object.create||function(){function t(){}return function(i){return t.prototype=i,new t}}(),ei=0,ni=/\{ *([\w_-]+) *\}/g,oi=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},si="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",ri=0,ai=window.requestAnimationFrame||p("RequestAnimationFrame")||m,hi=window.cancelAnimationFrame||p("CancelAnimationFrame")||p("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)},ui=(Object.freeze||Object)({freeze:ti,extend:i,create:ii,bind:e,lastId:ei,stamp:n,throttle:o,wrapNum:s,falseFn:r,formatNum:a,trim:h,splitWords:u,setOptions:l,getParamString:c,template:_,isArray:oi,indexOf:d,emptyImageUrl:si,requestFn:ai,cancelFn:hi,requestAnimFrame:f,cancelAnimFrame:g});v.extend=function(t){var e=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},n=e.__super__=this.prototype,o=ii(n);o.constructor=e,e.prototype=o;for(var s in this)this.hasOwnProperty(s)&&"prototype"!==s&&"__super__"!==s&&(e[s]=this[s]);return t.statics&&(i(e,t.statics),delete t.statics),t.includes&&(y(t.includes),i.apply(null,[o].concat(t.includes)),delete t.includes),o.options&&(t.options=i(ii(o.options),t.options)),i(o,t),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,i=o._initHooks.length;t<i;t++)o._initHooks[t].call(this)}},e},v.include=function(t){return i(this.prototype,t),this},v.mergeOptions=function(t){return i(this.prototype.options,t),this},v.addInitHook=function(t){var i=Array.prototype.slice.call(arguments,1),e="function"==typeof t?t:function(){this[t].apply(this,i)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var li={on:function(t,i,e){if("object"==typeof t)for(var n in t)this._on(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._on(t[o],i,e);return this},off:function(t,i,e){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._off(t[o],i,e);else delete this._events;return this},_on:function(t,i,e){this._events=this._events||{};var n=this._events[t];n||(n=[],this._events[t]=n),e===this&&(e=void 0);for(var o={fn:i,ctx:e},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===i&&s[r].ctx===e)return;s.push(o)},_off:function(t,i,e){var n,o,s;if(this._events&&(n=this._events[t]))if(i){if(e===this&&(e=void 0),n)for(o=0,s=n.length;o<s;o++){var a=n[o];if(a.ctx===e&&a.fn===i)return a.fn=r,this._firingCount&&(this._events[t]=n=n.slice()),void n.splice(o,1)}}else{for(o=0,s=n.length;o<s;o++)n[o].fn=r;delete this._events[t]}},fire:function(t,e,n){if(!this.listens(t,n))return this;var o=i({},e,{type:t,target:this,sourceTarget:e&&e.sourceTarget||this});if(this._events){var s=this._events[t];if(s){this._firingCount=this._firingCount+1||1;for(var r=0,a=s.length;r<a;r++){var h=s[r];h.fn.call(h.ctx||this,o)}this._firingCount--}}return n&&this._propagateEvent(o),this},listens:function(t,i){var e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var n in this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,n){if("object"==typeof t){for(var o in t)this.once(o,t[o],i);return this}var s=e(function(){this.off(t,i,n).off(t,s,n)},this);return this.on(t,i,n).on(t,s,n)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[n(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[n(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,i({layer:t.target,propagatedFrom:t.target},t),!0)}};li.addEventListener=li.on,li.removeEventListener=li.clearAllEventListeners=li.off,li.addOneTimeEventListener=li.once,li.fireEvent=li.fire,li.hasEventListeners=li.listens;var ci=v.extend(li),_i=Math.trunc||function(t){return t>0?Math.floor(t):Math.ceil(t)};x.prototype={clone:function(){return new x(this.x,this.y)},add:function(t){return this.clone()._add(w(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(w(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new x(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new x(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=_i(this.x),this.y=_i(this.y),this},distanceTo:function(t){var i=(t=w(t)).x-this.x,e=t.y-this.y;return Math.sqrt(i*i+e*e)},equals:function(t){return(t=w(t)).x===this.x&&t.y===this.y},contains:function(t){return t=w(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+a(this.x)+", "+a(this.y)+")"}},P.prototype={extend:function(t){return t=w(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new x((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new x(this.min.x,this.max.y)},getTopRight:function(){return new x(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t="number"==typeof t[0]||t instanceof x?w(t):b(t))instanceof P?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.x<e.x,r=o.y>i.y&&n.y<e.y;return s&&r},isValid:function(){return!(!this.min||!this.max)}},T.prototype={extend:function(t){var i,e,n=this._southWest,o=this._northEast;if(t instanceof M)i=t,e=t;else{if(!(t instanceof T))return t?this.extend(C(t)||z(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return this}return n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new M(i.lat,i.lng),this._northEast=new M(e.lat,e.lng)),this},pad:function(t){var i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,o=Math.abs(i.lng-e.lng)*t;return new T(new M(i.lat-n,i.lng-o),new M(e.lat+n,e.lng+o))},getCenter:function(){return new M((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new M(this.getNorth(),this.getWest())},getSouthEast:function(){return new M(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof M||"lat"in t?C(t):z(t);var i,e,n=this._southWest,o=this._northEast;return t instanceof T?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lat<e.lat,r=o.lng>i.lng&&n.lng<e.lng;return s&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,i){return!!t&&(t=z(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}},M.prototype={equals:function(t,i){return!!t&&(t=C(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===i?1e-9:i))},toString:function(t){return"LatLng("+a(this.lat,t)+", "+a(this.lng,t)+")"},distanceTo:function(t){return pi.distance(this,C(t))},wrap:function(){return pi.wrapLatLng(this)},toBounds:function(t){var i=180*t/40075017,e=i/Math.cos(Math.PI/180*this.lat);return z([this.lat-i,this.lng-e],[this.lat+i,this.lng+e])},clone:function(){return new M(this.lat,this.lng,this.alt)}};var di={latLngToPoint:function(t,i){var e=this.projection.project(t),n=this.scale(i);return this.transformation._transform(e,n)},pointToLatLng:function(t,i){var e=this.scale(i),n=this.transformation.untransform(t,e);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var i=this.projection.bounds,e=this.scale(t);return new P(this.transformation.transform(i.min,e),this.transformation.transform(i.max,e))},infinite:!1,wrapLatLng:function(t){var i=this.wrapLng?s(t.lng,this.wrapLng,!0):t.lng;return new M(this.wrapLat?s(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,o=i.lng-e.lng;if(0===n&&0===o)return t;var s=t.getSouthWest(),r=t.getNorthEast();return new T(new M(s.lat-n,s.lng-o),new M(r.lat-n,r.lng-o))}},pi=i({},di,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin((i.lat-t.lat)*e/2),r=Math.sin((i.lng-t.lng)*e/2),a=s*s+Math.cos(n)*Math.cos(o)*r*r,h=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return this.R*h}}),mi={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var i=Math.PI/180,e=this.MAX_LATITUDE,n=Math.max(Math.min(e,t.lat),-e),o=Math.sin(n*i);return new x(this.R*t.lng*i,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var i=180/Math.PI;return new M((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:function(){var t=6378137*Math.PI;return new P([-t,-t],[t,t])}()};S.prototype={transform:function(t,i){return this._transform(t.clone(),i)},_transform:function(t,i){return i=i||1,t.x=i*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return i=i||1,new x((t.x/i-this._b)/this._a,(t.y/i-this._d)/this._c)}};var fi,gi,vi,yi=i({},pi,{code:"EPSG:3857",projection:mi,transformation:function(){var t=.5/(Math.PI*mi.R);return Z(t,.5,-t,.5)}()}),xi=i({},yi,{code:"EPSG:900913"}),wi=document.documentElement.style,Pi="ActiveXObject"in window,Li=Pi&&!document.addEventListener,bi="msLaunchUri"in navigator&&!("documentMode"in document),Ti=A("webkit"),zi=A("android"),Mi=A("android 2")||A("android 3"),Ci=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),Si=zi&&A("Google")&&Ci<537&&!("AudioNode"in window),Zi=!!window.opera,Ei=A("chrome"),ki=A("gecko")&&!Ti&&!Zi&&!Pi,Ai=!Ei&&A("safari"),Bi=A("phantom"),Ii="OTransition"in wi,Oi=0===navigator.platform.indexOf("Win"),Ri=Pi&&"transition"in wi,Ni="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!Mi,Di="MozPerspective"in wi,ji=!window.L_DISABLE_3D&&(Ri||Ni||Di)&&!Ii&&!Bi,Wi="undefined"!=typeof orientation||A("mobile"),Hi=Wi&&Ti,Fi=Wi&&Ni,Ui=!window.PointerEvent&&window.MSPointerEvent,Vi=!(!window.PointerEvent&&!Ui),qi=!window.L_NO_TOUCH&&(Vi||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),Gi=Wi&&Zi,Ki=Wi&&ki,Yi=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,Xi=!!document.createElement("canvas").getContext,Ji=!(!document.createElementNS||!E("svg").createSVGRect),$i=!Ji&&function(){try{var t=document.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),Qi=(Object.freeze||Object)({ie:Pi,ielt9:Li,edge:bi,webkit:Ti,android:zi,android23:Mi,androidStock:Si,opera:Zi,chrome:Ei,gecko:ki,safari:Ai,phantom:Bi,opera12:Ii,win:Oi,ie3d:Ri,webkit3d:Ni,gecko3d:Di,any3d:ji,mobile:Wi,mobileWebkit:Hi,mobileWebkit3d:Fi,msPointer:Ui,pointer:Vi,touch:qi,mobileOpera:Gi,mobileGecko:Ki,retina:Yi,canvas:Xi,svg:Ji,vml:$i}),te=Ui?"MSPointerDown":"pointerdown",ie=Ui?"MSPointerMove":"pointermove",ee=Ui?"MSPointerUp":"pointerup",ne=Ui?"MSPointerCancel":"pointercancel",oe=["INPUT","SELECT","OPTION"],se={},re=!1,ae=0,he=Ui?"MSPointerDown":Vi?"pointerdown":"touchstart",ue=Ui?"MSPointerUp":Vi?"pointerup":"touchend",le="_leaflet_",ce=st(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),_e=st(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===_e||"OTransition"===_e?_e+"End":"transitionend";if("onselectstart"in document)fi=function(){mt(window,"selectstart",Pt)},gi=function(){ft(window,"selectstart",Pt)};else{var pe=st(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);fi=function(){if(pe){var t=document.documentElement.style;vi=t[pe],t[pe]="none"}},gi=function(){pe&&(document.documentElement.style[pe]=vi,vi=void 0)}}var me,fe,ge,ve=(Object.freeze||Object)({TRANSFORM:ce,TRANSITION:_e,TRANSITION_END:de,get:V,getStyle:q,create:G,remove:K,empty:Y,toFront:X,toBack:J,hasClass:$,addClass:Q,removeClass:tt,setClass:it,getClass:et,setOpacity:nt,testProp:st,setTransform:rt,setPosition:at,getPosition:ht,disableTextSelection:fi,enableTextSelection:gi,disableImageDrag:ut,enableImageDrag:lt,preventOutline:ct,restoreOutline:_t,getSizedParentNode:dt,getScale:pt}),ye="_leaflet_events",xe=Oi&&Ei?2*window.devicePixelRatio:ki?window.devicePixelRatio:1,we={},Pe=(Object.freeze||Object)({on:mt,off:ft,stopPropagation:yt,disableScrollPropagation:xt,disableClickPropagation:wt,preventDefault:Pt,stop:Lt,getMousePosition:bt,getWheelDelta:Tt,fakeStop:zt,skipped:Mt,isExternalTarget:Ct,addListener:mt,removeListener:ft}),Le=ci.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=ht(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){var e=this._startPos.add(this._offset.multiplyBy(t));i&&e._round(),at(this._el,e),this.fire("step")},_complete:function(){g(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),be=ci.extend({options:{crs:yi,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=l(this,i),this._initContainer(t),this._initLayout(),this._onResize=e(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void 0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void 0!==i.zoom&&this.setView(C(i.center),i.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._zoomAnimated=_e&&ji&&!Gi&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),mt(this._proxy,de,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,n){return e=void 0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(C(t),e,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&!0!==n&&(void 0!==n.animate&&(n.zoom=i({animate:n.animate},n.zoom),n.pan=i({animate:n.animate,duration:n.duration},n.pan)),this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(t,e),this)},setZoom:function(t,i){return this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return t=t||(ji?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return t=t||(ji?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var n=this.getZoomScale(i),o=this.getSize().divideBy(2),s=(t instanceof x?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),r=this.containerPointToLatLng(o.add(s));return this.setView(r,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():z(t);var e=w(i.paddingTopLeft||i.padding||[0,0]),n=w(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o="number"==typeof i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};var s=n.subtract(e).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o);return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,i){if(!(t=z(t)).isValid())throw new Error("Bounds are not valid.");var e=this._getBoundsCenterZoom(t,i);return this.setView(e.center,e.zoom,i)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){if(t=w(t).round(),i=i||{},!t.x&&!t.y)return this.fire("moveend");if(!0!==i.animate&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new Le,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire("movestart"),!1!==i.animate){Q(this._mapPane,"leaflet-pan-anim");var e=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},flyTo:function(t,i,e){function n(t){var i=(g*g-m*m+(t?-1:1)*x*x*v*v)/(2*(t?g:m)*x*v),e=Math.sqrt(i*i+1)-i;return e<1e-9?-18:Math.log(e)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function s(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/s(t)}function a(t){return m*(s(w)/s(w+y*t))}function h(t){return m*(s(w)*r(w+y*t)-o(w))/x}function u(t){return 1-Math.pow(1-t,1.5)}function l(){var e=(Date.now()-P)/b,n=u(e)*L;e<=1?(this._flyToFrame=f(l,this),this._move(this.unproject(c.add(_.subtract(c).multiplyBy(h(n)/v)),p),this.getScaleZoom(m/a(n),p),{flyTo:!0})):this._move(t,i)._moveEnd(!0)}if(!1===(e=e||{}).animate||!ji)return this.setView(t,i,e);this._stop();var c=this.project(this.getCenter()),_=this.project(t),d=this.getSize(),p=this._zoom;t=C(t),i=void 0===i?p:i;var m=Math.max(d.x,d.y),g=m*this.getZoomScale(p,i),v=_.distanceTo(c)||1,y=1.42,x=y*y,w=n(0),P=Date.now(),L=(n(1)-w)/y,b=e.duration?1e3*e.duration:1e3*L*.8;return this._moveStart(!0,e.noMoveStart),l.call(this),this},flyToBounds:function(t,i){var e=this._getBoundsCenterZoom(t,i);return this.flyTo(e.center,e.zoom,i)},setMaxBounds:function(t){return(t=z(t)).isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){var i=this.options.minZoom;return this.options.minZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var i=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,z(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var n=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=n.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:n,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var n=e(this._handleGeolocationResponse,this),o=e(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,t),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 i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})},_handleGeolocationResponse:function(t){var i=new M(t.coords.latitude,t.coords.longitude),e=i.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:i,bounds:e,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),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}void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),K(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(g(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)K(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=G("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new T(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,i,e){t=z(t),e=w(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=b(this.project(a,n),this.project(r,n)).getSize(),l=ji?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new x(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new P(e,e.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,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(C(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(w(t),i)},layerPointToLatLng:function(t){var i=w(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(C(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(C(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(z(t))},distance:function(t,i){return this.options.crs.distance(C(t),C(i))},containerPointToLayerPoint:function(t){return w(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return w(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(w(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t)))},mouseEventToContainerPoint:function(t){return bt(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=V(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");mt(i,"scroll",this._onScroll,this),this._containerId=n(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&ji,Q(t,"leaflet-container"+(qi?" leaflet-touch":"")+(Yi?" leaflet-retina":"")+(Li?" leaflet-oldie":"")+(Ai?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=q(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(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),at(this._mapPane,new x(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(Q(t.markerPane,"leaflet-zoom-hide"),Q(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){at(this._mapPane,new x(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var n=this._zoom!==i;this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){at(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={},this._targets[n(this._container)]=this;var i=t?ft:mt;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),ji&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(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,i){for(var e,o=[],s="mouseout"===i||"mouseover"===i,r=t.target||t.srcElement,a=!1;r;){if((e=this._targets[n(r)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(s&&!Ct(r,t))break;if(o.push(e),s)break}if(r===this._container)break;r=r.parentNode}return o.length||a||s||!Ct(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!Mt(t)){var i=t.type;"mousedown"!==i&&"keypress"!==i||ct(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var s=n[0];"contextmenu"===e&&s.listens(e,!0)&&Pt(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h<n.length;h++)if(n[h].fire(e,r,!0),r.originalEvent._stopped||!1===n[h].options.bubblingMouseEvents&&-1!==d(this._mouseEvents,e))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return this._loaded?t.call(i||this,{target:this}):this.on("load",t,i),this},_getMapPanePos:function(){return ht(this._mapPane)||new x(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void 0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var e=this.getSize()._divideBy(2);return this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return this.project(t,i)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return b([this.project(t.getSouthWest(),i)._subtract(n),this.project(t.getNorthWest(),i)._subtract(n),this.project(t.getSouthEast(),i)._subtract(n),this.project(t.getNorthEast(),i)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return t;var n=this.project(t,i),o=this.getSize().divideBy(2),s=new P(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,e,i);return r.round().equals([0,0])?t:this.unproject(n.add(r),i)},_limitOffset:function(t,i){if(!i)return t;var e=this.getPixelBounds(),n=new P(e.min.add(t),e.max.add(t));return t.add(this._getBoundsOffset(n,i))},_getBoundsOffset:function(t,i,e){var n=b(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return new x(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,i){return t+i>0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=ji?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){tt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=G("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=ce,e=this._proxy.style[i];rt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var t=this.getCenter(),i=this.getZoom();rt(this._proxy,this.project(t,i),this.getZoomScale(i,1))},this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){K(this._proxy),delete this._proxy},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,n,o){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,Q(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:o}),setTimeout(e(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&tt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),Te=v.extend({options:{position:"topright"},initialize:function(t){l(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return Q(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this},remove:function(){return this._map?(K(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),ze=function(t){return new Te(t)};be.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,o){var s=e+t+" "+e+o;i[t+o]=G("div",s,n)}var i=this._controlCorners={},e="leaflet-",n=this._controlContainer=G("div",e+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)K(this._controlCorners[t]);K(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Me=Te.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e<n?-1:n<e?1:0}},initialize:function(t,i,e){l(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this);for(var i=0;i<this._layers.length;i++)this._layers[i].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(t){return Te.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,i){return this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);var i=this._getLayer(n(t));return i&&this._layers.splice(this._layers.indexOf(i),1),this._map?this._update():this},expand:function(){Q(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._form.clientHeight?(Q(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=t+"px"):tt(this._form,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return tt(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",i=this._container=G("div",t),e=this.options.collapsed;i.setAttribute("aria-haspopup",!0),wt(i),xt(i);var n=this._form=G("form",t+"-list");e&&(this._map.on("click",this.collapse,this),zi||mt(i,{mouseenter:this.expand,mouseleave:this.collapse},this));var o=this._layersLink=G("a",t+"-toggle",i);o.href="#",o.title="Layers",qi?(mt(o,"click",Lt),mt(o,"click",this.expand,this)):mt(o,"focus",this.expand,this),e||this.expand(),this._baseLayersList=G("div",t+"-base",n),this._separator=G("div",t+"-separator",n),this._overlaysList=G("div",t+"-overlays",n),i.appendChild(n)},_getLayer:function(t){for(var i=0;i<this._layers.length;i++)if(this._layers[i]&&n(this._layers[i].layer)===t)return this._layers[i]},_addLayer:function(t,i,n){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:n}),this.options.sortLayers&&this._layers.sort(e(function(t,i){return this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;Y(this._baseLayersList),Y(this._overlaysList),this._layerControlInputs=[];var t,i,e,n,o=0;for(e=0;e<this._layers.length;e++)n=this._layers[e],this._addItem(n),i=i||n.overlay,t=t||!n.overlay,o+=n.overlay?0:1;return this.options.hideSingleBase&&(t=t&&o>1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(n(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),o=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=o):i=this._createRadioElement("leaflet-base-layers",o),this._layerControlInputs.push(i),i.layerId=n(t.layer),mt(i,"click",this._onInputClick,this);var s=document.createElement("span");s.innerHTML=" "+t.name;var r=document.createElement("div");return e.appendChild(r),r.appendChild(i),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;o>=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&n<i.options.minZoom||void 0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ce=Te.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=G("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},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._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=G("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),wt(s),mt(s,"click",Lt),mt(s,"click",o,this),mt(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";tt(this._zoomInButton,i),tt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMinZoom())&&Q(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMaxZoom())&&Q(this._zoomInButton,i)}});be.mergeOptions({zoomControl:!0}),be.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Ce,this.addControl(this.zoomControl))});var Se=Te.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i=G("div","leaflet-control-scale"),e=this.options;return this._addScales(e,"leaflet-control-scale-line",i),t.on(e.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,i,e){t.metric&&(this._mScale=G("div",i,e)),t.imperial&&(this._iScale=G("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),Ze=Te.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){l(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=G("div","leaflet-control-attribution"),wt(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},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):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});be.mergeOptions({attributionControl:!0}),be.addInitHook(function(){this.options.attributionControl&&(new Ze).addTo(this)});Te.Layers=Me,Te.Zoom=Ce,Te.Scale=Se,Te.Attribution=Ze,ze.layers=function(t,i,e){return new Me(t,i,e)},ze.zoom=function(t){return new Ce(t)},ze.scale=function(t){return new Se(t)},ze.attribution=function(t){return new Ze(t)};var Ee=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Ee.addTo=function(t,i){return t.addHandler(i,this),this};var ke,Ae={Events:li},Be=qi?"touchstart mousedown":"mousedown",Ie={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Oe={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},Re=ci.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){l(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(mt(this._dragStartTarget,Be,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Re._dragging===this&&this.finishDrag(),ft(this._dragStartTarget,Be,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!$(this._element,"leaflet-zoom-anim")&&!(Re._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(Re._dragging=this,this._preventOutline&&ct(this._element),ut(),fi(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t,e=dt(this._element);this._startPoint=new x(i.clientX,i.clientY),this._parentScale=pt(e),mt(document,Oe[t.type],this._onMove,this),mt(document,Ie[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new x(i.clientX,i.clientY)._subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||(e.x/=this._parentScale.x,e.y/=this._parentScale.y,Pt(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=ht(this._element).subtract(e),Q(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),Q(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(e),this._moving=!0,g(this._animRequest),this._lastEvent=t,this._animRequest=f(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),at(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){tt(document.body,"leaflet-dragging"),this._lastTarget&&(tt(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var t in Oe)ft(document,Oe[t],this._onMove,this),ft(document,Ie[t],this._onUp,this);lt(),gi(),this._moved&&this._moving&&(g(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,Re._dragging=!1}}),Ne=(Object.freeze||Object)({simplify:Zt,pointToSegmentDistance:Et,closestPointOnSegment:function(t,i,e){return Dt(t,i,e)},clipSegment:It,_getEdgeIntersection:Ot,_getBitCode:Rt,_sqClosestPointOnSegment:Dt,isFlat:jt,_flat:Wt}),De=(Object.freeze||Object)({clipPolygon:Ht}),je={project:function(t){return new x(t.lng,t.lat)},unproject:function(t){return new M(t.y,t.x)},bounds:new P([-180,-90],[180,90])},We={R:6378137,R_MINOR:6356752.314245179,bounds:new P([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-e*Math.log(Math.max(a,1e-10)),new x(t.lng*i*e,n)},unproject:function(t){for(var i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,u=.1;h<15&&Math.abs(u)>1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new M(a*e,t.x*e/n)}},He=(Object.freeze||Object)({LonLat:je,Mercator:We,SphericalMercator:mi}),Fe=i({},pi,{code:"EPSG:3395",projection:We,transformation:function(){var t=.5/(Math.PI*We.R);return Z(t,.5,-t,.5)}()}),Ue=i({},pi,{code:"EPSG:4326",projection:je,transformation:Z(1/180,1,-1/180,.5)}),Ve=i({},di,{projection:je,transformation:Z(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});di.Earth=pi,di.EPSG3395=Fe,di.EPSG3857=yi,di.EPSG900913=xi,di.EPSG4326=Ue,di.Simple=Ve;var qe=ci.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[n(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[n(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once("remove",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),i.fire("layeradd",{layer:this})}}});be.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=n(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=n(t);return this._layers[i]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?oi(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[n(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var i=n(t);this._zoomBoundLayers[i]&&(delete this._zoomBoundLayers[i],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,i=-1/0,e=this._getZoomSpan();for(var n in this._zoomBoundLayers){var o=this._zoomBoundLayers[n].options;t=void 0===o.minZoom?t:Math.min(t,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom)}this._layersMaxZoom=i===-1/0?void 0:i,this._layersMinZoom=t===1/0?void 0:t,e!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var Ge=qe.extend({initialize:function(t,i){l(this,i),this._layers={};var e,n;if(t)for(e=0,n=t.length;e<n;e++)this.addLayer(t[e])},addLayer:function(t){var i=this.getLayerId(t);return this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var i=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[i]&&this._map.removeLayer(this._layers[i]),delete this._layers[i],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var i,e,n=Array.prototype.slice.call(arguments,1);for(i in this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return n(t)}}),Ke=Ge.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),Ge.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),Ge.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new T;for(var i in this._layers){var e=this._layers[i];t.extend(e.getBounds?e.getBounds():e.getLatLng())}return t}}),Ye=v.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0]},initialize:function(t){l(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,i){var e=this._getIconUrl(t);if(!e){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(e,i&&"IMG"===i.tagName?i:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,i){var e=this.options,n=e[i+"Size"];"number"==typeof n&&(n=[n,n]);var o=w(n),s=w("shadow"===i&&e.shadowAnchor||e.iconAnchor||o&&o.divideBy(2,!0));t.className="leaflet-marker-"+i+" "+(e.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),o&&(t.style.width=o.x+"px",t.style.height=o.y+"px")},_createImg:function(t,i){return i=i||document.createElement("img"),i.src=t,i},_getIconUrl:function(t){return Yi&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),Xe=Ye.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return Xe.imagePath||(Xe.imagePath=this._detectIconPath()),(this.options.imagePath||Xe.imagePath)+Ye.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=G("div","leaflet-default-icon-path",document.body),i=q(t,"background-image")||q(t,"backgroundImage");return document.body.removeChild(t),i=null===i||0!==i.indexOf("url")?"":i.replace(/^url\(["']?/,"").replace(/marker-icon\.png["']?\)$/,"")}}),Je=Ee.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new Re(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),Q(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&tt(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var i=this._marker,e=i._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=ht(i._icon),r=e.getPixelBounds(),a=e.getPixelOrigin(),h=b(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));if(!h.contains(s)){var u=w((Math.max(h.max.x,s.x)-h.max.x)/(r.max.x-h.max.x)-(Math.min(h.min.x,s.x)-h.min.x)/(r.min.x-h.min.x),(Math.max(h.max.y,s.y)-h.max.y)/(r.max.y-h.max.y)-(Math.min(h.min.y,s.y)-h.min.y)/(r.min.y-h.min.y)).multiplyBy(n);e.panBy(u,{animate:!1}),this._draggable._newPos._add(u),this._draggable._startPos._add(u),at(i._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=f(this._adjustPan.bind(this,t))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(g(this._panRequest),this._panRequest=f(this._adjustPan.bind(this,t)))},_onDrag:function(t){var i=this._marker,e=i._shadow,n=ht(i._icon),o=i._map.layerPointToLatLng(n);e&&at(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire("move",t).fire("drag",t)},_onDragEnd:function(t){g(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),$e=qe.extend({options:{icon:new Xe,interactive:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",bubblingMouseEvents:!1},initialize:function(t,i){l(this,i),this._latlng=C(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var i=this._latlng;return this._latlng=C(t),this.update(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon&&this._map){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,i="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),e=t.icon.createIcon(this._icon),n=!1;e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),"IMG"===e.tagName&&(e.alt=t.alt||"")),Q(e,i),t.keyboard&&(e.tabIndex="0"),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var o=t.icon.createShadow(this._shadow),s=!1;o!==this._shadow&&(this._removeShadow(),s=!0),o&&(Q(o,i),o.alt=""),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),K(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&K(this._shadow),this._shadow=null},_setPos:function(t){at(this._icon,t),this._shadow&&at(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(i)},_initInteraction:function(){if(this.options.interactive&&(Q(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),Je)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new Je(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;nt(this._icon,t),this._shadow&&nt(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}}),Qe=qe.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return l(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+this._renderer.options.tolerance}}),tn=Qe.extend({options:{fill:!0,radius:10},initialize:function(t,i){l(this,i),this._latlng=C(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=C(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return Qe.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),n=[t+e,i+e];this._pxBounds=new P(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}}),en=tn.extend({initialize:function(t,e,n){if("number"==typeof e&&(e=i({},n,{radius:e})),l(this,e),this._latlng=C(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new T(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:Qe.prototype.setStyle,_project:function(){var t=this._latlng.lng,i=this._latlng.lat,e=this._map,n=e.options.crs;if(n.distance===pi.distance){var o=Math.PI/180,s=this._mRadius/pi.R/o,r=e.project([i+s,t]),a=e.project([i-s,t]),h=r.add(a).divideBy(2),u=e.unproject(h).lat,l=Math.acos((Math.cos(s*o)-Math.sin(i*o)*Math.sin(u*o))/(Math.cos(i*o)*Math.cos(u*o)))/o;(isNaN(l)||0===l)&&(l=s/Math.cos(Math.PI/180*i)),this._point=h.subtract(e.getPixelOrigin()),this._radius=isNaN(l)?0:h.x-e.project([u,t-l]).x,this._radiusY=h.y-r.y}else{var c=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=e.latLngToLayerPoint(this._latlng),this._radius=this._point.x-e.latLngToLayerPoint(c).x}this._updateBounds()}}),nn=Qe.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){l(this,i),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var i,e,n=1/0,o=null,s=Dt,r=0,a=this._parts.length;r<a;r++)for(var h=this._parts[r],u=1,l=h.length;u<l;u++){var c=s(t,i=h[u-1],e=h[u],!0);c<n&&(n=c,o=s(t,i,e))}return o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(t=0,i=0;t<h-1;t++)i+=a[t].distanceTo(a[t+1])/2;if(0===i)return this._map.layerPointToLatLng(a[0]);for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],e=o.distanceTo(s),(n+=e)>i)return r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=C(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new T,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return jt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=jt(t),n=0,o=t.length;n<o;n++)e?(i[n]=C(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return i},_project:function(){var t=new P;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t);var i=this._clickTolerance(),e=new x(i,i);this._bounds.isValid()&&t.isValid()&&(t.min._subtract(e),t.max._add(e),this._pxBounds=t)},_projectLatlngs:function(t,i,e){var n,o,s=t[0]instanceof M,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else{var i,e,n,o,s,r,a,h=this._parts;for(i=0,n=0,o=this._rings.length;i<o;i++)for(e=0,s=(a=this._rings[i]).length;e<s-1;e++)(r=It(a[e],a[e+1],t,e,!0))&&(h[n]=h[n]||[],h[n].push(r[0]),r[1]===a[e+1]&&e!==s-2||(h[n].push(r[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=Zt(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&Et(t,a[o],a[n])<=h)return!0;return!1}});nn._flat=Wt;var on=nn.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a,h,u=this._rings[0],l=u.length;if(!l)return null;for(s=r=a=0,t=0,i=l-1;t<l;i=t++)e=u[t],n=u[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return h=0===s?u[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var i=nn.prototype._convertLatLngs.call(this,t),e=i.length;return e>=2&&i[0]instanceof M&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){nn.prototype._setLatLngs.call(this,t),jt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return jt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new x(i,i);if(t=new P(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;o<s;o++)(n=Ht(this._rings[o],t,!0)).length&&this._parts.push(n)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var i,e,n,o,s,r,a,h,u=!1;if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||nn.prototype._containsPoint.call(this,t,!0)}}),sn=Ke.extend({initialize:function(t,i){l(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=oi(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s=this.options;if(s.filter&&!s.filter(t))return this;var r=Ft(t,s);return r?(r.feature=Yt(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return t.options=i({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return this.eachLayer(function(i){this._setLayerStyle(i,t)},this)},_setLayerStyle:function(t,i){"function"==typeof i&&(i=i(t.feature)),t.setStyle&&t.setStyle(i)}}),rn={toGeoJSON:function(t){return Kt(this,{type:"Point",coordinates:qt(this.getLatLng(),t)})}};$e.include(rn),en.include(rn),tn.include(rn),nn.include({toGeoJSON:function(t){var i=!jt(this._latlngs),e=Gt(this._latlngs,i?1:0,!1,t);return Kt(this,{type:(i?"Multi":"")+"LineString",coordinates:e})}}),on.include({toGeoJSON:function(t){var i=!jt(this._latlngs),e=i&&!jt(this._latlngs[0]),n=Gt(this._latlngs,e?2:i?1:0,!0,t);return i||(n=[n]),Kt(this,{type:(e?"Multi":"")+"Polygon",coordinates:n})}}),Ge.include({toMultiPoint:function(t){var i=[];return this.eachLayer(function(e){i.push(e.toGeoJSON(t).geometry.coordinates)}),Kt(this,{type:"MultiPoint",coordinates:i})},toGeoJSON:function(t){var i=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===i)return this.toMultiPoint(t);var e="GeometryCollection"===i,n=[];return this.eachLayer(function(i){if(i.toGeoJSON){var o=i.toGeoJSON(t);if(e)n.push(o.geometry);else{var s=Yt(o);"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}}),e?Kt(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var an=Xt,hn=qe.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,e){this._url=t,this._bounds=z(i),l(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(Q(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){K(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&X(this._image),this},bringToBack:function(){return this._map&&J(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=z(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,i=this._image=t?this._url:G("img");Q(i,"leaflet-image-layer"),this._zoomAnimated&&Q(i,"leaflet-zoom-animated"),this.options.className&&Q(i,this.options.className),i.onselectstart=r,i.onmousemove=r,i.onload=e(this.fire,this,"load"),i.onerror=e(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=i.src:(i.src=this._url,i.alt=this.options.alt)},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),e=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;rt(this._image,e,i)},_reset:function(){var t=this._image,i=new P(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();at(t,i.min),t.style.width=e.x+"px",t.style.height=e.y+"px"},_updateOpacity:function(){nt(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)}}),un=hn.extend({options:{autoplay:!0,loop:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,i=this._image=t?this._url:G("video");if(Q(i,"leaflet-image-layer"),this._zoomAnimated&&Q(i,"leaflet-zoom-animated"),i.onselectstart=r,i.onmousemove=r,i.onloadeddata=e(this.fire,this,"load"),t){for(var n=i.getElementsByTagName("source"),o=[],s=0;s<n.length;s++)o.push(n[s].src);this._url=n.length>0?o:[i.src]}else{oi(this._url)||(this._url=[this._url]),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop;for(var a=0;a<this._url.length;a++){var h=G("source");h.src=this._url[a],i.appendChild(h)}}}}),ln=qe.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,i){l(this,t),this._source=i},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&nt(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&nt(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(nt(this._container,0),this._removeTimeout=setTimeout(e(K,void 0,this._container),200)):K(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=C(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&X(this._container),this},bringToBack:function(){return this._map&&J(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,i="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),i=w(this.options.offset),e=this._getAnchor();this._zoomAnimated?at(this._container,t.add(e)):i=i.add(t).add(e);var n=this._containerBottom=-i.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+i.x;this._container.style.bottom=n+"px",this._container.style.left=o+"px"}},_getAnchor:function(){return[0,0]}}),cn=ln.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){ln.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof Qe||this._source.on("preclick",yt))},onRemove:function(t){ln.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof Qe||this._source.off("preclick",yt))},getEvents:function(){var t=ln.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",i=this._container=G("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated"),e=this._wrapper=G("div",t+"-content-wrapper",i);if(this._contentNode=G("div",t+"-content",e),wt(e),xt(this._contentNode),mt(e,"contextmenu",yt),this._tipContainer=G("div",t+"-tip-container",i),this._tip=G("div",t+"-tip",this._tipContainer),this.options.closeButton){var n=this._closeButton=G("a",t+"-close-button",i);n.href="#close",n.innerHTML="×",mt(n,"click",this._onCloseButtonClick,this)}},_updateLayout:function(){var t=this._contentNode,i=t.style;i.width="",i.whiteSpace="nowrap";var e=t.offsetWidth;e=Math.min(e,this.options.maxWidth),e=Math.max(e,this.options.minWidth),i.width=e+1+"px",i.whiteSpace="",i.height="";var n=t.offsetHeight,o=this.options.maxHeight;o&&n>o?(i.height=o+"px",Q(t,"leaflet-popup-scrolled")):tt(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();at(this._container,i.add(e))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,i=parseInt(q(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new x(this._containerLeft,-e-this._containerBottom);o._add(ht(this._container));var s=t.layerPointToContainerPoint(o),r=w(this.options.autoPanPadding),a=w(this.options.autoPanPaddingTopLeft||r),h=w(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Lt(t)},_getAnchor:function(){return w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});be.mergeOptions({closePopupOnClick:!0}),be.include({openPopup:function(t,i,e){return t instanceof cn||(t=new cn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),qe.include({bindPopup:function(t,i){return t instanceof cn?(l(t,i),this._popup=t,t._source=this):(this._popup&&!i||(this._popup=new cn(i,this)),this._popup.setContent(t)),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,i){if(t instanceof qe||(i=t,t=this),t instanceof Ke)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),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 i=t.layer||t.target;this._popup&&this._map&&(Lt(t),i instanceof Qe?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var _n=ln.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){ln.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){ln.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=ln.prototype.getEvents.call(this);return qi&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=G("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=w(this.options.offset),u=this._getAnchor();"top"===s?t=t.add(w(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t=t.subtract(w(r/2-h.x,-h.y,!0)):"center"===s?t=t.subtract(w(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.x<n.x?(s="right",t=t.add(w(h.x+u.x,u.y-a/2+h.y,!0))):(s="left",t=t.subtract(w(r+u.x-h.x,a/2-u.y-h.y,!0))),tt(e,"leaflet-tooltip-right"),tt(e,"leaflet-tooltip-left"),tt(e,"leaflet-tooltip-top"),tt(e,"leaflet-tooltip-bottom"),Q(e,"leaflet-tooltip-"+s),at(e,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&nt(this._container,t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(i)},_getAnchor:function(){return w(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});be.include({openTooltip:function(t,i,e){return t instanceof _n||(t=new _n(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),qe.include({bindTooltip:function(t,i){return t instanceof _n?(l(t,i),this._tooltip=t,t._source=this):(this._tooltip&&!i||(this._tooltip=new _n(i,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var i=t?"off":"on",e={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),qi&&(e.click=this._openTooltip)),this[i](e),this._tooltipHandlersAdded=!t}},openTooltip:function(t,i){if(t instanceof qe||(i=t,t=this),t instanceof Ke)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,i),this._tooltip.options.interactive&&this._tooltip._container&&(Q(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(tt(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var i=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(i,this._tooltip.options.sticky?t.latlng:void 0)},_moveTooltip:function(t){var i,e,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(i=this._map.mouseEventToContainerPoint(t.originalEvent),e=this._map.containerPointToLayerPoint(i),n=this._map.layerPointToLatLng(e)),this._tooltip.setLatLng(n)}});var dn=Ye.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:document.createElement("div"),e=this.options;if(i.innerHTML=!1!==e.html?e.html:"",e.bgPos){var n=w(e.bgPos);i.style.backgroundPosition=-n.x+"px "+-n.y+"px"}return this._setIconStyles(i,"icon"),i},createShadow:function(){return null}});Ye.Default=Xe;var pn=qe.extend({options:{tileSize:256,opacity:1,updateWhenIdle:Wi,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){l(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),K(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(X(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(J(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof x?t:new x(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!Li){nt(this._container,this.options.opacity);var t=+new Date,i=!1,e=!1;for(var n in this._tiles){var o=this._tiles[n];if(o.current&&o.loaded){var s=Math.min(1,(t-o.loaded)/200);nt(o.el,s),s<1?i=!0:(o.active?e=!0:this._onOpaqueTile(o),o.active=!0)}}e&&!this._noPrune&&this._pruneTiles(),i&&(g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this))}},_onOpaqueTile:r,_initContainer:function(){this._container||(this._container=G("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in this._levels)this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(K(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete this._levels[e]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=G("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),n.el.offsetWidth,this._onCreateLevel(n)),this._level=n,n}},_onUpdateLevel:r,_onRemoveLevel:r,_onCreateLevel:r,_pruneTiles:function(){if(this._map){var t,i,e=this._map.getZoom();if(e>this.options.maxZoom||e<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in this._tiles)if((i=this._tiles[t]).current&&!i.active){var n=i.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var i in this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)K(this._levels[t].el),this._onRemoveLevel(t),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,i,e,n){var o=Math.floor(t/2),s=Math.floor(i/2),r=e-1,a=new x(+o,+s);a.z=+r;var h=this._tileCoordsToKey(a),u=this._tiles[h];return u&&u.active?(u.retain=!0,!0):(u&&u.loaded&&(u.retain=!0),r>n&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new x(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){var i=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),i,i)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var i=this.options;return void 0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void 0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var o=this._clampZoom(Math.round(i));(void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom)&&(o=void 0);var s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var e in this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var n=this._map.getZoomScale(e,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();ji?rt(t.el,o,n):at(t.el,o)},_resetGrid:function(){var t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),n=i.getZoomScale(e,this._tileZoom),o=i.project(t,this._tileZoom).floor(),s=i.getSize().divideBy(2*n);return new P(o.subtract(s),o.add(s))},_update:function(t){var i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void 0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new P(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(var u in this._tiles){var l=this._tiles[u].coords;l.z===this._tileZoom&&h.contains(new x(l.x,l.y))||(this._tiles[u].current=!1)}if(Math.abs(e-this._tileZoom)>1)this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new x(_,c);if(d.z=this._tileZoom,this._isValidTile(d)){var p=this._tiles[this._tileCoordsToKey(d)];p?p.current=!0:r.push(d)}}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(_=0;_<r.length;_++)this._addTile(r[_],m);this._level.el.appendChild(m)}}}}},_isValidTile:function(t){var i=this._map.options.crs;if(!i.infinite){var e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return z(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new T(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new x(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(Si||i.el.setAttribute("src",si),K(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){Q(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=r,t.onmousemove=r,Li&&this.options.opacity<1&&nt(t,this.options.opacity),zi&&!Mi&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),e(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&f(e(this._tileReady,this,t,null,s)),at(s,n),this._tiles[o]={el:s,coords:t,current:!0},i.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,i,n){if(this._map&&n.getAttribute("src")!==si){i&&this.fire("tileerror",{error:i,tile:n,coords:t});var o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new Date,this._map._fadeAnimated?(nt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),i||(Q(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Li||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new x(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new P(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),mn=pn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=l(this,i)).detectRetina&&Yi&&i.maxZoom>0&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),zi||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url=t,i||this.redraw(),this},createTile:function(t,i){var n=document.createElement("img");return mt(n,"load",e(this._tileOnLoad,this,i,n)),mt(n,"error",e(this._tileOnError,this,i,n)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(n.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:Yi?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return _(this._url,i(e,this.options))},_tileOnLoad:function(t,i){Li?setTimeout(e(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return e&&(t=i-t),t+n},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=r,i.onerror=r,i.complete||(i.src=si,K(i),delete this._tiles[t]))}}),fn=mn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);var s=(e=l(this,e)).detectRetina&&Yi?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,mn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,n=b(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===Ue?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=mn.prototype.getTileUrl.call(this,t);return a+c(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});mn.WMS=fn,Jt.wms=function(t,i){return new fn(t,i)};var gn=qe.extend({options:{padding:.1,tolerance:0},initialize:function(t){l(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&Q(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=ht(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);ji?rt(this._container,a,e):at(this._container,a)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new P(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),vn=gn.extend({getEvents:function(){var t=gn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){gn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");mt(t,"mousemove",o(this._onMouseMove,32,this),this),mt(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),mt(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){g(this._redrawRequest),delete this._ctx,K(this._container),ft(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){this._redrawBounds=null;for(var t in this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},gn.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=Yi?2:1;at(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",Yi&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){gn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,o=i.prev;e?e.prev=o:this._drawLast=o,o?o.next=e:this._drawFirst=e,delete this._drawnLayers[t._leaflet_id],delete t._order,delete this._layers[n(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var i,e=t.options.dashArray.split(","),n=[];for(i=0;i<e.length;i++)n.push(Number(e[i]));t.options._dashArray=n}else t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||f(this._redraw,this))},_extendRedrawBounds:function(t){if(t._pxBounds){var i=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new P,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t=this._redrawBounds;if(t){var i=t.getSize();this._ctx.clearRect(t.min.x,t.min.y,i.x,i.y)}else this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var t,i=this._redrawBounds;if(this._ctx.save(),i){var e=i.getSize();this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()}this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?"lineTo":"moveTo"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var i=t._point,e=this._ctx,n=Math.max(Math.round(t._radius),1),o=(Math.max(Math.round(t._radiusY),1)||n)/n;this._drawnLayers[t._leaflet_id]=t,1!==o&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!==o&&e.restore(),this._fillStroke(e,t)}},_fillStroke:function(t,i){var e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||"evenodd")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&!this._map._draggableMoved(i)&&(e=i);e&&(zt(t),this._fireEvent([e],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var i=this._map.mouseEventToLayerPoint(t);this._handleMouseHover(t,i)}},_handleMouseOut:function(t){var i=this._hoveredLayer;i&&(tt(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null)},_handleMouseHover:function(t,i){for(var e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(Q(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var i=t._order,e=i.next,n=i.prev;e&&(e.prev=n,n?n.next=e:e&&(this._drawFirst=e),i.prev=this._drawLast,this._drawLast.next=i,i.next=null,this._drawLast=i,this._requestRedraw(t))},_bringToBack:function(t){var i=t._order,e=i.next,n=i.prev;n&&(n.next=e,e?e.prev=n:n&&(this._drawLast=n),i.prev=null,i.next=this._drawFirst,this._drawFirst.prev=i,this._drawFirst=i,this._requestRedraw(t))}}),yn=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),xn={_initContainer:function(){this._container=G("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(gn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=yn("shape");Q(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=yn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;K(i),t.removeInteractiveTarget(i),delete this._layers[n(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=yn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=oi(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=yn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){X(t._container)},_bringToBack:function(t){J(t._container)}},wn=$i?yn:E,Pn=gn.extend({getEvents:function(){var t=gn.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=wn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=wn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){K(this._container),ft(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){gn.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),at(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=wn("path");t.options.className&&Q(i,t.options.className),t.options.interactive&&Q(i,"leaflet-interactive"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){K(t._path),t.removeInteractiveTarget(t._path),delete this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,k(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){X(t._path)},_bringToBack:function(t){J(t._path)}});$i&&Pn.include(xn),be.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this._createRenderer()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&$t(t)||Qt(t)}});var Ln=on.extend({initialize:function(t,i){on.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=z(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Pn.create=wn,Pn.pointsToPath=k,sn.geometryToLayer=Ft,sn.coordsToLatLng=Ut,sn.coordsToLatLngs=Vt,sn.latLngToCoords=qt,sn.latLngsToCoords=Gt,sn.getFeature=Kt,sn.asFeature=Yt,be.mergeOptions({boxZoom:!0});var bn=Ee.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(){mt(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){ft(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){K(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(),fi(),ut(),this._startPoint=this._map.mouseEventToContainerPoint(t),mt(document,{contextmenu:Lt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=G("div","leaflet-zoom-box",this._container),Q(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new P(this._point,this._startPoint),e=i.getSize();at(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(K(this._box),tt(this._container,"leaflet-crosshair")),gi(),lt(),ft(document,{contextmenu:Lt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(e(this._resetState,this),0);var i=new T(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});be.addInitHook("addHandler","boxZoom",bn),be.mergeOptions({doubleClickZoom:!0});var Tn=Ee.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});be.addInitHook("addHandler","doubleClickZoom",Tn),be.mergeOptions({dragging:!0,inertia:!Mi,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var zn=Ee.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new Re(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))}Q(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){tt(this._map._container,"leaflet-grab"),tt(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=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=z(this._map.options.maxBounds);this._offsetLimit=b(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)<Math.abs(s+e)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var i=this._map,e=i.options,n=!e.inertia||this._times.length<2;if(i.fire("dragend",t),n)i.fire("moveend");else{this._prunePositions(+new Date);var o=this._lastPos.subtract(this._positions[0]),s=(this._lastTime-this._times[0])/1e3,r=e.easeLinearity,a=o.multiplyBy(r/s),h=a.distanceTo([0,0]),u=Math.min(e.inertiaMaxSpeed,h),l=a.multiplyBy(u/h),c=u/(e.inertiaDeceleration*r),_=l.multiplyBy(-c/2).round();_.x||_.y?(_=i._limitOffset(_,i.options.maxBounds),f(function(){i.panBy(_,{duration:c,easeLinearity:r,noMoveStart:!0,animate:!0})})):i.fire("moveend")}}});be.addInitHook("addHandler","dragging",zn),be.mergeOptions({keyboard:!0,keyboardPanDelta:80});var Mn=Ee.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),mt(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),ft(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var t=document.body,i=document.documentElement,e=t.scrollTop||i.scrollTop,n=t.scrollLeft||i.scrollLeft;this._map._container.focus(),window.scrollTo(n,e)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var i,e,n=this._panKeys={},o=this.keyCodes;for(i=0,e=o.left.length;i<e;i++)n[o.left[i]]=[-1*t,0];for(i=0,e=o.right.length;i<e;i++)n[o.right[i]]=[t,0];for(i=0,e=o.down.length;i<e;i++)n[o.down[i]]=[0,t];for(i=0,e=o.up.length;i<e;i++)n[o.up[i]]=[0,-1*t]},_setZoomDelta:function(t){var i,e,n=this._zoomKeys={},o=this.keyCodes;for(i=0,e=o.zoomIn.length;i<e;i++)n[o.zoomIn[i]]=t;for(i=0,e=o.zoomOut.length;i<e;i++)n[o.zoomOut[i]]=-t},_addHooks:function(){mt(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){ft(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var i,e=t.keyCode,n=this._map;if(e in this._panKeys)n._panAnim&&n._panAnim._inProgress||(i=this._panKeys[e],t.shiftKey&&(i=w(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds));else if(e in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup||!n._popup.options.closeOnEscapeKey)return;n.closePopup()}Lt(t)}}});be.addInitHook("addHandler","keyboard",Mn),be.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var Cn=Ee.extend({addHooks:function(){mt(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){ft(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var i=Tt(t),n=this._map.options.wheelDebounceTime;this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var o=Math.max(n-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(e(this._performZoom,this),o),Lt(t)},_performZoom:function(){var t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=e?Math.ceil(o/e)*e:o,r=t._limitZoom(i+(this._delta>0?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});be.addInitHook("addHandler","scrollWheelZoom",Cn),be.mergeOptions({tap:!0,tapTolerance:15});var Sn=Ee.extend({addHooks:function(){mt(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){ft(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Pt(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new x(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&Q(n,"leaflet-active"),this._holdTimeout=setTimeout(e(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),mt(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),ft(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],e=i.target;e&&e.tagName&&"a"===e.tagName.toLowerCase()&&tt(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new x(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});qi&&!Vi&&be.addInitHook("addHandler","tap",Sn),be.mergeOptions({touchZoom:qi&&!Mi,bounceAtZoomLimits:!0});var Zn=Ee.extend({addHooks:function(){Q(this._map._container,"leaflet-touch-zoom"),mt(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){tt(this._map._container,"leaflet-touch-zoom"),ft(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),mt(document,"touchmove",this._onTouchMove,this),mt(document,"touchend",this._onTouchEnd,this),Pt(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,n=i.mouseEventToContainerPoint(t.touches[0]),o=i.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&s<1||this._zoom>i.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=n._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),g(this._animRequest);var a=e(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=f(a,this,!0),Pt(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,g(this._animRequest),ft(document,"touchmove",this._onTouchMove),ft(document,"touchend",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});be.addInitHook("addHandler","touchZoom",Zn),be.BoxZoom=bn,be.DoubleClickZoom=Tn,be.Drag=zn,be.Keyboard=Mn,be.ScrollWheelZoom=Cn,be.Tap=Sn,be.TouchZoom=Zn,Object.freeze=ti,t.version="1.3.3+HEAD.b22aef4",t.Control=Te,t.control=ze,t.Browser=Qi,t.Evented=ci,t.Mixin=Ae,t.Util=ui,t.Class=v,t.Handler=Ee,t.extend=i,t.bind=e,t.stamp=n,t.setOptions=l,t.DomEvent=Pe,t.DomUtil=ve,t.PosAnimation=Le,t.Draggable=Re,t.LineUtil=Ne,t.PolyUtil=De,t.Point=x,t.point=w,t.Bounds=P,t.bounds=b,t.Transformation=S,t.transformation=Z,t.Projection=He,t.LatLng=M,t.latLng=C,t.LatLngBounds=T,t.latLngBounds=z,t.CRS=di,t.GeoJSON=sn,t.geoJSON=Xt,t.geoJson=an,t.Layer=qe,t.LayerGroup=Ge,t.layerGroup=function(t,i){return new Ge(t,i)},t.FeatureGroup=Ke,t.featureGroup=function(t){return new Ke(t)},t.ImageOverlay=hn,t.imageOverlay=function(t,i,e){return new hn(t,i,e)},t.VideoOverlay=un,t.videoOverlay=function(t,i,e){return new un(t,i,e)},t.DivOverlay=ln,t.Popup=cn,t.popup=function(t,i){return new cn(t,i)},t.Tooltip=_n,t.tooltip=function(t,i){return new _n(t,i)},t.Icon=Ye,t.icon=function(t){return new Ye(t)},t.DivIcon=dn,t.divIcon=function(t){return new dn(t)},t.Marker=$e,t.marker=function(t,i){return new $e(t,i)},t.TileLayer=mn,t.tileLayer=Jt,t.GridLayer=pn,t.gridLayer=function(t){return new pn(t)},t.SVG=Pn,t.svg=Qt,t.Renderer=gn,t.Canvas=vn,t.canvas=$t,t.Path=Qe,t.CircleMarker=tn,t.circleMarker=function(t,i){return new tn(t,i)},t.Circle=en,t.circle=function(t,i,e){return new en(t,i,e)},t.Polyline=nn,t.polyline=function(t,i){return new nn(t,i)},t.Polygon=on,t.polygon=function(t,i){return new on(t,i)},t.Rectangle=Ln,t.rectangle=function(t,i){return new Ln(t,i)},t.Map=be,t.map=function(t,i){return new be(t,i)};var En=window.L;t.noConflict=function(){return window.L=En,this},window.L=t});
+\ No newline at end of file
diff --git a/searx/static/themes/simple/less/#toolkit_loader.less# b/searx/static/themes/simple/less/#toolkit_loader.less#
diff --git a/searx/static/themes/simple/less/.#toolkit_loader.less b/searx/static/themes/simple/less/.#toolkit_loader.less
@@ -0,0 +1 @@
+alexandre@alf-laptop.2449:1533915028
+\ No newline at end of file
diff --git a/searx/static/themes/simple/less/ion.less b/searx/static/themes/simple/less/ion.less
@@ -3,12 +3,12 @@
@font-face {
font-family:"ion";
- src:url("../fonts/ion.eot?492c5e946f5ae6f02467d64ca0f55cd1");
+ src:url("../fonts/ion.eot?ce7a0ead692560b4405a96d5b8471f51");
src:url("../fonts/ion.eot?#iefix") format("embedded-opentype"),
- url("../fonts/ion.woff2?492c5e946f5ae6f02467d64ca0f55cd1") format("woff2"),
- url("../fonts/ion.woff?492c5e946f5ae6f02467d64ca0f55cd1") format("woff"),
- url("../fonts/ion.ttf?492c5e946f5ae6f02467d64ca0f55cd1") format("truetype"),
- url("../fonts/ion.svg?492c5e946f5ae6f02467d64ca0f55cd1#ion") format("svg");
+ url("../fonts/ion.woff2?ce7a0ead692560b4405a96d5b8471f51") format("woff2"),
+ url("../fonts/ion.woff?ce7a0ead692560b4405a96d5b8471f51") format("woff"),
+ url("../fonts/ion.ttf?ce7a0ead692560b4405a96d5b8471f51") format("truetype"),
+ url("../fonts/ion.svg?ce7a0ead692560b4405a96d5b8471f51#ion") format("svg");
font-weight:normal;
font-style:normal;
}
@@ -172,3 +172,10 @@
}
}
+
+.ion-close {
+ &:before {
+ content:"\f115";
+ }
+}
+
diff --git a/searx/static/themes/simple/less/mixins.less b/searx/static/themes/simple/less/mixins.less
@@ -30,7 +30,7 @@
.select-all-on-focus() {
-webkit-user-select: all;
-moz-user-select: all;
- -ms-user-select: all;
+ -ms-user-select: element;
user-select: all;
}
diff --git a/searx/static/themes/simple/less/normalize.less b/searx/static/themes/simple/less/normalize.less
@@ -1,17 +1,15 @@
-/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
+/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
- * 2. Prevent adjustments of font size after orientation changes in
- * IE on Windows Phone and in iOS.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
@@ -19,7 +17,7 @@ html {
========================================================================== */
/**
- * Remove the margin in all browsers (opinionated).
+ * Remove the margin in all browsers.
*/
body {
@@ -27,19 +25,6 @@ body {
}
/**
- * Add the correct display in IE 9-.
- */
-
-article,
-aside,
-footer,
-header,
-nav,
-section {
- display: block;
-}
-
-/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
@@ -53,25 +38,6 @@ h1 {
========================================================================== */
/**
- * Add the correct display in IE 9-.
- * 1. Add the correct display in IE.
- */
-
-figcaption,
-figure,
-main { /* 1 */
- display: block;
-}
-
-/**
- * Add the correct margin in IE 8.
- */
-
-figure {
- margin: 1em 40px;
-}
-
-/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
@@ -96,17 +62,15 @@ pre {
========================================================================== */
/**
- * 1. Remove the gray background on active links in IE 10.
- * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
+ * Remove the gray background on active links in IE 10.
*/
a {
- background-color: transparent; /* 1 */
- -webkit-text-decoration-skip: objects; /* 2 */
+ background-color: transparent;
}
/**
- * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
+ * 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
@@ -117,15 +81,6 @@ abbr[title] {
}
/**
- * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
- */
-
-b,
-strong {
- font-weight: inherit;
-}
-
-/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
@@ -147,23 +102,6 @@ samp {
}
/**
- * Add the correct font style in Android 4.3-.
- */
-
-dfn {
- font-style: italic;
-}
-
-/**
- * Add the correct background and color in IE 9-.
- */
-
-mark {
- background-color: #ff0;
- color: #000;
-}
-
-/**
* Add the correct font size in all browsers.
*/
@@ -196,44 +134,18 @@ sup {
========================================================================== */
/**
- * Add the correct display in IE 9-.
- */
-
-audio,
-video {
- display: inline-block;
-}
-
-/**
- * Add the correct display in iOS 4-7.
- */
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-/**
- * Remove the border on images inside links in IE 10-.
+ * Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
-/**
- * Hide the overflow in IE.
- */
-
-svg:not(:root) {
- overflow: hidden;
-}
-
/* Forms
========================================================================== */
/**
- * 1. Change the font styles in all browsers (opinionated).
+ * 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
@@ -242,7 +154,7 @@ input,
optgroup,
select,
textarea {
- font-family: sans-serif; /* 1 */
+ font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
@@ -269,16 +181,14 @@ select { /* 1 */
}
/**
- * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
- * controls in Android 4.
- * 2. Correct the inability to style clickable types in iOS and Safari.
+ * Correct the inability to style clickable types in iOS and Safari.
*/
button,
-html [type="button"], /* 1 */
+[type="button"],
[type="reset"],
[type="submit"] {
- -webkit-appearance: button; /* 2 */
+ -webkit-appearance: button;
}
/**
@@ -329,17 +239,15 @@ legend {
}
/**
- * 1. Add the correct display in IE 9-.
- * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
- display: inline-block; /* 1 */
- vertical-align: baseline; /* 2 */
+ vertical-align: baseline;
}
/**
- * Remove the default vertical scrollbar in IE.
+ * Remove the default vertical scrollbar in IE 10+.
*/
textarea {
@@ -347,8 +255,8 @@ textarea {
}
/**
- * 1. Add the correct box sizing in IE 10-.
- * 2. Remove the padding in IE 10-.
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
*/
[type="checkbox"],
@@ -377,10 +285,9 @@ textarea {
}
/**
- * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+ * Remove the inner padding in Chrome and Safari on macOS.
*/
-[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
@@ -399,12 +306,10 @@ textarea {
========================================================================== */
/*
- * Add the correct display in IE 9-.
- * 1. Add the correct display in Edge, IE, and Firefox.
+ * Add the correct display in Edge, IE 10+, and Firefox.
*/
-details, /* 1 */
-menu {
+details {
display: block;
}
@@ -416,30 +321,19 @@ summary {
display: list-item;
}
-/* Scripting
+/* Misc
========================================================================== */
/**
- * Add the correct display in IE 9-.
- */
-
-canvas {
- display: inline-block;
-}
-
-/**
- * Add the correct display in IE.
+ * Add the correct display in IE 10+.
*/
template {
display: none;
}
-/* Hidden
- ========================================================================== */
-
/**
- * Add the correct display in IE 10-.
+ * Add the correct display in IE 10.
*/
[hidden] {
diff --git a/searx/static/themes/simple/less/preferences.less b/searx/static/themes/simple/less/preferences.less
@@ -45,6 +45,24 @@
text-align: center;
}
+ table.cookies {
+ width: auto;
+
+ th, td {
+ text-align: left;
+ padding: 0.25em;
+ }
+
+ th:first-child, td:first-child {
+ padding-right: 4em;
+ }
+
+ &>tbody>tr:nth-child(even)>th,
+ &>tbody>tr:nth-child(even)>td {
+ background-color: @color-settings-tr-hover;
+ }
+ }
+
.name, .shortcut {
text-align: left;
}
@@ -69,6 +87,13 @@
}
}
+
+ div.selectable_url {
+ pre {
+ width: 100%;
+ }
+ }
+
}
@media screen and (max-width: 75em) {
diff --git a/searx/static/themes/simple/less/search.less b/searx/static/themes/simple/less/search.less
@@ -26,11 +26,43 @@
*/
}
+#clear_search {
+ display: block;
+ border-collapse: separate;
+ box-sizing: border-box;
+ width: 1.8em;
+
+ margin: 0;
+ padding: 2px;
+ height: 2.2em;
+ background: none repeat scroll 0 0 @color-search-background;
+ border-top: 1px solid @color-search-border;
+ border-bottom: 1px solid @color-search-border;
+ border-right: none;
+ border-left: none;
+ border-radius: 0px;
+ outline: none;
+ color: @color-search-font;
+ font-size: 16px;
+ z-index: 10000;
+
+ &:hover {
+ color: @color-search-border;
+ }
+
+ &.empty * {
+ display: none;
+ }
+}
+
+#q::-ms-clear, #q::-webkit-search-cancel-button {
+ display: none;
+}
+
#q, #send_search {
display: block !important;
border-collapse: separate;
box-sizing: border-box;
- position: relative;
margin: 0;
padding: 2px;
diff --git a/searx/static/themes/simple/less/style.less b/searx/static/themes/simple/less/style.less
@@ -477,25 +477,9 @@ article.result-images[data-vim-selected]::before {
#search_url {
margin-top: 8px;
- div {
- display: block;
- border: 1px solid @color-result-search-url-border;
- padding: 4px;
- color: @color-result-search-url-font;
- width: 100%;
- display: block;
- margin: 0.1em;
- overflow: hidden;
- height: 1.2em;
- line-height: 1.2em;
-
+ div.selectable_url {
pre {
- display: block;
width: 200em;
- font-size: 0.8em;
- word-break: break-all;
- margin: 0.1em;
- .select-all-on-focus();
}
}
}
@@ -648,6 +632,34 @@ article.result-images[data-vim-selected]::before {
}
+#main_results div#results.only_template_images {
+ flex-direction: column;
+ width: auto;
+ display: flex;
+
+ #sidebar {
+ position: relative;
+ top: auto;
+ order: 2;
+ }
+
+ #urls {
+ position: relative;
+ order: 1;
+ }
+
+ #backToTop {
+ right: 0.5em;
+ left: auto;
+ }
+
+ #pagination {
+ position: relative;
+ order: 3;
+ }
+}
+
+
@media screen and (max-width: @results-width) {
article[data-vim-selected]::before {
diff --git a/searx/static/themes/simple/less/toolkit.less b/searx/static/themes/simple/less/toolkit.less
@@ -20,7 +20,16 @@ html.js .show_if_nojs {
}
.invisible {
- display: none;
+ display: none !important;
+}
+
+.list-unstyled {
+ list-style-type: none;
+
+ li {
+ margin-top: 4px;
+ margin-bottom: 4px;
+ }
}
.danger {
@@ -39,6 +48,15 @@ html.js .show_if_nojs {
border-radius: 5px;
}
+// kbd
+kbd {
+ padding: 2px 4px;
+ margin: 1px;
+ font-size: 90%;
+ color: white;
+ background: black;
+}
+
// table
table {
@@ -65,6 +83,32 @@ tr {
}
}
+// pre
+.pre() {
+ display: block;
+ font-size: 0.8em;
+ word-break: break-all;
+ margin: 0.1em;
+ .select-all-on-focus();
+}
+
+div.selectable_url {
+ display: block;
+ border: 1px solid @color-result-search-url-border;
+ padding: 4px;
+ color: @color-result-search-url-font;
+ width: 100%;
+ display: block;
+ margin: 0.1em;
+ overflow: hidden;
+ height: 1.2em;
+ line-height: 1.2em;
+
+ pre {
+ .pre();
+ }
+}
+
// dialog
.dialog() {
position: relative;
@@ -95,6 +139,28 @@ tr {
margin: 1px 0 0 0;
}
+ table {
+ width: auto;
+ }
+
+ tr {
+ vertical-align: text-top;
+
+ &:hover {
+ background: transparent;
+ }
+ }
+
+ td {
+ padding: 0 1em 0 0;
+ }
+
+
+ h4 {
+ margin-top: 0.3em;
+ margin-bottom: 0.3em;
+ }
+
}
.dialog-error {
@@ -113,6 +179,19 @@ tr {
.ion-warning();
}
+.dialog-modal {
+ .dialog();
+ background: white;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ /* bring your own prefixes */
+ transform: translate(-50%, -50%);
+ z-index: 100000;
+ margin: 0 50% 0 0;
+ box-shadow: 0 0 1em;
+}
+
// btn-collapse
.btn-collapse {
cursor: pointer;
@@ -128,7 +207,7 @@ tr {
border: none;
}
-// tabs
+/* -- tabs --*/
.tabs .tabs > label {
font-size: 90%;
}
@@ -215,7 +294,7 @@ html body .tabs > input:checked {
}
}
-// select
+/* -- select -- */
select {
height: 28px;
margin: 0 1em 0 0;
@@ -251,7 +330,7 @@ select {
}
-// checkbox-onoff
+/* -- checkbox-onoff -- */
@supports (border-radius: 50px) {
.checkbox-onoff {
display: inline-block;
@@ -285,7 +364,7 @@ select {
}
}
-// checkbox
+/* -- checkbox --*/
@supports (transform: rotate(-45deg)) {
.checkbox {
width: 20px;
@@ -325,7 +404,7 @@ select {
}
}
- // disabled : can't be focused, show only the check mark
+ // disabled : can''t be focused, show only the check mark
input[disabled] + label {
background-color: transparent !important;
box-shadow: none !important;
@@ -344,3 +423,46 @@ select {
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 rgba(0, 0, 0, 0.2);
+ border-right: 0.5em solid rgba(0, 0, 0, 0.2);
+ border-bottom: 0.5em solid rgba(0, 0, 0, 0.2);
+ border-left: 0.5em solid rgba(255, 255, 255, 0);
+ -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);
+ }
+}
+\ No newline at end of file
diff --git a/searx/static/themes/simple/less/toolkit_loader.less b/searx/static/themes/simple/less/toolkit_loader.less
@@ -0,0 +1,41 @@
+.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 #ffffff;
+ -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);
+ }
+}
+\ No newline at end of file
diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json
@@ -1,15 +1,15 @@
{
"devDependencies": {
- "grunt": "~1.0.1",
+ "grunt": "~1.0.3",
"grunt-contrib-concat": "~1.0.1",
"grunt-contrib-cssmin": "^2.2.1",
"grunt-contrib-jshint": "~1.1.0",
"grunt-contrib-less": "^1.4.1",
- "grunt-contrib-uglify": "~3.0.1",
- "grunt-contrib-watch": "~1.0.0",
- "grunt-webfont": "^1.6.0",
+ "grunt-contrib-uglify": "~3.4.0",
+ "grunt-contrib-watch": "~1.1.0",
+ "grunt-webfont": "^1.7.1",
"ionicons-npm": "^2.0.1",
- "jslint": "^0.10.3",
+ "jslint": "^0.12.0",
"less-plugin-clean-css": "^1.5.1"
},
"scripts": {
diff --git a/searx/templates/oscar/preferences.html b/searx/templates/oscar/preferences.html
@@ -187,7 +187,7 @@
</td>
<th>{{ search_engine.name }}</th>
<td class="name">{{ shortcuts[search_engine.name] }}</td>
- <td>{{ support_toggle(current_language in search_engine.supported_languages or current_language.split('-')[0] in search_engine.supported_languages) }}</td>
+ <td>{{ support_toggle(stats[search_engine.name].supports_selected_language) }}</td>
<td>{{ support_toggle(search_engine.safesearch==True) }}</td>
<td>{{ support_toggle(search_engine.time_range_support==True) }}</td>
<td class="{{ 'danger' if stats[search_engine.name]['warn_time'] else '' }}">{{ 'N/A' if stats[search_engine.name].time==None else stats[search_engine.name].time }}</td>
@@ -197,7 +197,7 @@
<td class="{{ 'danger' if stats[search_engine.name]['warn_time'] else '' }}">{{ 'N/A' if stats[search_engine.name].time==None else stats[search_engine.name].time }}</td>
<td>{{ support_toggle(search_engine.time_range_support==True) }}</td>
<td>{{ support_toggle(search_engine.safesearch==True) }}</td>
- <td>{{ support_toggle(current_language in search_engine.supported_languages or current_language.split('-')[0] in search_engine.supported_languages) }}</td>
+ <td>{{ support_toggle(stats[search_engine.name].supports_selected_language) }}</td>
<td>{{ shortcuts[search_engine.name] }}</td>
<th>{{ search_engine.name }}</th>
<td class="onoff-checkbox">
diff --git a/searx/templates/simple/preferences.html b/searx/templates/simple/preferences.html
@@ -52,9 +52,9 @@
<p class="value">
<select name="autocomplete">
<option value=""> - </option>
- {% for backend in autocomplete_backends %}
+ {%- for backend in autocomplete_backends -%}
<option value="{{ backend }}" {% if backend == autocomplete %}selected="selected"{% endif %}>{{ backend }}</option>
- {% endfor %}
+ {%- endfor -%}
</select>
</p>
<div class="description">{{ _('Find stuff as you type') }}</div>
@@ -71,6 +71,19 @@
<div class="description">{{ _('Filter content') }}</p>
</fieldset>
{{ plugin_preferences('general') }}
+ <fieldset>
+ <legend>{{ _('Open Access DOI resolver') }}</legend>
+ <p class="value">
+ <select id='doi_resolver' name='doi_resolver'>
+ {%- for doi_resolver_name,doi_resolver_url in doi_resolvers.items() -%}
+ <option value="{{ doi_resolver_name }}" {% if doi_resolver_name == current_doi_resolver %}selected="selected"{% endif %}>
+ {{- doi_resolver_name }} - {{ doi_resolver_url -}}
+ </option>
+ {%- endfor -%}
+ </select>
+ </p>
+ <div class="description"><!-- {{ _('Redirect to open-access versions of publications when available (plugin required)') }} --></div>
+ </fieldset>
{{ tab_footer() }}
{{ tab_header('maintab', 'engines', _('Engines')) }}
@@ -151,6 +164,38 @@
{{ plugin_preferences('ui') }}
{{ tab_footer() }}
+ {{ tab_header('maintab', 'cookies', _('Cookies')) }}
+
+ <p class="text-muted" style="margin:20px 0;">
+ {{ _('This is the list of cookies and their values searx is storing on your computer.') }}<br />
+ {{ _('With that list, you can assess searx transparency.') }}<br />
+ </p>
+
+ {% if cookies %}
+ <table class="cookies">
+ <tr>
+ <th>{{ _('Cookie name') }}</th>
+ <th>{{ _('Value') }}</th>
+ </tr>
+ {% for cookie in cookies %}
+ <tr>
+ <td>{{ cookie }}</td>
+ <td>{{ cookies[cookie] }}</td>
+ </tr>
+ {% endfor %}
+ </table>
+ {% else %}
+ {% include 'oscar/messages/no_cookies.html' %}
+ {% endif %}
+
+ <h4>{{ _('Search URL of the currently saved preferences') }} :</h4>
+ <div class="selectable_url">
+ <pre>{{ url_for('index', _external=True) }}?preferences={{ preferences_url_params|e }}{% raw %}&q=%s{% endraw %}</pre>
+ </div>
+ <p class="small_font">{{ _('Note: specifying custom settings in the search URL can reduce privacy by leaking data to the clicked result sites.') }}</p>
+
+ {{ tab_footer() }}
+
{{ tab_header('maintab', 'privacy', _('Privacy')) }}
<fieldset>
<legend>{{ _('Method') }}</legend>
@@ -173,6 +218,7 @@
<div class="description">{{ _('Proxying image results through searx') }}</div>
</fieldset>
{{ plugin_preferences('privacy') }}
+
{{ tab_footer() }}
{{ tabs_close() }}
@@ -180,7 +226,7 @@
<p class="small_font">{{ _('These settings are stored in your cookies, this allows us not to store this data about you.') }}
<br />
{{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }}
- </p>
+ </p>
<input type="submit" value="{{ _('save') }}" />
<div class="{% if rtl %}left{% else %}right{% endif %} preferences_back"><a href="{{ url_for('clear_cookies') }}">{{ _('Reset defaults') }}</a></div>
diff --git a/searx/templates/simple/result_templates/map.html b/searx/templates/simple/result_templates/map.html
@@ -23,17 +23,17 @@
{%- endif -%}
{% if result.address.road -%}
<span itemprop="streetAddress">
- {% if result.address.house_number %}{{ result.address.house_number }}, {% endif %}
- {{ result.address.road }}
+ {%- if result.address.house_number -%}{{- result.address.house_number -}}, {% endif %}
+ {{- result.address.road -}}
</span><br/>
{%- endif %}
{%- if result.address.locality -%}
- <span itemprop="addressLocality">{{ result.address.locality }}</span>
- {% if result.address.postcode %}, <span itemprop="postalCode">{{ result.address.postcode }}</span>{% endif %}
+ <span itemprop="addressLocality">{{- result.address.locality -}}</span>
+ {%- if result.address.postcode -%}, <span itemprop="postalCode">{{- result.address.postcode -}}</span>{% endif %}
<br/>
{%- endif -%}
{%- if result.address.country -%}
- <span itemprop="addressCountry">{{ result.address.country }}</span>
+ <span itemprop="addressCountry">{{- result.address.country -}}</span>
{%- endif -%}
</p>
{%- endif -%}
@@ -44,11 +44,8 @@
{% if result.osm and (result.osm.type and result.osm.id) -%}
<div class="result-content invisible" id="result-overpass-{{ index }}"{% if rtl %} dir="ltr"{% endif %}>
- <div id="result-overpass-table-loading-{{ index }}"><img src="{{ url_for('static', filename='img/loader.gif') }}" alt="Loading ..."/></div>
+ <div id="result-overpass-table-loading-{{ index }}"><div class="loader">{{ _('Loading...') }}</div></div>
<table id="result-overpass-table-{{ index }}">
- <thead>
- <tr><th>key</th><th>value</th></tr>
- </thead>
<tbody>
</tbody>
</table>
diff --git a/searx/templates/simple/results.html b/searx/templates/simple/results.html
@@ -1,18 +1,25 @@
{% extends "simple/base.html" %}
{% from 'simple/macros.html' import icon, icon_small %}
-{% block title %}{{ q|e }} - {% endblock %}
+{% block title %}{% if method == 'GET' %}{{- q|e -}} -{% endif %}{% endblock %}
{% block meta %}<link rel="alternate" type="application/rss+xml" title="Searx search: {{ q|e }}" href="{{ url_for('index') }}?q={{ q|urlencode }}&categories={{ selected_categories|join(",") | replace(' ','+') }}&pageno={{ pageno }}&time_range={{ time_range }}&language={{ current_language }}&safesearch={{ safesearch }}&format=rss">{% endblock %}
{% block content %}
<nav id="linkto_preferences"><a href="{{ url_for('preferences') }}">{{ icon('navicon-round') }}</a></nav>
{% include 'simple/search.html' %}
-<div id="results">
- {% if answers %}
+
+{% if results and results|map(attribute='template')|unique|list|count == 1 %}
+ {% set only_template = 'only_template_' + results[0]['template']|default('default')|replace('.html', '') %}
+{% else %}
+ {% set unique_template = '' %}
+{% endif %}
+
+<div id="results" class="{{ only_template }}">
+ {% if answers -%}
<div id="answers"><h4 class="title">{{ _('Answers') }} : </h4>
- {% for answer in answers -%}
- <div class="answer">{{ answer }}</div>
- {%- endfor %}
+ {%- for answer in answers -%}
+ <div class="answer">{{- answer -}}</div>
+ {%- endfor -%}
</div>
- {% endif %}
+ {%- endif %}
<div id="sidebar">
@@ -24,16 +31,16 @@
<div class="dialog-error" role="alert">
<p><strong>{{ _('Error!') }}</strong> {{ _('Engines cannot retrieve results') }}:</p>
<p>{% for engine_name, error_type in unresponsive_engines %}
- {{ engine_name }} ({{ error_type }}){% if not loop.last %}, {% endif %}
+ {{- engine_name }} ({{- error_type -}}){% if not loop.last %}, {% endif %}
{% endfor %}</p>
</div>
{% endif %}
{% if infoboxes %}
<div id="infoboxes">
- {% for infobox in infoboxes %}
- {% include 'simple/infobox.html' %}
- {% endfor %}
+ {% for infobox in infoboxes -%}
+ {% include 'simple/infobox.html' %}
+ {%- endfor %}
</div>
{% endif %}
@@ -56,7 +63,7 @@
<div id="search_url">
<h4 class="title">{{ _('Search URL') }} :</h4>
- <div><pre>{{ base_url }}?q={{ q|urlencode }}&language={{ current_language }}&time_range={{ time_range }}&safesearch={{ safesearch }}{% if pageno > 1 %}&pageno={{ pageno }}{% endif %}{% if selected_categories %}&categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}</pre></div>
+ <div class="selectable_url"><pre>{{ base_url }}?q={{ q|urlencode }}&language={{ current_language }}&time_range={{ time_range }}&safesearch={{ safesearch }}{% if pageno > 1 %}&pageno={{ pageno }}{% endif %}{% if selected_categories %}&categories={{ selected_categories|join(",") | replace(' ','+') }}{% endif %}</pre></div>
</div>
<div id="apis">
<h4 class="title">{{ _('Download results') }}</h4>
diff --git a/searx/templates/simple/search.html b/searx/templates/simple/search.html
@@ -2,6 +2,7 @@
<div id="search_wrapper">
<div class="search_box">
<input id="q" name="q" type="text" placeholder="{{ _('Search for...') }}" tabindex="1" autocomplete="off" spellcheck="false" dir="auto" {% if q %}value="{{ q }}"{% endif %} >
+ <button id="clear_search" type="button" tabindex="-1"><span class="hide_if_nojs">{{ icon('close') }}</span><span class="show_if_nojs">{{ _('Clear search') }}</span></button>
<button id="send_search" type="submit" tabindex="-1"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="show_if_nojs">{{ _('Start search') }}</span></button>
</div>
<div class="search_filters">
diff --git a/searx/translations/ar/LC_MESSAGES/messages.mo b/searx/translations/ar/LC_MESSAGES/messages.mo
Binary files differ.
diff --git a/searx/translations/ar/LC_MESSAGES/messages.po b/searx/translations/ar/LC_MESSAGES/messages.po
@@ -3,14 +3,14 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
-# ButterflyOfFire, 2017-2018
+# ButterflyOfFire <ButterflyOfFire@protonmail.com>, 2017-2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-11-01 21:31+0100\n"
"PO-Revision-Date: 2018-01-23 17:54+0000\n"
-"Last-Translator: ButterflyOfFire\n"
+"Last-Translator: ButterflyOfFire <ButterflyOfFire@protonmail.com>\n"
"Language-Team: Arabic (http://www.transifex.com/asciimoo/searx/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff --git a/searx/translations/da/LC_MESSAGES/messages.mo b/searx/translations/da/LC_MESSAGES/messages.mo
Binary files differ.
diff --git a/searx/translations/da/LC_MESSAGES/messages.po b/searx/translations/da/LC_MESSAGES/messages.po
@@ -3,14 +3,15 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
+# Mikkel Kirkgaard Nielsen <memb_transifex@mikini.dk>, 2018
# Morten Krogh Andersen <spam1@krogh.net>, 2017
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-11-01 20:31+0000\n"
-"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
+"PO-Revision-Date: 2018-02-22 01:48+0000\n"
+"Last-Translator: Mikkel Kirkgaard Nielsen <memb_transifex@mikini.dk>\n"
"Language-Team: Danish (http://www.transifex.com/asciimoo/searx/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -21,15 +22,15 @@ msgstr ""
#: searx/search.py:137 searx/search.py:182
msgid "timeout"
-msgstr ""
+msgstr "tidsudløb"
#: searx/search.py:144
msgid "request exception"
-msgstr ""
+msgstr "forespørgsels-undtagelse"
#: searx/search.py:151
msgid "unexpected crash"
-msgstr ""
+msgstr "uventet nedlukning"
#: searx/webapp.py:136
msgid "files"
@@ -77,7 +78,7 @@ msgstr "Ugyldige indstillinger, redigér venligst dine valg"
#: searx/webapp.py:415
msgid "Invalid settings"
-msgstr ""
+msgstr "Ugyldig indstilling"
#: searx/webapp.py:449 searx/webapp.py:493
msgid "search error"
@@ -143,7 +144,7 @@ msgstr "Denne værdi er blevet overskrevet af"
#: searx/engines/pubmed.py:74
msgid "No abstract is available for this publication."
-msgstr ""
+msgstr "Intet sammendrag er tilgængelig for denne publikation."
#: searx/plugins/https_rewrite.py:32
msgid "Rewrite HTTP links to HTTPS if possible"
@@ -159,7 +160,7 @@ msgstr "Indlæs automatisk næste side, når der scrolles til bunden af den nuv
#: searx/plugins/oa_doi_rewrite.py:9
msgid "Open Access DOI rewrite"
-msgstr ""
+msgstr "Open Access DOI-omskrivning"
#: searx/plugins/oa_doi_rewrite.py:10
msgid ""
@@ -630,11 +631,11 @@ msgstr "viderestillet"
#: searx/templates/oscar/macros.html:92
msgid "supported"
-msgstr ""
+msgstr "understøttet"
#: searx/templates/oscar/macros.html:96
msgid "not supported"
-msgstr ""
+msgstr "ikke-understøttet"
#: searx/templates/oscar/preferences.html:13
#: searx/templates/oscar/preferences.html:22
@@ -712,13 +713,13 @@ msgstr "Stil"
#: searx/templates/oscar/preferences.html:122
msgid "Open Access DOI resolver"
-msgstr ""
+msgstr "Open Access DOI-forløser"
#: searx/templates/oscar/preferences.html:123
msgid ""
"Redirect to open-access versions of publications when available (plugin "
"required)"
-msgstr ""
+msgstr "Omdiriger til open-access-udgaver af publikationer hvis tilgængelig (plugin påkrævet)"
#: searx/templates/oscar/preferences.html:163
#: searx/templates/oscar/preferences.html:175
@@ -729,7 +730,7 @@ msgstr "Genvej"
#: searx/templates/oscar/preferences.html:164
#: searx/templates/oscar/preferences.html:174
msgid "Selected language"
-msgstr ""
+msgstr "Valgt sprog"
#: searx/templates/oscar/preferences.html:166
#: searx/templates/oscar/preferences.html:172
@@ -789,13 +790,13 @@ msgstr "Værdi"
#: searx/templates/oscar/preferences.html:301
msgid "Search URL of the currently saved preferences"
-msgstr ""
+msgstr "Søge-URL for den nuværende gemte indstilling"
#: searx/templates/oscar/preferences.html:301
msgid ""
"Note: specifying custom settings in the search URL can reduce privacy by "
"leaking data to the clicked result sites."
-msgstr ""
+msgstr "Bemærk: brugertilpassede indstillinger i søge-URL kan reducere niveauet af beskyttelse ved at lække data til de sider der klikkes på i resultatet."
#: searx/templates/oscar/results.html:17
msgid "Search results"
@@ -804,12 +805,12 @@ msgstr "Søgereresultater"
#: searx/templates/oscar/results.html:21
#: searx/templates/simple/results.html:84
msgid "Try searching for:"
-msgstr ""
+msgstr "Prøv at søge efter:"
#: searx/templates/oscar/results.html:100
#: searx/templates/simple/results.html:25
msgid "Engines cannot retrieve results"
-msgstr ""
+msgstr "Søgemotorer kan ikke hente resultater"
#: searx/templates/oscar/results.html:131
msgid "Links"
@@ -874,12 +875,12 @@ msgstr "Der er pt. ingen tilgængelige data"
#: searx/templates/oscar/messages/no_results.html:4
#: searx/templates/simple/messages/no_results.html:4
msgid "Engines cannot retrieve results."
-msgstr ""
+msgstr "Søgemotorer kan ikke hente resultater."
#: searx/templates/oscar/messages/no_results.html:10
#: searx/templates/simple/messages/no_results.html:10
msgid "Please, try again later or find another searx instance."
-msgstr ""
+msgstr "Vær venlig at prøve igen senere, eller find en anden searx-instans."
#: searx/templates/oscar/messages/no_results.html:14
#: searx/templates/simple/messages/no_results.html:14
@@ -998,7 +999,7 @@ msgstr "Indlæs mere..."
#: searx/templates/simple/base.html:31
msgid "No item found"
-msgstr ""
+msgstr "Intet fundet"
#: searx/templates/simple/preferences.html:89
msgid "Supports selected language"
@@ -1006,8 +1007,8 @@ msgstr "Undstøtter valgte sprog"
#: searx/templates/simple/preferences.html:118
msgid "User interface"
-msgstr ""
+msgstr "Brugerinterface"
#: searx/templates/simple/preferences.html:154
msgid "Privacy"
-msgstr ""
+msgstr "Privatliv"
diff --git a/searx/translations/fil/LC_MESSAGES/messages.mo b/searx/translations/fil/LC_MESSAGES/messages.mo
Binary files differ.
diff --git a/searx/translations/fil/LC_MESSAGES/messages.po b/searx/translations/fil/LC_MESSAGES/messages.po
@@ -3,15 +3,15 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
-# GR01D, 2018
-# GR01D, 2018
+# gr01d, 2018
+# gr01d, 2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-11-01 21:31+0100\n"
"PO-Revision-Date: 2018-02-18 04:45+0000\n"
-"Last-Translator: GR01D\n"
+"Last-Translator: gr01d\n"
"Language-Team: Filipino (http://www.transifex.com/asciimoo/searx/language/fil/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff --git a/searx/translations/pl/LC_MESSAGES/messages.mo b/searx/translations/pl/LC_MESSAGES/messages.mo
Binary files differ.
diff --git a/searx/translations/pl/LC_MESSAGES/messages.po b/searx/translations/pl/LC_MESSAGES/messages.po
@@ -0,0 +1,1014 @@
+# Translations template for PROJECT.
+# Copyright (C) 2017 ORGANIZATION
+# This file is distributed under the same license as the PROJECT project.
+#
+# Translators:
+# Artur <artur@komoter.pl>, 2017
+# Artur <artur@komoter.pl>, 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: searx\n"
+"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
+"POT-Creation-Date: 2017-11-01 21:31+0100\n"
+"PO-Revision-Date: 2017-11-20 13:39+0000\n"
+"Last-Translator: Artur <artur@komoter.pl>\n"
+"Language-Team: Polish (Poland) (http://www.transifex.com/asciimoo/searx/language/pl_PL/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.3.4\n"
+"Language: pl_PL\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+
+#: searx/search.py:137 searx/search.py:182
+msgid "timeout"
+msgstr "przekroczenie maksymalnego dozwolonego czasu"
+
+#: searx/search.py:144
+msgid "request exception"
+msgstr "wyjątek w żądaniu"
+
+#: searx/search.py:151
+msgid "unexpected crash"
+msgstr "niespodziewana awaria"
+
+#: searx/webapp.py:136
+msgid "files"
+msgstr "pliki"
+
+#: searx/webapp.py:137
+msgid "general"
+msgstr "ogólne"
+
+#: searx/webapp.py:138
+msgid "music"
+msgstr "muzyka"
+
+#: searx/webapp.py:139
+msgid "social media"
+msgstr "media społecznościowe"
+
+#: searx/webapp.py:140
+msgid "images"
+msgstr "zdjęcia"
+
+#: searx/webapp.py:141
+msgid "videos"
+msgstr "wideo"
+
+#: searx/webapp.py:142
+msgid "it"
+msgstr "informatyka"
+
+#: searx/webapp.py:143
+msgid "news"
+msgstr "wiadomości"
+
+#: searx/webapp.py:144
+msgid "map"
+msgstr "mapa"
+
+#: searx/webapp.py:145
+msgid "science"
+msgstr "nauka"
+
+#: searx/webapp.py:399 searx/webapp.py:658
+msgid "Invalid settings, please edit your preferences"
+msgstr "Nieprawidłowe ustawienia, proszę zmienić swoje preferencje"
+
+#: searx/webapp.py:415
+msgid "Invalid settings"
+msgstr "Nieprawidłowe ustawienia"
+
+#: searx/webapp.py:449 searx/webapp.py:493
+msgid "search error"
+msgstr "błąd wyszukiwania"
+
+#: searx/webapp.py:530
+msgid "{minutes} minute(s) ago"
+msgstr "{minutes} minut(y) temu"
+
+#: searx/webapp.py:532
+msgid "{hours} hour(s), {minutes} minute(s) ago"
+msgstr "{hours} godzin(y), {minutes} minut(y) temu"
+
+#: searx/answerers/random/answerer.py:53
+msgid "Random value generator"
+msgstr "Generator wartości losowych"
+
+#: searx/answerers/random/answerer.py:54
+msgid "Generate different random values"
+msgstr "Wygeneruj różne wartości losowe"
+
+#: searx/answerers/statistics/answerer.py:53
+msgid "Statistics functions"
+msgstr "Funkcje statystyczne"
+
+#: searx/answerers/statistics/answerer.py:54
+msgid "Compute {functions} of the arguments"
+msgstr "Oblicz {functions} argumentów"
+
+#: searx/engines/__init__.py:194 searx/engines/flycheck___init__.py:201
+msgid "Engine time (sec)"
+msgstr "Czas wyszukiwania (sek)"
+
+#: searx/engines/__init__.py:198 searx/engines/flycheck___init__.py:205
+msgid "Page loads (sec)"
+msgstr "Ładowanie strony (sek)"
+
+#: searx/engines/__init__.py:202 searx/engines/flycheck___init__.py:209
+#: searx/templates/oscar/results.html:95
+#: searx/templates/simple/results.html:20
+msgid "Number of results"
+msgstr "Liczba wyników"
+
+#: searx/engines/__init__.py:206 searx/engines/flycheck___init__.py:213
+msgid "Scores"
+msgstr "Wyniki"
+
+#: searx/engines/__init__.py:210 searx/engines/flycheck___init__.py:217
+msgid "Scores per result"
+msgstr "Wyniki na rezultat"
+
+#: searx/engines/__init__.py:214 searx/engines/flycheck___init__.py:221
+msgid "Errors"
+msgstr "Błędy"
+
+#: searx/engines/pdbe.py:87
+msgid "{title} (OBSOLETE)"
+msgstr "{title} (PRZESTARZAŁE)"
+
+#: searx/engines/pdbe.py:91
+msgid "This entry has been superseded by"
+msgstr "Ten wpis został zastąpiony przez"
+
+#: searx/engines/pubmed.py:74
+msgid "No abstract is available for this publication."
+msgstr "Streszczenie nie jest dostępne dla tej publikacji."
+
+#: searx/plugins/https_rewrite.py:32
+msgid "Rewrite HTTP links to HTTPS if possible"
+msgstr "Nadpisuj hiperłącza HTTP na HTTPS, jeśli to możliwe"
+
+#: searx/plugins/infinite_scroll.py:3
+msgid "Infinite scroll"
+msgstr "Nieskończone przewijanie"
+
+#: searx/plugins/infinite_scroll.py:4
+msgid "Automatically load next page when scrolling to bottom of current page"
+msgstr "Automatycznie ładuj następną stronę podczas przewijania do dolnej części bieżącej strony"
+
+#: searx/plugins/oa_doi_rewrite.py:9
+msgid "Open Access DOI rewrite"
+msgstr "Nadpisywanie DOI z otwartym dostępem"
+
+#: searx/plugins/oa_doi_rewrite.py:10
+msgid ""
+"Avoid paywalls by redirecting to open-access versions of publications when "
+"available"
+msgstr "Unikaj opłat za dostęp, przekierowując do otwartych wersji publikacji, gdy są dostępne"
+
+#: searx/plugins/open_results_on_new_tab.py:18
+#: searx/templates/oscar/preferences.html:114
+#: searx/templates/simple/preferences.html:149
+msgid "Open result links on new browser tabs"
+msgstr "Otwórz hiperłącza wyników w nowych kartach przeglądarki"
+
+#: searx/plugins/open_results_on_new_tab.py:19
+msgid ""
+"Results are opened in the same window by default. This plugin overwrites the"
+" default behaviour to open links on new tabs/windows. (JavaScript required)"
+msgstr "Wyniki są domyślnie otwierane w tym samym oknie. Ta wtyczka zastępuje domyślne zachowanie w celu otwarcia hiperłączy w nowych kartach/oknach. (Wymagany Javascript)"
+
+#: searx/plugins/search_on_category_select.py:18
+msgid "Search on category select"
+msgstr "Szukaj po wybraniu kategorii"
+
+#: searx/plugins/search_on_category_select.py:19
+msgid ""
+"Perform search immediately if a category selected. Disable to select "
+"multiple categories. (JavaScript required)"
+msgstr "Wykonaj wyszukiwanie natychmiast po wybraniu kategorii. Wyłącz, aby wybrać wiele kategorii. (Wymagany Javascript)"
+
+#: searx/plugins/self_info.py:20
+msgid ""
+"Displays your IP if the query is \"ip\" and your user agent if the query "
+"contains \"user agent\"."
+msgstr "Wyświetla Twój adres IP, jeśli zapytanie to \"ip\", i Twojego agenta użytkownika, jeśli zapytanie zawiera \"user agent\"."
+
+#: searx/plugins/tracker_url_remover.py:26
+msgid "Tracker URL remover"
+msgstr "Usuwanie elementów śledzących z URL-ów"
+
+#: searx/plugins/tracker_url_remover.py:27
+msgid "Remove trackers arguments from the returned URL"
+msgstr "Usuń argumenty elementów śledzących ze zwróconego adresu URL"
+
+#: searx/plugins/vim_hotkeys.py:3
+msgid "Vim-like hotkeys"
+msgstr "Skróty podobne do Vima"
+
+#: searx/plugins/vim_hotkeys.py:4
+msgid ""
+"Navigate search results with Vim-like hotkeys (JavaScript required). Press "
+"\"h\" key on main or result page to get help."
+msgstr "Poruszaj się po wynikach wyszukiwania za pomocą skrótów podobnych do Vima (wymagany Javascript). Naciśnij klawisz \"h\" na stronie głównej lub stronie wyników, aby uzyskać pomoc."
+
+#: searx/templates/courgette/404.html:4 searx/templates/legacy/404.html:4
+#: searx/templates/oscar/404.html:4 searx/templates/pix-art/404.html:4
+#: searx/templates/simple/404.html:4
+msgid "Page not found"
+msgstr "Strona nie znaleziona"
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+#, python-format
+msgid "Go to %(search_page)s."
+msgstr "Przejdź do %(search_page)s."
+
+#: searx/templates/courgette/404.html:6 searx/templates/legacy/404.html:6
+#: searx/templates/oscar/404.html:6 searx/templates/pix-art/404.html:6
+#: searx/templates/simple/404.html:6
+msgid "search page"
+msgstr "strona wyszukiwania"
+
+#: searx/templates/courgette/index.html:9
+#: searx/templates/courgette/index.html:13
+#: searx/templates/courgette/results.html:5
+#: searx/templates/legacy/index.html:8 searx/templates/legacy/index.html:12
+#: searx/templates/oscar/navbar.html:7
+#: searx/templates/oscar/preferences.html:3
+#: searx/templates/pix-art/index.html:8
+msgid "preferences"
+msgstr "preferencje"
+
+#: searx/templates/courgette/index.html:11
+#: searx/templates/legacy/index.html:10 searx/templates/oscar/about.html:2
+#: searx/templates/oscar/navbar.html:6 searx/templates/pix-art/index.html:7
+msgid "about"
+msgstr "O searx"
+
+#: searx/templates/courgette/preferences.html:5
+#: searx/templates/legacy/preferences.html:5
+#: searx/templates/oscar/preferences.html:8
+#: searx/templates/pix-art/preferences.html:5
+#: searx/templates/simple/preferences.html:26
+msgid "Preferences"
+msgstr "Preferencje"
+
+#: searx/templates/courgette/preferences.html:9
+#: searx/templates/legacy/preferences.html:9
+#: searx/templates/oscar/preferences.html:33
+#: searx/templates/oscar/preferences.html:35
+#: searx/templates/simple/preferences.html:34
+msgid "Default categories"
+msgstr "Domyślne kategorie"
+
+#: searx/templates/courgette/preferences.html:13
+#: searx/templates/legacy/preferences.html:14
+#: searx/templates/oscar/preferences.html:41
+#: searx/templates/pix-art/preferences.html:9
+#: searx/templates/simple/preferences.html:39
+#: searx/templates/simple/preferences.html:163
+msgid "Search language"
+msgstr "Język wyszukiwania"
+
+#: searx/templates/courgette/preferences.html:16
+#: searx/templates/legacy/preferences.html:17
+#: searx/templates/oscar/languages.html:6
+#: searx/templates/pix-art/preferences.html:12
+#: searx/templates/simple/languages.html:2
+#: searx/templates/simple/preferences.html:42
+msgid "Default language"
+msgstr "Domyślny język"
+
+#: searx/templates/courgette/preferences.html:24
+#: searx/templates/legacy/preferences.html:25
+#: searx/templates/oscar/preferences.html:47
+#: searx/templates/pix-art/preferences.html:20
+#: searx/templates/simple/preferences.html:120
+msgid "Interface language"
+msgstr "Język interfejsu"
+
+#: searx/templates/courgette/preferences.html:34
+#: searx/templates/legacy/preferences.html:35
+#: searx/templates/oscar/preferences.html:57
+#: searx/templates/simple/preferences.html:51
+msgid "Autocomplete"
+msgstr "Autouzupełnienie"
+
+#: searx/templates/courgette/preferences.html:45
+#: searx/templates/legacy/preferences.html:46
+#: searx/templates/oscar/preferences.html:68
+#: searx/templates/simple/preferences.html:166
+msgid "Image proxy"
+msgstr "Proxy zdjęć"
+
+#: searx/templates/courgette/preferences.html:48
+#: searx/templates/legacy/preferences.html:49
+#: searx/templates/oscar/preferences.html:72
+#: searx/templates/simple/preferences.html:169
+msgid "Enabled"
+msgstr "Włączone"
+
+#: searx/templates/courgette/preferences.html:49
+#: searx/templates/legacy/preferences.html:50
+#: searx/templates/oscar/preferences.html:73
+#: searx/templates/simple/preferences.html:170
+msgid "Disabled"
+msgstr "Wyłączone"
+
+#: searx/templates/courgette/preferences.html:54
+#: searx/templates/legacy/preferences.html:55
+#: searx/templates/oscar/preferences.html:77
+#: searx/templates/pix-art/preferences.html:30
+#: searx/templates/simple/preferences.html:156
+msgid "Method"
+msgstr "Metoda"
+
+#: searx/templates/courgette/preferences.html:63
+#: searx/templates/legacy/preferences.html:64
+#: searx/templates/oscar/preferences.html:86
+#: searx/templates/oscar/preferences.html:165
+#: searx/templates/oscar/preferences.html:173
+#: searx/templates/simple/preferences.html:63
+#: searx/templates/simple/preferences.html:90
+msgid "SafeSearch"
+msgstr "Bezpieczne wyszukiwanie"
+
+#: searx/templates/courgette/preferences.html:66
+#: searx/templates/legacy/preferences.html:67
+#: searx/templates/oscar/preferences.html:90
+#: searx/templates/simple/preferences.html:66
+msgid "Strict"
+msgstr "Bezkompromisowe"
+
+#: searx/templates/courgette/preferences.html:67
+#: searx/templates/legacy/preferences.html:68
+#: searx/templates/oscar/preferences.html:91
+#: searx/templates/simple/preferences.html:67
+msgid "Moderate"
+msgstr "Umiarkowane"
+
+#: searx/templates/courgette/preferences.html:68
+#: searx/templates/legacy/preferences.html:69
+#: searx/templates/oscar/preferences.html:92
+#: searx/templates/simple/preferences.html:68
+msgid "None"
+msgstr "Wyłączone"
+
+#: searx/templates/courgette/preferences.html:73
+#: searx/templates/legacy/preferences.html:74
+#: searx/templates/oscar/preferences.html:96
+#: searx/templates/pix-art/preferences.html:39
+#: searx/templates/simple/preferences.html:131
+msgid "Themes"
+msgstr "Motywy"
+
+#: searx/templates/courgette/preferences.html:83
+msgid "Color"
+msgstr "Kolor"
+
+#: searx/templates/courgette/preferences.html:86
+msgid "Blue (default)"
+msgstr "Niebieski (domyślny)"
+
+#: searx/templates/courgette/preferences.html:87
+msgid "Violet"
+msgstr "Fioletowy"
+
+#: searx/templates/courgette/preferences.html:88
+msgid "Green"
+msgstr "Zielony"
+
+#: searx/templates/courgette/preferences.html:89
+msgid "Cyan"
+msgstr "Turkusowy"
+
+#: searx/templates/courgette/preferences.html:90
+msgid "Orange"
+msgstr "Pomarańczowy"
+
+#: searx/templates/courgette/preferences.html:91
+msgid "Red"
+msgstr "Czerwony"
+
+#: searx/templates/courgette/preferences.html:96
+#: searx/templates/legacy/preferences.html:93
+#: searx/templates/pix-art/preferences.html:49
+#: searx/templates/simple/preferences.html:77
+msgid "Currently used search engines"
+msgstr "Obecnie używane wyszukiwarki"
+
+#: searx/templates/courgette/preferences.html:100
+#: searx/templates/legacy/preferences.html:97
+#: searx/templates/oscar/preferences.html:162
+#: searx/templates/oscar/preferences.html:176
+#: searx/templates/pix-art/preferences.html:53
+#: searx/templates/simple/preferences.html:87
+msgid "Engine name"
+msgstr "Nazwa wyszukiwarki"
+
+#: searx/templates/courgette/preferences.html:101
+#: searx/templates/legacy/preferences.html:98
+msgid "Category"
+msgstr "Kategoria"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:113
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:110
+#: searx/templates/oscar/preferences.html:161
+#: searx/templates/oscar/preferences.html:177
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:64
+#: searx/templates/simple/preferences.html:86
+msgid "Allow"
+msgstr "Pozwól"
+
+#: searx/templates/courgette/preferences.html:102
+#: searx/templates/courgette/preferences.html:114
+#: searx/templates/legacy/preferences.html:99
+#: searx/templates/legacy/preferences.html:111
+#: searx/templates/pix-art/preferences.html:54
+#: searx/templates/pix-art/preferences.html:65
+msgid "Block"
+msgstr "Blokuj"
+
+#: searx/templates/courgette/preferences.html:122
+#: searx/templates/legacy/preferences.html:119
+#: searx/templates/oscar/preferences.html:297
+#: searx/templates/pix-art/preferences.html:73
+#: searx/templates/simple/preferences.html:180
+msgid ""
+"These settings are stored in your cookies, this allows us not to store this "
+"data about you."
+msgstr "Ustawienia te są przechowywane w ciasteczkach, co pozwala nam nie przechowywać tych danych o Tobie."
+
+#: searx/templates/courgette/preferences.html:124
+#: searx/templates/legacy/preferences.html:121
+#: searx/templates/oscar/preferences.html:299
+#: searx/templates/pix-art/preferences.html:75
+#: searx/templates/simple/preferences.html:182
+msgid ""
+"These cookies serve your sole convenience, we don't use these cookies to "
+"track you."
+msgstr "Te ciasteczka służą wyłącznie Twojej wygodzie, nie używamy tych ciasteczek do śledzenia Ciebie."
+
+#: searx/templates/courgette/preferences.html:127
+#: searx/templates/legacy/preferences.html:124
+#: searx/templates/oscar/preferences.html:305
+#: searx/templates/pix-art/preferences.html:78
+#: searx/templates/simple/preferences.html:185
+msgid "save"
+msgstr "zapisz"
+
+#: searx/templates/courgette/preferences.html:128
+#: searx/templates/legacy/preferences.html:125
+#: searx/templates/oscar/preferences.html:307
+#: searx/templates/simple/preferences.html:186
+msgid "Reset defaults"
+msgstr "Przywróć domyślne"
+
+#: searx/templates/courgette/preferences.html:129
+#: searx/templates/legacy/preferences.html:126
+#: searx/templates/oscar/preferences.html:306
+#: searx/templates/pix-art/preferences.html:79
+#: searx/templates/simple/preferences.html:187
+msgid "back"
+msgstr "z powrotem"
+
+#: searx/templates/courgette/results.html:12
+#: searx/templates/legacy/results.html:13
+#: searx/templates/oscar/results.html:136
+#: searx/templates/simple/results.html:58
+msgid "Search URL"
+msgstr "URL wyszukiwania"
+
+#: searx/templates/courgette/results.html:16
+#: searx/templates/legacy/results.html:17
+#: searx/templates/oscar/results.html:141
+#: searx/templates/simple/results.html:62
+msgid "Download results"
+msgstr "Ściągnij wyniki"
+
+#: searx/templates/courgette/results.html:34
+#: searx/templates/legacy/results.html:35
+#: searx/templates/simple/results.html:10
+msgid "Answers"
+msgstr "Odpowiedzi"
+
+#: searx/templates/courgette/results.html:42
+#: searx/templates/legacy/results.html:43
+#: searx/templates/oscar/results.html:116
+#: searx/templates/simple/results.html:42
+msgid "Suggestions"
+msgstr "Propozycje"
+
+#: searx/templates/courgette/results.html:70
+#: searx/templates/legacy/results.html:81
+#: searx/templates/oscar/results.html:68 searx/templates/oscar/results.html:78
+#: searx/templates/simple/results.html:130
+msgid "previous page"
+msgstr "poprzednia strona"
+
+#: searx/templates/courgette/results.html:81
+#: searx/templates/legacy/results.html:92
+#: searx/templates/oscar/results.html:62 searx/templates/oscar/results.html:84
+#: searx/templates/simple/results.html:145
+msgid "next page"
+msgstr "następna strona"
+
+#: searx/templates/courgette/search.html:3
+#: searx/templates/legacy/search.html:3 searx/templates/oscar/search.html:6
+#: searx/templates/oscar/search_full.html:9
+#: searx/templates/pix-art/search.html:3 searx/templates/simple/search.html:4
+msgid "Search for..."
+msgstr "Wyszukaj..."
+
+#: searx/templates/courgette/stats.html:4 searx/templates/legacy/stats.html:4
+#: searx/templates/oscar/stats.html:5 searx/templates/pix-art/stats.html:4
+#: searx/templates/simple/stats.html:7
+msgid "Engine stats"
+msgstr "Statystyki wyszukiwarki"
+
+#: searx/templates/courgette/result_templates/images.html:4
+#: searx/templates/legacy/result_templates/images.html:4
+#: searx/templates/pix-art/result_templates/images.html:4
+msgid "original context"
+msgstr "oryginalny kontekst"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Seeder"
+msgstr "Udostępniający"
+
+#: searx/templates/courgette/result_templates/torrent.html:7
+#: searx/templates/legacy/result_templates/torrent.html:11
+#: searx/templates/oscar/result_templates/torrent.html:6
+#: searx/templates/simple/result_templates/torrent.html:9
+msgid "Leecher"
+msgstr "Pobierający"
+
+#: searx/templates/courgette/result_templates/torrent.html:9
+#: searx/templates/legacy/result_templates/torrent.html:9
+#: searx/templates/oscar/macros.html:23
+#: searx/templates/simple/result_templates/torrent.html:6
+msgid "magnet link"
+msgstr "hiperłącze magnetyczne"
+
+#: searx/templates/courgette/result_templates/torrent.html:10
+#: searx/templates/legacy/result_templates/torrent.html:10
+#: searx/templates/oscar/macros.html:24
+#: searx/templates/simple/result_templates/torrent.html:7
+msgid "torrent file"
+msgstr "plik torrent"
+
+#: searx/templates/legacy/categories.html:8
+#: searx/templates/simple/categories.html:6
+msgid "Click on the magnifier to perform search"
+msgstr "Kliknij na szkło powiększające, aby wykonać wyszukiwanie"
+
+#: searx/templates/legacy/preferences.html:84
+#: searx/templates/oscar/preferences.html:113
+#: searx/templates/simple/preferences.html:142
+msgid "Results on new tabs"
+msgstr "Wyniki w nowych kartach"
+
+#: searx/templates/legacy/preferences.html:87
+#: searx/templates/oscar/preferences.html:117
+#: searx/templates/simple/preferences.html:145
+msgid "On"
+msgstr "Włączone"
+
+#: searx/templates/legacy/preferences.html:88
+#: searx/templates/oscar/preferences.html:118
+#: searx/templates/simple/preferences.html:146
+msgid "Off"
+msgstr "Wyłączone"
+
+#: searx/templates/legacy/result_templates/code.html:3
+#: searx/templates/legacy/result_templates/default.html:3
+#: searx/templates/legacy/result_templates/map.html:9
+#: searx/templates/oscar/macros.html:34 searx/templates/oscar/macros.html:48
+#: searx/templates/simple/macros.html:43
+msgid "cached"
+msgstr "buforowane"
+
+#: searx/templates/oscar/advanced.html:4
+msgid "Advanced settings"
+msgstr "Zaawansowane ustawienia"
+
+#: searx/templates/oscar/base.html:62
+#: searx/templates/oscar/messages/first_time.html:4
+#: searx/templates/oscar/messages/save_settings_successfull.html:5
+#: searx/templates/oscar/messages/unknow_error.html:5
+msgid "Close"
+msgstr "Zamknij"
+
+#: searx/templates/oscar/base.html:64
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+#: searx/templates/simple/results.html:25
+msgid "Error!"
+msgstr "Błąd!"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "Powered by"
+msgstr "Obsługiwane przez"
+
+#: searx/templates/oscar/base.html:90 searx/templates/simple/base.html:55
+msgid "a privacy-respecting, hackable metasearch engine"
+msgstr "szanująca prywatność, hackowalna wyszukiwarka metasearch"
+
+#: searx/templates/oscar/macros.html:36 searx/templates/oscar/macros.html:50
+#: searx/templates/simple/macros.html:43
+msgid "proxied"
+msgstr "przesłane poprzez proxy"
+
+#: searx/templates/oscar/macros.html:92
+msgid "supported"
+msgstr "wspierane"
+
+#: searx/templates/oscar/macros.html:96
+msgid "not supported"
+msgstr "niewspierane"
+
+#: searx/templates/oscar/preferences.html:13
+#: searx/templates/oscar/preferences.html:22
+#: searx/templates/simple/preferences.html:32
+msgid "General"
+msgstr "Ogólne"
+
+#: searx/templates/oscar/preferences.html:14
+#: searx/templates/oscar/preferences.html:146
+#: searx/templates/simple/preferences.html:76
+msgid "Engines"
+msgstr "Wyszukiwarki"
+
+#: searx/templates/oscar/preferences.html:15
+#: searx/templates/oscar/preferences.html:219
+msgid "Plugins"
+msgstr "Wtyczki"
+
+#: searx/templates/oscar/preferences.html:16
+#: searx/templates/oscar/preferences.html:245
+msgid "Answerers"
+msgstr "Respondenci"
+
+#: searx/templates/oscar/preferences.html:17
+#: searx/templates/oscar/preferences.html:272
+msgid "Cookies"
+msgstr "Ciasteczka"
+
+#: searx/templates/oscar/preferences.html:42
+#: searx/templates/simple/preferences.html:48
+msgid "What language do you prefer for search?"
+msgstr "W jakim języku wolisz wyszukiwać?"
+
+#: searx/templates/oscar/preferences.html:48
+#: searx/templates/simple/preferences.html:128
+msgid "Change the language of the layout"
+msgstr "Zmień język układu"
+
+#: searx/templates/oscar/preferences.html:58
+#: searx/templates/simple/preferences.html:60
+msgid "Find stuff as you type"
+msgstr "Szukaj podczas pisania"
+
+#: searx/templates/oscar/preferences.html:69
+#: searx/templates/simple/preferences.html:173
+msgid "Proxying image results through searx"
+msgstr "Przesyłanie wyników obrazów poprzez proxy searx"
+
+#: searx/templates/oscar/preferences.html:78
+msgid ""
+"Change how forms are submited, <a "
+"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
+" rel=\"external\">learn more about request methods</a>"
+msgstr "Zmień sposób przesyłania formularzy, <a href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\" rel=\"external\">dowiedz się więcej o metodach HTTP</a>"
+
+#: searx/templates/oscar/preferences.html:87
+#: searx/templates/simple/preferences.html:71
+msgid "Filter content"
+msgstr "Filtruj treści"
+
+#: searx/templates/oscar/preferences.html:97
+#: searx/templates/simple/preferences.html:139
+msgid "Change searx layout"
+msgstr "Zmień układ searx"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Choose style for this theme"
+msgstr "Wybierz styl dla tego motywu"
+
+#: searx/templates/oscar/preferences.html:106
+#: searx/templates/oscar/preferences.html:111
+msgid "Style"
+msgstr "Styl"
+
+#: searx/templates/oscar/preferences.html:122
+msgid "Open Access DOI resolver"
+msgstr "Podsystem DOI z otwartym dostępem"
+
+#: searx/templates/oscar/preferences.html:123
+msgid ""
+"Redirect to open-access versions of publications when available (plugin "
+"required)"
+msgstr "Przekierowanie do otwartych wersji publikacji, gdy są dostępne (wymagana wtyczka)"
+
+#: searx/templates/oscar/preferences.html:163
+#: searx/templates/oscar/preferences.html:175
+#: searx/templates/simple/preferences.html:88
+msgid "Shortcut"
+msgstr "Skrót"
+
+#: searx/templates/oscar/preferences.html:164
+#: searx/templates/oscar/preferences.html:174
+msgid "Selected language"
+msgstr "Wybrany język"
+
+#: searx/templates/oscar/preferences.html:166
+#: searx/templates/oscar/preferences.html:172
+#: searx/templates/simple/preferences.html:91
+msgid "Time range"
+msgstr "Zakres czasu"
+
+#: searx/templates/oscar/preferences.html:167
+#: searx/templates/oscar/preferences.html:171
+#: searx/templates/simple/preferences.html:92
+msgid "Avg. time"
+msgstr "Śr. czas"
+
+#: searx/templates/oscar/preferences.html:168
+#: searx/templates/oscar/preferences.html:170
+#: searx/templates/simple/preferences.html:93
+msgid "Max time"
+msgstr "Maksymalny czas"
+
+#: searx/templates/oscar/preferences.html:248
+msgid "This is the list of searx's instant answering modules."
+msgstr "Oto lista modułów natychmiastowych odpowiedzi w searx."
+
+#: searx/templates/oscar/preferences.html:252
+msgid "Name"
+msgstr "Nazwa"
+
+#: searx/templates/oscar/preferences.html:253
+msgid "Keywords"
+msgstr "Słowa kluczowe"
+
+#: searx/templates/oscar/preferences.html:254
+msgid "Description"
+msgstr "Opis"
+
+#: searx/templates/oscar/preferences.html:255
+msgid "Examples"
+msgstr "Przykłady"
+
+#: searx/templates/oscar/preferences.html:275
+msgid ""
+"This is the list of cookies and their values searx is storing on your "
+"computer."
+msgstr "Oto lista ciasteczek i ich wartości, które searx zapisuje na Twoim komputerze."
+
+#: searx/templates/oscar/preferences.html:276
+msgid "With that list, you can assess searx transparency."
+msgstr "Za pomocą tej listy możesz ocenić przezroczystość searx."
+
+#: searx/templates/oscar/preferences.html:281
+msgid "Cookie name"
+msgstr "Nazwa ciasteczka"
+
+#: searx/templates/oscar/preferences.html:282
+msgid "Value"
+msgstr "Wartość"
+
+#: searx/templates/oscar/preferences.html:301
+msgid "Search URL of the currently saved preferences"
+msgstr "Wyszukaj adres URL aktualnie zapisanych preferencji"
+
+#: searx/templates/oscar/preferences.html:301
+msgid ""
+"Note: specifying custom settings in the search URL can reduce privacy by "
+"leaking data to the clicked result sites."
+msgstr "Uwaga: określanie ustawień niestandardowych w adresie URL wyszukiwania może zmniejszyć prywatność, przenosząc dane do klikniętych stron z wyników."
+
+#: searx/templates/oscar/results.html:17
+msgid "Search results"
+msgstr "Wyniki wyszukiwania"
+
+#: searx/templates/oscar/results.html:21
+#: searx/templates/simple/results.html:84
+msgid "Try searching for:"
+msgstr "Spróbuj wyszukać:"
+
+#: searx/templates/oscar/results.html:100
+#: searx/templates/simple/results.html:25
+msgid "Engines cannot retrieve results"
+msgstr "Wyszukiwarki nie mogą pobrać wyników"
+
+#: searx/templates/oscar/results.html:131
+msgid "Links"
+msgstr "Hiperłącza"
+
+#: searx/templates/oscar/search.html:8
+#: searx/templates/oscar/search_full.html:11
+#: searx/templates/simple/search.html:5
+msgid "Start search"
+msgstr "Rozpocznij wyszukiwanie"
+
+#: searx/templates/oscar/stats.html:2
+msgid "stats"
+msgstr "statystyki"
+
+#: searx/templates/oscar/time-range.html:3
+#: searx/templates/simple/time-range.html:3
+msgid "Anytime"
+msgstr "W każdej chwili"
+
+#: searx/templates/oscar/time-range.html:6
+#: searx/templates/simple/time-range.html:6
+msgid "Last day"
+msgstr "W ostatnim dniu"
+
+#: searx/templates/oscar/time-range.html:9
+#: searx/templates/simple/time-range.html:9
+msgid "Last week"
+msgstr "W ostatnim tygodniu"
+
+#: searx/templates/oscar/time-range.html:12
+#: searx/templates/simple/time-range.html:12
+msgid "Last month"
+msgstr "W ostatnim miesiącu"
+
+#: searx/templates/oscar/time-range.html:15
+#: searx/templates/simple/time-range.html:15
+msgid "Last year"
+msgstr "W ostatnim roku"
+
+#: searx/templates/oscar/messages/first_time.html:6
+#: searx/templates/oscar/messages/no_data_available.html:3
+msgid "Heads up!"
+msgstr "Moment!"
+
+#: searx/templates/oscar/messages/first_time.html:7
+msgid "It look like you are using searx first time."
+msgstr "Wygląda na to, że po raz pierwszy używasz searx."
+
+#: searx/templates/oscar/messages/no_cookies.html:3
+msgid "Information!"
+msgstr "Informacja!"
+
+#: searx/templates/oscar/messages/no_cookies.html:4
+msgid "currently, there are no cookies defined."
+msgstr "obecnie nie zdefiniowano żadnych ciasteczek."
+
+#: searx/templates/oscar/messages/no_data_available.html:4
+msgid "There is currently no data available. "
+msgstr "Obecnie nie ma dostępnych danych."
+
+#: searx/templates/oscar/messages/no_results.html:4
+#: searx/templates/simple/messages/no_results.html:4
+msgid "Engines cannot retrieve results."
+msgstr "Wyszukiwarki nie mogą pobrać wyników."
+
+#: searx/templates/oscar/messages/no_results.html:10
+#: searx/templates/simple/messages/no_results.html:10
+msgid "Please, try again later or find another searx instance."
+msgstr "Spróbuj ponownie później lub znajdź inną instancję searx."
+
+#: searx/templates/oscar/messages/no_results.html:14
+#: searx/templates/simple/messages/no_results.html:14
+msgid "Sorry!"
+msgstr "Przepraszamy!"
+
+#: searx/templates/oscar/messages/no_results.html:15
+#: searx/templates/simple/messages/no_results.html:15
+msgid ""
+"we didn't find any results. Please use another query or search in more "
+"categories."
+msgstr "nie znaleźliśmy żadnych wyników. Użyj innego zapytania lub wyszukaj więcej kategorii."
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:7
+msgid "Well done!"
+msgstr "Dobra robota!"
+
+#: searx/templates/oscar/messages/save_settings_successfull.html:8
+msgid "Settings saved successfully."
+msgstr "Ustawienia zostały pomyślnie zapisane."
+
+#: searx/templates/oscar/messages/unknow_error.html:7
+msgid "Oh snap!"
+msgstr "O rany!"
+
+#: searx/templates/oscar/messages/unknow_error.html:8
+msgid "Something went wrong."
+msgstr "Coś poszło nie tak."
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "show media"
+msgstr "pokaż media"
+
+#: searx/templates/oscar/result_templates/default.html:7
+#: searx/templates/simple/result_templates/default.html:6
+msgid "hide media"
+msgstr "ukryj media"
+
+#: searx/templates/oscar/result_templates/images.html:30
+msgid "Get image"
+msgstr "Pobierz obraz"
+
+#: searx/templates/oscar/result_templates/images.html:33
+msgid "View source"
+msgstr "Pokaż źródło"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "show map"
+msgstr "pokaż mapę"
+
+#: searx/templates/oscar/result_templates/map.html:7
+#: searx/templates/simple/result_templates/map.html:7
+msgid "hide map"
+msgstr "ukryj mapę"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "show details"
+msgstr "pokaż szczegóły"
+
+#: searx/templates/oscar/result_templates/map.html:11
+#: searx/templates/simple/result_templates/map.html:11
+msgid "hide details"
+msgstr "ukryj szczegóły"
+
+#: searx/templates/oscar/result_templates/torrent.html:7
+#: searx/templates/simple/result_templates/torrent.html:11
+msgid "Filesize"
+msgstr "Rozmiar pliku"
+
+#: searx/templates/oscar/result_templates/torrent.html:9
+#: searx/templates/simple/result_templates/torrent.html:12
+msgid "Bytes"
+msgstr "Bajtów"
+
+#: searx/templates/oscar/result_templates/torrent.html:10
+#: searx/templates/simple/result_templates/torrent.html:13
+msgid "kiB"
+msgstr "KiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:11
+#: searx/templates/simple/result_templates/torrent.html:14
+msgid "MiB"
+msgstr "MiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:12
+#: searx/templates/simple/result_templates/torrent.html:15
+msgid "GiB"
+msgstr "GiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:13
+#: searx/templates/simple/result_templates/torrent.html:16
+msgid "TiB"
+msgstr "TiB"
+
+#: searx/templates/oscar/result_templates/torrent.html:15
+#: searx/templates/simple/result_templates/torrent.html:20
+msgid "Number of Files"
+msgstr "Liczba plików"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "show video"
+msgstr "pokaż wideo"
+
+#: searx/templates/oscar/result_templates/videos.html:7
+#: searx/templates/simple/result_templates/videos.html:6
+msgid "hide video"
+msgstr "ukryj wideo"
+
+#: searx/templates/pix-art/results.html:28
+msgid "Load more..."
+msgstr "Załaduj więcej..."
+
+#: searx/templates/simple/base.html:31
+msgid "No item found"
+msgstr "Nie znaleziono elementu"
+
+#: searx/templates/simple/preferences.html:89
+msgid "Supports selected language"
+msgstr "Obsługuje wybrany język"
+
+#: searx/templates/simple/preferences.html:118
+msgid "User interface"
+msgstr "Interfejs użytkownika"
+
+#: searx/templates/simple/preferences.html:154
+msgid "Privacy"
+msgstr "Prywatność"
diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.mo b/searx/translations/pt_BR/LC_MESSAGES/messages.mo
Binary files differ.
diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.po b/searx/translations/pt_BR/LC_MESSAGES/messages.po
@@ -8,14 +8,14 @@
# Guimarães Mello <maeslor@cryptolab.net>, 2017
# Neton Brício <fervelinux@gmail.com>, 2015
# pizzaiolo, 2016
-# Shizuka 静香 <deusadaji@gmail.com>, 2018
+# shizuka, 2018
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2018-02-04 10:39+0000\n"
-"Last-Translator: Shizuka 静香 <deusadaji@gmail.com>\n"
+"PO-Revision-Date: 2018-03-03 12:33+0000\n"
+"Last-Translator: shizuka\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/asciimoo/searx/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -778,7 +778,7 @@ msgstr "Exemplos"
msgid ""
"This is the list of cookies and their values searx is storing on your "
"computer."
-msgstr "Esta é a lista de cookies que searx está armazenando em seu computador."
+msgstr "Esta é a lista de cookies que o searx está armazenando em seu computador."
#: searx/templates/oscar/preferences.html:276
msgid "With that list, you can assess searx transparency."
@@ -999,7 +999,7 @@ msgstr "ocultar vídeo"
#: searx/templates/pix-art/results.html:28
msgid "Load more..."
-msgstr "Mostrar mais ..."
+msgstr "Mostrar mais..."
#: searx/templates/simple/base.html:31
msgid "No item found"
diff --git a/searx/translations/ru/LC_MESSAGES/messages.mo b/searx/translations/ru/LC_MESSAGES/messages.mo
Binary files differ.
diff --git a/searx/translations/ru/LC_MESSAGES/messages.po b/searx/translations/ru/LC_MESSAGES/messages.po
@@ -7,14 +7,15 @@
# dimqua <dimqua@riseup.net>, 2015
# dimqua <dimqua@riseup.net>, 2015
# dimqua <dimqua@riseup.net>, 2017
+# John DOe <is-kir@ya.ru>, 2018
# Дмитрий Михирев, 2016-2017
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2017-11-01 21:31+0100\n"
-"PO-Revision-Date: 2017-12-27 10:02+0000\n"
-"Last-Translator: Andrey\n"
+"PO-Revision-Date: 2018-02-26 16:39+0000\n"
+"Last-Translator: John DOe <is-kir@ya.ru>\n"
"Language-Team: Russian (http://www.transifex.com/asciimoo/searx/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -29,7 +30,7 @@ msgstr "таймаут"
#: searx/search.py:144
msgid "request exception"
-msgstr "запрос исключен"
+msgstr "ошибка выполнения запроса"
#: searx/search.py:151
msgid "unexpected crash"
@@ -447,7 +448,7 @@ msgstr "Блокировать"
msgid ""
"These settings are stored in your cookies, this allows us not to store this "
"data about you."
-msgstr "Настройки хранятся в ваших файлах cookie, что позволяет нам не сохранять эти сведения о вас."
+msgstr "Настройки сохраняются в ваших файлах cookie, что позволяет нам не хранить никаких сведений о вас."
#: searx/templates/courgette/preferences.html:124
#: searx/templates/legacy/preferences.html:121
@@ -457,7 +458,7 @@ msgstr "Настройки хранятся в ваших файлах cookie,
msgid ""
"These cookies serve your sole convenience, we don't use these cookies to "
"track you."
-msgstr "Эти файлы cookie используются для вашего удобства, мы не используем их чтобы отслеживать вас."
+msgstr "Эти файлы используются исключительно для вашего удобства, мы не отслеживаем вашу активность."
#: searx/templates/courgette/preferences.html:127
#: searx/templates/legacy/preferences.html:124
@@ -685,7 +686,7 @@ msgstr "Поисковые предложения по мере ввода"
#: searx/templates/oscar/preferences.html:69
#: searx/templates/simple/preferences.html:173
msgid "Proxying image results through searx"
-msgstr "Проксировать найденные изображения с помощью searx"
+msgstr "Загружать найденные изображения через searx"
#: searx/templates/oscar/preferences.html:78
msgid ""
diff --git a/searx/utils.py b/searx/utils.py
@@ -4,14 +4,18 @@ import hmac
import os
import re
+from babel.core import get_global
from babel.dates import format_date
from codecs import getincrementalencoder
from imp import load_source
from numbers import Number
from os.path import splitext, join
+from io import open
from random import choice
import sys
+import json
+from searx import settings
from searx.version import VERSION_STRING
from searx.languages import language_codes
from searx import settings
@@ -31,33 +35,17 @@ if sys.version_info[0] == 3:
unichr = chr
unicode = str
IS_PY2 = False
+ basestring = str
else:
IS_PY2 = True
logger = logger.getChild('utils')
-ua_versions = ('40.0',
- '41.0',
- '42.0',
- '43.0',
- '44.0',
- '45.0',
- '46.0',
- '47.0')
-
-ua_os = ('Windows NT 6.3; WOW64',
- 'X11; Linux x86_64',
- 'X11; Linux x86')
-
-ua = "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}"
-
blocked_tags = ('script',
'style')
-
-def gen_useragent():
- # TODO
- return ua.format(os=choice(ua_os), version=choice(ua_versions))
+useragents = json.loads(open(os.path.dirname(os.path.realpath(__file__))
+ + "/data/useragents.json", 'r', encoding='utf-8').read())
def searx_useragent():
@@ -66,6 +54,10 @@ def searx_useragent():
suffix=settings['outgoing'].get('useragent_suffix', ''))
+def gen_useragent(os=None):
+ return str(useragents['ua'].format(os=os or choice(useragents['os']), version=choice(useragents['versions'])))
+
+
def highlight_content(content, query):
if not content:
@@ -322,6 +314,65 @@ def is_valid_lang(lang):
return False
+# auxiliary function to match lang_code in lang_list
+def _match_language(lang_code, lang_list=[], custom_aliases={}):
+ # replace language code with a custom alias if necessary
+ if lang_code in custom_aliases:
+ lang_code = custom_aliases[lang_code]
+
+ if lang_code in lang_list:
+ return lang_code
+
+ # try to get the most likely country for this language
+ subtags = get_global('likely_subtags').get(lang_code)
+ if subtags:
+ subtag_parts = subtags.split('_')
+ new_code = subtag_parts[0] + '-' + subtag_parts[-1]
+ if new_code in custom_aliases:
+ new_code = custom_aliases[new_code]
+ if new_code in lang_list:
+ return new_code
+
+ # try to get the any supported country for this language
+ for lc in lang_list:
+ if lang_code == lc.split('-')[0]:
+ return lc
+
+ return None
+
+
+# get the language code from lang_list that best matches locale_code
+def match_language(locale_code, lang_list=[], custom_aliases={}, fallback='en-US'):
+ # try to get language from given locale_code
+ language = _match_language(locale_code, lang_list, custom_aliases)
+ if language:
+ return language
+
+ locale_parts = locale_code.split('-')
+ lang_code = locale_parts[0]
+
+ # try to get language using an equivalent country code
+ if len(locale_parts) > 1:
+ country_alias = get_global('territory_aliases').get(locale_parts[-1])
+ if country_alias:
+ language = _match_language(lang_code + '-' + country_alias[0], lang_list, custom_aliases)
+ if language:
+ return language
+
+ # try to get language using an equivalent language code
+ alias = get_global('language_aliases').get(lang_code)
+ if alias:
+ language = _match_language(alias, lang_list, custom_aliases)
+ if language:
+ return language
+
+ if lang_code != locale_code:
+ # try to get language from given language without giving the country
+ language = _match_language(lang_code, lang_list, custom_aliases)
+
+ return language or fallback
+
+
def load_module(filename, module_dir):
modname = splitext(filename)[0]
if modname in sys.modules:
diff --git a/searx/webapp.py b/searx/webapp.py
@@ -58,16 +58,16 @@ from searx.engines import (
from searx.utils import (
UnicodeWriter, highlight_content, html_to_text, get_resources_directory,
get_static_files, get_result_templates, get_themes, gen_useragent,
- dict_subset, prettify_url
+ dict_subset, prettify_url, match_language
)
from searx.version import VERSION_STRING
-from searx.languages import language_codes
+from searx.languages import language_codes as languages
from searx.search import SearchWithPlugins, get_search_query_from_webapp
from searx.query import RawTextQuery
from searx.autocomplete import searx_bang, backends as autocomplete_backends
from searx.plugins import plugins
from searx.plugins.oa_doi_rewrite import get_doi_resolver
-from searx.preferences import Preferences, ValidationException
+from searx.preferences import Preferences, ValidationException, LANGUAGE_CODES
from searx.answerers import answerers
from searx.url_utils import urlencode, urlparse, urljoin
from searx.utils import new_hmac
@@ -133,7 +133,7 @@ if not searx_debug \
babel = Babel(app)
rtl_locales = ['ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he',
- 'ku', 'mzn', 'pnb'', ''ps', 'sd', 'ug', 'ur', 'yi']
+ 'ku', 'mzn', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']
# used when translating category names
_category_names = (gettext('files'),
@@ -352,9 +352,11 @@ def render(template_name, override_theme=None, **kwargs):
kwargs['safesearch'] = str(request.preferences.get_value('safesearch'))
- kwargs['language_codes'] = language_codes
+ kwargs['language_codes'] = languages
if 'current_language' not in kwargs:
- kwargs['current_language'] = request.preferences.get_value('language')
+ kwargs['current_language'] = match_language(request.preferences.get_value('language'),
+ LANGUAGE_CODES,
+ fallback=settings['search']['language'])
# override url_for function in templates
kwargs['url_for'] = url_for_theme
@@ -590,7 +592,9 @@ def index():
infoboxes=result_container.infoboxes,
paging=result_container.paging,
unresponsive_engines=result_container.unresponsive_engines,
- current_language=search_query.lang,
+ current_language=match_language(search_query.lang,
+ LANGUAGE_CODES,
+ fallback=settings['search']['language']),
base_url=get_base_url(),
theme=get_current_theme_name(),
favicons=global_favicons[themes.index(get_current_theme_name())]
@@ -687,6 +691,10 @@ def preferences():
'warn_time': False}
if e.timeout > settings['outgoing']['request_timeout']:
stats[e.name]['warn_timeout'] = True
+ if match_language(request.preferences.get_value('language'),
+ getattr(e, 'supported_languages', []),
+ getattr(e, 'language_aliases', {}), None):
+ stats[e.name]['supports_selected_language'] = True
# get first element [0], the engine time,
# and then the second element [1] : the time (the first one is the label)
@@ -855,7 +863,7 @@ def config():
'safe_search': settings['search']['safe_search'],
'default_theme': settings['ui']['default_theme'],
'version': VERSION_STRING,
- 'doi_resolvers': [r for r in search['doi_resolvers']],
+ 'doi_resolvers': [r for r in settings['doi_resolvers']],
'default_doi_resolver': settings['default_doi_resolver'],
})
diff --git a/tests/unit/engines/test_acgsou.py b/tests/unit/engines/test_acgsou.py
@@ -0,0 +1,78 @@
+# coding=utf-8
+from collections import defaultdict
+import mock
+from searx.engines import acgsou
+from searx.testing import SearxTestCase
+
+
+class TestAcgsouEngine(SearxTestCase):
+
+ def test_request(self):
+ query = 'test_query'
+ dic = defaultdict(dict)
+ dic['pageno'] = 1
+ params = acgsou.request(query, dic)
+ self.assertTrue('url' in params)
+ self.assertTrue(query in params['url'])
+ self.assertTrue('acgsou.com' in params['url'])
+
+ def test_response(self):
+ resp = mock.Mock(text='<html></html>')
+ self.assertEqual(acgsou.response(resp), [])
+
+ html = u"""
+ <html>
+<table id="listTable" class="list_style table_fixed">
+ <thead class="tcat">
+ <tr>
+ <th axis="string" class="l1 tableHeaderOver">test</th>
+ <th axis="string" class="l2 tableHeaderOver">test</th>
+ <th axis="string" class="l3 tableHeaderOver">test</th>
+ <th axis="size" class="l4 tableHeaderOver">test</th>
+ <th axis="number" class="l5 tableHeaderOver">test</th>
+ <th axis="number" class="l6 tableHeaderOver">test</th>
+ <th axis="number" class="l7 tableHeaderOver">test</th>
+ <th axis="string" class="l8 tableHeaderOver">test</th>
+ </tr>
+ </thead>
+ <tbody class="tbody" id="data_list">
+ <tr class="alt1 ">
+ <td nowrap="nowrap">date</td>
+ <td><a href="category.html">testcategory テスト</a></td>
+ <td style="text-align:left;">
+ <a href="show-torrentid.html" target="_blank">torrentname テスト</a>
+ </td>
+ <td>1MB</td>
+ <td nowrap="nowrap">
+ <span class="bts_1">
+ 29
+ </span>
+ </td>
+ <td nowrap="nowrap">
+ <span class="btl_1">
+ 211
+ </span>
+ </td>
+ <td nowrap="nowrap">
+ <span class="btc_">
+ 168
+ </span>
+ </td>
+ <td><a href="random.html">user</a></td>
+ </tr>
+ </tbody>
+</table>
+</html>
+ """
+
+ resp = mock.Mock(text=html)
+ results = acgsou.response(resp)
+
+ self.assertEqual(type(results), list)
+ self.assertEqual(len(results), 1)
+
+ r = results[0]
+ self.assertEqual(r['url'], 'http://www.acgsou.com/show-torrentid.html')
+ self.assertEqual(r['content'], u'Category: "testcategory テスト".')
+ self.assertEqual(r['title'], u'torrentname テスト')
+ self.assertEqual(r['filesize'], 1048576)
diff --git a/tests/unit/engines/test_archlinux.py b/tests/unit/engines/test_archlinux.py
@@ -19,12 +19,17 @@ class TestArchLinuxEngine(SearxTestCase):
query = 'test_query'
dic = defaultdict(dict)
dic['pageno'] = 1
- dic['language'] = 'en_US'
+ dic['language'] = 'en-US'
params = archlinux.request(query, dic)
self.assertTrue('url' in params)
self.assertTrue(query in params['url'])
self.assertTrue('wiki.archlinux.org' in params['url'])
+ for lang, name in archlinux.main_langs:
+ dic['language'] = lang
+ params = archlinux.request(query, dic)
+ self.assertTrue(name in params['url'])
+
for lang, domain in domains.items():
dic['language'] = lang
params = archlinux.request(query, dic)
diff --git a/tests/unit/engines/test_bing.py b/tests/unit/engines/test_bing.py
@@ -7,6 +7,7 @@ from searx.testing import SearxTestCase
class TestBingEngine(SearxTestCase):
def test_request(self):
+ bing.supported_languages = ['en', 'fr', 'zh-CHS', 'zh-CHT', 'pt-PT', 'pt-BR']
query = u'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 0
diff --git a/tests/unit/engines/test_bing_images.py b/tests/unit/engines/test_bing_images.py
@@ -9,7 +9,6 @@ class TestBingImagesEngine(SearxTestCase):
def test_request(self):
bing_images.supported_languages = ['fr-FR', 'en-US']
-
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
diff --git a/tests/unit/engines/test_bing_news.py b/tests/unit/engines/test_bing_news.py
@@ -8,10 +8,11 @@ import lxml
class TestBingNewsEngine(SearxTestCase):
def test_request(self):
+ bing_news.supported_languages = ['en', 'fr']
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
- dicto['language'] = 'fr_FR'
+ dicto['language'] = 'fr-FR'
dicto['time_range'] = ''
params = bing_news.request(query, dicto)
self.assertIn('url', params)
diff --git a/tests/unit/engines/test_bing_videos.py b/tests/unit/engines/test_bing_videos.py
@@ -9,7 +9,6 @@ class TestBingVideosEngine(SearxTestCase):
def test_request(self):
bing_videos.supported_languages = ['fr-FR', 'en-US']
-
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
diff --git a/tests/unit/engines/test_currency_convert.py b/tests/unit/engines/test_currency_convert.py
@@ -17,7 +17,7 @@ class TestCurrencyConvertEngine(SearxTestCase):
query = b'convert 10 Pound Sterlings to United States Dollars'
params = currency_convert.request(query, dicto)
self.assertIn('url', params)
- self.assertIn('finance.google.com', params['url'])
+ self.assertIn('duckduckgo.com', params['url'])
self.assertIn('GBP', params['url'])
self.assertIn('USD', params['url'])
@@ -30,8 +30,20 @@ class TestCurrencyConvertEngine(SearxTestCase):
dicto['to_name'] = "United States dollar"
response = mock.Mock(text='a,b,c,d', search_params=dicto)
self.assertEqual(currency_convert.response(response), [])
-
- body = "<span class=bld>0.5 {}</span>".format(dicto['to'])
+ body = """ddg_spice_currency(
+ {
+ "conversion":{
+ "converted-amount": "0.5"
+ },
+ "topConversions":[
+ {
+ },
+ {
+ }
+ ]
+ }
+ );
+ """
response = mock.Mock(text=body, search_params=dicto)
results = currency_convert.response(response)
self.assertEqual(type(results), list)
@@ -39,6 +51,6 @@ class TestCurrencyConvertEngine(SearxTestCase):
self.assertEqual(results[0]['answer'], '10.0 GBP = 5.0 USD, 1 GBP (pound sterling)' +
' = 0.5 USD (United States dollar)')
- target_url = 'https://finance.google.com/finance?q={}{}'.format(
+ target_url = 'https://duckduckgo.com/js/spice/currency/1/{}/{}'.format(
dicto['from'], dicto['to'])
self.assertEqual(results[0]['url'], target_url)
diff --git a/tests/unit/engines/test_dailymotion.py b/tests/unit/engines/test_dailymotion.py
@@ -8,10 +8,11 @@ from searx.testing import SearxTestCase
class TestDailymotionEngine(SearxTestCase):
def test_request(self):
+ dailymotion.supported_languages = ['en', 'fr']
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 0
- dicto['language'] = 'fr_FR'
+ dicto['language'] = 'fr-FR'
params = dailymotion.request(query, dicto)
self.assertTrue('url' in params)
self.assertTrue(query in params['url'])
diff --git a/tests/unit/engines/test_duckduckgo.py b/tests/unit/engines/test_duckduckgo.py
@@ -1,18 +1,21 @@
# -*- coding: utf-8 -*-
from collections import defaultdict
import mock
-from searx.engines import duckduckgo
+from searx.engines import load_engine, duckduckgo
from searx.testing import SearxTestCase
class TestDuckduckgoEngine(SearxTestCase):
def test_request(self):
+ duckduckgo = load_engine({'engine': 'duckduckgo', 'name': 'duckduckgo'})
+
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
- dicto['language'] = 'de-CH'
dicto['time_range'] = ''
+
+ dicto['language'] = 'de-CH'
params = duckduckgo.request(query, dicto)
self.assertIn('url', params)
self.assertIn(query, params['url'])
@@ -20,16 +23,19 @@ class TestDuckduckgoEngine(SearxTestCase):
self.assertIn('ch-de', params['url'])
self.assertIn('s=0', params['url'])
- # when ddg uses non standard code
+ # when ddg uses non standard codes
+ dicto['language'] = 'zh-HK'
+ params = duckduckgo.request(query, dicto)
+ self.assertIn('hk-tzh', params['url'])
+
dicto['language'] = 'en-GB'
params = duckduckgo.request(query, dicto)
self.assertIn('uk-en', params['url'])
# no country given
- duckduckgo.supported_languages = ['de-CH', 'en-US']
- dicto['language'] = 'de'
+ dicto['language'] = 'en'
params = duckduckgo.request(query, dicto)
- self.assertIn('ch-de', params['url'])
+ self.assertIn('us-en', params['url'])
def test_no_url_in_request_year_time_range(self):
dicto = defaultdict(dict)
diff --git a/tests/unit/engines/test_duckduckgo_definitions.py b/tests/unit/engines/test_duckduckgo_definitions.py
@@ -18,6 +18,7 @@ class TestDDGDefinitionsEngine(SearxTestCase):
self.assertEqual(result, 'Text in link')
def test_request(self):
+ duckduckgo_definitions.supported_languages = ['en-US', 'es-ES']
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
diff --git a/tests/unit/engines/test_duckduckgo_images.py b/tests/unit/engines/test_duckduckgo_images.py
@@ -9,7 +9,6 @@ class TestDuckduckgoImagesEngine(SearxTestCase):
def test_request(self):
duckduckgo_images.supported_languages = ['de-CH', 'en-US']
-
query = 'test_query'
dicto = defaultdict(dict)
dicto['is_test'] = True
diff --git a/tests/unit/engines/test_google.py b/tests/unit/engines/test_google.py
@@ -15,6 +15,8 @@ class TestGoogleEngine(SearxTestCase):
return response
def test_request(self):
+ google.supported_languages = ['en', 'fr', 'zh-CN']
+
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
@@ -24,13 +26,21 @@ class TestGoogleEngine(SearxTestCase):
self.assertIn('url', params)
self.assertIn(query, params['url'])
self.assertIn('google.fr', params['url'])
+ self.assertIn('fr', params['url'])
self.assertIn('fr', params['headers']['Accept-Language'])
dicto['language'] = 'en-US'
params = google.request(query, dicto)
- self.assertIn('google.co', params['url'])
+ self.assertIn('google.com', params['url'])
+ self.assertIn('en', params['url'])
self.assertIn('en', params['headers']['Accept-Language'])
+ dicto['language'] = 'zh'
+ params = google.request(query, dicto)
+ self.assertIn('google.com', params['url'])
+ self.assertIn('zh-CN', params['url'])
+ self.assertIn('zh-CN', params['headers']['Accept-Language'])
+
def test_response(self):
self.assertRaises(AttributeError, google.response, None)
self.assertRaises(AttributeError, google.response, [])
diff --git a/tests/unit/engines/test_google_images.py b/tests/unit/engines/test_google_images.py
@@ -25,18 +25,3 @@ class TestGoogleImagesEngine(SearxTestCase):
self.assertRaises(AttributeError, google_images.response, [])
self.assertRaises(AttributeError, google_images.response, '')
self.assertRaises(AttributeError, google_images.response, '[]')
-
- html = r"""
-["rg_s",["dom","\u003Cstyle\u003E.rg_kn,.rg_s{}.rg_bx{display:-moz-inline-box;display:inline-block;margin-top:0;margin-right:12px;margin-bottom:12px;margin-left:0;overflow:hidden;position:relative;vertical-align:top;z-index:1}.rg_meta{display:none}.rg_l{display:inline-block;height:100%;position:absolute;text-decoration:none;width:100%}.rg_l:focus{outline:0}.rg_i{border:0;color:rgba(0,0,0,0);display:block;-webkit-touch-callout:none;}.rg_an,.rg_anbg,.rg_ilm,.rg_ilmbg{right:0;bottom:0;box-sizing:border-box;-moz-box-sizing:border-box;color:#fff;font:normal 11px arial,sans-serif;line-height:100%;white-space:nowrap;width:100%}.rg_anbg,.rg_ilmbg{background:rgba(51,51,51,0.8);margin-left:0;padding:2px 4px;position:absolute}.rg_ilmn{bottom:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rg_ilm{display:none}#rg_s.rg_kn .rg_l:focus .rg_ilm{display:block}.rg_kn .rg_bx:hover .rg_ilm,.rg_bx:hover .rg_anbg{display:none}.rg_bx:hover .rg_ilm,.rg_anbg,.rg_kn .rg_bx:hover .rg_anbg{display:block}\u003C\/style\u003E\u003Cdiv eid=\"qlKuV-T3BoqksAHMnaroAw\" id=\"isr_scm_0\" style=\"display:none\"\u003E\u003C\/div\u003E\u003Cdiv data-cei=\"qlKuV-T3BoqksAHMnaroAw\" class=\"rg_add_chunk\"\u003E\u003C!--m--\u003E\u003Cdiv class=\"rg_di rg_bx rg_el ivg-i\" data-ved=\"0ahUKEwjk9PCm-7zOAhUKEiwKHcyOCj0QMwgCKAAwAA\"\u003E\u003Ca jsaction=\"fire.ivg_o;mouseover:str.hmov;mouseout:str.hmou\" class=\"rg_l\" style=\"background:rgb(170,205,240)\"\u003E\u003Cimg data-sz=\"f\" name=\"5eykIeMjmCk7xM:\" src=\"https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn\" class=\"rg_i rg_ic\" alt=\"Image result for south\" jsaction=\"load:str.tbn\" onload=\"google.aft\u0026\u0026google.aft(this)\"\u003E\u003Cdiv class=\"_aOd rg_ilm\"\u003E\u003Cdiv class=\"rg_ilmbg\"\u003E\u003Cspan class=\"rg_ilmn\"\u003E 566\u0026nbsp;\u0026#215;\u0026nbsp;365 - en.wikipedia.org \u003C\/span\u003E\u003C\/div\u003E\u003C\/div\u003E\u003C\/a\u003E\u003Cdiv class=\"rg_meta\"\u003E{\"id\":\"5eykIeMjmCk7xM:\",\"isu\":\"en.wikipedia.org\",\"itg\":false,\"ity\":\"png\",\"oh\":365,\"ou\":\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/e\/e4\/Us_south_census.png\",\"ow\":566,\"pt\":\"Southern United States - Wikipedia, the free encyclopedia\",\"rid\":\"cErfE02-v-VcAM\",\"ru\":\"https:\/\/en.wikipedia.org\/wiki\/Southern_United_States\",\"s\":\"The Southern United States as defined by the United States Census Bureau.\",\"sc\":1,\"th\":180,\"tu\":\"https:\/\/encrypted-tbn0.gstatic.com\/images?q\\u003dtbn\",\"tw\":280}\u003C\/div\u003E\u003C\/div\u003E\u003C!--n--\u003E\u003C!--m--\u003E\u003Cdiv class=\"rg_di rg_bx rg_el ivg-i\" data-ved=\"0ahUKEwjk9PCm-7zOAhUKEiwKHcyOCj0QMwgDKAEwAQ\"\u003E\u003Ca jsaction=\"fire.ivg_o;mouseover:str.hmov;mouseout:str.hmou\" class=\"rg_l\" style=\"background:rgb(249,252,249)\"\u003E\u003Cimg data-sz=\"f\" name=\"eRjGCc0cFyVkKM:\" src=\"https:\/\/encrypted-tbn2.gstatic.com\/images?q=tbn:ANd9GcSI7SZlbDwdMCgGXzJkpwgdn9uL41xUJ1IiIcKs0qW43_Yp0EhEsg\" class=\"rg_i rg_ic\" alt=\"Image result for south\" jsaction=\"load:str.tbn\" onload=\"google.aft\u0026\u0026google.aft(this)\"\u003E\u003Cdiv class=\"_aOd rg_ilm\"\u003E\u003Cdiv class=\"rg_ilmbg\"\u003E\u003Cspan class=\"rg_ilmn\"\u003E 2000\u0026nbsp;\u0026#215;\u0026nbsp;1002 - commons.wikimedia.org \u003C\/span\u003E\u003C\/div\u003E\u003C\/div\u003E\u003C\/a\u003E\u003Cdiv class=\"rg_meta\"\u003E{\"id\":\"eRjGCc0cFyVkKM:\",\"isu\":\"commons.wikimedia.org\",\"itg\":false,\"ity\":\"png\",\"oh\":1002,\"ou\":\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/8\/84\/South_plate.svg\/2000px-South_plate.svg.png\",\"ow\":2000,\"pt\":\"File:South plate.svg - Wikimedia Commons\",\"rid\":\"F8TVsT2GBLb6RM\",\"ru\":\"https:\/\/commons.wikimedia.org\/wiki\/File:South_plate.svg\",\"s\":\"This image rendered as PNG in other widths: 200px, 500px, 1000px, 2000px.\",\"sc\":1,\"th\":159,\"tu\":\"https:\/\/encrypted-tbn2.gstatic.com\/images?q\\u003dtbn:ANd9GcSI7SZlbDwdMCgGXzJkpwgdn9uL41xUJ1IiIcKs0qW43_Yp0EhEsg\",\"tw\":317}\u003C\/div\u003E\u003C\/div\u003E\u003C!--n--\u003E\u003C\/div\u003E"]]""" # noqa
- response = mock.Mock(text=html)
- results = google_images.response(response)
- self.assertEqual(type(results), list)
- self.assertEqual(len(results), 2)
- self.assertEqual(results[0]['title'], u'Southern United States - Wikipedia, the free encyclopedia')
- self.assertEqual(results[0]['url'], 'https://en.wikipedia.org/wiki/Southern_United_States')
- self.assertEqual(results[0]['img_src'],
- 'https://upload.wikimedia.org/wikipedia/commons/e/e4/Us_south_census.png')
- self.assertEqual(results[0]['content'],
- 'The Southern United States as defined by the United States Census Bureau.')
- self.assertEqual(results[0]['thumbnail_src'],
- 'https://encrypted-tbn0.gstatic.com/images?q=tbn')
diff --git a/tests/unit/engines/test_google_news.py b/tests/unit/engines/test_google_news.py
@@ -9,6 +9,7 @@ from searx.testing import SearxTestCase
class TestGoogleNewsEngine(SearxTestCase):
def test_request(self):
+ google_news.supported_languages = ['en-US', 'fr-FR']
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
@@ -41,7 +42,7 @@ class TestGoogleNewsEngine(SearxTestCase):
<div class="ts _JGs _JHs _tJs _KGs _jHs">
<div class="_hJs">
<h3 class="r _gJs">
- <a class="l _PMs" href="https://example.com/" onmousedown="return rwt(this,'','','','11','AFQjCNEyehpzD5cJK1KUfXBx9RmsbqqG9g','','0ahUKEwjB58OR54HWAhWnKJoKHSQhAMY4ChCpAggiKAAwAA','','',event)">Example title</a>
+ <a class="l lLrAF" href="https://example.com/" onmousedown="return rwt(this,'','','','11','AFQjCNEyehpzD5cJK1KUfXBx9RmsbqqG9g','','0ahUKEwjB58OR54HWAhWnKJoKHSQhAMY4ChCpAggiKAAwAA','','',event)">Example title</a>
</h3>
<div class="slp">
<span class="_OHs _PHs">
@@ -62,7 +63,7 @@ class TestGoogleNewsEngine(SearxTestCase):
</a>
<div class="_hJs">
<h3 class="r _gJs">
- <a class="l _PMs" href="https://example2.com/" onmousedown="return rwt(this,'','','','12','AFQjCNHObfH7sYmLWI1SC-YhWXKZFRzRjw','','0ahUKEwjB58OR54HWAhWnKJoKHSQhAMY4ChCpAgglKAAwAQ','','',event)">Example title 2</a>
+ <a class="l lLrAF" href="https://example2.com/" onmousedown="return rwt(this,'','','','12','AFQjCNHObfH7sYmLWI1SC-YhWXKZFRzRjw','','0ahUKEwjB58OR54HWAhWnKJoKHSQhAMY4ChCpAgglKAAwAQ','','',event)">Example title 2</a>
</h3>
<div class="slp">
<span class="_OHs _PHs">
diff --git a/tests/unit/engines/test_piratebay.py b/tests/unit/engines/test_piratebay.py
@@ -15,7 +15,7 @@ class TestPiratebayEngine(SearxTestCase):
params = piratebay.request(query, dicto)
self.assertIn('url', params)
self.assertIn(query, params['url'])
- self.assertIn('piratebay.se', params['url'])
+ self.assertIn('piratebay.org', params['url'])
self.assertIn('0', params['url'])
dicto['category'] = 'music'
@@ -99,7 +99,7 @@ class TestPiratebayEngine(SearxTestCase):
self.assertEqual(type(results), list)
self.assertEqual(len(results), 2)
self.assertEqual(results[0]['title'], 'This is the title')
- self.assertEqual(results[0]['url'], 'https://thepiratebay.se/this.is.the.link')
+ self.assertEqual(results[0]['url'], 'https://thepiratebay.org/this.is.the.link')
self.assertEqual(results[0]['content'], 'This is the content and should be OK')
self.assertEqual(results[0]['seed'], 13)
self.assertEqual(results[0]['leech'], 334)
@@ -149,7 +149,7 @@ class TestPiratebayEngine(SearxTestCase):
self.assertEqual(type(results), list)
self.assertEqual(len(results), 1)
self.assertEqual(results[0]['title'], 'This is the title')
- self.assertEqual(results[0]['url'], 'https://thepiratebay.se/this.is.the.link')
+ self.assertEqual(results[0]['url'], 'https://thepiratebay.org/this.is.the.link')
self.assertEqual(results[0]['content'], 'This is the content and should be OK')
self.assertEqual(results[0]['seed'], 0)
self.assertEqual(results[0]['leech'], 0)
diff --git a/tests/unit/engines/test_qwant.py b/tests/unit/engines/test_qwant.py
@@ -7,6 +7,7 @@ from searx.testing import SearxTestCase
class TestQwantEngine(SearxTestCase):
def test_request(self):
+ qwant.supported_languages = ['en-US', 'fr-CA', 'fr-FR']
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 0
@@ -26,7 +27,6 @@ class TestQwantEngine(SearxTestCase):
self.assertIn('en_us', params['url'])
self.assertIn('news', params['url'])
- qwant.supported_languages = ['en', 'fr-FR', 'fr-CA']
dicto['language'] = 'fr'
params = qwant.request(query, dicto)
self.assertIn('fr_fr', params['url'])
diff --git a/tests/unit/engines/test_swisscows.py b/tests/unit/engines/test_swisscows.py
@@ -7,6 +7,7 @@ from searx.testing import SearxTestCase
class TestSwisscowsEngine(SearxTestCase):
def test_request(self):
+ swisscows.supported_languages = ['de-AT', 'de-DE']
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
diff --git a/tests/unit/engines/test_wikidata.py b/tests/unit/engines/test_wikidata.py
@@ -11,17 +11,13 @@ class TestWikidataEngine(SearxTestCase):
def test_request(self):
query = 'test_query'
dicto = defaultdict(dict)
- dicto['language'] = 'en-US'
params = wikidata.request(query, dicto)
self.assertIn('url', params)
self.assertIn(query, params['url'])
self.assertIn('wikidata.org', params['url'])
- self.assertIn('en', params['url'])
- dicto['language'] = 'es-ES'
params = wikidata.request(query, dicto)
self.assertIn(query, params['url'])
- self.assertIn('es', params['url'])
# successful cases are not tested here to avoid sending additional requests
def test_response(self):
@@ -30,6 +26,7 @@ class TestWikidataEngine(SearxTestCase):
self.assertRaises(AttributeError, wikidata.response, '')
self.assertRaises(AttributeError, wikidata.response, '[]')
+ wikidata.supported_languages = ['en', 'es']
response = mock.Mock(text='<html></html>', search_params={"language": "en"})
self.assertEqual(wikidata.response(response), [])
@@ -126,9 +123,10 @@ class TestWikidataEngine(SearxTestCase):
<div class="wikibase-statementview-mainsnak">
<div>
<div class="wikibase-snakview-value">
- <a href="https://commons.wikimedia.org/wiki/File:image.png">
- image.png
- </a>
+ <div class="commons-media-caption">
+ <a href="https://commons.wikimedia.org/wiki/File:image.png">image.png</a>
+ <br/>2,687 × 3,356; 1.22 MB
+ </div>
</div>
</div>
</div>
@@ -159,9 +157,10 @@ class TestWikidataEngine(SearxTestCase):
<div class="wikibase-statementview-mainsnak">
<div>
<div class="wikibase-snakview-value">
- <a href="https://commons.wikimedia.org/wiki/File:icon.png">
- icon.png
- </a>
+ <div class="commons-media-caption">
+ <a href="https://commons.wikimedia.org/wiki/File:icon.png">icon.png</a>
+ <br/>671 × 671; 18 KB</div>
+ </div>
</div>
</div>
</div>
@@ -182,9 +181,10 @@ class TestWikidataEngine(SearxTestCase):
<div class="wikibase-statementview-mainsnak">
<div>
<div class="wikibase-snakview-value">
- <a href="https://commons.wikimedia.org/wiki/File:logo.png">
- logo.png
- </a>
+ <div class="commons-media-caption">
+ <a href="https://commons.wikimedia.org/wiki/File:logo.png">logo.png</a>
+ <br/>170 × 170; 1 KB
+ </div>
</div>
</div>
</div>
diff --git a/tests/unit/engines/test_yahoo.py b/tests/unit/engines/test_yahoo.py
@@ -25,11 +25,12 @@ class TestYahooEngine(SearxTestCase):
self.assertEqual('https://this.is.the.url/', url)
def test_request(self):
+ yahoo.supported_languages = ['en', 'fr', 'zh-CHT', 'zh-CHS']
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
dicto['time_range'] = ''
- dicto['language'] = 'fr_FR'
+ dicto['language'] = 'fr-FR'
params = yahoo.request(query, dicto)
self.assertIn('url', params)
self.assertIn(query, params['url'])
@@ -39,6 +40,16 @@ class TestYahooEngine(SearxTestCase):
self.assertIn('sB', params['cookies'])
self.assertIn('fr', params['cookies']['sB'])
+ dicto['language'] = 'zh'
+ params = yahoo.request(query, dicto)
+ self.assertIn('zh_chs', params['url'])
+ self.assertIn('zh_chs', params['cookies']['sB'])
+
+ dicto['language'] = 'zh-TW'
+ params = yahoo.request(query, dicto)
+ self.assertIn('zh_cht', params['url'])
+ self.assertIn('zh_cht', params['cookies']['sB'])
+
def test_no_url_in_request_year_time_range(self):
dicto = defaultdict(dict)
query = 'test_query'
@@ -168,5 +179,5 @@ class TestYahooEngine(SearxTestCase):
self.assertEqual(type(languages), list)
self.assertEqual(len(languages), 3)
self.assertIn('ar', languages)
- self.assertIn('zh-chs', languages)
- self.assertIn('zh-cht', languages)
+ self.assertIn('zh-CHS', languages)
+ self.assertIn('zh-CHT', languages)
diff --git a/tests/unit/engines/test_yahoo_news.py b/tests/unit/engines/test_yahoo_news.py
@@ -9,10 +9,11 @@ from searx.testing import SearxTestCase
class TestYahooNewsEngine(SearxTestCase):
def test_request(self):
+ yahoo_news.supported_languages = ['en', 'fr']
query = 'test_query'
dicto = defaultdict(dict)
dicto['pageno'] = 1
- dicto['language'] = 'fr_FR'
+ dicto['language'] = 'fr-FR'
params = yahoo_news.request(query, dicto)
self.assertIn('url', params)
self.assertIn(query, params['url'])
diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py
@@ -65,6 +65,31 @@ class TestUtils(SearxTestCase):
for test_url, expected in data:
self.assertEqual(utils.prettify_url(test_url, max_length=32), expected)
+ def test_match_language(self):
+ self.assertEqual(utils.match_language('es', ['es']), 'es')
+ self.assertEqual(utils.match_language('es', [], fallback='fallback'), 'fallback')
+ self.assertEqual(utils.match_language('ja', ['jp'], {'ja': 'jp'}), 'jp')
+
+ aliases = {'en-GB': 'en-UK', 'he': 'iw'}
+
+ # guess country
+ self.assertEqual(utils.match_language('de-DE', ['de']), 'de')
+ self.assertEqual(utils.match_language('de', ['de-DE']), 'de-DE')
+ self.assertEqual(utils.match_language('es-CO', ['es-AR', 'es-ES', 'es-MX']), 'es-ES')
+ self.assertEqual(utils.match_language('es-CO', ['es-MX']), 'es-MX')
+ self.assertEqual(utils.match_language('en-UK', ['en-AU', 'en-GB', 'en-US']), 'en-GB')
+ self.assertEqual(utils.match_language('en-GB', ['en-AU', 'en-UK', 'en-US'], aliases), 'en-UK')
+
+ # language aliases
+ self.assertEqual(utils.match_language('iw', ['he']), 'he')
+ self.assertEqual(utils.match_language('he', ['iw'], aliases), 'iw')
+ self.assertEqual(utils.match_language('iw-IL', ['he']), 'he')
+ self.assertEqual(utils.match_language('he-IL', ['iw'], aliases), 'iw')
+ self.assertEqual(utils.match_language('iw', ['he-IL']), 'he-IL')
+ self.assertEqual(utils.match_language('he', ['iw-IL'], aliases), 'iw-IL')
+ self.assertEqual(utils.match_language('iw-IL', ['he-IL']), 'he-IL')
+ self.assertEqual(utils.match_language('he-IL', ['iw-IL'], aliases), 'iw-IL')
+
class TestHTMLTextExtractor(SearxTestCase):
diff --git a/utils/fetch_firefox_version.py b/utils/fetch_firefox_version.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+
+# set path
+from sys import path
+from os.path import realpath, dirname, join
+path.append(realpath(dirname(realpath(__file__)) + '/../'))
+
+#
+import json
+import requests
+import re
+from distutils.version import LooseVersion, StrictVersion
+from lxml import html
+from searx.url_utils import urlparse, urljoin
+from searx import searx_dir
+
+URL = 'https://ftp.mozilla.org/pub/firefox/releases/'
+RELEASE_PATH = '/pub/firefox/releases/'
+
+NORMAL_REGEX = re.compile('^[0-9]+\.[0-9](\.[0-9])?$')
+# BETA_REGEX = re.compile('.*[0-9]b([0-9\-a-z]+)$')
+# ESR_REGEX = re.compile('^[0-9]+\.[0-9](\.[0-9])?esr$')
+
+#
+useragents = {
+ "versions": (),
+ "os": ('Windows NT 10; WOW64',
+ 'X11; Linux x86_64'),
+ "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}"
+}
+
+
+def fetch_firefox_versions():
+ resp = requests.get(URL, timeout=2.0)
+ if resp.status_code != 200:
+ raise Exception("Error fetching firefox versions, HTTP code " + resp.status_code)
+ else:
+ dom = html.fromstring(resp.text)
+ versions = []
+
+ for link in dom.xpath('//a/@href'):
+ url = urlparse(urljoin(URL, link))
+ path = url.path
+ if path.startswith(RELEASE_PATH):
+ version = path[len(RELEASE_PATH):-1]
+ if NORMAL_REGEX.match(version):
+ versions.append(LooseVersion(version))
+
+ list.sort(versions, reverse=True)
+ return versions
+
+
+def fetch_firefox_last_versions():
+ versions = fetch_firefox_versions()
+
+ result = []
+ major_last = versions[0].version[0]
+ major_list = (major_last, major_last - 1)
+ for version in versions:
+ major_current = version.version[0]
+ if major_current in major_list:
+ result.append(version.vstring)
+
+ return result
+
+
+def get_useragents_filename():
+ return join(join(searx_dir, "data"), "useragents.json")
+
+
+useragents["versions"] = fetch_firefox_last_versions()
+with open(get_useragents_filename(), "w") as f:
+ json.dump(useragents, f, indent=4, ensure_ascii=False)
diff --git a/utils/fetch_languages.py b/utils/fetch_languages.py
@@ -2,83 +2,27 @@
# This script generates languages.py from intersecting each engine's supported languages.
#
-# The country names are obtained from http://api.geonames.org which requires registering as a user.
-#
# Output files (engines_languages.json and languages.py)
# are written in current directory to avoid overwriting in case something goes wrong.
-from requests import get
-from lxml.html import fromstring
-from json import loads, dump
+from json import dump
import io
from sys import path
+from babel import Locale, UnknownLocaleError
+from babel.languages import get_global
+
path.append('../searx') # noqa
from searx import settings
-from searx.url_utils import urlencode
from searx.engines import initialize_engines, engines
-# Geonames API for country names.
-geonames_user = '' # ADD USER NAME HERE
-country_names_url = 'http://api.geonames.org/countryInfoJSON?{parameters}'
-
# Output files.
engines_languages_file = 'engines_languages.json'
languages_file = 'languages.py'
-engines_languages = {}
-
-
-# To filter out invalid codes and dialects.
-def valid_code(lang_code):
- # filter invalid codes
- # sl-SL is technically not invalid, but still a mistake
- invalid_codes = ['sl-SL', 'wt-WT', 'jw']
- invalid_countries = ['UK', 'XA', 'XL']
- if lang_code[:2] == 'xx'\
- or lang_code in invalid_codes\
- or lang_code[-2:] in invalid_countries\
- or is_dialect(lang_code):
- return False
-
- return True
-
-
-# Language codes with any additional tags other than language and country.
-def is_dialect(lang_code):
- lang_code = lang_code.split('-')
- if len(lang_code) > 2 or len(lang_code[0]) > 3:
- return True
- if len(lang_code) == 2 and len(lang_code[1]) > 2:
- return True
-
- return False
-
-
-# Get country name in specified language.
-def get_country_name(locale):
- if geonames_user is '':
- return ''
-
- locale = locale.split('-')
- if len(locale) != 2:
- return ''
-
- url = country_names_url.format(parameters=urlencode({'lang': locale[0],
- 'country': locale[1],
- 'username': geonames_user}))
- response = get(url)
- json = loads(response.text)
- content = json.get('geonames', None)
- if content is None or len(content) != 1:
- print("No country name found for " + locale[0] + "-" + locale[1])
- return ''
-
- return content[0].get('countryName', '')
-
# Fetchs supported languages for each engine and writes json file with those.
def fetch_supported_languages():
- initialize_engines(settings['engines'])
+ engines_languages = {}
for engine_name in engines:
if hasattr(engines[engine_name], 'fetch_supported_languages'):
try:
@@ -90,81 +34,135 @@ def fetch_supported_languages():
with io.open(engines_languages_file, "w", encoding="utf-8") as f:
dump(engines_languages, f, ensure_ascii=False)
+ return engines_languages
+
+
+# Get babel Locale object from lang_code if possible.
+def get_locale(lang_code):
+ try:
+ locale = Locale.parse(lang_code, sep='-')
+ return locale
+ except (UnknownLocaleError, ValueError):
+ return None
+
+
+# Append engine_name to list of engines that support locale.
+def add_engine_counter(lang_code, engine_name, languages):
+ if lang_code in languages:
+ if 'counter' not in languages[lang_code]:
+ languages[lang_code]['counter'] = [engine_name]
+ elif engine_name not in languages[lang_code]['counter']:
+ languages[lang_code]['counter'].append(engine_name)
-# Join all language lists.
-# Iterate all languages supported by each engine.
-def join_language_lists():
- global languages
- # include wikipedia first for more accurate language names
- languages = {code: lang for code, lang
- in engines_languages['wikipedia'].items()
- if valid_code(code)}
+# Join all language lists.
+# TODO: Add language names from engine's language list if name not known by babel.
+def join_language_lists(engines_languages):
+ language_list = {}
for engine_name in engines_languages:
- for locale in engines_languages[engine_name]:
- if valid_code(locale):
- # if language is not on list or if it has no name yet
- if locale not in languages or not languages[locale].get('name'):
- if isinstance(engines_languages[engine_name], dict):
- languages[locale] = engines_languages[engine_name][locale]
- else:
- languages[locale] = {}
-
- # add to counter of engines that support given language
- lang = locale.split('-')[0]
- if lang in languages:
- if 'counter' not in languages[lang]:
- languages[lang]['counter'] = [engine_name]
- elif engine_name not in languages[lang]['counter']:
- languages[lang]['counter'].append(engine_name)
-
- # filter list to include only languages supported by most engines
- min_supported_engines = int(0.70 * len(engines_languages))
- languages = {code: lang for code, lang
- in languages.items()
- if len(lang.get('counter', [])) >= min_supported_engines or
- len(languages.get(code.split('-')[0], {}).get('counter', [])) >= min_supported_engines}
-
- # get locales that have no name or country yet
- for locale in languages.keys():
- # try to get language names
- if not languages[locale].get('name'):
- name = languages.get(locale.split('-')[0], {}).get('name', None)
- if name:
- languages[locale]['name'] = name
- else:
- # filter out locales with no name
- del languages[locale]
- continue
-
- # try to get language name in english
- if not languages[locale].get('english_name'):
- languages[locale]['english_name'] = languages.get(locale.split('-')[0], {}).get('english_name', '')
-
- # try to get country name
- if locale.find('-') > 0 and not languages[locale].get('country'):
- languages[locale]['country'] = get_country_name(locale) or ''
-
-
-# Remove countryless language if language is featured in only one country.
-def filter_single_country_languages():
- prev_lang = None
- prev_code = None
- for code in sorted(languages):
- lang = code.split('-')[0]
- if lang == prev_lang:
+ for lang_code in engines_languages[engine_name]:
+
+ # apply custom fixes if necessary
+ if lang_code in getattr(engines[engine_name], 'language_aliases', {}).values():
+ lang_code = next(lc for lc, alias in engines[engine_name].language_aliases.items()
+ if lang_code == alias)
+
+ locale = get_locale(lang_code)
+
+ # ensure that lang_code uses standard language and country codes
+ if locale and locale.territory:
+ lang_code = locale.language + '-' + locale.territory
+
+ # add locale if it's not in list
+ if lang_code not in language_list:
+ if locale:
+ language_list[lang_code] = {'name': locale.get_language_name().title(),
+ 'english_name': locale.english_name,
+ 'country': locale.get_territory_name() or ''}
+
+ # also add language without country
+ if locale.language not in language_list:
+ language_list[locale.language] = {'name': locale.get_language_name().title(),
+ 'english_name': locale.english_name}
+ else:
+ language_list[lang_code] = {}
+
+ # count engine for both language_country combination and language alone
+ add_engine_counter(lang_code, engine_name, language_list)
+ add_engine_counter(lang_code.split('-')[0], engine_name, language_list)
+
+ return language_list
+
+
+# Filter language list so it only includes the most supported languages and countries.
+def filter_language_list(all_languages):
+ min_supported_engines = 10
+ main_engines = [engine_name for engine_name in engines.keys()
+ if 'general' in engines[engine_name].categories and
+ engines[engine_name].supported_languages and
+ not engines[engine_name].disabled]
+
+ # filter list to include only languages supported by most engines or all default general engines
+ filtered_languages = {code: lang for code, lang
+ in all_languages.items()
+ if (len(lang.get('counter', [])) >= min_supported_engines or
+ all(main_engine in lang.get('counter', [])
+ for main_engine in main_engines))}
+
+ return filtered_languages
+
+
+# Add country codes to languages without one and filter out language codes.
+def assign_country_codes(filtered_languages, all_languages):
+ sorted_languages = sorted(all_languages,
+ key=lambda lang: len(all_languages[lang].get('counter', [])),
+ reverse=True)
+ previous_lang = None
+ previous_code = None
+ countries = 0
+ for current_code in sorted(filtered_languages):
+ current_lang = current_code.split('-')[0]
+
+ # count country codes per language
+ if current_lang == previous_lang:
countries += 1
+
else:
- if prev_lang is not None and countries == 1:
- del languages[prev_lang]
- languages[prev_code]['country'] = ''
+ if previous_lang is not None:
+ # if language has no single country code
+ if countries == 0:
+ # try to get country code with most supported engines
+ for l in sorted_languages:
+ l_parts = l.split('-')
+ if len(l_parts) == 2 and l_parts[0] == previous_lang:
+ filtered_languages[l] = all_languages[l]
+ filtered_languages[l]['country'] = ''
+ countries = 1
+ break
+
+ if countries == 0:
+ # get most likely country code from babel
+ subtags = get_global('likely_subtags').get(previous_lang)
+ if subtags:
+ subtag_parts = subtags.split('_')
+ new_code = subtag_parts[0] + '-' + subtag_parts[-1]
+ filtered_languages[new_code] = all_languages[previous_lang]
+ countries = 1
+
+ if countries == 1:
+ # remove countryless version of language if there's only one country
+ del filtered_languages[previous_lang]
+ if previous_code in filtered_languages:
+ filtered_languages[previous_code]['country'] = ''
+
countries = 0
- prev_lang = lang
- prev_code = code
+ previous_lang = current_lang
+
+ previous_code = current_code
# Write languages.py.
-def write_languages_file():
+def write_languages_file(languages):
new_file = open(languages_file, 'wb')
file_content = '# -*- coding: utf-8 -*-\n'\
+ '# list of language codes\n'\
@@ -183,7 +181,9 @@ def write_languages_file():
if __name__ == "__main__":
- fetch_supported_languages()
- join_language_lists()
- filter_single_country_languages()
- write_languages_file()
+ initialize_engines(settings['engines'])
+ engines_languages = fetch_supported_languages()
+ all_languages = join_language_lists(engines_languages)
+ filtered_languages = filter_language_list(all_languages)
+ assign_country_codes(filtered_languages, all_languages)
+ write_languages_file(filtered_languages)