// SPDX-License-Identifier: MIT
pragma solidity 0.8.28;

//contains all the alpha-3 country codes
library CountryCodes {
    // A
    string public constant AFGHANISTAN = "AFG";
    string public constant ALBANIA = "ALB";
    string public constant ALGERIA = "DZA";
    string public constant ANDORRA = "AND";
    string public constant ANGOLA = "AGO";
    string public constant ANTIGUA_AND_BARBUDA = "ATG";
    string public constant ARGENTINA = "ARG";
    string public constant ARMENIA = "ARM";
    string public constant AUSTRALIA = "AUS";
    string public constant AUSTRIA = "AUT";
    string public constant AZERBAIJAN = "AZE";

    // B
    string public constant BAHAMAS = "BHS";
    string public constant BAHRAIN = "BHR";
    string public constant BANGLADESH = "BGD";
    string public constant BARBADOS = "BRB";
    string public constant BELARUS = "BLR";
    string public constant BELGIUM = "BEL";
    string public constant BELIZE = "BLZ";
    string public constant BENIN = "BEN";
    string public constant BHUTAN = "BTN";
    string public constant BOLIVIA = "BOL";
    string public constant BOSNIA_AND_HERZEGOVINA = "BIH";
    string public constant BOTSWANA = "BWA";
    string public constant BRAZIL = "BRA";
    string public constant BRUNEI = "BRN";
    string public constant BULGARIA = "BGR";
    string public constant BURKINA_FASO = "BFA";
    string public constant BURUNDI = "BDI";

    // C
    string public constant CAMBODIA = "KHM";
    string public constant CAMEROON = "CMR";
    string public constant CANADA = "CAN";
    string public constant CAPE_VERDE = "CPV";
    string public constant CENTRAL_AFRICAN_REPUBLIC = "CAF";
    string public constant CHAD = "TCD";
    string public constant CHILE = "CHL";
    string public constant CHINA = "CHN";
    string public constant COLOMBIA = "COL";
    string public constant COMOROS = "COM";
    string public constant CONGO = "COG";
    string public constant CONGO_DR = "COD"; // Democratic Republic of the Congo
    string public constant COSTA_RICA = "CRI";
    string public constant CROATIA = "HRV";
    string public constant CUBA = "CUB";
    string public constant CYPRUS = "CYP";
    string public constant CZECH_REPUBLIC = "CZE";

    // D
    string public constant DENMARK = "DNK";
    string public constant DJIBOUTI = "DJI";
    string public constant DOMINICA = "DMA";
    string public constant DOMINICAN_REPUBLIC = "DOM";

    // E
    string public constant ECUADOR = "ECU";
    string public constant EGYPT = "EGY";
    string public constant EL_SALVADOR = "SLV";
    string public constant EQUATORIAL_GUINEA = "GNQ";
    string public constant ERITREA = "ERI";
    string public constant ESTONIA = "EST";
    string public constant ESWATINI = "SWZ"; // formerly Swaziland
    string public constant ETHIOPIA = "ETH";

    // F
    string public constant FIJI = "FJI";
    string public constant FINLAND = "FIN";
    string public constant FRANCE = "FRA";

    // G
    string public constant GABON = "GAB";
    string public constant GAMBIA = "GMB";
    string public constant GEORGIA = "GEO";
    string public constant GERMANY = "DEU";
    string public constant GHANA = "GHA";
    string public constant GREECE = "GRC";
    string public constant GRENADA = "GRD";
    string public constant GUATEMALA = "GTM";
    string public constant GUINEA = "GIN";
    string public constant GUINEA_BISSAU = "GNB";
    string public constant GUYANA = "GUY";

    // H
    string public constant HAITI = "HTI";
    string public constant HONDURAS = "HND";
    string public constant HUNGARY = "HUN";

    // I
    string public constant ICELAND = "ISL";
    string public constant INDIA = "IND";
    string public constant INDONESIA = "IDN";
    string public constant IRAN = "IRN";
    string public constant IRAQ = "IRQ";
    string public constant IRELAND = "IRL";
    string public constant ISRAEL = "ISR";
    string public constant ITALY = "ITA";
    string public constant IVORY_COAST = "CIV"; // Côte d'Ivoire

    // J
    string public constant JAMAICA = "JAM";
    string public constant JAPAN = "JPN";
    string public constant JORDAN = "JOR";

    // K
    string public constant KAZAKHSTAN = "KAZ";
    string public constant KENYA = "KEN";
    string public constant KIRIBATI = "KIR";
    string public constant NORTH_KOREA = "PRK";
    string public constant SOUTH_KOREA = "KOR";
    string public constant KUWAIT = "KWT";
    string public constant KYRGYZSTAN = "KGZ";

    // L
    string public constant LAOS = "LAO";
    string public constant LATVIA = "LVA";
    string public constant LEBANON = "LBN";
    string public constant LESOTHO = "LSO";
    string public constant LIBERIA = "LBR";
    string public constant LIBYA = "LBY";
    string public constant LIECHTENSTEIN = "LIE";
    string public constant LITHUANIA = "LTU";
    string public constant LUXEMBOURG = "LUX";

    // M
    string public constant MADAGASCAR = "MDG";
    string public constant MALAWI = "MWI";
    string public constant MALAYSIA = "MYS";
    string public constant MALDIVES = "MDV";
    string public constant MALI = "MLI";
    string public constant MALTA = "MLT";
    string public constant MARSHALL_ISLANDS = "MHL";
    string public constant MAURITANIA = "MRT";
    string public constant MAURITIUS = "MUS";
    string public constant MEXICO = "MEX";
    string public constant MICRONESIA = "FSM";
    string public constant MOLDOVA = "MDA";
    string public constant MONACO = "MCO";
    string public constant MONGOLIA = "MNG";
    string public constant MONTENEGRO = "MNE";
    string public constant MOROCCO = "MAR";
    string public constant MOZAMBIQUE = "MOZ";
    string public constant MYANMAR = "MMR";

    // N
    string public constant NAMIBIA = "NAM";
    string public constant NAURU = "NRU";
    string public constant NEPAL = "NPL";
    string public constant NETHERLANDS = "NLD";
    string public constant NEW_ZEALAND = "NZL";
    string public constant NICARAGUA = "NIC";
    string public constant NIGER = "NER";
    string public constant NIGERIA = "NGA";
    string public constant NORTH_MACEDONIA = "MKD";
    string public constant NORWAY = "NOR";

    // O
    string public constant OMAN = "OMN";

    // P
    string public constant PAKISTAN = "PAK";
    string public constant PALAU = "PLW";
    string public constant PANAMA = "PAN";
    string public constant PAPUA_NEW_GUINEA = "PNG";
    string public constant PARAGUAY = "PRY";
    string public constant PERU = "PER";
    string public constant PHILIPPINES = "PHL";
    string public constant POLAND = "POL";
    string public constant PORTUGAL = "PRT";

    // Q
    string public constant QATAR = "QAT";

    // R
    string public constant ROMANIA = "ROU";
    string public constant RUSSIA = "RUS";
    string public constant RWANDA = "RWA";

    // S
    string public constant SAINT_KITTS_AND_NEVIS = "KNA";
    string public constant SAINT_LUCIA = "LCA";
    string public constant SAINT_VINCENT_AND_THE_GRENADINES = "VCT";
    string public constant SAMOA = "WSM";
    string public constant SAN_MARINO = "SMR";
    string public constant SAO_TOME_AND_PRINCIPE = "STP";
    string public constant SAUDI_ARABIA = "SAU";
    string public constant SENEGAL = "SEN";
    string public constant SERBIA = "SRB";
    string public constant SEYCHELLES = "SYC";
    string public constant SIERRA_LEONE = "SLE";
    string public constant SINGAPORE = "SGP";
    string public constant SLOVAKIA = "SVK";
    string public constant SLOVENIA = "SVN";
    string public constant SOLOMON_ISLANDS = "SLB";
    string public constant SOMALIA = "SOM";
    string public constant SOUTH_AFRICA = "ZAF";
    string public constant SOUTH_SUDAN = "SSD";
    string public constant SPAIN = "ESP";
    string public constant SRI_LANKA = "LKA";
    string public constant SUDAN = "SDN";
    string public constant SURINAME = "SUR";
    string public constant SWEDEN = "SWE";
    string public constant SWITZERLAND = "CHE";
    string public constant SYRIA = "SYR";

    // T
    string public constant TAIWAN = "TWN";
    string public constant TAJIKISTAN = "TJK";
    string public constant TANZANIA = "TZA";
    string public constant THAILAND = "THA";
    string public constant TIMOR_LESTE = "TLS";
    string public constant TOGO = "TGO";
    string public constant TONGA = "TON";
    string public constant TRINIDAD_AND_TOBAGO = "TTO";
    string public constant TUNISIA = "TUN";
    string public constant TURKEY = "TUR";
    string public constant TURKMENISTAN = "TKM";
    string public constant TUVALU = "TUV";

    // U
    string public constant UGANDA = "UGA";
    string public constant UKRAINE = "UKR";
    string public constant UNITED_ARAB_EMIRATES = "ARE";
    string public constant UNITED_KINGDOM = "GBR";
    string public constant UNITED_STATES = "USA";
    string public constant URUGUAY = "URY";
    string public constant UZBEKISTAN = "UZB";

    // V
    string public constant VANUATU = "VUT";
    string public constant VATICAN = "VAT";
    string public constant VENEZUELA = "VEN";
    string public constant VIETNAM = "VNM";

    // Y
    string public constant YEMEN = "YEM";

    // Z
    string public constant ZAMBIA = "ZMB";
    string public constant ZIMBABWE = "ZWE";
}
