All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.global.api.entities.CountryData Maven / Gradle / Ivy

There is a newer version: 14.2.3
Show newest version
package com.global.api.entities;

import lombok.var;

import java.util.HashMap;

//  Represents Country Data Dictionaries for Country Name, Alpha2, Alpha3 and Numeric.
public class CountryData {

    private static final HashMap _countryCodeAlpha2MapByCountry;
    private static final HashMap _countryMapByAlpha2CountryCode;
    private static final HashMap _countryCodeAlpha3MapAlpha2CountryCode;
    private static final HashMap _countryCodeAlpha2MapAlpha3CountryCode;

    private static final HashMap _countryCodeAlpha3MapByCountry;
    private static final HashMap _countryMapByAlpha3CountryCode;
    private static final HashMap _countryCodeAlpha3MapByNumeric;
    private static final HashMap _numericCodeMapByAlpha3CountryCode;

    private static final HashMap _countryCodeAlpha2MapByNumericCode;
    private static final HashMap _numericCodeMapByCountryCodeAlpha2;
    private static final HashMap _numericCodeMapByCountry;
    private static final HashMap _phoneCodeMapByCountry;
//    private static final HashMap _countryMapByPhoneCode;
    private static final HashMap _countryMapByNumeric;

    // Maps Init
    static {
        _countryCodeAlpha2MapByCountry = new HashMap<>();
        _countryCodeAlpha2MapByCountry.put("Afghanistan", "AF");
        _countryCodeAlpha2MapByCountry.put("Åland Islands", "AX");
        _countryCodeAlpha2MapByCountry.put("Albania", "AL");
        _countryCodeAlpha2MapByCountry.put("Algeria", "DZ");
        _countryCodeAlpha2MapByCountry.put("American Samoa", "AS");
        _countryCodeAlpha2MapByCountry.put("Andorra", "AD");
        _countryCodeAlpha2MapByCountry.put("Angola", "AO");
        _countryCodeAlpha2MapByCountry.put("Anguilla", "AI");
        _countryCodeAlpha2MapByCountry.put("Antarctica", "AQ");
        _countryCodeAlpha2MapByCountry.put("Antigua and Barbuda", "AG");
        _countryCodeAlpha2MapByCountry.put("Argentina", "AR");
        _countryCodeAlpha2MapByCountry.put("Armenia", "AM");
        _countryCodeAlpha2MapByCountry.put("Aruba", "AW");
        _countryCodeAlpha2MapByCountry.put("Australia", "AU");
        _countryCodeAlpha2MapByCountry.put("Austria", "AT");
        _countryCodeAlpha2MapByCountry.put("Azerbaijan", "AZ");
        _countryCodeAlpha2MapByCountry.put("Bahamas", "BS");
        _countryCodeAlpha2MapByCountry.put("Bahrain", "BH");
        _countryCodeAlpha2MapByCountry.put("Bangladesh", "BD");
        _countryCodeAlpha2MapByCountry.put("Barbados", "BB");
        _countryCodeAlpha2MapByCountry.put("Belarus", "BY");
        _countryCodeAlpha2MapByCountry.put("Belgium", "BE");
        _countryCodeAlpha2MapByCountry.put("Belize", "BZ");
        _countryCodeAlpha2MapByCountry.put("Benin", "BJ");
        _countryCodeAlpha2MapByCountry.put("Bermuda", "BM");
        _countryCodeAlpha2MapByCountry.put("Bhutan", "BT");
        _countryCodeAlpha2MapByCountry.put("Bolivia (Plurinational State of)", "BO");
        _countryCodeAlpha2MapByCountry.put("Bonaire, Sint Eustatius and Saba", "BQ");
        _countryCodeAlpha2MapByCountry.put("Bosnia and Herzegovina", "BA");
        _countryCodeAlpha2MapByCountry.put("Botswana", "BW");
        _countryCodeAlpha2MapByCountry.put("Bouvet Island", "BV");
        _countryCodeAlpha2MapByCountry.put("Brazil", "BR");
        _countryCodeAlpha2MapByCountry.put("British Indian Ocean Territory", "IO");
        _countryCodeAlpha2MapByCountry.put("Brunei Darussalam", "BN");
        _countryCodeAlpha2MapByCountry.put("Bulgaria", "BG");
        _countryCodeAlpha2MapByCountry.put("Burkina Faso", "BF");
        _countryCodeAlpha2MapByCountry.put("Burundi", "BI");
        _countryCodeAlpha2MapByCountry.put("Cambodia", "KH");
        _countryCodeAlpha2MapByCountry.put("Cameroon", "CM");
        _countryCodeAlpha2MapByCountry.put("Canada", "CA");
        _countryCodeAlpha2MapByCountry.put("Cabo Verde", "CV");
        _countryCodeAlpha2MapByCountry.put("Cayman Islands", "KY");
        _countryCodeAlpha2MapByCountry.put("Central African Republic", "CF");
        _countryCodeAlpha2MapByCountry.put("Chad", "TD");
        _countryCodeAlpha2MapByCountry.put("Chile", "CL");
        _countryCodeAlpha2MapByCountry.put("China", "CN");
        _countryCodeAlpha2MapByCountry.put("Christmas Island", "CX");
        _countryCodeAlpha2MapByCountry.put("Cocos (Keeling) Islands", "CC");
        _countryCodeAlpha2MapByCountry.put("Colombia", "CO");
        _countryCodeAlpha2MapByCountry.put("Comoros", "KM");
        _countryCodeAlpha2MapByCountry.put("Congo", "CG");
        _countryCodeAlpha2MapByCountry.put("Congo (Democratic Republic of the)", "CD");
        _countryCodeAlpha2MapByCountry.put("Cook Islands", "CK");
        _countryCodeAlpha2MapByCountry.put("Costa Rica", "CR");
        _countryCodeAlpha2MapByCountry.put("Côte d'Ivoire", "CI");
        _countryCodeAlpha2MapByCountry.put("Croatia", "HR");
        _countryCodeAlpha2MapByCountry.put("Cuba", "CU");
        _countryCodeAlpha2MapByCountry.put("Curaçao", "CW");
        _countryCodeAlpha2MapByCountry.put("Cyprus", "CY");
        _countryCodeAlpha2MapByCountry.put("Czechia", "CZ");
        _countryCodeAlpha2MapByCountry.put("Denmark", "DK");
        _countryCodeAlpha2MapByCountry.put("Djibouti", "DJ");
        _countryCodeAlpha2MapByCountry.put("Dominica", "DM");
        _countryCodeAlpha2MapByCountry.put("Dominican Republic", "DO");
        _countryCodeAlpha2MapByCountry.put("Ecuador", "EC");
        _countryCodeAlpha2MapByCountry.put("Egypt", "EG");
        _countryCodeAlpha2MapByCountry.put("El Salvador", "SV");
        _countryCodeAlpha2MapByCountry.put("Equatorial Guinea", "GQ");
        _countryCodeAlpha2MapByCountry.put("Eritrea", "ER");
        _countryCodeAlpha2MapByCountry.put("Estonia", "EE");
        _countryCodeAlpha2MapByCountry.put("Ethiopia", "ET");
        _countryCodeAlpha2MapByCountry.put("Falkland Islands (Malvinas)", "FK");
        _countryCodeAlpha2MapByCountry.put("Faroe Islands", "FO");
        _countryCodeAlpha2MapByCountry.put("Fiji", "FJ");
        _countryCodeAlpha2MapByCountry.put("Finland", "FI");
        _countryCodeAlpha2MapByCountry.put("France", "FR");
        _countryCodeAlpha2MapByCountry.put("French Guiana", "GF");
        _countryCodeAlpha2MapByCountry.put("French Polynesia", "PF");
        _countryCodeAlpha2MapByCountry.put("French Southern Territories", "TF");
        _countryCodeAlpha2MapByCountry.put("Gabon", "GA");
        _countryCodeAlpha2MapByCountry.put("Gambia", "GM");
        _countryCodeAlpha2MapByCountry.put("Georgia", "GE");
        _countryCodeAlpha2MapByCountry.put("Germany", "DE");
        _countryCodeAlpha2MapByCountry.put("Ghana", "GH");
        _countryCodeAlpha2MapByCountry.put("Gibraltar", "GI");
        _countryCodeAlpha2MapByCountry.put("Greece", "GR");
        _countryCodeAlpha2MapByCountry.put("Greenland", "GL");
        _countryCodeAlpha2MapByCountry.put("Grenada", "GD");
        _countryCodeAlpha2MapByCountry.put("Guadeloupe", "GP");
        _countryCodeAlpha2MapByCountry.put("Guam", "GU");
        _countryCodeAlpha2MapByCountry.put("Guatemala", "GT");
        _countryCodeAlpha2MapByCountry.put("Guernsey", "GG");
        _countryCodeAlpha2MapByCountry.put("Guinea", "GN");
        _countryCodeAlpha2MapByCountry.put("Guinea-Bissau", "GW");
        _countryCodeAlpha2MapByCountry.put("Guyana", "GY");
        _countryCodeAlpha2MapByCountry.put("Haiti", "HT");
        _countryCodeAlpha2MapByCountry.put("Heard Island and McDonald Islands", "HM");
        _countryCodeAlpha2MapByCountry.put("Holy See", "VA");
        _countryCodeAlpha2MapByCountry.put("Honduras", "HN");
        _countryCodeAlpha2MapByCountry.put("Hong Kong", "HK");
        _countryCodeAlpha2MapByCountry.put("Hungary", "HU");
        _countryCodeAlpha2MapByCountry.put("Iceland", "IS");
        _countryCodeAlpha2MapByCountry.put("India", "IN");
        _countryCodeAlpha2MapByCountry.put("Indonesia", "ID");
        _countryCodeAlpha2MapByCountry.put("Iran (Islamic Republic of)", "IR");
        _countryCodeAlpha2MapByCountry.put("Iraq", "IQ");
        _countryCodeAlpha2MapByCountry.put("Ireland", "IE");
        _countryCodeAlpha2MapByCountry.put("Isle of Man", "IM");
        _countryCodeAlpha2MapByCountry.put("Israel", "IL");
        _countryCodeAlpha2MapByCountry.put("Italy", "IT");
        _countryCodeAlpha2MapByCountry.put("Jamaica", "JM");
        _countryCodeAlpha2MapByCountry.put("Japan", "JP");
        _countryCodeAlpha2MapByCountry.put("Jersey", "JE");
        _countryCodeAlpha2MapByCountry.put("Jordan", "JO");
        _countryCodeAlpha2MapByCountry.put("Kazakhstan", "KZ");
        _countryCodeAlpha2MapByCountry.put("Kenya", "KE");
        _countryCodeAlpha2MapByCountry.put("Kiribati", "KI");
        _countryCodeAlpha2MapByCountry.put("Korea (Democratic People's Republic of)", "KP");
        _countryCodeAlpha2MapByCountry.put("Korea (Republic of)", "KR");
        _countryCodeAlpha2MapByCountry.put("Kuwait", "KW");
        _countryCodeAlpha2MapByCountry.put("Kyrgyzstan", "KG");
        _countryCodeAlpha2MapByCountry.put("Lao People's Democratic Republic", "LA");
        _countryCodeAlpha2MapByCountry.put("Latvia", "LV");
        _countryCodeAlpha2MapByCountry.put("Lebanon", "LB");
        _countryCodeAlpha2MapByCountry.put("Lesotho", "LS");
        _countryCodeAlpha2MapByCountry.put("Liberia", "LR");
        _countryCodeAlpha2MapByCountry.put("Libya", "LY");
        _countryCodeAlpha2MapByCountry.put("Liechtenstein", "LI");
        _countryCodeAlpha2MapByCountry.put("Lithuania", "LT");
        _countryCodeAlpha2MapByCountry.put("Luxembourg", "LU");
        _countryCodeAlpha2MapByCountry.put("Macao", "MO");
        _countryCodeAlpha2MapByCountry.put("North Macedonia", "MK");
        _countryCodeAlpha2MapByCountry.put("Madagascar", "MG");
        _countryCodeAlpha2MapByCountry.put("Malawi", "MW");
        _countryCodeAlpha2MapByCountry.put("Malaysia", "MY");
        _countryCodeAlpha2MapByCountry.put("Maldives", "MV");
        _countryCodeAlpha2MapByCountry.put("Mali", "ML");
        _countryCodeAlpha2MapByCountry.put("Malta", "MT");
        _countryCodeAlpha2MapByCountry.put("Marshall Islands", "MH");
        _countryCodeAlpha2MapByCountry.put("Martinique", "MQ");
        _countryCodeAlpha2MapByCountry.put("Mauritania", "MR");
        _countryCodeAlpha2MapByCountry.put("Mauritius", "MU");
        _countryCodeAlpha2MapByCountry.put("Mayotte", "YT");
        _countryCodeAlpha2MapByCountry.put("Mexico", "MX");
        _countryCodeAlpha2MapByCountry.put("Micronesia (Federated States of)", "FM");
        _countryCodeAlpha2MapByCountry.put("Moldova (Republic of)", "MD");
        _countryCodeAlpha2MapByCountry.put("Monaco", "MC");
        _countryCodeAlpha2MapByCountry.put("Mongolia", "MN");
        _countryCodeAlpha2MapByCountry.put("Montenegro", "ME");
        _countryCodeAlpha2MapByCountry.put("Montserrat", "MS");
        _countryCodeAlpha2MapByCountry.put("Morocco", "MA");
        _countryCodeAlpha2MapByCountry.put("Mozambique", "MZ");
        _countryCodeAlpha2MapByCountry.put("Myanmar", "MM");
        _countryCodeAlpha2MapByCountry.put("Namibia", "NA");
        _countryCodeAlpha2MapByCountry.put("Nauru", "NR");
        _countryCodeAlpha2MapByCountry.put("Nepal", "NP");
        _countryCodeAlpha2MapByCountry.put("Netherlands", "NL");
        _countryCodeAlpha2MapByCountry.put("Netherlands Antilles", "AN");
        _countryCodeAlpha2MapByCountry.put("New Caledonia", "NC");
        _countryCodeAlpha2MapByCountry.put("New Zealand", "NZ");
        _countryCodeAlpha2MapByCountry.put("Nicaragua", "NI");
        _countryCodeAlpha2MapByCountry.put("Niger", "NE");
        _countryCodeAlpha2MapByCountry.put("Nigeria", "NG");
        _countryCodeAlpha2MapByCountry.put("Niue", "NU");
        _countryCodeAlpha2MapByCountry.put("Norfolk Island", "NF");
        _countryCodeAlpha2MapByCountry.put("Northern Mariana Islands", "MP");
        _countryCodeAlpha2MapByCountry.put("Norway", "NO");
        _countryCodeAlpha2MapByCountry.put("Oman", "OM");
        _countryCodeAlpha2MapByCountry.put("Pakistan", "PK");
        _countryCodeAlpha2MapByCountry.put("Palau", "PW");
        _countryCodeAlpha2MapByCountry.put("Palestine, State of", "PS");
        _countryCodeAlpha2MapByCountry.put("Panama", "PA");
        _countryCodeAlpha2MapByCountry.put("Papua New Guinea", "PG");
        _countryCodeAlpha2MapByCountry.put("Paraguay", "PY");
        _countryCodeAlpha2MapByCountry.put("Peru", "PE");
        _countryCodeAlpha2MapByCountry.put("Philippines", "PH");
        _countryCodeAlpha2MapByCountry.put("Pitcairn", "PN");
        _countryCodeAlpha2MapByCountry.put("Poland", "PL");
        _countryCodeAlpha2MapByCountry.put("Portugal", "PT");
        _countryCodeAlpha2MapByCountry.put("Puerto Rico", "PR");
        _countryCodeAlpha2MapByCountry.put("Qatar", "QA");
        _countryCodeAlpha2MapByCountry.put("Réunion", "RE");
        _countryCodeAlpha2MapByCountry.put("Romania", "RO");
        _countryCodeAlpha2MapByCountry.put("Russian Federation", "RU");
        _countryCodeAlpha2MapByCountry.put("Rwanda", "RW");
        _countryCodeAlpha2MapByCountry.put("Saint Barthélemy", "BL");
        _countryCodeAlpha2MapByCountry.put("Saint Helena, Ascension and Tristan da Cunha", "SH");
        _countryCodeAlpha2MapByCountry.put("Saint Kitts and Nevis", "KN");
        _countryCodeAlpha2MapByCountry.put("Saint Lucia", "LC");
        _countryCodeAlpha2MapByCountry.put("Saint Martin (French part)", "MF");
        _countryCodeAlpha2MapByCountry.put("Saint Pierre and Miquelon", "PM");
        _countryCodeAlpha2MapByCountry.put("Saint Vincent and the Grenadines", "VC");
        _countryCodeAlpha2MapByCountry.put("Samoa", "WS");
        _countryCodeAlpha2MapByCountry.put("San Marino", "SM");
        _countryCodeAlpha2MapByCountry.put("Sao Tome and Principe", "ST");
        _countryCodeAlpha2MapByCountry.put("Saudi Arabia", "SA");
        _countryCodeAlpha2MapByCountry.put("Senegal", "SN");
        _countryCodeAlpha2MapByCountry.put("Serbia", "RS");
        _countryCodeAlpha2MapByCountry.put("Seychelles", "SC");
        _countryCodeAlpha2MapByCountry.put("Sierra Leone", "SL");
        _countryCodeAlpha2MapByCountry.put("Singapore", "SG");
        _countryCodeAlpha2MapByCountry.put("Sint Maarten (Dutch part)", "SX");
        _countryCodeAlpha2MapByCountry.put("Slovakia", "SK");
        _countryCodeAlpha2MapByCountry.put("Slovenia", "SI");
        _countryCodeAlpha2MapByCountry.put("Solomon Islands", "SB");
        _countryCodeAlpha2MapByCountry.put("Somalia", "SO");
        _countryCodeAlpha2MapByCountry.put("South Africa", "ZA");
        _countryCodeAlpha2MapByCountry.put("South Georgia and the South Sandwich Islands", "GS");
        _countryCodeAlpha2MapByCountry.put("South Sudan", "SS");
        _countryCodeAlpha2MapByCountry.put("Spain", "ES");
        _countryCodeAlpha2MapByCountry.put("Sri Lanka", "LK");
        _countryCodeAlpha2MapByCountry.put("Sudan", "SD");
        _countryCodeAlpha2MapByCountry.put("Suriname", "SR");
        _countryCodeAlpha2MapByCountry.put("Svalbard and Jan Mayen", "SJ");
        _countryCodeAlpha2MapByCountry.put("Eswatini", "SZ");
        _countryCodeAlpha2MapByCountry.put("Sweden", "SE");
        _countryCodeAlpha2MapByCountry.put("Switzerland", "CH");
        _countryCodeAlpha2MapByCountry.put("Syrian Arab Republic", "SY");
        _countryCodeAlpha2MapByCountry.put("Taiwan, Province of China", "TW");
        _countryCodeAlpha2MapByCountry.put("Tajikistan", "TJ");
        _countryCodeAlpha2MapByCountry.put("Tanzania, United Republic of", "TZ");
        _countryCodeAlpha2MapByCountry.put("Thailand", "TH");
        _countryCodeAlpha2MapByCountry.put("Timor-Leste", "TL");
        _countryCodeAlpha2MapByCountry.put("Togo", "TG");
        _countryCodeAlpha2MapByCountry.put("Tokelau", "TK");
        _countryCodeAlpha2MapByCountry.put("Tonga", "TO");
        _countryCodeAlpha2MapByCountry.put("Trinidad and Tobago", "TT");
        _countryCodeAlpha2MapByCountry.put("Tunisia", "TN");
        _countryCodeAlpha2MapByCountry.put("Turkey", "TR");
        _countryCodeAlpha2MapByCountry.put("Turkmenistan", "TM");
        _countryCodeAlpha2MapByCountry.put("Turks and Caicos Islands", "TC");
        _countryCodeAlpha2MapByCountry.put("Tuvalu", "TV");
        _countryCodeAlpha2MapByCountry.put("Uganda", "UG");
        _countryCodeAlpha2MapByCountry.put("Ukraine", "UA");
        _countryCodeAlpha2MapByCountry.put("United Arab Emirates", "AE");
        _countryCodeAlpha2MapByCountry.put("United Kingdom of Great Britain and Northern Ireland", "GB");
        _countryCodeAlpha2MapByCountry.put("United States of America", "US");
        _countryCodeAlpha2MapByCountry.put("United States Minor Outlying Islands", "UM");
        _countryCodeAlpha2MapByCountry.put("Uruguay", "UY");
        _countryCodeAlpha2MapByCountry.put("Uzbekistan", "UZ");
        _countryCodeAlpha2MapByCountry.put("Vanuatu", "VU");
        _countryCodeAlpha2MapByCountry.put("Venezuela (Bolivarian Republic of)", "VE");
        _countryCodeAlpha2MapByCountry.put("Vietnam", "VN");
        _countryCodeAlpha2MapByCountry.put("Virgin Islands (British)", "VG");
        _countryCodeAlpha2MapByCountry.put("Virgin Islands (U.S.)", "VI");
        _countryCodeAlpha2MapByCountry.put("Wallis and Futuna", "WF");
        _countryCodeAlpha2MapByCountry.put("Western Sahara", "EH");
        _countryCodeAlpha2MapByCountry.put("Yemen", "YE");
        _countryCodeAlpha2MapByCountry.put("Zambia", "ZM");
        _countryCodeAlpha2MapByCountry.put("Zimbabwe", "ZW");

        // build the inverse
        _countryMapByAlpha2CountryCode = new HashMap<>();
        for (var country : _countryCodeAlpha2MapByCountry.keySet()){
            _countryMapByAlpha2CountryCode.put(_countryCodeAlpha2MapByCountry.get(country), country);
        }

        _countryCodeAlpha3MapAlpha2CountryCode = new HashMap<>();
        _countryCodeAlpha3MapAlpha2CountryCode.put("AF", "AFG");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AX", "ALA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AL", "ALB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("DZ", "DZA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AS", "ASM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AD", "AND");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AO", "AGO");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AI", "AIA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AQ", "ATA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AG", "ATG");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AR", "ARG");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AM", "ARM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AW", "ABW");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AU", "AUS");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AT", "AUT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AZ", "AZE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BS", "BHS");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BH", "BHR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BD", "BGD");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BB", "BRB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BY", "BLR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BE", "BEL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BZ", "BLZ");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BJ", "BEN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BM", "BMU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BT", "BTN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BO", "BOL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BQ", "BES");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BA", "BIH");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BW", "BWA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BV", "BVT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BR", "BRA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IO", "IOT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BN", "BRN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BG", "BGR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BF", "BFA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BI", "BDI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CV", "CPV");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KH", "KHM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CM", "CMR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CA", "CAN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KY", "CYM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CF", "CAF");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TD", "TCD");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CL", "CHL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CN", "CHN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CX", "CXR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CC", "CCK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CO", "COL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KM", "COM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CG", "COG");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CD", "COD");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CK", "COK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CR", "CRI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CI", "CIV");
        _countryCodeAlpha3MapAlpha2CountryCode.put("HR", "HRV");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CU", "CUB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CW", "CUW");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CY", "CYP");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CZ", "CZE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("DK", "DNK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("DJ", "DJI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("DM", "DMA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("DO", "DOM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("EC", "ECU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("EG", "EGY");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SV", "SLV");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GQ", "GNQ");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ER", "ERI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("EE", "EST");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SZ", "SWZ");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ET", "ETH");
        _countryCodeAlpha3MapAlpha2CountryCode.put("FK", "FLK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("FO", "FRO");
        _countryCodeAlpha3MapAlpha2CountryCode.put("FJ", "FJI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("FI", "FIN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("FR", "FRA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GF", "GUF");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PF", "PYF");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TF", "ATF");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GA", "GAB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GM", "GMB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GE", "GEO");
        _countryCodeAlpha3MapAlpha2CountryCode.put("DE", "DEU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GH", "GHA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GI", "GIB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GR", "GRC");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GL", "GRL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GD", "GRD");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GP", "GLP");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GU", "GUM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GT", "GTM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GG", "GGY");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GN", "GIN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GW", "GNB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GY", "GUY");
        _countryCodeAlpha3MapAlpha2CountryCode.put("HT", "HTI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("HM", "HMD");
        _countryCodeAlpha3MapAlpha2CountryCode.put("VA", "VAT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("HN", "HND");
        _countryCodeAlpha3MapAlpha2CountryCode.put("HK", "HKG");
        _countryCodeAlpha3MapAlpha2CountryCode.put("HU", "HUN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IS", "ISL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IN", "IND");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ID", "IDN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IR", "IRN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IQ", "IRQ");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IE", "IRL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IM", "IMN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IL", "ISR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("IT", "ITA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("JM", "JAM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("JP", "JPN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("JE", "JEY");
        _countryCodeAlpha3MapAlpha2CountryCode.put("JO", "JOR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KZ", "KAZ");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KE", "KEN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KI", "KIR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KP", "PRK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KR", "KOR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KW", "KWT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KG", "KGZ");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LA", "LAO");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LV", "LVA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LB", "LBN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LS", "LSO");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LR", "LBR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LY", "LBY");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LI", "LIE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LT", "LTU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LU", "LUX");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MO", "MAC");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MG", "MDG");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MW", "MWI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MY", "MYS");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MV", "MDV");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ML", "MLI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MT", "MLT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MH", "MHL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MQ", "MTQ");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MR", "MRT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MU", "MUS");
        _countryCodeAlpha3MapAlpha2CountryCode.put("YT", "MYT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MX", "MEX");
        _countryCodeAlpha3MapAlpha2CountryCode.put("FM", "FSM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MD", "MDA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MC", "MCO");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MN", "MNG");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ME", "MNE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MS", "MSR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MA", "MAR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MZ", "MOZ");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MM", "MMR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NA", "NAM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NR", "NRU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NP", "NPL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NL", "NLD");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NC", "NCL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NZ", "NZL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NI", "NIC");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NE", "NER");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NG", "NGA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NU", "NIU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NF", "NFK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MK", "MKD");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MP", "MNP");
        _countryCodeAlpha3MapAlpha2CountryCode.put("NO", "NOR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("OM", "OMN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PK", "PAK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PW", "PLW");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PS", "PSE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PA", "PAN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PG", "PNG");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PY", "PRY");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PE", "PER");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PH", "PHL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PN", "PCN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PL", "POL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PT", "PRT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PR", "PRI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("QA", "QAT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("RE", "REU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("RO", "ROU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("RU", "RUS");
        _countryCodeAlpha3MapAlpha2CountryCode.put("RW", "RWA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("BL", "BLM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SH", "SHN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("KN", "KNA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LC", "LCA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("MF", "MAF");
        _countryCodeAlpha3MapAlpha2CountryCode.put("PM", "SPM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("VC", "VCT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("WS", "WSM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SM", "SMR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ST", "STP");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SA", "SAU");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SN", "SEN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("RS", "SRB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SC", "SYC");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SL", "SLE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SG", "SGP");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SX", "SXM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SK", "SVK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SI", "SVN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SB", "SLB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SO", "SOM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ZA", "ZAF");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GS", "SGS");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SS", "SSD");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ES", "ESP");
        _countryCodeAlpha3MapAlpha2CountryCode.put("LK", "LKA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SD", "SDN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SR", "SUR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SJ", "SJM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SE", "SWE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("CH", "CHE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("SY", "SYR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TW", "TWN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TJ", "TJK");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TZ", "TZA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TH", "THA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TL", "TLS");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TG", "TGO");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TK", "TKL");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TO", "TON");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TT", "TTO");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TN", "TUN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TR", "TUR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TM", "TKM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TC", "TCA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("TV", "TUV");
        _countryCodeAlpha3MapAlpha2CountryCode.put("UG", "UGA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("UA", "UKR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("AE", "ARE");
        _countryCodeAlpha3MapAlpha2CountryCode.put("GB", "GBR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("US", "USA");
        _countryCodeAlpha3MapAlpha2CountryCode.put("UM", "UMI");
        _countryCodeAlpha3MapAlpha2CountryCode.put("UY", "URY");
        _countryCodeAlpha3MapAlpha2CountryCode.put("UZ", "UZB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("VU", "VUT");
        _countryCodeAlpha3MapAlpha2CountryCode.put("VE", "VEN");
        _countryCodeAlpha3MapAlpha2CountryCode.put("VN", "VNM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("VG", "VGB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("VI", "VIR");
        _countryCodeAlpha3MapAlpha2CountryCode.put("WF", "WLF");
        _countryCodeAlpha3MapAlpha2CountryCode.put("EH", "ESH");
        _countryCodeAlpha3MapAlpha2CountryCode.put("YE", "YEM");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ZM", "ZMB");
        _countryCodeAlpha3MapAlpha2CountryCode.put("ZW", "ZWE");

        // build the inverse
        _countryCodeAlpha2MapAlpha3CountryCode = new HashMap<>();
        for (var alpha2 : _countryCodeAlpha3MapAlpha2CountryCode.keySet()){
            _countryCodeAlpha2MapAlpha3CountryCode.put(_countryCodeAlpha3MapAlpha2CountryCode.get(alpha2), alpha2);
        }

        _countryCodeAlpha2MapByNumericCode = new HashMap<>();
        _countryCodeAlpha2MapByNumericCode.put("004", "AF");
        _countryCodeAlpha2MapByNumericCode.put("008", "AL");
        _countryCodeAlpha2MapByNumericCode.put("010", "AQ");
        _countryCodeAlpha2MapByNumericCode.put("012", "DZ");
        _countryCodeAlpha2MapByNumericCode.put("016", "AS");
        _countryCodeAlpha2MapByNumericCode.put("020", "AD");
        _countryCodeAlpha2MapByNumericCode.put("024", "AO");
        _countryCodeAlpha2MapByNumericCode.put("028", "AG");
        _countryCodeAlpha2MapByNumericCode.put("031", "AZ");
        _countryCodeAlpha2MapByNumericCode.put("032", "AR");
        _countryCodeAlpha2MapByNumericCode.put("036", "AU");
        _countryCodeAlpha2MapByNumericCode.put("040", "AT");
        _countryCodeAlpha2MapByNumericCode.put("044", "BS");
        _countryCodeAlpha2MapByNumericCode.put("048", "BH");
        _countryCodeAlpha2MapByNumericCode.put("050", "BD");
        _countryCodeAlpha2MapByNumericCode.put("051", "AM");
        _countryCodeAlpha2MapByNumericCode.put("052", "BB");
        _countryCodeAlpha2MapByNumericCode.put("056", "BE");
        _countryCodeAlpha2MapByNumericCode.put("060", "BM");
        _countryCodeAlpha2MapByNumericCode.put("064", "BT");
        _countryCodeAlpha2MapByNumericCode.put("068", "BO");
        _countryCodeAlpha2MapByNumericCode.put("070", "BA");
        _countryCodeAlpha2MapByNumericCode.put("072", "BW");
        _countryCodeAlpha2MapByNumericCode.put("074", "BV");
        _countryCodeAlpha2MapByNumericCode.put("076", "BR");
        _countryCodeAlpha2MapByNumericCode.put("084", "BZ");
        _countryCodeAlpha2MapByNumericCode.put("086", "IO");
        _countryCodeAlpha2MapByNumericCode.put("090", "SB");
        _countryCodeAlpha2MapByNumericCode.put("092", "VG");
        _countryCodeAlpha2MapByNumericCode.put("096", "BN");
        _countryCodeAlpha2MapByNumericCode.put("100", "BG");
        _countryCodeAlpha2MapByNumericCode.put("104", "MM");
        _countryCodeAlpha2MapByNumericCode.put("108", "BI");
        _countryCodeAlpha2MapByNumericCode.put("112", "BY");
        _countryCodeAlpha2MapByNumericCode.put("116", "KH");
        _countryCodeAlpha2MapByNumericCode.put("120", "CM");
        _countryCodeAlpha2MapByNumericCode.put("124", "CA");
        _countryCodeAlpha2MapByNumericCode.put("132", "CV");
        _countryCodeAlpha2MapByNumericCode.put("136", "KY");
        _countryCodeAlpha2MapByNumericCode.put("140", "CF");
        _countryCodeAlpha2MapByNumericCode.put("144", "LK");
        _countryCodeAlpha2MapByNumericCode.put("148", "TD");
        _countryCodeAlpha2MapByNumericCode.put("152", "CL");
        _countryCodeAlpha2MapByNumericCode.put("156", "CN");
        _countryCodeAlpha2MapByNumericCode.put("158", "TW");
        _countryCodeAlpha2MapByNumericCode.put("162", "CX");
        _countryCodeAlpha2MapByNumericCode.put("166", "CC");
        _countryCodeAlpha2MapByNumericCode.put("170", "CO");
        _countryCodeAlpha2MapByNumericCode.put("174", "KM");
        _countryCodeAlpha2MapByNumericCode.put("175", "YT");
        _countryCodeAlpha2MapByNumericCode.put("178", "CG");
        _countryCodeAlpha2MapByNumericCode.put("180", "CD");
        _countryCodeAlpha2MapByNumericCode.put("184", "CK");
        _countryCodeAlpha2MapByNumericCode.put("188", "CR");
        _countryCodeAlpha2MapByNumericCode.put("191", "HR");
        _countryCodeAlpha2MapByNumericCode.put("192", "CU");
        _countryCodeAlpha2MapByNumericCode.put("196", "CY");
        _countryCodeAlpha2MapByNumericCode.put("203", "CZ");
        _countryCodeAlpha2MapByNumericCode.put("204", "BJ");
        _countryCodeAlpha2MapByNumericCode.put("208", "DK");
        _countryCodeAlpha2MapByNumericCode.put("212", "DM");
        _countryCodeAlpha2MapByNumericCode.put("214", "DO");
        _countryCodeAlpha2MapByNumericCode.put("218", "EC");
        _countryCodeAlpha2MapByNumericCode.put("222", "SV");
        _countryCodeAlpha2MapByNumericCode.put("226", "GQ");
        _countryCodeAlpha2MapByNumericCode.put("231", "ET");
        _countryCodeAlpha2MapByNumericCode.put("232", "ER");
        _countryCodeAlpha2MapByNumericCode.put("233", "EE");
        _countryCodeAlpha2MapByNumericCode.put("234", "FO");
        _countryCodeAlpha2MapByNumericCode.put("238", "FK");
        _countryCodeAlpha2MapByNumericCode.put("239", "GS");
        _countryCodeAlpha2MapByNumericCode.put("242", "FJ");
        _countryCodeAlpha2MapByNumericCode.put("246", "FI");
        _countryCodeAlpha2MapByNumericCode.put("248", "AX");
        _countryCodeAlpha2MapByNumericCode.put("250", "FR");
        _countryCodeAlpha2MapByNumericCode.put("254", "GF");
        _countryCodeAlpha2MapByNumericCode.put("258", "PF");
        _countryCodeAlpha2MapByNumericCode.put("260", "TF");
        _countryCodeAlpha2MapByNumericCode.put("262", "DJ");
        _countryCodeAlpha2MapByNumericCode.put("266", "GA");
        _countryCodeAlpha2MapByNumericCode.put("268", "GE");
        _countryCodeAlpha2MapByNumericCode.put("270", "GM");
        _countryCodeAlpha2MapByNumericCode.put("275", "PS");
        _countryCodeAlpha2MapByNumericCode.put("276", "DE");
        _countryCodeAlpha2MapByNumericCode.put("288", "GH");
        _countryCodeAlpha2MapByNumericCode.put("292", "GI");
        _countryCodeAlpha2MapByNumericCode.put("296", "KI");
        _countryCodeAlpha2MapByNumericCode.put("300", "GR");
        _countryCodeAlpha2MapByNumericCode.put("304", "GL");
        _countryCodeAlpha2MapByNumericCode.put("308", "GD");
        _countryCodeAlpha2MapByNumericCode.put("312", "GP");
        _countryCodeAlpha2MapByNumericCode.put("316", "GU");
        _countryCodeAlpha2MapByNumericCode.put("320", "GT");
        _countryCodeAlpha2MapByNumericCode.put("324", "GN");
        _countryCodeAlpha2MapByNumericCode.put("328", "GY");
        _countryCodeAlpha2MapByNumericCode.put("332", "HT");
        _countryCodeAlpha2MapByNumericCode.put("334", "HM");
        _countryCodeAlpha2MapByNumericCode.put("336", "VA");
        _countryCodeAlpha2MapByNumericCode.put("340", "HN");
        _countryCodeAlpha2MapByNumericCode.put("344", "HK");
        _countryCodeAlpha2MapByNumericCode.put("348", "HU");
        _countryCodeAlpha2MapByNumericCode.put("352", "IS");
        _countryCodeAlpha2MapByNumericCode.put("356", "IN");
        _countryCodeAlpha2MapByNumericCode.put("360", "ID");
        _countryCodeAlpha2MapByNumericCode.put("364", "IR");
        _countryCodeAlpha2MapByNumericCode.put("368", "IQ");
        _countryCodeAlpha2MapByNumericCode.put("372", "IE");
        _countryCodeAlpha2MapByNumericCode.put("376", "IL");
        _countryCodeAlpha2MapByNumericCode.put("380", "IT");
        _countryCodeAlpha2MapByNumericCode.put("384", "CI");
        _countryCodeAlpha2MapByNumericCode.put("388", "JM");
        _countryCodeAlpha2MapByNumericCode.put("392", "JP");
        _countryCodeAlpha2MapByNumericCode.put("398", "KZ");
        _countryCodeAlpha2MapByNumericCode.put("400", "JO");
        _countryCodeAlpha2MapByNumericCode.put("404", "KE");
        _countryCodeAlpha2MapByNumericCode.put("408", "KP");
        _countryCodeAlpha2MapByNumericCode.put("410", "KR");
        _countryCodeAlpha2MapByNumericCode.put("414", "KW");
        _countryCodeAlpha2MapByNumericCode.put("417", "KG");
        _countryCodeAlpha2MapByNumericCode.put("418", "LA");
        _countryCodeAlpha2MapByNumericCode.put("422", "LB");
        _countryCodeAlpha2MapByNumericCode.put("426", "LS");
        _countryCodeAlpha2MapByNumericCode.put("428", "LV");
        _countryCodeAlpha2MapByNumericCode.put("430", "LR");
        _countryCodeAlpha2MapByNumericCode.put("434", "LY");
        _countryCodeAlpha2MapByNumericCode.put("438", "LI");
        _countryCodeAlpha2MapByNumericCode.put("440", "LT");
        _countryCodeAlpha2MapByNumericCode.put("442", "LU");
        _countryCodeAlpha2MapByNumericCode.put("446", "MO");
        _countryCodeAlpha2MapByNumericCode.put("450", "MG");
        _countryCodeAlpha2MapByNumericCode.put("454", "MW");
        _countryCodeAlpha2MapByNumericCode.put("458", "MY");
        _countryCodeAlpha2MapByNumericCode.put("462", "MV");
        _countryCodeAlpha2MapByNumericCode.put("466", "ML");
        _countryCodeAlpha2MapByNumericCode.put("470", "MT");
        _countryCodeAlpha2MapByNumericCode.put("474", "MQ");
        _countryCodeAlpha2MapByNumericCode.put("478", "MR");
        _countryCodeAlpha2MapByNumericCode.put("480", "MU");
        _countryCodeAlpha2MapByNumericCode.put("484", "MX");
        _countryCodeAlpha2MapByNumericCode.put("492", "MC");
        _countryCodeAlpha2MapByNumericCode.put("496", "MN");
        _countryCodeAlpha2MapByNumericCode.put("498", "MD");
        _countryCodeAlpha2MapByNumericCode.put("499", "ME");
        _countryCodeAlpha2MapByNumericCode.put("500", "MS");
        _countryCodeAlpha2MapByNumericCode.put("504", "MA");
        _countryCodeAlpha2MapByNumericCode.put("508", "MZ");
        _countryCodeAlpha2MapByNumericCode.put("512", "OM");
        _countryCodeAlpha2MapByNumericCode.put("516", "NA");
        _countryCodeAlpha2MapByNumericCode.put("520", "NR");
        _countryCodeAlpha2MapByNumericCode.put("524", "NP");
        _countryCodeAlpha2MapByNumericCode.put("528", "NL");
        _countryCodeAlpha2MapByNumericCode.put("530", "AN");
        _countryCodeAlpha2MapByNumericCode.put("531", "CW");
        _countryCodeAlpha2MapByNumericCode.put("533", "AW");
        _countryCodeAlpha2MapByNumericCode.put("534", "SX");
        _countryCodeAlpha2MapByNumericCode.put("535", "BQ");
        _countryCodeAlpha2MapByNumericCode.put("540", "NC");
        _countryCodeAlpha2MapByNumericCode.put("548", "VU");
        _countryCodeAlpha2MapByNumericCode.put("554", "NZ");
        _countryCodeAlpha2MapByNumericCode.put("558", "NI");
        _countryCodeAlpha2MapByNumericCode.put("562", "NE");
        _countryCodeAlpha2MapByNumericCode.put("566", "NG");
        _countryCodeAlpha2MapByNumericCode.put("570", "NU");
        _countryCodeAlpha2MapByNumericCode.put("574", "NF");
        _countryCodeAlpha2MapByNumericCode.put("578", "NO");
        _countryCodeAlpha2MapByNumericCode.put("580", "MP");
        _countryCodeAlpha2MapByNumericCode.put("581", "UM");
        _countryCodeAlpha2MapByNumericCode.put("583", "FM");
        _countryCodeAlpha2MapByNumericCode.put("584", "MH");
        _countryCodeAlpha2MapByNumericCode.put("585", "PW");
        _countryCodeAlpha2MapByNumericCode.put("586", "PK");
        _countryCodeAlpha2MapByNumericCode.put("591", "PA");
        _countryCodeAlpha2MapByNumericCode.put("598", "PG");
        _countryCodeAlpha2MapByNumericCode.put("600", "PY");
        _countryCodeAlpha2MapByNumericCode.put("604", "PE");
        _countryCodeAlpha2MapByNumericCode.put("608", "PH");
        _countryCodeAlpha2MapByNumericCode.put("612", "PN");
        _countryCodeAlpha2MapByNumericCode.put("616", "PL");
        _countryCodeAlpha2MapByNumericCode.put("620", "PT");
        _countryCodeAlpha2MapByNumericCode.put("624", "GW");
        _countryCodeAlpha2MapByNumericCode.put("626", "TL");
        _countryCodeAlpha2MapByNumericCode.put("630", "PR");
        _countryCodeAlpha2MapByNumericCode.put("634", "QA");
        _countryCodeAlpha2MapByNumericCode.put("638", "RE");
        _countryCodeAlpha2MapByNumericCode.put("642", "RO");
        _countryCodeAlpha2MapByNumericCode.put("643", "RU");
        _countryCodeAlpha2MapByNumericCode.put("646", "RW");
        _countryCodeAlpha2MapByNumericCode.put("652", "BL");
        _countryCodeAlpha2MapByNumericCode.put("654", "SH");
        _countryCodeAlpha2MapByNumericCode.put("659", "KN");
        _countryCodeAlpha2MapByNumericCode.put("660", "AI");
        _countryCodeAlpha2MapByNumericCode.put("662", "LC");
        _countryCodeAlpha2MapByNumericCode.put("663", "MF");
        _countryCodeAlpha2MapByNumericCode.put("666", "PM");
        _countryCodeAlpha2MapByNumericCode.put("670", "VC");
        _countryCodeAlpha2MapByNumericCode.put("674", "SM");
        _countryCodeAlpha2MapByNumericCode.put("678", "ST");
        _countryCodeAlpha2MapByNumericCode.put("682", "SA");
        _countryCodeAlpha2MapByNumericCode.put("686", "SN");
        _countryCodeAlpha2MapByNumericCode.put("688", "RS");
        _countryCodeAlpha2MapByNumericCode.put("690", "SC");
        _countryCodeAlpha2MapByNumericCode.put("694", "SL");
        _countryCodeAlpha2MapByNumericCode.put("702", "SG");
        _countryCodeAlpha2MapByNumericCode.put("703", "SK");
        _countryCodeAlpha2MapByNumericCode.put("704", "VN");
        _countryCodeAlpha2MapByNumericCode.put("705", "SI");
        _countryCodeAlpha2MapByNumericCode.put("706", "SO");
        _countryCodeAlpha2MapByNumericCode.put("710", "ZA");
        _countryCodeAlpha2MapByNumericCode.put("716", "ZW");
        _countryCodeAlpha2MapByNumericCode.put("724", "ES");
        _countryCodeAlpha2MapByNumericCode.put("728", "SS");
        _countryCodeAlpha2MapByNumericCode.put("729", "SD");
        _countryCodeAlpha2MapByNumericCode.put("732", "EH");
        _countryCodeAlpha2MapByNumericCode.put("740", "SR");
        _countryCodeAlpha2MapByNumericCode.put("744", "SJ");
        _countryCodeAlpha2MapByNumericCode.put("748", "SZ");
        _countryCodeAlpha2MapByNumericCode.put("752", "SE");
        _countryCodeAlpha2MapByNumericCode.put("756", "CH");
        _countryCodeAlpha2MapByNumericCode.put("760", "SY");
        _countryCodeAlpha2MapByNumericCode.put("762", "TJ");
        _countryCodeAlpha2MapByNumericCode.put("764", "TH");
        _countryCodeAlpha2MapByNumericCode.put("768", "TG");
        _countryCodeAlpha2MapByNumericCode.put("772", "TK");
        _countryCodeAlpha2MapByNumericCode.put("776", "TO");
        _countryCodeAlpha2MapByNumericCode.put("780", "TT");
        _countryCodeAlpha2MapByNumericCode.put("784", "AE");
        _countryCodeAlpha2MapByNumericCode.put("788", "TN");
        _countryCodeAlpha2MapByNumericCode.put("792", "TR");
        _countryCodeAlpha2MapByNumericCode.put("795", "TM");
        _countryCodeAlpha2MapByNumericCode.put("796", "TC");
        _countryCodeAlpha2MapByNumericCode.put("798", "TV");
        _countryCodeAlpha2MapByNumericCode.put("800", "UG");
        _countryCodeAlpha2MapByNumericCode.put("804", "UA");
        _countryCodeAlpha2MapByNumericCode.put("807", "MK");
        _countryCodeAlpha2MapByNumericCode.put("818", "EG");
        _countryCodeAlpha2MapByNumericCode.put("826", "GB");
        _countryCodeAlpha2MapByNumericCode.put("831", "GG");
        _countryCodeAlpha2MapByNumericCode.put("832", "JE");
        _countryCodeAlpha2MapByNumericCode.put("833", "IM");
        _countryCodeAlpha2MapByNumericCode.put("834", "TZ");
        _countryCodeAlpha2MapByNumericCode.put("840", "US");
        _countryCodeAlpha2MapByNumericCode.put("850", "VI");
        _countryCodeAlpha2MapByNumericCode.put("854", "BF");
        _countryCodeAlpha2MapByNumericCode.put("858", "UY");
        _countryCodeAlpha2MapByNumericCode.put("860", "UZ");
        _countryCodeAlpha2MapByNumericCode.put("862", "VE");
        _countryCodeAlpha2MapByNumericCode.put("876", "WF");
        _countryCodeAlpha2MapByNumericCode.put("882", "WS");
        _countryCodeAlpha2MapByNumericCode.put("887", "YE");
        _countryCodeAlpha2MapByNumericCode.put("894", "ZM");

        // build the inverse
        _numericCodeMapByCountryCodeAlpha2 = new HashMap<>();
        for (var numericCode : _countryCodeAlpha2MapByNumericCode.keySet()){
            _numericCodeMapByCountryCodeAlpha2.put(_countryCodeAlpha2MapByNumericCode.get(numericCode), numericCode);
        }

        _numericCodeMapByCountry = new HashMap<>();
        _numericCodeMapByCountry.put("Afghanistan", "004");
        _numericCodeMapByCountry.put("Åland Islands", "248");
        _numericCodeMapByCountry.put("Albania", "008");
        _numericCodeMapByCountry.put("Algeria", "012");
        _numericCodeMapByCountry.put("American Samoa", "016");
        _numericCodeMapByCountry.put("Andorra", "020");
        _numericCodeMapByCountry.put("Angola", "024");
        _numericCodeMapByCountry.put("Anguilla", "660");
        _numericCodeMapByCountry.put("Antarctica", "010");
        _numericCodeMapByCountry.put("Antigua and Barbuda", "028");
        _numericCodeMapByCountry.put("Argentina", "032");
        _numericCodeMapByCountry.put("Armenia", "051");
        _numericCodeMapByCountry.put("Aruba", "533");
        _numericCodeMapByCountry.put("Australia", "036");
        _numericCodeMapByCountry.put("Austria", "040");
        _numericCodeMapByCountry.put("Azerbaijan", "031");
        _numericCodeMapByCountry.put("Bahamas", "044");
        _numericCodeMapByCountry.put("Bahrain", "048");
        _numericCodeMapByCountry.put("Bangladesh", "050");
        _numericCodeMapByCountry.put("Barbados", "052");
        _numericCodeMapByCountry.put("Belarus", "112");
        _numericCodeMapByCountry.put("Belgium", "056");
        _numericCodeMapByCountry.put("Belize", "084");
        _numericCodeMapByCountry.put("Benin", "204");
        _numericCodeMapByCountry.put("Bermuda", "060");
        _numericCodeMapByCountry.put("Bhutan", "064");
        _numericCodeMapByCountry.put("Bolivia (Plurinational State of)", "068");
        _numericCodeMapByCountry.put("Bonaire, Sint Eustatius and Saba", "535");
        _numericCodeMapByCountry.put("Bosnia and Herzegovina", "070");
        _numericCodeMapByCountry.put("Botswana", "072");
        _numericCodeMapByCountry.put("Bouvet Island", "074");
        _numericCodeMapByCountry.put("Brazil", "076");
        _numericCodeMapByCountry.put("British Indian Ocean Territory", "086");
        _numericCodeMapByCountry.put("Brunei Darussalam", "096");
        _numericCodeMapByCountry.put("Bulgaria", "100");
        _numericCodeMapByCountry.put("Burkina Faso", "854");
        _numericCodeMapByCountry.put("Burundi", "108");
        _numericCodeMapByCountry.put("Cabo Verde", "132");
        _numericCodeMapByCountry.put("Cambodia", "116");
        _numericCodeMapByCountry.put("Cameroon", "120");
        _numericCodeMapByCountry.put("Canada", "124");
        _numericCodeMapByCountry.put("Cayman Islands", "136");
        _numericCodeMapByCountry.put("Central African Republic", "140");
        _numericCodeMapByCountry.put("Chad", "148");
        _numericCodeMapByCountry.put("Chile", "152");
        _numericCodeMapByCountry.put("China", "156");
        _numericCodeMapByCountry.put("Christmas Island", "162");
        _numericCodeMapByCountry.put("Cocos (Keeling) Islands", "166");
        _numericCodeMapByCountry.put("Colombia", "170");
        _numericCodeMapByCountry.put("Comoros", "174");
        _numericCodeMapByCountry.put("Congo", "178");
        _numericCodeMapByCountry.put("Congo, Democratic Republic of the", "180");
        _numericCodeMapByCountry.put("Cook Islands", "184");
        _numericCodeMapByCountry.put("Costa Rica", "188");
        _numericCodeMapByCountry.put("Côte d'Ivoire", "384");
        _numericCodeMapByCountry.put("Croatia", "191");
        _numericCodeMapByCountry.put("Cuba", "192");
        _numericCodeMapByCountry.put("Curaçao", "531");
        _numericCodeMapByCountry.put("Cyprus", "196");
        _numericCodeMapByCountry.put("Czechia", "203");
        _numericCodeMapByCountry.put("Denmark", "208");
        _numericCodeMapByCountry.put("Djibouti", "262");
        _numericCodeMapByCountry.put("Dominica", "212");
        _numericCodeMapByCountry.put("Dominican Republic", "214");
        _numericCodeMapByCountry.put("Ecuador", "218");
        _numericCodeMapByCountry.put("Egypt", "818");
        _numericCodeMapByCountry.put("El Salvador", "222");
        _numericCodeMapByCountry.put("Equatorial Guinea", "226");
        _numericCodeMapByCountry.put("Eritrea", "232");
        _numericCodeMapByCountry.put("Estonia", "233");
        _numericCodeMapByCountry.put("Eswatini", "748");
        _numericCodeMapByCountry.put("Ethiopia", "231");
        _numericCodeMapByCountry.put("Falkland Islands (Malvinas)", "238");
        _numericCodeMapByCountry.put("Faroe Islands", "234");
        _numericCodeMapByCountry.put("Fiji", "242");
        _numericCodeMapByCountry.put("Finland", "246");
        _numericCodeMapByCountry.put("France", "250");
        _numericCodeMapByCountry.put("French Guiana", "254");
        _numericCodeMapByCountry.put("French Polynesia", "258");
        _numericCodeMapByCountry.put("French Southern Territories", "260");
        _numericCodeMapByCountry.put("Gabon", "266");
        _numericCodeMapByCountry.put("Gambia", "270");
        _numericCodeMapByCountry.put("Georgia", "268");
        _numericCodeMapByCountry.put("Germany", "276");
        _numericCodeMapByCountry.put("Ghana", "288");
        _numericCodeMapByCountry.put("Gibraltar", "292");
        _numericCodeMapByCountry.put("Greece", "300");
        _numericCodeMapByCountry.put("Greenland", "304");
        _numericCodeMapByCountry.put("Grenada", "308");
        _numericCodeMapByCountry.put("Guadeloupe", "312");
        _numericCodeMapByCountry.put("Guam", "316");
        _numericCodeMapByCountry.put("Guatemala", "320");
        _numericCodeMapByCountry.put("Guernsey", "831");
        _numericCodeMapByCountry.put("Guinea", "324");
        _numericCodeMapByCountry.put("Guinea-Bissau", "624");
        _numericCodeMapByCountry.put("Guyana", "328");
        _numericCodeMapByCountry.put("Haiti", "332");
        _numericCodeMapByCountry.put("Heard Island and McDonald Islands", "334");
        _numericCodeMapByCountry.put("Holy See", "336");
        _numericCodeMapByCountry.put("Honduras", "340");
        _numericCodeMapByCountry.put("Hong Kong", "344");
        _numericCodeMapByCountry.put("Hungary", "348");
        _numericCodeMapByCountry.put("Iceland", "352");
        _numericCodeMapByCountry.put("India", "356");
        _numericCodeMapByCountry.put("Indonesia", "360");
        _numericCodeMapByCountry.put("Iran (Islamic Republic of)", "364");
        _numericCodeMapByCountry.put("Iraq", "368");
        _numericCodeMapByCountry.put("Ireland", "372");
        _numericCodeMapByCountry.put("Isle of Man", "833");
        _numericCodeMapByCountry.put("Israel", "376");
        _numericCodeMapByCountry.put("Italy", "380");
        _numericCodeMapByCountry.put("Jamaica", "388");
        _numericCodeMapByCountry.put("Japan", "392");
        _numericCodeMapByCountry.put("Jersey", "832");
        _numericCodeMapByCountry.put("Jordan", "400");
        _numericCodeMapByCountry.put("Kazakhstan", "398");
        _numericCodeMapByCountry.put("Kenya", "404");
        _numericCodeMapByCountry.put("Kiribati", "296");
        _numericCodeMapByCountry.put("Korea (Democratic People's Republic of)", "408");
        _numericCodeMapByCountry.put("Korea, Republic of", "410");
        _numericCodeMapByCountry.put("Kuwait", "414");
        _numericCodeMapByCountry.put("Kyrgyzstan", "417");
        _numericCodeMapByCountry.put("Lao People's Democratic Republic", "418");
        _numericCodeMapByCountry.put("Latvia", "428");
        _numericCodeMapByCountry.put("Lebanon", "422");
        _numericCodeMapByCountry.put("Lesotho", "426");
        _numericCodeMapByCountry.put("Liberia", "430");
        _numericCodeMapByCountry.put("Libya", "434");
        _numericCodeMapByCountry.put("Liechtenstein", "438");
        _numericCodeMapByCountry.put("Lithuania", "440");
        _numericCodeMapByCountry.put("Luxembourg", "442");
        _numericCodeMapByCountry.put("Macao", "446");
        _numericCodeMapByCountry.put("Madagascar", "450");
        _numericCodeMapByCountry.put("Malawi", "454");
        _numericCodeMapByCountry.put("Malaysia", "458");
        _numericCodeMapByCountry.put("Maldives", "462");
        _numericCodeMapByCountry.put("Mali", "466");
        _numericCodeMapByCountry.put("Malta", "470");
        _numericCodeMapByCountry.put("Marshall Islands", "584");
        _numericCodeMapByCountry.put("Martinique", "474");
        _numericCodeMapByCountry.put("Mauritania", "478");
        _numericCodeMapByCountry.put("Mauritius", "480");
        _numericCodeMapByCountry.put("Mayotte", "175");
        _numericCodeMapByCountry.put("Mexico", "484");
        _numericCodeMapByCountry.put("Micronesia (Federated States of)", "583");
        _numericCodeMapByCountry.put("Moldova, Republic of", "498");
        _numericCodeMapByCountry.put("Monaco", "492");
        _numericCodeMapByCountry.put("Mongolia", "496");
        _numericCodeMapByCountry.put("Montenegro", "499");
        _numericCodeMapByCountry.put("Montserrat", "500");
        _numericCodeMapByCountry.put("Morocco", "504");
        _numericCodeMapByCountry.put("Mozambique", "508");
        _numericCodeMapByCountry.put("Myanmar", "104");
        _numericCodeMapByCountry.put("Namibia", "516");
        _numericCodeMapByCountry.put("Nauru", "520");
        _numericCodeMapByCountry.put("Nepal", "524");
        _numericCodeMapByCountry.put("Netherlands", "528");
        _numericCodeMapByCountry.put("New Caledonia", "540");
        _numericCodeMapByCountry.put("New Zealand", "554");
        _numericCodeMapByCountry.put("Nicaragua", "558");
        _numericCodeMapByCountry.put("Niger", "562");
        _numericCodeMapByCountry.put("Nigeria", "566");
        _numericCodeMapByCountry.put("Niue", "570");
        _numericCodeMapByCountry.put("Norfolk Island", "574");
        _numericCodeMapByCountry.put("North Macedonia", "807");
        _numericCodeMapByCountry.put("Northern Mariana Islands", "580");
        _numericCodeMapByCountry.put("Norway", "578");
        _numericCodeMapByCountry.put("Oman", "512");
        _numericCodeMapByCountry.put("Pakistan", "586");
        _numericCodeMapByCountry.put("Palau", "585");
        _numericCodeMapByCountry.put("Palestine, State of", "275");
        _numericCodeMapByCountry.put("Panama", "591");
        _numericCodeMapByCountry.put("Papua New Guinea", "598");
        _numericCodeMapByCountry.put("Paraguay", "600");
        _numericCodeMapByCountry.put("Peru", "604");
        _numericCodeMapByCountry.put("Philippines", "608");
        _numericCodeMapByCountry.put("Pitcairn", "612");
        _numericCodeMapByCountry.put("Poland", "616");
        _numericCodeMapByCountry.put("Portugal", "620");
        _numericCodeMapByCountry.put("Puerto Rico", "630");
        _numericCodeMapByCountry.put("Qatar", "634");
        _numericCodeMapByCountry.put("Réunion", "638");
        _numericCodeMapByCountry.put("Romania", "642");
        _numericCodeMapByCountry.put("Russian Federation", "643");
        _numericCodeMapByCountry.put("Rwanda", "646");
        _numericCodeMapByCountry.put("Saint Barthélemy", "652");
        _numericCodeMapByCountry.put("Saint Helena, Ascension and Tristan da Cunha", "654");
        _numericCodeMapByCountry.put("Saint Kitts and Nevis", "659");
        _numericCodeMapByCountry.put("Saint Lucia", "662");
        _numericCodeMapByCountry.put("Saint Martin (French part)", "663");
        _numericCodeMapByCountry.put("Saint Pierre and Miquelon", "666");
        _numericCodeMapByCountry.put("Saint Vincent and the Grenadines", "670");
        _numericCodeMapByCountry.put("Samoa", "882");
        _numericCodeMapByCountry.put("San Marino", "674");
        _numericCodeMapByCountry.put("Sao Tome and Principe", "678");
        _numericCodeMapByCountry.put("Saudi Arabia", "682");
        _numericCodeMapByCountry.put("Senegal", "686");
        _numericCodeMapByCountry.put("Serbia", "688");
        _numericCodeMapByCountry.put("Seychelles", "690");
        _numericCodeMapByCountry.put("Sierra Leone", "694");
        _numericCodeMapByCountry.put("Singapore", "702");
        _numericCodeMapByCountry.put("Sint Maarten (Dutch part)", "534");
        _numericCodeMapByCountry.put("Slovakia", "703");
        _numericCodeMapByCountry.put("Slovenia", "705");
        _numericCodeMapByCountry.put("Solomon Islands", "090");
        _numericCodeMapByCountry.put("Somalia", "706");
        _numericCodeMapByCountry.put("South Africa", "710");
        _numericCodeMapByCountry.put("South Georgia and the South Sandwich Islands", "239");
        _numericCodeMapByCountry.put("South Sudan", "728");
        _numericCodeMapByCountry.put("Spain", "724");
        _numericCodeMapByCountry.put("Sri Lanka", "144");
        _numericCodeMapByCountry.put("Sudan", "729");
        _numericCodeMapByCountry.put("Suriname", "740");
        _numericCodeMapByCountry.put("Svalbard and Jan Mayen", "744");
        _numericCodeMapByCountry.put("Sweden", "752");
        _numericCodeMapByCountry.put("Switzerland", "756");
        _numericCodeMapByCountry.put("Syrian Arab Republic", "760");
        _numericCodeMapByCountry.put("Taiwan, Province of China", "158");
        _numericCodeMapByCountry.put("Tajikistan", "762");
        _numericCodeMapByCountry.put("Tanzania, United Republic of", "834");
        _numericCodeMapByCountry.put("Thailand", "764");
        _numericCodeMapByCountry.put("Timor-Leste", "626");
        _numericCodeMapByCountry.put("Togo", "768");
        _numericCodeMapByCountry.put("Tokelau", "772");
        _numericCodeMapByCountry.put("Tonga", "776");
        _numericCodeMapByCountry.put("Trinidad and Tobago", "780");
        _numericCodeMapByCountry.put("Tunisia", "788");
        _numericCodeMapByCountry.put("Turkey", "792");
        _numericCodeMapByCountry.put("Turkmenistan", "795");
        _numericCodeMapByCountry.put("Turks and Caicos Islands", "796");
        _numericCodeMapByCountry.put("Tuvalu", "798");
        _numericCodeMapByCountry.put("Uganda", "800");
        _numericCodeMapByCountry.put("Ukraine", "804");
        _numericCodeMapByCountry.put("United Arab Emirates", "784");
        _numericCodeMapByCountry.put("United Kingdom of Great Britain and Northern Ireland", "826");
        _numericCodeMapByCountry.put("United States of America", "840");
        _numericCodeMapByCountry.put("United States Minor Outlying Islands", "581");
        _numericCodeMapByCountry.put("Uruguay", "858");
        _numericCodeMapByCountry.put("Uzbekistan", "860");
        _numericCodeMapByCountry.put("Vanuatu", "548");
        _numericCodeMapByCountry.put("Venezuela (Bolivarian Republic of)", "862");
        _numericCodeMapByCountry.put("Vietnam", "704");
        _numericCodeMapByCountry.put("Virgin Islands (British)", "092");
        _numericCodeMapByCountry.put("Virgin Islands (U.S.)", "850");
        _numericCodeMapByCountry.put("Wallis and Futuna", "876");
        _numericCodeMapByCountry.put("Western Sahara", "732");
        _numericCodeMapByCountry.put("Yemen", "887");
        _numericCodeMapByCountry.put("Zambia", "894");
        _numericCodeMapByCountry.put("Zimbabwe", "716");

        // build the inverse
        _countryMapByNumeric = new HashMap<>();
        for (var country : _numericCodeMapByCountry.keySet()){
            _countryMapByNumeric.put(_numericCodeMapByCountry.get(country), country);
        }

        _phoneCodeMapByCountry = new HashMap<>();
        _phoneCodeMapByCountry.put("Afghanistan", "93");
        _phoneCodeMapByCountry.put("Åland Islands", "358");
        _phoneCodeMapByCountry.put("Albania", "355");
        _phoneCodeMapByCountry.put("Algeria", "213");
        _phoneCodeMapByCountry.put("American Samoa", "1-684");
        _phoneCodeMapByCountry.put("Andorra", "376");
        _phoneCodeMapByCountry.put("Angola", "244");
        _phoneCodeMapByCountry.put("Anguilla", "1-264");
        _phoneCodeMapByCountry.put("Antarctica", "672");
        _phoneCodeMapByCountry.put("Antigua and Barbuda", "1-268");
        _phoneCodeMapByCountry.put("Argentina", "54");
        _phoneCodeMapByCountry.put("Armenia", "374");
        _phoneCodeMapByCountry.put("Aruba", "297");
        _phoneCodeMapByCountry.put("Australia", "61");
        _phoneCodeMapByCountry.put("Austria", "43");
        _phoneCodeMapByCountry.put("Azerbaijan", "994");
        _phoneCodeMapByCountry.put("Bahamas", "1-242");
        _phoneCodeMapByCountry.put("Bahrain", "973");
        _phoneCodeMapByCountry.put("Bangladesh", "880");
        _phoneCodeMapByCountry.put("Barbados", "1-246");
        _phoneCodeMapByCountry.put("Belarus", "375");
        _phoneCodeMapByCountry.put("Belgium", "32");
        _phoneCodeMapByCountry.put("Belize", "501");
        _phoneCodeMapByCountry.put("Benin", "229");
        _phoneCodeMapByCountry.put("Bermuda", "1-441");
        _phoneCodeMapByCountry.put("Bhutan", "975");
        _phoneCodeMapByCountry.put("Bolivia (Plurinational State of)", "591");
        _phoneCodeMapByCountry.put("Bonaire, Sint Eustatius and Saba", "599");
        _phoneCodeMapByCountry.put("Bosnia and Herzegovina", "387");
        _phoneCodeMapByCountry.put("Botswana", "267");
        _phoneCodeMapByCountry.put("Bouvet Island", "55");
        _phoneCodeMapByCountry.put("Brazil", "55");
        _phoneCodeMapByCountry.put("British Indian Ocean Territory", "246");
        _phoneCodeMapByCountry.put("Brunei Darussalam", "673");
        _phoneCodeMapByCountry.put("Bulgaria", "359");
        _phoneCodeMapByCountry.put("Burkina Faso", "226");
        _phoneCodeMapByCountry.put("Burundi", "257");
        _phoneCodeMapByCountry.put("Cambodia", "855");
        _phoneCodeMapByCountry.put("Cameroon", "237");
        _phoneCodeMapByCountry.put("Canada", "1");
        _phoneCodeMapByCountry.put("Cabo Verde", "238");
        _phoneCodeMapByCountry.put("Cayman Islands", "1-345");
        _phoneCodeMapByCountry.put("Central African Republic", "236");
        _phoneCodeMapByCountry.put("Chad", "235");
        _phoneCodeMapByCountry.put("Chile", "56");
        _phoneCodeMapByCountry.put("China", "86");
        _phoneCodeMapByCountry.put("Christmas Island", "61");
        _phoneCodeMapByCountry.put("Cocos (Keeling) Islands", "61");
        _phoneCodeMapByCountry.put("Colombia", "57");
        _phoneCodeMapByCountry.put("Comoros", "269");
        _phoneCodeMapByCountry.put("Congo", "242");
        _phoneCodeMapByCountry.put("Congo, Democratic Republic of the", "243");
        _phoneCodeMapByCountry.put("Cook Islands", "682");
        _phoneCodeMapByCountry.put("Costa Rica", "506");
        _phoneCodeMapByCountry.put("Côte d'Ivoire", "225");
        _phoneCodeMapByCountry.put("Croatia", "385");
        _phoneCodeMapByCountry.put("Cuba", "53");
        _phoneCodeMapByCountry.put("Curaçao", "599");
        _phoneCodeMapByCountry.put("Cyprus", "357");
        _phoneCodeMapByCountry.put("Czechia", "420"); //Validate
        _phoneCodeMapByCountry.put("Denmark", "45");
        _phoneCodeMapByCountry.put("Djibouti", "253");
        _phoneCodeMapByCountry.put("Dominica", "1-767");
        _phoneCodeMapByCountry.put("Dominican Republic", "1-809, 1-829, 1-849");
        _phoneCodeMapByCountry.put("Ecuador", "593");
        _phoneCodeMapByCountry.put("Egypt", "20");
        _phoneCodeMapByCountry.put("El Salvador", "503");
        _phoneCodeMapByCountry.put("Equatorial Guinea", "240");
        _phoneCodeMapByCountry.put("Eritrea", "291");
        _phoneCodeMapByCountry.put("Estonia", "372");
        //_phoneCodeMapByCountry.put("Eswatini", "748");
        _phoneCodeMapByCountry.put("Ethiopia", "251");
        _phoneCodeMapByCountry.put("Falkland Islands (Malvinas)", "500");
        _phoneCodeMapByCountry.put("Faroe Islands", "298");
        _phoneCodeMapByCountry.put("Fiji", "679");
        _phoneCodeMapByCountry.put("Finland", "358");
        _phoneCodeMapByCountry.put("France", "33");
        _phoneCodeMapByCountry.put("French Guiana", "594");
        _phoneCodeMapByCountry.put("French Polynesia", "689");
        _phoneCodeMapByCountry.put("French Southern Territories", "262");
        _phoneCodeMapByCountry.put("Gabon", "241");
        _phoneCodeMapByCountry.put("Gambia", "220");
        _phoneCodeMapByCountry.put("Georgia", "995");
        _phoneCodeMapByCountry.put("Germany", "49");
        _phoneCodeMapByCountry.put("Ghana", "233");
        _phoneCodeMapByCountry.put("Gibraltar", "350");
        _phoneCodeMapByCountry.put("Greece", "30");
        _phoneCodeMapByCountry.put("Greenland", "299");
        _phoneCodeMapByCountry.put("Grenada", "1-473");
        _phoneCodeMapByCountry.put("Guadeloupe", "590");
        _phoneCodeMapByCountry.put("Guam", "1-671");
        _phoneCodeMapByCountry.put("Guatemala", "502");
        _phoneCodeMapByCountry.put("Guernsey", "44-1481");
        _phoneCodeMapByCountry.put("Guinea", "224");
        _phoneCodeMapByCountry.put("Guinea-Bissau", "245");
        _phoneCodeMapByCountry.put("Guyana", "592");
        _phoneCodeMapByCountry.put("Haiti", "509");
        _phoneCodeMapByCountry.put("Heard Island and McDonald Islands", "672");
        _phoneCodeMapByCountry.put("Holy See", "379");
        _phoneCodeMapByCountry.put("Honduras", "504");
        _phoneCodeMapByCountry.put("Hong Kong", "852");
        _phoneCodeMapByCountry.put("Hungary", "36");
        _phoneCodeMapByCountry.put("Iceland", "354");
        _phoneCodeMapByCountry.put("India", "91");
        _phoneCodeMapByCountry.put("Indonesia", "62");
        _phoneCodeMapByCountry.put("Iran (Islamic Republic of)", "98");
        _phoneCodeMapByCountry.put("Iraq", "964");
        _phoneCodeMapByCountry.put("Ireland", "353");
        _phoneCodeMapByCountry.put("Isle of Man", "44-1624");
        _phoneCodeMapByCountry.put("Israel", "972");
        _phoneCodeMapByCountry.put("Italy", "39");
        _phoneCodeMapByCountry.put("Jamaica", "1-876");
        _phoneCodeMapByCountry.put("Japan", "81");
        _phoneCodeMapByCountry.put("Jersey", "44-1534");
        _phoneCodeMapByCountry.put("Jordan", "962");
        _phoneCodeMapByCountry.put("Kazakhstan", "7");
        _phoneCodeMapByCountry.put("Kenya", "254");
        _phoneCodeMapByCountry.put("Kiribati", "686");
        _phoneCodeMapByCountry.put("Korea (Democratic People's Republic of)", "850");
        _phoneCodeMapByCountry.put("Korea, Republic of", "82");
        _phoneCodeMapByCountry.put("Kuwait", "965");
        _phoneCodeMapByCountry.put("Kyrgyzstan", "996");
        _phoneCodeMapByCountry.put("Lao People's Democratic Republic", "856");
        _phoneCodeMapByCountry.put("Latvia", "371");
        _phoneCodeMapByCountry.put("Lebanon", "961");
        _phoneCodeMapByCountry.put("Lesotho", "266");
        _phoneCodeMapByCountry.put("Liberia", "231");
        _phoneCodeMapByCountry.put("Libya", "218");
        _phoneCodeMapByCountry.put("Liechtenstein", "423");
        _phoneCodeMapByCountry.put("Lithuania", "370");
        _phoneCodeMapByCountry.put("Luxembourg", "352");
        _phoneCodeMapByCountry.put("Macao", "853");
        _phoneCodeMapByCountry.put("Macedonia, the former Yugoslav Republic of", "389");
        _phoneCodeMapByCountry.put("Madagascar", "261");
        _phoneCodeMapByCountry.put("Malawi", "265");
        _phoneCodeMapByCountry.put("Malaysia", "60");
        _phoneCodeMapByCountry.put("Maldives", "960");
        _phoneCodeMapByCountry.put("Mali", "223");
        _phoneCodeMapByCountry.put("Malta", "356");
        _phoneCodeMapByCountry.put("Marshall Islands", "692");
        _phoneCodeMapByCountry.put("Martinique", "596");
        _phoneCodeMapByCountry.put("Mauritania", "222");
        _phoneCodeMapByCountry.put("Mauritius", "230");
        _phoneCodeMapByCountry.put("Mayotte", "262");
        _phoneCodeMapByCountry.put("Mexico", "52");
        _phoneCodeMapByCountry.put("Micronesia (Federated States of)", "691");
        _phoneCodeMapByCountry.put("Moldova, Republic of", "373");
        _phoneCodeMapByCountry.put("Monaco", "377");
        _phoneCodeMapByCountry.put("Mongolia", "976");
        _phoneCodeMapByCountry.put("Montenegro", "382");
        _phoneCodeMapByCountry.put("Montserrat", "1-664");
        _phoneCodeMapByCountry.put("Morocco", "212");
        _phoneCodeMapByCountry.put("Mozambique", "258");
        _phoneCodeMapByCountry.put("Myanmar", "95");
        _phoneCodeMapByCountry.put("Namibia", "264");
        _phoneCodeMapByCountry.put("Nauru", "674");
        _phoneCodeMapByCountry.put("Nepal", "977");
        _phoneCodeMapByCountry.put("Netherlands", "31");
        _phoneCodeMapByCountry.put("Netherlands Antilles", "599");
        _phoneCodeMapByCountry.put("New Caledonia", "687");
        _phoneCodeMapByCountry.put("New Zealand", "64");
        _phoneCodeMapByCountry.put("Nicaragua", "505");
        _phoneCodeMapByCountry.put("Niger", "227");
        _phoneCodeMapByCountry.put("Nigeria", "234");
        _phoneCodeMapByCountry.put("Niue", "683");
        _phoneCodeMapByCountry.put("Norfolk Island", "672");
        //_phoneCodeMapByCountry.put("North Macedonia", "807");
        _phoneCodeMapByCountry.put("Northern Mariana Islands", "1-670");
        _phoneCodeMapByCountry.put("Norway", "47");
        _phoneCodeMapByCountry.put("Oman", "968");
        _phoneCodeMapByCountry.put("Pakistan", "92");
        _phoneCodeMapByCountry.put("Palau", "680");
        _phoneCodeMapByCountry.put("Palestine, State of", "970");
        _phoneCodeMapByCountry.put("Panama", "507");
        _phoneCodeMapByCountry.put("Papua New Guinea", "675");
        _phoneCodeMapByCountry.put("Paraguay", "595");
        _phoneCodeMapByCountry.put("Peru", "51");
        _phoneCodeMapByCountry.put("Philippines", "63");
        _phoneCodeMapByCountry.put("Pitcairn", "64");
        _phoneCodeMapByCountry.put("Poland", "48");
        _phoneCodeMapByCountry.put("Portugal", "351");
        _phoneCodeMapByCountry.put("Puerto Rico", "1-787, 1-939");
        _phoneCodeMapByCountry.put("Qatar", "974");
        _phoneCodeMapByCountry.put("Réunion", "262");
        _phoneCodeMapByCountry.put("Romania", "40");
        _phoneCodeMapByCountry.put("Russian Federation", "7");
        _phoneCodeMapByCountry.put("Rwanda", "250");
        _phoneCodeMapByCountry.put("Saint Barthélemy", "590");
        _phoneCodeMapByCountry.put("Saint Helena, Ascension and Tristan da Cunha", "290");
        _phoneCodeMapByCountry.put("Saint Kitts and Nevis", "1-869");
        _phoneCodeMapByCountry.put("Saint Lucia", "1-758");
        _phoneCodeMapByCountry.put("Saint Martin (French part)", "590");
        _phoneCodeMapByCountry.put("Saint Pierre and Miquelon", "508");
        _phoneCodeMapByCountry.put("Saint Vincent and the Grenadines", "1-784");
        _phoneCodeMapByCountry.put("Samoa", "685");
        _phoneCodeMapByCountry.put("San Marino", "378");
        _phoneCodeMapByCountry.put("Sao Tome and Principe", "239");
        _phoneCodeMapByCountry.put("Saudi Arabia", "966");
        _phoneCodeMapByCountry.put("Senegal", "221");
        _phoneCodeMapByCountry.put("Serbia", "381");
        _phoneCodeMapByCountry.put("Seychelles", "248");
        _phoneCodeMapByCountry.put("Sierra Leone", "232");
        _phoneCodeMapByCountry.put("Singapore", "65");
        _phoneCodeMapByCountry.put("Sint Maarten (Dutch part)", "1-721");
        _phoneCodeMapByCountry.put("Slovakia", "421");
        _phoneCodeMapByCountry.put("Slovenia", "386");
        _phoneCodeMapByCountry.put("Solomon Islands", "677");
        _phoneCodeMapByCountry.put("Somalia", "252");
        _phoneCodeMapByCountry.put("South Africa", "27");
        _phoneCodeMapByCountry.put("South Georgia and the South Sandwich Islands", "500");
        _phoneCodeMapByCountry.put("South Sudan", "211");
        _phoneCodeMapByCountry.put("Spain", "34");
        _phoneCodeMapByCountry.put("Sri Lanka", "94");
        _phoneCodeMapByCountry.put("Sudan", "249");
        _phoneCodeMapByCountry.put("Suriname", "597");
        _phoneCodeMapByCountry.put("Svalbard and Jan Mayen", "47");
        _phoneCodeMapByCountry.put("Swaziland", "268");
        _phoneCodeMapByCountry.put("Sweden", "46");
        _phoneCodeMapByCountry.put("Switzerland", "41");
        _phoneCodeMapByCountry.put("Syrian Arab Republic", "963");
        _phoneCodeMapByCountry.put("Taiwan, Province of China", "886");
        _phoneCodeMapByCountry.put("Tajikistan", "992");
        _phoneCodeMapByCountry.put("Tanzania, United Republic of", "255");
        _phoneCodeMapByCountry.put("Thailand", "66");
        _phoneCodeMapByCountry.put("Timor-Leste", "670");
        _phoneCodeMapByCountry.put("Togo", "228");
        _phoneCodeMapByCountry.put("Tokelau", "690");
        _phoneCodeMapByCountry.put("Tonga", "676");
        _phoneCodeMapByCountry.put("Trinidad and Tobago", "1-868");
        _phoneCodeMapByCountry.put("Tunisia", "216");
        _phoneCodeMapByCountry.put("Turkey", "90");
        _phoneCodeMapByCountry.put("Turkmenistan", "993");
        _phoneCodeMapByCountry.put("Turks and Caicos Islands", "1-649");
        _phoneCodeMapByCountry.put("Tuvalu", "688");
        _phoneCodeMapByCountry.put("Uganda", "256");
        _phoneCodeMapByCountry.put("Ukraine", "380");
        _phoneCodeMapByCountry.put("United Arab Emirates", "971");
        _phoneCodeMapByCountry.put("United Kingdom of Great Britain and Northern Ireland", "44");
        _phoneCodeMapByCountry.put("United States of America", "1");
        _phoneCodeMapByCountry.put("United States Minor Outlying Islands", "1");
        _phoneCodeMapByCountry.put("Uruguay", "598");
        _phoneCodeMapByCountry.put("Uzbekistan", "998");
        _phoneCodeMapByCountry.put("Vanuatu", "678");
        _phoneCodeMapByCountry.put("Venezuela (Bolivarian Republic of)", "58");
        _phoneCodeMapByCountry.put("Vietnam", "84");
        _phoneCodeMapByCountry.put("Virgin Islands (British)", "1-284");
        _phoneCodeMapByCountry.put("Virgin Islands (U.S.)", "1-340");
        _phoneCodeMapByCountry.put("Wallis and Futuna", "681");
        _phoneCodeMapByCountry.put("Western Sahara", "212");
        _phoneCodeMapByCountry.put("Yemen", "967");
        _phoneCodeMapByCountry.put("Zambia", "260");
        _phoneCodeMapByCountry.put("Zimbabwe", "263");

        // build the inverse
//        _countryMapByPhoneCode = new HashMap<>();
//        for (var country : _phoneCodeMapByCountry.keySet()) {
//            _countryMapByPhoneCode.put(_phoneCodeMapByCountry.get(country), country);
//        }

        _countryCodeAlpha3MapByCountry = new HashMap<>();
        _countryCodeAlpha3MapByCountry.put("Afghanistan", "AFG");
        _countryCodeAlpha3MapByCountry.put("Åland Islands", "ALA");
        _countryCodeAlpha3MapByCountry.put("Albania", "ALB");
        _countryCodeAlpha3MapByCountry.put("Algeria", "DZA");
        _countryCodeAlpha3MapByCountry.put("American Samoa", "ASM");
        _countryCodeAlpha3MapByCountry.put("Andorra", "AND");
        _countryCodeAlpha3MapByCountry.put("Angola", "AGO");
        _countryCodeAlpha3MapByCountry.put("Anguilla", "AIA");
        _countryCodeAlpha3MapByCountry.put("Antarctica", "ATA");
        _countryCodeAlpha3MapByCountry.put("Antigua and Barbuda", "ATG");
        _countryCodeAlpha3MapByCountry.put("Argentina", "ARG");
        _countryCodeAlpha3MapByCountry.put("Armenia", "ARM");
        _countryCodeAlpha3MapByCountry.put("Aruba", "ABW");
        _countryCodeAlpha3MapByCountry.put("Australia", "AUS");
        _countryCodeAlpha3MapByCountry.put("Austria", "AUT");
        _countryCodeAlpha3MapByCountry.put("Azerbaijan", "AZE");
        _countryCodeAlpha3MapByCountry.put("Bahamas", "BHS");
        _countryCodeAlpha3MapByCountry.put("Bahrain", "BHR");
        _countryCodeAlpha3MapByCountry.put("Bangladesh", "BGD");
        _countryCodeAlpha3MapByCountry.put("Barbados", "BRB");
        _countryCodeAlpha3MapByCountry.put("Belarus", "BLR");
        _countryCodeAlpha3MapByCountry.put("Belgium", "BEL");
        _countryCodeAlpha3MapByCountry.put("Belize", "BLZ");
        _countryCodeAlpha3MapByCountry.put("Benin", "BEN");
        _countryCodeAlpha3MapByCountry.put("Bermuda", "BMU");
        _countryCodeAlpha3MapByCountry.put("Bhutan", "BTN");
        _countryCodeAlpha3MapByCountry.put("Bolivia (Plurinational State of)", "BOL");
        _countryCodeAlpha3MapByCountry.put("Bonaire, Sint Eustatius and Saba", "BES");
        _countryCodeAlpha3MapByCountry.put("Bosnia and Herzegovina", "BIH");
        _countryCodeAlpha3MapByCountry.put("Botswana", "BWA");
        _countryCodeAlpha3MapByCountry.put("Bouvet Island", "BVT");
        _countryCodeAlpha3MapByCountry.put("Brazil", "BRA");
        _countryCodeAlpha3MapByCountry.put("British Indian Ocean Territory", "IOT");
        _countryCodeAlpha3MapByCountry.put("Brunei Darussalam", "BRN");
        _countryCodeAlpha3MapByCountry.put("Bulgaria", "BGR");
        _countryCodeAlpha3MapByCountry.put("Burkina Faso", "BFA");
        _countryCodeAlpha3MapByCountry.put("Burundi", "BDI");
        _countryCodeAlpha3MapByCountry.put("Cabo Verde", "CPV");
        _countryCodeAlpha3MapByCountry.put("Cambodia", "KHM");
        _countryCodeAlpha3MapByCountry.put("Cameroon", "CMR");
        _countryCodeAlpha3MapByCountry.put("Canada", "CAN");
        _countryCodeAlpha3MapByCountry.put("Cayman Islands", "CYM");
        _countryCodeAlpha3MapByCountry.put("Central African Republic", "CAF");
        _countryCodeAlpha3MapByCountry.put("Chad", "TCD");
        _countryCodeAlpha3MapByCountry.put("Chile", "CHL");
        _countryCodeAlpha3MapByCountry.put("China", "CHN");
        _countryCodeAlpha3MapByCountry.put("Christmas Island", "CXR");
        _countryCodeAlpha3MapByCountry.put("Cocos (Keeling) Islands", "CCK");
        _countryCodeAlpha3MapByCountry.put("Colombia", "COL");
        _countryCodeAlpha3MapByCountry.put("Comoros", "COM");
        _countryCodeAlpha3MapByCountry.put("Congo", "COG");
        _countryCodeAlpha3MapByCountry.put("Congo, Democratic Republic of the", "COD");
        _countryCodeAlpha3MapByCountry.put("Cook Islands", "COK");
        _countryCodeAlpha3MapByCountry.put("Costa Rica", "CRI");
        _countryCodeAlpha3MapByCountry.put("Côte d'Ivoire", "CIV");
        _countryCodeAlpha3MapByCountry.put("Croatia", "HRV");
        _countryCodeAlpha3MapByCountry.put("Cuba", "CUB");
        _countryCodeAlpha3MapByCountry.put("Curaçao", "CUW");
        _countryCodeAlpha3MapByCountry.put("Cyprus", "CYP");
        _countryCodeAlpha3MapByCountry.put("Czechia", "CZE");
        _countryCodeAlpha3MapByCountry.put("Denmark", "DNK");
        _countryCodeAlpha3MapByCountry.put("Djibouti", "DJI");
        _countryCodeAlpha3MapByCountry.put("Dominica", "DMA");
        _countryCodeAlpha3MapByCountry.put("Dominican Republic", "DOM");
        _countryCodeAlpha3MapByCountry.put("Ecuador", "ECU");
        _countryCodeAlpha3MapByCountry.put("Egypt", "EGY");
        _countryCodeAlpha3MapByCountry.put("El Salvador", "SLV");
        _countryCodeAlpha3MapByCountry.put("Equatorial Guinea", "GNQ");
        _countryCodeAlpha3MapByCountry.put("Eritrea", "ERI");
        _countryCodeAlpha3MapByCountry.put("Estonia", "EST");
        _countryCodeAlpha3MapByCountry.put("Eswatini", "SWZ");
        _countryCodeAlpha3MapByCountry.put("Ethiopia", "ETH");
        _countryCodeAlpha3MapByCountry.put("Falkland Islands (Malvinas)", "FLK");
        _countryCodeAlpha3MapByCountry.put("Faroe Islands", "FRO");
        _countryCodeAlpha3MapByCountry.put("Fiji", "FJI");
        _countryCodeAlpha3MapByCountry.put("Finland", "FIN");
        _countryCodeAlpha3MapByCountry.put("France", "FRA");
        _countryCodeAlpha3MapByCountry.put("French Guiana", "GUF");
        _countryCodeAlpha3MapByCountry.put("French Polynesia", "PYF");
        _countryCodeAlpha3MapByCountry.put("French Southern Territories", "ATF");
        _countryCodeAlpha3MapByCountry.put("Gabon", "GAB");
        _countryCodeAlpha3MapByCountry.put("Gambia", "GMB");
        _countryCodeAlpha3MapByCountry.put("Georgia", "GEO");
        _countryCodeAlpha3MapByCountry.put("Germany", "DEU");
        _countryCodeAlpha3MapByCountry.put("Ghana", "GHA");
        _countryCodeAlpha3MapByCountry.put("Gibraltar", "GIB");
        _countryCodeAlpha3MapByCountry.put("Greece", "GRC");
        _countryCodeAlpha3MapByCountry.put("Greenland", "GRL");
        _countryCodeAlpha3MapByCountry.put("Grenada", "GRD");
        _countryCodeAlpha3MapByCountry.put("Guadeloupe", "GLP");
        _countryCodeAlpha3MapByCountry.put("Guam", "GUM");
        _countryCodeAlpha3MapByCountry.put("Guatemala", "GTM");
        _countryCodeAlpha3MapByCountry.put("Guernsey", "GGY");
        _countryCodeAlpha3MapByCountry.put("Guinea", "GIN");
        _countryCodeAlpha3MapByCountry.put("Guinea-Bissau", "GNB");
        _countryCodeAlpha3MapByCountry.put("Guyana", "GUY");
        _countryCodeAlpha3MapByCountry.put("Haiti", "HTI");
        _countryCodeAlpha3MapByCountry.put("Heard Island and McDonald Islands", "HMD");
        _countryCodeAlpha3MapByCountry.put("Holy See", "VAT");
        _countryCodeAlpha3MapByCountry.put("Honduras", "HND");
        _countryCodeAlpha3MapByCountry.put("Hong Kong", "HKG");
        _countryCodeAlpha3MapByCountry.put("Hungary", "HUN");
        _countryCodeAlpha3MapByCountry.put("Iceland", "ISL");
        _countryCodeAlpha3MapByCountry.put("India", "IND");
        _countryCodeAlpha3MapByCountry.put("Indonesia", "IDN");
        _countryCodeAlpha3MapByCountry.put("Iran (Islamic Republic of)", "IRN");
        _countryCodeAlpha3MapByCountry.put("Iraq", "IRQ");
        _countryCodeAlpha3MapByCountry.put("Ireland", "IRL");
        _countryCodeAlpha3MapByCountry.put("Isle of Man", "IMN");
        _countryCodeAlpha3MapByCountry.put("Israel", "ISR");
        _countryCodeAlpha3MapByCountry.put("Italy", "ITA");
        _countryCodeAlpha3MapByCountry.put("Jamaica", "JAM");
        _countryCodeAlpha3MapByCountry.put("Japan", "JPN");
        _countryCodeAlpha3MapByCountry.put("Jersey", "JEY");
        _countryCodeAlpha3MapByCountry.put("Jordan", "JOR");
        _countryCodeAlpha3MapByCountry.put("Kazakhstan", "KAZ");
        _countryCodeAlpha3MapByCountry.put("Kenya", "KEN");
        _countryCodeAlpha3MapByCountry.put("Kiribati", "KIR");
        _countryCodeAlpha3MapByCountry.put("Korea (Democratic People's Republic of)", "PRK");
        _countryCodeAlpha3MapByCountry.put("Korea, Republic of", "KOR");
        _countryCodeAlpha3MapByCountry.put("Kuwait", "KWT");
        _countryCodeAlpha3MapByCountry.put("Kyrgyzstan", "KGZ");
        _countryCodeAlpha3MapByCountry.put("Lao People's Democratic Republic", "LAO");
        _countryCodeAlpha3MapByCountry.put("Latvia", "LVA");
        _countryCodeAlpha3MapByCountry.put("Lebanon", "LBN");
        _countryCodeAlpha3MapByCountry.put("Lesotho", "LSO");
        _countryCodeAlpha3MapByCountry.put("Liberia", "LBR");
        _countryCodeAlpha3MapByCountry.put("Libya", "LBY");
        _countryCodeAlpha3MapByCountry.put("Liechtenstein", "LIE");
        _countryCodeAlpha3MapByCountry.put("Lithuania", "LTU");
        _countryCodeAlpha3MapByCountry.put("Luxembourg", "LUX");
        _countryCodeAlpha3MapByCountry.put("Macao", "MAC");
        _countryCodeAlpha3MapByCountry.put("Madagascar", "MDG");
        _countryCodeAlpha3MapByCountry.put("Malawi", "MWI");
        _countryCodeAlpha3MapByCountry.put("Malaysia", "MYS");
        _countryCodeAlpha3MapByCountry.put("Maldives", "MDV");
        _countryCodeAlpha3MapByCountry.put("Mali", "MLI");
        _countryCodeAlpha3MapByCountry.put("Malta", "MLT");
        _countryCodeAlpha3MapByCountry.put("Marshall Islands", "MHL");
        _countryCodeAlpha3MapByCountry.put("Martinique", "MTQ");
        _countryCodeAlpha3MapByCountry.put("Mauritania", "MRT");
        _countryCodeAlpha3MapByCountry.put("Mauritius", "MUS");
        _countryCodeAlpha3MapByCountry.put("Mayotte", "MYT");
        _countryCodeAlpha3MapByCountry.put("Mexico", "MEX");
        _countryCodeAlpha3MapByCountry.put("Micronesia (Federated States of)", "FSM");
        _countryCodeAlpha3MapByCountry.put("Moldova, Republic of", "MDA");
        _countryCodeAlpha3MapByCountry.put("Monaco", "MCO");
        _countryCodeAlpha3MapByCountry.put("Mongolia", "MNG");
        _countryCodeAlpha3MapByCountry.put("Montenegro", "MNE");
        _countryCodeAlpha3MapByCountry.put("Montserrat", "MSR");
        _countryCodeAlpha3MapByCountry.put("Morocco", "MAR");
        _countryCodeAlpha3MapByCountry.put("Mozambique", "MOZ");
        _countryCodeAlpha3MapByCountry.put("Myanmar", "MMR");
        _countryCodeAlpha3MapByCountry.put("Namibia", "NAM");
        _countryCodeAlpha3MapByCountry.put("Nauru", "NRU");
        _countryCodeAlpha3MapByCountry.put("Nepal", "NPL");
        _countryCodeAlpha3MapByCountry.put("Netherlands", "NLD");
        _countryCodeAlpha3MapByCountry.put("New Caledonia", "NCL");
        _countryCodeAlpha3MapByCountry.put("New Zealand", "NZL");
        _countryCodeAlpha3MapByCountry.put("Nicaragua", "NIC");
        _countryCodeAlpha3MapByCountry.put("Niger", "NER");
        _countryCodeAlpha3MapByCountry.put("Nigeria", "NGA");
        _countryCodeAlpha3MapByCountry.put("Niue", "NIU");
        _countryCodeAlpha3MapByCountry.put("Norfolk Island", "NFK");
        _countryCodeAlpha3MapByCountry.put("North Macedonia", "MKD");
        _countryCodeAlpha3MapByCountry.put("Northern Mariana Islands", "MNP");
        _countryCodeAlpha3MapByCountry.put("Norway", "NOR");
        _countryCodeAlpha3MapByCountry.put("Oman", "OMN");
        _countryCodeAlpha3MapByCountry.put("Pakistan", "PAK");
        _countryCodeAlpha3MapByCountry.put("Palau", "PLW");
        _countryCodeAlpha3MapByCountry.put("Palestine, State of", "PSE");
        _countryCodeAlpha3MapByCountry.put("Panama", "PAN");
        _countryCodeAlpha3MapByCountry.put("Papua New Guinea", "PNG");
        _countryCodeAlpha3MapByCountry.put("Paraguay", "PRY");
        _countryCodeAlpha3MapByCountry.put("Peru", "PER");
        _countryCodeAlpha3MapByCountry.put("Philippines", "PHL");
        _countryCodeAlpha3MapByCountry.put("Pitcairn", "PCN");
        _countryCodeAlpha3MapByCountry.put("Poland", "POL");
        _countryCodeAlpha3MapByCountry.put("Portugal", "PRT");
        _countryCodeAlpha3MapByCountry.put("Puerto Rico", "PRI");
        _countryCodeAlpha3MapByCountry.put("Qatar", "QAT");
        _countryCodeAlpha3MapByCountry.put("Réunion", "REU");
        _countryCodeAlpha3MapByCountry.put("Romania", "ROU");
        _countryCodeAlpha3MapByCountry.put("Russian Federation", "RUS");
        _countryCodeAlpha3MapByCountry.put("Rwanda", "RWA");
        _countryCodeAlpha3MapByCountry.put("Saint Barthélemy", "BLM");
        _countryCodeAlpha3MapByCountry.put("Saint Helena, Ascension and Tristan da Cunha", "SHN");
        _countryCodeAlpha3MapByCountry.put("Saint Kitts and Nevis", "KNA");
        _countryCodeAlpha3MapByCountry.put("Saint Lucia", "LCA");
        _countryCodeAlpha3MapByCountry.put("Saint Martin (French part)", "MAF");
        _countryCodeAlpha3MapByCountry.put("Saint Pierre and Miquelon", "SPM");
        _countryCodeAlpha3MapByCountry.put("Saint Vincent and the Grenadines", "VCT");
        _countryCodeAlpha3MapByCountry.put("Samoa", "WSM");
        _countryCodeAlpha3MapByCountry.put("San Marino", "SMR");
        _countryCodeAlpha3MapByCountry.put("Sao Tome and Principe", "STP");
        _countryCodeAlpha3MapByCountry.put("Saudi Arabia", "SAU");
        _countryCodeAlpha3MapByCountry.put("Senegal", "SEN");
        _countryCodeAlpha3MapByCountry.put("Serbia", "SRB");
        _countryCodeAlpha3MapByCountry.put("Seychelles", "SYC");
        _countryCodeAlpha3MapByCountry.put("Sierra Leone", "SLE");
        _countryCodeAlpha3MapByCountry.put("Singapore", "SGP");
        _countryCodeAlpha3MapByCountry.put("Sint Maarten (Dutch part)", "SXM");
        _countryCodeAlpha3MapByCountry.put("Slovakia", "SVK");
        _countryCodeAlpha3MapByCountry.put("Slovenia", "SVN");
        _countryCodeAlpha3MapByCountry.put("Solomon Islands", "SLB");
        _countryCodeAlpha3MapByCountry.put("Somalia", "SOM");
        _countryCodeAlpha3MapByCountry.put("South Africa", "ZAF");
        _countryCodeAlpha3MapByCountry.put("South Georgia and the South Sandwich Islands", "SGS");
        _countryCodeAlpha3MapByCountry.put("South Sudan", "SSD");
        _countryCodeAlpha3MapByCountry.put("Spain", "ESP");
        _countryCodeAlpha3MapByCountry.put("Sri Lanka", "LKA");
        _countryCodeAlpha3MapByCountry.put("Sudan", "SDN");
        _countryCodeAlpha3MapByCountry.put("Suriname", "SUR");
        _countryCodeAlpha3MapByCountry.put("Svalbard and Jan Mayen", "SJM");
        _countryCodeAlpha3MapByCountry.put("Sweden", "SWE");
        _countryCodeAlpha3MapByCountry.put("Switzerland", "CHE");
        _countryCodeAlpha3MapByCountry.put("Syrian Arab Republic", "SYR");
        _countryCodeAlpha3MapByCountry.put("Taiwan, Province of China", "TWN");
        _countryCodeAlpha3MapByCountry.put("Tajikistan", "TJK");
        _countryCodeAlpha3MapByCountry.put("Tanzania, United Republic of", "TZA");
        _countryCodeAlpha3MapByCountry.put("Thailand", "THA");
        _countryCodeAlpha3MapByCountry.put("Timor-Leste", "TLS");
        _countryCodeAlpha3MapByCountry.put("Togo", "TGO");
        _countryCodeAlpha3MapByCountry.put("Tokelau", "TKL");
        _countryCodeAlpha3MapByCountry.put("Tonga", "TON");
        _countryCodeAlpha3MapByCountry.put("Trinidad and Tobago", "TTO");
        _countryCodeAlpha3MapByCountry.put("Tunisia", "TUN");
        _countryCodeAlpha3MapByCountry.put("Turkey", "TUR");
        _countryCodeAlpha3MapByCountry.put("Turkmenistan", "TKM");
        _countryCodeAlpha3MapByCountry.put("Turks and Caicos Islands", "TCA");
        _countryCodeAlpha3MapByCountry.put("Tuvalu", "TUV");
        _countryCodeAlpha3MapByCountry.put("Uganda", "UGA");
        _countryCodeAlpha3MapByCountry.put("Ukraine", "UKR");
        _countryCodeAlpha3MapByCountry.put("United Arab Emirates", "ARE");
        _countryCodeAlpha3MapByCountry.put("United Kingdom of Great Britain and Northern Ireland", "GBR");
        _countryCodeAlpha3MapByCountry.put("United States of America", "USA");
        _countryCodeAlpha3MapByCountry.put("United States Minor Outlying Islands", "UMI");
        _countryCodeAlpha3MapByCountry.put("Uruguay", "URY");
        _countryCodeAlpha3MapByCountry.put("Uzbekistan", "UZB");
        _countryCodeAlpha3MapByCountry.put("Vanuatu", "VUT");
        _countryCodeAlpha3MapByCountry.put("Venezuela (Bolivarian Republic of)", "VEN");
        _countryCodeAlpha3MapByCountry.put("Vietnam", "VNM");
        _countryCodeAlpha3MapByCountry.put("Virgin Islands (British)", "VGB");
        _countryCodeAlpha3MapByCountry.put("Virgin Islands (U.S.)", "VIR");
        _countryCodeAlpha3MapByCountry.put("Wallis and Futuna", "WLF");
        _countryCodeAlpha3MapByCountry.put("Western Sahara", "ESH");
        _countryCodeAlpha3MapByCountry.put("Yemen", "YEM");
        _countryCodeAlpha3MapByCountry.put("Zambia", "ZMB");
        _countryCodeAlpha3MapByCountry.put("Zimbabwe", "ZWE");

        // build the inverse
        _countryMapByAlpha3CountryCode = new HashMap<>();
        for (var country : _countryCodeAlpha3MapByCountry.keySet()){
            _countryMapByAlpha3CountryCode.put(_countryCodeAlpha3MapByCountry.get(country), country);
        }

        _countryCodeAlpha3MapByNumeric = new HashMap<>();
        _countryCodeAlpha3MapByNumeric.put("004", "AFG");
        _countryCodeAlpha3MapByNumeric.put("248", "ALA");
        _countryCodeAlpha3MapByNumeric.put("008", "ALB");
        _countryCodeAlpha3MapByNumeric.put("012", "DZA");
        _countryCodeAlpha3MapByNumeric.put("016", "ASM");
        _countryCodeAlpha3MapByNumeric.put("020", "AND");
        _countryCodeAlpha3MapByNumeric.put("024", "AGO");
        _countryCodeAlpha3MapByNumeric.put("660", "AIA");
        _countryCodeAlpha3MapByNumeric.put("010", "ATA");
        _countryCodeAlpha3MapByNumeric.put("028", "ATG");
        _countryCodeAlpha3MapByNumeric.put("032", "ARG");
        _countryCodeAlpha3MapByNumeric.put("051", "ARM");
        _countryCodeAlpha3MapByNumeric.put("533", "ABW");
        _countryCodeAlpha3MapByNumeric.put("036", "AUS");
        _countryCodeAlpha3MapByNumeric.put("040", "AUT");
        _countryCodeAlpha3MapByNumeric.put("031", "AZE");
        _countryCodeAlpha3MapByNumeric.put("044", "BHS");
        _countryCodeAlpha3MapByNumeric.put("048", "BHR");
        _countryCodeAlpha3MapByNumeric.put("050", "BGD");
        _countryCodeAlpha3MapByNumeric.put("052", "BRB");
        _countryCodeAlpha3MapByNumeric.put("112", "BLR");
        _countryCodeAlpha3MapByNumeric.put("056", "BEL");
        _countryCodeAlpha3MapByNumeric.put("084", "BLZ");
        _countryCodeAlpha3MapByNumeric.put("204", "BEN");
        _countryCodeAlpha3MapByNumeric.put("060", "BMU");
        _countryCodeAlpha3MapByNumeric.put("064", "BTN");
        _countryCodeAlpha3MapByNumeric.put("068", "BOL");
        _countryCodeAlpha3MapByNumeric.put("535", "BES");
        _countryCodeAlpha3MapByNumeric.put("070", "BIH");
        _countryCodeAlpha3MapByNumeric.put("072", "BWA");
        _countryCodeAlpha3MapByNumeric.put("074", "BVT");
        _countryCodeAlpha3MapByNumeric.put("076", "BRA");
        _countryCodeAlpha3MapByNumeric.put("086", "IOT");
        _countryCodeAlpha3MapByNumeric.put("096", "BRN");
        _countryCodeAlpha3MapByNumeric.put("100", "BGR");
        _countryCodeAlpha3MapByNumeric.put("854", "BFA");
        _countryCodeAlpha3MapByNumeric.put("108", "BDI");
        _countryCodeAlpha3MapByNumeric.put("132", "CPV");
        _countryCodeAlpha3MapByNumeric.put("116", "KHM");
        _countryCodeAlpha3MapByNumeric.put("120", "CMR");
        _countryCodeAlpha3MapByNumeric.put("124", "CAN");
        _countryCodeAlpha3MapByNumeric.put("136", "CYM");
        _countryCodeAlpha3MapByNumeric.put("140", "CAF");
        _countryCodeAlpha3MapByNumeric.put("148", "TCD");
        _countryCodeAlpha3MapByNumeric.put("152", "CHL");
        _countryCodeAlpha3MapByNumeric.put("156", "CHN");
        _countryCodeAlpha3MapByNumeric.put("162", "CXR");
        _countryCodeAlpha3MapByNumeric.put("166", "CCK");
        _countryCodeAlpha3MapByNumeric.put("170", "COL");
        _countryCodeAlpha3MapByNumeric.put("174", "COM");
        _countryCodeAlpha3MapByNumeric.put("178", "COG");
        _countryCodeAlpha3MapByNumeric.put("180", "COD");
        _countryCodeAlpha3MapByNumeric.put("184", "COK");
        _countryCodeAlpha3MapByNumeric.put("188", "CRI");
        _countryCodeAlpha3MapByNumeric.put("384", "CIV");
        _countryCodeAlpha3MapByNumeric.put("191", "HRV");
        _countryCodeAlpha3MapByNumeric.put("192", "CUB");
        _countryCodeAlpha3MapByNumeric.put("531", "CUW");
        _countryCodeAlpha3MapByNumeric.put("196", "CYP");
        _countryCodeAlpha3MapByNumeric.put("203", "CZE");
        _countryCodeAlpha3MapByNumeric.put("208", "DNK");
        _countryCodeAlpha3MapByNumeric.put("262", "DJI");
        _countryCodeAlpha3MapByNumeric.put("212", "DMA");
        _countryCodeAlpha3MapByNumeric.put("214", "DOM");
        _countryCodeAlpha3MapByNumeric.put("218", "ECU");
        _countryCodeAlpha3MapByNumeric.put("818", "EGY");
        _countryCodeAlpha3MapByNumeric.put("222", "SLV");
        _countryCodeAlpha3MapByNumeric.put("226", "GNQ");
        _countryCodeAlpha3MapByNumeric.put("232", "ERI");
        _countryCodeAlpha3MapByNumeric.put("233", "EST");
        _countryCodeAlpha3MapByNumeric.put("748", "SWZ");
        _countryCodeAlpha3MapByNumeric.put("231", "ETH");
        _countryCodeAlpha3MapByNumeric.put("238", "FLK");
        _countryCodeAlpha3MapByNumeric.put("234", "FRO");
        _countryCodeAlpha3MapByNumeric.put("242", "FJI");
        _countryCodeAlpha3MapByNumeric.put("246", "FIN");
        _countryCodeAlpha3MapByNumeric.put("250", "FRA");
        _countryCodeAlpha3MapByNumeric.put("254", "GUF");
        _countryCodeAlpha3MapByNumeric.put("258", "PYF");
        _countryCodeAlpha3MapByNumeric.put("260", "ATF");
        _countryCodeAlpha3MapByNumeric.put("266", "GAB");
        _countryCodeAlpha3MapByNumeric.put("270", "GMB");
        _countryCodeAlpha3MapByNumeric.put("268", "GEO");
        _countryCodeAlpha3MapByNumeric.put("276", "DEU");
        _countryCodeAlpha3MapByNumeric.put("288", "GHA");
        _countryCodeAlpha3MapByNumeric.put("292", "GIB");
        _countryCodeAlpha3MapByNumeric.put("300", "GRC");
        _countryCodeAlpha3MapByNumeric.put("304", "GRL");
        _countryCodeAlpha3MapByNumeric.put("308", "GRD");
        _countryCodeAlpha3MapByNumeric.put("312", "GLP");
        _countryCodeAlpha3MapByNumeric.put("316", "GUM");
        _countryCodeAlpha3MapByNumeric.put("320", "GTM");
        _countryCodeAlpha3MapByNumeric.put("831", "GGY");
        _countryCodeAlpha3MapByNumeric.put("324", "GIN");
        _countryCodeAlpha3MapByNumeric.put("624", "GNB");
        _countryCodeAlpha3MapByNumeric.put("328", "GUY");
        _countryCodeAlpha3MapByNumeric.put("332", "HTI");
        _countryCodeAlpha3MapByNumeric.put("334", "HMD");
        _countryCodeAlpha3MapByNumeric.put("336", "VAT");
        _countryCodeAlpha3MapByNumeric.put("340", "HND");
        _countryCodeAlpha3MapByNumeric.put("344", "HKG");
        _countryCodeAlpha3MapByNumeric.put("348", "HUN");
        _countryCodeAlpha3MapByNumeric.put("352", "ISL");
        _countryCodeAlpha3MapByNumeric.put("356", "IND");
        _countryCodeAlpha3MapByNumeric.put("360", "IDN");
        _countryCodeAlpha3MapByNumeric.put("364", "IRN");
        _countryCodeAlpha3MapByNumeric.put("368", "IRQ");
        _countryCodeAlpha3MapByNumeric.put("372", "IRL");
        _countryCodeAlpha3MapByNumeric.put("833", "IMN");
        _countryCodeAlpha3MapByNumeric.put("376", "ISR");
        _countryCodeAlpha3MapByNumeric.put("380", "ITA");
        _countryCodeAlpha3MapByNumeric.put("388", "JAM");
        _countryCodeAlpha3MapByNumeric.put("392", "JPN");
        _countryCodeAlpha3MapByNumeric.put("832", "JEY");
        _countryCodeAlpha3MapByNumeric.put("400", "JOR");
        _countryCodeAlpha3MapByNumeric.put("398", "KAZ");
        _countryCodeAlpha3MapByNumeric.put("404", "KEN");
        _countryCodeAlpha3MapByNumeric.put("296", "KIR");
        _countryCodeAlpha3MapByNumeric.put("408", "PRK");
        _countryCodeAlpha3MapByNumeric.put("410", "KOR");
        _countryCodeAlpha3MapByNumeric.put("414", "KWT");
        _countryCodeAlpha3MapByNumeric.put("417", "KGZ");
        _countryCodeAlpha3MapByNumeric.put("418", "LAO");
        _countryCodeAlpha3MapByNumeric.put("428", "LVA");
        _countryCodeAlpha3MapByNumeric.put("422", "LBN");
        _countryCodeAlpha3MapByNumeric.put("426", "LSO");
        _countryCodeAlpha3MapByNumeric.put("430", "LBR");
        _countryCodeAlpha3MapByNumeric.put("434", "LBY");
        _countryCodeAlpha3MapByNumeric.put("438", "LIE");
        _countryCodeAlpha3MapByNumeric.put("440", "LTU");
        _countryCodeAlpha3MapByNumeric.put("442", "LUX");
        _countryCodeAlpha3MapByNumeric.put("446", "MAC");
        _countryCodeAlpha3MapByNumeric.put("450", "MDG");
        _countryCodeAlpha3MapByNumeric.put("454", "MWI");
        _countryCodeAlpha3MapByNumeric.put("458", "MYS");
        _countryCodeAlpha3MapByNumeric.put("462", "MDV");
        _countryCodeAlpha3MapByNumeric.put("466", "MLI");
        _countryCodeAlpha3MapByNumeric.put("470", "MLT");
        _countryCodeAlpha3MapByNumeric.put("584", "MHL");
        _countryCodeAlpha3MapByNumeric.put("474", "MTQ");
        _countryCodeAlpha3MapByNumeric.put("478", "MRT");
        _countryCodeAlpha3MapByNumeric.put("480", "MUS");
        _countryCodeAlpha3MapByNumeric.put("175", "MYT");
        _countryCodeAlpha3MapByNumeric.put("484", "MEX");
        _countryCodeAlpha3MapByNumeric.put("583", "FSM");
        _countryCodeAlpha3MapByNumeric.put("498", "MDA");
        _countryCodeAlpha3MapByNumeric.put("492", "MCO");
        _countryCodeAlpha3MapByNumeric.put("496", "MNG");
        _countryCodeAlpha3MapByNumeric.put("499", "MNE");
        _countryCodeAlpha3MapByNumeric.put("500", "MSR");
        _countryCodeAlpha3MapByNumeric.put("504", "MAR");
        _countryCodeAlpha3MapByNumeric.put("508", "MOZ");
        _countryCodeAlpha3MapByNumeric.put("104", "MMR");
        _countryCodeAlpha3MapByNumeric.put("516", "NAM");
        _countryCodeAlpha3MapByNumeric.put("520", "NRU");
        _countryCodeAlpha3MapByNumeric.put("524", "NPL");
        _countryCodeAlpha3MapByNumeric.put("528", "NLD");
        _countryCodeAlpha3MapByNumeric.put("540", "NCL");
        _countryCodeAlpha3MapByNumeric.put("554", "NZL");
        _countryCodeAlpha3MapByNumeric.put("558", "NIC");
        _countryCodeAlpha3MapByNumeric.put("562", "NER");
        _countryCodeAlpha3MapByNumeric.put("566", "NGA");
        _countryCodeAlpha3MapByNumeric.put("570", "NIU");
        _countryCodeAlpha3MapByNumeric.put("574", "NFK");
        _countryCodeAlpha3MapByNumeric.put("807", "MKD");
        _countryCodeAlpha3MapByNumeric.put("580", "MNP");
        _countryCodeAlpha3MapByNumeric.put("578", "NOR");
        _countryCodeAlpha3MapByNumeric.put("512", "OMN");
        _countryCodeAlpha3MapByNumeric.put("586", "PAK");
        _countryCodeAlpha3MapByNumeric.put("585", "PLW");
        _countryCodeAlpha3MapByNumeric.put("275", "PSE");
        _countryCodeAlpha3MapByNumeric.put("591", "PAN");
        _countryCodeAlpha3MapByNumeric.put("598", "PNG");
        _countryCodeAlpha3MapByNumeric.put("600", "PRY");
        _countryCodeAlpha3MapByNumeric.put("604", "PER");
        _countryCodeAlpha3MapByNumeric.put("608", "PHL");
        _countryCodeAlpha3MapByNumeric.put("612", "PCN");
        _countryCodeAlpha3MapByNumeric.put("616", "POL");
        _countryCodeAlpha3MapByNumeric.put("620", "PRT");
        _countryCodeAlpha3MapByNumeric.put("630", "PRI");
        _countryCodeAlpha3MapByNumeric.put("634", "QAT");
        _countryCodeAlpha3MapByNumeric.put("638", "REU");
        _countryCodeAlpha3MapByNumeric.put("642", "ROU");
        _countryCodeAlpha3MapByNumeric.put("643", "RUS");
        _countryCodeAlpha3MapByNumeric.put("646", "RWA");
        _countryCodeAlpha3MapByNumeric.put("652", "BLM");
        _countryCodeAlpha3MapByNumeric.put("654", "SHN");
        _countryCodeAlpha3MapByNumeric.put("659", "KNA");
        _countryCodeAlpha3MapByNumeric.put("662", "LCA");
        _countryCodeAlpha3MapByNumeric.put("663", "MAF");
        _countryCodeAlpha3MapByNumeric.put("666", "SPM");
        _countryCodeAlpha3MapByNumeric.put("670", "VCT");
        _countryCodeAlpha3MapByNumeric.put("882", "WSM");
        _countryCodeAlpha3MapByNumeric.put("674", "SMR");
        _countryCodeAlpha3MapByNumeric.put("678", "STP");
        _countryCodeAlpha3MapByNumeric.put("682", "SAU");
        _countryCodeAlpha3MapByNumeric.put("686", "SEN");
        _countryCodeAlpha3MapByNumeric.put("688", "SRB");
        _countryCodeAlpha3MapByNumeric.put("690", "SYC");
        _countryCodeAlpha3MapByNumeric.put("694", "SLE");
        _countryCodeAlpha3MapByNumeric.put("702", "SGP");
        _countryCodeAlpha3MapByNumeric.put("534", "SXM");
        _countryCodeAlpha3MapByNumeric.put("703", "SVK");
        _countryCodeAlpha3MapByNumeric.put("705", "SVN");
        _countryCodeAlpha3MapByNumeric.put("090", "SLB");
        _countryCodeAlpha3MapByNumeric.put("706", "SOM");
        _countryCodeAlpha3MapByNumeric.put("710", "ZAF");
        _countryCodeAlpha3MapByNumeric.put("239", "SGS");
        _countryCodeAlpha3MapByNumeric.put("728", "SSD");
        _countryCodeAlpha3MapByNumeric.put("724", "ESP");
        _countryCodeAlpha3MapByNumeric.put("144", "LKA");
        _countryCodeAlpha3MapByNumeric.put("729", "SDN");
        _countryCodeAlpha3MapByNumeric.put("740", "SUR");
        _countryCodeAlpha3MapByNumeric.put("744", "SJM");
        _countryCodeAlpha3MapByNumeric.put("752", "SWE");
        _countryCodeAlpha3MapByNumeric.put("756", "CHE");
        _countryCodeAlpha3MapByNumeric.put("760", "SYR");
        _countryCodeAlpha3MapByNumeric.put("158", "TWN");
        _countryCodeAlpha3MapByNumeric.put("762", "TJK");
        _countryCodeAlpha3MapByNumeric.put("834", "TZA");
        _countryCodeAlpha3MapByNumeric.put("764", "THA");
        _countryCodeAlpha3MapByNumeric.put("626", "TLS");
        _countryCodeAlpha3MapByNumeric.put("768", "TGO");
        _countryCodeAlpha3MapByNumeric.put("772", "TKL");
        _countryCodeAlpha3MapByNumeric.put("776", "TON");
        _countryCodeAlpha3MapByNumeric.put("780", "TTO");
        _countryCodeAlpha3MapByNumeric.put("788", "TUN");
        _countryCodeAlpha3MapByNumeric.put("792", "TUR");
        _countryCodeAlpha3MapByNumeric.put("795", "TKM");
        _countryCodeAlpha3MapByNumeric.put("796", "TCA");
        _countryCodeAlpha3MapByNumeric.put("798", "TUV");
        _countryCodeAlpha3MapByNumeric.put("800", "UGA");
        _countryCodeAlpha3MapByNumeric.put("804", "UKR");
        _countryCodeAlpha3MapByNumeric.put("784", "ARE");
        _countryCodeAlpha3MapByNumeric.put("826", "GBR");
        _countryCodeAlpha3MapByNumeric.put("840", "USA");
        _countryCodeAlpha3MapByNumeric.put("581", "UMI");
        _countryCodeAlpha3MapByNumeric.put("858", "URY");
        _countryCodeAlpha3MapByNumeric.put("860", "UZB");
        _countryCodeAlpha3MapByNumeric.put("548", "VUT");
        _countryCodeAlpha3MapByNumeric.put("862", "VEN");
        _countryCodeAlpha3MapByNumeric.put("704", "VNM");
        _countryCodeAlpha3MapByNumeric.put("092", "VGB");
        _countryCodeAlpha3MapByNumeric.put("850", "VIR");
        _countryCodeAlpha3MapByNumeric.put("876", "WLF");
        _countryCodeAlpha3MapByNumeric.put("732", "ESH");
        _countryCodeAlpha3MapByNumeric.put("887", "YEM");
        _countryCodeAlpha3MapByNumeric.put("894", "ZMB");
        _countryCodeAlpha3MapByNumeric.put("716", "ZWE");

        // build the inverse
        _numericCodeMapByAlpha3CountryCode = new HashMap<>();
        for (var country : _countryCodeAlpha3MapByNumeric.keySet()){
            _numericCodeMapByAlpha3CountryCode.put(_countryCodeAlpha3MapByNumeric.get(country), country);
        }

    }

    // Alpha2CodeByCountry
    public static HashMap getAlpha2CodeByCountry() {
        return _countryCodeAlpha2MapByCountry;
    }

    // CountryByAlpha2Code
    public static HashMap getCountryByAlpha2Code() {
        return _countryMapByAlpha2CountryCode;
    }

    // Alpha3CodeByAlpha2Code
    public static HashMap getAlpha3CodeByAlpha2Code() {
        return _countryCodeAlpha3MapAlpha2CountryCode;
    }

    // Alpha2CodeByAlpha3Code
    public static HashMap getAlpha2CodeByAlpha3Code() {
        return _countryCodeAlpha2MapAlpha3CountryCode;
    }

    // Alpha3CodeByCountry
    public static HashMap getAlpha3CodeByCountry() {
        return _countryCodeAlpha3MapByCountry;
    }

    // CountryByAlpha3Code
    public static HashMap getCountryByAlpha3Code() {
        return _countryMapByAlpha3CountryCode;
    }

    // CountryCodeByNumeric
    public static HashMap getAlpha3CountryCodeByNumeric() {
        return _countryCodeAlpha3MapByNumeric;
    }

    // NumericByCountryCode
    public static HashMap getNumericByAlpha3CountryCode() {
        return _numericCodeMapByAlpha3CountryCode;
    }

    // CountryCodeByNumeric
    public static HashMap getAlpha2CountryCodeByNumeric() {
        return _countryCodeAlpha2MapByNumericCode;
    }

    // NumericByCountryCode
    public static HashMap getNumericByAlpha2CountryCode() {
        return _numericCodeMapByCountryCodeAlpha2;
    }

    // NumericCodeByCountry
    public static HashMap getNumericCodeByCountry() {
        return _numericCodeMapByCountry;
    }

    // CountryByNumericCode
    public static HashMap getCountryByNumericCode() {
        return _countryMapByNumeric;
    }

    // PhoneCodeByCountry
    public HashMap getPhoneCodeByCountry() {
        return _phoneCodeMapByCountry;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy