From 252b00558add1721cc08e392ece1f9578fc3b30c Mon Sep 17 00:00:00 2001 From: John Marino Date: Sat, 15 Aug 2015 17:11:11 +0200 Subject: [PATCH] Add 6 Arabic locales: AE EG JO MA QA SA The lack of Arabic support on BSD seems to be a glaring omission, so lets help rectify that by adding since 6 locales: ar_AE: United Arab Emirates ar_EG: Egypt ar_JO: Jordan ar_MA: Morocco ar_QA: Qatar ar_SA: Saudi Arabia There are obviously more (e.g. Iraq, Kuwait, Algeria, Libya, Tunisia, Syria, etc.) but I selected these as being the most likely to be used in my limited opinion. They are UTF-8 locales only. Most of them are identical to ar_SA except for the monetary definitions (each has a different currency) --- etc/mtree/BSD.local.dist | 12 + etc/mtree/BSD.usr.dist | 12 + share/colldef/Makefile | 6 + share/colldef/ar_SA.UTF-8.src | 1912 +++++++++++++++++++++++ share/ctypedef/Makefile | 6 + share/ctypedef/ar_SA.UTF-8.src | 2417 ++++++++++++++++++++++++++++++ share/monetdef/Makefile | 6 + share/monetdef/ar_AE.UTF-8.src | 50 + share/monetdef/ar_EG.UTF-8.src | 50 + share/monetdef/ar_JO.UTF-8.src | 50 + share/monetdef/ar_MA.UTF-8.src | 50 + share/monetdef/ar_QA.UTF-8.src | 50 + share/monetdef/ar_SA.UTF-8.src | 50 + share/msgdef/Makefile | 6 + share/msgdef/ar_SA.UTF-8.src | 17 + share/numericdef/Makefile | 8 +- share/numericdef/ar_SA.UTF-8.src | 14 + share/timedef/Makefile | 6 + share/timedef/ar_JO.UTF-8.src | 87 ++ share/timedef/ar_MA.UTF-8.src | 87 ++ share/timedef/ar_SA.UTF-8.src | 87 ++ 21 files changed, 4982 insertions(+), 1 deletion(-) create mode 100644 share/colldef/ar_SA.UTF-8.src create mode 100644 share/ctypedef/ar_SA.UTF-8.src create mode 100644 share/monetdef/ar_AE.UTF-8.src create mode 100644 share/monetdef/ar_EG.UTF-8.src create mode 100644 share/monetdef/ar_JO.UTF-8.src create mode 100644 share/monetdef/ar_MA.UTF-8.src create mode 100644 share/monetdef/ar_QA.UTF-8.src create mode 100644 share/monetdef/ar_SA.UTF-8.src create mode 100644 share/msgdef/ar_SA.UTF-8.src create mode 100644 share/numericdef/ar_SA.UTF-8.src create mode 100644 share/timedef/ar_JO.UTF-8.src create mode 100644 share/timedef/ar_MA.UTF-8.src create mode 100644 share/timedef/ar_SA.UTF-8.src diff --git a/etc/mtree/BSD.local.dist b/etc/mtree/BSD.local.dist index 34d315c429..fe166d74e0 100644 --- a/etc/mtree/BSD.local.dist +++ b/etc/mtree/BSD.local.dist @@ -275,6 +275,18 @@ .. af_ZA.UTF-8 .. + ar_AE.UTF-8 + .. + ar_EG.UTF-8 + .. + ar_JO.UTF-8 + .. + ar_MA.UTF-8 + .. + ar_QA.UTF-8 + .. + ar_SA.UTF-8 + .. am_ET.UTF-8 .. be_BY.CP1131 diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist index ba59336679..42974c0d83 100644 --- a/etc/mtree/BSD.usr.dist +++ b/etc/mtree/BSD.usr.dist @@ -385,6 +385,18 @@ .. af_ZA.UTF-8 .. + ar_AE.UTF-8 + .. + ar_EG.UTF-8 + .. + ar_JO.UTF-8 + .. + ar_MA.UTF-8 + .. + ar_QA.UTF-8 + .. + ar_SA.UTF-8 + .. am_ET.UTF-8 .. be_BY.CP1131 diff --git a/share/colldef/Makefile b/share/colldef/Makefile index 15034edc11..c439a5f10f 100644 --- a/share/colldef/Makefile +++ b/share/colldef/Makefile @@ -12,6 +12,7 @@ MAPLOC= ${.CURDIR}/../../tools/tools/locale/etc/final-maps LOCALES+= af_ZA.UTF-8 LOCALES+= am_ET.UTF-8 +LOCALES+= ar_SA.UTF-8 LOCALES+= be_BY.UTF-8 LOCALES+= ca_AD.UTF-8 LOCALES+= cs_CZ.UTF-8 @@ -46,6 +47,11 @@ LOCALES+= zh_Hans_CN.UTF-8 LOCALES+= zh_Hant_TW.UTF-8 SAME+= af_ZA.UTF-8:af_ZA.ISO8859-1 +SAME+= ar_SA.UTF-8:ar_QA.UTF-8 +SAME+= ar_SA.UTF-8:ar_MA.UTF-8 +SAME+= ar_SA.UTF-8:ar_JO.UTF-8 +SAME+= ar_SA.UTF-8:ar_EG.UTF-8 +SAME+= ar_SA.UTF-8:ar_AE.UTF-8 SAME+= be_BY.UTF-8:be_BY.ISO8859-5 SAME+= be_BY.UTF-8:be_BY.CP1251 SAME+= be_BY.UTF-8:be_BY.CP1131 diff --git a/share/colldef/ar_SA.UTF-8.src b/share/colldef/ar_SA.UTF-8.src new file mode 100644 index 0000000000..98db43320b --- /dev/null +++ b/share/colldef/ar_SA.UTF-8.src @@ -0,0 +1,1912 @@ +# Warning: Do not edit. This file is automatically extracted from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +comment_char * +escape_char / +LC_COLLATE +************* + +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" +collating-element from "" + + +* Define collation weights as symbols + +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol + +order_start forward;forward;forward;forward + + +* collation weights in order + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +* assignment of characters to weights + + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;IGNORE; + IGNORE;IGNORE;"";"" + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;"";"" + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;"";"" + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;"";"" + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;"";"" + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;"";"" + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;"";"" + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;"";"" + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;""; + IGNORE;IGNORE;; + IGNORE;IGNORE;; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + IGNORE;"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; +

