﻿// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
en_AE{
    calendar{
        chinese{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM r(U)",
                "d MMMM r(U)",
                "d MMM r",
                "dd/MM/r",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            DateTimeSkeletons{
                "ahmmsszzzz",
                "ahmmssz",
                "ahmmss",
                "ahmm",
                "rMMMMEEEEd",
                "rMMMMd",
                "rMMMd",
                "rMMdd",
            }
            availableFormats{
                Ed{"E d"}
                GyMMMEd{"E, d MMM r(U)"}
                GyMMMd{"d MMM r"}
                M{"LL"}
                MEd{"E, dd/MM"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"dd/MM"}
                UMMMd{"d MMM U"}
                UMd{"dd/MM/U"}
                yMd{"dd/MM/r"}
                yyyyM{"MM/r"}
                yyyyMEd{"E, dd/MM/r"}
                yyyyMMMEd{"E, d MMM r(U)"}
                yyyyMMMd{"d MMM r"}
                yyyyMd{"dd/MM/r"}
            }
            intervalFormats{
                MEd{
                    M{"E dd/MM – E dd/MM"}
                    d{"E dd/MM – E dd/MM"}
                }
                MMMEd{
                    M{"E d MMM – E d MMM"}
                    d{"E d – E d MMM"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d – d MMM"}
                }
                Md{
                    M{"dd/MM – dd/MM"}
                    d{"dd/MM – dd/MM"}
                }
                yM{
                    M{"MM/y – MM/y"}
                    y{"MM/y – MM/y"}
                }
                yMEd{
                    M{"E, dd/MM/y – E, dd/MM/y"}
                    d{"E, dd/MM/y – E, dd/MM/y"}
                    y{"E, dd/MM/y – E, dd/MM/y"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM U"}
                    d{"E, d – E, d MMM U"}
                    y{"E, d MMM U – E, d MMM U"}
                }
                yMMMd{
                    M{"d MMM – d MMM U"}
                    d{"d – d MMM U"}
                    y{"d MMM U – d MMM U"}
                }
                yMd{
                    M{"dd/MM/y – dd/MM/y"}
                    d{"dd/MM/y – dd/MM/y"}
                    y{"dd/MM/y – dd/MM/y"}
                }
            }
        }
        generic{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y G",
                "d MMMM y G",
                "d MMM y G",
                "dd/MM/y GGGGG",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            DateTimeSkeletons{
                "ahmmsszzzz",
                "ahmmssz",
                "ahmmss",
                "ahmm",
                "GyMMMMEEEEd",
                "GyMMMMd",
                "GyMMMd",
                "GGGGGyMMdd",
            }
            availableFormats{
                EBhm{"E, h:mm B"}
                EBhms{"E, h:mm:ss B"}
                EHm{"E, HH:mm"}
                EHms{"E, HH:mm:ss"}
                Ed{"E d"}
                Ehm{"E, h:mm a"}
                Ehms{"E, h:mm:ss a"}
                GyMMMEd{"E, d MMM y G"}
                GyMMMd{"d MMM y G"}
                M{"LL"}
                MEd{"E, d/M"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                Md{"dd/MM"}
                yyyyM{"MM/y GGGGG"}
                yyyyMEd{"E, dd/MM/y GGGGG"}
                yyyyMMMEd{"E, d MMM y G"}
                yyyyMMMd{"d MMM y G"}
                yyyyMd{"dd/MM/y GGGGG"}
            }
            intervalFormats{
                MEd{
                    M{"E dd/MM – E dd/MM"}
                    d{"E dd/MM – E dd/MM"}
                }
                MMMEd{
                    M{"E d MMM – E d MMM"}
                    d{"E d – E d MMM"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d – d MMM"}
                }
                Md{
                    M{"dd/MM – dd/MM"}
                    d{"dd/MM – dd/MM"}
                }
                yM{
                    M{"MM/y – MM/y GGGGG"}
                    y{"MM/y – MM/y GGGGG"}
                }
                yMEd{
                    M{"E, dd/MM/y – E, dd/MM/y GGGGG"}
                    d{"E, dd/MM/y – E, dd/MM/y GGGGG"}
                    y{"E, dd/MM/y – E, dd/MM/y GGGGG"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM y G"}
                    d{"E, d – E, d MMM y G"}
                    y{"E, d MMM y – E, d MMM y G"}
                }
                yMMMd{
                    M{"d MMM – d MMM y G"}
                    d{"d – d MMM y G"}
                    y{"d MMM y – d MMM y G"}
                }
                yMd{
                    M{"dd/MM/y – dd/MM/y GGGGG"}
                    d{"dd/MM/y – dd/MM/y GGGGG"}
                    y{"dd/MM/y – dd/MM/y GGGGG"}
                }
            }
        }
        gregorian{
            DateTimePatterns{
                "h:mm:ss a zzzz",
                "h:mm:ss a z",
                "h:mm:ss a",
                "h:mm a",
                "EEEE, d MMMM y",
                "d MMMM y",
                "d MMM y",
                "dd/MM/y",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
                "{1}, {0}",
            }
            DateTimeSkeletons{
                "ahmmsszzzz",
                "ahmmssz",
                "ahmmss",
                "ahmm",
                "yMMMMEEEEd",
                "yMMMMd",
                "yMMMd",
                "yMMdd",
            }
            availableFormats{
                EBhm{"E, h:mm B"}
                EBhms{"E, h:mm:ss B"}
                Ed{"E d"}
                GyMMMEd{"E, d MMM y G"}
                GyMMMd{"d MMM y G"}
                MEd{"E, dd/MM"}
                MMMEd{"E, d MMM"}
                MMMMd{"d MMMM"}
                MMMd{"d MMM"}
                MMdd{"dd/MM"}
                Md{"dd/MM"}
                yM{"MM/y"}
                yMEd{"E, dd/MM/y"}
                yMMMEd{"E, d MMM y"}
                yMMMd{"d MMM y"}
                yMd{"dd/MM/y"}
            }
            intervalFormats{
                MEd{
                    M{"E dd/MM – E dd/MM"}
                    d{"E dd/MM – E dd/MM"}
                }
                MMMEd{
                    M{"E d MMM – E d MMM"}
                    d{"E d – E d MMM"}
                }
                MMMd{
                    M{"d MMM – d MMM"}
                    d{"d – d MMM"}
                }
                Md{
                    M{"dd/MM – dd/MM"}
                    d{"dd/MM – dd/MM"}
                }
                yM{
                    M{"MM/y – MM/y"}
                    y{"MM/y – MM/y"}
                }
                yMEd{
                    M{"E, dd/MM/y – E, dd/MM/y"}
                    d{"E, dd/MM/y – E, dd/MM/y"}
                    y{"E, dd/MM/y – E, dd/MM/y"}
                }
                yMMMEd{
                    M{"E, d MMM – E, d MMM y"}
                    d{"E, d – E, d MMM y"}
                    y{"E, d MMM y – E, d MMM y"}
                }
                yMMMd{
                    M{"d MMM – d MMM y"}
                    d{"d – d MMM y"}
                    y{"d MMM y – d MMM y"}
                }
                yMd{
                    M{"dd/MM/y – dd/MM/y"}
                    d{"dd/MM/y – dd/MM/y"}
                    y{"dd/MM/y – dd/MM/y"}
                }
            }
        }
    }
}
