text:
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Bia.Countries
{
    static public partial class Iso3166Countries
    {
        public static readonly ReadOnlyCollection<Iso3166Country> Countries = new List<Iso3166Country>()
        {
            new Iso3166Country(
                shortName: "Afghanistan",
                fullName: "the Islamic Republic of Afghanistan",
                activeDirectoryName: "Afghanistan",
                alpha2: "AF",
                alpha3: "AFG",
                numeric: 4
            ),

            new Iso3166Country(
                shortName: "Åland Islands",
                fullName: null,
                activeDirectoryName: "Åland Islands",
                alpha2: "AX",
                alpha3: "ALA",
                numeric: 248
            ),

            new Iso3166Country(
                shortName: "Albania",
                fullName: "the Republic of Albania",
                activeDirectoryName: "Albania",
                alpha2: "AL",
                alpha3: "ALB",
                numeric: 8
            ),

            new Iso3166Country(
                shortName: "Algeria",
                fullName: "the People's Democratic Republic of Algeria",
                activeDirectoryName: "Algeria",
                alpha2: "DZ",
                alpha3: "DZA",
                numeric: 12
            ),

            new Iso3166Country(
                shortName: "American Samoa",
                fullName: null,
                activeDirectoryName: "American Samoa",
                alpha2: "AS",
                alpha3: "ASM",
                numeric: 16
            ),

            new Iso3166Country(
                shortName: "Andorra",
                fullName: "the Principality of Andorra",
                activeDirectoryName: "Andorra",
                alpha2: "AD",
                alpha3: "AND",
                numeric: 20
            ),

            new Iso3166Country(
                shortName: "Angola",
                fullName: "the Republic of Angola",
                activeDirectoryName: "Angola",
                alpha2: "AO",
                alpha3: "AGO",
                numeric: 24
            ),

            new Iso3166Country(
                shortName: "Anguilla",
                fullName: null,
                activeDirectoryName: "Anguilla",
                alpha2: "AI",
                alpha3: "AIA",
                numeric: 660
            ),

            new Iso3166Country(
                shortName: "Antarctica",
                fullName: null,
                activeDirectoryName: "Antarctica",
                alpha2: "AQ",
                alpha3: "ATA",
                numeric: 10
            ),

            new Iso3166Country(
                shortName: "Antigua and Barbuda",
                fullName: null,
                activeDirectoryName: "Antigua and Barbuda",
                alpha2: "AG",
                alpha3: "ATG",
                numeric: 28
            ),

            new Iso3166Country(
                shortName: "Argentina",
                fullName: "the Argentine Republic",
                activeDirectoryName: "Argentina",
                alpha2: "AR",
                alpha3: "ARG",
                numeric: 32
            ),

            new Iso3166Country(
                shortName: "Armenia",
                fullName: "the Republic of Armenia",
                activeDirectoryName: "Armenia",
                alpha2: "AM",
                alpha3: "ARM",
                numeric: 51
            ),

            new Iso3166Country(
                shortName: "Aruba",
                fullName: null,
                activeDirectoryName: "Aruba",
                alpha2: "AW",
                alpha3: "ABW",
                numeric: 533
            ),

            new Iso3166Country(
                shortName: "Australia",
                fullName: null,
                activeDirectoryName: "Australia",
                alpha2: "AU",
                alpha3: "AUS",
                numeric: 36
            ),

            new Iso3166Country(
                shortName: "Austria",
                fullName: "the Republic of Austria",
                activeDirectoryName: "Austria",
                alpha2: "AT",
                alpha3: "AUT",
                numeric: 40
            ),

            new Iso3166Country(
                shortName: "Azerbaijan",
                fullName: "the Republic of Azerbaijan",
                activeDirectoryName: "Azerbaijan",
                alpha2: "AZ",
                alpha3: "AZE",
                numeric: 31
            ),

            new Iso3166Country(
                shortName: "Bahamas",
                fullName: "the Commonwealth of the Bahamas",
                activeDirectoryName: "Bahamas, The",
                alpha2: "BS",
                alpha3: "BHS",
                numeric: 44
            ),

            new Iso3166Country(
                shortName: "Bahrain",
                fullName: "the Kingdom of Bahrain",
                activeDirectoryName: "Bahrain",
                alpha2: "BH",
                alpha3: "BHR",
                numeric: 48
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Baker Island",
                alpha2: "XX",
                alpha3: null,
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "Bangladesh",
                fullName: "the People's Republic of Bangladesh",
                activeDirectoryName: "Bangladesh",
                alpha2: "BD",
                alpha3: "BGD",
                numeric: 50
            ),

            new Iso3166Country(
                shortName: "Barbados",
                fullName: null,
                activeDirectoryName: "Barbados",
                alpha2: "BB",
                alpha3: "BRB",
                numeric: 52
            ),

            new Iso3166Country(
                shortName: "Belarus",
                fullName: "the Republic of Belarus",
                activeDirectoryName: "Belarus",
                alpha2: "BY",
                alpha3: "BLR",
                numeric: 112
            ),

            new Iso3166Country(
                shortName: "Belgium",
                fullName: "the Kingdom of Belgium",
                activeDirectoryName: "Belgium",
                alpha2: "BE",
                alpha3: "BEL",
                numeric: 56
            ),

            new Iso3166Country(
                shortName: "Belize",
                fullName: null,
                activeDirectoryName: "Belize",
                alpha2: "BZ",
                alpha3: "BLZ",
                numeric: 84
            ),

            new Iso3166Country(
                shortName: "Benin",
                fullName: "the Republic of Benin",
                activeDirectoryName: "Benin",
                alpha2: "BJ",
                alpha3: "BEN",
                numeric: 204
            ),

            new Iso3166Country(
                shortName: "Bermuda",
                fullName: null,
                activeDirectoryName: "Bermuda",
                alpha2: "BM",
                alpha3: "BMU",
                numeric: 60
            ),

            new Iso3166Country(
                shortName: "Bhutan",
                fullName: "the Kingdom of Bhutan",
                activeDirectoryName: "Bhutan",
                alpha2: "BT",
                alpha3: "BTN",
                numeric: 64
            ),

            new Iso3166Country(
                shortName: "Bolivia (Plurinational State of)",
                fullName: "the Plurinational State of Bolivia",
                activeDirectoryName: "Bolivia",
                alpha2: "BO",
                alpha3: "BOL",
                numeric: 68
            ),

            new Iso3166Country(
                shortName: "Bonaire, Sint Eustatius and Saba",
                fullName: null,
                activeDirectoryName: "Bonaire, Sint Eustatius and Saba",
                alpha2: "BQ",
                alpha3: "BES",
                numeric: 535
            ),

            new Iso3166Country(
                shortName: "Bosnia and Herzegovina",
                fullName: null,
                activeDirectoryName: "Bosnia and Herzegovina",
                alpha2: "BA",
                alpha3: "BIH",
                numeric: 70
            ),

            new Iso3166Country(
                shortName: "Botswana",
                fullName: "the Republic of Botswana",
                activeDirectoryName: "Botswana",
                alpha2: "BW",
                alpha3: "BWA",
                numeric: 72
            ),

            new Iso3166Country(
                shortName: "Bouvet Island",
                fullName: null,
                activeDirectoryName: "Bouvet Island",
                alpha2: "BV",
                alpha3: "BVT",
                numeric: 74
            ),

            new Iso3166Country(
                shortName: "Brazil",
                fullName: "the Federative Republic of Brazil",
                activeDirectoryName: "Brazil",
                alpha2: "BR",
                alpha3: "BRA",
                numeric: 76
            ),

            new Iso3166Country(
                shortName: "British Indian Ocean Territory",
                fullName: "the British Indian Ocean Territory",
                activeDirectoryName: "British Indian Ocean Territory",
                alpha2: "IO",
                alpha3: "IOT",
                numeric: 86
            ),

            new Iso3166Country(
                shortName: "Brunei Darussalam",
                fullName: null,
                activeDirectoryName: "Brunei",
                alpha2: "BN",
                alpha3: "BRN",
                numeric: 96
            ),

            new Iso3166Country(
                shortName: "Bulgaria",
                fullName: "the Republic of Bulgaria",
                activeDirectoryName: "Bulgaria",
                alpha2: "BG",
                alpha3: "BGR",
                numeric: 100
            ),

            new Iso3166Country(
                shortName: "Burkina Faso",
                fullName: null,
                activeDirectoryName: "Burkina Faso",
                alpha2: "BF",
                alpha3: "BFA",
                numeric: 854
            ),

            new Iso3166Country(
                shortName: "Burundi",
                fullName: "the Republic of Burundi",
                activeDirectoryName: "Burundi",
                alpha2: "BI",
                alpha3: "BDI",
                numeric: 108
            ),

            new Iso3166Country(
                shortName: "Cabo Verde",
                fullName: "the Republic of Cabo Verde",
                activeDirectoryName: "Cape Verde",
                alpha2: "CV",
                alpha3: "CPV",
                numeric: 132
            ),

            new Iso3166Country(
                shortName: "Cambodia",
                fullName: "the Kingdom of Cambodia",
                activeDirectoryName: "Cambodia",
                alpha2: "KH",
                alpha3: "KHM",
                numeric: 116
            ),

            new Iso3166Country(
                shortName: "Cameroon",
                fullName: "the Republic of Cameroon",
                activeDirectoryName: "Cameroon",
                alpha2: "CM",
                alpha3: "CMR",
                numeric: 120
            ),

            new Iso3166Country(
                shortName: "Canada",
                fullName: null,
                activeDirectoryName: "Canada",
                alpha2: "CA",
                alpha3: "CAN",
                numeric: 124
            ),

            new Iso3166Country(
                shortName: "Cayman Islands",
                fullName: "the Cayman Islands",
                activeDirectoryName: "Cayman Islands",
                alpha2: "KY",
                alpha3: "CYM",
                numeric: 136
            ),

            new Iso3166Country(
                shortName: "Central African Republic",
                fullName: "the Central African Republic",
                activeDirectoryName: "Central African Republic",
                alpha2: "CF",
                alpha3: "CAF",
                numeric: 140
            ),

            new Iso3166Country(
                shortName: "Chad",
                fullName: "the Republic of Chad",
                activeDirectoryName: "Chad",
                alpha2: "TD",
                alpha3: "TCD",
                numeric: 148
            ),

            new Iso3166Country(
                shortName: "Chile",
                fullName: "the Republic of Chile",
                activeDirectoryName: "Chile",
                alpha2: "CL",
                alpha3: "CHL",
                numeric: 152
            ),

            new Iso3166Country(
                shortName: "China",
                fullName: "the People's Republic of China",
                activeDirectoryName: "China",
                alpha2: "CN",
                alpha3: "CHN",
                numeric: 156
            ),

            new Iso3166Country(
                shortName: "Christmas Island",
                fullName: null,
                activeDirectoryName: "Christmas Island",
                alpha2: "CX",
                alpha3: "CXR",
                numeric: 162
            ),

            new Iso3166Country(
                shortName: "Cocos (Keeling) Islands",
                fullName: "the Cocos (Keeling) Islands",
                activeDirectoryName: "Cocos (Keeling) Islands",
                alpha2: "CC",
                alpha3: "CCK",
                numeric: 166
            ),

            new Iso3166Country(
                shortName: "Colombia",
                fullName: "the Republic of Colombia",
                activeDirectoryName: "Colombia",
                alpha2: "CO",
                alpha3: "COL",
                numeric: 170
            ),

            new Iso3166Country(
                shortName: "Comoros",
                fullName: "the Union of the Comoros",
                activeDirectoryName: "Comoros",
                alpha2: "KM",
                alpha3: "COM",
                numeric: 174
            ),

            new Iso3166Country(
                shortName: "Congo, Democratic Republic of the",
                fullName: "the Democratic Republic of the Congo",
                activeDirectoryName: "Congo (DRC)",
                alpha2: "CD",
                alpha3: "COD",
                numeric: 180
            ),

            new Iso3166Country(
                shortName: "Congo",
                fullName: "the Republic of the Congo",
                activeDirectoryName: "Congo",
                alpha2: "CG",
                alpha3: "COG",
                numeric: 178
            ),

            new Iso3166Country(
                shortName: "Cook Islands",
                fullName: null,
                activeDirectoryName: "Cook Islands",
                alpha2: "CK",
                alpha3: "COK",
                numeric: 184
            ),

            new Iso3166Country(
                shortName: "Costa Rica",
                fullName: "the Republic of Costa Rica",
                activeDirectoryName: "Costa Rica",
                alpha2: "CR",
                alpha3: "CRI",
                numeric: 188
            ),

            new Iso3166Country(
                shortName: "Côte d'Ivoire",
                fullName: "the Republic of Côte d'Ivoire",
                activeDirectoryName: "Côte d'Ivoire",
                alpha2: "CI",
                alpha3: "CIV",
                numeric: 384
            ),

            new Iso3166Country(
                shortName: "Croatia",
                fullName: "the Republic of Croatia",
                activeDirectoryName: "Croatia",
                alpha2: "HR",
                alpha3: "HRV",
                numeric: 191
            ),

            new Iso3166Country(
                shortName: "Cuba",
                fullName: "the Republic of Cuba",
                activeDirectoryName: "Cuba",
                alpha2: "CU",
                alpha3: "CUB",
                numeric: 192
            ),

            new Iso3166Country(
                shortName: "Curaçao",
                fullName: null,
                activeDirectoryName: "Curaçao",
                alpha2: "CW",
                alpha3: "CUW",
                numeric: 531
            ),

            new Iso3166Country(
                shortName: "Cyprus",
                fullName: "the Republic of Cyprus",
                activeDirectoryName: "Cyprus",
                alpha2: "CY",
                alpha3: "CYP",
                numeric: 196
            ),

            new Iso3166Country(
                shortName: "Czechia",
                fullName: "the Czech Republic",
                activeDirectoryName: "Czech Republic",
                alpha2: "CZ",
                alpha3: "CZE",
                numeric: 203
            ),

            new Iso3166Country(
                shortName: "Denmark",
                fullName: "the Kingdom of Denmark",
                activeDirectoryName: "Denmark",
                alpha2: "DK",
                alpha3: "DNK",
                numeric: 208
            ),

            new Iso3166Country(
                shortName: "Djibouti",
                fullName: "the Republic of Djibouti",
                activeDirectoryName: "Djibouti",
                alpha2: "DJ",
                alpha3: "DJI",
                numeric: 262
            ),

            new Iso3166Country(
                shortName: "Dominica",
                fullName: "the Commonwealth of Dominica",
                activeDirectoryName: "Dominica",
                alpha2: "DM",
                alpha3: "DMA",
                numeric: 212
            ),

            new Iso3166Country(
                shortName: "Dominican Republic",
                fullName: "the Dominican Republic",
                activeDirectoryName: "Dominican Republic",
                alpha2: "DO",
                alpha3: "DOM",
                numeric: 214
            ),

            new Iso3166Country(
                shortName: "Ecuador",
                fullName: "the Republic of Ecuador",
                activeDirectoryName: "Ecuador",
                alpha2: "EC",
                alpha3: "ECU",
                numeric: 218
            ),

            new Iso3166Country(
                shortName: "Egypt",
                fullName: "the Arab Republic of Egypt",
                activeDirectoryName: "Egypt",
                alpha2: "EG",
                alpha3: "EGY",
                numeric: 818
            ),

            new Iso3166Country(
                shortName: "El Salvador",
                fullName: "the Republic of El Salvador",
                activeDirectoryName: "El Salvador",
                alpha2: "SV",
                alpha3: "SLV",
                numeric: 222
            ),

            new Iso3166Country(
                shortName: "Equatorial Guinea",
                fullName: "the Republic of Equatorial Guinea",
                activeDirectoryName: "Equatorial Guinea",
                alpha2: "GQ",
                alpha3: "GNQ",
                numeric: 226
            ),

            new Iso3166Country(
                shortName: "Eritrea",
                fullName: "the State of Eritrea",
                activeDirectoryName: "Eritrea",
                alpha2: "ER",
                alpha3: "ERI",
                numeric: 232
            ),

            new Iso3166Country(
                shortName: "Estonia",
                fullName: "the Republic of Estonia",
                activeDirectoryName: "Estonia",
                alpha2: "EE",
                alpha3: "EST",
                numeric: 233
            ),

            new Iso3166Country(
                shortName: "Ethiopia",
                fullName: "the Federal Democratic Republic of Ethiopia",
                activeDirectoryName: "Ethiopia",
                alpha2: "ET",
                alpha3: "ETH",
                numeric: 231
            ),

            new Iso3166Country(
                shortName: "Falkland Islands (Malvinas)",
                fullName: null,
                activeDirectoryName: "Falkland Islands (Islas Malvinas)",
                alpha2: "FK",
                alpha3: "FLK",
                numeric: 238
            ),

            new Iso3166Country(
                shortName: "Faroe Islands",
                fullName: null,
                activeDirectoryName: "Faroe Islands",
                alpha2: "FO",
                alpha3: "FRO",
                numeric: 234
            ),

            new Iso3166Country(
                shortName: "Fiji",
                fullName: "the Republic of Fiji",
                activeDirectoryName: "Fiji Islands",
                alpha2: "FJ",
                alpha3: "FJI",
                numeric: 242
            ),

            new Iso3166Country(
                shortName: "Finland",
                fullName: "the Republic of Finland",
                activeDirectoryName: "Finland",
                alpha2: "FI",
                alpha3: "FIN",
                numeric: 246
            ),

            new Iso3166Country(
                shortName: "France",
                fullName: "the French Republic",
                activeDirectoryName: "France",
                alpha2: "FR",
                alpha3: "FRA",
                numeric: 250
            ),

            new Iso3166Country(
                shortName: "French Guiana",
                fullName: null,
                activeDirectoryName: "French Guiana",
                alpha2: "GF",
                alpha3: "GUF",
                numeric: 254
            ),

            new Iso3166Country(
                shortName: "French Polynesia",
                fullName: null,
                activeDirectoryName: "French Polynesia",
                alpha2: "PF",
                alpha3: "PYF",
                numeric: 258
            ),

            new Iso3166Country(
                shortName: "French Southern Territories",
                fullName: null,
                activeDirectoryName: "French Southern and Antarctic Lands",
                alpha2: "TF",
                alpha3: "ATF",
                numeric: 260
            ),

            new Iso3166Country(
                shortName: "Gabon",
                fullName: "the Gabonese Republic",
                activeDirectoryName: "Gabon",
                alpha2: "GA",
                alpha3: "GAB",
                numeric: 266
            ),

            new Iso3166Country(
                shortName: "Gambia",
                fullName: "the Islamic Republic of the Gambia",
                activeDirectoryName: "Gambia, The",
                alpha2: "GM",
                alpha3: "GMB",
                numeric: 270
            ),

            new Iso3166Country(
                shortName: "Georgia",
                fullName: null,
                activeDirectoryName: "Georgia",
                alpha2: "GE",
                alpha3: "GEO",
                numeric: 268
            ),

            new Iso3166Country(
                shortName: "Germany",
                fullName: "the Federal Republic of Germany",
                activeDirectoryName: "Germany",
                alpha2: "DE",
                alpha3: "DEU",
                numeric: 276
            ),

            new Iso3166Country(
                shortName: "Ghana",
                fullName: "the Republic of Ghana",
                activeDirectoryName: "Ghana",
                alpha2: "GH",
                alpha3: "GHA",
                numeric: 288
            ),

            new Iso3166Country(
                shortName: "Gibraltar",
                fullName: null,
                activeDirectoryName: "Gibraltar",
                alpha2: "GI",
                alpha3: "GIB",
                numeric: 292
            ),

            new Iso3166Country(
                shortName: "Greece",
                fullName: "the Hellenic Republic",
                activeDirectoryName: "Greece",
                alpha2: "GR",
                alpha3: "GRC",
                numeric: 300
            ),

            new Iso3166Country(
                shortName: "Greenland",
                fullName: null,
                activeDirectoryName: "Greenland",
                alpha2: "GL",
                alpha3: "GRL",
                numeric: 304
            ),

            new Iso3166Country(
                shortName: "Grenada",
                fullName: null,
                activeDirectoryName: "Grenada",
                alpha2: "GD",
                alpha3: "GRD",
                numeric: 308
            ),

            new Iso3166Country(
                shortName: "Guadeloupe",
                fullName: null,
                activeDirectoryName: "Guadeloupe",
                alpha2: "GP",
                alpha3: "GLP",
                numeric: 312
            ),

            new Iso3166Country(
                shortName: "Guam",
                fullName: null,
                activeDirectoryName: "Guam",
                alpha2: "GU",
                alpha3: "GUM",
                numeric: 316
            ),

            new Iso3166Country(
                shortName: "Guatemala",
                fullName: "the Republic of Guatemala",
                activeDirectoryName: "Guatemala",
                alpha2: "GT",
                alpha3: "GTM",
                numeric: 320
            ),

            new Iso3166Country(
                shortName: "Guernsey",
                fullName: null,
                activeDirectoryName: "Guernsey",
                alpha2: "GG",
                alpha3: "GGY",
                numeric: 831
            ),

            new Iso3166Country(
                shortName: "Guinea",
                fullName: "the Republic of Guinea",
                activeDirectoryName: "Guinea",
                alpha2: "GN",
                alpha3: "GIN",
                numeric: 324
            ),

            new Iso3166Country(
                shortName: "Guinea-Bissau",
                fullName: "the Republic of Guinea-Bissau",
                activeDirectoryName: "Guinea-Bissau",
                alpha2: "GW",
                alpha3: "GNB",
                numeric: 624
            ),

            new Iso3166Country(
                shortName: "Guyana",
                fullName: "the Republic of Guyana",
                activeDirectoryName: "Guyana",
                alpha2: "GY",
                alpha3: "GUY",
                numeric: 328
            ),

            new Iso3166Country(
                shortName: "Haiti",
                fullName: "the Republic of Haiti",
                activeDirectoryName: "Haiti",
                alpha2: "HT",
                alpha3: "HTI",
                numeric: 332
            ),

            new Iso3166Country(
                shortName: "Heard Island and McDonald Islands",
                fullName: null,
                activeDirectoryName: "Heard Island and McDonald Islands",
                alpha2: "HM",
                alpha3: "HMD",
                numeric: 334
            ),

            new Iso3166Country(
                shortName: "Holy See",
                fullName: null,
                activeDirectoryName: "Vatican City",
                alpha2: "VA",
                alpha3: "VAT",
                numeric: 336
            ),

            new Iso3166Country(
                shortName: "Honduras",
                fullName: "the Republic of Honduras",
                activeDirectoryName: "Honduras",
                alpha2: "HN",
                alpha3: "HND",
                numeric: 340
            ),

            new Iso3166Country(
                shortName: "Hong Kong",
                fullName: "the Hong Kong Special Administrative Region of China",
                activeDirectoryName: "Hong Kong SAR",
                alpha2: "HK",
                alpha3: "HKG",
                numeric: 344
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Howland Island",
                alpha2: "XX",
                alpha3: null,
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "Hungary",
                fullName: null,
                activeDirectoryName: "Hungary",
                alpha2: "HU",
                alpha3: "HUN",
                numeric: 348
            ),

            new Iso3166Country(
                shortName: "Iceland",
                fullName: "the Republic of Iceland",
                activeDirectoryName: "Iceland",
                alpha2: "IS",
                alpha3: "ISL",
                numeric: 352
            ),

            new Iso3166Country(
                shortName: "India",
                fullName:  "the Republic of India",
                activeDirectoryName: "India",
                alpha2: "IN",
                alpha3: "IND",
                numeric: 356
            ),

            new Iso3166Country(
                shortName: "Indonesia",
                fullName: "the Republic of Indonesia",
                activeDirectoryName: "Indonesia",
                alpha2: "ID",
                alpha3: "IDN",
                numeric: 360
            ),

            new Iso3166Country(
                shortName: "Iran (Islamic Republic of)",
                fullName: "the Islamic Republic of Iran",
                activeDirectoryName: "Iran",
                alpha2: "IR",
                alpha3: "IRN",
                numeric: 364
            ),

            new Iso3166Country(
                shortName: "Iraq",
                fullName: "the Republic of Iraq",
                activeDirectoryName: "Iraq",
                alpha2: "IQ",
                alpha3: "IRQ",
                numeric: 368
            ),

            new Iso3166Country(
                shortName: "Ireland",
                fullName: null,
                activeDirectoryName: "Ireland",
                alpha2: "IE",
                alpha3: "IRL",
                numeric: 372
            ),

            new Iso3166Country(
                shortName: "Isle of Man",
                fullName: null,
                activeDirectoryName: "Man, Isle of",
                alpha2: "IM",
                alpha3: "IMN",
                numeric: 833
            ),

            new Iso3166Country(
                shortName: "Israel",
                fullName: "the State of Israel",
                activeDirectoryName: "Israel",
                alpha2: "IL",
                alpha3: "ISR",
                numeric: 376
            ),

            new Iso3166Country(
                shortName: "Italy",
                fullName: "the Republic of Italy",
                activeDirectoryName: "Italy",
                alpha2: "IT",
                alpha3: "ITA",
                numeric: 380
            ),

            new Iso3166Country(
                shortName: "Jamaica",
                fullName: null,
                activeDirectoryName: "Jamaica",
                alpha2: "JM",
                alpha3: "JAM",
                numeric: 388
            ),

            new Iso3166Country(
                shortName: "Japan",
                fullName: null,
                activeDirectoryName: "Japan",
                alpha2: "JP",
                alpha3: "JPN",
                numeric: 392
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Jarvis Island",
                alpha2: "XX",
                alpha3: null,
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "Jersey",
                fullName: null,
                activeDirectoryName: "Jersey",
                alpha2: "JE",
                alpha3: "JEY",
                numeric: 832
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Johnston Atoll",
                alpha2: "XX",
                alpha3: null,
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "Jordan",
                fullName: "the Hashemite Kingdom of Jordan",
                activeDirectoryName: "Jordan",
                alpha2: "JO",
                alpha3: "JOR",
                numeric: 400
            ),

            new Iso3166Country(
                shortName: "Kazakhstan",
                fullName: "the Republic of Kazakhstan",
                activeDirectoryName: "Kazakhstan",
                alpha2: "KZ",
                alpha3: "KAZ",
                numeric: 398
            ),

            new Iso3166Country(
                shortName: "Kenya",
                fullName: "the Republic of Kenya",
                activeDirectoryName: "Kenya",
                alpha2: "KE",
                alpha3: "KEN",
                numeric: 404
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Kingman Reef",
                alpha2: "XX",
                alpha3: null,
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "Kiribati",
                fullName: "the Republic of Kiribati",
                activeDirectoryName: "Kiribati",
                alpha2: "KI",
                alpha3: "KIR",
                numeric: 296
            ),

            new Iso3166Country(
                shortName: "Korea (Democratic People's Republic of)",
                fullName: "the Democratic People's Republic of Korea",
                activeDirectoryName: "North Korea",
                alpha2: "KP",
                alpha3: "PRK",
                numeric: 408
            ),

            new Iso3166Country(
                shortName: "Korea, Republic of",
                fullName: "the Republic of Korea",
                activeDirectoryName: "Korea",
                alpha2: "KR",
                alpha3: "KOR",
                numeric: 410
            ),

            new Iso3166Country(
                shortName: "Kuwait",
                fullName: "the State of Kuwait",
                activeDirectoryName: "Kuwait",
                alpha2: "KW",
                alpha3: "KWT",
                numeric: 414
            ),

            new Iso3166Country(
                shortName: "Kyrgyzstan",
                fullName: "the Kyrgyz Republic",
                activeDirectoryName: "Kyrgyzstan",
                alpha2: "KG",
                alpha3: "KGZ",
                numeric: 417
            ),

            new Iso3166Country(
                shortName: "Lao People's Democratic Republic",
                fullName: "the Lao People's Democratic Republic",
                activeDirectoryName: "Laos",
                alpha2: "LA",
                alpha3: "LAO",
                numeric: 418
            ),

            new Iso3166Country(
                shortName: "Latvia",
                fullName: "the Republic of Latvia",
                activeDirectoryName: "Latvia",
                alpha2: "LV",
                alpha3: "LVA",
                numeric: 428
            ),

            new Iso3166Country(
                shortName: "Lebanon",
                fullName: "the Lebanese Republic",
                activeDirectoryName: "Lebanon",
                alpha2: "LB",
                alpha3: "LBN",
                numeric: 422
            ),

            new Iso3166Country(
                shortName: "Lesotho",
                fullName: "the Kingdom of Lesotho",
                activeDirectoryName: "Lesotho",
                alpha2: "LS",
                alpha3: "LSO",
                numeric: 426
            ),

            new Iso3166Country(
                shortName: "Liberia",
                fullName: "the Republic of Liberia",
                activeDirectoryName: "Liberia",
                alpha2: "LR",
                alpha3: "LBR",
                numeric: 430
            ),

            new Iso3166Country(
                shortName: "Libya",
                fullName: null,
                activeDirectoryName: "Libya",
                alpha2: "LY",
                alpha3: "LBY",
                numeric: 434
            ),

            new Iso3166Country(
                shortName: "Liechtenstein",
                fullName: "the Principality of Liechtenstein",
                activeDirectoryName: "Liechtenstein",
                alpha2: "LI",
                alpha3: "LIE",
                numeric: 438
            ),

            new Iso3166Country(
                shortName: "Lithuania",
                fullName: "the Republic of Lithuania",
                activeDirectoryName: "Lithuania",
                alpha2: "LT",
                alpha3: "LTU",
                numeric: 440
            ),

            new Iso3166Country(
                shortName: "Luxembourg",
                fullName: "the Grand Duchy of Luxembourg",
                activeDirectoryName: "Luxembourg",
                alpha2: "LU",
                alpha3: "LUX",
                numeric: 442
            ),

            new Iso3166Country(
                shortName: "Macao",
                fullName: "Macao Special Administrative Region of China",
                activeDirectoryName: "Macao SAR",
                alpha2: "MO",
                alpha3: "MAC",
                numeric: 446
            ),

            new Iso3166Country(
                shortName: "Macedonia, the former Yugoslav Republic of",
                fullName: "the former Yugoslav Republic of Macedonia",
                activeDirectoryName: "Macedonia, Former Yugoslav Republic of",
                alpha2: "MK",
                alpha3: "MKD",
                numeric: 807
            ),

            new Iso3166Country(
                shortName: "Madagascar",
                fullName: "the Republic of Madagascar",
                activeDirectoryName: "Madagascar",
                alpha2: "MG",
                alpha3: "MDG",
                numeric: 450
            ),

            new Iso3166Country(
                shortName: "Malawi",
                fullName: "the Republic of Malawi",
                activeDirectoryName: "Malawi",
                alpha2: "MW",
                alpha3: "MWI",
                numeric: 454
            ),

            new Iso3166Country(
                shortName: "Malaysia",
                fullName: null,
                activeDirectoryName: "Malaysia",
                alpha2: "MY",
                alpha3: "MYS",
                numeric: 458
            ),

            new Iso3166Country(
                shortName: "Maldives",
                fullName: "the Republic of Maldives",
                activeDirectoryName: "Maldives",
                alpha2: "MV",
                alpha3: "MDV",
                numeric: 462
            ),

            new Iso3166Country(
                shortName: "Mali",
                fullName: "the Republic of Mali",
                activeDirectoryName: "Mali",
                alpha2: "ML",
                alpha3: "MLI",
                numeric: 466
            ),

            new Iso3166Country(
                shortName: "Malta",
                fullName: "the Republic of Malta",
                activeDirectoryName: "Malta",
                alpha2: "MT",
                alpha3: "MLT",
                numeric: 470
            ),

            new Iso3166Country(
                shortName: "Marshall Islands",
                fullName: "the Republic of the Marshall Islands",
                activeDirectoryName: "Marshall Islands",
                alpha2: "MH",
                alpha3: "MHL",
                numeric: 584
            ),

            new Iso3166Country(
                shortName: "Martinique",
                fullName: null,
                activeDirectoryName: "Martinique",
                alpha2: "MQ",
                alpha3: "MTQ",
                numeric: 474
            ),

            new Iso3166Country(
                shortName: "Mauritania",
                fullName: "the Islamic Republic of Mauritania",
                activeDirectoryName: "Mauritania",
                alpha2: "MR",
                alpha3: "MRT",
                numeric: 478
            ),

            new Iso3166Country(
                shortName: "Mauritius",
                fullName: "the Republic of Mauritius",
                activeDirectoryName: "Mauritius",
                alpha2: "MU",
                alpha3: "MUS",
                numeric: 480
            ),

            new Iso3166Country(
                shortName: "Mayotte",
                fullName: null,
                activeDirectoryName: "Mayotte",
                alpha2: "YT",
                alpha3: "MYT",
                numeric: 175
            ),

            new Iso3166Country(
                shortName: "Mexico",
                fullName: "the United Mexican States",
                activeDirectoryName: "Mexico",
                alpha2: "MX",
                alpha3: "MEX",
                numeric: 484
            ),

            new Iso3166Country(
                shortName: "Micronesia (Federated States of)",
                fullName: "the Federated States of Micronesia",
                activeDirectoryName: "Micronesia",
                alpha2: "FM",
                alpha3: "FSM",
                numeric: 583
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Midway Islands",
                alpha2: "XX",
                alpha3: null,
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "Moldova, the Republic of",
                fullName:  "the Republic of Moldova",
                activeDirectoryName: "Moldova",
                alpha2: "MD",
                alpha3: "MDA",
                numeric: 498
            ),

            new Iso3166Country(
                shortName: "Monaco",
                fullName: "the Principality of Monaco",
                activeDirectoryName: "Monaco",
                alpha2: "MC",
                alpha3: "MCO",
                numeric: 492
            ),

            new Iso3166Country(
                shortName: "Mongolia",
                fullName: null,
                activeDirectoryName: "Mongolia",
                alpha2: "MN",
                alpha3: "MNG",
                numeric: 496
            ),

            new Iso3166Country(
                shortName: "Montenegro",
                fullName: null,
                activeDirectoryName: "Montenegro",
                alpha2: "ME",
                alpha3: "MNE",
                numeric: 499
            ),

            new Iso3166Country(
                shortName: "Montserrat",
                fullName: null,
                activeDirectoryName: "Montserrat",
                alpha2: "MS",
                alpha3: "MSR",
                numeric: 500
            ),

            new Iso3166Country(
                shortName: "Morocco",
                fullName: "the Kingdom of Morocco",
                activeDirectoryName: "Morocco",
                alpha2: "MA",
                alpha3: "MAR",
                numeric: 504
            ),

            new Iso3166Country(
                shortName: "Mozambique",
                fullName: "the Republic of Mozambique",
                activeDirectoryName: "Mozambique",
                alpha2: "MZ",
                alpha3: "MOZ",
                numeric: 508
            ),

            new Iso3166Country(
                shortName: "Myanmar",
                fullName: "the Republic of the Union of Myanmar",
                activeDirectoryName: "Myanmar",
                alpha2: "MM",
                alpha3: "MMR",
                numeric: 104
            ),

            new Iso3166Country(
                shortName: "Namibia",
                fullName: "the Republic of Namibia",
                activeDirectoryName: "Namibia",
                alpha2: "NA",
                alpha3: "NAM",
                numeric: 516
            ),

            new Iso3166Country(
                shortName: "Nauru",
                fullName:  "the Republic of Nauru",
                activeDirectoryName: "Nauru",
                alpha2: "NR",
                alpha3: "NRU",
                numeric: 520
            ),

            new Iso3166Country(
                shortName: "Nepal",
                fullName: "the Federal Democratic Republic of Nepal",
                activeDirectoryName: "Nepal",
                alpha2: "NP",
                alpha3: "NPL",
                numeric: 524
            ),

            new Iso3166Country(
                shortName: "Netherlands",
                fullName: "the Kingdom of the Netherlands",
                activeDirectoryName: "Netherlands",
                alpha2: "NL",
                alpha3: "NLD",
                numeric: 528
            ),

            new Iso3166Country(
                shortName: "New Caledonia",
                fullName: null,
                activeDirectoryName: "New Caledonia",
                alpha2: "NC",
                alpha3: "NCL",
                numeric: 540
            ),

            new Iso3166Country(
                shortName: "New Zealand",
                fullName: null,
                activeDirectoryName: "New Zealand",
                alpha2: "NZ",
                alpha3: "NZL",
                numeric: 554
            ),

            new Iso3166Country(
                shortName: "Nicaragua",
                fullName: "the Republic of Nicaragua",
                activeDirectoryName: "Nicaragua",
                alpha2: "NI",
                alpha3: "NIC",
                numeric: 558
            ),

            new Iso3166Country(
                shortName: "Niger",
                fullName: "the Republic of the Niger",
                activeDirectoryName: "Niger",
                alpha2: "NE",
                alpha3: "NER",
                numeric: 562
            ),

            new Iso3166Country(
                shortName: "Nigeria",
                fullName:  "the Federal Republic of Nigeria",
                activeDirectoryName: "Nigeria",
                alpha2: "NG",
                alpha3: "NGA",
                numeric: 566
            ),

            new Iso3166Country(
                shortName: "Niue",
                fullName: null,
                activeDirectoryName: "Niue",
                alpha2: "NU",
                alpha3: "NIU",
                numeric: 570
            ),

            new Iso3166Country(
                shortName: "Norfolk Island",
                fullName: null,
                activeDirectoryName: "Norfolk Island",
                alpha2: "NF",
                alpha3: "NFK",
                numeric: 574
            ),

            new Iso3166Country(
                shortName: "Northern Mariana Islands",
                fullName: "the Commonwealth of the Northern Mariana Islands",
                activeDirectoryName: "Northern Mariana Islands",
                alpha2: "MP",
                alpha3: "MNP",
                numeric: 580
            ),

            new Iso3166Country(
                shortName: "Norway",
                fullName: "the Kingdom of Norway",
                activeDirectoryName: "Norway",
                alpha2: "NO",
                alpha3: "NOR",
                numeric: 578
            ),

            new Iso3166Country(
                shortName: "Oman",
                fullName: "the Sultanate of Oman",
                activeDirectoryName: "Oman",
                alpha2: "OM",
                alpha3: "OMN",
                numeric: 512
            ),

            new Iso3166Country(
                shortName: "Pakistan",
                fullName: "the Islamic Republic of Pakistan",
                activeDirectoryName: "Pakistan",
                alpha2: "PK",
                alpha3: "PAK",
                numeric: 586
            ),

            new Iso3166Country(
                shortName: "Palau",
                fullName: "the Republic of Palau",
                activeDirectoryName: "Palau",
                alpha2: "PW",
                alpha3: "PLW",
                numeric: 585
            ),

            new Iso3166Country(
                shortName: "Palestine, State of",
                fullName: "the State of Palestine",
                activeDirectoryName: "Palestinian Authority",
                alpha2: "PS",
                alpha3: "PSE",
                numeric: 275
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Palmyra Atoll",
                alpha2: "XX",
                alpha3: null,
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "Panama",
                fullName: "the Republic of Panama",
                activeDirectoryName: "Panama",
                alpha2: "PA",
                alpha3: "PAN",
                numeric: 591
            ),

            new Iso3166Country(
                shortName: "Papua New Guinea",
                fullName: "the Independent State of Papua New Guinea",
                activeDirectoryName: "Papua New Guinea",
                alpha2: "PG",
                alpha3: "PNG",
                numeric: 598
            ),

            new Iso3166Country(
                shortName: "Paraguay",
                fullName: "the Republic of Paraguay",
                activeDirectoryName: "Paraguay",
                alpha2: "PY",
                alpha3: "PRY",
                numeric: 600
            ),

            new Iso3166Country(
                shortName: "Peru",
                fullName: "the Republic of Peru",
                activeDirectoryName: "Peru",
                alpha2: "PE",
                alpha3: "PER",
                numeric: 604
            ),

            new Iso3166Country(
                shortName: "Philippines",
                fullName: "the Republic of the Philippines",
                activeDirectoryName: "Philippines",
                alpha2: "PH",
                alpha3: "PHL",
                numeric: 608
            ),

            new Iso3166Country(
                shortName: "Pitcairn",
                fullName: null,
                activeDirectoryName: "Pitcairn Islands",
                alpha2: "PN",
                alpha3: "PCN",
                numeric: 612
            ),

            new Iso3166Country(
                shortName: "Poland",
                fullName: "the Republic of Poland",
                activeDirectoryName: "Poland",
                alpha2: "PL",
                alpha3: "POL",
                numeric: 616
            ),

            new Iso3166Country(
                shortName: "Portugal",
                fullName: "the Portuguese Republic",
                activeDirectoryName: "Portugal",
                alpha2: "PT",
                alpha3: "PRT",
                numeric: 620
            ),

            new Iso3166Country(
                shortName: "Puerto Rico",
                fullName: null,
                activeDirectoryName: "Puerto Rico",
                alpha2: "PR",
                alpha3: "PRI",
                numeric: 630
            ),

            new Iso3166Country(
                shortName: "Qatar",
                fullName: null,
                activeDirectoryName: "Qatar",
                alpha2: "QA",
                alpha3: "QAT",
                numeric: 634
            ),

            new Iso3166Country(
                shortName: "Réunion",
                fullName: null,
                activeDirectoryName: "Réunion",
                alpha2: "RE",
                alpha3: "REU",
                numeric: 638
            ),

            new Iso3166Country(
                shortName: "Romania",
                fullName: null,
                activeDirectoryName: "Romania",
                alpha2: "RO",
                alpha3: "ROU",
                numeric: 642
            ),

            new Iso3166Country(
                shortName: "Russian Federation",
                fullName: "the Russian Federation",
                activeDirectoryName: "Russia",
                alpha2: "RU",
                alpha3: "RUS",
                numeric: 643
            ),

            new Iso3166Country(
                shortName: "Rwanda",
                fullName: "the Republic of Rwanda",
                activeDirectoryName: "Rwanda",
                alpha2: "RW",
                alpha3: "RWA",
                numeric: 646
            ),

            new Iso3166Country(
                shortName: "Saint Barthélemy",
                fullName: null,
                activeDirectoryName: "Saint Barthélemy",
                alpha2: "BL",
                alpha3: "BLM",
                numeric: 652
            ),

            new Iso3166Country(
                shortName: "Saint Helena, Ascension and Tristan da Cunha",
                fullName: null,
                activeDirectoryName: "Saint Helena, Ascension and Tristan da Cunha",
                alpha2: "SH",
                alpha3: "SHN",
                numeric: 654
            ),

            new Iso3166Country(
                shortName: "Saint Kitts and Nevis",
                fullName: null,
                activeDirectoryName: "St. Kitts and Nevis",
                alpha2: "KN",
                alpha3: "KNA",
                numeric: 659
            ),

            new Iso3166Country(
                shortName: "Saint Lucia",
                fullName: null,
                activeDirectoryName: "St. Lucia",
                alpha2: "LC",
                alpha3: "LCA",
                numeric: 662
            ),

            new Iso3166Country(
                shortName: "Saint Martin (French part)",
                fullName: null,
                activeDirectoryName: "Saint Martin (French part)",
                alpha2: "MF",
                alpha3: "MAF",
                numeric: 663
            ),

            new Iso3166Country(
                shortName: "Saint Pierre and Miquelon",
                fullName: null,
                activeDirectoryName: "St. Pierre and Miquelon",
                alpha2: "PM",
                alpha3: "SPM",
                numeric: 666
            ),

            new Iso3166Country(
                shortName: "Saint Vincent and the Grenadines",
                fullName: null,
                activeDirectoryName: "St. Vincent and the Grenadines",
                alpha2: "VC",
                alpha3: "VCT",
                numeric: 670
            ),

            new Iso3166Country(
                shortName: "Samoa",
                fullName: "the Independent State of Samoa",
                activeDirectoryName: "Samoa",
                alpha2: "WS",
                alpha3: "WSM",
                numeric: 882
            ),

            new Iso3166Country(
                shortName: "San Marino",
                fullName: "the Republic of San Marino",
                activeDirectoryName: "San Marino",
                alpha2: "SM",
                alpha3: "SMR",
                numeric: 674
            ),

            new Iso3166Country(
                shortName: "Sao Tome and Principe",
                fullName: "the Democratic Republic of Sao Tome and Principe",
                activeDirectoryName: "São Tomé and Príncipe",
                alpha2: "ST",
                alpha3: "STP",
                numeric: 678
            ),

            new Iso3166Country(
                shortName: "Saudi Arabia",
                fullName: "the Kingdom of Saudi Arabia",
                activeDirectoryName: "Saudi Arabia",
                alpha2: "SA",
                alpha3: "SAU",
                numeric: 682
            ),

            new Iso3166Country(
                shortName: "Senegal",
                fullName: "the Republic of Senegal",
                activeDirectoryName: "Senegal",
                alpha2: "SN",
                alpha3: "SEN",
                numeric: 686
            ),

            new Iso3166Country(
                shortName: "Serbia",
                fullName: "the Republic of Serbia",
                activeDirectoryName: "Serbia",
                alpha2: "RS",
                alpha3: "SRB",
                numeric: 688
            ),

             new Iso3166Country(
                 shortName: null,
                 fullName: null,
                 activeDirectoryName: "Serbia and Montenegro (Former)",
                 alpha2: "CS",
                 alpha3: "SCG",
                 numeric: 891
            ),

             new Iso3166Country(
                 shortName: "Seychelles",
                 fullName: "the Republic of Seychelles",
                 activeDirectoryName: "Seychelles",
                 alpha2: "SC",
                 alpha3: "SYC",
                 numeric: 690
            ),

            new Iso3166Country(
                shortName: "Sierra Leone",
                fullName: "the Republic of Sierra Leone",
                activeDirectoryName: "Sierra Leone",
                alpha2: "SL",
                alpha3: "SLE",
                numeric: 694
            ),

            new Iso3166Country(
                shortName: "Singapore",
                fullName: "the Republic of Singapore",
                activeDirectoryName: "Singapore",
                alpha2: "SG",
                alpha3: "SGP",
                numeric: 702
            ),

            new Iso3166Country(
                shortName: "Sint Maarten (Dutch part)",
                fullName: null,
                activeDirectoryName: "Sint Maarten (Dutch part)",
                alpha2: "SX",
                alpha3: "SXM",
                numeric: 534
            ),

            new Iso3166Country(
                shortName: "Slovakia",
                fullName: "the Slovak Republic",
                activeDirectoryName: "Slovakia",
                alpha2: "SK",
                alpha3: "SVK",
                numeric: 703
            ),

            new Iso3166Country(
                shortName: "Slovenia",
                fullName: "the Republic of Slovenia",
                activeDirectoryName: "Slovenia",
                alpha2: "SI",
                alpha3: "SVN",
                numeric: 705
            ),

            new Iso3166Country(
                shortName: "Solomon Islands",
                fullName: null,
                activeDirectoryName: "Solomon Islands",
                alpha2: "SB",
                alpha3: "SLB",
                numeric: 90
            ),

            new Iso3166Country(
                shortName: "Somalia",
                fullName: "the Federal Republic of Somalia",
                activeDirectoryName: "Somalia",
                alpha2: "SO",
                alpha3: "SOM",
                numeric: 706
            ),

            new Iso3166Country(
                shortName: "South Africa",
                fullName: "the Republic of South Africa",
                activeDirectoryName: "South Africa",
                alpha2: "ZA",
                alpha3: "ZAF",
                numeric: 710
            ),

            new Iso3166Country(
                shortName: "South Georgia and the South Sandwich Islands",
                fullName: null,
                activeDirectoryName: "South Georgia and the South Sandwich Islands",
                alpha2: "GS",
                alpha3: "SGS",
                numeric: 239
            ),

            new Iso3166Country(
                shortName: "South Sudan",
                fullName: "the Republic of South Sudan",
                activeDirectoryName: "South Sudan",
                alpha2: "SS",
                alpha3: "SSD",
                numeric: 728
            ),

            new Iso3166Country(
                shortName: "Spain",
                fullName: "the Kingdom of Spain",
                activeDirectoryName: "Spain",
                alpha2: "ES",
                alpha3: "ESP",
                numeric: 724
            ),

            new Iso3166Country(
                shortName: "Sri Lanka",
                fullName: "the Democratic Socialist Republic of Sri Lanka",
                activeDirectoryName: "Sri Lanka",
                alpha2: "LK",
                alpha3: "LKA",
                numeric: 144
            ),

            new Iso3166Country(
                shortName: "Sudan",
                fullName: "the Republic of the Sudan",
                activeDirectoryName: "Sudan",
                alpha2: "SD",
                alpha3: "SDN",
                numeric: 729
            ),

            new Iso3166Country(
                shortName: "Suriname",
                fullName: "the Republic of Suriname",
                activeDirectoryName: "Suriname",
                alpha2: "SR",
                alpha3: "SUR",
                numeric: 740
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Svalbard",
                alpha2: "SJ",
                alpha3: null,
                numeric: 744
            ),

            new Iso3166Country(
                shortName: "Svalbard and Jan Mayen",
                fullName: null,
                activeDirectoryName: null,
                alpha2: "SJ",
                alpha3: "SJM",
                numeric: 744
            ),

            new Iso3166Country(
                shortName: "Swaziland",
                fullName: "the Kingdom of Swaziland",
                activeDirectoryName: "Swaziland",
                alpha2: "SZ",
                alpha3: "SWZ",
                numeric: 748
            ),

            new Iso3166Country(
                shortName: "Sweden",
                fullName: "the Kingdom of Sweden",
                activeDirectoryName: "Sweden",
                alpha2: "SE",
                alpha3: "SWE",
                numeric: 752
            ),

            new Iso3166Country(
                shortName: "Switzerland",
                fullName: "the Swiss Confederation",
                activeDirectoryName: "Switzerland",
                alpha2: "CH",
                alpha3: "CHE",
                numeric: 756
            ),

            new Iso3166Country(
                shortName: "Syrian Arab Republic",
                fullName: "the Syrian Arab Republic",
                activeDirectoryName: "Syria",
                alpha2: "SY",
                alpha3: "SYR",
                numeric: 760
            ),

            new Iso3166Country(
                shortName: "Taiwan, Province of China",
                fullName: null,
                activeDirectoryName: "Taiwan",
                alpha2: "TW",
                alpha3: "TWN",
                numeric: 158
            ),

            new Iso3166Country(
                shortName: "Tajikistan",
                fullName: "the Republic of Tajikistan",
                activeDirectoryName: "Tajikistan",
                alpha2: "TJ",
                alpha3: "TJK",
                numeric: 762
            ),

            new Iso3166Country(
                shortName: "Tanzania, United Republic of",
                fullName: "the United Republic of Tanzania",
                activeDirectoryName: "Tanzania",
                alpha2: "TZ",
                alpha3: "TZA",
                numeric: 834
            ),

            new Iso3166Country(
                shortName: "Thailand",
                fullName: "the Kingdom of Thailand",
                activeDirectoryName: "Thailand",
                alpha2: "TH",
                alpha3: "THA",
                numeric: 764
            ),

            new Iso3166Country(
                shortName: "Timor-Leste",
                fullName: "the Democratic Republic of Timor-Leste",
                activeDirectoryName: "Democratic Republic of Timor-Leste",
                alpha2: "TL",
                alpha3: "TLS",
                numeric: 626
            ),

            new Iso3166Country(
                shortName: "Togo",
                fullName: "the Togolese Republic",
                activeDirectoryName: "Togo",
                alpha2: "TG",
                alpha3: "TGO",
                numeric: 768
            ),

            new Iso3166Country(
                shortName: "Tokelau",
                fullName: null,
                activeDirectoryName: "Tokelau",
                alpha2: "TK",
                alpha3: "TKL",
                numeric: 772
            ),

            new Iso3166Country(
                shortName: "Tonga",
                fullName: "the Kingdom of Tonga",
                activeDirectoryName: "Tonga",
                alpha2: "TO",
                alpha3: "TON",
                numeric: 776
            ),

            new Iso3166Country(
                shortName: "Trinidad and Tobago",
                fullName: "the Republic of Trinidad and Tobago",
                activeDirectoryName: "Trinidad and Tobago",
                alpha2: "TT",
                alpha3: "TTO",
                numeric: 780
            ),

            new Iso3166Country(
                shortName: "Tunisia",
                fullName: "the Republic of Tunisia",
                activeDirectoryName: "Tunisia",
                alpha2: "TN",
                alpha3: "TUN",
                numeric: 788
            ),

            new Iso3166Country(
                shortName: "Turkey",
                fullName: "the Republic of Turkey",
                activeDirectoryName: "Turkey",
                alpha2: "TR",
                alpha3: "TUR",
                numeric: 792
            ),

            new Iso3166Country(
                shortName: "Turkmenistan",
                fullName: null,
                activeDirectoryName: "Turkmenistan",
                alpha2: "TM",
                alpha3: "TKM",
                numeric: 795
            ),

            new Iso3166Country(
                shortName: "Turks and Caicos Islands",
                fullName: null,
                activeDirectoryName: "Turks and Caicos Islands",
                alpha2: "TC",
                alpha3: "TCA",
                numeric: 796
            ),

            new Iso3166Country(
                shortName: "Tuvalu",
                fullName: null,
                activeDirectoryName: "Tuvalu",
                alpha2: "TV",
                alpha3: "TUV",
                numeric: 798
            ),

            new Iso3166Country(
                shortName: "Uganda",
                fullName: "the Republic of Uganda",
                activeDirectoryName: "Uganda",
                alpha2: "UG",
                alpha3: "UGA",
                numeric: 800
            ),

            new Iso3166Country(
                shortName: "Ukraine",
                fullName: null,
                activeDirectoryName: "Ukraine",
                alpha2: "UA",
                alpha3: "UKR",
                numeric: 804
            ),

            new Iso3166Country(
                shortName: "United Arab Emirates",
                fullName: "the United Arab Emirates",
                activeDirectoryName: "United Arab Emirates",
                alpha2: "AE",
                alpha3: "ARE",
                numeric: 784
            ),

            new Iso3166Country(
                shortName: "United Kingdom of Great Britain and Northern Ireland",
                fullName: "the United Kingdom of Great Britain and Northern Ireland",
                activeDirectoryName: "United Kingdom",
                alpha2: "GB",
                alpha3: "GBR",
                numeric: 826
            ),

            new Iso3166Country(
                shortName: "United States Minor Outlying Islands",
                fullName: null,
                activeDirectoryName: "U.S. Minor Outlying Islands",
                alpha2: "UM",
                alpha3: "UMI",
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "United States of America",
                fullName: "the United States of America",
                activeDirectoryName: "United States",
                alpha2: "US",
                alpha3: "USA",
                numeric: 840
            ),

            new Iso3166Country(
                shortName: "Uruguay",
                fullName: "the Eastern Republic of Uruguay",
                activeDirectoryName: "Uruguay",
                alpha2: "UY",
                alpha3: "URY",
                numeric: 858
            ),

            new Iso3166Country(
                shortName: "Uzbekistan",
                fullName: "the Republic of Uzbekistan",
                activeDirectoryName: "Uzbekistan",
                alpha2: "UZ",
                alpha3: "UZB",
                numeric: 860
            ),

            new Iso3166Country(
                shortName: "Vanuatu",
                fullName: "the Republic of Vanuatu",
                activeDirectoryName: "Vanuatu",
                alpha2: "VU",
                alpha3: "VUT",
                numeric: 548
            ),

            new Iso3166Country(
                shortName: "Venezuela (Bolivarian Republic of)",
                fullName: "the Bolivarian Republic of Venezuela",
                activeDirectoryName: "Bolivarian Republic of Venezuela",
                alpha2: "VE",
                alpha3: "VEN",
                numeric: 862
            ),

            new Iso3166Country(
                shortName: "Viet Nam",
                fullName: "the Socialist Republic of Viet Nam",
                activeDirectoryName: "Vietnam",
                alpha2: "VN",
                alpha3: "VNM",
                numeric: 704
            ),

            new Iso3166Country(
                shortName: "Virgin Islands (British)",
                fullName: "British Virgin Islands (the)",
                activeDirectoryName: "Virgin Islands, British",
                alpha2: "VG",
                alpha3: "VGB",
                numeric: 92
            ),

            new Iso3166Country(
                shortName: "Virgin Islands (U.S.)",
                fullName: "the Virgin Islands of the United States",
                activeDirectoryName: "Virgin Islands",
                alpha2: "VI",
                alpha3: "VIR",
                numeric: 850
            ),

            new Iso3166Country(
                shortName: null,
                fullName: null,
                activeDirectoryName: "Wake Island",
                alpha2: "XX",
                alpha3: null,
                numeric: 581
            ),

            new Iso3166Country(
                shortName: "Wallis and Futuna",
                fullName: "Wallis and Futuna Islands",
                activeDirectoryName: "Wallis and Futuna",
                alpha2: "WF",
                alpha3: "WLF",
                numeric: 876
            ),

            new Iso3166Country(
                shortName: "Western Sahara",
                fullName: null,
                activeDirectoryName: null,
                alpha2: "EH",
                alpha3: "ESH",
                numeric: 732
            ),

            new Iso3166Country(
                shortName: "Yemen",
                fullName: "the Republic of Yemen",
                activeDirectoryName: "Yemen",
                alpha2: "YE",
                alpha3: "YEM",
                numeric: 887
            ),

            new Iso3166Country(
                shortName: "Zambia",
                fullName: "the Republic of Zambia",
                activeDirectoryName: "Zambia",
                alpha2: "ZM",
                alpha3: "ZMB",
                numeric: 894
            ),

            new Iso3166Country(
                shortName: "Zimbabwe",
                fullName: "the Republic of Zimbabwe",
                activeDirectoryName: "Zimbabwe",
                alpha2: "ZW",
                alpha3: "ZWE",
                numeric: 716
            )

        }.AsReadOnly();
    }
}