;;;

+

;;;

;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + + +lower ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ +

;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + + +alpha ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + + +space ;/ + ;/ + ;/ + ;/ + ;/ + + +cntrl ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + + +graph ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ +

;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ +

;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + + +blank +print + +punct ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + + +digit ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + + +xdigit ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + + +blank ;/ + + +toupper (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (

,

);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +tolower (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (

,

);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,);/ + (,) + +END LC_CTYPE diff --git a/share/monetdef/Makefile b/share/monetdef/Makefile index 1b78b37f8a..d6b66173bc 100644 --- a/share/monetdef/Makefile +++ b/share/monetdef/Makefile @@ -9,6 +9,12 @@ FILESNAME= LC_MONETARY grep -v -E '^(#$$|#[ ])' < ${.IMPSRC} > ${.TARGET} LOCALES+= am_ET.UTF-8 +LOCALES+= ar_AE.UTF-8 +LOCALES+= ar_EG.UTF-8 +LOCALES+= ar_JO.UTF-8 +LOCALES+= ar_MA.UTF-8 +LOCALES+= ar_QA.UTF-8 +LOCALES+= ar_SA.UTF-8 LOCALES+= be_BY.CP1131 LOCALES+= be_BY.CP1251 LOCALES+= be_BY.ISO8859-5 diff --git a/share/monetdef/ar_AE.UTF-8.src b/share/monetdef/ar_AE.UTF-8.src new file mode 100644 index 0000000000..ce1043b930 --- /dev/null +++ b/share/monetdef/ar_AE.UTF-8.src @@ -0,0 +1,50 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# int_curr_symbol (last character always SPACE) +AED +# +# currency_symbol +د.إ.‏ +# +# mon_decimal_point +٫ +# +# mon_thousands_sep +٬ +# +# mon_grouping +3 +# +# positive_sign + +# +# negative_sign +‏- +# +# int_frac_digits +2 +# +# frac_digits +2 +# +# p_cs_precedes +1 +# +# p_sep_by_space +1 +# +# n_cs_precedes +1 +# +# n_sep_by_space +1 +# +# p_sign_posn +1 +# +# n_sign_posn +1 +# EOF diff --git a/share/monetdef/ar_EG.UTF-8.src b/share/monetdef/ar_EG.UTF-8.src new file mode 100644 index 0000000000..3cb4abb48d --- /dev/null +++ b/share/monetdef/ar_EG.UTF-8.src @@ -0,0 +1,50 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# int_curr_symbol (last character always SPACE) +EGP +# +# currency_symbol +ج.م.‏ +# +# mon_decimal_point +٫ +# +# mon_thousands_sep +٬ +# +# mon_grouping +3 +# +# positive_sign + +# +# negative_sign +‏- +# +# int_frac_digits +2 +# +# frac_digits +2 +# +# p_cs_precedes +1 +# +# p_sep_by_space +1 +# +# n_cs_precedes +1 +# +# n_sep_by_space +1 +# +# p_sign_posn +1 +# +# n_sign_posn +1 +# EOF diff --git a/share/monetdef/ar_JO.UTF-8.src b/share/monetdef/ar_JO.UTF-8.src new file mode 100644 index 0000000000..86ed0194fc --- /dev/null +++ b/share/monetdef/ar_JO.UTF-8.src @@ -0,0 +1,50 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# int_curr_symbol (last character always SPACE) +JOD +# +# currency_symbol +د.أ.‏ +# +# mon_decimal_point +٫ +# +# mon_thousands_sep +٬ +# +# mon_grouping +3 +# +# positive_sign + +# +# negative_sign +‏- +# +# int_frac_digits +3 +# +# frac_digits +3 +# +# p_cs_precedes +1 +# +# p_sep_by_space +1 +# +# n_cs_precedes +1 +# +# n_sep_by_space +1 +# +# p_sign_posn +1 +# +# n_sign_posn +1 +# EOF diff --git a/share/monetdef/ar_MA.UTF-8.src b/share/monetdef/ar_MA.UTF-8.src new file mode 100644 index 0000000000..40922c9aba --- /dev/null +++ b/share/monetdef/ar_MA.UTF-8.src @@ -0,0 +1,50 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# int_curr_symbol (last character always SPACE) +MAD +# +# currency_symbol +د.م.‏ +# +# mon_decimal_point +, +# +# mon_thousands_sep +. +# +# mon_grouping +3 +# +# positive_sign + +# +# negative_sign +‎- +# +# int_frac_digits +2 +# +# frac_digits +2 +# +# p_cs_precedes +1 +# +# p_sep_by_space +1 +# +# n_cs_precedes +1 +# +# n_sep_by_space +1 +# +# p_sign_posn +1 +# +# n_sign_posn +1 +# EOF diff --git a/share/monetdef/ar_QA.UTF-8.src b/share/monetdef/ar_QA.UTF-8.src new file mode 100644 index 0000000000..ad4f18e226 --- /dev/null +++ b/share/monetdef/ar_QA.UTF-8.src @@ -0,0 +1,50 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# int_curr_symbol (last character always SPACE) +QAR +# +# currency_symbol +ر.ق.‏ +# +# mon_decimal_point +٫ +# +# mon_thousands_sep +٬ +# +# mon_grouping +3 +# +# positive_sign + +# +# negative_sign +‏- +# +# int_frac_digits +2 +# +# frac_digits +2 +# +# p_cs_precedes +1 +# +# p_sep_by_space +1 +# +# n_cs_precedes +1 +# +# n_sep_by_space +1 +# +# p_sign_posn +1 +# +# n_sign_posn +1 +# EOF diff --git a/share/monetdef/ar_SA.UTF-8.src b/share/monetdef/ar_SA.UTF-8.src new file mode 100644 index 0000000000..4aaf875856 --- /dev/null +++ b/share/monetdef/ar_SA.UTF-8.src @@ -0,0 +1,50 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# int_curr_symbol (last character always SPACE) +SAR +# +# currency_symbol +ر.س.‏ +# +# mon_decimal_point +٫ +# +# mon_thousands_sep +٬ +# +# mon_grouping +3 +# +# positive_sign + +# +# negative_sign +‏- +# +# int_frac_digits +2 +# +# frac_digits +2 +# +# p_cs_precedes +1 +# +# p_sep_by_space +1 +# +# n_cs_precedes +1 +# +# n_sep_by_space +1 +# +# p_sign_posn +1 +# +# n_sign_posn +1 +# EOF diff --git a/share/msgdef/Makefile b/share/msgdef/Makefile index e438b1228a..e7a69104da 100644 --- a/share/msgdef/Makefile +++ b/share/msgdef/Makefile @@ -9,6 +9,7 @@ FILESNAME= LC_MESSAGES grep -v -E '^(#$$|#[ ])' < ${.IMPSRC} > ${.TARGET} LOCALES+= am_ET.UTF-8 +LOCALES+= ar_SA.UTF-8 LOCALES+= be_BY.CP1131 LOCALES+= be_BY.CP1251 LOCALES+= be_BY.ISO8859-5 @@ -86,6 +87,11 @@ SAME+= nl_NL.UTF-8:nl_BE.UTF-8 SAME+= nl_NL.UTF-8:nl_BE.ISO8859-15 SAME+= nl_NL.UTF-8:af_ZA.UTF-8 SAME+= nl_NL.UTF-8:af_ZA.ISO8859-1 +SAME+= ar_SA.UTF-8:ar_QA.UTF-8 +SAME+= ar_SA.UTF-8:ar_MA.UTF-8 +SAME+= ar_SA.UTF-8:ar_JO.UTF-8 +SAME+= ar_SA.UTF-8:ar_EG.UTF-8 +SAME+= ar_SA.UTF-8:ar_AE.UTF-8 SAME+= es_MX.ISO8859-1:es_ES.ISO8859-15 SAME+= es_MX.ISO8859-1:es_AR.ISO8859-1 SAME+= es_MX.ISO8859-1:ca_IT.ISO8859-15 diff --git a/share/msgdef/ar_SA.UTF-8.src b/share/msgdef/ar_SA.UTF-8.src new file mode 100644 index 0000000000..fe3748c87c --- /dev/null +++ b/share/msgdef/ar_SA.UTF-8.src @@ -0,0 +1,17 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# yesexpr +^((نعم)|(ن)|([yY]([eE][sS])?)|([yY])) +# +# noexpr +^((لا)|(ل)|([nN]([oO])?)|([nN])) +# +# yesstr +نعم:ن:yes:y:YES:Y +# +# nostr +لا:ل:no:n:NO:N +# EOF diff --git a/share/numericdef/Makefile b/share/numericdef/Makefile index 88e3c365f2..5b45218af3 100644 --- a/share/numericdef/Makefile +++ b/share/numericdef/Makefile @@ -8,6 +8,7 @@ FILESNAME= LC_NUMERIC .src.out: grep -v -E '^(#$$|#[ ])' < ${.IMPSRC} > ${.TARGET} +LOCALES+= ar_SA.UTF-8 LOCALES+= en_US.UTF-8 LOCALES+= en_ZA.US-ASCII LOCALES+= fr_CH.ISO8859-15 @@ -109,7 +110,10 @@ SAME+= en_US.UTF-8:en_AU.US-ASCII SAME+= en_US.UTF-8:en_AU.ISO8859-1 SAME+= en_US.UTF-8:am_ET.UTF-8 SAME+= en_US.UTF-8:xx_Comm_US.UTF-8 -SAME+= ru_RU.CP866:be_BY.CP1131 +SAME+= ar_SA.UTF-8:ar_QA.UTF-8 +SAME+= ar_SA.UTF-8:ar_JO.UTF-8 +SAME+= ar_SA.UTF-8:ar_EG.UTF-8 +SAME+= ar_SA.UTF-8:ar_AE.UTF-8 SAME+= tr_TR.UTF-8:tr_TR.ISO8859-9 SAME+= tr_TR.UTF-8:sl_SI.UTF-8 SAME+= tr_TR.UTF-8:sl_SI.ISO8859-2 @@ -152,6 +156,8 @@ SAME+= tr_TR.UTF-8:ca_ES.UTF-8 SAME+= tr_TR.UTF-8:ca_ES.ISO8859-15 SAME+= tr_TR.UTF-8:ca_AD.UTF-8 SAME+= tr_TR.UTF-8:ca_AD.ISO8859-15 +SAME+= tr_TR.UTF-8:ar_MA.UTF-8 +SAME+= ru_RU.CP866:be_BY.CP1131 SAME+= it_CH.UTF-8:it_CH.ISO8859-15 SAME+= it_CH.UTF-8:de_CH.UTF-8 SAME+= it_CH.UTF-8:de_CH.ISO8859-15 diff --git a/share/numericdef/ar_SA.UTF-8.src b/share/numericdef/ar_SA.UTF-8.src new file mode 100644 index 0000000000..c5c4f4430c --- /dev/null +++ b/share/numericdef/ar_SA.UTF-8.src @@ -0,0 +1,14 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# decimal_point +٫ +# +# thousands_sep +٬ +# +# grouping +3 +# EOF diff --git a/share/timedef/Makefile b/share/timedef/Makefile index 44d67039c1..caa951497a 100644 --- a/share/timedef/Makefile +++ b/share/timedef/Makefile @@ -10,6 +10,9 @@ FILESNAME= LC_TIME LOCALES+= af_ZA.UTF-8 LOCALES+= am_ET.UTF-8 +LOCALES+= ar_JO.UTF-8 +LOCALES+= ar_MA.UTF-8 +LOCALES+= ar_SA.UTF-8 LOCALES+= be_BY.CP1131 LOCALES+= be_BY.CP1251 LOCALES+= be_BY.ISO8859-5 @@ -129,6 +132,9 @@ LOCALES+= zh_Hant_TW.Big5 LOCALES+= zh_Hant_TW.UTF-8 SAME+= af_ZA.UTF-8:af_ZA.ISO8859-1 +SAME+= ar_SA.UTF-8:ar_QA.UTF-8 +SAME+= ar_SA.UTF-8:ar_EG.UTF-8 +SAME+= ar_SA.UTF-8:ar_AE.UTF-8 SAME+= ca_IT.ISO8859-15:ca_FR.ISO8859-15 SAME+= ca_IT.ISO8859-15:ca_ES.ISO8859-15 SAME+= ca_IT.ISO8859-15:ca_AD.ISO8859-15 diff --git a/share/timedef/ar_JO.UTF-8.src b/share/timedef/ar_JO.UTF-8.src new file mode 100644 index 0000000000..b2a07235c3 --- /dev/null +++ b/share/timedef/ar_JO.UTF-8.src @@ -0,0 +1,87 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# Short month names +كانون الثاني +شباط +آذار +نيسان +أيار +حزيران +تموز +آب +أيلول +تشرين الأول +تشرين الثاني +كانون الأول +# +# Long month names (as in a date) +كانون الثاني +شباط +آذار +نيسان +أيار +حزيران +تموز +آب +أيلول +تشرين الأول +تشرين الثاني +كانون الأول +# +# Short weekday names +الأحد +الاثنين +الثلاثاء +الأربعاء +الخميس +الجمعة +السبت +# +# Long weekday names +الأحد +الاثنين +الثلاثاء +الأربعاء +الخميس +الجمعة +السبت +# +# X_fmt +%OI:%OM:%OS %p +# +# x_fmt +%Oe‏/%Om‏/%Oy +# +# c_fmt +%Oe %B، %Oy %OI:%OM:%OS %p +# +# AM/PM +ص +م +# +# date_fmt +%Oe %B، %Oy %OI:%OM:%OS %p %Z +# +# Long month names (without case ending) +كانون الثاني +شباط +آذار +نيسان +أيار +حزيران +تموز +آب +أيلول +تشرين الأول +تشرين الثاني +كانون الأول +# +# md_order +m +# +# ampm_fmt +%OI:%OM:%OS %p +# EOF diff --git a/share/timedef/ar_MA.UTF-8.src b/share/timedef/ar_MA.UTF-8.src new file mode 100644 index 0000000000..41252a2b84 --- /dev/null +++ b/share/timedef/ar_MA.UTF-8.src @@ -0,0 +1,87 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# Short month names +يناير +فبراير +مارس +أبريل +ماي +يونيو +يوليوز +غشت +شتنبر +أكتوبر +نونبر +دجنبر +# +# Long month names (as in a date) +يناير +فبراير +مارس +أبريل +ماي +يونيو +يوليوز +غشت +شتنبر +أكتوبر +نونبر +دجنبر +# +# Short weekday names +الأحد +الاثنين +الثلاثاء +الأربعاء +الخميس +الجمعة +السبت +# +# Long weekday names +الأحد +الاثنين +الثلاثاء +الأربعاء +الخميس +الجمعة +السبت +# +# X_fmt +%I:%M:%S %p +# +# x_fmt +%e‏/%m‏/%Y +# +# c_fmt +%e %B، %Y %I:%M:%S %p +# +# AM/PM +ص +م +# +# date_fmt +%e %B، %Y %I:%M:%S %p %Z +# +# Long month names (without case ending) +يناير +فبراير +مارس +أبريل +ماي +يونيو +يوليوز +غشت +شتنبر +أكتوبر +نونبر +دجنبر +# +# md_order +m +# +# ampm_fmt +%I:%M:%S %p +# EOF diff --git a/share/timedef/ar_SA.UTF-8.src b/share/timedef/ar_SA.UTF-8.src new file mode 100644 index 0000000000..142bdd45c1 --- /dev/null +++ b/share/timedef/ar_SA.UTF-8.src @@ -0,0 +1,87 @@ +# Warning: Do not edit. This file is automatically generated from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +# +# Short month names +يناير +فبراير +مارس +أبريل +مايو +يونيو +يوليو +أغسطس +سبتمبر +أكتوبر +نوفمبر +ديسمبر +# +# Long month names (as in a date) +يناير +فبراير +مارس +أبريل +مايو +يونيو +يوليو +أغسطس +سبتمبر +أكتوبر +نوفمبر +ديسمبر +# +# Short weekday names +الأحد +الاثنين +الثلاثاء +الأربعاء +الخميس +الجمعة +السبت +# +# Long weekday names +الأحد +الاثنين +الثلاثاء +الأربعاء +الخميس +الجمعة +السبت +# +# X_fmt +%OI:%OM:%OS %p +# +# x_fmt +%Oe‏/%Om‏/%Oy +# +# c_fmt +%Oe %B، %Oy %OI:%OM:%OS %p +# +# AM/PM +ص +م +# +# date_fmt +%Oe %B، %Oy %OI:%OM:%OS %p %Z +# +# Long month names (without case ending) +يناير +فبراير +مارس +أبريل +مايو +يونيو +يوليو +أغسطس +سبتمبر +أكتوبر +نوفمبر +ديسمبر +# +# md_order +m +# +# ampm_fmt +%OI:%OM:%OS %p +# EOF -- 2.41.0

+ ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;;"" + ;;; + ;;; + ;;;"" + ;;; + ;;; + ;;;"" + ;;; + ;;; + ;;;"" + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;""; + ;;""; + ;;; + "";"";"";"" + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;""; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;"";""; + "";;""; + "";;""; + "";;""; + "";"";"";"" + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;""; + ;;""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + "";"";""; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + ;;; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + "";;""; + ;;; + ;;; + ;;; + ;"";"";"" + ;"";""; + ;"";""; + "";;""; + "";;""; +UNDEFINED IGNORE;IGNORE;IGNORE;... + +order_end + +END LC_COLLATE diff --git a/share/ctypedef/Makefile b/share/ctypedef/Makefile index 71db4ce50b..914dd26a7d 100644 --- a/share/ctypedef/Makefile +++ b/share/ctypedef/Makefile @@ -12,6 +12,7 @@ MAPLOC= ${.CURDIR}/../../tools/tools/locale/etc/final-maps -i ${.IMPSRC} ${.OBJDIR}/${.IMPSRC:T:R} || true LOCALES+= am_ET.UTF-8 +LOCALES+= ar_SA.UTF-8 LOCALES+= be_BY.CP1131 LOCALES+= ca_IT.ISO8859-15 LOCALES+= ca_IT.UTF-8 @@ -113,6 +114,11 @@ SAME+= en_US.ISO8859-1:en_HK.ISO8859-1 SAME+= en_US.ISO8859-1:en_CA.ISO8859-1 SAME+= en_US.ISO8859-1:en_AU.ISO8859-1 SAME+= en_US.ISO8859-1:af_ZA.ISO8859-1 +SAME+= ar_SA.UTF-8:ar_QA.UTF-8 +SAME+= ar_SA.UTF-8:ar_MA.UTF-8 +SAME+= ar_SA.UTF-8:ar_JO.UTF-8 +SAME+= ar_SA.UTF-8:ar_EG.UTF-8 +SAME+= ar_SA.UTF-8:ar_AE.UTF-8 SAME+= ru_RU.UTF-8:sr_Cyrl_RS.UTF-8 SAME+= ru_RU.UTF-8:mn_Cyrl_MN.UTF-8 SAME+= ru_RU.UTF-8:kk_Cyrl_KZ.UTF-8 diff --git a/share/ctypedef/ar_SA.UTF-8.src b/share/ctypedef/ar_SA.UTF-8.src new file mode 100644 index 0000000000..de60896cd3 --- /dev/null +++ b/share/ctypedef/ar_SA.UTF-8.src @@ -0,0 +1,2417 @@ +# Warning: Do not edit. This file is automatically extracted from the +# tools in /usr/src/tools/tools/locale. The data is obtained from the +# CLDR project, obtained from http://cldr.unicode.org/ +# ----------------------------------------------------------------------------- +comment_char * +escape_char / +LC_CTYPE +************* + +upper ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ + ;/ +