/*
 * Copyright 2014 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.i18n.client.impl.cldr;

import com.google.gwt.core.client.JavaScriptObject;

// DO NOT EDIT - GENERATED FROM CLDR DATA:
//  cldrVersion=25
//  date=$Date: 2013-08-29 04:32:04 +0200 (Thu, 29 Aug 2013) $
//  number=$Revision: 9287 $
//  type=root

/**
 * Localized names for the "agq" locale.
 */
public class LocalizedNamesImpl_agq extends LocalizedNamesImpl {

  @Override
  public String[] loadSortedRegionCodes() {
    return new String[] {
        "AL",
        "DZ",
        "AC",
        "AR",
        "PS",
        "IE",
        "IS",
        "AF",
        "ZA",
        "AW",
        "AS",
        "AM",
        "AD",
        "AG",
        "AQ",
        "AX",
        "AZ",
        "AO",
        "AI",
        "BB",
        "BS",
        "BH",
        "BD",
        "BL",
        "BO",
        "BA",
        "BW",
        "BQ",
        "BF",
        "BI",
        "BG",
        "BV",
        "BY",
        "BZ",
        "BM",
        "BJ",
        "BE",
        "BR",
        "BN",
        "CC",
        "TD",
        "CN",
        "CL",
        "FK",
        "MH",
        "NF",
        "SB",
        "MP",
        "VG",
        "TC",
        "KY",
        "CK",
        "CV",
        "CZ",
        "CP",
        "CW",
        "CX",
        "DG",
        "DM",
        "DO",
        "JP",
        "DE",
        "JM",
        "DJ",
        "GI",
        "JO",
        "GE",
        "CD",
        "DK",
        "IO",
        "EA",
        "EG",
        "EH",
        "EC",
        "GQ",
        "IQ",
        "IR",
        "ER",
        "IN",
        "ID",
        "SV",
        "TL",
        "EE",
        "IT",
        "ET",
        "EU",
        "IL",
        "FR",
        "PH",
        "FJ",
        "FO",
        "FI",
        "GH",
        "GA",
        "GM",
        "GF",
        "GG",
        "GN",
        "GW",
        "GS",
        "GY",
        "GP",
        "GU",
        "GT",
        "NG",
        "GL",
        "GR",
        "GD",
        "HT",
        "HK",
        "HM",
        "HN",
        "HU",
        "IC",
        "IM",
        "JE",
        "NC",
        "CM",
        "KH",
        "CA",
        "QA",
        "KZ",
        "KI",
        "KG",
        "CO",
        "KM",
        "CR",
        "HR",
        "PK",
        "PG",
        "PY",
        "PW",
        "PA",
        "PN",
        "PF",
        "PR",
        "PL",
        "PT",
        "PE",
        "CI",
        "KP",
        "KR",
        "CU",
        "KW",
        "CG",
        "KE",
        "LR",
        "LV",
        "LA",
        "LY",
        "LT",
        "LI",
        "RE",
        "RU",
        "RO",
        "RW",
        "LU",
        "LB",
        "LS",
        "MT",
        "MG",
        "MV",
        "FM",
        "MW",
        "ML",
        "MY",
        "MQ",
        "YT",
        "BT",
        "ME",
        "MF",
        "MM",
        "MO",
        "MA",
        "MD",
        "MU",
        "MR",
        "MC",
        "MZ",
        "MN",
        "MS",
        "MX",
        "MK",
        "NE",
        "NA",
        "NR",
        "NL",
        "AN",
        "NI",
        "NU",
        "NO",
        "NP",
        "QO",
        "RS",
        "CY",
        "WS",
        "SM",
        "ST",
        "SA",
        "SZ",
        "SY",
        "SL",
        "SG",
        "SJ",
        "SO",
        "SS",
        "SD",
        "SE",
        "CH",
        "SR",
        "SX",
        "SC",
        "SH",
        "KN",
        "PM",
        "LC",
        "CF",
        "VC",
        "SN",
        "ES",
        "LK",
        "SK",
        "SI",
        "TA",
        "TZ",
        "TJ",
        "TH",
        "TW",
        "TR",
        "TM",
        "TT",
        "TF",
        "TG",
        "TN",
        "TK",
        "TV",
        "TO",
        "VI",
        "UM",
        "OM",
        "US",
        "AU",
        "AT",
        "VU",
        "VA",
        "VN",
        "VE",
        "WF",
        "XK",
        "UG",
        "UA",
        "UY",
        "AE",
        "GB",
        "UZ",
        "YE",
        "ZM",
        "NZ",
        "ZW",
    };
  }

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("AD", "Àndolà");
    namesMap.put("AE", "Yùnaetɛ Alab ɛmelɛ̀");
    namesMap.put("AF", "Àfɨ̀ganìsɨ̀tân");
    namesMap.put("AG", "Àntigwà à Bàbudà");
    namesMap.put("AI", "Àŋgwilà");
    namesMap.put("AL", "Àabɛnìa");
    namesMap.put("AM", "Àmɛnyìa");
    namesMap.put("AN", "Nedàlân Antàe");
    namesMap.put("AO", "Àŋgolà");
    namesMap.put("AR", "Àdzɛ̀ntinà");
    namesMap.put("AS", "Àmɛlekan Samwà");
    namesMap.put("AT", "Usɨtɨ̀là");
    namesMap.put("AU", "Ùsɨ̀tɛ̀lɛlìa");
    namesMap.put("AW", "Àlubà");
    namesMap.put("AZ", "Àzɨbɛ̀dzân");
    namesMap.put("BA", "Bosɨnyìa à Hɛ̀zɛ̀gòvinà");
    namesMap.put("BB", "Bàbadòs");
    namesMap.put("BD", "Baŋgɨ̀làdɛ̂");
    namesMap.put("BE", "Bɛɛdzwùm");
    namesMap.put("BF", "Bùkinà Fasò");
    namesMap.put("BG", "Bùugɛlìa");
    namesMap.put("BH", "Bàlaen");
    namesMap.put("BI", "Bùlundì");
    namesMap.put("BJ", "Bɛ̀nɨ̂ŋ");
    namesMap.put("BM", "Bɛ̀mudà");
    namesMap.put("BN", "Bɨ̀lunè");
    namesMap.put("BO", "Bòlevà");
    namesMap.put("BR", "Bɨ̀làzîi");
    namesMap.put("BS", "Bàhamàs");
    namesMap.put("BT", "Mbutàn");
    namesMap.put("BW", "Bòtɨ̀swǎnà");
    namesMap.put("BY", "Bɛlàlûs");
    namesMap.put("BZ", "Bɛ̀lezɨ̀");
    namesMap.put("CA", "Kanadà");
    namesMap.put("CD", "Dɛ̀mùkàlatì Lèkpubèlè è Kuŋgù");
    namesMap.put("CF", "Sɛnta Afɨlekan Lèkpobèlè");
    namesMap.put("CG", "Kuŋgù");
    namesMap.put("CH", "Suezàlân");
    namesMap.put("CI", "Ku Dɨ̀vûa");
    namesMap.put("CK", "Chwɨla ŋ̀ Kûʔ");
    namesMap.put("CL", "Chilè");
    namesMap.put("CM", "Kàmàlûŋ");
    namesMap.put("CN", "Chaenà");
    namesMap.put("CO", "Kòlombìa");
    namesMap.put("CR", "Kòsɨ̀tà Lekà");
    namesMap.put("CU", "Kuuwbà");
    namesMap.put("CV", "Chwɨla ŋ̀ Kɛ̀b Vɛ̂ɛ");
    namesMap.put("CY", "Saekpùlù");
    namesMap.put("CZ", "Chɛ̂ Lèkpubèlè");
    namesMap.put("DE", "Dzamanè");
    namesMap.put("DJ", "Dzìbuwtì");
    namesMap.put("DK", "Dɛnɨmà");
    namesMap.put("DM", "Dòmenekà");
    namesMap.put("DO", "Dòmenekà Lèkpubèlè");
    namesMap.put("DZ", "Àadzɛlìa");
    namesMap.put("EC", "Ekwadò");
    namesMap.put("EE", "Èsɨ̀tonyìa");
    namesMap.put("EG", "Edzì");
    namesMap.put("ER", "Èletɨ̀là");
    namesMap.put("ES", "Sɨ̀kpɛ̂n");
    namesMap.put("ET", "Ètyǒpìa");
    namesMap.put("FI", "Fɨnlàn");
    namesMap.put("FJ", "Fidzi");
    namesMap.put("FK", "Chwɨlà fɨ Fakɨlàn");
    namesMap.put("FM", "Maekòlòneshìa");
    namesMap.put("FR", "Fàlâŋnsì");
    namesMap.put("GA", "Gàbûn");
    namesMap.put("GB", "Yùnaetɛ Kiŋdɔ̀m");
    namesMap.put("GD", "Gɨ̀lɛnadà");
    namesMap.put("GE", "Dzɔɔdzìa");
    namesMap.put("GF", "Gàyanà è Fàlâŋnsì");
    namesMap.put("GH", "Gaanà");
    namesMap.put("GI", "Dzibɨ̀latà");
    namesMap.put("GL", "Gɨ̀lenlân");
    namesMap.put("GM", "Gambìa");
    namesMap.put("GN", "Ginè");
    namesMap.put("GP", "Gwadalukpɛ̀");
    namesMap.put("GQ", "Èkwɛ̀tolia Ginè");
    namesMap.put("GR", "Gɨ̀lês");
    namesMap.put("GT", "Gwàtɨ̀malà");
    namesMap.put("GU", "Gwam");
    namesMap.put("GW", "Ginè Bìsawù");
    namesMap.put("GY", "Gùyanà");
    namesMap.put("HN", "Hɔndulàs");
    namesMap.put("HR", "Kòwɛshìa");
    namesMap.put("HT", "Hǎetì");
    namesMap.put("HU", "Hɔŋgàlè");
    namesMap.put("ID", "Èndòneshìa");
    namesMap.put("IE", "Aelɨ̀lân");
    namesMap.put("IL", "Ezɨ̀lɛ̂");
    namesMap.put("IN", "Endìa");
    namesMap.put("IO", "Dɨŋò kɨ dzughùnstòʔ kɨ Endìa kɨ Bɨ̀letì kò");
    namesMap.put("IQ", "Èlâkɨ̀");
    namesMap.put("IR", "Èlân");
    namesMap.put("IS", "Aesɨ̀lân");
    namesMap.put("IT", "Etalè");
    namesMap.put("JM", "Dzàmɛkà");
    namesMap.put("JO", "Dzodàn");
    namesMap.put("JP", "Dzàkpân");
    namesMap.put("KE", "Kɨnyà");
    namesMap.put("KG", "Kìdzisɨ̀tân");
    namesMap.put("KH", "Kàmbodìa");
    namesMap.put("KI", "Kèlèbati");
    namesMap.put("KM", "Komolòs");
    namesMap.put("KN", "Sɛ̀n Kî à Nevì");
    namesMap.put("KP", "Kùulîa, Ekùw");
    namesMap.put("KR", "Kùulîa, Emàm");
    namesMap.put("KW", "Kùwɛ̂");
    namesMap.put("KY", "Chwɨlà ŋ̀ Kaemàn");
    namesMap.put("KZ", "Kàzasɨ̀tân");
    namesMap.put("LA", "Làwos");
    namesMap.put("LB", "Lɛbanè");
    namesMap.put("LC", "Sɛ̀n Lushìa");
    namesMap.put("LI", "Letɨnshɨ̀n");
    namesMap.put("LK", "Sɨ̀le Laŋkà");
    namesMap.put("LR", "Làebɛlìa");
    namesMap.put("LS", "Lɛ̀sotù");
    namesMap.put("LT", "Lètwǎnyìa");
    namesMap.put("LU", "Luzɨmbùʔ");
    namesMap.put("LV", "Làtɨva");
    namesMap.put("LY", "Lebìa");
    namesMap.put("MA", "Mòlokò");
    namesMap.put("MC", "Mùnaku");
    namesMap.put("MD", "Mòodovà");
    namesMap.put("MG", "Màdàgasɨkà");
    namesMap.put("MH", "Chwɨlà fɨ Mashà");
    namesMap.put("MK", "Mɨ̀sɨ̀donyìa");
    namesMap.put("ML", "Malè");
    namesMap.put("MM", "Mǐanmà");
    namesMap.put("MN", "Mùŋgolìa");
    namesMap.put("MP", "Chwɨlà m̀ Màlǐanà mɨ̀ Ekùw mò");
    namesMap.put("MQ", "Màtìnekì");
    namesMap.put("MR", "Mùlètanyìa");
    namesMap.put("MS", "Mùŋtselà");
    namesMap.put("MT", "Maatà");
    namesMap.put("MU", "Mùleshwɨ̀s");
    namesMap.put("MV", "Màdivè");
    namesMap.put("MW", "Màlawì");
    namesMap.put("MX", "Mɛkɨzikù");
    namesMap.put("MY", "Màlɛshìa");
    namesMap.put("MZ", "Mùzàmbî");
    namesMap.put("NA", "Nàmibìa");
    namesMap.put("NC", "Kàlèdonyìa È fūghū");
    namesMap.put("NE", "Naedzà");
    namesMap.put("NF", "Chwɨlà fɨ Nufòʔ");
    namesMap.put("NG", "Gɨ̀anyɨ");
    namesMap.put("NI", "Nikàlagwà");
    namesMap.put("NL", "Nedàlân");
    namesMap.put("NO", "Noowɛ̂ɛ");
    namesMap.put("NP", "Nɛkpâa");
    namesMap.put("NR", "Nàwulù");
    namesMap.put("NU", "Niyu");
    namesMap.put("NZ", "Zìlân È fūghū");
    namesMap.put("OM", "Umàn");
    namesMap.put("PA", "Kpanàma");
    namesMap.put("PE", "Kpɛlû");
    namesMap.put("PF", "Kpoleneshìa è Fàlâŋnsì");
    namesMap.put("PG", "Kpakpua Ginè È fūghū");
    namesMap.put("PH", "Felèkpî");
    namesMap.put("PK", "Kpakìsɨ̀tân");
    namesMap.put("PL", "Kpulàn");
    namesMap.put("PM", "Sɛ̀n Kpiyɛ̀ à Mikelɔŋ");
    namesMap.put("PN", "Kpitɨ̀kalè");
    namesMap.put("PR", "Kpǒto Leko");
    namesMap.put("PS", "Adzɨmā kɨ ŋgùŋ kɨ Palɛsɨtɨnyia à kɨ Gazà kò");
    namesMap.put("PT", "Kputuwgà");
    namesMap.put("PW", "Kpàlawù");
    namesMap.put("PY", "Kpalàgwɛ̂");
    namesMap.put("QA", "Katà");
    namesMap.put("RE", "Lèyunyɔ̀ŋ");
    namesMap.put("RO", "Lùmanyìa");
    namesMap.put("RU", "Loshìa");
    namesMap.put("RW", "Lùwandà");
    namesMap.put("SA", "Sawudi Alabi");
    namesMap.put("SB", "Chwɨlà fɨ Solomwɨ̀n");
    namesMap.put("SC", "Sɛchɛ̀lɛ̀s");
    namesMap.put("SD", "Sùdân");
    namesMap.put("SE", "Suedɨ̀n");
    namesMap.put("SG", "Siŋgàkpôo");
    namesMap.put("SH", "Sɛ̀n Èlenà");
    namesMap.put("SI", "Sɨ̀lòvɨnyìa");
    namesMap.put("SK", "Sɨ̀lòvɨkɨ̀a");
    namesMap.put("SL", "Silìa lûŋ");
    namesMap.put("SM", "Sàn Màlenù");
    namesMap.put("SN", "Sɛ̀nɛ̀gâa");
    namesMap.put("SO", "Sòmalìa");
    namesMap.put("SR", "Sulènamè");
    namesMap.put("ST", "Sawo Tɔ̀me à Kpèlènsikpɛ̀");
    namesMap.put("SV", "Esàvadò");
    namesMap.put("SY", "Silîa");
    namesMap.put("SZ", "Shǔazìlân");
    namesMap.put("TC", "Chwɨla n Tɨtê à Kaekùs");
    namesMap.put("TD", "Châ");
    namesMap.put("TG", "Tugù");
    namesMap.put("TH", "Taelàn");
    namesMap.put("TJ", "Tàdzikìsɨ̀tân");
    namesMap.put("TK", "Tuwkelawù");
    namesMap.put("TL", "Ês Taemò");
    namesMap.put("TM", "Tekɨmènèsɨ̀tân");
    namesMap.put("TN", "Tùneshìa");
    namesMap.put("TO", "Tuŋgà");
    namesMap.put("TR", "Teekì");
    namesMap.put("TT", "Tèlenedà à Tòbagù");
    namesMap.put("TV", "Tuwvalùw");
    namesMap.put("TW", "Taewàn");
    namesMap.put("TZ", "Tàanzanyìa");
    namesMap.put("UA", "Yùkɛ̀lɛ̂");
    namesMap.put("UG", "Yùgandà");
    namesMap.put("US", "USA");
    namesMap.put("UY", "Yulùgwɛ̂");
    namesMap.put("UZ", "Yùzɨ̀bɛkìsɨ̀tân");
    namesMap.put("VA", "Vatikàn Sɨ̀tɛ̂");
    namesMap.put("VC", "Sɛ̀n Vinsɨ̀n à Gɨlenadi Ù tē");
    namesMap.put("VE", "Vɛ̀nɛ̀zǔɛɛlà");
    namesMap.put("VG", "Chwɨlà m̀ Vidzinyìa m̀ Bɨ̀letì mò");
    namesMap.put("VI", "U. S. Chwɨlà fɨ Mbuʔmbu");
    namesMap.put("VN", "Vìyɛnàm");
    namesMap.put("VU", "Vànǔatùw");
    namesMap.put("WF", "Wales à Fùwtuwnà");
    namesMap.put("WS", "Sàmowà");
    namesMap.put("YE", "Yɛmɛ̀n");
    namesMap.put("YT", "Màyotì");
    namesMap.put("ZA", "Afɨlekà ghɨ Emàm ghò");
    namesMap.put("ZM", "Zambìa");
    namesMap.put("ZW", "Zìmbagbɛ̀");
  }

  @Override
  protected JavaScriptObject loadNameMapNative() {
    return overrideMap(super.loadNameMapNative(), loadMyNameMap());
  }

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "AD": "Àndolà",
        "AE": "Yùnaetɛ Alab ɛmelɛ̀",
        "AF": "Àfɨ̀ganìsɨ̀tân",
        "AG": "Àntigwà à Bàbudà",
        "AI": "Àŋgwilà",
        "AL": "Àabɛnìa",
        "AM": "Àmɛnyìa",
        "AN": "Nedàlân Antàe",
        "AO": "Àŋgolà",
        "AR": "Àdzɛ̀ntinà",
        "AS": "Àmɛlekan Samwà",
        "AT": "Usɨtɨ̀là",
        "AU": "Ùsɨ̀tɛ̀lɛlìa",
        "AW": "Àlubà",
        "AZ": "Àzɨbɛ̀dzân",
        "BA": "Bosɨnyìa à Hɛ̀zɛ̀gòvinà",
        "BB": "Bàbadòs",
        "BD": "Baŋgɨ̀làdɛ̂",
        "BE": "Bɛɛdzwùm",
        "BF": "Bùkinà Fasò",
        "BG": "Bùugɛlìa",
        "BH": "Bàlaen",
        "BI": "Bùlundì",
        "BJ": "Bɛ̀nɨ̂ŋ",
        "BM": "Bɛ̀mudà",
        "BN": "Bɨ̀lunè",
        "BO": "Bòlevà",
        "BR": "Bɨ̀làzîi",
        "BS": "Bàhamàs",
        "BT": "Mbutàn",
        "BW": "Bòtɨ̀swǎnà",
        "BY": "Bɛlàlûs",
        "BZ": "Bɛ̀lezɨ̀",
        "CA": "Kanadà",
        "CD": "Dɛ̀mùkàlatì Lèkpubèlè è Kuŋgù",
        "CF": "Sɛnta Afɨlekan Lèkpobèlè",
        "CG": "Kuŋgù",
        "CH": "Suezàlân",
        "CI": "Ku Dɨ̀vûa",
        "CK": "Chwɨla ŋ̀ Kûʔ",
        "CL": "Chilè",
        "CM": "Kàmàlûŋ",
        "CN": "Chaenà",
        "CO": "Kòlombìa",
        "CR": "Kòsɨ̀tà Lekà",
        "CU": "Kuuwbà",
        "CV": "Chwɨla ŋ̀ Kɛ̀b Vɛ̂ɛ",
        "CY": "Saekpùlù",
        "CZ": "Chɛ̂ Lèkpubèlè",
        "DE": "Dzamanè",
        "DJ": "Dzìbuwtì",
        "DK": "Dɛnɨmà",
        "DM": "Dòmenekà",
        "DO": "Dòmenekà Lèkpubèlè",
        "DZ": "Àadzɛlìa",
        "EC": "Ekwadò",
        "EE": "Èsɨ̀tonyìa",
        "EG": "Edzì",
        "ER": "Èletɨ̀là",
        "ES": "Sɨ̀kpɛ̂n",
        "ET": "Ètyǒpìa",
        "FI": "Fɨnlàn",
        "FJ": "Fidzi",
        "FK": "Chwɨlà fɨ Fakɨlàn",
        "FM": "Maekòlòneshìa",
        "FR": "Fàlâŋnsì",
        "GA": "Gàbûn",
        "GB": "Yùnaetɛ Kiŋdɔ̀m",
        "GD": "Gɨ̀lɛnadà",
        "GE": "Dzɔɔdzìa",
        "GF": "Gàyanà è Fàlâŋnsì",
        "GH": "Gaanà",
        "GI": "Dzibɨ̀latà",
        "GL": "Gɨ̀lenlân",
        "GM": "Gambìa",
        "GN": "Ginè",
        "GP": "Gwadalukpɛ̀",
        "GQ": "Èkwɛ̀tolia Ginè",
        "GR": "Gɨ̀lês",
        "GT": "Gwàtɨ̀malà",
        "GU": "Gwam",
        "GW": "Ginè Bìsawù",
        "GY": "Gùyanà",
        "HN": "Hɔndulàs",
        "HR": "Kòwɛshìa",
        "HT": "Hǎetì",
        "HU": "Hɔŋgàlè",
        "ID": "Èndòneshìa",
        "IE": "Aelɨ̀lân",
        "IL": "Ezɨ̀lɛ̂",
        "IN": "Endìa",
        "IO": "Dɨŋò kɨ dzughùnstòʔ kɨ Endìa kɨ Bɨ̀letì kò",
        "IQ": "Èlâkɨ̀",
        "IR": "Èlân",
        "IS": "Aesɨ̀lân",
        "IT": "Etalè",
        "JM": "Dzàmɛkà",
        "JO": "Dzodàn",
        "JP": "Dzàkpân",
        "KE": "Kɨnyà",
        "KG": "Kìdzisɨ̀tân",
        "KH": "Kàmbodìa",
        "KI": "Kèlèbati",
        "KM": "Komolòs",
        "KN": "Sɛ̀n Kî à Nevì",
        "KP": "Kùulîa, Ekùw",
        "KR": "Kùulîa, Emàm",
        "KW": "Kùwɛ̂",
        "KY": "Chwɨlà ŋ̀ Kaemàn",
        "KZ": "Kàzasɨ̀tân",
        "LA": "Làwos",
        "LB": "Lɛbanè",
        "LC": "Sɛ̀n Lushìa",
        "LI": "Letɨnshɨ̀n",
        "LK": "Sɨ̀le Laŋkà",
        "LR": "Làebɛlìa",
        "LS": "Lɛ̀sotù",
        "LT": "Lètwǎnyìa",
        "LU": "Luzɨmbùʔ",
        "LV": "Làtɨva",
        "LY": "Lebìa",
        "MA": "Mòlokò",
        "MC": "Mùnaku",
        "MD": "Mòodovà",
        "MG": "Màdàgasɨkà",
        "MH": "Chwɨlà fɨ Mashà",
        "MK": "Mɨ̀sɨ̀donyìa",
        "ML": "Malè",
        "MM": "Mǐanmà",
        "MN": "Mùŋgolìa",
        "MP": "Chwɨlà m̀ Màlǐanà mɨ̀ Ekùw mò",
        "MQ": "Màtìnekì",
        "MR": "Mùlètanyìa",
        "MS": "Mùŋtselà",
        "MT": "Maatà",
        "MU": "Mùleshwɨ̀s",
        "MV": "Màdivè",
        "MW": "Màlawì",
        "MX": "Mɛkɨzikù",
        "MY": "Màlɛshìa",
        "MZ": "Mùzàmbî",
        "NA": "Nàmibìa",
        "NC": "Kàlèdonyìa È fūghū",
        "NE": "Naedzà",
        "NF": "Chwɨlà fɨ Nufòʔ",
        "NG": "Gɨ̀anyɨ",
        "NI": "Nikàlagwà",
        "NL": "Nedàlân",
        "NO": "Noowɛ̂ɛ",
        "NP": "Nɛkpâa",
        "NR": "Nàwulù",
        "NU": "Niyu",
        "NZ": "Zìlân È fūghū",
        "OM": "Umàn",
        "PA": "Kpanàma",
        "PE": "Kpɛlû",
        "PF": "Kpoleneshìa è Fàlâŋnsì",
        "PG": "Kpakpua Ginè È fūghū",
        "PH": "Felèkpî",
        "PK": "Kpakìsɨ̀tân",
        "PL": "Kpulàn",
        "PM": "Sɛ̀n Kpiyɛ̀ à Mikelɔŋ",
        "PN": "Kpitɨ̀kalè",
        "PR": "Kpǒto Leko",
        "PS": "Adzɨmā kɨ ŋgùŋ kɨ Palɛsɨtɨnyia à kɨ Gazà kò",
        "PT": "Kputuwgà",
        "PW": "Kpàlawù",
        "PY": "Kpalàgwɛ̂",
        "QA": "Katà",
        "RE": "Lèyunyɔ̀ŋ",
        "RO": "Lùmanyìa",
        "RU": "Loshìa",
        "RW": "Lùwandà",
        "SA": "Sawudi Alabi",
        "SB": "Chwɨlà fɨ Solomwɨ̀n",
        "SC": "Sɛchɛ̀lɛ̀s",
        "SD": "Sùdân",
        "SE": "Suedɨ̀n",
        "SG": "Siŋgàkpôo",
        "SH": "Sɛ̀n Èlenà",
        "SI": "Sɨ̀lòvɨnyìa",
        "SK": "Sɨ̀lòvɨkɨ̀a",
        "SL": "Silìa lûŋ",
        "SM": "Sàn Màlenù",
        "SN": "Sɛ̀nɛ̀gâa",
        "SO": "Sòmalìa",
        "SR": "Sulènamè",
        "ST": "Sawo Tɔ̀me à Kpèlènsikpɛ̀",
        "SV": "Esàvadò",
        "SY": "Silîa",
        "SZ": "Shǔazìlân",
        "TC": "Chwɨla n Tɨtê à Kaekùs",
        "TD": "Châ",
        "TG": "Tugù",
        "TH": "Taelàn",
        "TJ": "Tàdzikìsɨ̀tân",
        "TK": "Tuwkelawù",
        "TL": "Ês Taemò",
        "TM": "Tekɨmènèsɨ̀tân",
        "TN": "Tùneshìa",
        "TO": "Tuŋgà",
        "TR": "Teekì",
        "TT": "Tèlenedà à Tòbagù",
        "TV": "Tuwvalùw",
        "TW": "Taewàn",
        "TZ": "Tàanzanyìa",
        "UA": "Yùkɛ̀lɛ̂",
        "UG": "Yùgandà",
        "US": "USA",
        "UY": "Yulùgwɛ̂",
        "UZ": "Yùzɨ̀bɛkìsɨ̀tân",
        "VA": "Vatikàn Sɨ̀tɛ̂",
        "VC": "Sɛ̀n Vinsɨ̀n à Gɨlenadi Ù tē",
        "VE": "Vɛ̀nɛ̀zǔɛɛlà",
        "VG": "Chwɨlà m̀ Vidzinyìa m̀ Bɨ̀letì mò",
        "VI": "U. S. Chwɨlà fɨ Mbuʔmbu",
        "VN": "Vìyɛnàm",
        "VU": "Vànǔatùw",
        "WF": "Wales à Fùwtuwnà",
        "WS": "Sàmowà",
        "YE": "Yɛmɛ̀n",
        "YT": "Màyotì",
        "ZA": "Afɨlekà ghɨ Emàm ghò",
        "ZM": "Zambìa",
        "ZW": "Zìmbagbɛ̀"
    };
  }-*/;
}
