403Webshell
Server IP : 104.21.84.107  /  Your IP : 104.23.197.208
Web Server : Apache/2.4.63 (Ubuntu)
System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.4.5
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/pregrados/ingenieria-agroindustrial/libraries/regularlabs/src/Form/Field/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/pregrados/ingenieria-agroindustrial/libraries/regularlabs/src/Form/Field/GeoField.php
<?php
/**
 * @package         Regular Labs Library
 * @version         23.12.10783
 * 
 * @author          Peter van Westen <[email protected]>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

namespace RegularLabs\Library\Form\Field;

defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper as JHtml;
use RegularLabs\Library\Form\Form as RL_Form;
use RegularLabs\Library\Form\FormField as RL_FormField;
use RegularLabs\Library\RegEx as RL_RegEx;

class GeoField extends RL_FormField
{
    public      $attributes       = [
        'group' => 'countries',
    ];
    public      $continents       = [
        'AF' => 'Africa',
        'AS' => 'Asia',
        'EU' => 'Europe',
        'NA' => 'North America',
        'SA' => 'South America',
        'OC' => 'Oceania',
        'AN' => 'Antarctica',
    ];
    public      $countries        = [
        'AF' => "Afghanistan",
        'AX' => "Aland Islands",
        'AL' => "Albania",
        'DZ' => "Algeria",
        'AS' => "American Samoa",
        'AD' => "Andorra",
        'AO' => "Angola",
        'AI' => "Anguilla",
        'AQ' => "Antarctica",
        'AG' => "Antigua and Barbuda",
        'AR' => "Argentina",
        'AM' => "Armenia",
        'AW' => "Aruba",
        'AU' => "Australia",
        'AT' => "Austria",
        'AZ' => "Azerbaijan",
        'BS' => "Bahamas",
        'BH' => "Bahrain",
        'BD' => "Bangladesh",
        'BB' => "Barbados",
        'BY' => "Belarus",
        'BE' => "Belgium",
        'BZ' => "Belize",
        'BJ' => "Benin",
        'BM' => "Bermuda",
        'BT' => "Bhutan",
        'BO' => "Bolivia",
        'BA' => "Bosnia and Herzegovina",
        'BW' => "Botswana",
        'BV' => "Bouvet Island",
        'BR' => "Brazil",
        'IO' => "British Indian Ocean Territory",
        'BN' => "Brunei Darussalam",
        'BG' => "Bulgaria",
        'BF' => "Burkina Faso",
        'BI' => "Burundi",
        'KH' => "Cambodia",
        'CM' => "Cameroon",
        'CA' => "Canada",
        'CV' => "Cape Verde",
        'KY' => "Cayman Islands",
        'CF' => "Central African Republic",
        'TD' => "Chad",
        'CL' => "Chile",
        'CN' => "China",
        'CX' => "Christmas Island",
        'CC' => "Cocos (Keeling) Islands",
        'CO' => "Colombia",
        'KM' => "Comoros",
        'CG' => "Congo",
        'CD' => "Congo, The Democratic Republic of the",
        'CK' => "Cook Islands",
        'CR' => "Costa Rica",
        'CI' => "Cote d'Ivoire",
        'HR' => "Croatia",
        'CU' => "Cuba",
        'CY' => "Cyprus",
        'CZ' => "Czech Republic",
        'DK' => "Denmark",
        'DJ' => "Djibouti",
        'DM' => "Dominica",
        'DO' => "Dominican Republic",
        'EC' => "Ecuador",
        'EG' => "Egypt",
        'SV' => "El Salvador",
        'GQ' => "Equatorial Guinea",
        'ER' => "Eritrea",
        'EE' => "Estonia",
        'ET' => "Ethiopia",
        'FK' => "Falkland Islands (Malvinas)",
        'FO' => "Faroe Islands",
        'FJ' => "Fiji",
        'FI' => "Finland",
        'FR' => "France",
        'GF' => "French Guiana",
        'PF' => "French Polynesia",
        'TF' => "French Southern Territories",
        'GA' => "Gabon",
        'GM' => "Gambia",
        'GE' => "Georgia",
        'DE' => "Germany",
        'GH' => "Ghana",
        'GI' => "Gibraltar",
        'GR' => "Greece",
        'GL' => "Greenland",
        'GD' => "Grenada",
        'GP' => "Guadeloupe",
        'GU' => "Guam",
        'GT' => "Guatemala",
        'GG' => "Guernsey",
        'GN' => "Guinea",
        'GW' => "Guinea-Bissau",
        'GY' => "Guyana",
        'HT' => "Haiti",
        'HM' => "Heard Island and McDonald Islands",
        'VA' => "Holy See (Vatican City State)",
        'HN' => "Honduras",
        'HK' => "Hong Kong",
        'HU' => "Hungary",
        'IS' => "Iceland",
        'IN' => "India",
        'ID' => "Indonesia",
        'IR' => "Iran, Islamic Republic of",
        'IQ' => "Iraq",
        'IE' => "Ireland",
        'IM' => "Isle of Man",
        'IL' => "Israel",
        'IT' => "Italy",
        'JM' => "Jamaica",
        'JP' => "Japan",
        'JE' => "Jersey",
        'JO' => "Jordan",
        'KZ' => "Kazakhstan",
        'KE' => "Kenya",
        'KI' => "Kiribati",
        'KP' => "Korea, Democratic People's Republic of",
        'KR' => "Korea, Republic of",
        'KW' => "Kuwait",
        'KG' => "Kyrgyzstan",
        'LA' => "Lao People's Democratic Republic",
        'LV' => "Latvia",
        'LB' => "Lebanon",
        'LS' => "Lesotho",
        'LR' => "Liberia",
        'LY' => "Libyan Arab Jamahiriya",
        'LI' => "Liechtenstein",
        'LT' => "Lithuania",
        'LU' => "Luxembourg",
        'MO' => "Macao",
        'MK' => "Macedonia",
        'MG' => "Madagascar",
        'MW' => "Malawi",
        'MY' => "Malaysia",
        'MV' => "Maldives",
        'ML' => "Mali",
        'MT' => "Malta",
        'MH' => "Marshall Islands",
        'MQ' => "Martinique",
        'MR' => "Mauritania",
        'MU' => "Mauritius",
        'YT' => "Mayotte",
        'MX' => "Mexico",
        'FM' => "Micronesia, Federated States of",
        'MD' => "Moldova, Republic of",
        'MC' => "Monaco",
        'MN' => "Mongolia",
        'ME' => "Montenegro",
        'MS' => "Montserrat",
        'MA' => "Morocco",
        'MZ' => "Mozambique",
        'MM' => "Myanmar",
        'NA' => "Namibia",
        'NR' => "Nauru",
        'NP' => "Nepal",
        'NL' => "Netherlands",
        'AN' => "Netherlands Antilles",
        'NC' => "New Caledonia",
        'NZ' => "New Zealand",
        'NI' => "Nicaragua",
        'NE' => "Niger",
        'NG' => "Nigeria",
        'NU' => "Niue",
        'NF' => "Norfolk Island",
        'MP' => "Northern Mariana Islands",
        'NO' => "Norway",
        'OM' => "Oman",
        'PK' => "Pakistan",
        'PW' => "Palau",
        'PS' => "Palestinian Territory",
        'PA' => "Panama",
        'PG' => "Papua New Guinea",
        'PY' => "Paraguay",
        'PE' => "Peru",
        'PH' => "Philippines",
        'PN' => "Pitcairn",
        'PL' => "Poland",
        'PT' => "Portugal",
        'PR' => "Puerto Rico",
        'QA' => "Qatar",
        'RE' => "Reunion",
        'RO' => "Romania",
        'RU' => "Russian Federation",
        'RW' => "Rwanda",
        'SH' => "Saint Helena",
        'KN' => "Saint Kitts and Nevis",
        'LC' => "Saint Lucia",
        'PM' => "Saint Pierre and Miquelon",
        'VC' => "Saint Vincent and the Grenadines",
        'WS' => "Samoa",
        'SM' => "San Marino",
        'ST' => "Sao Tome and Principe",
        'SA' => "Saudi Arabia",
        'SN' => "Senegal",
        'RS' => "Serbia",
        'SC' => "Seychelles",
        'SL' => "Sierra Leone",
        'SG' => "Singapore",
        'SK' => "Slovakia",
        'SI' => "Slovenia",
        'SB' => "Solomon Islands",
        'SO' => "Somalia",
        'ZA' => "South Africa",
        'GS' => "South Georgia and the South Sandwich Islands",
        'ES' => "Spain",
        'LK' => "Sri Lanka",
        'SD' => "Sudan",
        'SR' => "Suriname",
        'SJ' => "Svalbard and Jan Mayen",
        'SZ' => "Swaziland",
        'SE' => "Sweden",
        'CH' => "Switzerland",
        'SY' => "Syrian Arab Republic",
        'TW' => "Taiwan",
        'TJ' => "Tajikistan",
        'TZ' => "Tanzania, United Republic of",
        'TH' => "Thailand",
        'TL' => "Timor-Leste",
        'TG' => "Togo",
        'TK' => "Tokelau",
        'TO' => "Tonga",
        'TT' => "Trinidad and Tobago",
        'TN' => "Tunisia",
        'TR' => "Turkey",
        'TM' => "Turkmenistan",
        'TC' => "Turks and Caicos Islands",
        'TV' => "Tuvalu",
        'UG' => "Uganda",
        'UA' => "Ukraine",
        'AE' => "United Arab Emirates",
        'GB' => "United Kingdom",
        'US' => "United States",
        'UM' => "United States Minor Outlying Islands",
        'UY' => "Uruguay",
        'UZ' => "Uzbekistan",
        'VU' => "Vanuatu",
        'VE' => "Venezuela",
        'VN' => "Vietnam",
        'VG' => "Virgin Islands, British",
        'VI' => "Virgin Islands, U.S.",
        'WF' => "Wallis and Futuna",
        'EH' => "Western Sahara",
        'YE' => "Yemen",
        'ZM' => "Zambia",
        'ZW' => "Zimbabwe",
    ];
    public bool $is_select_list   = true;
    public      $region_countries = [
        'AU' => "Australia",
        'BE' => "Belgium",
        'BR' => "Brazil",
        'BG' => "Bulgaria",
        'CA' => "Canada",
        'CN' => "China",
        'CY' => "Cyprus",
        'CZ' => "Czech Republic",
        'DK' => "Denmark",
        'EG' => "Egypt",
        'FR' => "France",
        'DE' => "Germany",
        'GR' => "Greece",
        'HK' => "Hong Kong",
        'HU' => "Hungary",
        'IS' => "Iceland",
        'IN' => "India",
        'ID' => "Indonesia",
        'IE' => "Ireland",
        'IL' => "Israel",
        'IT' => "Italy",
        'JP' => "Japan",
        'MX' => "Mexico",
        'MA' => "Morocco",
        'NL' => "Netherlands",
        'NG' => "Nigeria",
        'NO' => "Norway",
        'PH' => "Philippines",
        'PL' => "Poland",
        'PT' => "Portugal",
        'RO' => "Romania",
        'RU' => "Russian Federation",
        'SK' => "Slovakia",
        'SI' => "Slovenia",
        'ZA' => "South Africa",
        'ES' => "Spain",
        'SE' => "Sweden",
        'CH' => "Switzerland",
        'TW' => "Taiwan",
        'TH' => "Thailand",
        'TR' => "Turkey",
        'UA' => "Ukraine",
        'AE' => "United Arab Emirates",
        'GB' => "United Kingdom",
        'US' => "United States",
        'VN' => "Vietnam",
    ];
    public      $regions          = [
        "Australia"            => [
            'AU-ACT' => "Australian Capital Territory",
            'AU-NSW' => "New South Wales",
            'AU-NT'  => "Northern Territory",
            'AU-QLD' => "Queensland",
            'AU-SA'  => "South Australia",
            'AU-TAS' => "Tasmania",
            'AU-VIC' => "Victoria",
            'AU-WA'  => "Western Australia",
        ],
        "Belgium"              => [
            'BE-VAN' => "Antwerpen",
            'BE-WBR' => "Brabant Wallon",
            'BE-BRU' => "Brussels-Capital Region",
            'BE-WHT' => "Hainaut",
            'BE-WLG' => "Liege",
            'BE-VLI' => "Limburg",
            'BE-WLX' => "Luxembourg, Luxemburg",
            'BE-WNA' => "Namur",
            'BE-VOV' => "Oost-Vlaanderen",
            'BE-VBR' => "Vlaams-Brabant",
            'BE-VWV' => "West-Vlaanderen",
        ],
        "Brazil"               => [
            'BR-AC' => "Acre",
            'BR-AL' => "Alagoas",
            'BR-AP' => "Amapá",
            'BR-AM' => "Amazonas",
            'BR-BA' => "Bahia",
            'BR-CE' => "Ceará",
            'BR-DF' => "Distrito Federal",
            'BR-ES' => "Espírito Santo",
            'BR-FN' => "Fernando de Noronha",
            'BR-GO' => "Goiás",
            'BR-MA' => "Maranhão",
            'BR-MT' => "Mato Grosso",
            'BR-MS' => "Mato Grosso do Sul",
            'BR-MG' => "Minas Gerais",
            'BR-PR' => "Paraná",
            'BR-PB' => "Paraíba",
            'BR-PA' => "Pará",
            'BR-PE' => "Pernambuco",
            'BR-PI' => "Piauí",
            'BR-RN' => "Rio Grande do Norte",
            'BR-RS' => "Rio Grande do Sul",
            'BR-RJ' => "Rio de Janeiro",
            'BR-RO' => "Rondônia",
            'BR-RR' => "Roraima",
            'BR-SC' => "Santa Catarina",
            'BR-SE' => "Sergipe",
            'BR-SP' => "São Paulo",
            'BR-TO' => "Tocantins",
        ],
        "Bulgaria"             => [
            'BG-01' => "Blagoevgrad",
            'BG-02' => "Burgas",
            'BG-08' => "Dobrich",
            'BG-07' => "Gabrovo",
            'BG-26' => "Haskovo",
            'BG-09' => "Kardzhali",
            'BG-10' => "Kyustendil",
            'BG-11' => "Lovech",
            'BG-12' => "Montana",
            'BG-13' => "Pazardzhik",
            'BG-14' => "Pernik",
            'BG-15' => "Pleven",
            'BG-16' => "Plovdiv",
            'BG-17' => "Razgrad",
            'BG-18' => "Ruse",
            'BG-27' => "Shumen",
            'BG-19' => "Silistra",
            'BG-20' => "Sliven",
            'BG-21' => "Smolyan",
            'BG-23' => "Sofia",
            'BG-22' => "Sofia-Grad",
            'BG-24' => "Stara Zagora",
            'BG-25' => "Targovishte",
            'BG-03' => "Varna",
            'BG-04' => "Veliko Tarnovo",
            'BG-05' => "Vidin",
            'BG-06' => "Vratsa",
            'BG-28' => "Yambol",
        ],
        "Canada"               => [
            'CA-AB' => "Alberta",
            'CA-BC' => "British Columbia",
            'CA-MB' => "Manitoba",
            'CA-NB' => "New Brunswick",
            'CA-NL' => "Newfoundland and Labrador",
            'CA-NT' => "Northwest Territories",
            'CA-NS' => "Nova Scotia",
            'CA-NU' => "Nunavut",
            'CA-ON' => "Ontario",
            'CA-PE' => "Prince Edward Island",
            'CA-QC' => "Quebec",
            'CA-SK' => "Saskatchewan",
            'CA-YT' => "Yukon Territory",
        ],
        "China"                => [
            'CN-34' => "Anhui",
            'CN-92' => "Aomen (Macau)",
            'CN-11' => "Beijing",
            'CN-50' => "Chongqing",
            'CN-35' => "Fujian",
            'CN-62' => "Gansu",
            'CN-44' => "Guangdong",
            'CN-45' => "Guangxi",
            'CN-52' => "Guizhou",
            'CN-46' => "Hainan",
            'CN-13' => "Hebei",
            'CN-23' => "Heilongjiang",
            'CN-41' => "Henan",
            'CN-42' => "Hubei",
            'CN-43' => "Hunan",
            'CN-32' => "Jiangsu",
            'CN-36' => "Jiangxi",
            'CN-22' => "Jilin",
            'CN-21' => "Liaoning",
            'CN-15' => "Nei Mongol",
            'CN-64' => "Ningxia",
            'CN-63' => "Qinghai",
            'CN-61' => "Shaanxi",
            'CN-37' => "Shandong",
            'CN-31' => "Shanghai",
            'CN-14' => "Shanxi",
            'CN-51' => "Sichuan",
            'CN-71' => "Taiwan",
            'CN-12' => "Tianjin",
            'CN-91' => "Xianggang (Hong-Kong)",
            'CN-65' => "Xinjiang",
            'CN-54' => "Xizang",
            'CN-53' => "Yunnan",
            'CN-33' => "Zhejiang",
        ],
        "Cyprus"               => [
            'CY-04' => "Ammóchostos",
            'CY-06' => "Kerýneia",
            'CY-01' => "Lefkosía",
            'CY-02' => "Lemesós",
            'CY-03' => "Lárnaka",
            'CY-05' => "Páfos",
        ],
        "Czech Republic"       => [
            'CZ-201' => "Benešov",
            'CZ-202' => "Beroun",
            'CZ-621' => "Blansko",
            'CZ-622' => "Brno-město",
            'CZ-623' => "Brno-venkov",
            'CZ-801' => "Bruntál",
            'CZ-624' => "Břeclav",
            'CZ-411' => "Cheb",
            'CZ-422' => "Chomutov",
            'CZ-531' => "Chrudim",
            'CZ-321' => "Domažlice",
            'CZ-421' => "Děčín",
            'CZ-802' => "Frýdek Místek",
            'CZ-611' => "Havlíčkův Brod",
            'CZ-625' => "Hodonín",
            'CZ-521' => "Hradec Králové",
            'CZ-512' => "Jablonec nad Nisou",
            'CZ-711' => "Jeseník",
            'CZ-612' => "Jihlava",
            'CZ-JM'  => "Jihomoravský kraj",
            'CZ-JC'  => "Jihočeský kraj",
            'CZ-313' => "Jindřichův Hradec",
            'CZ-522' => "Jičín",
            'CZ-KA'  => "Karlovarský kraj",
            'CZ-412' => "Karlovy Vary",
            'CZ-803' => "Karviná",
            'CZ-203' => "Kladno",
            'CZ-322' => "Klatovy",
            'CZ-204' => "Kolín",
            'CZ-721' => "Kromĕříž",
            'CZ-KR'  => "Královéhradecký kraj",
            'CZ-205' => "Kutná Hora",
            'CZ-513' => "Liberec",
            'CZ-LI'  => "Liberecký kraj",
            'CZ-423' => "Litoměřice",
            'CZ-424' => "Louny",
            'CZ-207' => "Mladá Boleslav",
            'CZ-MO'  => "Moravskoslezský kraj",
            'CZ-425' => "Most",
            'CZ-206' => "Mělník",
            'CZ-804' => "Nový Jičín",
            'CZ-208' => "Nymburk",
            'CZ-523' => "Náchod",
            'CZ-712' => "Olomouc",
            'CZ-OL'  => "Olomoucký kraj",
            'CZ-805' => "Opava",
            'CZ-806' => "Ostrava město",
            'CZ-532' => "Pardubice",
            'CZ-PA'  => "Pardubický kraj",
            'CZ-613' => "Pelhřimov",
            'CZ-324' => "Plzeň jih",
            'CZ-323' => "Plzeň město",
            'CZ-325' => "Plzeň sever",
            'CZ-PL'  => "Plzeňský kraj",
            'CZ-315' => "Prachatice",
            'CZ-101' => "Praha 1",
            'CZ-10A' => "Praha 10",
            'CZ-10B' => "Praha 11",
            'CZ-10C' => "Praha 12",
            'CZ-10D' => "Praha 13",
            'CZ-10E' => "Praha 14",
            'CZ-10F' => "Praha 15",
            'CZ-102' => "Praha 2",
            'CZ-103' => "Praha 3",
            'CZ-104' => "Praha 4",
            'CZ-105' => "Praha 5",
            'CZ-106' => "Praha 6",
            'CZ-107' => "Praha 7",
            'CZ-108' => "Praha 8",
            'CZ-109' => "Praha 9",
            'CZ-209' => "Praha východ",
            'CZ-20A' => "Praha západ",
            'CZ-PR'  => "Praha, hlavní město",
            'CZ-713' => "Prostĕjov",
            'CZ-314' => "Písek",
            'CZ-714' => "Přerov",
            'CZ-20B' => "Příbram",
            'CZ-20C' => "Rakovník",
            'CZ-326' => "Rokycany",
            'CZ-524' => "Rychnov nad Kněžnou",
            'CZ-514' => "Semily",
            'CZ-413' => "Sokolov",
            'CZ-316' => "Strakonice",
            'CZ-ST'  => "Středočeský kraj",
            'CZ-533' => "Svitavy",
            'CZ-327' => "Tachov",
            'CZ-426' => "Teplice",
            'CZ-525' => "Trutnov",
            'CZ-317' => "Tábor",
            'CZ-614' => "Třebíč",
            'CZ-722' => "Uherské Hradištĕ",
            'CZ-723' => "Vsetín",
            'CZ-VY'  => "Vysočina",
            'CZ-626' => "Vyškov",
            'CZ-724' => "Zlín",
            'CZ-ZL'  => "Zlínský kraj",
            'CZ-627' => "Znojmo",
            'CZ-US'  => "Ústecký kraj",
            'CZ-427' => "Ústí nad Labem",
            'CZ-534' => "Ústí nad Orlicí",
            'CZ-511' => "Česká Lípa",
            'CZ-311' => "České Budějovice",
            'CZ-312' => "Český Krumlov",
            'CZ-715' => "Šumperk",
            'CZ-615' => "Žd’ár nad Sázavou",
        ],
        "Denmark"              => [
            'DK-84' => "Hovedstaden",
            'DK-82' => "Midtjylland",
            'DK-81' => "Nordjylland",
            'DK-85' => "Sjælland",
            'DK-83' => "Syddanmark",
        ],
        "Egypt"                => [
            'EG-DK'  => "Ad Daqahlīyah",
            'EG-BA'  => "Al Bahr al Ahmar",
            'EG-BH'  => "Al Buhayrah",
            'EG-FYM' => "Al Fayyūm",
            'EG-GH'  => "Al Gharbīyah",
            'EG-ALX' => "Al Iskandarīyah",
            'EG-IS'  => "Al Ismā`īlīyah",
            'EG-GZ'  => "Al Jīzah",
            'EG-MN'  => "Al Minyā",
            'EG-MNF' => "Al Minūfīyah",
            'EG-KB'  => "Al Qalyūbīyah",
            'EG-C'   => "Al Qāhirah",
            'EG-WAD' => "Al Wādī al Jadīd",
            'EG-SUZ' => "As Suways",
            'EG-SU'  => "As Sādis min Uktūbar",
            'EG-SHR' => "Ash Sharqīyah",
            'EG-ASN' => "Aswān",
            'EG-AST' => "Asyūt",
            'EG-BNS' => "Banī Suwayf",
            'EG-PTS' => "Būr Sa`īd",
            'EG-DT'  => "Dumyāt",
            'EG-JS'  => "Janūb Sīnā'",
            'EG-KFS' => "Kafr ash Shaykh",
            'EG-MT'  => "Matrūh",
            'EG-KN'  => "Qinā",
            'EG-SIN' => "Shamal Sīnā'",
            'EG-SHG' => "Sūhāj",
            'EG-HU'  => "Ḩulwān",
        ],
        "France"               => [
            'FR-01' => "Ain",
            'FR-02' => "Aisne",
            'FR-03' => "Allier",
            'FR-06' => "Alpes-Maritimes",
            'FR-04' => "Alpes-de-Haute-Provence",
            'FR-A'  => "Alsace",
            'FR-B'  => "Aquitaine",
            'FR-08' => "Ardennes",
            'FR-07' => "Ardèche",
            'FR-09' => "Ariège",
            'FR-10' => "Aube",
            'FR-11' => "Aude",
            'FR-C'  => "Auvergne",
            'FR-12' => "Aveyron",
            'FR-67' => "Bas-Rhin",
            'FR-P'  => "Basse-Normandie",
            'FR-13' => "Bouches-du-Rhône",
            'FR-D'  => "Bourgogne",
            'FR-E'  => "Bretagne",
            'FR-14' => "Calvados",
            'FR-15' => "Cantal",
            'FR-F'  => "Centre",
            'FR-G'  => "Champagne-Ardenne",
            'FR-16' => "Charente",
            'FR-17' => "Charente-Maritime",
            'FR-18' => "Cher",
            'FR-CP' => "Clipperton",
            'FR-19' => "Corrèze",
            'FR-H'  => "Corse",
            'FR-2A' => "Corse-du-Sud",
            'FR-23' => "Creuse",
            'FR-21' => "Côte-d'Or",
            'FR-22' => "Côtes-d'Armor",
            'FR-79' => "Deux-Sèvres",
            'FR-24' => "Dordogne",
            'FR-25' => "Doubs",
            'FR-26' => "Drôme",
            'FR-91' => "Essonne",
            'FR-27' => "Eure",
            'FR-28' => "Eure-et-Loir",
            'FR-29' => "Finistère",
            'FR-I'  => "Franche-Comté",
            'FR-30' => "Gard",
            'FR-32' => "Gers",
            'FR-33' => "Gironde",
            'FR-GP' => "Guadeloupe",
            'FR-GF' => "Guyane",
            'FR-68' => "Haut-Rhin",
            'FR-2B' => "Haute-Corse",
            'FR-31' => "Haute-Garonne",
            'FR-43' => "Haute-Loire",
            'FR-52' => "Haute-Marne",
            'FR-Q'  => "Haute-Normandie",
            'FR-74' => "Haute-Savoie",
            'FR-70' => "Haute-Saône",
            'FR-87' => "Haute-Vienne",
            'FR-05' => "Hautes-Alpes",
            'FR-65' => "Hautes-Pyrénées",
            'FR-92' => "Hauts-de-Seine",
            'FR-34' => "Hérault",
            'FR-35' => "Ille-et-Vilaine",
            'FR-36' => "Indre",
            'FR-37' => "Indre-et-Loire",
            'FR-38' => "Isère",
            'FR-39' => "Jura",
            'FR-40' => "Landes",
            'FR-K'  => "Languedoc-Roussillon",
            'FR-L'  => "Limousin",
            'FR-41' => "Loir-et-Cher",
            'FR-42' => "Loire",
            'FR-44' => "Loire-Atlantique",
            'FR-45' => "Loiret",
            'FR-M'  => "Lorraine",
            'FR-46' => "Lot",
            'FR-47' => "Lot-et-Garonne",
            'FR-48' => "Lozère",
            'FR-49' => "Maine-et-Loire",
            'FR-50' => "Manche",
            'FR-51' => "Marne",
            'FR-MQ' => "Martinique",
            'FR-53' => "Mayenne",
            'FR-YT' => "Mayotte",
            'FR-54' => "Meurthe-et-Moselle",
            'FR-55' => "Meuse",
            'FR-N'  => "Midi-Pyrénées",
            'FR-56' => "Morbihan",
            'FR-57' => "Moselle",
            'FR-58' => "Nièvre",
            'FR-59' => "Nord",
            'FR-O'  => "Nord - Pas-de-Calais",
            'FR-NC' => "Nouvelle-Calédonie",
            'FR-60' => "Oise",
            'FR-61' => "Orne",
            'FR-75' => "Paris",
            'FR-62' => "Pas-de-Calais",
            'FR-R'  => "Pays de la Loire",
            'FR-S'  => "Picardie",
            'FR-T'  => "Poitou-Charentes",
            'FR-PF' => "Polynésie française",
            'FR-U'  => "Provence-Alpes-Côte d'Azur",
            'FR-63' => "Puy-de-Dôme",
            'FR-64' => "Pyrénées-Atlantiques",
            'FR-66' => "Pyrénées-Orientales",
            'FR-69' => "Rhône",
            'FR-V'  => "Rhône-Alpes",
            'FR-RE' => "Réunion",
            'FR-BL' => "Saint-Barthélemy",
            'FR-MF' => "Saint-Martin",
            'FR-PM' => "Saint-Pierre-et-Miquelon",
            'FR-72' => "Sarthe",
            'FR-73' => "Savoie",
            'FR-71' => "Saône-et-Loire",
            'FR-76' => "Seine-Maritime",
            'FR-93' => "Seine-Saint-Denis",
            'FR-77' => "Seine-et-Marne",
            'FR-80' => "Somme",
            'FR-81' => "Tarn",
            'FR-82' => "Tarn-et-Garonne",
            'FR-TF' => "Terres australes françaises",
            'FR-90' => "Territoire de Belfort",
            'FR-95' => "Val d'Oise",
            'FR-94' => "Val-de-Marne",
            'FR-83' => "Var",
            'FR-84' => "Vaucluse",
            'FR-85' => "Vendée",
            'FR-86' => "Vienne",
            'FR-88' => "Vosges",
            'FR-WF' => "Wallis-et-Futuna",
            'FR-89' => "Yonne",
            'FR-78' => "Yvelines",
            'FR-J'  => "Île-de-France",
        ],
        "Germany"              => [
            'DE-BW' => "Baden-Württemberg",
            'DE-BY' => "Bayern",
            'DE-BE' => "Berlin",
            'DE-BB' => "Brandenburg",
            'DE-HB' => "Bremen",
            'DE-HH' => "Hamburg",
            'DE-HE' => "Hessen",
            'DE-MV' => "Mecklenburg-Vorpommern",
            'DE-NI' => "Niedersachsen",
            'DE-NW' => "Nordrhein-Westfalen",
            'DE-RP' => "Rheinland-Pfalz",
            'DE-SL' => "Saarland",
            'DE-SN' => "Sachsen",
            'DE-ST' => "Sachsen-Anhalt",
            'DE-SH' => "Schleswig-Holstein",
            'DE-TH' => "Thüringen",
        ],
        "Greece"               => [
            'GR-13' => "Achaïa",
            'GR-69' => "Agio Oros",
            'GR-01' => "Aitolia kai Akarnania",
            'GR-A'  => "Anatoliki Makedonia kai Thraki",
            'GR-11' => "Argolida",
            'GR-12' => "Arkadia",
            'GR-31' => "Arta",
            'GR-A1' => "Attiki",
            'GR-64' => "Chalkidiki",
            'GR-94' => "Chania",
            'GR-85' => "Chios",
            'GR-81' => "Dodekanisos",
            'GR-52' => "Drama",
            'GR-G'  => "Dytiki Ellada",
            'GR-C'  => "Dytiki Makedonia",
            'GR-71' => "Evros",
            'GR-05' => "Evrytania",
            'GR-04' => "Evvoias",
            'GR-63' => "Florina",
            'GR-07' => "Fokida",
            'GR-06' => "Fthiotida",
            'GR-51' => "Grevena",
            'GR-14' => "Ileia",
            'GR-53' => "Imathia",
            'GR-33' => "Ioannina",
            'GR-F'  => "Ionia Nisia",
            'GR-D'  => "Ipeiros",
            'GR-91' => "Irakleio",
            'GR-41' => "Karditsa",
            'GR-56' => "Kastoria",
            'GR-55' => "Kavala",
            'GR-23' => "Kefallonia",
            'GR-B'  => "Kentriki Makedonia",
            'GR-22' => "Kerkyra",
            'GR-57' => "Kilkis",
            'GR-15' => "Korinthia",
            'GR-58' => "Kozani",
            'GR-M'  => "Kriti",
            'GR-82' => "Kyklades",
            'GR-16' => "Lakonia",
            'GR-42' => "Larisa",
            'GR-92' => "Lasithi",
            'GR-24' => "Lefkada",
            'GR-83' => "Lesvos",
            'GR-43' => "Magnisia",
            'GR-17' => "Messinia",
            'GR-L'  => "Notio Aigaio",
            'GR-59' => "Pella",
            'GR-J'  => "Peloponnisos",
            'GR-61' => "Pieria",
            'GR-34' => "Preveza",
            'GR-93' => "Rethymno",
            'GR-73' => "Rodopi",
            'GR-84' => "Samos",
            'GR-62' => "Serres",
            'GR-H'  => "Sterea Ellada",
            'GR-32' => "Thesprotia",
            'GR-E'  => "Thessalia",
            'GR-54' => "Thessaloniki",
            'GR-44' => "Trikala",
            'GR-03' => "Voiotia",
            'GR-K'  => "Voreio Aigaio",
            'GR-72' => "Xanthi",
            'GR-21' => "Zakynthos",
        ],
        "Hungary"              => [
            'HU-BA' => "Baranya",
            'HU-BZ' => "Borsod-Abaúj-Zemplén",
            'HU-BU' => "Budapest",
            'HU-BK' => "Bács-Kiskun",
            'HU-BE' => "Békés",
            'HU-BC' => "Békéscsaba",
            'HU-CS' => "Csongrád",
            'HU-DE' => "Debrecen",
            'HU-DU' => "Dunaújváros",
            'HU-EG' => "Eger",
            'HU-FE' => "Fejér",
            'HU-GY' => "Győr",
            'HU-GS' => "Győr-Moson-Sopron",
            'HU-HB' => "Hajdú-Bihar",
            'HU-HE' => "Heves",
            'HU-HV' => "Hódmezővásárhely",
            'HU-JN' => "Jász-Nagykun-Szolnok",
            'HU-KV' => "Kaposvár",
            'HU-KM' => "Kecskemét",
            'HU-KE' => "Komárom-Esztergom",
            'HU-MI' => "Miskolc",
            'HU-NK' => "Nagykanizsa",
            'HU-NY' => "Nyíregyháza",
            'HU-NO' => "Nógrád",
            'HU-PE' => "Pest",
            'HU-PS' => "Pécs",
            'HU-ST' => "Salgótarján",
            'HU-SO' => "Somogy",
            'HU-SN' => "Sopron",
            'HU-SZ' => "Szabolcs-Szatmár-Bereg",
            'HU-SD' => "Szeged",
            'HU-SS' => "Szekszárd",
            'HU-SK' => "Szolnok",
            'HU-SH' => "Szombathely",
            'HU-SF' => "Székesfehérvár",
            'HU-TB' => "Tatabánya",
            'HU-TO' => "Tolna",
            'HU-VA' => "Vas",
            'HU-VM' => "Veszprém",
            'HU-VE' => "Veszprém (county)",
            'HU-ZA' => "Zala",
            'HU-ZE' => "Zalaegerszeg",
            'HU-ER' => "Érd",
        ],
        "Iceland"              => [
            'IS-7' => "Austurland",
            'IS-1' => "Höfuðborgarsvæðið",
            'IS-6' => "Norðurland eystra",
            'IS-5' => "Norðurland vestra",
            'IS-0' => "Reykjavík",
            'IS-8' => "Suðurland",
            'IS-2' => "Suðurnes",
            'IS-4' => "Vestfirðir",
            'IS-3' => "Vesturland",
        ],
        "India"                => [
            'IN-AN' => "Andaman and Nicobar Islands",
            'IN-AP' => "Andhra Pradesh",
            'IN-AR' => "Arunāchal Pradesh",
            'IN-AS' => "Assam",
            'IN-BR' => "Bihār",
            'IN-CH' => "Chandīgarh",
            'IN-CT' => "Chhattīsgarh",
            'IN-DD' => "Damān and Diu",
            'IN-DL' => "Delhi",
            'IN-DN' => "Dādra and Nagar Haveli",
            'IN-GA' => "Goa",
            'IN-GJ' => "Gujarāt",
            'IN-HR' => "Haryāna",
            'IN-HP' => "Himāchal Pradesh",
            'IN-JK' => "Jammu and Kashmīr",
            'IN-JH' => "Jharkhand",
            'IN-KA' => "Karnātaka",
            'IN-KL' => "Kerala",
            'IN-LD' => "Lakshadweep",
            'IN-MP' => "Madhya Pradesh",
            'IN-MH' => "Mahārāshtra",
            'IN-MN' => "Manipur",
            'IN-ML' => "Meghālaya",
            'IN-MZ' => "Mizoram",
            'IN-NL' => "Nāgāland",
            'IN-OR' => "Orissa",
            'IN-PY' => "Pondicherry",
            'IN-PB' => "Punjab",
            'IN-RJ' => "Rājasthān",
            'IN-SK' => "Sikkim",
            'IN-TN' => "Tamil Nādu",
            'IN-TR' => "Tripura",
            'IN-UP' => "Uttar Pradesh",
            'IN-UL' => "Uttaranchal",
            'IN-WB' => "West Bengal",
        ],
        "Indonesia"            => [
            'ID-AC' => "Aceh",
            'ID-BA' => "Bali",
            'ID-BB' => "Bangka Belitung",
            'ID-BT' => "Banten",
            'ID-BE' => "Bengkulu",
            'ID-GO' => "Gorontalo",
            'ID-JK' => "Jakarta Raya",
            'ID-JA' => "Jambi",
            'ID-JW' => "Jawa",
            'ID-JB' => "Jawa Barat",
            'ID-JT' => "Jawa Tengah",
            'ID-JI' => "Jawa Timur",
            'ID-KA' => "Kalimantan",
            'ID-KB' => "Kalimantan Barat",
            'ID-KS' => "Kalimantan Selatan",
            'ID-KT' => "Kalimantan Tengah",
            'ID-KI' => "Kalimantan Timur",
            'ID-KR' => "Kepulauan Riau",
            'ID-LA' => "Lampung",
            'ID-MA' => "Maluku",
            'ID-MU' => "Maluku Utara",
            'ID-NU' => "Nusa Tenggara",
            'ID-NB' => "Nusa Tenggara Barat",
            'ID-NT' => "Nusa Tenggara Timur",
            'ID-PA' => "Papua",
            'ID-PB' => "Papua Barat",
            'ID-RI' => "Riau",
            'ID-SL' => "Sulawesi",
            'ID-SR' => "Sulawesi Barat",
            'ID-SN' => "Sulawesi Selatan",
            'ID-ST' => "Sulawesi Tengah",
            'ID-SG' => "Sulawesi Tenggara",
            'ID-SA' => "Sulawesi Utara",
            'ID-SM' => "Sumatera",
            'ID-SU' => "Sumatera Utara",
            'ID-SB' => "Sumatra Barat",
            'ID-SS' => "Sumatra Selatan",
            'ID-YO' => "Yogyakarta",
        ],
        "Ireland"              => [
            'IE-CW' => "Carlow",
            'IE-CN' => "Cavan",
            'IE-CE' => "Clare",
            'IE-C'  => "Connacht",
            'IE-CO' => "Cork",
            'IE-DL' => "Donegal",
            'IE-D'  => "Dublin",
            'IE-G'  => "Galway",
            'IE-KY' => "Kerry",
            'IE-KE' => "Kildare",
            'IE-KK' => "Kilkenny",
            'IE-LS' => "Laois",
            'IE-L'  => "Leinster",
            'IE-LM' => "Leitrim",
            'IE-LK' => "Limerick",
            'IE-LD' => "Longford",
            'IE-LH' => "Louth",
            'IE-MO' => "Mayo",
            'IE-MH' => "Meath",
            'IE-MN' => "Monaghan",
            'IE-M'  => "Munster",
            'IE-OY' => "Offaly",
            'IE-RN' => "Roscommon",
            'IE-SO' => "Sligo",
            'IE-TA' => "Tipperary",
            'IE-U'  => "Ulster",
            'IE-WD' => "Waterford",
            'IE-WH' => "Westmeath",
            'IE-WX' => "Wexford",
            'IE-WW' => "Wicklow",
        ],
        "Israel"               => [
            'IL-D'  => "HaDarom",
            'IL-M'  => "HaMerkaz",
            'IL-Z'  => "HaZafon",
            'IL-HA' => "Hefa",
            'IL-TA' => "Tel-Aviv",
            'IL-JM' => "Yerushalayim Al Quds",
        ],
        "Italy"                => [
            'IT-65' => "Abruzzo",
            'IT-AG' => "Agrigento",
            'IT-AL' => "Alessandria",
            'IT-AN' => "Ancona",
            'IT-AO' => "Aosta",
            'IT-AR' => "Arezzo",
            'IT-AP' => "Ascoli Piceno",
            'IT-AT' => "Asti",
            'IT-AV' => "Avellino",
            'IT-BA' => "Bari",
            'IT-BT' => "Barletta-Andria-Trani",
            'IT-77' => "Basilicata",
            'IT-BL' => "Belluno",
            'IT-BN' => "Benevento",
            'IT-BG' => "Bergamo",
            'IT-BI' => "Biella",
            'IT-BO' => "Bologna",
            'IT-BZ' => "Bolzano",
            'IT-BS' => "Brescia",
            'IT-BR' => "Brindisi",
            'IT-CA' => "Cagliari",
            'IT-78' => "Calabria",
            'IT-CL' => "Caltanissetta",
            'IT-72' => "Campania",
            'IT-CB' => "Campobasso",
            'IT-CI' => "Carbonia-Iglesias",
            'IT-CE' => "Caserta",
            'IT-CT' => "Catania",
            'IT-CZ' => "Catanzaro",
            'IT-CH' => "Chieti",
            'IT-CO' => "Como",
            'IT-CS' => "Cosenza",
            'IT-CR' => "Cremona",
            'IT-KR' => "Crotone",
            'IT-CN' => "Cuneo",
            'IT-45' => "Emilia-Romagna",
            'IT-EN' => "Enna",
            'IT-FM' => "Fermo",
            'IT-FE' => "Ferrara",
            'IT-FI' => "Firenze",
            'IT-FG' => "Foggia",
            'IT-FC' => "Forlì-Cesena",
            'IT-36' => "Friuli-Venezia Giulia",
            'IT-FR' => "Frosinone",
            'IT-GE' => "Genova",
            'IT-GO' => "Gorizia",
            'IT-GR' => "Grosseto",
            'IT-IM' => "Imperia",
            'IT-IS' => "Isernia",
            'IT-AQ' => "L'Aquila",
            'IT-SP' => "La Spezia",
            'IT-LT' => "Latina",
            'IT-62' => "Lazio",
            'IT-LE' => "Lecce",
            'IT-LC' => "Lecco",
            'IT-42' => "Liguria",
            'IT-LI' => "Livorno",
            'IT-LO' => "Lodi",
            'IT-25' => "Lombardia",
            'IT-LU' => "Lucca",
            'IT-MC' => "Macerata",
            'IT-MN' => "Mantova",
            'IT-57' => "Marche",
            'IT-MS' => "Massa-Carrara",
            'IT-MT' => "Matera",
            'IT-VS' => "Medio Campidano",
            'IT-ME' => "Messina",
            'IT-MI' => "Milano",
            'IT-MO' => "Modena",
            'IT-67' => "Molise",
            'IT-MB' => "Monza e Brianza",
            'IT-NA' => "Napoli",
            'IT-NO' => "Novara",
            'IT-NU' => "Nuoro",
            'IT-OG' => "Ogliastra",
            'IT-OT' => "Olbia-Tempio",
            'IT-OR' => "Oristano",
            'IT-PD' => "Padova",
            'IT-PA' => "Palermo",
            'IT-PR' => "Parma",
            'IT-PV' => "Pavia",
            'IT-PG' => "Perugia",
            'IT-PU' => "Pesaro e Urbino",
            'IT-PE' => "Pescara",
            'IT-PC' => "Piacenza",
            'IT-21' => "Piemonte",
            'IT-PI' => "Pisa",
            'IT-PT' => "Pistoia",
            'IT-PN' => "Pordenone",
            'IT-PZ' => "Potenza",
            'IT-PO' => "Prato",
            'IT-75' => "Puglia",
            'IT-RG' => "Ragusa",
            'IT-RA' => "Ravenna",
            'IT-RC' => "Reggio Calabria",
            'IT-RE' => "Reggio Emilia",
            'IT-RI' => "Rieti",
            'IT-RN' => "Rimini",
            'IT-RM' => "Roma",
            'IT-RO' => "Rovigo",
            'IT-SA' => "Salerno",
            'IT-88' => "Sardegna",
            'IT-SS' => "Sassari",
            'IT-SV' => "Savona",
            'IT-82' => "Sicilia",
            'IT-SI' => "Siena",
            'IT-SR' => "Siracusa",
            'IT-SO' => "Sondrio",
            'IT-TA' => "Taranto",
            'IT-TE' => "Teramo",
            'IT-TR' => "Terni",
            'IT-TO' => "Torino",
            'IT-52' => "Toscana",
            'IT-TP' => "Trapani",
            'IT-32' => "Trentino-Alto Adige",
            'IT-TN' => "Trento",
            'IT-TV' => "Treviso",
            'IT-TS' => "Trieste",
            'IT-UD' => "Udine",
            'IT-55' => "Umbria",
            'IT-23' => "Valle d'Aosta",
            'IT-VA' => "Varese",
            'IT-34' => "Veneto",
            'IT-VE' => "Venezia",
            'IT-VB' => "Verbano-Cusio-Ossola",
            'IT-VC' => "Vercelli",
            'IT-VR' => "Verona",
            'IT-VV' => "Vibo Valentia",
            'IT-VI' => "Vicenza",
            'IT-VT' => "Viterbo",
        ],
        "Japan"                => [
            'JP-23' => "Aichi",
            'JP-05' => "Akita",
            'JP-02' => "Aomori",
            'JP-12' => "Chiba",
            'JP-38' => "Ehime",
            'JP-18' => "Fukui",
            'JP-40' => "Fukuoka",
            'JP-07' => "Fukushima",
            'JP-21' => "Gifu",
            'JP-10' => "Gunma",
            'JP-34' => "Hiroshima",
            'JP-01' => "Hokkaido",
            'JP-28' => "Hyogo",
            'JP-08' => "Ibaraki",
            'JP-17' => "Ishikawa",
            'JP-03' => "Iwate",
            'JP-37' => "Kagawa",
            'JP-46' => "Kagoshima",
            'JP-14' => "Kanagawa",
            'JP-39' => "Kochi",
            'JP-43' => "Kumamoto",
            'JP-26' => "Kyoto",
            'JP-24' => "Mie",
            'JP-04' => "Miyagi",
            'JP-45' => "Miyazaki",
            'JP-20' => "Nagano",
            'JP-42' => "Nagasaki",
            'JP-29' => "Nara",
            'JP-15' => "Niigata",
            'JP-44' => "Oita",
            'JP-33' => "Okayama",
            'JP-47' => "Okinawa",
            'JP-27' => "Osaka",
            'JP-41' => "Saga",
            'JP-11' => "Saitama",
            'JP-25' => "Shiga",
            'JP-32' => "Shimane",
            'JP-22' => "Shizuoka",
            'JP-09' => "Tochigi",
            'JP-36' => "Tokushima",
            'JP-13' => "Tokyo",
            'JP-31' => "Tottori",
            'JP-16' => "Toyama",
            'JP-30' => "Wakayama",
            'JP-06' => "Yamagata",
            'JP-35' => "Yamaguchi",
            'JP-19' => "Yamanashi",
        ],
        "Mexico"               => [
            'MX-AGU' => "Aguascalientes",
            'MX-BCN' => "Baja California",
            'MX-BCS' => "Baja California Sur",
            'MX-CAM' => "Campeche",
            'MX-CHP' => "Chiapas",
            'MX-CHH' => "Chihuahua",
            'MX-COA' => "Coahuila",
            'MX-COL' => "Colima",
            'MX-DIF' => "Distrito Federal (Mexico City)",
            'MX-DUR' => "Durango",
            'MX-GUA' => "Guanajuato",
            'MX-GRO' => "Guerrero",
            'MX-HID' => "Hidalgo",
            'MX-JAL' => "Jalisco",
            'MX-MIC' => "Michoacán",
            'MX-MOR' => "Morelos",
            'MX-MEX' => "México",
            'MX-NAY' => "Nayarit",
            'MX-NLE' => "Nuevo León",
            'MX-OAX' => "Oaxaca",
            'MX-PUE' => "Puebla",
            'MX-QUE' => "Querétaro",
            'MX-ROO' => "Quintana Roo",
            'MX-SLP' => "San Luis Potosí",
            'MX-SIN' => "Sinaloa",
            'MX-SON' => "Sonora",
            'MX-TAB' => "Tabasco",
            'MX-TAM' => "Tamaulipas",
            'MX-TLA' => "Tlaxcala",
            'MX-VER' => "Veracruz",
            'MX-YUC' => "Yucatán",
            'MX-ZAC' => "Zacatecas",
        ],
        "Morocco"              => [
            'MA-AGD' => "Agadir-Ida-Outanane",
            'MA-HAO' => "Al Haouz",
            'MA-HOC' => "Al Hoceïma",
            'MA-AOU' => "Aousserd",
            'MA-ASZ' => "Assa-Zag",
            'MA-AZI' => "Azilal",
            'MA-BES' => "Ben Slimane",
            'MA-BEM' => "Beni Mellal",
            'MA-BER' => "Berkane",
            'MA-BOD' => "Boujdour (EH)",
            'MA-BOM' => "Boulemane",
            'MA-CAS' => "Casablanca [Dar el Beïda]",
            'MA-09'  => "Chaouia-Ouardigha",
            'MA-CHE' => "Chefchaouen",
            'MA-CHI' => "Chichaoua",
            'MA-CHT' => "Chtouka-Ait Baha",
            'MA-10'  => "Doukhala-Abda",
            'MA-HAJ' => "El Hajeb",
            'MA-JDI' => "El Jadida",
            'MA-ERR' => "Errachidia",
            'MA-ESM' => "Es Smara (EH)",
            'MA-ESI' => "Essaouira",
            'MA-FAH' => "Fahs-Beni Makada",
            'MA-FIG' => "Figuig",
            'MA-05'  => "Fès-Boulemane",
            'MA-FES' => "Fès-Dar-Dbibegh",
            'MA-02'  => "Gharb-Chrarda-Beni Hssen",
            'MA-08'  => "Grand Casablanca",
            'MA-GUE' => "Guelmim",
            'MA-14'  => "Guelmim-Es Smara",
            'MA-IFR' => "Ifrane",
            'MA-INE' => "Inezgane-Ait Melloul",
            'MA-JRA' => "Jrada",
            'MA-KES' => "Kelaat es Sraghna",
            'MA-KHE' => "Khemisaet",
            'MA-KHN' => "Khenifra",
            'MA-KHO' => "Khouribga",
            'MA-KEN' => "Kénitra",
            'MA-04'  => "L'Oriental",
            'MA-LAR' => "Larache",
            'MA-LAA' => "Laâyoune (EH)",
            'MA-15'  => "Laâyoune-Boujdour-Sakia el Hamra",
            'MA-MMD' => "Marrakech-Medina",
            'MA-MMN' => "Marrakech-Menara",
            'MA-11'  => "Marrakech-Tensift-Al Haouz",
            'MA-MEK' => "Meknès",
            'MA-06'  => "Meknès-Tafilalet",
            'MA-MOH' => "Mohammadia",
            'MA-MOU' => "Moulay Yacoub",
            'MA-MED' => "Médiouna",
            'MA-NAD' => "Nador",
            'MA-NOU' => "Nouaceur",
            'MA-OUA' => "Ouarzazate",
            'MA-OUD' => "Oued ed Dahab (EH)",
            'MA-16'  => "Oued ed Dahab-Lagouira",
            'MA-OUJ' => "Oujda-Angad",
            'MA-RAB' => "Rabat",
            'MA-07'  => "Rabat-Salé-Zemmour-Zaer",
            'MA-SAF' => "Safi",
            'MA-SAL' => "Salé",
            'MA-SEF' => "Sefrou",
            'MA-SET' => "Settat",
            'MA-SYB' => "Sidi Youssef Ben Ali",
            'MA-SIK' => "Sidl Kacem",
            'MA-SKH' => "Skhirate-Témara",
            'MA-13'  => "Sous-Massa-Draa",
            'MA-12'  => "Tadla-Azilal",
            'MA-TNT' => "Tan-Tan",
            'MA-TNG' => "Tanger-Assilah",
            'MA-01'  => "Tanger-Tétouan",
            'MA-TAO' => "Taounate",
            'MA-TAI' => "Taourirt",
            'MA-TAR' => "Taroudant",
            'MA-TAT' => "Tata",
            'MA-TAZ' => "Taza",
            'MA-03'  => "Taza-Al Hoceima-Taounate",
            'MA-TIZ' => "Tiznit",
            'MA-TET' => "Tétouan",
            'MA-ZAG' => "Zagora",
        ],
        "Netherlands"          => [
            'NL-DR' => "Drenthe",
            'NL-FL' => "Flevoland",
            'NL-FR' => "Friesland",
            'NL-GE' => "Gelderland",
            'NL-GR' => "Groningen",
            'NL-LI' => "Limburg",
            'NL-NB' => "Noord-Brabant",
            'NL-NH' => "Noord-Holland",
            'NL-OV' => "Overijssel",
            'NL-UT' => "Utrecht",
            'NL-ZE' => "Zeeland",
            'NL-ZH' => "Zuid-Holland",
        ],
        "Nigeria"              => [
            'NG-AB' => "Abia",
            'NG-FC' => "Abuja Capital Territory",
            'NG-AD' => "Adamawa",
            'NG-AK' => "Akwa Ibom",
            'NG-AN' => "Anambra",
            'NG-BA' => "Bauchi",
            'NG-BY' => "Bayelsa",
            'NG-BE' => "Benue",
            'NG-BO' => "Borno",
            'NG-CR' => "Cross River",
            'NG-DE' => "Delta",
            'NG-EB' => "Ebonyi",
            'NG-ED' => "Edo",
            'NG-EK' => "Ekiti",
            'NG-EN' => "Enugu",
            'NG-GO' => "Gombe",
            'NG-IM' => "Imo",
            'NG-JI' => "Jigawa",
            'NG-KD' => "Kaduna",
            'NG-KN' => "Kano",
            'NG-KT' => "Katsina",
            'NG-KE' => "Kebbi",
            'NG-KO' => "Kogi",
            'NG-KW' => "Kwara",
            'NG-LA' => "Lagos",
            'NG-NA' => "Nassarawa",
            'NG-NI' => "Niger, Níger",
            'NG-OG' => "Ogun",
            'NG-ON' => "Ondo",
            'NG-OS' => "Osun",
            'NG-OY' => "Oyo",
            'NG-PL' => "Plateau",
            'NG-RI' => "Rivers",
            'NG-SO' => "Sokoto",
            'NG-TA' => "Taraba",
            'NG-YO' => "Yobe",
            'NG-ZA' => "Zamfara",
        ],
        "Norway"               => [
            'NO-02' => "Akershus",
            'NO-09' => "Aust-Agder",
            'NO-06' => "Buskerud",
            'NO-20' => "Finnmark",
            'NO-04' => "Hedmark",
            'NO-12' => "Hordaland",
            'NO-22' => "Jan Mayen",
            'NO-15' => "Møre og Romsdal",
            'NO-17' => "Nord-Trøndelag",
            'NO-18' => "Nordland",
            'NO-05' => "Oppland",
            'NO-03' => "Oslo",
            'NO-11' => "Rogaland",
            'NO-14' => "Sogn og Fjordane",
            'NO-21' => "Svalbard",
            'NO-16' => "Sør-Trøndelag",
            'NO-08' => "Telemark",
            'NO-19' => "Troms",
            'NO-10' => "Vest-Agder",
            'NO-07' => "Vestfold",
            'NO-01' => "Østfold",
        ],
        "Philippines"          => [
            'PH-ABR' => "Abra",
            'PH-AGN' => "Agusan del Norte",
            'PH-AGS' => "Agusan del Sur",
            'PH-AKL' => "Aklan",
            'PH-ALB' => "Albay",
            'PH-ANT' => "Antique",
            'PH-APA' => "Apayao",
            'PH-AUR' => "Aurora",
            'PH-14'  => "Autonomous Region in Muslim Mindanao (ARMM)",
            'PH-BAS' => "Basilan",
            'PH-BTN' => "Batanes",
            'PH-BTG' => "Batangas",
            'PH-BAN' => "Batasn",
            'PH-BEN' => "Benguet",
            'PH-05'  => "Bicol (Region V)",
            'PH-BIL' => "Biliran",
            'PH-BOH' => "Bohol",
            'PH-BUK' => "Bukidnon",
            'PH-BUL' => "Bulacan",
            'PH-40'  => "CALABARZON (Region IV-A)",
            'PH-CAG' => "Cagayan",
            'PH-02'  => "Cagayan Valley (Region II)",
            'PH-CAN' => "Camarines Norte",
            'PH-CAS' => "Camarines Sur",
            'PH-CAM' => "Camiguin",
            'PH-CAP' => "Capiz",
            'PH-13'  => "Caraga (Region XIII)",
            'PH-CAT' => "Catanduanes",
            'PH-CAV' => "Cavite",
            'PH-CEB' => "Cebu",
            'PH-03'  => "Central Luzon (Region III)",
            'PH-07'  => "Central Visayas (Region VII)",
            'PH-COM' => "Compostela Valley",
            'PH-15'  => "Cordillera Administrative Region (CAR)",
            'PH-11'  => "Davao (Region XI)",
            'PH-DAO' => "Davao Oriental",
            'PH-DAV' => "Davao del Norte",
            'PH-DAS' => "Davao del Sur",
            'PH-DIN' => "Dinagat Islands",
            'PH-EAS' => "Eastern Samar",
            'PH-08'  => "Eastern Visayas (Region VIII)",
            'PH-GUI' => "Guimaras",
            'PH-IFU' => "Ifugao",
            'PH-01'  => "Ilocos (Region I)",
            'PH-ILN' => "Ilocos Norte",
            'PH-ILS' => "Ilocos Sur",
            'PH-ILI' => "Iloilo",
            'PH-ISA' => "Isabela",
            'PH-KAL' => "Kalinga-Apayso",
            'PH-LUN' => "La Union",
            'PH-LAG' => "Laguna",
            'PH-LAN' => "Lanao del Norte",
            'PH-LAS' => "Lanao del Sur",
            'PH-LEY' => "Leyte",
            'PH-41'  => "MIMAROPA (Region IV-B)",
            'PH-MAG' => "Maguindanao",
            'PH-MAD' => "Marinduque",
            'PH-MAS' => "Masbate",
            'PH-MDC' => "Mindoro Occidental",
            'PH-MDR' => "Mindoro Oriental",
            'PH-MSC' => "Misamis Occidental",
            'PH-MSR' => "Misamis Oriental",
            'PH-MOU' => "Mountain Province",
            'PH-00'  => "National Capital Region",
            'PH-NEC' => "Negroe Occidental",
            'PH-NER' => "Negros Oriental",
            'PH-NCO' => "North Cotabato",
            'PH-10'  => "Northern Mindanao (Region X)",
            'PH-NSA' => "Northern Samar",
            'PH-NUE' => "Nueva Ecija",
            'PH-NUV' => "Nueva Vizcaya",
            'PH-PLW' => "Palawan",
            'PH-PAM' => "Pampanga",
            'PH-PAN' => "Pangasinan",
            'PH-QUE' => "Quezon",
            'PH-QUI' => "Quirino",
            'PH-RIZ' => "Rizal",
            'PH-ROM' => "Romblon",
            'PH-SAR' => "Sarangani",
            'PH-SIG' => "Siquijor",
            'PH-12'  => "Soccsksargen (Region XII)",
            'PH-SOR' => "Sorsogon",
            'PH-SCO' => "South Cotabato",
            'PH-SLE' => "Southern Leyte",
            'PH-SUK' => "Sultan Kudarat",
            'PH-SLU' => "Sulu",
            'PH-SUN' => "Surigao del Norte",
            'PH-SUR' => "Surigao del Sur",
            'PH-TAR' => "Tarlac",
            'PH-TAW' => "Tawi-Tawi",
            'PH-WSA' => "Western Samar",
            'PH-06'  => "Western Visayas (Region VI)",
            'PH-ZMB' => "Zambales",
            'PH-09'  => "Zamboanga Peninsula (Region IX)",
            'PH-ZSI' => "Zamboanga Sibugay",
            'PH-ZAN' => "Zamboanga del Norte",
            'PH-ZAS' => "Zamboanga del Sur",
        ],
        "Poland"               => [
            'PL-DS' => "Dolnośląskie",
            'PL-KP' => "Kujawsko-pomorskie",
            'PL-LU' => "Lubelskie",
            'PL-LB' => "Lubuskie",
            'PL-MZ' => "Mazowieckie",
            'PL-MA' => "Małopolskie",
            'PL-OP' => "Opolskie",
            'PL-PK' => "Podkarpackie",
            'PL-PD' => "Podlaskie",
            'PL-PM' => "Pomorskie",
            'PL-WN' => "Warmińsko-mazurskie",
            'PL-WP' => "Wielkopolskie",
            'PL-ZP' => "Zachodniopomorskie",
            'PL-LD' => "Łódzkie",
            'PL-SL' => "Śląskie",
            'PL-SK' => "Świętokrzyskie",
        ],
        "Portugal"             => [
            'PT-01' => "Aveiro",
            'PT-02' => "Beja",
            'PT-03' => "Braga",
            'PT-04' => "Bragança",
            'PT-05' => "Castelo Branco",
            'PT-06' => "Coimbra",
            'PT-08' => "Faro",
            'PT-09' => "Guarda",
            'PT-10' => "Leiria",
            'PT-11' => "Lisboa",
            'PT-12' => "Portalegre",
            'PT-13' => "Porto",
            'PT-30' => "Região Autónoma da Madeira",
            'PT-20' => "Região Autónoma dos Açores",
            'PT-14' => "Santarém",
            'PT-15' => "Setúbal",
            'PT-16' => "Viana do Castelo",
            'PT-17' => "Vila Real",
            'PT-18' => "Viseu",
            'PT-07' => "Évora",
        ],
        "Romania"              => [
            'RO-AB' => "Alba",
            'RO-AR' => "Arad",
            'RO-AG' => "Argeș",
            'RO-BC' => "Bacău",
            'RO-BH' => "Bihor",
            'RO-BN' => "Bistrița-Năsăud",
            'RO-BT' => "Botoșani",
            'RO-BV' => "Brașov",
            'RO-BR' => "Brăila",
            'RO-B'  => "București",
            'RO-BZ' => "Buzău",
            'RO-CS' => "Caraș-Severin",
            'RO-CJ' => "Cluj",
            'RO-CT' => "Constanța",
            'RO-CV' => "Covasna",
            'RO-CL' => "Călărași",
            'RO-DJ' => "Dolj",
            'RO-DB' => "Dâmbovița",
            'RO-GL' => "Galați",
            'RO-GR' => "Giurgiu",
            'RO-GJ' => "Gorj",
            'RO-HR' => "Harghita",
            'RO-HD' => "Hunedoara",
            'RO-IL' => "Ialomița",
            'RO-IS' => "Iași",
            'RO-IF' => "Ilfov",
            'RO-MM' => "Maramureș",
            'RO-MH' => "Mehedinți",
            'RO-MS' => "Mureș",
            'RO-NT' => "Neamț",
            'RO-OT' => "Olt",
            'RO-PH' => "Prahova",
            'RO-SM' => "Satu Mare",
            'RO-SB' => "Sibiu",
            'RO-SV' => "Suceava",
            'RO-SJ' => "Sălaj",
            'RO-TR' => "Teleorman",
            'RO-TM' => "Timiș",
            'RO-TL' => "Tulcea",
            'RO-VS' => "Vaslui",
            'RO-VN' => "Vrancea",
            'RO-VL' => "Vâlcea",
        ],
        "Russian Federation"   => [
            'RU-AD'  => "Adygeya, Respublika",
            'RU-AL'  => "Altay, Respublika",
            'RU-ALT' => "Altayskiy kray",
            'RU-AMU' => "Amurskaya oblast'",
            'RU-ARK' => "Arkhangel'skaya oblast'",
            'RU-AST' => "Astrakhanskaya oblast'",
            'RU-BA'  => "Bashkortostan, Respublika",
            'RU-BEL' => "Belgorodskaya oblast'",
            'RU-BRY' => "Bryanskaya oblast'",
            'RU-BU'  => "Buryatiya, Respublika",
            'RU-CE'  => "Chechenskaya Respublika",
            'RU-CHE' => "Chelyabinskaya oblast'",
            'RU-CHU' => "Chukotskiy avtonomnyy okrug",
            'RU-CU'  => "Chuvashskaya Respublika",
            'RU-DA'  => "Dagestan, Respublika",
            'RU-IRK' => "Irkutiskaya oblast'",
            'RU-IVA' => "Ivanovskaya oblast'",
            'RU-KB'  => "Kabardino-Balkarskaya Respublika",
            'RU-KGD' => "Kaliningradskaya oblast'",
            'RU-KL'  => "Kalmykiya, Respublika",
            'RU-KLU' => "Kaluzhskaya oblast'",
            'RU-KAM' => "Kamchatskiy kray",
            'RU-KC'  => "Karachayevo-Cherkesskaya Respublika",
            'RU-KR'  => "Kareliya, Respublika",
            'RU-KEM' => "Kemerovskaya oblast'",
            'RU-KHA' => "Khabarovskiy kray",
            'RU-KK'  => "Khakasiya, Respublika",
            'RU-KHM' => "Khanty-Mansiysky avtonomnyy okrug-Yugra",
            'RU-KIR' => "Kirovskaya oblast'",
            'RU-KO'  => "Komi, Respublika",
            'RU-KOS' => "Kostromskaya oblast'",
            'RU-KDA' => "Krasnodarskiy kray",
            'RU-KYA' => "Krasnoyarskiy kray",
            'RU-KGN' => "Kurganskaya oblast'",
            'RU-KRS' => "Kurskaya oblast'",
            'RU-LEN' => "Leningradskaya oblast'",
            'RU-LIP' => "Lipetskaya oblast'",
            'RU-MAG' => "Magadanskaya oblast'",
            'RU-ME'  => "Mariy El, Respublika",
            'RU-MO'  => "Mordoviya, Respublika",
            'RU-MOS' => "Moskovskaya oblast'",
            'RU-MOW' => "Moskva",
            'RU-MUR' => "Murmanskaya oblast'",
            'RU-NEN' => "Nenetskiy avtonomnyy okrug",
            'RU-NIZ' => "Nizhegorodskaya oblast'",
            'RU-NGR' => "Novgorodskaya oblast'",
            'RU-NVS' => "Novosibirskaya oblast'",
            'RU-OMS' => "Omskaya oblast'",
            'RU-ORE' => "Orenburgskaya oblast'",
            'RU-ORL' => "Orlovskaya oblast'",
            'RU-PNZ' => "Penzenskaya oblast'",
            'RU-PER' => "Permskiy kray",
            'RU-PRI' => "Primorskiy kray",
            'RU-PSK' => "Pskovskaya oblast'",
            'RU-IN'  => "Respublika Ingushetiya",
            'RU-ROS' => "Rostovskaya oblast'",
            'RU-RYA' => "Ryazanskaya oblast'",
            'RU-SA'  => "Sakha, Respublika [Yakutiya]",
            'RU-SAK' => "Sakhalinskaya oblast'",
            'RU-SAM' => "Samaraskaya oblast'",
            'RU-SPE' => "Sankt-Peterburg",
            'RU-SAR' => "Saratovskaya oblast'",
            'RU-SE'  => "Severnaya Osetiya-Alaniya, Respublika",
            'RU-SMO' => "Smolenskaya oblast'",
            'RU-STA' => "Stavropol'skiy kray",
            'RU-SVE' => "Sverdlovskaya oblast'",
            'RU-TAM' => "Tambovskaya oblast'",
            'RU-TA'  => "Tatarstan, Respublika",
            'RU-TOM' => "Tomskaya oblast'",
            'RU-TUL' => "Tul'skaya oblast'",
            'RU-TVE' => "Tverskaya oblast'",
            'RU-TYU' => "Tyumenskaya oblast'",
            'RU-TY'  => "Tyva, Respublika [Tuva]",
            'RU-UD'  => "Udmurtskaya Respublika",
            'RU-ULY' => "Ul'yanovskaya oblast'",
            'RU-VLA' => "Vladimirskaya oblast'",
            'RU-VGG' => "Volgogradskaya oblast'",
            'RU-VLG' => "Vologodskaya oblast'",
            'RU-VOR' => "Voronezhskaya oblast'",
            'RU-YAN' => "Yamalo-Nenetskiy avtonomnyy okrug",
            'RU-YAR' => "Yaroslavskaya oblast'",
            'RU-YEV' => "Yevreyskaya avtonomnaya oblast'",
            'RU-ZAB' => "Zabajkal'skij kraj",
        ],
        "Slovakia"             => [
            'SK-BC' => "Banskobystrický kraj",
            'SK-BL' => "Bratislavský kraj",
            'SK-KI' => "Košický kraj",
            'SK-NI' => "Nitriansky kraj",
            'SK-PV' => "Prešovský kraj",
            'SK-TC' => "Trenčiansky kraj",
            'SK-TA' => "Trnavský kraj",
            'SK-ZI' => "Žilinský kraj",
        ],
        "Slovenia"             => [
            'SI-001' => "Ajdovščina",
            'SI-195' => "Apače",
            'SI-002' => "Beltinci",
            'SI-148' => "Benedikt",
            'SI-149' => "Bistrica ob Sotli",
            'SI-003' => "Bled",
            'SI-150' => "Bloke",
            'SI-004' => "Bohinj",
            'SI-005' => "Borovnica",
            'SI-006' => "Bovec",
            'SI-151' => "Braslovče",
            'SI-007' => "Brda",
            'SI-008' => "Brezovica",
            'SI-009' => "Brežice",
            'SI-152' => "Cankova",
            'SI-011' => "Celje",
            'SI-012' => "Cerklje na Gorenjskem",
            'SI-013' => "Cerknica",
            'SI-014' => "Cerkno",
            'SI-153' => "Cerkvenjak",
            'SI-196' => "Cirkulane",
            'SI-018' => "Destrnik",
            'SI-019' => "Divača",
            'SI-154' => "Dobje",
            'SI-020' => "Dobrepolje",
            'SI-155' => "Dobrna",
            'SI-021' => "Dobrova-Polhov Gradec",
            'SI-156' => "Dobrovnik/Dobronak",
            'SI-022' => "Dol pri Ljubljani",
            'SI-157' => "Dolenjske Toplice",
            'SI-023' => "Domžale",
            'SI-024' => "Dornava",
            'SI-025' => "Dravograd",
            'SI-026' => "Duplek",
            'SI-027' => "Gorenja vas-Poljane",
            'SI-028' => "Gorišnica",
            'SI-207' => "Gorje",
            'SI-029' => "Gornja Radgona",
            'SI-030' => "Gornji Grad",
            'SI-031' => "Gornji Petrovci",
            'SI-158' => "Grad",
            'SI-032' => "Grosuplje",
            'SI-159' => "Hajdina",
            'SI-161' => "Hodoš/Hodos",
            'SI-162' => "Horjul",
            'SI-160' => "Hoče-Slivnica",
            'SI-034' => "Hrastnik",
            'SI-035' => "Hrpelje-Kozina",
            'SI-036' => "Idrija",
            'SI-037' => "Ig",
            'SI-038' => "Ilirska Bistrica",
            'SI-039' => "Ivančna Gorica",
            'SI-040' => "Izola/Isola",
            'SI-041' => "Jesenice",
            'SI-163' => "Jezersko",
            'SI-042' => "Juršinci",
            'SI-043' => "Kamnik",
            'SI-044' => "Kanal",
            'SI-045' => "Kidričevo",
            'SI-046' => "Kobarid",
            'SI-047' => "Kobilje",
            'SI-049' => "Komen",
            'SI-164' => "Komenda",
            'SI-050' => "Koper/Capodistria",
            'SI-197' => "Kosanjevica na Krki",
            'SI-165' => "Kostel",
            'SI-051' => "Kozje",
            'SI-048' => "Kočevje",
            'SI-052' => "Kranj",
            'SI-053' => "Kranjska Gora",
            'SI-166' => "Križevci",
            'SI-054' => "Krško",
            'SI-055' => "Kungota",
            'SI-056' => "Kuzma",
            'SI-057' => "Laško",
            'SI-058' => "Lenart",
            'SI-059' => "Lendava/Lendva",
            'SI-060' => "Litija",
            'SI-061' => "Ljubljana",
            'SI-062' => "Ljubno",
            'SI-063' => "Ljutomer",
            'SI-208' => "Log-Dragomer",
            'SI-064' => "Logatec",
            'SI-167' => "Lovrenc na Pohorju",
            'SI-065' => "Loška dolina",
            'SI-066' => "Loški Potok",
            'SI-068' => "Lukovica",
            'SI-067' => "Luče",
            'SI-069' => "Majšperk",
            'SI-198' => "Makole",
            'SI-070' => "Maribor",
            'SI-168' => "Markovci",
            'SI-071' => "Medvode",
            'SI-072' => "Mengeš",
            'SI-073' => "Metlika",
            'SI-074' => "Mežica",
            'SI-169' => "Miklavž na Dravskem polju",
            'SI-075' => "Miren-Kostanjevica",
            'SI-170' => "Mirna Peč",
            'SI-076' => "Mislinja",
            'SI-199' => "Mokronog-Trebelno",
            'SI-078' => "Moravske Toplice",
            'SI-077' => "Moravče",
            'SI-079' => "Mozirje",
            'SI-080' => "Murska Sobota",
            'SI-081' => "Muta",
            'SI-082' => "Naklo",
            'SI-083' => "Nazarje",
            'SI-084' => "Nova Gorica",
            'SI-085' => "Novo mesto",
            'SI-086' => "Odranci",
            'SI-171' => "Oplotnica",
            'SI-087' => "Ormož",
            'SI-088' => "Osilnica",
            'SI-089' => "Pesnica",
            'SI-090' => "Piran/Pirano",
            'SI-091' => "Pivka",
            'SI-172' => "Podlehnik",
            'SI-093' => "Podvelka",
            'SI-092' => "Podčetrtek",
            'SI-200' => "Poljčane",
            'SI-173' => "Polzela",
            'SI-094' => "Postojna",
            'SI-174' => "Prebold",
            'SI-095' => "Preddvor",
            'SI-175' => "Prevalje",
            'SI-096' => "Ptuj",
            'SI-097' => "Puconci",
            'SI-100' => "Radenci",
            'SI-099' => "Radeče",
            'SI-101' => "Radlje ob Dravi",
            'SI-102' => "Radovljica",
            'SI-103' => "Ravne na Koroškem",
            'SI-176' => "Razkrižje",
            'SI-098' => "Rače-Fram",
            'SI-201' => "Renče-Vogrsko",
            'SI-209' => "Rečica ob Savinji",
            'SI-104' => "Ribnica",
            'SI-177' => "Ribnica na Pohorju",
            'SI-107' => "Rogatec",
            'SI-106' => "Rogaška Slatina",
            'SI-105' => "Rogašovci",
            'SI-108' => "Ruše",
            'SI-178' => "Selnica ob Dravi",
            'SI-109' => "Semič",
            'SI-110' => "Sevnica",
            'SI-111' => "Sežana",
            'SI-112' => "Slovenj Gradec",
            'SI-113' => "Slovenska Bistrica",
            'SI-114' => "Slovenske Konjice",
            'SI-179' => "Sodražica",
            'SI-180' => "Solčava",
            'SI-202' => "Središče ob Dravi",
            'SI-115' => "Starče",
            'SI-203' => "Straža",
            'SI-181' => "Sveta Ana",
            'SI-182' => "Sveta Andraž v Slovenskih Goricah",
            'SI-204' => "Sveta Trojica v Slovenskih Goricah",
            'SI-116' => "Sveti Jurij",
            'SI-210' => "Sveti Jurij v Slovenskih Goricah",
            'SI-205' => "Sveti Tomaž",
            'SI-184' => "Tabor",
            'SI-010' => "Tišina",
            'SI-128' => "Tolmin",
            'SI-129' => "Trbovlje",
            'SI-130' => "Trebnje",
            'SI-185' => "Trnovska vas",
            'SI-186' => "Trzin",
            'SI-131' => "Tržič",
            'SI-132' => "Turnišče",
            'SI-133' => "Velenje",
            'SI-187' => "Velika Polana",
            'SI-134' => "Velike Lašče",
            'SI-188' => "Veržej",
            'SI-135' => "Videm",
            'SI-136' => "Vipava",
            'SI-137' => "Vitanje",
            'SI-138' => "Vodice",
            'SI-139' => "Vojnik",
            'SI-189' => "Vransko",
            'SI-140' => "Vrhnika",
            'SI-141' => "Vuzenica",
            'SI-142' => "Zagorje ob Savi",
            'SI-143' => "Zavrč",
            'SI-144' => "Zreče",
            'SI-015' => "Črenšovci",
            'SI-016' => "Črna na Koroškem",
            'SI-017' => "Črnomelj",
            'SI-033' => "Šalovci",
            'SI-183' => "Šempeter-Vrtojba",
            'SI-118' => "Šentilj",
            'SI-119' => "Šentjernej",
            'SI-120' => "Šentjur",
            'SI-211' => "Šentrupert",
            'SI-117' => "Šenčur",
            'SI-121' => "Škocjan",
            'SI-122' => "Škofja Loka",
            'SI-123' => "Škofljica",
            'SI-124' => "Šmarje pri Jelšah",
            'SI-206' => "Šmarjeske Topliče",
            'SI-125' => "Šmartno ob Paki",
            'SI-194' => "Šmartno pri Litiji",
            'SI-126' => "Šoštanj",
            'SI-127' => "Štore",
            'SI-190' => "Žalec",
            'SI-146' => "Železniki",
            'SI-191' => "Žetale",
            'SI-147' => "Žiri",
            'SI-192' => "Žirovnica",
            'SI-193' => "Žužemberk",
        ],
        "South Africa"         => [
            'ZA-EC' => "Eastern Cape",
            'ZA-FS' => "Free State",
            'ZA-GT' => "Gauteng",
            'ZA-NL' => "Kwazulu-Natal",
            'ZA-LP' => "Limpopo",
            'ZA-MP' => "Mpumalanga",
            'ZA-NW' => "North-West (South Africa)",
            'ZA-NC' => "Northern Cape",
            'ZA-WC' => "Western Cape",
        ],
        "Spain"                => [
            'ES-C'  => "A Coruña",
            'ES-AB' => "Albacete",
            'ES-A'  => "Alicante",
            'ES-AL' => "Almería",
            'ES-AN' => "Andalucía",
            'ES-AR' => "Aragón",
            'ES-O'  => "Asturias",
            'ES-AS' => "Asturias, Principado de",
            'ES-BA' => "Badajoz",
            'ES-PM' => "Balears",
            'ES-B'  => "Barcelona",
            'ES-BU' => "Burgos",
            'ES-CN' => "Canarias",
            'ES-S'  => "Cantabria",
            'ES-CS' => "Castellón",
            'ES-CL' => "Castilla y León",
            'ES-CM' => "Castilla-La Mancha",
            'ES-CT' => "Catalunya",
            'ES-CE' => "Ceuta",
            'ES-CR' => "Ciudad Real",
            'ES-CU' => "Cuenca",
            'ES-CC' => "Cáceres",
            'ES-CA' => "Cádiz",
            'ES-CO' => "Córdoba",
            'ES-EX' => "Extremadura",
            'ES-GA' => "Galicia",
            'ES-GI' => "Girona",
            'ES-GR' => "Granada",
            'ES-GU' => "Guadalajara",
            'ES-SS' => "Guipúzcoa / Gipuzkoa",
            'ES-H'  => "Huelva",
            'ES-HU' => "Huesca",
            'ES-IB' => "Illes Balears",
            'ES-J'  => "Jaén",
            'ES-LO' => "La Rioja",
            'ES-GC' => "Las Palmas",
            'ES-LE' => "León",
            'ES-L'  => "Lleida",
            'ES-LU' => "Lugo",
            'ES-M'  => "Madrid",
            'ES-MD' => "Madrid, Comunidad de",
            'ES-ML' => "Melilla",
            'ES-MU' => "Murcia",
            'ES-MC' => "Murcia, Región de",
            'ES-MA' => "Málaga",
            'ES-NA' => "Navarra / Nafarroa",
            'ES-NC' => "Navarra, Comunidad Foral de / Nafarroako Foru Komunitatea",
            'ES-OR' => "Ourense",
            'ES-P'  => "Palencia",
            'ES-PV' => "País Vasco / Euskal Herria",
            'ES-PO' => "Pontevedra",
            'ES-SA' => "Salamanca",
            'ES-TF' => "Santa Cruz de Tenerife",
            'ES-SG' => "Segovia",
            'ES-SE' => "Sevilla",
            'ES-SO' => "Soria",
            'ES-T'  => "Tarragona",
            'ES-TE' => "Teruel",
            'ES-TO' => "Toledo",
            'ES-V'  => "Valencia / València",
            'ES-VC' => "Valenciana, Comunidad / Valenciana, Comunitat",
            'ES-VA' => "Valladolid",
            'ES-BI' => "Vizcayaa / Bizkaia",
            'ES-ZA' => "Zamora",
            'ES-Z'  => "Zaragoza",
            'ES-VI' => "Álava",
            'ES-AV' => "Ávila",
        ],
        "Sweden"               => [
            'SE-K'  => "Blekinge län",
            'SE-W'  => "Dalarnas län",
            'SE-I'  => "Gotlands län",
            'SE-X'  => "Gävleborgs län",
            'SE-N'  => "Hallands län",
            'SE-Z'  => "Jämtlande län",
            'SE-F'  => "Jönköpings län",
            'SE-H'  => "Kalmar län",
            'SE-G'  => "Kronobergs län",
            'SE-BD' => "Norrbottens län",
            'SE-M'  => "Skåne län",
            'SE-AB' => "Stockholms län",
            'SE-D'  => "Södermanlands län",
            'SE-C'  => "Uppsala län",
            'SE-S'  => "Värmlands län",
            'SE-AC' => "Västerbottens län",
            'SE-Y'  => "Västernorrlands län",
            'SE-U'  => "Västmanlands län",
            'SE-O'  => "Västra Götalands län",
            'SE-T'  => "Örebro län",
            'SE-E'  => "Östergötlands län",
        ],
        "Switzerland"          => [
            'CH-AG' => "Aargau",
            'CH-AR' => "Appenzell Ausserrhoden",
            'CH-AI' => "Appenzell Innerrhoden",
            'CH-BL' => "Basel-Landschaft",
            'CH-BS' => "Basel-Stadt",
            'CH-BE' => "Bern",
            'CH-FR' => "Fribourg",
            'CH-GE' => "Genève",
            'CH-GL' => "Glarus",
            'CH-GR' => "Graubünden",
            'CH-JU' => "Jura",
            'CH-LU' => "Luzern",
            'CH-NE' => "Neuchâtel",
            'CH-NW' => "Nidwalden",
            'CH-OW' => "Obwalden",
            'CH-SG' => "Sankt Gallen",
            'CH-SH' => "Schaffhausen",
            'CH-SZ' => "Schwyz",
            'CH-SO' => "Solothurn",
            'CH-TG' => "Thurgau",
            'CH-TI' => "Ticino",
            'CH-UR' => "Uri",
            'CH-VS' => "Valais",
            'CH-VD' => "Vaud",
            'CH-ZG' => "Zug",
            'CH-ZH' => "Zürich",
        ],
        "Taiwan"               => [
            'TW-CHA' => "Changhua",
            'TW-CYI' => "Chiay City",
            'TW-CYQ' => "Chiayi",
            'TW-HSQ' => "Hsinchu",
            'TW-HSZ' => "Hsinchui City",
            'TW-HUA' => "Hualien",
            'TW-ILA' => "Ilan",
            'TW-KHQ' => "Kaohsiung",
            'TW-KHH' => "Kaohsiung City",
            'TW-KEE' => "Keelung City",
            'TW-MIA' => "Miaoli",
            'TW-NAN' => "Nantou",
            'TW-PEN' => "Penghu",
            'TW-PIF' => "Pingtung",
            'TW-TXQ' => "Taichung",
            'TW-TXG' => "Taichung City",
            'TW-TNQ' => "Tainan",
            'TW-TNN' => "Tainan City",
            'TW-TPQ' => "Taipei",
            'TW-TPE' => "Taipei City",
            'TW-TTT' => "Taitung",
            'TW-TAO' => "Taoyuan",
            'TW-YUN' => "Yunlin",
        ],
        "Thailand"             => [
            'TH-37' => "Amnat Charoen",
            'TH-15' => "Ang Thong",
            'TH-31' => "Buri Ram",
            'TH-24' => "Chachoengsao",
            'TH-18' => "Chai Nat",
            'TH-36' => "Chaiyaphum",
            'TH-22' => "Chanthaburi",
            'TH-50' => "Chiang Mai",
            'TH-57' => "Chiang Rai",
            'TH-20' => "Chon Buri",
            'TH-86' => "Chumphon",
            'TH-46' => "Kalasin",
            'TH-62' => "Kamphaeng Phet",
            'TH-71' => "Kanchanaburi",
            'TH-40' => "Khon Kaen",
            'TH-81' => "Krabi",
            'TH-10' => "Krung Thep Maha Nakhon Bangkok",
            'TH-52' => "Lampang",
            'TH-51' => "Lamphun",
            'TH-42' => "Loei",
            'TH-16' => "Lop Buri",
            'TH-58' => "Mae Hong Son",
            'TH-44' => "Maha Sarakham",
            'TH-49' => "Mukdahan",
            'TH-26' => "Nakhon Nayok",
            'TH-73' => "Nakhon Pathom",
            'TH-48' => "Nakhon Phanom",
            'TH-30' => "Nakhon Ratchasima",
            'TH-60' => "Nakhon Sawan",
            'TH-80' => "Nakhon Si Thammarat",
            'TH-55' => "Nan",
            'TH-96' => "Narathiwat",
            'TH-39' => "Nong Bua Lam Phu",
            'TH-43' => "Nong Khai",
            'TH-12' => "Nonthaburi",
            'TH-13' => "Pathum Thani",
            'TH-94' => "Pattani",
            'TH-82' => "Phangnga",
            'TH-93' => "Phatthalung",
            'TH-S'  => "Phatthaya",
            'TH-56' => "Phayao",
            'TH-67' => "Phetchabun",
            'TH-76' => "Phetchaburi",
            'TH-66' => "Phichit",
            'TH-65' => "Phitsanulok",
            'TH-14' => "Phra Nakhon Si Ayutthaya",
            'TH-54' => "Phrae",
            'TH-83' => "Phuket",
            'TH-25' => "Prachin Buri",
            'TH-77' => "Prachuap Khiri Khan",
            'TH-85' => "Ranong",
            'TH-70' => "Ratchaburi",
            'TH-21' => "Rayong",
            'TH-45' => "Roi Et",
            'TH-27' => "Sa Kaeo",
            'TH-47' => "Sakon Nakhon",
            'TH-11' => "Samut Prakan",
            'TH-74' => "Samut Sakhon",
            'TH-75' => "Samut Songkhram",
            'TH-19' => "Saraburi",
            'TH-91' => "Satun",
            'TH-33' => "Si Sa Ket",
            'TH-17' => "Sing Buri",
            'TH-90' => "Songkhla",
            'TH-64' => "Sukhothai",
            'TH-72' => "Suphan Buri",
            'TH-84' => "Surat Thani",
            'TH-32' => "Surin",
            'TH-63' => "Tak",
            'TH-92' => "Trang",
            'TH-23' => "Trat",
            'TH-34' => "Ubon Ratchathani",
            'TH-41' => "Udon Thani",
            'TH-61' => "Uthai Thani",
            'TH-53' => "Uttaradit",
            'TH-95' => "Yala",
            'TH-35' => "Yasothon",
        ],
        "Turkey"               => [
            'TR-01' => "Adana",
            'TR-02' => "Adıyaman",
            'TR-03' => "Afyon",
            'TR-68' => "Aksaray",
            'TR-05' => "Amasya",
            'TR-06' => "Ankara",
            'TR-07' => "Antalya",
            'TR-75' => "Ardahan",
            'TR-08' => "Artvin",
            'TR-09' => "Aydın",
            'TR-04' => "Ağrı",
            'TR-10' => "Balıkesir",
            'TR-74' => "Bartın",
            'TR-72' => "Batman",
            'TR-69' => "Bayburt",
            'TR-11' => "Bilecik",
            'TR-12' => "Bingöl",
            'TR-13' => "Bitlis",
            'TR-14' => "Bolu",
            'TR-15' => "Burdur",
            'TR-16' => "Bursa",
            'TR-20' => "Denizli",
            'TR-21' => "Diyarbakır",
            'TR-81' => "Düzce",
            'TR-22' => "Edirne",
            'TR-23' => "Elazığ",
            'TR-24' => "Erzincan",
            'TR-25' => "Erzurum",
            'TR-26' => "Eskişehir",
            'TR-27' => "Gaziantep",
            'TR-28' => "Giresun",
            'TR-29' => "Gümüşhane",
            'TR-30' => "Hakkâri",
            'TR-31' => "Hatay",
            'TR-32' => "Isparta",
            'TR-76' => "Iğdır",
            'TR-46' => "Kahramanmaraş",
            'TR-78' => "Karabük",
            'TR-70' => "Karaman",
            'TR-36' => "Kars",
            'TR-37' => "Kastamonu",
            'TR-38' => "Kayseri",
            'TR-79' => "Kilis",
            'TR-41' => "Kocaeli",
            'TR-42' => "Konya",
            'TR-43' => "Kütahya",
            'TR-39' => "Kırklareli",
            'TR-71' => "Kırıkkale",
            'TR-40' => "Kırşehir",
            'TR-44' => "Malatya",
            'TR-45' => "Manisa",
            'TR-47' => "Mardin",
            'TR-48' => "Muğla",
            'TR-49' => "Muş",
            'TR-50' => "Nevşehir",
            'TR-51' => "Niğde",
            'TR-52' => "Ordu",
            'TR-80' => "Osmaniye",
            'TR-53' => "Rize",
            'TR-54' => "Sakarya",
            'TR-55' => "Samsun",
            'TR-56' => "Siirt",
            'TR-57' => "Sinop",
            'TR-58' => "Sivas",
            'TR-59' => "Tekirdağ",
            'TR-60' => "Tokat",
            'TR-61' => "Trabzon",
            'TR-62' => "Tunceli",
            'TR-64' => "Uşak",
            'TR-65' => "Van",
            'TR-77' => "Yalova",
            'TR-66' => "Yozgat",
            'TR-67' => "Zonguldak",
            'TR-17' => "Çanakkale",
            'TR-18' => "Çankırı",
            'TR-19' => "Çorum",
            'TR-34' => "İstanbul",
            'TR-35' => "İzmir",
            'TR-33' => "İçel",
            'TR-63' => "Şanlıurfa",
            'TR-73' => "Şırnak",
        ],
        "Ukraine"              => [
            'UA-71' => "Cherkas'ka Oblast'",
            'UA-74' => "Chernihivs'ka Oblast'",
            'UA-77' => "Chernivets'ka Oblast'",
            'UA-12' => "Dnipropetrovs'ka Oblast'",
            'UA-14' => "Donets'ka Oblast'",
            'UA-26' => "Ivano-Frankivs'ka Oblast'",
            'UA-63' => "Kharkivs'ka Oblast'",
            'UA-65' => "Khersons'ka Oblast'",
            'UA-68' => "Khmel'nyts'ka Oblast'",
            'UA-35' => "Kirovohrads'ka Oblast'",
            'UA-32' => "Kyïvs'ka Oblast'",
            'UA-30' => "Kyïvs'ka mis'ka rada",
            'UA-46' => "L'vivs'ka Oblast'",
            'UA-09' => "Luhans'ka Oblast'",
            'UA-48' => "Mykolaïvs'ka Oblast'",
            'UA-51' => "Odes'ka Oblast'",
            'UA-53' => "Poltavs'ka Oblast'",
            'UA-43' => "Respublika Krym",
            'UA-56' => "Rivnens'ka Oblast'",
            'UA-40' => "Sevastopol",
            'UA-59' => "Sums 'ka Oblast'",
            'UA-61' => "Ternopil's'ka Oblast'",
            'UA-05' => "Vinnyts'ka Oblast'",
            'UA-07' => "Volyns'ka Oblast'",
            'UA-21' => "Zakarpats'ka Oblast'",
            'UA-23' => "Zaporiz'ka Oblast'",
            'UA-18' => "Zhytomyrs'ka Oblast'",
        ],
        "United Arab Emirates" => [
            'AE-AJ' => "'Ajmān",
            'AE-AZ' => "Abū Ȥaby [Abu Dhabi]",
            'AE-FU' => "Al Fujayrah",
            'AE-SH' => "Ash Shāriqah",
            'AE-DU' => "Dubayy",
            'AE-RK' => "Ra’s al Khaymah",
            'AE-UQ' => "Umm al Qaywayn",
        ],
        "United Kingdom"       => [
            'GB-ABE' => "Aberdeen City",
            'GB-ABD' => "Aberdeenshire",
            'GB-ANS' => "Angus",
            'GB-ANT' => "Antrim",
            'GB-ARD' => "Ards",
            'GB-AGB' => "Argyll and Bute",
            'GB-ARM' => "Armagh",
            'GB-BLA' => "Ballymena",
            'GB-BLY' => "Ballymoney",
            'GB-BNB' => "Banbridge",
            'GB-BDG' => "Barking and Dagenham",
            'GB-BNE' => "Barnet",
            'GB-BNS' => "Barnsley",
            'GB-BAS' => "Bath and North East Somerset",
            'GB-BDF' => "Bedford",
            'GB-BFS' => "Belfast",
            'GB-BEX' => "Bexley",
            'GB-BIR' => "Birmingham",
            'GB-BBD' => "Blackburn with Darwen",
            'GB-BPL' => "Blackpool",
            'GB-BGW' => "Blaenau Gwent",
            'GB-BOL' => "Bolton",
            'GB-BMH' => "Bournemouth",
            'GB-BRC' => "Bracknell Forest",
            'GB-BRD' => "Bradford",
            'GB-BEN' => "Brent",
            'GB-BGE' => "Bridgend (Pen-y-bont ar Ogwr)",
            'GB-BNH' => "Brighton and Hove",
            'GB-BST' => "Bristol, City of",
            'GB-BRY' => "Bromley",
            'GB-BKM' => "Buckinghamshire",
            'GB-BUR' => "Bury",
            'GB-CAY' => "Caerphilly (Caerffili)",
            'GB-CLD' => "Calderdale",
            'GB-CAM' => "Cambridgeshire",
            'GB-CMD' => "Camden",
            'GB-CRF' => "Cardiff (Caerdydd)",
            'GB-CMN' => "Carmarthenshire (Sir Gaerfyrddin)",
            'GB-CKF' => "Carrickfergus",
            'GB-CSR' => "Castlereagh",
            'GB-CBF' => "Central Bedfordshire",
            'GB-CGN' => "Ceredigion (Sir Ceredigion)",
            'GB-CHE' => "Cheshire East",
            'GB-CHW' => "Cheshire West and Chester",
            'GB-CLK' => "Clackmannanshire",
            'GB-CLR' => "Coleraine",
            'GB-CWY' => "Conwy",
            'GB-CKT' => "Cookstown",
            'GB-CON' => "Cornwall",
            'GB-COV' => "Coventry",
            'GB-CGV' => "Craigavon",
            'GB-CRY' => "Croydon",
            'GB-CMA' => "Cumbria",
            'GB-DAL' => "Darlington",
            'GB-DEN' => "Denbighshire (Sir Ddinbych)",
            'GB-DER' => "Derby",
            'GB-DBY' => "Derbyshire",
            'GB-DRY' => "Derry",
            'GB-DEV' => "Devon",
            'GB-DNC' => "Doncaster",
            'GB-DOR' => "Dorset",
            'GB-DOW' => "Down",
            'GB-DUD' => "Dudley",
            'GB-DGY' => "Dumfries and Galloway",
            'GB-DND' => "Dundee City",
            'GB-DGN' => "Dungannon",
            'GB-DUR' => "Durham",
            'GB-EAL' => "Ealing",
            'GB-EAY' => "East Ayrshire",
            'GB-EDU' => "East Dunbartonshire",
            'GB-ELN' => "East Lothian",
            'GB-ERW' => "East Renfrewshire",
            'GB-ERY' => "East Riding of Yorkshire",
            'GB-ESX' => "East Sussex",
            'GB-EDH' => "Edinburgh, City of",
            'GB-ELS' => "Eilean Siar",
            'GB-ENF' => "Enfield",
            'GB-ENG' => "England",
            'GB-EAW' => "England and Wales",
            'GB-ESS' => "Essex",
            'GB-FAL' => "Falkirk",
            'GB-FER' => "Fermanagh",
            'GB-FIF' => "Fife",
            'GB-FLN' => "Flintshire (Sir y Fflint)",
            'GB-GAT' => "Gateshead",
            'GB-GLG' => "Glasgow City",
            'GB-GLS' => "Gloucestershire",
            'GB-GBN' => "Great Britain",
            'GB-GRE' => "Greenwich",
            'GB-GWN' => "Gwynedd",
            'GB-HCK' => "Hackney",
            'GB-HAL' => "Halton",
            'GB-HMF' => "Hammersmith and Fulham",
            'GB-HAM' => "Hampshire",
            'GB-HRY' => "Haringey",
            'GB-HRW' => "Harrow",
            'GB-HPL' => "Hartlepool",
            'GB-HAV' => "Havering",
            'GB-HEF' => "Herefordshire",
            'GB-HRT' => "Hertfordshire",
            'GB-HLD' => "Highland",
            'GB-HIL' => "Hillingdon",
            'GB-HNS' => "Hounslow",
            'GB-IVC' => "Inverclyde",
            'GB-AGY' => "Isle of Anglesey (Sir Ynys Môn)",
            'GB-IOW' => "Isle of Wight",
            'GB-ISL' => "Islington",
            'GB-KEC' => "Kensington and Chelsea",
            'GB-KEN' => "Kent",
            'GB-KHL' => "Kingston upon Hull",
            'GB-KTT' => "Kingston upon Thames",
            'GB-KIR' => "Kirklees",
            'GB-KWL' => "Knowsley",
            'GB-LBH' => "Lambeth",
            'GB-LAN' => "Lancashire",
            'GB-LRN' => "Larne",
            'GB-LDS' => "Leeds",
            'GB-LCE' => "Leicester",
            'GB-LEC' => "Leicestershire",
            'GB-LEW' => "Lewisham",
            'GB-LMV' => "Limavady",
            'GB-LIN' => "Lincolnshire",
            'GB-LSB' => "Lisburn",
            'GB-LIV' => "Liverpool",
            'GB-LND' => "London, City of",
            'GB-LUT' => "Luton",
            'GB-MFT' => "Magherafelt",
            'GB-MAN' => "Manchester",
            'GB-MDW' => "Medway",
            'GB-MTY' => "Merthyr Tydfil (Merthyr Tudful)",
            'GB-MRT' => "Merton",
            'GB-MDB' => "Middlesbrough",
            'GB-MLN' => "Midlothian",
            'GB-MIK' => "Milton Keynes",
            'GB-MON' => "Monmouthshire (Sir Fynwy)",
            'GB-MRY' => "Moray",
            'GB-MYL' => "Moyle",
            'GB-NTL' => "Neath Port Talbot (Castell-nedd Port Talbot)",
            'GB-NET' => "Newcastle upon Tyne",
            'GB-NWM' => "Newham",
            'GB-NWP' => "Newport (Casnewydd)",
            'GB-NYM' => "Newry and Mourne",
            'GB-NTA' => "Newtownabbey",
            'GB-NFK' => "Norfolk",
            'GB-NAY' => "North Ayrshire",
            'GB-NDN' => "North Down",
            'GB-NEL' => "North East Lincolnshire",
            'GB-NLK' => "North Lanarkshire",
            'GB-NLN' => "North Lincolnshire",
            'GB-NSM' => "North Somerset",
            'GB-NTY' => "North Tyneside",
            'GB-NYK' => "North Yorkshire",
            'GB-NTH' => "Northamptonshire",
            'GB-NIR' => "Northern Ireland",
            'GB-NBL' => "Northumberland",
            'GB-NGM' => "Nottingham",
            'GB-NTT' => "Nottinghamshire",
            'GB-OLD' => "Oldham",
            'GB-OMH' => "Omagh",
            'GB-ORK' => "Orkney Islands",
            'GB-OXF' => "Oxfordshire",
            'GB-PEM' => "Pembrokeshire (Sir Benfro)",
            'GB-PKN' => "Perth and Kinross",
            'GB-PTE' => "Peterborough",
            'GB-PLY' => "Plymouth",
            'GB-POL' => "Poole",
            'GB-POR' => "Portsmouth",
            'GB-POW' => "Powys",
            'GB-RDG' => "Reading",
            'GB-RDB' => "Redbridge",
            'GB-RCC' => "Redcar and Cleveland",
            'GB-RFW' => "Renfrewshire",
            'GB-RCT' => "Rhondda, Cynon, Taff (Rhondda, Cynon, Taf)",
            'GB-RIC' => "Richmond upon Thames",
            'GB-RCH' => "Rochdale",
            'GB-ROT' => "Rotherham",
            'GB-RUT' => "Rutland",
            'GB-SLF' => "Salford",
            'GB-SAW' => "Sandwell",
            'GB-SCT' => "Scotland",
            'GB-SCB' => "Scottish Borders, The",
            'GB-SFT' => "Sefton",
            'GB-SHF' => "Sheffield",
            'GB-ZET' => "Shetland Islands",
            'GB-SHR' => "Shropshire",
            'GB-SLG' => "Slough",
            'GB-SOL' => "Solihull",
            'GB-SOM' => "Somerset",
            'GB-SAY' => "South Ayrshire",
            'GB-SGC' => "South Gloucestershire",
            'GB-SLK' => "South Lanarkshire",
            'GB-STY' => "South Tyneside",
            'GB-STH' => "Southampton",
            'GB-SOS' => "Southend-on-Sea",
            'GB-SWK' => "Southwark",
            'GB-SHN' => "St. Helens",
            'GB-STS' => "Staffordshire",
            'GB-STG' => "Stirling",
            'GB-SKP' => "Stockport",
            'GB-STT' => "Stockton-on-Tees",
            'GB-STE' => "Stoke-on-Trent",
            'GB-STB' => "Strabane",
            'GB-SFK' => "Suffolk",
            'GB-SND' => "Sunderland",
            'GB-SRY' => "Surrey",
            'GB-STN' => "Sutton",
            'GB-SWA' => "Swansea (Abertawe)",
            'GB-SWD' => "Swindon",
            'GB-TAM' => "Tameside",
            'GB-TFW' => "Telford and Wrekin",
            'GB-THR' => "Thurrock",
            'GB-TOB' => "Torbay",
            'GB-TOF' => "Torfaen (Tor-faen)",
            'GB-TWH' => "Tower Hamlets",
            'GB-TRF' => "Trafford",
            'GB-UKM' => "United Kingdom",
            'GB-VGL' => "Vale of Glamorgan, The (Bro Morgannwg)",
            'GB-WKF' => "Wakefield",
            'GB-WLS' => "Wales",
            'GB-WLL' => "Walsall",
            'GB-WFT' => "Waltham Forest",
            'GB-WND' => "Wandsworth",
            'GB-WRT' => "Warrington",
            'GB-WAR' => "Warwickshire",
            'GB-WBK' => "West Berkshire",
            'GB-WDU' => "West Dunbartonshire",
            'GB-WLN' => "West Lothian",
            'GB-WSX' => "West Sussex",
            'GB-WSM' => "Westminster",
            'GB-WGN' => "Wigan",
            'GB-WNM' => "Windsor and Maidenhead",
            'GB-WRL' => "Wirral",
            'GB-WOK' => "Wokingham",
            'GB-WLV' => "Wolverhampton",
            'GB-WOR' => "Worcestershire",
            'GB-WRX' => "Wrexham (Wrecsam)",
            'GB-YOR' => "York",
        ],
        "United States"        => [
            'US-AL' => "Alabama",
            'US-AK' => "Alaska",
            'US-AS' => "American Samoa, Samoa Americana",
            'US-AZ' => "Arizona",
            'US-AR' => "Arkansas",
            'US-CA' => "California",
            'US-CO' => "Colorado",
            'US-CT' => "Connecticut",
            'US-DE' => "Delaware",
            'US-DC' => "District of Columbia, Disricte de Columbia",
            'US-FL' => "Florida",
            'US-GA' => "Georgia, Geòrgia",
            'US-GU' => "Guam",
            'US-HI' => "Hawaii",
            'US-ID' => "Idaho",
            'US-IL' => "Illinois",
            'US-IN' => "Indiana",
            'US-IA' => "Iowa",
            'US-KS' => "Kansas",
            'US-KY' => "Kentucky",
            'US-LA' => "Louisiana",
            'US-ME' => "Maine",
            'US-MD' => "Maryland",
            'US-MA' => "Massachusetts",
            'US-MI' => "Michigan",
            'US-MN' => "Minnesota",
            'US-MS' => "Mississippi",
            'US-MO' => "Missouri",
            'US-MT' => "Montana",
            'US-NE' => "Nebraska",
            'US-NV' => "Nevada",
            'US-NH' => "New Hampshire",
            'US-NJ' => "New Jersey",
            'US-NM' => "New Mexico",
            'US-NY' => "New York",
            'US-NC' => "North Carolina",
            'US-ND' => "North Dakota",
            'US-MP' => "Northern Mariana Islands, Illes Marianes del Nord",
            'US-OH' => "Ohio",
            'US-OK' => "Oklahoma",
            'US-OR' => "Oregon",
            'US-PA' => "Pennsylvania",
            'US-PR' => "Puerto Rico",
            'US-RI' => "Rhode Island",
            'US-SC' => "South Carolina",
            'US-SD' => "South Dakota",
            'US-TN' => "Tennessee",
            'US-TX' => "Texas",
            'US-UM' => "United States Minor Outlying Islands, Illes Perifèriques Menors dels EUA",
            'US-UT' => "Utah",
            'US-VT' => "Vermont",
            'US-VI' => "Virgin Islands, Illes Verge",
            'US-VA' => "Virginia",
            'US-WA' => "Washington",
            'US-WV' => "West Virginia",
            'US-WI' => "Wisconsin",
            'US-WY' => "Wyoming",
        ],
        "Vietnam"              => [
            'VN-44' => "An Giang",
            'VN-43' => "Bà Rịa - Vũng Tàu",
            'VN-57' => "Bình Dương",
            'VN-58' => "Bình Phước",
            'VN-40' => "Bình Thuận",
            'VN-31' => "Bình Định",
            'VN-55' => "Bạc Liêu",
            'VN-54' => "Bắc Giang",
            'VN-53' => "Bắc Kạn",
            'VN-56' => "Bắc Ninh",
            'VN-50' => "Bến Tre",
            'VN-04' => "Cao Bằng",
            'VN-59' => "Cà Mau",
            'VN-48' => "Cần Thơ",
            'VN-30' => "Gia Lai",
            'VN-14' => "Hoà Bình",
            'VN-03' => "Hà Giang",
            'VN-63' => "Hà Nam",
            'VN-64' => "Hà Nội, thủ đô",
            'VN-15' => "Hà Tây",
            'VN-23' => "Hà Tỉnh",
            'VN-66' => "Hưng Yên",
            'VN-61' => "Hải Duong",
            'VN-62' => "Hải Phòng, thành phố",
            'VN-73' => "Hậu Giang",
            'VN-65' => "Hồ Chí Minh, thành phố [Sài Gòn]",
            'VN-34' => "Khánh Hòa",
            'VN-47' => "Kiên Giang",
            'VN-28' => "Kon Tum",
            'VN-01' => "Lai Châu",
            'VN-41' => "Long An",
            'VN-02' => "Lào Cai",
            'VN-35' => "Lâm Đồng",
            'VN-09' => "Lạng Sơn",
            'VN-67' => "Nam Định",
            'VN-22' => "Nghệ An",
            'VN-18' => "Ninh Bình",
            'VN-36' => "Ninh Thuận",
            'VN-68' => "Phú Thọ",
            'VN-32' => "Phú Yên",
            'VN-24' => "Quảng Bình",
            'VN-27' => "Quảng Nam",
            'VN-29' => "Quảng Ngãi",
            'VN-13' => "Quảng Ninh",
            'VN-25' => "Quảng Trị",
            'VN-52' => "Sóc Trăng",
            'VN-05' => "Sơn La",
            'VN-21' => "Thanh Hóa",
            'VN-20' => "Thái Bình",
            'VN-69' => "Thái Nguyên",
            'VN-26' => "Thừa Thiên-Huế",
            'VN-46' => "Tiền Giang",
            'VN-51' => "Trà Vinh",
            'VN-07' => "Tuyên Quang",
            'VN-37' => "Tây Ninh",
            'VN-49' => "Vĩnh Long",
            'VN-70' => "Vĩnh Phúc",
            'VN-06' => "Yên Bái",
            'VN-71' => "Điện Biên",
            'VN-60' => "Đà Nẵng, thành phố",
            'VN-33' => "Đắc Lắk",
            'VN-72' => "Đắk Nông",
            'VN-39' => "Đồng Nai",
            'VN-45' => "Đồng Tháp",
        ],
    ];

    protected function getInput()
    {
        if ($this->get('group') == 'regions')
        {
            $this->use_tree_select = true;
        }

        return parent::getInput();
    }

    protected function getListOptions(array $attributes): array
    {
        $options = [];

        foreach ($this->{$attributes['group']} as $key => $val)
        {
            if (is_array($val))
            {
                $option              = self::getOption($key, $key);
                $option->level       = 0;
                $option->heading     = true;
                $option->no_checkbox = true;

                $options[] = $option;

                foreach ($val as $sub_key => $sub_val)
                {
                    $option        = self::getOption($sub_key, $sub_val);
                    $option->level = 1;

                    $options[] = $option;
                }

                continue;
            }

            $option        = self::getOption($key, $val);
            $option->level = 0;

            $options[] = $option;
        }

        return $options;
    }

    private static function getOption(string $key, mixed $val): object
    {
        if ( ! $val)
        {
            return JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', true);
        }

        if ($key[0] == '-')
        {
            return JHtml::_('select.option', '-', $val, 'value', 'text', true);
        }

        $val    = RL_Form::prepareSelectItem($val);
        $option = JHtml::_('select.option', $key, $val);

        return $option;
    }

    private function cleanRegions($regions): array
    {
    }

    private function getRegionArray(): void
    {
    }

    private function getRegionArrayByFile(): string
    {
    }

    private function getRegionName($country, $region): string
    {
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit