/*
 * 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 "nyn" locale.
 */
public class LocalizedNamesImpl_nyn extends LocalizedNamesImpl {

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

  @Override
  protected void loadNameMapJava() {
    super.loadNameMapJava();
    namesMap.put("AD", "Andora");
    namesMap.put("AE", "Amahanga ga Buharabu ageeteereine");
    namesMap.put("AF", "Afuganistani");
    namesMap.put("AG", "Angiguwa na Babuda");
    namesMap.put("AI", "Angwira");
    namesMap.put("AL", "Arubania");
    namesMap.put("AM", "Arimeniya");
    namesMap.put("AN", "Antiri za Hoorandi");
    namesMap.put("AO", "Angora");
    namesMap.put("AR", "Arigentina");
    namesMap.put("AS", "Samowa ya Ameerika");
    namesMap.put("AT", "Osituria");
    namesMap.put("AU", "Ositureeriya");
    namesMap.put("AZ", "Azabagyani");
    namesMap.put("BA", "Boziniya na Hezegovina");
    namesMap.put("BB", "Babadosi");
    namesMap.put("BD", "Bangaradeshi");
    namesMap.put("BE", "Bubirigi");
    namesMap.put("BF", "Bokina Faso");
    namesMap.put("BG", "Burugariya");
    namesMap.put("BH", "Bahareni");
    namesMap.put("BJ", "Benini");
    namesMap.put("BM", "Berimuda");
    namesMap.put("BN", "Burunei");
    namesMap.put("BO", "Boriiviya");
    namesMap.put("BR", "Buraziiri");
    namesMap.put("BS", "Bahama");
    namesMap.put("BT", "Butani");
    namesMap.put("BY", "Bararusi");
    namesMap.put("BZ", "Berize");
    namesMap.put("CA", "Kanada");
    namesMap.put("CD", "Demokoratika Ripaaburika ya Kongo");
    namesMap.put("CF", "Eihanga rya Rwagati ya Afirika");
    namesMap.put("CG", "Kongo");
    namesMap.put("CH", "Swisi");
    namesMap.put("CI", "Aivore Kositi");
    namesMap.put("CK", "Ebizinga bya Kuuku");
    namesMap.put("CM", "Kameruuni");
    namesMap.put("CO", "Korombiya");
    namesMap.put("CR", "Kositarika");
    namesMap.put("CV", "Ebizinga bya Kepuvade");
    namesMap.put("CY", "Saipurasi");
    namesMap.put("CZ", "Ripaaburika ya Zeeki");
    namesMap.put("DE", "Bugirimaani");
    namesMap.put("DJ", "Gyibuti");
    namesMap.put("DK", "Deenimaaka");
    namesMap.put("DM", "Dominika");
    namesMap.put("DO", "Ripaaburika ya Dominica");
    namesMap.put("DZ", "Arigyeriya");
    namesMap.put("EC", "Ikweda");
    namesMap.put("EE", "Esitoniya");
    namesMap.put("EG", "Misiri");
    namesMap.put("ER", "Eriteriya");
    namesMap.put("ES", "Sipeyini");
    namesMap.put("ET", "Ethiyopiya");
    namesMap.put("FI", "Bufini");
    namesMap.put("FJ", "Figyi");
    namesMap.put("FK", "Ebizinga bya Faakilanda");
    namesMap.put("FM", "Mikironesiya");
    namesMap.put("FR", "Bufaransa");
    namesMap.put("GA", "Gabooni");
    namesMap.put("GB", "Bungyereza");
    namesMap.put("GD", "Gurenada");
    namesMap.put("GE", "Gyogiya");
    namesMap.put("GF", "Guyana ya Bufaransa");
    namesMap.put("GH", "Gana");
    namesMap.put("GI", "Giburaata");
    namesMap.put("GL", "Guriinirandi");
    namesMap.put("GM", "Gambiya");
    namesMap.put("GN", "Gine");
    namesMap.put("GP", "Gwaderupe");
    namesMap.put("GQ", "Guni");
    namesMap.put("GR", "Guriisi");
    namesMap.put("GT", "Gwatemara");
    namesMap.put("GU", "Gwamu");
    namesMap.put("GW", "Ginebisau");
    namesMap.put("HN", "Hondurasi");
    namesMap.put("HR", "Korasiya");
    namesMap.put("HU", "Hangare");
    namesMap.put("ID", "Indoneeziya");
    namesMap.put("IE", "Irerandi");
    namesMap.put("IL", "Isirairi");
    namesMap.put("IN", "Indiya");
    namesMap.put("IO", "Ebizinga bya Indian ebya Bungyereza");
    namesMap.put("IQ", "Iraaka");
    namesMap.put("IR", "Iraani");
    namesMap.put("IS", "Aisilandi");
    namesMap.put("IT", "Itare");
    namesMap.put("JM", "Gyamaika");
    namesMap.put("JO", "Yorudaani");
    namesMap.put("JP", "Gyapaani");
    namesMap.put("KG", "Kirigizistani");
    namesMap.put("KH", "Kambodiya");
    namesMap.put("KM", "Koromo");
    namesMap.put("KN", "Senti Kittis na Nevisi");
    namesMap.put("KP", "Koreya Amatemba");
    namesMap.put("KR", "Koreya Amashuuma");
    namesMap.put("KW", "Kuweiti");
    namesMap.put("KY", "Ebizinga bya Kayimani");
    namesMap.put("KZ", "Kazakisitani");
    namesMap.put("LA", "Layosi");
    namesMap.put("LB", "Lebanoni");
    namesMap.put("LC", "Senti Rusiya");
    namesMap.put("LI", "Lishenteni");
    namesMap.put("LK", "Siriranka");
    namesMap.put("LR", "Liberiya");
    namesMap.put("LU", "Lakizembaaga");
    namesMap.put("LV", "Latviya");
    namesMap.put("MD", "Moridova");
    namesMap.put("MG", "Madagasika");
    namesMap.put("MH", "Ebizinga bya Marshaa");
    namesMap.put("MK", "Masedoonia");
    namesMap.put("ML", "Mari");
    namesMap.put("MM", "Myanamar");
    namesMap.put("MN", "Mongoria");
    namesMap.put("MP", "Ebizinga by'amatemba ga Mariana");
    namesMap.put("MR", "Mauriteeniya");
    namesMap.put("MS", "Montserrati");
    namesMap.put("MT", "Marita");
    namesMap.put("MU", "Maurishiasi");
    namesMap.put("MV", "Maridives");
    namesMap.put("MW", "Marawi");
    namesMap.put("MY", "marayizia");
    namesMap.put("NA", "Namibiya");
    namesMap.put("NC", "Niukaredonia");
    namesMap.put("NE", "Naigya");
    namesMap.put("NF", "Ekizinga Norifoko");
    namesMap.put("NG", "Naigyeriya");
    namesMap.put("NI", "Nikaragwa");
    namesMap.put("NL", "Hoorandi");
    namesMap.put("NO", "Noorwe");
    namesMap.put("NP", "Nepo");
    namesMap.put("NZ", "Niuzirandi");
    namesMap.put("OM", "Omaani");
    namesMap.put("PF", "Polinesia ya Bufaransa");
    namesMap.put("PG", "Papua");
    namesMap.put("PH", "Firipino");
    namesMap.put("PK", "Pakisitaani");
    namesMap.put("PL", "Poorandi");
    namesMap.put("PM", "Senti Piyerre na Mikweron");
    namesMap.put("PN", "Pitkaini");
    namesMap.put("PR", "Pwetoriko");
    namesMap.put("PS", "Parestiina na Gaza");
    namesMap.put("PT", "Pocugo");
    namesMap.put("PW", "Palaawu");
    namesMap.put("PY", "Paragwai");
    namesMap.put("QA", "Kata");
    namesMap.put("RE", "Riyuniyoni");
    namesMap.put("RO", "Romaniya");
    namesMap.put("RU", "Rrasha");
    namesMap.put("SA", "Saudi Areebiya");
    namesMap.put("SB", "Ebizinga bya Surimaani");
    namesMap.put("SC", "Shesheresi");
    namesMap.put("SD", "Sudani");
    namesMap.put("SE", "Swideni");
    namesMap.put("SG", "Singapo");
    namesMap.put("SH", "Senti Herena");
    namesMap.put("SI", "Sirovaaniya");
    namesMap.put("SK", "Sirovaakiya");
    namesMap.put("SL", "Sirra Riyooni");
    namesMap.put("SM", "Samarino");
    namesMap.put("SN", "Senego");
    namesMap.put("SO", "Somaariya");
    namesMap.put("SR", "Surinaamu");
    namesMap.put("ST", "Sawo Tome na Purinsipo");
    namesMap.put("SV", "Eri Salivado");
    namesMap.put("SY", "Siriya");
    namesMap.put("SZ", "Swazirandi");
    namesMap.put("TC", "Ebizinga bya Buturuki na Kaiko");
    namesMap.put("TD", "Chadi");
    namesMap.put("TH", "Tairandi");
    namesMap.put("TJ", "Tajikisitani");
    namesMap.put("TK", "Tokerawu");
    namesMap.put("TL", "Burugweizooba bwa Timori");
    namesMap.put("TM", "Turukimenisitani");
    namesMap.put("TN", "Tunizia");
    namesMap.put("TR", "Buturuki /Take");
    namesMap.put("TT", "Turinidad na Tobago");
    namesMap.put("TV", "Tuvaru");
    namesMap.put("TW", "Tayiwaani");
    namesMap.put("UA", "Ukureini");
    namesMap.put("US", "Amerika");
    namesMap.put("UY", "Urugwai");
    namesMap.put("UZ", "Uzibekisitani");
    namesMap.put("VA", "Vatikani");
    namesMap.put("VC", "Senti Vinsent na Gurenadini");
    namesMap.put("VE", "Venezuwera");
    namesMap.put("VG", "Ebizinga bya Virigini ebya Bungyereza");
    namesMap.put("VI", "Ebizinga bya Virigini ebya Amerika");
    namesMap.put("VN", "Viyetinaamu");
    namesMap.put("WF", "Warris na Futuna");
    namesMap.put("WS", "Samowa");
    namesMap.put("YE", "Yemeni");
    namesMap.put("YT", "Mayote");
    namesMap.put("ZA", "Sausi Afirika");
  }

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

  private native JavaScriptObject loadMyNameMap() /*-{
    return {
        "AD": "Andora",
        "AE": "Amahanga ga Buharabu ageeteereine",
        "AF": "Afuganistani",
        "AG": "Angiguwa na Babuda",
        "AI": "Angwira",
        "AL": "Arubania",
        "AM": "Arimeniya",
        "AN": "Antiri za Hoorandi",
        "AO": "Angora",
        "AR": "Arigentina",
        "AS": "Samowa ya Ameerika",
        "AT": "Osituria",
        "AU": "Ositureeriya",
        "AZ": "Azabagyani",
        "BA": "Boziniya na Hezegovina",
        "BB": "Babadosi",
        "BD": "Bangaradeshi",
        "BE": "Bubirigi",
        "BF": "Bokina Faso",
        "BG": "Burugariya",
        "BH": "Bahareni",
        "BJ": "Benini",
        "BM": "Berimuda",
        "BN": "Burunei",
        "BO": "Boriiviya",
        "BR": "Buraziiri",
        "BS": "Bahama",
        "BT": "Butani",
        "BY": "Bararusi",
        "BZ": "Berize",
        "CA": "Kanada",
        "CD": "Demokoratika Ripaaburika ya Kongo",
        "CF": "Eihanga rya Rwagati ya Afirika",
        "CG": "Kongo",
        "CH": "Swisi",
        "CI": "Aivore Kositi",
        "CK": "Ebizinga bya Kuuku",
        "CM": "Kameruuni",
        "CO": "Korombiya",
        "CR": "Kositarika",
        "CV": "Ebizinga bya Kepuvade",
        "CY": "Saipurasi",
        "CZ": "Ripaaburika ya Zeeki",
        "DE": "Bugirimaani",
        "DJ": "Gyibuti",
        "DK": "Deenimaaka",
        "DM": "Dominika",
        "DO": "Ripaaburika ya Dominica",
        "DZ": "Arigyeriya",
        "EC": "Ikweda",
        "EE": "Esitoniya",
        "EG": "Misiri",
        "ER": "Eriteriya",
        "ES": "Sipeyini",
        "ET": "Ethiyopiya",
        "FI": "Bufini",
        "FJ": "Figyi",
        "FK": "Ebizinga bya Faakilanda",
        "FM": "Mikironesiya",
        "FR": "Bufaransa",
        "GA": "Gabooni",
        "GB": "Bungyereza",
        "GD": "Gurenada",
        "GE": "Gyogiya",
        "GF": "Guyana ya Bufaransa",
        "GH": "Gana",
        "GI": "Giburaata",
        "GL": "Guriinirandi",
        "GM": "Gambiya",
        "GN": "Gine",
        "GP": "Gwaderupe",
        "GQ": "Guni",
        "GR": "Guriisi",
        "GT": "Gwatemara",
        "GU": "Gwamu",
        "GW": "Ginebisau",
        "HN": "Hondurasi",
        "HR": "Korasiya",
        "HU": "Hangare",
        "ID": "Indoneeziya",
        "IE": "Irerandi",
        "IL": "Isirairi",
        "IN": "Indiya",
        "IO": "Ebizinga bya Indian ebya Bungyereza",
        "IQ": "Iraaka",
        "IR": "Iraani",
        "IS": "Aisilandi",
        "IT": "Itare",
        "JM": "Gyamaika",
        "JO": "Yorudaani",
        "JP": "Gyapaani",
        "KG": "Kirigizistani",
        "KH": "Kambodiya",
        "KM": "Koromo",
        "KN": "Senti Kittis na Nevisi",
        "KP": "Koreya Amatemba",
        "KR": "Koreya Amashuuma",
        "KW": "Kuweiti",
        "KY": "Ebizinga bya Kayimani",
        "KZ": "Kazakisitani",
        "LA": "Layosi",
        "LB": "Lebanoni",
        "LC": "Senti Rusiya",
        "LI": "Lishenteni",
        "LK": "Siriranka",
        "LR": "Liberiya",
        "LU": "Lakizembaaga",
        "LV": "Latviya",
        "MD": "Moridova",
        "MG": "Madagasika",
        "MH": "Ebizinga bya Marshaa",
        "MK": "Masedoonia",
        "ML": "Mari",
        "MM": "Myanamar",
        "MN": "Mongoria",
        "MP": "Ebizinga by'amatemba ga Mariana",
        "MR": "Mauriteeniya",
        "MS": "Montserrati",
        "MT": "Marita",
        "MU": "Maurishiasi",
        "MV": "Maridives",
        "MW": "Marawi",
        "MY": "marayizia",
        "NA": "Namibiya",
        "NC": "Niukaredonia",
        "NE": "Naigya",
        "NF": "Ekizinga Norifoko",
        "NG": "Naigyeriya",
        "NI": "Nikaragwa",
        "NL": "Hoorandi",
        "NO": "Noorwe",
        "NP": "Nepo",
        "NZ": "Niuzirandi",
        "OM": "Omaani",
        "PF": "Polinesia ya Bufaransa",
        "PG": "Papua",
        "PH": "Firipino",
        "PK": "Pakisitaani",
        "PL": "Poorandi",
        "PM": "Senti Piyerre na Mikweron",
        "PN": "Pitkaini",
        "PR": "Pwetoriko",
        "PS": "Parestiina na Gaza",
        "PT": "Pocugo",
        "PW": "Palaawu",
        "PY": "Paragwai",
        "QA": "Kata",
        "RE": "Riyuniyoni",
        "RO": "Romaniya",
        "RU": "Rrasha",
        "SA": "Saudi Areebiya",
        "SB": "Ebizinga bya Surimaani",
        "SC": "Shesheresi",
        "SD": "Sudani",
        "SE": "Swideni",
        "SG": "Singapo",
        "SH": "Senti Herena",
        "SI": "Sirovaaniya",
        "SK": "Sirovaakiya",
        "SL": "Sirra Riyooni",
        "SM": "Samarino",
        "SN": "Senego",
        "SO": "Somaariya",
        "SR": "Surinaamu",
        "ST": "Sawo Tome na Purinsipo",
        "SV": "Eri Salivado",
        "SY": "Siriya",
        "SZ": "Swazirandi",
        "TC": "Ebizinga bya Buturuki na Kaiko",
        "TD": "Chadi",
        "TH": "Tairandi",
        "TJ": "Tajikisitani",
        "TK": "Tokerawu",
        "TL": "Burugweizooba bwa Timori",
        "TM": "Turukimenisitani",
        "TN": "Tunizia",
        "TR": "Buturuki /Take",
        "TT": "Turinidad na Tobago",
        "TV": "Tuvaru",
        "TW": "Tayiwaani",
        "UA": "Ukureini",
        "US": "Amerika",
        "UY": "Urugwai",
        "UZ": "Uzibekisitani",
        "VA": "Vatikani",
        "VC": "Senti Vinsent na Gurenadini",
        "VE": "Venezuwera",
        "VG": "Ebizinga bya Virigini ebya Bungyereza",
        "VI": "Ebizinga bya Virigini ebya Amerika",
        "VN": "Viyetinaamu",
        "WF": "Warris na Futuna",
        "WS": "Samowa",
        "YE": "Yemeni",
        "YT": "Mayote",
        "ZA": "Sausi Afirika"
    };
  }-*/;
}