text:
"""
Testing for the boost module (sklearn.ensemble.boost).
"""

import numpy as np
from numpy.testing import assert_array_equal, assert_array_less
from numpy.testing import assert_array_almost_equal
from numpy.testing import assert_equal
from nose.tools import assert_raises

from sklearn.grid_search import GridSearchCV
from sklearn.ensemble import AdaBoostClassifier
from sklearn.ensemble import AdaBoostRegressor
from sklearn.tree import DecisionTreeClassifier, DecisionTreeRegressor
from sklearn.utils import shuffle
from sklearn import datasets

# Common random state
rng = np.random.RandomState(0)

# Toy sample
X = [[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]]
y_class = ["foo", "foo", "foo", 1, 1, 1]    # test string class labels
y_regr = [-1, -1, -1, 1, 1, 1]
T = [[-1, -1], [2, 2], [3, 2]]
y_t_class = ["foo", 1, 1]
y_t_regr = [-1, 1, 1]

# Load the iris dataset and randomly permute it
iris = datasets.load_iris()
perm = rng.permutation(iris.target.size)
iris.data, iris.target = shuffle(iris.data, iris.target, random_state=rng)

# Load the boston dataset and randomly permute it
boston = datasets.load_boston()
boston.data, boston.target = shuffle(boston.data, boston.target,
                                     random_state=rng)

def test_classification_toy():
    """Check classification on a toy dataset."""
    for alg in ['SAMME', 'SAMME.R']:
        clf = AdaBoostClassifier(algorithm=alg, random_state=0)
        clf.fit(X, y_class)
        assert_array_equal(clf.predict(T), y_t_class)
        assert_array_equal(np.unique(np.asarray(y_t_class)), clf.classes_)
        assert_equal(clf.predict_proba(T).shape, (len(T), 2))
        assert_equal(clf.decision_function(T).shape, (len(T),))

def test_regression_toy():
    """Check classification on a toy dataset."""
    clf = AdaBoostRegressor(random_state=0)
    clf.fit(X, y_regr)
    assert_array_equal(clf.predict(T), y_t_regr)

def test_iris():
    """Check consistency on dataset iris."""
    classes = np.unique(iris.target)
    clf_samme = prob_samme = None

    for alg in ['SAMME', 'SAMME.R']:
        clf = AdaBoostClassifier(algorithm=alg)
        clf.fit(iris.data, iris.target)

        assert_array_equal(classes, clf.classes_)
        proba = clf.predict_proba(iris.data)
        if alg == "SAMME":
            clf_samme = clf
            prob_samme = proba
        assert_equal(proba.shape[1], len(classes))
        assert_equal(clf.decision_function(iris.data).shape[1], len(classes))

        score = clf.score(iris.data, iris.target)
        assert score > 0.9, "Failed with algorithm %s and score = %f" % \
            (alg, score)

    # Somewhat hacky regression test: prior to
    # ae7adc880d624615a34bafdb1d75ef67051b8200,
    # predict_proba returned SAMME.R values for SAMME.
    clf_samme.algorithm = "SAMME.R"
    assert_array_less(0,
                      np.abs(clf_samme.predict_proba(iris.data) - prob_samme))

def test_boston():
    """Check consistency on dataset boston house prices."""
    clf = AdaBoostRegressor(random_state=0)
    clf.fit(boston.data, boston.target)
    score = clf.score(boston.data, boston.target)
    assert score > 0.85

def test_staged_predict():
    """Check staged predictions."""
    rng = np.random.RandomState(0)
    iris_weights = rng.randint(10, size=iris.target.shape)
    boston_weights = rng.randint(10, size=boston.target.shape)

    # AdaBoost classification
    for alg in ['SAMME', 'SAMME.R']:
        clf = AdaBoostClassifier(algorithm=alg, n_estimators=10)
        clf.fit(iris.data, iris.target, sample_weight=iris_weights)

        predictions = clf.predict(iris.data)
        staged_predictions = [p for p in clf.staged_predict(iris.data)]
        proba = clf.predict_proba(iris.data)
        staged_probas = [p for p in clf.staged_predict_proba(iris.data)]
        score = clf.score(iris.data, iris.target, sample_weight=iris_weights)
        staged_scores = [
            s for s in clf.staged_score(
                iris.data, iris.target, sample_weight=iris_weights)]

        assert_equal(len(staged_predictions), 10)
        assert_array_almost_equal(predictions, staged_predictions[-1])
        assert_equal(len(staged_probas), 10)
        assert_array_almost_equal(proba, staged_probas[-1])
        assert_equal(len(staged_scores), 10)
        assert_array_almost_equal(score, staged_scores[-1])

    # AdaBoost regression
    clf = AdaBoostRegressor(n_estimators=10, random_state=0)
    clf.fit(boston.data, boston.target, sample_weight=boston_weights)

    predictions = clf.predict(boston.data)
    staged_predictions = [p for p in clf.staged_predict(boston.data)]
    score = clf.score(boston.data, boston.target, sample_weight=boston_weights)
    staged_scores = [
        s for s in clf.staged_score(
            boston.data, boston.target, sample_weight=boston_weights)]

    assert_equal(len(staged_predictions), 10)
    assert_array_almost_equal(predictions, staged_predictions[-1])
    assert_equal(len(staged_scores), 10)
    assert_array_almost_equal(score, staged_scores[-1])

def test_gridsearch():
    """Check that base trees can be grid-searched."""
    # AdaBoost classification
    boost = AdaBoostClassifier(base_estimator=DecisionTreeClassifier())
    parameters = {'n_estimators': (1, 2),
                  'base_estimator__max_depth': (1, 2),
                  'algorithm': ('SAMME', 'SAMME.R')}
    clf = GridSearchCV(boost, parameters)
    clf.fit(iris.data, iris.target)

    # AdaBoost regression
    boost = AdaBoostRegressor(base_estimator=DecisionTreeRegressor(),
                              random_state=0)
    parameters = {'n_estimators': (1, 2),
                  'base_estimator__max_depth': (1, 2)}
    clf = GridSearchCV(boost, parameters)
    clf.fit(boston.data, boston.target)

def test_pickle():
    """Check pickability."""
    import pickle

    # Adaboost classifier
    for alg in ['SAMME', 'SAMME.R']:
        obj = AdaBoostClassifier(algorithm=alg)
        obj.fit(iris.data, iris.target)
        score = obj.score(iris.data, iris.target)
        s = pickle.dumps(obj)

        obj2 = pickle.loads(s)
        assert_equal(type(obj2), obj.__class__)
        score2 = obj2.score(iris.data, iris.target)
        assert_equal(score, score2)

    # Adaboost regressor
    obj = AdaBoostRegressor(random_state=0)
    obj.fit(boston.data, boston.target)
    score = obj.score(boston.data, boston.target)
    s = pickle.dumps(obj)

    obj2 = pickle.loads(s)
    assert_equal(type(obj2), obj.__class__)
    score2 = obj2.score(boston.data, boston.target)
    assert_equal(score, score2)

def test_importances():
    """Check variable importances."""
    X, y = datasets.make_classification(n_samples=2000,
                                        n_features=10,
                                        n_informative=3,
                                        n_redundant=0,
                                        n_repeated=0,
                                        shuffle=False,
                                        random_state=1)

    for alg in ['SAMME', 'SAMME.R']:
        clf = AdaBoostClassifier(algorithm=alg)

        clf.fit(X, y)
        importances = clf.feature_importances_

        assert_equal(importances.shape[0], 10)
        assert_equal((importances[:3, np.newaxis] >= importances[3:]).all(),
                     True)

def test_error():
    """Test that it gives proper exception on deficient input."""
    assert_raises(ValueError,
                  AdaBoostClassifier(learning_rate=-1).fit,
                  X, y_class)

    assert_raises(ValueError,
                  AdaBoostClassifier(algorithm="foo").fit,
                  X, y_class)

def test_base_estimator():
    """Test different base estimators."""
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.svm import SVC

    # XXX doesn't work with y_class because RF doesn't support classes_
    # Shouldn't AdaBoost run a LabelBinarizer?
    clf = AdaBoostClassifier(RandomForestClassifier())
    clf.fit(X, y_regr)

    clf = AdaBoostClassifier(SVC(), algorithm="SAMME")
    clf.fit(X, y_class)

    from sklearn.ensemble import RandomForestRegressor
    from sklearn.svm import SVR

    clf = AdaBoostRegressor(RandomForestRegressor(), random_state=0)
    clf.fit(X, y_regr)

    clf = AdaBoostRegressor(SVR(), random_state=0)
    clf.fit(X, y_regr)

