﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/bas.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/bas.xml
 */
bas{
    Countries{
        AD{"Àŋdɔ̂r"}
        AE{"Àdnà i Bilɔ̀ŋ bi Arābìà"}
        AF{"Àfgànìstâŋ"}
        AG{"Àŋtigà ɓɔ Bàrbudà"}
        AI{"Àŋgiyà"}
        AL{"Àlbanìà"}
        AM{"Àrmenìà"}
        AN{"Àŋtîy ǹlɛ̀ndi"}
        AO{"Àŋgolà"}
        AR{"Àrgàŋtinà"}
        AT{"Òstrǐk"}
        AU{"Òstralìà"}
        AW{"Àrubà"}
        AZ{"Àzɛ̀rbajàŋ"}
        BA{"Bòhnià Ɛrzègòvinà"}
        BB{"Bàrbadò"}
        BD{"Bàŋglàdɛ̂s"}
        BE{"Bɛlgyùm"}
        BF{"Bùrkìnà Fasò"}
        BG{"Bùlgarìà"}
        BH{"Bàraìn"}
        BI{"Bùrundì"}
        BJ{"Bènɛ̂ŋ"}
        BM{"Bɛ̀rmudà"}
        BN{"Brunei"}
        BO{"Bòlivìà"}
        BR{"Bràsîl"}
        BS{"Bàhamàs"}
        BT{"Bùtân"}
        BW{"Bòdsùanà"}
        BY{"Bèlarùs"}
        BZ{"Bèlîs"}
        CA{"Kànadà"}
        CD{"Kòŋgo ìkɛŋi"}
        CF{"Ŋ̀ɛm Afrīkà"}
        CG{"Kòŋgo"}
        CH{"Sùwîs"}
        CI{"Màŋ mi Njɔ̂k"}
        CK{"Bìòn bi Kook"}
        CL{"Kìlî"}
        CM{"Kàmɛ̀rûn"}
        CN{"Kinà"}
        CO{"Kɔ̀lɔmbìà"}
        CR{"Kòstà Rikà"}
        CS{"Sɛ̀rbî nì Mɔ̀ntènegrò"}
        CU{"Kubà"}
        CV{"Kabwɛ᷆r"}
        CY{"Kiprò"}
        DE{"Jamân"}
        DJ{"Jìbutì"}
        DK{"Dànmârk"}
        DM{"Dòmnîk"}
        DO{"Dòmnikà"}
        DZ{"Àlgerìà"}
        EC{"Èkwàtorìà"}
        EE{"Èstonìà"}
        EG{"Ègîptò"}
        ER{"Èrìtrěà"}
        ES{"Pànya"}
        ET{"Ètìopìà"}
        FI{"Fìnlând"}
        FJ{"Fiji"}
        FK{"Bìòn bi Falkland"}
        FM{"Mìkrònesìà"}
        FR{"Pùlàsi / Fɛ̀lɛ̀nsi /"}
        GA{"Gàbɔ̂ŋ"}
        GB{"Àdnà i Lɔ̂ŋ"}
        GD{"Grènadà"}
        GE{"Gèɔrgìà"}
        GF{"Gùyanà Pùlàsi"}
        GH{"Ganà"}
        GI{"Gìlbràtâr"}
        GL{"Grǐnlànd"}
        GM{"Gàmbià"}
        GN{"Gìnê"}
        GP{"Gwàdèlûp"}
        GQ{"Gìne Èkwàtorìà"}
        GR{"Grǐkyà"}
        GT{"Gwàtèmalà"}
        GU{"Gùâm"}
        GW{"Gìne Bìsàô"}
        GY{"Gùyanà"}
        HN{"Ɔ̀ŋduràs"}
        HR{"Kròasìà"}
        HT{"Àitì"}
        HU{"Ɔ̀ŋgriì"}
        ID{"Indònèsià"}
        IE{"Ìrlând"}
        IL{"Isràɛ̂l"}
        IN{"Indìà"}
        IO{"Bìtèk bi Ŋgisì i Tūyɛ Īndìà"}
        IQ{"Ìrâk"}
        IR{"Ìrâŋ"}
        IS{"Ìslandìà"}
        IT{"Ìtalìà"}
        JM{"Jàmàikà"}
        JO{"Yɔ̀rdanià"}
        KE{"Kenìà"}
        KG{"Kìrgìzìstàŋ"}
        KH{"Kàmbodìà"}
        KI{"Kìrìbatì"}
        KM{"Kɔ̀mɔ̂r"}
        KN{"Nûmpubi Kîts nì Nevìs"}
        KP{"Kɔ̀re ì Ŋ̀ɔmbɔk"}
        KR{"Kɔ̀re ì Ŋ̀wɛ̀lmbɔk"}
        KW{"Kòwêt"}
        KY{"Bìòn bi Kaymàn"}
        KZ{"Kàzàkstâŋ"}
        LA{"Làôs"}
        LB{"Lèbanòn"}
        LC{"Nûmpubi Lusì"}
        LI{"Ligstɛntàn"}
        LK{"Srìlaŋkà"}
        LR{"Lìberìà"}
        LS{"Lesòtò"}
        LT{"Lìtùanìà"}
        LU{"Lùgsàmbûr"}
        LV{"Làdvià"}
        LY{"Libìà"}
        MA{"Màrokò"}
        MC{"Mònakò"}
        MD{"Moldavìà"}
        MG{"Màdàgàskâr"}
        MH{"Bìòn bi Marcàl"}
        MK{"Màsèdonìà"}
        ML{"Màli"}
        MM{"Myànmâr"}
        MN{"Mòŋgolìà"}
        MP{"Bìòn bi Marìanà ŋ̀ɔmbɔk"}
        MQ{"Màrtìnîk"}
        MR{"Mòrìtanìà"}
        MS{"Mɔ̀ŋseràt"}
        MT{"Maltà"}
        MU{"Mòrîs"}
        MV{"Màldîf"}
        MW{"Màlàwi"}
        MX{"Mɛ̀gsîk"}
        MY{"Màlɛ̀sìà"}
        MZ{"Mòsàmbîk"}
        NA{"Nàmibìà"}
        NC{"Kàlèdonìà Yɔ̀ndɔ"}
        NE{"Nìjɛ̂r"}
        NF{"Òn i Nɔrfɔ̂k"}
        NG{"Nìgerìà"}
        NI{"Nìkàragwà"}
        NL{"Ǹlɛndi"}
        NO{"Nɔ̀rvegìà"}
        NP{"Nèpâl"}
        NR{"Nerù"}
        NU{"Nìuɛ̀"}
        NZ{"Sìlând Yɔ̀ndɔ"}
        OM{"Òmân"}
        PA{"Pànàma"}
        PE{"Pèrû"}
        PF{"Pòlìnesìà Pùlàsi"}
        PG{"Gìne ì Pàpu"}
        PH{"Fìlìpîn"}
        PK{"Pàkìstân"}
        PL{"Pòlànd"}
        PM{"Nûmpubi Petrò nì Mikèlôn"}
        PN{"Pìdkaìrn"}
        PR{"Pɔ̀rtò Rikò"}
        PS{"Pàlɛ̀htinà Hyɔ̀ŋg nì Gazà"}
        PT{"Pɔ̀tɔkì"}
        PW{"Pàlaù"}
        PY{"Pàràgwê"}
        QA{"Kàtâr"}
        RE{"Rèunyɔ̂ŋ"}
        RO{"Rùmanìà"}
        RU{"Ruslànd"}
        RW{"Rùandà"}
        SA{"Sàudi Àrabìà"}
        SB{"Bìòn bi Salōmò"}
        SC{"Sèsɛ̂l"}
        SD{"Sùdâŋ"}
        SE{"Swedɛ̀n"}
        SG{"Sìŋgàpûr"}
        SH{"Nûmpubi Ɛlēnà"}
        SI{"Slòvanìà"}
        SK{"Slòvakìà"}
        SL{"Sièra Lèɔ̂n"}
        SM{"Nûmpubi Māatìn"}
        SN{"Sènègâl"}
        SO{"Sòmalìà"}
        SR{"Sùrinâm"}
        ST{"Sào Tòme ɓɔ Prɛ̀ŋcipè"}
        SV{"Sàlvàdɔ̂r"}
        SY{"Sirìà"}
        SZ{"Swàzìlând"}
        TC{"Bìòn bi Tûrks nì Kalkòs"}
        TD{"Câd"}
        TG{"Tògo"}
        TH{"Taylànd"}
        TJ{"Tàjìkìstaŋ"}
        TK{"Tòkèlaò"}
        TL{"Tìmɔ̂r lìkòl"}
        TM{"Tùrgmènìstân"}
        TN{"Tùnisìà"}
        TO{"Tɔŋgà"}
        TR{"Tùrkây"}
        TT{"Trìnidàd ɓɔ Tòbagò"}
        TV{"Tùvàlù"}
        TW{"Tàywân"}
        TZ{"Tànzànià"}
        UA{"Ùkrɛ̌n"}
        UG{"Ùgandà"}
        US{"Àdnà i Bilɔ̀ŋ bi Amerkà"}
        UY{"Ùrùgwêy"}
        UZ{"Ùzbèkìstân"}
        VA{"Vàtìkâŋ"}
        VC{"Nûmpubi Vɛ̂ŋsâŋ nì grènàdîn"}
        VE{"Vènèzùelà"}
        VG{"Bìòn bi kɔnji bi Ŋgisì"}
        VI{"Bìòn bi kɔnji bi U.S."}
        VN{"Vìɛ̀dnâm"}
        VU{"Vànùatù"}
        WF{"Wàlîs nì Fùtunà"}
        WS{"Sàmoà"}
        YE{"Yèmɛ̂n"}
        YT{"Màyɔ̂t"}
        ZA{"Àfrǐkà Sɔ̀"}
        ZM{"Zàmbià"}
        ZW{"Zìmbàbwê"}
    }
    Version{"2.0.65.46"}
}
