// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************

es {
    Version { "3.0" }
    Types {
        TRADITIONAL { "Tradicional" }
    }
    Variants {
        REVISED { "Revisado" }
    }
    CollationElements { 
        Version { "1.0" }
        Sequence { "& N < n\u0303<<< N\u0303" }
    }
    /* Duplicates from root commented out. */
    Countries { 
        Fallback{ "en"}
        AE { "Emiratos \u00C1rabes Unidos" }
        AF { "Afganist\u00E1n" }
        AG { "Antigua y Barbuda" }
        AI { "Anguila" }
        //AL { "Albania" }
        //AM { "Armenia" }
        AN { "Antillas Neerlandesas" }
        //AO { "Angola" }
        AQ { "Ant\u00E1rtica" }
        //AR { "Argentina" }
        AS { "Samoa Americana" }
        //AT { "Austria" }
        //AU { "Australia" }
        //AW { "Aruba" }
        AZ { "Azerbaiy\u00E1n" }
        BA { "Bosnia y Hercegovina" }
        //BB { "Barbados" }
        //BD { "Bangladesh" }
        BE { "B\u00E9lgica" }
        //BF { "Burkina Faso" }
        //BG { "Bulgaria" }
        BH { "Bahr\u00E1in" }
        //BI { "Burundi" }
        BJ { "Ben\u00EDn" }
        BM { "Bermudas" }
        BN { "Brun\u00E9i" }
        //BO { "Bolivia" }
        BR { "Brasil" }
        //BS { "Bahamas" }
        BT { "But\u00E1n" }
        BV { "Isla Bouvet" }
        BW { "Botsuana" }
        BY { "Bielorrusia" }
        BZ { "Belice" }
        CA { "Canad\u00E1" }
        CC { "Islas Cocos (Keeling)" }
        CD { "Rep\u00FAblica Democr\u00E1tica del Congo" }
        CF { "Rep\u00FAblica Centroafricana" }
        //CG { "Congo" }
        CH { "Suiza" }
        CI { "Costa de Marfil" }
        CK { "Islas Cook" }
        //CL { "Chile" }
        CM { "Camer\u00FAn" }
        //CN { "China" }
        //CO { "Colombia" }
        //CR { "Costa Rica" }
        //CU { "Cuba" }
        CV { "Cabo Verde" }
        CX { "Isla de Christmas" }
        CY { "Chipre" }
        CZ { "Rep\u00FAblica Checa" }
        //CZ { "Chequia" } // Old value
        DE { "Alemania" }
        DJ { "Yibuti" }
        DK { "Dinamarca" }
        //DM { "Dominica" }
        DO { "Rep\u00FAblica Dominicana" }
        DZ { "Argelia" }
        //EC { "Ecuador" }
        //EE { "Estonia" }
        EG { "Egipto" }
        EH { "S\u00E1hara Occidental" }
        //ER { "Eritrea" }
        ES { "Espa\u00F1a" }
        ET { "Etiop\u00EDa" }
        FI { "Finlandia" }
        FJ { "Fidji" }
        FK { "Islas Falkland (Malvinas)" }    // alternate name { "Islas Malvinas" }
        FM { "Micronesia, Estados Federados de" }
        FO { "Islas Feroe" }
        FR { "Francia" }
        GA { "Gab\u00F3n" }
        GB { "Reino Unido" }
        GD { "Granada" }
        //GE { "Georgia" }
        GF { "Guayana Francesa" }
        //GH { "Ghana" }
        //GI { "Gibraltar" }
        GL { "Groenlandia" }
        //GM { "Gambia" }
        //GN { "Guinea" }
        GP { "Guadalupe" }
        GQ { "Guinea Ecuatorial" }
        GR { "Grecia" }
        GS { "Islas Georgia del Sur y Sandwich del Sur" }
        //GT { "Guatemala" }
        //GU { "Guam" }
        //GW { "Guinea-Bissau" }
        //GY { "Guyana" }
        //HK { "Hong Kong, Regi\u00F3n administrativa especial de China" }
        HM { "Islas Heard y McDonald" }
        //HN { "Honduras" }
        HR { "Croacia" }
        HT { "Hait\u00ED" }
        HU { "Hungr\u00EDa" }
        //ID { "Indonesia" }
        IE { "Irlanda" }
        //IL { "Israel" }
        //IN { "India" }
        IO { "Territorios Brit\u00E1nicos del Oc\u00E9ano \u00CDndico" }
        IQ { "Irak" }
        IR { "Ir\u00E1n" }
        IS { "Islandia" }
        IT { "Italia" }
        //JM { "Jamaica" }
        JO { "Jordania" }
        JP { "Jap\u00F3n" }
        KE { "Kenia" }
        KG { "Kirguizist\u00E1n" }
        KH { "Camboya" }
        //KI { "Kiribati" }
        KM { "Comores" }
        KN { "San Crist\u00F3bal y Nieves" }
        KP { "Corea del Norte" }    // alternate name { "Corea, Rep\u00FAblica Popular Democr\u00E1tica de" }
        KR { "Corea del Sur" }    // alternate name { "Corea, Rep\u00FAblica de " }
        //KW { "Kuwait" }
        KY { "Islas Caim\u00E1n" }
        KZ { "Kazajist\u00E1n" }
        //LA { "Rep\u00FAblica Democr\u00E1tica Popular Lao" } // From translation center
        LB { "L\u00EDbano" }
        //LC { "Santa Lucia" }
        //LI { "Liechtenstein" }
        //LK { "Sri Lanka" }
        //LR { "Liberia" }
        LS { "Lesoto" }
        LT { "Lituania" }
        LU { "Luxemburgo" }
        LV { "Letonia" }
        LY { "Libia" }
        MA { "Marruecos" }
        MC { "M\u00F3naco" }
        MD { "Moldavia, Rep\u00FAblica de" }
        //MG { "Madagascar" }
        MH { "Islas Marshall" }
        MK { "Macedonia, Antigua Rep\u00FAblica Yugoslava de" }    // alternate name { "Macedonia, Rep\u00FAblica de" }
        ML { "Mal\u00ED" }
        //MM { "Myanmar" }
        //MN { "Mongolia" }
        MO { "Macao, Regi\u00F3n administrativa especial de China" }
        MP { "Islas Marianas del Norte" }
        MQ { "Martinica" }
        //MR { "Mauritania" }
        //MS { "Montserrat" }
        //MT { "Malta" }
        MU { "Mauricio" }
        MV { "Maldivas" }
        MW { "Malaui" }
        MX { "M\u00E9xico" }
        MY { "Malasia" }
        //MZ { "Mozambique" }
        //NA { "Namibia" }
        NC { "Nueva Caledonia" }
        NE { "N\u00EDger" }
        NF { "Isla Norfolk" }
        //NG { "Nigeria" }
        //NI { "Nicaragua" }
        NL { "Pa\u00EDses Bajos" }
        NO { "Noruega" }
        //NP { "Nepal" }
        //NR { "Nauru" }
        //NU { "Niue" }
        NZ { "Nueva Zelanda" }
        OM { "Om\u00E1n" }
        PA { "Panam\u00E1" }
        PE { "Per\u00FA" }
        PF { "Polinesia Francesa" }
        PG { "Pap\u00FAa Nueva Guinea" }
        //PH { "Islas Filipinas" }  // Original value
        PH { "Filipinas" }
        PK { "Pakist\u00E1n" }
        PL { "Polonia" }
        PM { "San Pedro y Miquel\u00F3n" }
        //PN { "Pitcairn" }
        //PR { "Puerto Rico" }
        PS { "Territorios Palestinos" }
        //PT { "Portugal" }
        //PW { "Palau" }
        //PY { "Paraguay" }
        //QA { "Qatar" }
        //RE { "Reuni\u00F3n" }
        RO { "Rumania" }
        RU { "Rusia" }
        //RU { "Federaci\u00F3n Rusa" } // From translation center
        RW { "Ruanda" }
        SA { "Arabia Saud\u00ED" }
        SB { "Islas Salom\u00F3n" }
        //SC { "Seychelles" }
        SD { "Sud\u00E1n" }
        SE { "Suecia" }
        SG { "Singapur" }
        SH { "Santa Elena" } // From translation center
        SI { "Eslovenia" }
        SJ { "Svalbard y Jan Mayen" }
        SK { "Eslovaquia" }
        SL { "Sierra Leona" }
        //SM { "San Marino" }
        //SN { "Senegal" }
        //SO { "Somalia" }
        SP { "Serbia" }
        //SR { "Surinam" }
        ST { "Santo Tom\u00E9 y Pr\u00EDncipe" }
        //SV { "El Salvador" }
        SY { "Siria" }
        SZ { "Suazilandia" }
        TC { "Islas Turcas y Caicos" }
        //TD { "Chad" }
        TF { "Territorios Australes Franceses" }
        //TG { "Togo" }
        TH { "Tailandia" }
        TJ { "Tayikist\u00E1n" }
        //TK { "Tokelau" }
        TL { "Timor Oriental" }
        TM { "Turkmenist\u00E1n" }
        TN { "T\u00FAnez" }
        //TO { "Tonga" }
        TR { "Turqu\u00EDa" }
        TT { "Trinidad y Tabago" }
        //TV { "Tuvalu" }
        TW { "Taiw\u00E1n, Rep\u00FAblica de China" }
        //TZ { "Tanzania" }
        UA { "Ucrania" }
        //UG { "Uganda" }
        UM { "Islas menores alejadas de Estados Unidos" }
        //UM { "Islas Perif\u00E9ricas Menores de los Estados Unidos" } // Old value
        US { "Estados Unidos" }
        //UY { "Uruguay" }
        UZ { "Uzbekist\u00E1n" }
        VA { "Santa Sede (Ciudad del Vaticano)" }
        VC { "San Vicente y las Granadinas" }
        //VE { "Venezuela" }
        VG { "Islas V\u00EDrgenes Brit\u00E1nicas" }
        VI { "Islas V\u00EDrgenes de los Estados Unidos" }
        //VN { "Vietnam" }
        //VU { "Vanuatu" }
        WF { "Wallis y Futuna" }
        //WS { "Samoa" }
        //YE { "Yemen" }
        //YT { "Mayotte" }
        //YU { "Yugoslavia" }
        ZA { "Sud\u00E1frica" }
        //ZM { "Zambia" }
        ZW { "Zimbabue" }
    }
    DateTimeElements:intvector { 
        2,
        1,
    }
    DateTimePatterns { 
        "HH'H'mm''ss\" z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE d' de 'MMMM' de 'yyyy",
        "d' de 'MMMM' de 'yyyy",
        "dd-MMM-yy",
        "d/MM/yy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "dom",
        "lun",
        "mar",
        "mi\u00E9",
        "jue",
        "vie",
        "s\u00E1b",
    }
    DayNames { 
        "domingo",
        "lunes",
        "martes",
        "mi\u00E9rcoles",
        "jueves",
        "viernes",
        "s\u00E1bado",
    }
    Eras { 
        "a.C.",  // Said to be a.C. for antes de Cristo
        "d.C.",  // Said to be d.C. for despu\u00E9s de Cristo
    }
    // Spanish does not capitalize the language names like English
    Languages {
        Fallback{ "en"}
        root{"ra\u00EDz" }    // The only exception to ISO-639

        af { "afrikaans" }
        am { "amharic" }
        ar { "\u00E1rabe" }
        az { "azerbayano" }
        be { "bielorruso" }
        bg { "b\u00FAlgaro" }
        bh { "bihari" }
        bn { "bengal\u00ED" }
        ca { "catal\u00E1n" }
        cs { "checo" }
        da { "dan\u00E9s" }
        de { "alem\u00E1n" }
        el { "griego" }
        en { "ingl\u00E9s" }
        eo { "esperanto" }
        es { "espa\u00F1ol" }
        et { "estonio" }
        eu { "vasco" }
        fa { "farsi" }
        fi { "finland\u00E9s" }
        fo { "fero\u00E9s" }
        fr { "franc\u00E9s" }
        ga { "irland\u00E9s" }
        gl { "gallego" }
        gu { "goujarat\u00ED" }
        gv { "ga\u00E9lico man\u00E9s" }
		haw { "hawaiano" }
        he { "hebreo" }
        hi { "hindi" }
        hr { "croata" }
        hu { "h\u00FAngaro" }
        hy { "armenio" }
        id { "indonesio" }
        is { "island\u00e9s" }
        it { "italiano" }
		iu { "inuktitut" }
        ja { "japon\u00E9s" }
        ka { "georgiano" }
        kk { "kazajo" }
        kl { "groenland\u00E9s" }
        km { "kmer" }
        kn { "canara" }
        ko { "coreano" }
        ku { "kurdo" }
        kw { "c\u00F3rnico" }
        ky { "kirghiz" }
        la { "lat\u00EDn" }
        lt { "lituano" }
        //lv { "let\u00F3n" } // Old value
        lv { "letonio" }
        mk { "macedonio" }
        mn { "mongol" }
        mr { "marathi" }
        ms { "malayo" }
        mt { "malt\u00e9s" }
        my { "birmano" }
        nl { "holand\u00E9s" }
		nb { "bokmal noruego" }
        no { "noruego" }
 		nn { "nynorsk noruego" }
        om { "oromo" }
        pa { "punjab\u00ED" }
        pl { "polaco" }
        pt { "portugu\u00E9s" }
        ro { "rumano" }
        ru { "ruso" }
        sh { "serbocroata" }
        sk { "eslovaco" }
        sl { "esloveno" }
        so { "somal\u00ED" }
        sq { "alban\u00E9s" }
        sr { "serbio" }
        sv { "sueco" }
        sw { "swahili" }
 		ta { "tamil" }
        te { "telugu" }
        th { "tailand\u00E9s" }
        ti { "tigrinya" }
        tr { "turco" }
        tt { "t\u00E1taro" }
        uk { "ucraniano" }
        ur { "urdu" }
        uz { "uzbeko" }
        vi { "vietnamita" }
        zh { "chino" }
        zu { "zul\u00FA" }
    }
    MonthAbbreviations { 
        "ene",
        "feb",
        "mar",
        "abr",
        "may",
        "jun",
        "jul",
        "ago",
        "sep",
        "oct",
        "nov",
        "dic",
    }
    MonthNames { 
        "enero",
        "febrero",
        "marzo",
        "abril",
        "mayo",
        "junio",
        "julio",
        "agosto",
        "septiembre",
        "octubre",
        "noviembre",
        "diciembre",
    }
    NumberPatterns { 
        "#,##0.###;-#,##0.###",
        "\u00A4#,##0.00;(\u00A4#,##0.00)",
        "#,##0%",
        "#E0",
    }
    localPatternChars { "GuMtkHmsSEDFwWahKzUe" }
    zoneStrings { 
        {
            "Africa/Casablanca",
            "GMT",
            "GMT",
            "GMT",
            "GMT",
        }
    }
    LocaleScript{ 
        "Latn",  // ISO 15924 Name 
    }
    // u umlaut \u00fc is a rare character.
    // It can be found in words like multilig\u00fce, ag\u00fcita and Itag\u00fc\u00ed
    ExemplarCharacters { "[a-z \u00f1 \u00e1 \u00e9 \u00ed \u00f3 \u00fa \u00fc]" }
 
    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

//         * Spellout rules for Spanish.  The Spanish rules are quite similar to
//         * the English rules, but there are some important differences:
//         * First, we have to provide separate rules for most of the twenties
//         * because the ones digit frequently picks up an accent mark that it
//         * doesn't have when standing alone.  Second, each multiple of 100 has
//         * to be specified separately because the multiplier on 100 very often
//         * changes form in the contraction: 500 is "quinientos," not
//         * "cincocientos."  In addition, the word for 100 is "cien" when
//         * standing alone, but changes to "ciento" when followed by more digits.
//         * There also some other differences.

    // The Spanish rules are incomplete.  I'm missing information on negative
    // numbers and numbers with fractional parts.  I also don't have
    // information on numbers higher than the millions.

    SpelloutRules {
        // negative-number and fraction rules
        "-x: menos >>;\n"
        "x.x: << punto >>;\n"
        // words for values from 0 to 19
        "cero; uno; dos; tres; cuatro; cinco; seis; siete; ocho; nueve;\n"
        "diez; once; doce; trece; catorce; quince; diecis\u00e9is;\n"
        "    diecisiete; dieciocho; diecinueve;\n"
        // words for values from 20 to 29 (necessary because the ones digit
        // often picks up an accent mark it doesn't have when standing alone)
        "veinte; veintiuno; veintid\u00f3s; veintitr\u00e9s; veinticuatro;\n"
        "    veinticinco; veintis\u00e9is; veintisiete; veintiocho;\n"
        "    veintinueve;\n"
        // words for multiples of 10 (notice that the tens digit is separated
        // from the ones digit by the word "y".)
        "30: treinta[ y >>];\n"
        "40: cuarenta[ y >>];\n"
        "50: cincuenta[ y >>];\n"
        "60: sesenta[ y >>];\n"
        "70: setenta[ y >>];\n"
        "80: ochenta[ y >>];\n"
        "90: noventa[ y >>];\n"
        // 100 by itself is "cien," but 100 followed by something is "cineto"
        "100: cien;\n"
        "101: ciento >>;\n"
        // words for multiples of 100 (must be stated because they're
        // rarely simple concatenations)
        "200: doscientos[ >>];\n"
        "300: trescientos[ >>];\n"
        "400: cuatrocientos[ >>];\n"
        "500: quinientos[ >>];\n"
        "600: seiscientos[ >>];\n"
        "700: setecientos[ >>];\n"
        "800: ochocientos[ >>];\n"
        "900: novecientos[ >>];\n"
        // for 1,000, the multiplier on "mil" is omitted: 2,000 is "dos mil,"
        // but 1,000 is just "mil."
        "1000: mil[ >>];\n"
        "2000: << mil[ >>];\n"
        // 1,000,000 is "un millon," not "uno millon"
        "1,000,000: un mill\u00f3n[ >>];\n"
        "2,000,000: << mill\u00f3n[ >>];\n"
        // overflow rule
        "1,000,000,000: =#,##0= (incomplete data);" 
     }

    // Currency display names
    Currencies {
        ADP { "ADP", "Peseta Andorrana" }
        AED { "AED", "Dirham de los Emiratos \u00C1rabes Unidos" }
        AFA { "AFA", "Afghani" }
        ALL { "ALL", "Lek Alban\u00E9s" }
        AMD { "AMD", "Dram Armenio" }
        ANG { "ANG", "Guilder de India Occidental" }
        AOK { "AOK", "Kwanza Angol\u00E9s" }
        ARA { "ARA", "Austral Argentino" }
        ARS { "ARS", "Peso Argentino" }
        ATS { "ATS", "Chel\u00EDn Austriaco" }
        AUD { "AUD", "D\u00F3lar Australiano" }
        AWG { "AWG", "Guilder de Aruba" }
        AZM { "AZM", "Manat de Azerbaijan" }
        BAD { "BAD", "Dinar de Bosnia-Herzogovinia" }
        BBD { "BBD", "D\u00F3lar de Barbados" }
        BDT { "BDT", "Taka de Bangladesh" }
        BEF { "BEF", "Franco Belga" }
        BGL { "BGL", "Lev Bulgaro" }
        BHD { "BHD", "Dinar de Barein" }
        BIF { "BIF", "Franco de Burundi" }
        BMD { "BMD", "D\u00F3lar de Bermudas" }
        BND { "BND", "D\u00F3lar de Brunei" }
        BOB { "$b", "Boliviano de Bolivia" }
        BRL { "BRL", "Real de Brazil" }
        BSD { "BSD", "D\u00F3lar de Bahamas" }
        BWP { "BWP", "Pula de Botswana" }
        BYR { "BYR", "Rublo de Belorusia" }
        BZD { "BZD", "D\u00F3lar de Belize" }
        CAD { "CAD", "D\u00F3lar Canadiense" }
        CHF { "CHF", "Franco Suizo" }
        CLP { "CLP", "Peso Chileno" }
        COP { "COP", "Peso de Colombia" }
        CRC { "CRC", "Colon de Costa Rica" }
        CUP { "CUP", "Peso Cubano" }
        CVE { "CVE", "Escudo de Cabo Verde" }
        CYP { "CYP", "Libra de Chipre" }
        CZK { "CZK", "Krona Checa" }
        DEM { "DEM", "Marco Alem\u00E1n" }
        DJF { "DJF", "Franco de Djibouti" }
        DKK { "DKK", "Corona Danesa" }
        DOP { "RD$", "Peso Dominicano" }
        // DRP { "DRP", "Peso de la Rep\u00FAblica Dominicana" } -- invalid
        DZD { "DZD", "Dinar de Algeria" }
        ECS { "S/.", "Sucre de Ecuador" }
        // ECU { "ECU", "Moenda \u00DAnica Europea (EURO)" } -- invalid
        EEK { "EEK", "Corona de Estonia" }
        EGP { "EGP", "Libra Egipcia" }
        ESP { "\u20A7", "Peseta Espa\u00F1ola" }
        ETB { "ETB", "Birr de Etiop\u00EDa" }
        EUR { "\u20AC", "Moneda de los estados miembros de EMU" }
        FIM { "FIM", "Marco Finland\u00E9s" }
        FJD { "FJD", "D\u00F3lar de Fiji" }
        FKP { "FKP", "Libra de Falkland" }
        FRF { "FRF", "Franco Franc\u00E9s" }
        GBP { "\u00A3", "Libra Brit\u00E1nica" }
        GEK { "GEK", "Kupon de Georgia" }
        GHC { "GHC", "Cedi de Ghana" }
        GIP { "GIP", "Libra de Gibraltar" }
        GMD { "GMD", "Dalasi de Gambia" }
        GNF { "GNF", "Franco de Guinea" }
        GRD { "GRD", "Dracma Griego" }
        GTQ { "Q", "Quedzal de Guatemala" }
        GWP { "GWP", "Peso de Guinea" }
        GYD { "GYD", "D\u00F3lar Guayan\u00E9s" }
        HKD { "HKD", "D\u00F3lar de Hong Kong" }
        HNL { "L.", "Lempira de Honduras" }
        HRD { "HRD", "Dinar de Croacia" }
        HTG { "HTG", "Gourde de Haiti" }
        HUF { "HUF", "Flor\u00EDn H\u00FAngaro" }
        IDR { "IDR", "Rupia Indonesia" }
        IEP { "IEP", "Libra Irlandesa" }
        ILS { "ILS", "Scheckel Israel\u00ED" }
        INR { "=0#Rs.|1#Re.|1<Rs.", "Rupia India" }
        IQD { "IQD", "Dinar Iraqu\u00ED" }
        IRR { "IRR", "Rial Iran\u00ED" }
        ISK { "ISK", "Corona Islandesa" }
        ITL { "\u20A4", "Lira Italiana" }
        JMD { "JMD", "D\u00F3lar de Jamaica" }
        JOD { "JOD", "Dinar de Jordania" }
        JPY { "\u00A5", "Yen Japon\u00E9s" }
        KES { "KES", "Chel\u00EDn de Kenya" }
        KHR { "KHR", "Riel de Camboya" }
        // KIS { "KIS", "Som de Kirghizstan" } -- invalid
        KMF { "KMF", "Franco de Comoros" }
        KPW { "KPW", "Won de Corea del Norte" }
        KRW { "KRW", "Won de Corea del Sur" }
        KWD { "KWD", "Dinar de Kuwait" }
        KYD { "KYD", "D\u00F3lar de las Caim\u00E1n" }
        KZT { "KZT", "Tenge de Kazakhst\u00E1n" }
        LAK { "LAK", "Kip de Letonia" }
        LBP { "LBP", "Libra Libanesa" }
        LKR { "LKR", "Rupia de Ceil\u00E1n" }
        LRD { "LRD", "D\u00F3lar de Liberia" }
        LSL { "LSL", "Loti de Lesotho" }
        LTL { "LTL", "Lita de Lituania" }
        LUF { "LUF", "Franco de Luxemburgo" }
        LVL { "LVL", "Lat Latonia" }
        LYD { "LYD", "Dinar Libio" }
        MAD { "MAD", "Dirham Marroqu\u00ED" }
        MDL { "MDL", "Lei de Moldavia" }
        MGF { "MGF", "Franco de Madagascar" }
        MNT { "MNT", "Tugrik de Mongolia" }
        MOP { "MOP", "Pataca de Macao" }
        MRO { "MRO", "Ouguiya de Mauritania" }
        MTL { "MTL", "Lira de Malta" }
        MUR { "MUR", "Rupia de Mauritius" }
        MVR { "MVR", "Rufia de Maldivas" }
        MWK { "MWK", "Kwacha de Malawi" }
        MXN { "MXN", "Peso Mexicano (nuevo)" }
        MXP { "MXP", "Peso Mexicano (viejo)" }
        MYR { "MYR", "Ringgit de Malaysia" }
        MZM { "MZM", "Metical de Mozambique" }
        NGN { "NGN", "Naira de Nigeria" }
        NIO { "C$", "Cordoba de Nicaragua" }
        NLG { "NLG", "Guilder de Holanda" }
        NOK { "NOK", "C\u00F3rona Noruega" }
        NPR { "NPR", "Rupia de Nepal" }
        NZD { "NZD", "D\u00F3lar de Nueva Zelanda" }
        OMR { "OMR", "Rial de Om\u00E1n" }
        PAB { "B/", "Balboa de Panam\u00E1" }
        PEI { "PEI", "Inti de Per\u00FA" }
        PEN { "S/", "Sol de Per\u00FA - Nuevo" }
        PES { "PES", "Sol de Per\u00FA" }
        PGK { "PGK", "Kina de Papua Nueva Guinea" }
        PHP { "PHP", "Peso Filipino" }
        PKR { "PKR", "Rupia de Pakist\u00E1n" }
        PLN { "PLN", "Zloty de Polonia" }
        PTE { "PTE", "Escudo Portugu\u00E9s" }
        PYG { "Gs", "Guarani de Paraguay" }
        QAR { "QAR", "Riyal de Qatar" }
        // RMB { "RMB", "Remnminbi Yuan de China" } -- invalid
        ROL { "ROL", "Lei de Rumania" }
        RUR { "RUR", "Rublo Ruso" }
        RWF { "RWF", "Franco de Rwanda" }
        SAR { "SAR", "Riyal de Arabia Saud\u00ED" }
        SBD { "SBD", "D\u00F3lar de las Islas Solomon" }
        SCR { "SCR", "Rupias de Seychelles" }
        SDP { "SDP", "Libra de Sud\u00E1n" }
        SEK { "SEK", "C\u00F3rona Sueca" }
        SGD { "SGD", "D\u00F3lar de Singapur" }
        SHP { "SHP", "Libra de St.Helena" }
        SIT { "SIT", "Tolar de Eslovenia" }
        SKK { "SKK", "C\u00F3rona Eslovaca" }
        SLL { "SLL", "Sierra Le\u00F3n" }
        SOS { "SOS", "Chell\u00EDn de Somalia" }
        SRG { "SRG", "Guilder de Surinam" }
        STD { "STD", "Sao Tome / Principe Dobra" }
        SUR { "SUR", "Rublo Ruso (viejo)" }
        SVC { "SVC", "Colon de El Salvador" }
        SYP { "SYP", "libra de Siria" }
        SZL { "SZL", "Lilangeni de Swaziland" }
        THB { "THB", "Baht de Tailandia" }
        TJR { "TJR", "Rublo de Tadzikist\u00E1n" }
        TMM { "TMM", "Manat de Turkmenist\u00E1n" }
        TND { "TND", "Dinar de Tun\u00EDcia" }
        TOP { "TOP", "Pa'anga de Tonga" }
        TPE { "TPE", "Escudo de Timor" }
        TRL { "TRL", "Lira de Turqu\u00EDa" }
        TTD { "TTD", "D\u00F3lar de Trinidad y Tobagor" }
        TWD { "TWD", "D\u00F3lar de Nuevo Taiw\u00E1n" }
        TZS { "TZS", "Chell\u00EDn de Tanzania" }
        UAK { "UAK", "karbowanez de Ucrainia" }
        UGS { "UGS", "Chell\u00EDn de Uganda" }
        USD { "$", "D\u00F3lar Americano" }
        UYP { "UYP", "Nuevo Peso de Uruguay" }
        UYU { "NU$", "UYU" }
        VEB { "Bs", "Bolivar de Venezuela" }
        VND { "\u20AB", "Dong de Vietn\u00E1m" }
        VUV { "VUV", "Vatu de Vanuatu" }
        WST { "WST", "Tala de Samoa" }
        XAF { "XAF", "Franco de Gab\u00F3n" }
        XCD { "XCD", "D\u00F3lar de Caribe Oriental" }
        XOF { "XOF", "Franco de Benin (C.f.A.)" }
        YER { "YER", "Ryal de Yemen" }
        ZAR { "ZAR", "Rand de Sur \u00C1frica" }
        ZMK { "ZMK", "Kwacha de Zambia" }
        ZWD { "ZWD", "D\u00F3lar de Zimbawe" }
    }
}