if __name__ == "__main__":
    import nose
    nose.runmodule()

redpajama_set_name: RedPajamaGithub


text:
package net.my4x.tasks;

import static org.junit.Assert.*;

import java.io.IOException;

import org.junit.Test;

public class SVGDrawWallsTaskTest {

	@Test
	public void test() throws IOException {
		SVGDrawWallsTask.perform();
	}

}


text: from pyparsing import *


text:
角色管理 for customer

    角色管理 for customer


text:
BREW_BIN:=$(shell if [ "$(shell uname -p)" = "arm" ]; then echo "/opt/homebrew/bin"; else echo "/usr/local/bin"; fi)
NPM_BIN:=~/.volta/bin
APP_BIN:=/Applications

usage:
	@echo all - Setup dev env

utils: \
	alfred \
	cleanshot \
	yabai
all: \
	terminal \
	work \
	utils \
	personal

extra: \
	daisydisk \
	font-jetbrains-mono \
	mindnode \
	slack

################################################################################
# Terminal section
################################################################################
terminal: \
	~/.config \
	bottom \
	broot \
	exa \
	fd \
	htop \
	nvim \
	tmux \
	tokei \
	wezterm \
	zsh

~/.config:
	mkdir $@

bottom: brew ${BREW_BIN}/btm
${BREW_BIN}/btm:
	brew install bottom

broot: brew ${BREW_BIN}/broot
${BREW_BIN}/broot:
	brew install broot

exa: brew ${BREW_BIN}/exa
${BREW_BIN}/exa:
	brew install exa

fd: brew ${BREW_BIN}/fd
${BREW_BIN}/fd:
	brew install fd

htop: brew ${BREW_BIN}/htop
${BREW_BIN}/htop:
	brew install htop

tokei: brew ${BREW_BIN}/tokei
${BREW_BIN}/tokei:
	brew install tokei

wezterm: brew font-jetbrains-mono /Applications/WezTerm.app ~/.wezterm.lua
/Applications/WezTerm.app:
	brew install --cask wez/wezterm/wezterm
~/.wezterm.lua:
	ln -s ~/.dotfiles/.wezterm.lua $@

################################################################################
# End of the terminal section
################################################################################

################################################################################
# Work section
################################################################################
work: \
	aws \
	brave \
	docker \
	doppler \
	heroku \
	javascript \
	postgresql \
	tableplus

aws: brew ${BREW_BIN}/aws
${BREW_BIN}/aws:
	brew install awscli

brave: brew /Applications/Brave\ Browser.app
/Applications/Brave\ Browser.app:
	brew install --cask brave-browser

docker: brew /Applications/Docker.app
/Applications/Docker.app:
	brew install --cask docker

doppler: gnupg ${BREW_BIN}/doppler
${BREW_BIN}/doppler:
	brew install dopplerhq/cli/doppler

heroku: brew ${BREW_BIN}/heroku
${BREW_BIN}/heroku:
	brew install heroku/brew/heroku

gnupg: brew ${BREW_BIN}/gpg
${BREW_BIN}/gpg:
	brew install gnupg

postgresql: brew ${BREW_BIN}/psql
${BREW_BIN}/psql:
	brew install postgresql

tableplus: brew ${APP_BIN}/TablePlus.app
${APP_BIN}/TablePlus.app:
	brew install tableplus

################################################################################
# End of work section
################################################################################

################################################################################
# Personal section
################################################################################

personal: \
	calibre \
	doctl \
	obsidian \
	rust \
	spotify

# Local vault on 1password does not work with 1password
# app from the app store. We need to manually download
# 1password from the website
# 1password: /Applications/1password\ 7.app
# /Applications/1password\ 7.app:
#	brew install 1password

calibre: brew ${APP_BIN}/Calibre.app
${APP_BIN}/Calibre.app:
	brew install calibre

doctl: brew ${BREW_BIN}/doctl
${BREW_BIN}/doctl:
	brew install doctl

obsidian: brew /Applications/Obsidian.app
/Applications/Obsidian.app:
	brew install obsidian

todoist: brew ${APP_BIN}/Todoist.app
${APP_BIN}/Todoist.app:
	brew install todoist

rust: brew ~/.cargo
~/.cargo:
	curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Faster linking for rust build
# This require xcode
zld:
	brew install michaeleisel/zld/zld

spotify: brew ${APP_BIN}/Spotify.app
${APP_BIN}/Spotify.app:
	brew install spotify

################################################################################
# End of personal section
################################################################################

################################################################################
# Utils section
################################################################################

alfred: brew /Applications/Alfred\ 5.app
/Applications/Alfred\ 5.app:
	brew install alfred

cleanshot: brew ${APP_BIN}/CleanShot\ X.app
${APP_BIN}/CleanShot\ X.app:
	brew install cleanshot

################################################################################
# End of utils section
################################################################################

javascript: prettier
prettier: node ${NPM_BIN}/prettier
${NPM_BIN}/prettier:
	npm i -g prettier @fsouza/prettierd

nvim : ripgrep node brew ${BREW_BIN}/nvim ~/.config/nvim/lua/custom
${BREW_BIN}/nvim:
	# To use neovim 0.5
	# Install cmake luarocks
	# brew install --HEAD neovim
	brew install neovim
	npm i -g neovim
~/.config/nvim:
	# Here is my developer version to try new PRs
	# git clone git@github.com:SebastienElet/NvChad.git $@ --depth 1
	git clone https://github.com/NvChad/NvChad $@ --depth 1
	# ln -s ~/.dotfiles/nvim ~/.config/nvim
~/.config/nvim/lua/custom: ~/.config/nvim
	ln -s ~/.dotfiles/nvim/lua/custom $@

font-fira-code: ~/Library/Fonts/Fira\ Code\ Retina\ Nerd\ Font\ Complete.otf
~/Library/Fonts/Fira\ Code\ Retina\ Nerd\ Font\ Complete.otf:
	brew tap homebrew/cask-fonts
	brew install font-fira-code-nerd-font
font-iosevka: ~/Library/Fonts/Iosevka\ Thin\ Nerd\ Font\ Complete.ttf
~/Library/Fonts/Iosevka\ Thin\ Nerd\ Font\ Complete.ttf:
	brew tap homebrew/cask-fonts
	brew install font-iosevka-nerd-font
