﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
bas{
    AuxExemplarCharacters{"[q x]"}
    ExemplarCharacters{
        "[a á à â ǎ ā {a\u1DC6}{a\u1DC7} b ɓ c d e é è ê ě ē {e\u1DC6}{e\u1DC7} ɛ {ɛ"
        "\u0301} {ɛ\u0300} {ɛ\u0302} {ɛ\u030C} {ɛ\u0304} {ɛ\u1DC6}{ɛ\u1DC7} f g h i í"
        " ì î ǐ ī {i\u1DC6}{i\u1DC7} j k l m n ń ǹ ŋ o ó ò ô ǒ ō {o\u1DC6}{o\u1DC7} ɔ"
        " {ɔ\u0301} {ɔ\u0300} {ɔ\u0302} {ɔ\u030C} {ɔ\u0304} {ɔ\u1DC6}{ɔ\u1DC7} p r s "
        "t u ú ù û ǔ ū {u\u1DC6}{u\u1DC7} v w y z]"
    }
    ExemplarCharactersIndex{"[A B Ɓ C D E Ɛ F G H I J K L M N Ŋ O Ɔ P R S T U V W Y Z]"}
    ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
            }
            symbols{
                decimal{","}
                group{" "}
            }
        }
    }
    Version{"2.1.47.82"}
    calendar{
        generic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y G",
                "d MMMM y G",
                "d MMM, y G",
                "d/M/y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
        }
        gregorian{
            AmPmMarkers{
                "I bikɛ̂glà",
                "I ɓugajɔp",
            }
            AmPmMarkersAbbr{
                "I bikɛ̂glà",
                "I ɓugajɔp",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d MMMM y",
                "d MMMM y",
                "d MMM, y",
                "d/M/y",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E d/M"}
                MMM{"LLL"}
                MMMEd{"E d MMM"}
                MMMd{"d MMM"}
                Md{"d/M"}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"m:ss"}
                y{"y"}
                yM{"M/y"}
                yMEd{"E d/M/y"}
                yMMM{"MMM y"}
                yMMMEd{"E d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"d/M/y"}
                yQQQ{"QQQ y"}
                yQQQQ{"QQQQ y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "nɔy",
                        "nja",
                        "uum",
                        "ŋge",
                        "mbɔ",
                        "kɔɔ",
                        "jon",
                    }
                    wide{
                        "ŋgwà nɔ̂y",
                        "ŋgwà njaŋgumba",
                        "ŋgwà ûm",
                        "ŋgwà ŋgê",
                        "ŋgwà mbɔk",
                        "ŋgwà kɔɔ",
                        "ŋgwà jôn",
                    }
                }
                stand-alone{
                    narrow{
                        "n",
                        "n",
                        "u",
                        "ŋ",
                        "m",
                        "k",
                        "j",
                    }
                }
            }
            eras{
                abbreviated{
                    "b.Y.K",
                    "m.Y.K",
                }
                wide{
                    "bisū bi Yesù Krǐstò",
                    "i mbūs Yesù Krǐstò",
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "kɔn",
                        "mac",
                        "mat",
                        "mto",
                        "mpu",
                        "hil",
                        "nje",
                        "hik",
                        "dip",
                        "bio",
                        "may",
                        "liɓ",
                    }
                    wide{
                        "Kɔndɔŋ",
                        "Màcɛ̂l",
                        "Màtùmb",
                        "Màtop",
                        "M̀puyɛ",
                        "Hìlòndɛ̀",
                        "Njèbà",
                        "Hìkaŋ",
                        "Dìpɔ̀s",
                        "Bìòôm",
                        "Màyɛsèp",
                        "Lìbuy li ńyèe",
                    }
                }
                stand-alone{
                    narrow{
                        "k",
                        "m",
                        "m",
                        "m",
                        "m",
                        "h",
                        "n",
                        "h",
                        "d",
                        "b",
                        "m",
                        "l",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "K1s3",
                        "K2s3",
                        "K3s3",
                        "K4s3",
                    }
                    wide{
                        "Kèk bisu i soŋ iaâ",
                        "Kèk i ńyonos biɓaà i soŋ iaâ",
                        "Kèk i ńyonos biaâ i soŋ iaâ",
                        "Kèk i ńyonos binâ i soŋ iaâ",
                    }
                }
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"“"}
        alternateQuotationStart{"„"}
        quotationEnd{"»"}
        quotationStart{"«"}
    }
    fields{
        day{
            dn{"kɛl"}
            relative{
                "-1"{"yààni"}
                "0"{"lɛ̀n"}
                "1"{"yàni"}
            }
        }
        dayperiod{
            dn{"njǎmùha"}
        }
        era{
            dn{"kèk"}
        }
        hour{
            dn{"ŋgɛŋ"}
        }
        minute{
            dn{"ŋget"}
        }
        month{
            dn{"soŋ"}
        }
        second{
            dn{"hìŋgeŋget"}
        }
        week{
            dn{"sɔndɛ̂"}
        }
        weekday{
            dn{"hìlɔ hi sɔndɛ̂"}
        }
        year{
            dn{"ŋwìi"}
        }
        zone{
            dn{"komboo i ŋgɛŋ"}
        }
    }
}