font-jetbrains-mono: ~/Library/Fonts/JetBrains\ Mono\ Regular\ Nerd\ Font\ Complete.ttf
~/Library/Fonts/JetBrains\ Mono\ Regular\ Nerd\ Font\ Complete.ttf:
	brew tap homebrew/cask-fonts
	brew install font-jetbrains-mono-nerd-font

fzf: ~/.fzf
~/.fzf:
	git clone https://github.com/junegunn/fzf.git ~/.fzf
	~/.fzf/install --no-update-rc

ripgrep: brew ${BREW_BIN}/rg
${BREW_BIN}/rg:
	brew install ripgrep

starship: brew ${BREW_BIN}/starship ~/.config/starship.toml
${BREW_BIN}/starship:
	brew install starship
~/.config/starship.toml:
	ln -s ~/.dotfiles/.config/starship.toml $@

tmux: brew ${BREW_BIN}/tmux ~/.tmux.conf
${BREW_BIN}/tmux:
	brew install tmux
~/.tmux.conf:
	ln -s ~/.dotfiles/tmux/.tmux.conf ~/.tmux.conf

yabai: ~/.yabairc ${BREW_BIN}/yabai
${BREW_BIN}/yabai:
	brew install koekeishiya/formulae/yabai
~/.yabairc:
	ln -s ~/.dotfiles/.yabairc $@

zsh: starship fzf ~/.zshrc ~/.zsh/zsh-autosuggestions ~/.zsh/zsh-syntax-highlighting ~/.zsh/zsh-completions
~/.zshrc:
	ln -s ~/.dotfiles/.zshrc $@
	@echo 'If you want to switch your shell to zsh, please run the following command'
	@echo '$> chsh -s /bin/zsh'
~/.zsh/zsh-autosuggestions:
	git clone https://github.com/zsh-users/zsh-autosuggestions $@
~/.zsh/zsh-syntax-highlighting:
	git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $@
~/.zsh/zsh-completions:
	git clone https://github.com/zsh-users/zsh-completions $@

bash-language-server: node ${NPM_BIN}/bash-language-server
${NPM_BIN}/bash-language-server:
	@npm -g install bash-language-server

bat: brew ${BREW_BIN}/bat
${BREW_BIN}/bat:
	brew install bat

comby: brew ${BREW_BIN}/comby
${BREW_BIN}/comby:
	brew install comby

ansible: brew ${BREW_BIN}/molecule ${BREW_BIN}/ansible
${BREW_BIN}/ansible:
	brew install ansible

${BREW_BIN}/molecule:
	brew install molecule

brew: ${BREW_BIN}/brew
${BREW_BIN}/brew:
	curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh > /tmp/brew-installer.sh
	chmod +x /tmp/brew-installer.sh
	/tmp/brew-installer.sh
	brew tap gapple/services
	brew tap homebrew/cask-fonts

bars: node ${NPM_BIN}/bars
${NPM_BIN}/bars:
	@npm install -g https://github.com/jez/bars.git

ctop: ${BREW_BIN}/ctop
${BREW_BIN}/ctop:
	brew install ctop

daisydisk: mas /Applications/DaisyDisk.app
/Applications/DaisyDisk.app:
	echo "Install DaisyDisk"
	mas install 411643860

dash: /Applications/Dash.app
/Applications/Dash.app:
	brew install dash

diff-so-fancy: brew ${BREW_BIN}/diff-so-fancy
${BREW_BIN}/diff-so-fancy:
	brew install diff-so-fancy

emacs: brew ${BREW_BIN}/emacs ~/.emacs.d/custom.el ~/.emacs
${BREW_BIN}/emacs:
	brew install emacs
~/.emacs.d:
	mkdir $@
~/.emacs.d/custom.el: ~/.emacs.d
	touch $@
~/.emacs:
	ln -s ~/.dotfiles/.emacs ~/.emacs

git-heatmap: brew bars ${BREW_BIN}/git-heatmap
${BREW_BIN}/git-heatmap:
	brew install jez/formulae/git-heatmap

google-chrome: brew /Applications/Google\ Chrome.app
/Applications/Google\ Chrome.app:
	brew install google-chrome

# /usr/local/opt/gpg-agent/bin/gpg-agent:
#	brew install gpg-agent
${BREW_BIN}/pinentry-mac:
	brew install pinentry-mac

gh: brew ${BREW_BIN}/gh
${BREW_BIN}/gh:
	brew install github/gh/gh

gpg-config:
	echo 'use-agent' > ~/.gnupg/gpg.conf
	echo 'use-standard-socket' > ~/.gnupg/gpg-agent.conf
	echo 'pinentry-program ${BREW_BIN}/pinentry-mac' >> ~/.gnupg/gpg-agent.conf

graphql-language-service-cli: node ${NPM_BIN}/graphql-language-service-cli
${NPM_BIN}/graphql-language-service-cli:
	@npm -g install graphql-language-service-cli

jscpd: node ${BREW_BIN}/jscpd
${BREW_BIN}/jscpd:
	@npm install -g jscpd

kap: brew /Applications/Kap.app
/Applications/Kap.app:
	brew install kap

libjpeg: brew ${BREW_BIN}/libjpeg
${BREW_BIN}/libjpeg:
	brew install libjpeg

lftp: brew ${BREW_BIN}/lftp
${BREW_BIN}/lftp:
	brew install lftp

mas: brew ${BREW_BIN}/mas/
${BREW_BIN}/mas/:
	brew install mas

mosh: brew ${BREW_BIN}/mosh/
${BREW_BIN}/mosh/:
	brew install mosh

ncdu: brew ${BREW_BIN}/ncdu
${BREW_BIN}/ncdu:
	brew install ncdu

node: ${BREW_BIN}/volta
${BREW_BIN}/node:
	volta install latest

notion: brew /Applications/Notion.app
/Applications/Notion.app:
	brew cask install notion

numbers: mas /Applications/Numbers.app
/Applications/Numbers.app:
	mas install 409203825

nvm: /usr/local/opt/nvm/nvm.sh ~/.nvm
/usr/local/opt/nvm/nvm.sh:
	brew install nvm
~/.nvm:
	mkdir $@

mindnode: mas /Applications/MindNode.app
/Applications/MindNode.app:
	mas install 992076693

prettyping: brew ${BREW_BIN}/prettyping
${BREW_BIN}/prettyping:
	brew install prettyping

slack: mas /Applications/Slack.app
/Applications/Slack.app:
	echo "Install slack"
	mas install 803453959

shellcheck: brew ${BREW_BIN}/shellcheck
${BREW_BIN}/shellcheck:
	brew install shellcheck

tmate: brew ${BREW_BIN}/tmate
${BREW_BIN}/tmate:
	brew install tmate

trymodule: node ${BREW_BIN}/trymodule
${BREW_BIN}/trymodule:
	npm install -g trymodule

tldr: brew ${BREW_BIN}/tldr
${BREW_BIN}/tldr:
	brew install tldr

translate-shell: ${BREW_BIN}/trans
${BREW_BIN}/trans:
	brew install translate-shell

typescript: node ${BREW_BIN}/tsc
${BREW_BIN}/tsc:
	npm install -g typescript

vagrant: brew virtualbox ansible ${BREW_BIN}/vagrant
${BREW_BIN}/vagrant:
	brew install vagrant

virtualbox: brew ${BREW_BIN}/VBoxHeadless
${BREW_BIN}/VBoxHeadless:
	brew install virtualbox

volta: brew ${BREW_BIN}/volta
${BREW_BIN}/volta:
	brew install volta

yarn: node ${BREW_BIN}/yarn
${BREW_BIN}/yarn:
	npm install -g yarn

visidata: brew ${BREW_BIN}/vd
${BREW_BIN}/vd:
	brew install saulpw/vd/visidata

youtube-dl: brew ${BREW_BIN}/youtube-dl
${BREW_BIN}/youtube-dl:
	brew install youtube-dl

watch: brew ${BREW_BIN}/watch
${BREW_BIN}/watch:
	brew install watch

mtr: brew ${BREW_BIN}/mtr
${BREW_BIN}/mtr:
	brew install mtr

travis:
	gem install travis

vlc: brew ~/Applications/VLC.app
~/Applications/VLC.app:
	brew install vlc

postman: brew ~/Applications/Postman.app
~/Applications/Postman.app:
	brew install postman

packer: brew ${BREW_BIN}/packer
${BREW_BIN}/packer:
	brew install packer

cloc: brew
	brew install cloc

jq: brew ${BREW_BIN}/jq
${BREW_BIN}/jq:
	brew install jq

highlight: brew ${BREW_BIN}/highlight
${BREW_BIN}/highlight:
	brew install highlight

tig: brew ${BREW_BIN}/tig
${BREW_BIN}/tig:
	brew install tig

cli-tools: how2

how2: node ${BREW_BIN}/how2
${BREW_BIN}/how2:
	@npm -g install how2

pgcli: brew ${BREW_BIN}/pgcli
${BREW_BIN}/pgcli:
	brew install pgcli

clif: ${BREW_BIN}/clif
${BREW_BIN}/clif:
	@npm install -g clif

jsonlint: node ${BREW_BIN}/jsonlint
${BREW_BIN}/jsonlint:
	@npm install -g jsonlint

js-yaml: ${BREW_BIN}/js-yaml
${BREW_BIN}/js-yaml:
	@npm install -g js-yaml

jsinspect: node ${BREW_BIN}/jsinspect
${BREW_BIN}/jsinspect:
	@npm install -g jsinspect

retire: node ${BREW_BIN}/retire
${BREW_BIN}/retire:
	@npm install -g retire

david: node ${BREW_BIN}/david
${BREW_BIN}/david:
	@npm install -g david

nsp: node ${BREW_BIN}/nsp
${BREW_BIN}/nsp:
	@npm install -g nsp

recess:
	@npm install -g recess

sqlint: ${BREW_BIN}/sqlint
${BREW_BIN}/sqlint:
	@gem install sqlint

wallpaper:
	# Set wallpaper
	# osascript -e "tell application \"Finder\" to set desktop picture \
	#	to POSIX file \"/Library/Desktop Pictures/Color Burst 2.jpg\""
	osascript -e "tell application \"System Events\" to set picture of every desktop to \"/Library/Desktop Pictures/Color Burst 2.jpg\""

xz: brew
${BREW_BIN}/xz:
	brew install xz

clean:
	rm -rf ~/.config/nvim
	rm -rf ~/.local/share/nvim
	rm -rf ~/.cache/nvim


text:
require File.expand_path('../application', __FILE__)

# Initialize the rails application
Suggestotron::Application.initialize!