Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jun 2002 03:49:08 +0900 (KST)
From:      Hye-Shik Chang <perky@fallin.lv>
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        i18n@freebsd.org
Subject:   {en_US,ko_KR,ja_JP}.UTF-8 Locale Support
Message-ID:  <200206201849.g5KIn8Th085686@akaraka.yonsei.ac.kr>

next in thread | raw e-mail | index | archive | help

>Submitter-Id:	current-users
>Originator:	Hye-Shik Chang
>Organization:	Yonsei University
>Confidential:	no
>Synopsis:	{en_US,ko_KR,ja_JP}.UTF-8 Locale Support
>Severity:	non-critical
>Priority:	low
>Category:	misc
>Class:		change-request
>Release:	FreeBSD 5.0-CURRENT i386
>Environment:
System: FreeBSD akaraka.yonsei.ac.kr 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Tue Jun 4 20:20:35 KST 2002 root@akaraka.yonsei.ac.kr:/usr/src/sys/i386/compile/JOARRA i386

>Description:
Please add en_US.UTF-8 ko_KR.UTF-8 ja_JP.UTF-8 locale support. :)

if attached patch has broken by charset, please download from:
  http://fallin.lv/distfiles/utf8locale.diff.gz
 
(la_LN.UTF-8.src was generated by my own script from
 ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt .
 script is available at http://fallin.lv/distfiles/gen-utf8locale.py
 I'm sorry for generator script's dirty code)

>How-To-Repeat:
>Fix:

diff -ruN share.orig/colldef/Makefile share/colldef/Makefile
--- share.orig/colldef/Makefile	Sun Apr  7 15:22:01 2002
+++ share/colldef/Makefile	Fri Jun 21 03:11:45 2002
@@ -32,8 +32,9 @@
 LOCALEDIR=      ${DESTDIR}/usr/share/locale
 
 ASCIILINKS=	en_AU.US-ASCII en_CA.US-ASCII en_GB.US-ASCII en_NZ.US-ASCII \
-		en_US.US-ASCII ko_KR.eucKR ja_JP.eucJP ja_JP.SJIS \
-		tr_TR.ISO8859-9 zh_CN.eucCN
+		en_US.US-ASCII en_US.UTF-8 ko_KR.eucKR ko_KR.UTF-8 \
+		ja_JP.eucJP ja_JP.SJIS ja_JP.UTF-8 tr_TR.ISO8859-9 \
+		zh_CN.eucCN
 DELINKS=	de_AT de_CH
 ZHLINKS=	zh_TW.Big5
 
diff -ruN share.orig/mklocale/Makefile share/mklocale/Makefile
--- share.orig/mklocale/Makefile	Sun Apr  7 15:22:05 2002
+++ share/mklocale/Makefile	Fri Jun 21 03:10:35 2002
@@ -14,6 +14,7 @@
 		la_LN.ISO8859-2 \
 		la_LN.ISO8859-4 \
 		la_LN.US-ASCII \
+		la_LN.UTF-8 \
 		ru_RU.CP866 \
 		ru_RU.ISO8859-5 \
 		ru_RU.KOI8-R \
@@ -32,6 +33,7 @@
 LATIN2LINKS=	cs_CZ hr_HR hu_HU pl_PL sl_SI ro_RO sk_SK
 LATIN4LINKS=	lt_LT
 LATIN5LINKS=	uk_UA
+UTF8LINKS=	en_US ja_JP ko_KR
 
 .SUFFIXES: .src .out
 
@@ -68,6 +70,10 @@
 .for link in ${ASCIILINKS}
 	ln -fs ../la_LN.US-ASCII/LC_CTYPE \
 		${LOCALEDIR}/${link}.US-ASCII/LC_CTYPE
+.endfor
+.for link in ${UTF8LINKS}
+	ln -fs ../la_LN.UTF-8/LC_CTYPE \
+		${LOCALEDIR}/${link}.UTF-8/LC_CTYPE
 .endfor
 	ln -fs ../la_LN.US-ASCII/LC_CTYPE \
 		${LOCALEDIR}/tr_TR.ISO8859-9/LC_CTYPE
diff -ruN share.orig/mklocale/la_LN.UTF-8.src share/mklocale/la_LN.UTF-8.src
--- share.orig/mklocale/la_LN.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/mklocale/la_LN.UTF-8.src	Fri Jun 21 03:05:03 2002
@@ -0,0 +1,2087 @@
+/*
+ * UTF-8 LC_CTYPE definitions
+ *
+ * Copyright (c) 2002 Hye-Shik Chang. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+ENCODING	"UTF2"
+VARIABLE	UTF-8 Character Types
+
+
+/*
+ * U+0000 - U+007F : Basic Latin
+ */
+
+ALPHA     'A' - 'Z'  'a' - 'z'
+CONTROL   0x0000 - 0x001f  0x007f
+DIGIT     '0' - '9'
+GRAPH     0x0021 - 0x007e
+LOWER     'a' - 'z'
+PUNCT     0x0021 - 0x002f  0x003a - 0x0040  0x005b - 0x0060  0x007b - 0x007e
+SPACE     0x0009 - 0x000d  0x0020
+UPPER     'A' - 'Z'
+XDIGIT    '0' - '9'  'A' - 'F'  'a' - 'f'
+BLANK     0x0009  0x000b  0x0020
+PRINT     0x0020 - 0x007e
+
+MAPUPPER  < 'a' - 'z' : 'A' >
+MAPLOWER  < 'A' - 'Z' : 'a' >
+TODIGIT   < '0' - '9' : 0x0000 >
+TODIGIT      < 'A' - 'F' : 10 > < 'a' - 'f' : 10 >
+
+
+/*
+ * U+0080 - U+00FF : Latin-1 Supplement
+ */
+
+ALPHA     0x00aa  0x00b5  0x00ba  0x00c0 - 0x00d6  0x00d8 - 0x00f6  0x00f8 - 0x00ff
+CONTROL   0x0080 - 0x009f
+GRAPH     0x00a1 - 0x00ff
+LOWER     0x00aa  0x00b5  0x00ba  0x00df - 0x00f6  0x00f8 - 0x00ff
+PUNCT     0x00a1 - 0x00a9  0x00ab - 0x00b1  0x00b4  0x00b6 - 0x00b8  0x00bb
+PUNCT     0x00bf  0x00d7  0x00f7
+SPACE     0x0085  0x00a0
+UPPER     0x00c0 - 0x00d6  0x00d8 - 0x00de
+BLANK     0x00a0
+PRINT     0x00a0 - 0x00ff
+SPECIAL   0x00b2  0x00b3  0x00b9  0x00bc - 0x00be
+
+MAPUPPER  < 0x00b5 0x039c >
+MAPUPPER  < 0x00e0 - 0x00f6 : 0x00c0 >
+MAPUPPER  < 0x00f8 - 0x00fe : 0x00d8 >
+MAPUPPER  < 0x00ff 0x0178 >
+MAPLOWER  < 0x00c0 - 0x00d6 : 0x00e0 >
+MAPLOWER  < 0x00d8 - 0x00de : 0x00f8 >
+TODIGIT   < 0x00b2 - 0x00b3 : 0x0002 >
+TODIGIT   < 0x00b9 0x0001 >
+
+
+/*
+ * U+0100 - U+017F : Latin Extended-A
+ */
+
+ALPHA     0x0100 - 0x017f
+GRAPH     0x0100 - 0x017f
+LOWER     0x0101  0x0103  0x0105  0x0107  0x0109  0x010b  0x010d  0x010f
+LOWER     0x0111  0x0113  0x0115  0x0117  0x0119  0x011b  0x011d  0x011f
+LOWER     0x0121  0x0123  0x0125  0x0127  0x0129  0x012b  0x012d  0x012f
+LOWER     0x0131  0x0133  0x0135  0x0137  0x0138  0x013a  0x013c  0x013e
+LOWER     0x0140  0x0142  0x0144  0x0146  0x0148  0x0149  0x014b  0x014d
+LOWER     0x014f  0x0151  0x0153  0x0155  0x0157  0x0159  0x015b  0x015d
+LOWER     0x015f  0x0161  0x0163  0x0165  0x0167  0x0169  0x016b  0x016d
+LOWER     0x016f  0x0171  0x0173  0x0175  0x0177  0x017a  0x017c  0x017e  0x017f
+UPPER     0x0100  0x0102  0x0104  0x0106  0x0108  0x010a  0x010c  0x010e
+UPPER     0x0110  0x0112  0x0114  0x0116  0x0118  0x011a  0x011c  0x011e
+UPPER     0x0120  0x0122  0x0124  0x0126  0x0128  0x012a  0x012c  0x012e
+UPPER     0x0130  0x0132  0x0134  0x0136  0x0139  0x013b  0x013d  0x013f
+UPPER     0x0141  0x0143  0x0145  0x0147  0x014a  0x014c  0x014e  0x0150
+UPPER     0x0152  0x0154  0x0156  0x0158  0x015a  0x015c  0x015e  0x0160
+UPPER     0x0162  0x0164  0x0166  0x0168  0x016a  0x016c  0x016e  0x0170
+UPPER     0x0172  0x0174  0x0176  0x0178  0x0179  0x017b  0x017d
+PRINT     0x0100 - 0x017f
+
+MAPUPPER  < 0x0101 0x0100 >
+MAPUPPER  < 0x0103 0x0102 >
+MAPUPPER  < 0x0105 0x0104 >
+MAPUPPER  < 0x0107 0x0106 >
+MAPUPPER  < 0x0109 0x0108 >
+MAPUPPER  < 0x010b 0x010a >
+MAPUPPER  < 0x010d 0x010c >
+MAPUPPER  < 0x010f 0x010e >
+MAPUPPER  < 0x0111 0x0110 >
+MAPUPPER  < 0x0113 0x0112 >
+MAPUPPER  < 0x0115 0x0114 >
+MAPUPPER  < 0x0117 0x0116 >
+MAPUPPER  < 0x0119 0x0118 >
+MAPUPPER  < 0x011b 0x011a >
+MAPUPPER  < 0x011d 0x011c >
+MAPUPPER  < 0x011f 0x011e >
+MAPUPPER  < 0x0121 0x0120 >
+MAPUPPER  < 0x0123 0x0122 >
+MAPUPPER  < 0x0125 0x0124 >
+MAPUPPER  < 0x0127 0x0126 >
+MAPUPPER  < 0x0129 0x0128 >
+MAPUPPER  < 0x012b 0x012a >
+MAPUPPER  < 0x012d 0x012c >
+MAPUPPER  < 0x012f 0x012e >
+MAPUPPER  < 0x0131 'I' >
+MAPUPPER  < 0x0133 0x0132 >
+MAPUPPER  < 0x0135 0x0134 >
+MAPUPPER  < 0x0137 0x0136 >
+MAPUPPER  < 0x013a 0x0139 >
+MAPUPPER  < 0x013c 0x013b >
+MAPUPPER  < 0x013e 0x013d >
+MAPUPPER  < 0x0140 0x013f >
+MAPUPPER  < 0x0142 0x0141 >
+MAPUPPER  < 0x0144 0x0143 >
+MAPUPPER  < 0x0146 0x0145 >
+MAPUPPER  < 0x0148 0x0147 >
+MAPUPPER  < 0x014b 0x014a >
+MAPUPPER  < 0x014d 0x014c >
+MAPUPPER  < 0x014f 0x014e >
+MAPUPPER  < 0x0151 0x0150 >
+MAPUPPER  < 0x0153 0x0152 >
+MAPUPPER  < 0x0155 0x0154 >
+MAPUPPER  < 0x0157 0x0156 >
+MAPUPPER  < 0x0159 0x0158 >
+MAPUPPER  < 0x015b 0x015a >
+MAPUPPER  < 0x015d 0x015c >
+MAPUPPER  < 0x015f 0x015e >
+MAPUPPER  < 0x0161 0x0160 >
+MAPUPPER  < 0x0163 0x0162 >
+MAPUPPER  < 0x0165 0x0164 >
+MAPUPPER  < 0x0167 0x0166 >
+MAPUPPER  < 0x0169 0x0168 >
+MAPUPPER  < 0x016b 0x016a >
+MAPUPPER  < 0x016d 0x016c >
+MAPUPPER  < 0x016f 0x016e >
+MAPUPPER  < 0x0171 0x0170 >
+MAPUPPER  < 0x0173 0x0172 >
+MAPUPPER  < 0x0175 0x0174 >
+MAPUPPER  < 0x0177 0x0176 >
+MAPUPPER  < 0x017a 0x0179 >
+MAPUPPER  < 0x017c 0x017b >
+MAPUPPER  < 0x017e 0x017d >
+MAPUPPER  < 0x017f 'S' >
+MAPLOWER  < 0x0100 0x0101 >
+MAPLOWER  < 0x0102 0x0103 >
+MAPLOWER  < 0x0104 0x0105 >
+MAPLOWER  < 0x0106 0x0107 >
+MAPLOWER  < 0x0108 0x0109 >
+MAPLOWER  < 0x010a 0x010b >
+MAPLOWER  < 0x010c 0x010d >
+MAPLOWER  < 0x010e 0x010f >
+MAPLOWER  < 0x0110 0x0111 >
+MAPLOWER  < 0x0112 0x0113 >
+MAPLOWER  < 0x0114 0x0115 >
+MAPLOWER  < 0x0116 0x0117 >
+MAPLOWER  < 0x0118 0x0119 >
+MAPLOWER  < 0x011a 0x011b >
+MAPLOWER  < 0x011c 0x011d >
+MAPLOWER  < 0x011e 0x011f >
+MAPLOWER  < 0x0120 0x0121 >
+MAPLOWER  < 0x0122 0x0123 >
+MAPLOWER  < 0x0124 0x0125 >
+MAPLOWER  < 0x0126 0x0127 >
+MAPLOWER  < 0x0128 0x0129 >
+MAPLOWER  < 0x012a 0x012b >
+MAPLOWER  < 0x012c 0x012d >
+MAPLOWER  < 0x012e 0x012f >
+MAPLOWER  < 0x0130 'i' >
+MAPLOWER  < 0x0132 0x0133 >
+MAPLOWER  < 0x0134 0x0135 >
+MAPLOWER  < 0x0136 0x0137 >
+MAPLOWER  < 0x0139 0x013a >
+MAPLOWER  < 0x013b 0x013c >
+MAPLOWER  < 0x013d 0x013e >
+MAPLOWER  < 0x013f 0x0140 >
+MAPLOWER  < 0x0141 0x0142 >
+MAPLOWER  < 0x0143 0x0144 >
+MAPLOWER  < 0x0145 0x0146 >
+MAPLOWER  < 0x0147 0x0148 >
+MAPLOWER  < 0x014a 0x014b >
+MAPLOWER  < 0x014c 0x014d >
+MAPLOWER  < 0x014e 0x014f >
+MAPLOWER  < 0x0150 0x0151 >
+MAPLOWER  < 0x0152 0x0153 >
+MAPLOWER  < 0x0154 0x0155 >
+MAPLOWER  < 0x0156 0x0157 >
+MAPLOWER  < 0x0158 0x0159 >
+MAPLOWER  < 0x015a 0x015b >
+MAPLOWER  < 0x015c 0x015d >
+MAPLOWER  < 0x015e 0x015f >
+MAPLOWER  < 0x0160 0x0161 >
+MAPLOWER  < 0x0162 0x0163 >
+MAPLOWER  < 0x0164 0x0165 >
+MAPLOWER  < 0x0166 0x0167 >
+MAPLOWER  < 0x0168 0x0169 >
+MAPLOWER  < 0x016a 0x016b >
+MAPLOWER  < 0x016c 0x016d >
+MAPLOWER  < 0x016e 0x016f >
+MAPLOWER  < 0x0170 0x0171 >
+MAPLOWER  < 0x0172 0x0173 >
+MAPLOWER  < 0x0174 0x0175 >
+MAPLOWER  < 0x0176 0x0177 >
+MAPLOWER  < 0x0178 0x00ff >
+MAPLOWER  < 0x0179 0x017a >
+MAPLOWER  < 0x017b 0x017c >
+MAPLOWER  < 0x017d 0x017e >
+
+
+/*
+ * U+0180 - U+024F : Latin Extended-B
+ */
+
+ALPHA     0x0180 - 0x01ba  0x01bc - 0x01bf  0x01c4 - 0x0220  0x0222 - 0x0233
+GRAPH     0x0180 - 0x0220  0x0222 - 0x0233
+LOWER     0x0180  0x0183  0x0185  0x0188  0x018c  0x018d  0x0192  0x0195
+LOWER     0x0199 - 0x019b  0x019e  0x01a1  0x01a3  0x01a5  0x01a8  0x01aa  0x01ab
+LOWER     0x01ad  0x01b0  0x01b4  0x01b6  0x01b9  0x01ba  0x01bd - 0x01bf
+LOWER     0x01c6  0x01c9  0x01cc  0x01ce  0x01d0  0x01d2  0x01d4  0x01d6
+LOWER     0x01d8  0x01da  0x01dc  0x01dd  0x01df  0x01e1  0x01e3  0x01e5
+LOWER     0x01e7  0x01e9  0x01eb  0x01ed  0x01ef  0x01f0  0x01f3  0x01f5
+LOWER     0x01f9  0x01fb  0x01fd  0x01ff  0x0201  0x0203  0x0205  0x0207
+LOWER     0x0209  0x020b  0x020d  0x020f  0x0211  0x0213  0x0215  0x0217
+LOWER     0x0219  0x021b  0x021d  0x021f  0x0223  0x0225  0x0227  0x0229
+LOWER     0x022b  0x022d  0x022f  0x0231  0x0233
+UPPER     0x0181  0x0182  0x0184  0x0186  0x0187  0x0189 - 0x018b  0x018e - 0x0191
+UPPER     0x0193  0x0194  0x0196 - 0x0198  0x019c  0x019d  0x019f  0x01a0
+UPPER     0x01a2  0x01a4  0x01a6  0x01a7  0x01a9  0x01ac  0x01ae  0x01af
+UPPER     0x01b1 - 0x01b3  0x01b5  0x01b7  0x01b8  0x01bc  0x01c4  0x01c7
+UPPER     0x01ca  0x01cd  0x01cf  0x01d1  0x01d3  0x01d5  0x01d7  0x01d9
+UPPER     0x01db  0x01de  0x01e0  0x01e2  0x01e4  0x01e6  0x01e8  0x01ea
+UPPER     0x01ec  0x01ee  0x01f1  0x01f4  0x01f6 - 0x01f8  0x01fa  0x01fc
+UPPER     0x01fe  0x0200  0x0202  0x0204  0x0206  0x0208  0x020a  0x020c
+UPPER     0x020e  0x0210  0x0212  0x0214  0x0216  0x0218  0x021a  0x021c
+UPPER     0x021e  0x0220  0x0222  0x0224  0x0226  0x0228  0x022a  0x022c
+UPPER     0x022e  0x0230  0x0232
+PRINT     0x0180 - 0x0220  0x0222 - 0x0233
+
+MAPUPPER  < 0x0183 0x0182 >
+MAPUPPER  < 0x0185 0x0184 >
+MAPUPPER  < 0x0188 0x0187 >
+MAPUPPER  < 0x018c 0x018b >
+MAPUPPER  < 0x0192 0x0191 >
+MAPUPPER  < 0x0195 0x01f6 >
+MAPUPPER  < 0x0199 0x0198 >
+MAPUPPER  < 0x019e 0x0220 >
+MAPUPPER  < 0x01a1 0x01a0 >
+MAPUPPER  < 0x01a3 0x01a2 >
+MAPUPPER  < 0x01a5 0x01a4 >
+MAPUPPER  < 0x01a8 0x01a7 >
+MAPUPPER  < 0x01ad 0x01ac >
+MAPUPPER  < 0x01b0 0x01af >
+MAPUPPER  < 0x01b4 0x01b3 >
+MAPUPPER  < 0x01b6 0x01b5 >
+MAPUPPER  < 0x01b9 0x01b8 >
+MAPUPPER  < 0x01bd 0x01bc >
+MAPUPPER  < 0x01bf 0x01f7 >
+MAPUPPER  < 0x01c5 0x01c4 >
+MAPUPPER  < 0x01c6 0x01c4 >
+MAPUPPER  < 0x01c8 0x01c7 >
+MAPUPPER  < 0x01c9 0x01c7 >
+MAPUPPER  < 0x01cb 0x01ca >
+MAPUPPER  < 0x01cc 0x01ca >
+MAPUPPER  < 0x01ce 0x01cd >
+MAPUPPER  < 0x01d0 0x01cf >
+MAPUPPER  < 0x01d2 0x01d1 >
+MAPUPPER  < 0x01d4 0x01d3 >
+MAPUPPER  < 0x01d6 0x01d5 >
+MAPUPPER  < 0x01d8 0x01d7 >
+MAPUPPER  < 0x01da 0x01d9 >
+MAPUPPER  < 0x01dc 0x01db >
+MAPUPPER  < 0x01dd 0x018e >
+MAPUPPER  < 0x01df 0x01de >
+MAPUPPER  < 0x01e1 0x01e0 >
+MAPUPPER  < 0x01e3 0x01e2 >
+MAPUPPER  < 0x01e5 0x01e4 >
+MAPUPPER  < 0x01e7 0x01e6 >
+MAPUPPER  < 0x01e9 0x01e8 >
+MAPUPPER  < 0x01eb 0x01ea >
+MAPUPPER  < 0x01ed 0x01ec >
+MAPUPPER  < 0x01ef 0x01ee >
+MAPUPPER  < 0x01f2 0x01f1 >
+MAPUPPER  < 0x01f3 0x01f1 >
+MAPUPPER  < 0x01f5 0x01f4 >
+MAPUPPER  < 0x01f9 0x01f8 >
+MAPUPPER  < 0x01fb 0x01fa >
+MAPUPPER  < 0x01fd 0x01fc >
+MAPUPPER  < 0x01ff 0x01fe >
+MAPUPPER  < 0x0201 0x0200 >
+MAPUPPER  < 0x0203 0x0202 >
+MAPUPPER  < 0x0205 0x0204 >
+MAPUPPER  < 0x0207 0x0206 >
+MAPUPPER  < 0x0209 0x0208 >
+MAPUPPER  < 0x020b 0x020a >
+MAPUPPER  < 0x020d 0x020c >
+MAPUPPER  < 0x020f 0x020e >
+MAPUPPER  < 0x0211 0x0210 >
+MAPUPPER  < 0x0213 0x0212 >
+MAPUPPER  < 0x0215 0x0214 >
+MAPUPPER  < 0x0217 0x0216 >
+MAPUPPER  < 0x0219 0x0218 >
+MAPUPPER  < 0x021b 0x021a >
+MAPUPPER  < 0x021d 0x021c >
+MAPUPPER  < 0x021f 0x021e >
+MAPUPPER  < 0x0223 0x0222 >
+MAPUPPER  < 0x0225 0x0224 >
+MAPUPPER  < 0x0227 0x0226 >
+MAPUPPER  < 0x0229 0x0228 >
+MAPUPPER  < 0x022b 0x022a >
+MAPUPPER  < 0x022d 0x022c >
+MAPUPPER  < 0x022f 0x022e >
+MAPUPPER  < 0x0231 0x0230 >
+MAPUPPER  < 0x0233 0x0232 >
+MAPLOWER  < 0x0181 0x0253 >
+MAPLOWER  < 0x0182 0x0183 >
+MAPLOWER  < 0x0184 0x0185 >
+MAPLOWER  < 0x0186 0x0254 >
+MAPLOWER  < 0x0187 0x0188 >
+MAPLOWER  < 0x0189 - 0x018a : 0x0256 >
+MAPLOWER  < 0x018b 0x018c >
+MAPLOWER  < 0x018e 0x01dd >
+MAPLOWER  < 0x018f 0x0259 >
+MAPLOWER  < 0x0190 0x025b >
+MAPLOWER  < 0x0191 0x0192 >
+MAPLOWER  < 0x0193 0x0260 >
+MAPLOWER  < 0x0194 0x0263 >
+MAPLOWER  < 0x0196 0x0269 >
+MAPLOWER  < 0x0197 0x0268 >
+MAPLOWER  < 0x0198 0x0199 >
+MAPLOWER  < 0x019c 0x026f >
+MAPLOWER  < 0x019d 0x0272 >
+MAPLOWER  < 0x019f 0x0275 >
+MAPLOWER  < 0x01a0 0x01a1 >
+MAPLOWER  < 0x01a2 0x01a3 >
+MAPLOWER  < 0x01a4 0x01a5 >
+MAPLOWER  < 0x01a6 0x0280 >
+MAPLOWER  < 0x01a7 0x01a8 >
+MAPLOWER  < 0x01a9 0x0283 >
+MAPLOWER  < 0x01ac 0x01ad >
+MAPLOWER  < 0x01ae 0x0288 >
+MAPLOWER  < 0x01af 0x01b0 >
+MAPLOWER  < 0x01b1 - 0x01b2 : 0x028a >
+MAPLOWER  < 0x01b3 0x01b4 >
+MAPLOWER  < 0x01b5 0x01b6 >
+MAPLOWER  < 0x01b7 0x0292 >
+MAPLOWER  < 0x01b8 0x01b9 >
+MAPLOWER  < 0x01bc 0x01bd >
+MAPLOWER  < 0x01c4 0x01c6 >
+MAPLOWER  < 0x01c5 0x01c6 >
+MAPLOWER  < 0x01c7 0x01c9 >
+MAPLOWER  < 0x01c8 0x01c9 >
+MAPLOWER  < 0x01ca 0x01cc >
+MAPLOWER  < 0x01cb 0x01cc >
+MAPLOWER  < 0x01cd 0x01ce >
+MAPLOWER  < 0x01cf 0x01d0 >
+MAPLOWER  < 0x01d1 0x01d2 >
+MAPLOWER  < 0x01d3 0x01d4 >
+MAPLOWER  < 0x01d5 0x01d6 >
+MAPLOWER  < 0x01d7 0x01d8 >
+MAPLOWER  < 0x01d9 0x01da >
+MAPLOWER  < 0x01db 0x01dc >
+MAPLOWER  < 0x01de 0x01df >
+MAPLOWER  < 0x01e0 0x01e1 >
+MAPLOWER  < 0x01e2 0x01e3 >
+MAPLOWER  < 0x01e4 0x01e5 >
+MAPLOWER  < 0x01e6 0x01e7 >
+MAPLOWER  < 0x01e8 0x01e9 >
+MAPLOWER  < 0x01ea 0x01eb >
+MAPLOWER  < 0x01ec 0x01ed >
+MAPLOWER  < 0x01ee 0x01ef >
+MAPLOWER  < 0x01f1 0x01f3 >
+MAPLOWER  < 0x01f2 0x01f3 >
+MAPLOWER  < 0x01f4 0x01f5 >
+MAPLOWER  < 0x01f6 0x0195 >
+MAPLOWER  < 0x01f7 0x01bf >
+MAPLOWER  < 0x01f8 0x01f9 >
+MAPLOWER  < 0x01fa 0x01fb >
+MAPLOWER  < 0x01fc 0x01fd >
+MAPLOWER  < 0x01fe 0x01ff >
+MAPLOWER  < 0x0200 0x0201 >
+MAPLOWER  < 0x0202 0x0203 >
+MAPLOWER  < 0x0204 0x0205 >
+MAPLOWER  < 0x0206 0x0207 >
+MAPLOWER  < 0x0208 0x0209 >
+MAPLOWER  < 0x020a 0x020b >
+MAPLOWER  < 0x020c 0x020d >
+MAPLOWER  < 0x020e 0x020f >
+MAPLOWER  < 0x0210 0x0211 >
+MAPLOWER  < 0x0212 0x0213 >
+MAPLOWER  < 0x0214 0x0215 >
+MAPLOWER  < 0x0216 0x0217 >
+MAPLOWER  < 0x0218 0x0219 >
+MAPLOWER  < 0x021a 0x021b >
+MAPLOWER  < 0x021c 0x021d >
+MAPLOWER  < 0x021e 0x021f >
+MAPLOWER  < 0x0220 0x019e >
+MAPLOWER  < 0x0222 0x0223 >
+MAPLOWER  < 0x0224 0x0225 >
+MAPLOWER  < 0x0226 0x0227 >
+MAPLOWER  < 0x0228 0x0229 >
+MAPLOWER  < 0x022a 0x022b >
+MAPLOWER  < 0x022c 0x022d >
+MAPLOWER  < 0x022e 0x022f >
+MAPLOWER  < 0x0230 0x0231 >
+MAPLOWER  < 0x0232 0x0233 >
+
+
+/*
+ * U+0250 - U+02AF : IPA Extensions
+ */
+
+ALPHA     0x0250 - 0x02ad
+GRAPH     0x0250 - 0x02ad
+LOWER     0x0250 - 0x02ad
+PRINT     0x0250 - 0x02ad
+
+MAPUPPER  < 0x0253 0x0181 >
+MAPUPPER  < 0x0254 0x0186 >
+MAPUPPER  < 0x0256 - 0x0257 : 0x0189 >
+MAPUPPER  < 0x0259 0x018f >
+MAPUPPER  < 0x025b 0x0190 >
+MAPUPPER  < 0x0260 0x0193 >
+MAPUPPER  < 0x0263 0x0194 >
+MAPUPPER  < 0x0268 0x0197 >
+MAPUPPER  < 0x0269 0x0196 >
+MAPUPPER  < 0x026f 0x019c >
+MAPUPPER  < 0x0272 0x019d >
+MAPUPPER  < 0x0275 0x019f >
+MAPUPPER  < 0x0280 0x01a6 >
+MAPUPPER  < 0x0283 0x01a9 >
+MAPUPPER  < 0x0288 0x01ae >
+MAPUPPER  < 0x028a - 0x028b : 0x01b1 >
+MAPUPPER  < 0x0292 0x01b7 >
+
+
+/*
+ * U+02B0 - U+02FF : Spacing Modifier Letters
+ */
+
+GRAPH     0x02b0 - 0x02ee
+PUNCT     0x02b9  0x02ba  0x02c2 - 0x02cf  0x02d2 - 0x02df  0x02e5 - 0x02ed
+PRINT     0x02b0 - 0x02ee
+
+
+/*
+ * U+0300 - U+036F : Combining Diacritical Marks
+ */
+
+GRAPH     0x0300 - 0x034f  0x0360 - 0x036f
+PRINT     0x0300 - 0x034f  0x0360 - 0x036f
+
+MAPUPPER  < 0x0345 0x0399 >
+
+
+/*
+ * U+0370 - U+03FF : Greek and Coptic
+ */
+
+ALPHA     0x0386  0x0388 - 0x038a  0x038c  0x038e - 0x03a1  0x03a3 - 0x03ce
+ALPHA     0x03d0 - 0x03f5
+GRAPH     0x0374  0x0375  0x037a  0x037e  0x0384 - 0x038a  0x038c  0x038e - 0x03a1
+GRAPH     0x03a3 - 0x03ce  0x03d0 - 0x03f6
+LOWER     0x0390  0x03ac - 0x03ce  0x03d0  0x03d1  0x03d5 - 0x03d7  0x03d9
+LOWER     0x03db  0x03dd  0x03df  0x03e1  0x03e3  0x03e5  0x03e7  0x03e9
+LOWER     0x03eb  0x03ed  0x03ef - 0x03f3  0x03f5
+PUNCT     0x0374  0x0375  0x037e  0x0384  0x0385  0x0387  0x03f6
+UPPER     0x0386  0x0388 - 0x038a  0x038c  0x038e  0x038f  0x0391 - 0x03a1
+UPPER     0x03a3 - 0x03ab  0x03d2 - 0x03d4  0x03d8  0x03da  0x03dc  0x03de
+UPPER     0x03e0  0x03e2  0x03e4  0x03e6  0x03e8  0x03ea  0x03ec  0x03ee
+UPPER     0x03f4
+PRINT     0x0374  0x0375  0x037a  0x037e  0x0384 - 0x038a  0x038c  0x038e - 0x03a1
+PRINT     0x03a3 - 0x03ce  0x03d0 - 0x03f6
+
+MAPUPPER  < 0x03ac 0x0386 >
+MAPUPPER  < 0x03ad - 0x03af : 0x0388 >
+MAPUPPER  < 0x03b1 - 0x03c1 : 0x0391 >
+MAPUPPER  < 0x03c2 0x03a3 >
+MAPUPPER  < 0x03c3 - 0x03cb : 0x03a3 >
+MAPUPPER  < 0x03cc 0x038c >
+MAPUPPER  < 0x03cd - 0x03ce : 0x038e >
+MAPUPPER  < 0x03d0 0x0392 >
+MAPUPPER  < 0x03d1 0x0398 >
+MAPUPPER  < 0x03d5 0x03a6 >
+MAPUPPER  < 0x03d6 0x03a0 >
+MAPUPPER  < 0x03d9 0x03d8 >
+MAPUPPER  < 0x03db 0x03da >
+MAPUPPER  < 0x03dd 0x03dc >
+MAPUPPER  < 0x03df 0x03de >
+MAPUPPER  < 0x03e1 0x03e0 >
+MAPUPPER  < 0x03e3 0x03e2 >
+MAPUPPER  < 0x03e5 0x03e4 >
+MAPUPPER  < 0x03e7 0x03e6 >
+MAPUPPER  < 0x03e9 0x03e8 >
+MAPUPPER  < 0x03eb 0x03ea >
+MAPUPPER  < 0x03ed 0x03ec >
+MAPUPPER  < 0x03ef 0x03ee >
+MAPUPPER  < 0x03f0 0x039a >
+MAPUPPER  < 0x03f1 0x03a1 >
+MAPUPPER  < 0x03f2 0x03a3 >
+MAPUPPER  < 0x03f5 0x0395 >
+MAPLOWER  < 0x0386 0x03ac >
+MAPLOWER  < 0x0388 - 0x038a : 0x03ad >
+MAPLOWER  < 0x038c 0x03cc >
+MAPLOWER  < 0x038e - 0x038f : 0x03cd >
+MAPLOWER  < 0x0391 - 0x03a1 : 0x03b1 >
+MAPLOWER  < 0x03a3 - 0x03ab : 0x03c3 >
+MAPLOWER  < 0x03d8 0x03d9 >
+MAPLOWER  < 0x03da 0x03db >
+MAPLOWER  < 0x03dc 0x03dd >
+MAPLOWER  < 0x03de 0x03df >
+MAPLOWER  < 0x03e0 0x03e1 >
+MAPLOWER  < 0x03e2 0x03e3 >
+MAPLOWER  < 0x03e4 0x03e5 >
+MAPLOWER  < 0x03e6 0x03e7 >
+MAPLOWER  < 0x03e8 0x03e9 >
+MAPLOWER  < 0x03ea 0x03eb >
+MAPLOWER  < 0x03ec 0x03ed >
+MAPLOWER  < 0x03ee 0x03ef >
+MAPLOWER  < 0x03f4 0x03b8 >
+
+
+/*
+ * U+0400 - U+04FF : Cyrillic
+ */
+
+ALPHA     0x0400 - 0x0481  0x048a - 0x04ce  0x04d0 - 0x04f5  0x04f8  0x04f9
+GRAPH     0x0400 - 0x0486  0x0488 - 0x04ce  0x04d0 - 0x04f5  0x04f8  0x04f9
+LOWER     0x0430 - 0x045f  0x0461  0x0463  0x0465  0x0467  0x0469  0x046b
+LOWER     0x046d  0x046f  0x0471  0x0473  0x0475  0x0477  0x0479  0x047b
+LOWER     0x047d  0x047f  0x0481  0x048b  0x048d  0x048f  0x0491  0x0493
+LOWER     0x0495  0x0497  0x0499  0x049b  0x049d  0x049f  0x04a1  0x04a3
+LOWER     0x04a5  0x04a7  0x04a9  0x04ab  0x04ad  0x04af  0x04b1  0x04b3
+LOWER     0x04b5  0x04b7  0x04b9  0x04bb  0x04bd  0x04bf  0x04c2  0x04c4
+LOWER     0x04c6  0x04c8  0x04ca  0x04cc  0x04ce  0x04d1  0x04d3  0x04d5
+LOWER     0x04d7  0x04d9  0x04db  0x04dd  0x04df  0x04e1  0x04e3  0x04e5
+LOWER     0x04e7  0x04e9  0x04eb  0x04ed  0x04ef  0x04f1  0x04f3  0x04f5
+LOWER     0x04f9
+PUNCT     0x0482
+UPPER     0x0400 - 0x042f  0x0460  0x0462  0x0464  0x0466  0x0468  0x046a
+UPPER     0x046c  0x046e  0x0470  0x0472  0x0474  0x0476  0x0478  0x047a
+UPPER     0x047c  0x047e  0x0480  0x048a  0x048c  0x048e  0x0490  0x0492
+UPPER     0x0494  0x0496  0x0498  0x049a  0x049c  0x049e  0x04a0  0x04a2
+UPPER     0x04a4  0x04a6  0x04a8  0x04aa  0x04ac  0x04ae  0x04b0  0x04b2
+UPPER     0x04b4  0x04b6  0x04b8  0x04ba  0x04bc  0x04be  0x04c0  0x04c1
+UPPER     0x04c3  0x04c5  0x04c7  0x04c9  0x04cb  0x04cd  0x04d0  0x04d2
+UPPER     0x04d4  0x04d6  0x04d8  0x04da  0x04dc  0x04de  0x04e0  0x04e2
+UPPER     0x04e4  0x04e6  0x04e8  0x04ea  0x04ec  0x04ee  0x04f0  0x04f2
+UPPER     0x04f4  0x04f8
+PRINT     0x0400 - 0x0486  0x0488 - 0x04ce  0x04d0 - 0x04f5  0x04f8  0x04f9
+
+MAPUPPER  < 0x0430 - 0x044f : 0x0410 >
+MAPUPPER  < 0x0450 - 0x045f : 0x0400 >
+MAPUPPER  < 0x0461 0x0460 >
+MAPUPPER  < 0x0463 0x0462 >
+MAPUPPER  < 0x0465 0x0464 >
+MAPUPPER  < 0x0467 0x0466 >
+MAPUPPER  < 0x0469 0x0468 >
+MAPUPPER  < 0x046b 0x046a >
+MAPUPPER  < 0x046d 0x046c >
+MAPUPPER  < 0x046f 0x046e >
+MAPUPPER  < 0x0471 0x0470 >
+MAPUPPER  < 0x0473 0x0472 >
+MAPUPPER  < 0x0475 0x0474 >
+MAPUPPER  < 0x0477 0x0476 >
+MAPUPPER  < 0x0479 0x0478 >
+MAPUPPER  < 0x047b 0x047a >
+MAPUPPER  < 0x047d 0x047c >
+MAPUPPER  < 0x047f 0x047e >
+MAPUPPER  < 0x0481 0x0480 >
+MAPUPPER  < 0x048b 0x048a >
+MAPUPPER  < 0x048d 0x048c >
+MAPUPPER  < 0x048f 0x048e >
+MAPUPPER  < 0x0491 0x0490 >
+MAPUPPER  < 0x0493 0x0492 >
+MAPUPPER  < 0x0495 0x0494 >
+MAPUPPER  < 0x0497 0x0496 >
+MAPUPPER  < 0x0499 0x0498 >
+MAPUPPER  < 0x049b 0x049a >
+MAPUPPER  < 0x049d 0x049c >
+MAPUPPER  < 0x049f 0x049e >
+MAPUPPER  < 0x04a1 0x04a0 >
+MAPUPPER  < 0x04a3 0x04a2 >
+MAPUPPER  < 0x04a5 0x04a4 >
+MAPUPPER  < 0x04a7 0x04a6 >
+MAPUPPER  < 0x04a9 0x04a8 >
+MAPUPPER  < 0x04ab 0x04aa >
+MAPUPPER  < 0x04ad 0x04ac >
+MAPUPPER  < 0x04af 0x04ae >
+MAPUPPER  < 0x04b1 0x04b0 >
+MAPUPPER  < 0x04b3 0x04b2 >
+MAPUPPER  < 0x04b5 0x04b4 >
+MAPUPPER  < 0x04b7 0x04b6 >
+MAPUPPER  < 0x04b9 0x04b8 >
+MAPUPPER  < 0x04bb 0x04ba >
+MAPUPPER  < 0x04bd 0x04bc >
+MAPUPPER  < 0x04bf 0x04be >
+MAPUPPER  < 0x04c2 0x04c1 >
+MAPUPPER  < 0x04c4 0x04c3 >
+MAPUPPER  < 0x04c6 0x04c5 >
+MAPUPPER  < 0x04c8 0x04c7 >
+MAPUPPER  < 0x04ca 0x04c9 >
+MAPUPPER  < 0x04cc 0x04cb >
+MAPUPPER  < 0x04ce 0x04cd >
+MAPUPPER  < 0x04d1 0x04d0 >
+MAPUPPER  < 0x04d3 0x04d2 >
+MAPUPPER  < 0x04d5 0x04d4 >
+MAPUPPER  < 0x04d7 0x04d6 >
+MAPUPPER  < 0x04d9 0x04d8 >
+MAPUPPER  < 0x04db 0x04da >
+MAPUPPER  < 0x04dd 0x04dc >
+MAPUPPER  < 0x04df 0x04de >
+MAPUPPER  < 0x04e1 0x04e0 >
+MAPUPPER  < 0x04e3 0x04e2 >
+MAPUPPER  < 0x04e5 0x04e4 >
+MAPUPPER  < 0x04e7 0x04e6 >
+MAPUPPER  < 0x04e9 0x04e8 >
+MAPUPPER  < 0x04eb 0x04ea >
+MAPUPPER  < 0x04ed 0x04ec >
+MAPUPPER  < 0x04ef 0x04ee >
+MAPUPPER  < 0x04f1 0x04f0 >
+MAPUPPER  < 0x04f3 0x04f2 >
+MAPUPPER  < 0x04f5 0x04f4 >
+MAPUPPER  < 0x04f9 0x04f8 >
+MAPLOWER  < 0x0400 - 0x040f : 0x0450 >
+MAPLOWER  < 0x0410 - 0x042f : 0x0430 >
+MAPLOWER  < 0x0460 0x0461 >
+MAPLOWER  < 0x0462 0x0463 >
+MAPLOWER  < 0x0464 0x0465 >
+MAPLOWER  < 0x0466 0x0467 >
+MAPLOWER  < 0x0468 0x0469 >
+MAPLOWER  < 0x046a 0x046b >
+MAPLOWER  < 0x046c 0x046d >
+MAPLOWER  < 0x046e 0x046f >
+MAPLOWER  < 0x0470 0x0471 >
+MAPLOWER  < 0x0472 0x0473 >
+MAPLOWER  < 0x0474 0x0475 >
+MAPLOWER  < 0x0476 0x0477 >
+MAPLOWER  < 0x0478 0x0479 >
+MAPLOWER  < 0x047a 0x047b >
+MAPLOWER  < 0x047c 0x047d >
+MAPLOWER  < 0x047e 0x047f >
+MAPLOWER  < 0x0480 0x0481 >
+MAPLOWER  < 0x048a 0x048b >
+MAPLOWER  < 0x048c 0x048d >
+MAPLOWER  < 0x048e 0x048f >
+MAPLOWER  < 0x0490 0x0491 >
+MAPLOWER  < 0x0492 0x0493 >
+MAPLOWER  < 0x0494 0x0495 >
+MAPLOWER  < 0x0496 0x0497 >
+MAPLOWER  < 0x0498 0x0499 >
+MAPLOWER  < 0x049a 0x049b >
+MAPLOWER  < 0x049c 0x049d >
+MAPLOWER  < 0x049e 0x049f >
+MAPLOWER  < 0x04a0 0x04a1 >
+MAPLOWER  < 0x04a2 0x04a3 >
+MAPLOWER  < 0x04a4 0x04a5 >
+MAPLOWER  < 0x04a6 0x04a7 >
+MAPLOWER  < 0x04a8 0x04a9 >
+MAPLOWER  < 0x04aa 0x04ab >
+MAPLOWER  < 0x04ac 0x04ad >
+MAPLOWER  < 0x04ae 0x04af >
+MAPLOWER  < 0x04b0 0x04b1 >
+MAPLOWER  < 0x04b2 0x04b3 >
+MAPLOWER  < 0x04b4 0x04b5 >
+MAPLOWER  < 0x04b6 0x04b7 >
+MAPLOWER  < 0x04b8 0x04b9 >
+MAPLOWER  < 0x04ba 0x04bb >
+MAPLOWER  < 0x04bc 0x04bd >
+MAPLOWER  < 0x04be 0x04bf >
+MAPLOWER  < 0x04c1 0x04c2 >
+MAPLOWER  < 0x04c3 0x04c4 >
+MAPLOWER  < 0x04c5 0x04c6 >
+MAPLOWER  < 0x04c7 0x04c8 >
+MAPLOWER  < 0x04c9 0x04ca >
+MAPLOWER  < 0x04cb 0x04cc >
+MAPLOWER  < 0x04cd 0x04ce >
+MAPLOWER  < 0x04d0 0x04d1 >
+MAPLOWER  < 0x04d2 0x04d3 >
+MAPLOWER  < 0x04d4 0x04d5 >
+MAPLOWER  < 0x04d6 0x04d7 >
+MAPLOWER  < 0x04d8 0x04d9 >
+MAPLOWER  < 0x04da 0x04db >
+MAPLOWER  < 0x04dc 0x04dd >
+MAPLOWER  < 0x04de 0x04df >
+MAPLOWER  < 0x04e0 0x04e1 >
+MAPLOWER  < 0x04e2 0x04e3 >
+MAPLOWER  < 0x04e4 0x04e5 >
+MAPLOWER  < 0x04e6 0x04e7 >
+MAPLOWER  < 0x04e8 0x04e9 >
+MAPLOWER  < 0x04ea 0x04eb >
+MAPLOWER  < 0x04ec 0x04ed >
+MAPLOWER  < 0x04ee 0x04ef >
+MAPLOWER  < 0x04f0 0x04f1 >
+MAPLOWER  < 0x04f2 0x04f3 >
+MAPLOWER  < 0x04f4 0x04f5 >
+MAPLOWER  < 0x04f8 0x04f9 >
+
+
+/*
+ * U+0500 - U+052F : Cyrillic Supplementary
+ */
+
+ALPHA     0x0500 - 0x050f
+GRAPH     0x0500 - 0x050f
+LOWER     0x0501  0x0503  0x0505  0x0507  0x0509  0x050b  0x050d  0x050f
+UPPER     0x0500  0x0502  0x0504  0x0506  0x0508  0x050a  0x050c  0x050e
+PRINT     0x0500 - 0x050f
+
+MAPUPPER  < 0x0501 0x0500 >
+MAPUPPER  < 0x0503 0x0502 >
+MAPUPPER  < 0x0505 0x0504 >
+MAPUPPER  < 0x0507 0x0506 >
+MAPUPPER  < 0x0509 0x0508 >
+MAPUPPER  < 0x050b 0x050a >
+MAPUPPER  < 0x050d 0x050c >
+MAPUPPER  < 0x050f 0x050e >
+MAPLOWER  < 0x0500 0x0501 >
+MAPLOWER  < 0x0502 0x0503 >
+MAPLOWER  < 0x0504 0x0505 >
+MAPLOWER  < 0x0506 0x0507 >
+MAPLOWER  < 0x0508 0x0509 >
+MAPLOWER  < 0x050a 0x050b >
+MAPLOWER  < 0x050c 0x050d >
+MAPLOWER  < 0x050e 0x050f >
+
+
+/*
+ * U+0530 - U+058F : Armenian
+ */
+
+ALPHA     0x0531 - 0x0556  0x0561 - 0x0587
+GRAPH     0x0531 - 0x0556  0x0559 - 0x055f  0x0561 - 0x0587  0x0589  0x058a
+LOWER     0x0561 - 0x0587
+PUNCT     0x055a - 0x055f  0x0589  0x058a
+UPPER     0x0531 - 0x0556
+PRINT     0x0531 - 0x0556  0x0559 - 0x055f  0x0561 - 0x0587  0x0589  0x058a
+
+MAPUPPER  < 0x0561 - 0x0586 : 0x0531 >
+MAPLOWER  < 0x0531 - 0x0556 : 0x0561 >
+
+
+/*
+ * U+0590 - U+05FF : Hebrew
+ */
+
+GRAPH     0x0591 - 0x05a1  0x05a3 - 0x05b9  0x05bb - 0x05c4  0x05d0 - 0x05ea
+GRAPH     0x05f0 - 0x05f4
+PUNCT     0x05be  0x05c0  0x05c3  0x05f3  0x05f4
+PRINT     0x0591 - 0x05a1  0x05a3 - 0x05b9  0x05bb - 0x05c4  0x05d0 - 0x05ea
+PRINT     0x05f0 - 0x05f4
+
+
+/*
+ * U+0600 - U+06FF : Arabic
+ */
+
+CONTROL   0x06dd
+DIGIT     0x0660 - 0x0669  0x06f0 - 0x06f9
+GRAPH     0x060c  0x061b  0x061f  0x0621 - 0x063a  0x0640 - 0x0655  0x0660 - 0x06dc
+GRAPH     0x06de - 0x06ed  0x06f0 - 0x06fe
+PUNCT     0x060c  0x061b  0x061f  0x066a - 0x066d  0x06d4  0x06e9  0x06fd  0x06fe
+PRINT     0x060c  0x061b  0x061f  0x0621 - 0x063a  0x0640 - 0x0655  0x0660 - 0x06dc
+PRINT     0x06de - 0x06ed  0x06f0 - 0x06fe
+
+TODIGIT   < 0x0660 - 0x0669 : 0x0000 >
+TODIGIT   < 0x06f0 - 0x06f9 : 0x0000 >
+
+
+/*
+ * U+0700 - U+074F : Syriac
+ */
+
+CONTROL   0x070f
+GRAPH     0x0700 - 0x070d  0x0710 - 0x072c  0x0730 - 0x074a
+PUNCT     0x0700 - 0x070d
+PRINT     0x0700 - 0x070d  0x0710 - 0x072c  0x0730 - 0x074a
+
+
+/*
+ * U+0780 - U+07BF : Thaana
+ */
+
+GRAPH     0x0780 - 0x07b1
+PRINT     0x0780 - 0x07b1
+
+
+/*
+ * U+0900 - U+097F : Devanagari
+ */
+
+DIGIT     0x0966 - 0x096f
+GRAPH     0x0901 - 0x0903  0x0905 - 0x0939  0x093c - 0x094d  0x0950 - 0x0954
+GRAPH     0x0958 - 0x0970
+PUNCT     0x0964  0x0965  0x0970
+PRINT     0x0901 - 0x0903  0x0905 - 0x0939  0x093c - 0x094d  0x0950 - 0x0954
+PRINT     0x0958 - 0x0970
+
+TODIGIT   < 0x0966 - 0x096f : 0x0000 >
+
+
+/*
+ * U+0980 - U+09FF : Bengali
+ */
+
+DIGIT     0x09e6 - 0x09ef
+GRAPH     0x0981 - 0x0983  0x0985 - 0x098c  0x098f  0x0990  0x0993 - 0x09a8
+GRAPH     0x09aa - 0x09b0  0x09b2  0x09b6 - 0x09b9  0x09bc  0x09be - 0x09c4
+GRAPH     0x09c7  0x09c8  0x09cb - 0x09cd  0x09d7  0x09dc  0x09dd  0x09df - 0x09e3
+GRAPH     0x09e6 - 0x09fa
+PUNCT     0x09f2  0x09f3  0x09fa
+PRINT     0x0981 - 0x0983  0x0985 - 0x098c  0x098f  0x0990  0x0993 - 0x09a8
+PRINT     0x09aa - 0x09b0  0x09b2  0x09b6 - 0x09b9  0x09bc  0x09be - 0x09c4
+PRINT     0x09c7  0x09c8  0x09cb - 0x09cd  0x09d7  0x09dc  0x09dd  0x09df - 0x09e3
+PRINT     0x09e6 - 0x09fa
+SPECIAL   0x09f4 - 0x09f9
+
+TODIGIT   < 0x09e6 - 0x09ef : 0x0000 >
+
+
+/*
+ * U+0A00 - U+0A7F : Gurmukhi
+ */
+
+DIGIT     0x0a66 - 0x0a6f
+GRAPH     0x0a02  0x0a05 - 0x0a0a  0x0a0f  0x0a10  0x0a13 - 0x0a28  0x0a2a - 0x0a30
+GRAPH     0x0a32  0x0a33  0x0a35  0x0a36  0x0a38  0x0a39  0x0a3c  0x0a3e - 0x0a42
+GRAPH     0x0a47  0x0a48  0x0a4b - 0x0a4d  0x0a59 - 0x0a5c  0x0a5e  0x0a66 - 0x0a74
+PRINT     0x0a02  0x0a05 - 0x0a0a  0x0a0f  0x0a10  0x0a13 - 0x0a28  0x0a2a - 0x0a30
+PRINT     0x0a32  0x0a33  0x0a35  0x0a36  0x0a38  0x0a39  0x0a3c  0x0a3e - 0x0a42
+PRINT     0x0a47  0x0a48  0x0a4b - 0x0a4d  0x0a59 - 0x0a5c  0x0a5e  0x0a66 - 0x0a74
+
+TODIGIT   < 0x0a66 - 0x0a6f : 0x0000 >
+
+
+/*
+ * U+0A80 - U+0AFF : Gujarati
+ */
+
+DIGIT     0x0ae6 - 0x0aef
+GRAPH     0x0a81 - 0x0a83  0x0a85 - 0x0a8b  0x0a8d  0x0a8f - 0x0a91  0x0a93 - 0x0aa8
+GRAPH     0x0aaa - 0x0ab0  0x0ab2  0x0ab3  0x0ab5 - 0x0ab9  0x0abc - 0x0ac5
+GRAPH     0x0ac7 - 0x0ac9  0x0acb - 0x0acd  0x0ad0  0x0ae0  0x0ae6 - 0x0aef
+PRINT     0x0a81 - 0x0a83  0x0a85 - 0x0a8b  0x0a8d  0x0a8f - 0x0a91  0x0a93 - 0x0aa8
+PRINT     0x0aaa - 0x0ab0  0x0ab2  0x0ab3  0x0ab5 - 0x0ab9  0x0abc - 0x0ac5
+PRINT     0x0ac7 - 0x0ac9  0x0acb - 0x0acd  0x0ad0  0x0ae0  0x0ae6 - 0x0aef
+
+TODIGIT   < 0x0ae6 - 0x0aef : 0x0000 >
+
+
+/*
+ * U+0B00 - U+0B7F : Oriya
+ */
+
+DIGIT     0x0b66 - 0x0b6f
+GRAPH     0x0b01 - 0x0b03  0x0b05 - 0x0b0c  0x0b0f  0x0b10  0x0b13 - 0x0b28
+GRAPH     0x0b2a - 0x0b30  0x0b32  0x0b33  0x0b36 - 0x0b39  0x0b3c - 0x0b43
+GRAPH     0x0b47  0x0b48  0x0b4b - 0x0b4d  0x0b56  0x0b57  0x0b5c  0x0b5d
+GRAPH     0x0b5f - 0x0b61  0x0b66 - 0x0b70
+PUNCT     0x0b70
+PRINT     0x0b01 - 0x0b03  0x0b05 - 0x0b0c  0x0b0f  0x0b10  0x0b13 - 0x0b28
+PRINT     0x0b2a - 0x0b30  0x0b32  0x0b33  0x0b36 - 0x0b39  0x0b3c - 0x0b43
+PRINT     0x0b47  0x0b48  0x0b4b - 0x0b4d  0x0b56  0x0b57  0x0b5c  0x0b5d
+PRINT     0x0b5f - 0x0b61  0x0b66 - 0x0b70
+
+TODIGIT   < 0x0b66 - 0x0b6f : 0x0000 >
+
+
+/*
+ * U+0B80 - U+0BFF : Tamil
+ */
+
+DIGIT     0x0be7 - 0x0bef
+GRAPH     0x0b82  0x0b83  0x0b85 - 0x0b8a  0x0b8e - 0x0b90  0x0b92 - 0x0b95
+GRAPH     0x0b99  0x0b9a  0x0b9c  0x0b9e  0x0b9f  0x0ba3  0x0ba4  0x0ba8 - 0x0baa
+GRAPH     0x0bae - 0x0bb5  0x0bb7 - 0x0bb9  0x0bbe - 0x0bc2  0x0bc6 - 0x0bc8
+GRAPH     0x0bca - 0x0bcd  0x0bd7  0x0be7 - 0x0bf2
+PRINT     0x0b82  0x0b83  0x0b85 - 0x0b8a  0x0b8e - 0x0b90  0x0b92 - 0x0b95
+PRINT     0x0b99  0x0b9a  0x0b9c  0x0b9e  0x0b9f  0x0ba3  0x0ba4  0x0ba8 - 0x0baa
+PRINT     0x0bae - 0x0bb5  0x0bb7 - 0x0bb9  0x0bbe - 0x0bc2  0x0bc6 - 0x0bc8
+PRINT     0x0bca - 0x0bcd  0x0bd7  0x0be7 - 0x0bf2
+SPECIAL   0x0bf0 - 0x0bf2
+
+TODIGIT   < 0x0be7 - 0x0bef : 0x0001 >
+
+
+/*
+ * U+0C00 - U+0C7F : Telugu
+ */
+
+DIGIT     0x0c66 - 0x0c6f
+GRAPH     0x0c01 - 0x0c03  0x0c05 - 0x0c0c  0x0c0e - 0x0c10  0x0c12 - 0x0c28
+GRAPH     0x0c2a - 0x0c33  0x0c35 - 0x0c39  0x0c3e - 0x0c44  0x0c46 - 0x0c48
+GRAPH     0x0c4a - 0x0c4d  0x0c55  0x0c56  0x0c60  0x0c61  0x0c66 - 0x0c6f
+PRINT     0x0c01 - 0x0c03  0x0c05 - 0x0c0c  0x0c0e - 0x0c10  0x0c12 - 0x0c28
+PRINT     0x0c2a - 0x0c33  0x0c35 - 0x0c39  0x0c3e - 0x0c44  0x0c46 - 0x0c48
+PRINT     0x0c4a - 0x0c4d  0x0c55  0x0c56  0x0c60  0x0c61  0x0c66 - 0x0c6f
+
+TODIGIT   < 0x0c66 - 0x0c6f : 0x0000 >
+
+
+/*
+ * U+0C80 - U+0CFF : Kannada
+ */
+
+DIGIT     0x0ce6 - 0x0cef
+GRAPH     0x0c82  0x0c83  0x0c85 - 0x0c8c  0x0c8e - 0x0c90  0x0c92 - 0x0ca8
+GRAPH     0x0caa - 0x0cb3  0x0cb5 - 0x0cb9  0x0cbe - 0x0cc4  0x0cc6 - 0x0cc8
+GRAPH     0x0cca - 0x0ccd  0x0cd5  0x0cd6  0x0cde  0x0ce0  0x0ce1  0x0ce6 - 0x0cef
+PRINT     0x0c82  0x0c83  0x0c85 - 0x0c8c  0x0c8e - 0x0c90  0x0c92 - 0x0ca8
+PRINT     0x0caa - 0x0cb3  0x0cb5 - 0x0cb9  0x0cbe - 0x0cc4  0x0cc6 - 0x0cc8
+PRINT     0x0cca - 0x0ccd  0x0cd5  0x0cd6  0x0cde  0x0ce0  0x0ce1  0x0ce6 - 0x0cef
+
+TODIGIT   < 0x0ce6 - 0x0cef : 0x0000 >
+
+
+/*
+ * U+0D00 - U+0D7F : Malayalam
+ */
+
+DIGIT     0x0d66 - 0x0d6f
+GRAPH     0x0d02  0x0d03  0x0d05 - 0x0d0c  0x0d0e - 0x0d10  0x0d12 - 0x0d28
+GRAPH     0x0d2a - 0x0d39  0x0d3e - 0x0d43  0x0d46 - 0x0d48  0x0d4a - 0x0d4d
+GRAPH     0x0d57  0x0d60  0x0d61  0x0d66 - 0x0d6f
+PRINT     0x0d02  0x0d03  0x0d05 - 0x0d0c  0x0d0e - 0x0d10  0x0d12 - 0x0d28
+PRINT     0x0d2a - 0x0d39  0x0d3e - 0x0d43  0x0d46 - 0x0d48  0x0d4a - 0x0d4d
+PRINT     0x0d57  0x0d60  0x0d61  0x0d66 - 0x0d6f
+
+TODIGIT   < 0x0d66 - 0x0d6f : 0x0000 >
+
+
+/*
+ * U+0D80 - U+0DFF : Sinhala
+ */
+
+GRAPH     0x0d82  0x0d83  0x0d85 - 0x0d96  0x0d9a - 0x0db1  0x0db3 - 0x0dbb
+GRAPH     0x0dbd  0x0dc0 - 0x0dc6  0x0dca  0x0dcf - 0x0dd4  0x0dd6  0x0dd8 - 0x0ddf
+GRAPH     0x0df2 - 0x0df4
+PUNCT     0x0df4
+PRINT     0x0d82  0x0d83  0x0d85 - 0x0d96  0x0d9a - 0x0db1  0x0db3 - 0x0dbb
+PRINT     0x0dbd  0x0dc0 - 0x0dc6  0x0dca  0x0dcf - 0x0dd4  0x0dd6  0x0dd8 - 0x0ddf
+PRINT     0x0df2 - 0x0df4
+
+
+/*
+ * U+0E00 - U+0E7F : Thai
+ */
+
+DIGIT     0x0e50 - 0x0e59
+GRAPH     0x0e01 - 0x0e3a  0x0e3f - 0x0e5b
+PUNCT     0x0e3f  0x0e4f  0x0e5a  0x0e5b
+PRINT     0x0e01 - 0x0e3a  0x0e3f - 0x0e5b
+
+TODIGIT   < 0x0e50 - 0x0e59 : 0x0000 >
+
+
+/*
+ * U+0E80 - U+0EFF : Lao
+ */
+
+DIGIT     0x0ed0 - 0x0ed9
+GRAPH     0x0e81  0x0e82  0x0e84  0x0e87  0x0e88  0x0e8a  0x0e8d  0x0e94 - 0x0e97
+GRAPH     0x0e99 - 0x0e9f  0x0ea1 - 0x0ea3  0x0ea5  0x0ea7  0x0eaa  0x0eab
+GRAPH     0x0ead - 0x0eb9  0x0ebb - 0x0ebd  0x0ec0 - 0x0ec4  0x0ec6  0x0ec8 - 0x0ecd
+GRAPH     0x0ed0 - 0x0ed9  0x0edc  0x0edd
+PRINT     0x0e81  0x0e82  0x0e84  0x0e87  0x0e88  0x0e8a  0x0e8d  0x0e94 - 0x0e97
+PRINT     0x0e99 - 0x0e9f  0x0ea1 - 0x0ea3  0x0ea5  0x0ea7  0x0eaa  0x0eab
+PRINT     0x0ead - 0x0eb9  0x0ebb - 0x0ebd  0x0ec0 - 0x0ec4  0x0ec6  0x0ec8 - 0x0ecd
+PRINT     0x0ed0 - 0x0ed9  0x0edc  0x0edd
+
+TODIGIT   < 0x0ed0 - 0x0ed9 : 0x0000 >
+
+
+/*
+ * U+0F00 - U+0FFF : Tibetan
+ */
+
+DIGIT     0x0f20 - 0x0f29
+GRAPH     0x0f00 - 0x0f47  0x0f49 - 0x0f6a  0x0f71 - 0x0f8b  0x0f90 - 0x0f97
+GRAPH     0x0f99 - 0x0fbc  0x0fbe - 0x0fcc  0x0fcf
+PUNCT     0x0f01 - 0x0f17  0x0f1a - 0x0f1f  0x0f34  0x0f36  0x0f38  0x0f3a - 0x0f3d
+PUNCT     0x0f85  0x0fbe - 0x0fc5  0x0fc7 - 0x0fcc  0x0fcf
+PRINT     0x0f00 - 0x0f47  0x0f49 - 0x0f6a  0x0f71 - 0x0f8b  0x0f90 - 0x0f97
+PRINT     0x0f99 - 0x0fbc  0x0fbe - 0x0fcc  0x0fcf
+SPECIAL   0x0f2a - 0x0f33
+PHONOGRAM 0x0f00
+
+TODIGIT   < 0x0f20 - 0x0f29 : 0x0000 >
+
+
+/*
+ * U+1000 - U+109F : Myanmar
+ */
+
+DIGIT     0x1040 - 0x1049
+GRAPH     0x1000 - 0x1021  0x1023 - 0x1027  0x1029  0x102a  0x102c - 0x1032
+GRAPH     0x1036 - 0x1039  0x1040 - 0x1059
+PUNCT     0x104a - 0x104f
+PRINT     0x1000 - 0x1021  0x1023 - 0x1027  0x1029  0x102a  0x102c - 0x1032
+PRINT     0x1036 - 0x1039  0x1040 - 0x1059
+
+TODIGIT   < 0x1040 - 0x1049 : 0x0000 >
+
+
+/*
+ * U+10A0 - U+10FF : Georgian
+ */
+
+ALPHA     0x10a0 - 0x10c5
+GRAPH     0x10a0 - 0x10c5  0x10d0 - 0x10f8  0x10fb
+PUNCT     0x10fb
+UPPER     0x10a0 - 0x10c5
+PRINT     0x10a0 - 0x10c5  0x10d0 - 0x10f8  0x10fb
+
+
+/*
+ * U+1100 - U+11FF : Hangul Jamo
+ */
+
+GRAPH     0x1100 - 0x1159  0x115f - 0x11a2  0x11a8 - 0x11f9
+PRINT     0x1100 - 0x1159  0x115f - 0x11a2  0x11a8 - 0x11f9
+
+
+/*
+ * U+1200 - U+137F : Ethiopic
+ */
+
+DIGIT     0x1369 - 0x1371
+GRAPH     0x1200 - 0x1206  0x1208 - 0x1246  0x1248  0x124a - 0x124d  0x1250 - 0x1256
+GRAPH     0x1258  0x125a - 0x125d  0x1260 - 0x1286  0x1288  0x128a - 0x128d
+GRAPH     0x1290 - 0x12ae  0x12b0  0x12b2 - 0x12b5  0x12b8 - 0x12be  0x12c0
+GRAPH     0x12c2 - 0x12c5  0x12c8 - 0x12ce  0x12d0 - 0x12d6  0x12d8 - 0x12ee
+GRAPH     0x12f0 - 0x130e  0x1310  0x1312 - 0x1315  0x1318 - 0x131e  0x1320 - 0x1346
+GRAPH     0x1348 - 0x135a  0x1361 - 0x137c
+PUNCT     0x1361 - 0x1368
+PRINT     0x1200 - 0x1206  0x1208 - 0x1246  0x1248  0x124a - 0x124d  0x1250 - 0x1256
+PRINT     0x1258  0x125a - 0x125d  0x1260 - 0x1286  0x1288  0x128a - 0x128d
+PRINT     0x1290 - 0x12ae  0x12b0  0x12b2 - 0x12b5  0x12b8 - 0x12be  0x12c0
+PRINT     0x12c2 - 0x12c5  0x12c8 - 0x12ce  0x12d0 - 0x12d6  0x12d8 - 0x12ee
+PRINT     0x12f0 - 0x130e  0x1310  0x1312 - 0x1315  0x1318 - 0x131e  0x1320 - 0x1346
+PRINT     0x1348 - 0x135a  0x1361 - 0x137c
+SPECIAL   0x1372 - 0x137c
+PHONOGRAM 0x1200 - 0x1206  0x1208 - 0x1246  0x1248  0x124a - 0x124d  0x1250 - 0x1256
+PHONOGRAM 0x1258  0x125a - 0x125d  0x1260 - 0x1286  0x1288  0x128a - 0x128d
+PHONOGRAM 0x1290 - 0x12ae  0x12b0  0x12b2 - 0x12b5  0x12b8 - 0x12be  0x12c0
+PHONOGRAM 0x12c2 - 0x12c5  0x12c8 - 0x12ce  0x12d0 - 0x12d6  0x12d8 - 0x12ee
+PHONOGRAM 0x12f0 - 0x130e  0x1310  0x1312 - 0x1315  0x1318 - 0x131e  0x1320 - 0x1346
+PHONOGRAM 0x1348 - 0x135a
+
+TODIGIT   < 0x1369 - 0x1371 : 0x0001 >
+
+
+/*
+ * U+13A0 - U+13FF : Cherokee
+ */
+
+GRAPH     0x13a0 - 0x13f4
+PRINT     0x13a0 - 0x13f4
+
+
+/*
+ * U+1400 - U+167F : Unified Canadian Aboriginal Syllabics
+ */
+
+GRAPH     0x1401 - 0x1676
+PUNCT     0x166d  0x166e
+PRINT     0x1401 - 0x1676
+PHONOGRAM 0x1401 - 0x166c  0x166f - 0x1676
+
+
+/*
+ * U+1680 - U+169F : Ogham
+ */
+
+GRAPH     0x1681 - 0x169c
+PUNCT     0x169b  0x169c
+SPACE     0x1680
+BLANK     0x1680
+PRINT     0x1680 - 0x169c
+
+
+/*
+ * U+16A0 - U+16FF : Runic
+ */
+
+GRAPH     0x16a0 - 0x16f0
+PUNCT     0x16eb - 0x16ed
+PRINT     0x16a0 - 0x16f0
+SPECIAL   0x16ee - 0x16f0
+
+
+/*
+ * U+1700 - U+171F : Tagalog
+ */
+
+GRAPH     0x1700 - 0x170c  0x170e - 0x1714
+PRINT     0x1700 - 0x170c  0x170e - 0x1714
+
+
+/*
+ * U+1720 - U+173F : Hanunoo
+ */
+
+GRAPH     0x1720 - 0x1736
+PUNCT     0x1735  0x1736
+PRINT     0x1720 - 0x1736
+
+
+/*
+ * U+1740 - U+175F : Buhid
+ */
+
+GRAPH     0x1740 - 0x1753
+PRINT     0x1740 - 0x1753
+
+
+/*
+ * U+1760 - U+177F : Tagbanwa
+ */
+
+GRAPH     0x1760 - 0x176c  0x176e - 0x1770  0x1772  0x1773
+PRINT     0x1760 - 0x176c  0x176e - 0x1770  0x1772  0x1773
+
+
+/*
+ * U+1780 - U+17FF : Khmer
+ */
+
+DIGIT     0x17e0 - 0x17e9
+GRAPH     0x1780 - 0x17dc  0x17e0 - 0x17e9
+PUNCT     0x17d4 - 0x17d6  0x17d8 - 0x17db
+PRINT     0x1780 - 0x17dc  0x17e0 - 0x17e9
+
+TODIGIT   < 0x17e0 - 0x17e9 : 0x0000 >
+
+
+/*
+ * U+1800 - U+18AF : Mongolian
+ */
+
+CONTROL   0x180e
+DIGIT     0x1810 - 0x1819
+GRAPH     0x1800 - 0x180d  0x1810 - 0x1819  0x1820 - 0x1877  0x1880 - 0x18a9
+PUNCT     0x1800 - 0x180a
+PRINT     0x1800 - 0x180d  0x1810 - 0x1819  0x1820 - 0x1877  0x1880 - 0x18a9
+
+TODIGIT   < 0x1810 - 0x1819 : 0x0000 >
+
+
+/*
+ * U+1E00 - U+1EFF : Latin Extended Additional
+ */
+
+ALPHA     0x1e00 - 0x1e9b  0x1ea0 - 0x1ef9
+GRAPH     0x1e00 - 0x1e9b  0x1ea0 - 0x1ef9
+LOWER     0x1e01  0x1e03  0x1e05  0x1e07  0x1e09  0x1e0b  0x1e0d  0x1e0f
+LOWER     0x1e11  0x1e13  0x1e15  0x1e17  0x1e19  0x1e1b  0x1e1d  0x1e1f
+LOWER     0x1e21  0x1e23  0x1e25  0x1e27  0x1e29  0x1e2b  0x1e2d  0x1e2f
+LOWER     0x1e31  0x1e33  0x1e35  0x1e37  0x1e39  0x1e3b  0x1e3d  0x1e3f
+LOWER     0x1e41  0x1e43  0x1e45  0x1e47  0x1e49  0x1e4b  0x1e4d  0x1e4f
+LOWER     0x1e51  0x1e53  0x1e55  0x1e57  0x1e59  0x1e5b  0x1e5d  0x1e5f
+LOWER     0x1e61  0x1e63  0x1e65  0x1e67  0x1e69  0x1e6b  0x1e6d  0x1e6f
+LOWER     0x1e71  0x1e73  0x1e75  0x1e77  0x1e79  0x1e7b  0x1e7d  0x1e7f
+LOWER     0x1e81  0x1e83  0x1e85  0x1e87  0x1e89  0x1e8b  0x1e8d  0x1e8f
+LOWER     0x1e91  0x1e93  0x1e95 - 0x1e9b  0x1ea1  0x1ea3  0x1ea5  0x1ea7
+LOWER     0x1ea9  0x1eab  0x1ead  0x1eaf  0x1eb1  0x1eb3  0x1eb5  0x1eb7
+LOWER     0x1eb9  0x1ebb  0x1ebd  0x1ebf  0x1ec1  0x1ec3  0x1ec5  0x1ec7
+LOWER     0x1ec9  0x1ecb  0x1ecd  0x1ecf  0x1ed1  0x1ed3  0x1ed5  0x1ed7
+LOWER     0x1ed9  0x1edb  0x1edd  0x1edf  0x1ee1  0x1ee3  0x1ee5  0x1ee7
+LOWER     0x1ee9  0x1eeb  0x1eed  0x1eef  0x1ef1  0x1ef3  0x1ef5  0x1ef7
+LOWER     0x1ef9
+UPPER     0x1e00  0x1e02  0x1e04  0x1e06  0x1e08  0x1e0a  0x1e0c  0x1e0e
+UPPER     0x1e10  0x1e12  0x1e14  0x1e16  0x1e18  0x1e1a  0x1e1c  0x1e1e
+UPPER     0x1e20  0x1e22  0x1e24  0x1e26  0x1e28  0x1e2a  0x1e2c  0x1e2e
+UPPER     0x1e30  0x1e32  0x1e34  0x1e36  0x1e38  0x1e3a  0x1e3c  0x1e3e
+UPPER     0x1e40  0x1e42  0x1e44  0x1e46  0x1e48  0x1e4a  0x1e4c  0x1e4e
+UPPER     0x1e50  0x1e52  0x1e54  0x1e56  0x1e58  0x1e5a  0x1e5c  0x1e5e
+UPPER     0x1e60  0x1e62  0x1e64  0x1e66  0x1e68  0x1e6a  0x1e6c  0x1e6e
+UPPER     0x1e70  0x1e72  0x1e74  0x1e76  0x1e78  0x1e7a  0x1e7c  0x1e7e
+UPPER     0x1e80  0x1e82  0x1e84  0x1e86  0x1e88  0x1e8a  0x1e8c  0x1e8e
+UPPER     0x1e90  0x1e92  0x1e94  0x1ea0  0x1ea2  0x1ea4  0x1ea6  0x1ea8
+UPPER     0x1eaa  0x1eac  0x1eae  0x1eb0  0x1eb2  0x1eb4  0x1eb6  0x1eb8
+UPPER     0x1eba  0x1ebc  0x1ebe  0x1ec0  0x1ec2  0x1ec4  0x1ec6  0x1ec8
+UPPER     0x1eca  0x1ecc  0x1ece  0x1ed0  0x1ed2  0x1ed4  0x1ed6  0x1ed8
+UPPER     0x1eda  0x1edc  0x1ede  0x1ee0  0x1ee2  0x1ee4  0x1ee6  0x1ee8
+UPPER     0x1eea  0x1eec  0x1eee  0x1ef0  0x1ef2  0x1ef4  0x1ef6  0x1ef8
+PRINT     0x1e00 - 0x1e9b  0x1ea0 - 0x1ef9
+
+MAPUPPER  < 0x1e01 0x1e00 >
+MAPUPPER  < 0x1e03 0x1e02 >
+MAPUPPER  < 0x1e05 0x1e04 >
+MAPUPPER  < 0x1e07 0x1e06 >
+MAPUPPER  < 0x1e09 0x1e08 >
+MAPUPPER  < 0x1e0b 0x1e0a >
+MAPUPPER  < 0x1e0d 0x1e0c >
+MAPUPPER  < 0x1e0f 0x1e0e >
+MAPUPPER  < 0x1e11 0x1e10 >
+MAPUPPER  < 0x1e13 0x1e12 >
+MAPUPPER  < 0x1e15 0x1e14 >
+MAPUPPER  < 0x1e17 0x1e16 >
+MAPUPPER  < 0x1e19 0x1e18 >
+MAPUPPER  < 0x1e1b 0x1e1a >
+MAPUPPER  < 0x1e1d 0x1e1c >
+MAPUPPER  < 0x1e1f 0x1e1e >
+MAPUPPER  < 0x1e21 0x1e20 >
+MAPUPPER  < 0x1e23 0x1e22 >
+MAPUPPER  < 0x1e25 0x1e24 >
+MAPUPPER  < 0x1e27 0x1e26 >
+MAPUPPER  < 0x1e29 0x1e28 >
+MAPUPPER  < 0x1e2b 0x1e2a >
+MAPUPPER  < 0x1e2d 0x1e2c >
+MAPUPPER  < 0x1e2f 0x1e2e >
+MAPUPPER  < 0x1e31 0x1e30 >
+MAPUPPER  < 0x1e33 0x1e32 >
+MAPUPPER  < 0x1e35 0x1e34 >
+MAPUPPER  < 0x1e37 0x1e36 >
+MAPUPPER  < 0x1e39 0x1e38 >
+MAPUPPER  < 0x1e3b 0x1e3a >
+MAPUPPER  < 0x1e3d 0x1e3c >
+MAPUPPER  < 0x1e3f 0x1e3e >
+MAPUPPER  < 0x1e41 0x1e40 >
+MAPUPPER  < 0x1e43 0x1e42 >
+MAPUPPER  < 0x1e45 0x1e44 >
+MAPUPPER  < 0x1e47 0x1e46 >
+MAPUPPER  < 0x1e49 0x1e48 >
+MAPUPPER  < 0x1e4b 0x1e4a >
+MAPUPPER  < 0x1e4d 0x1e4c >
+MAPUPPER  < 0x1e4f 0x1e4e >
+MAPUPPER  < 0x1e51 0x1e50 >
+MAPUPPER  < 0x1e53 0x1e52 >
+MAPUPPER  < 0x1e55 0x1e54 >
+MAPUPPER  < 0x1e57 0x1e56 >
+MAPUPPER  < 0x1e59 0x1e58 >
+MAPUPPER  < 0x1e5b 0x1e5a >
+MAPUPPER  < 0x1e5d 0x1e5c >
+MAPUPPER  < 0x1e5f 0x1e5e >
+MAPUPPER  < 0x1e61 0x1e60 >
+MAPUPPER  < 0x1e63 0x1e62 >
+MAPUPPER  < 0x1e65 0x1e64 >
+MAPUPPER  < 0x1e67 0x1e66 >
+MAPUPPER  < 0x1e69 0x1e68 >
+MAPUPPER  < 0x1e6b 0x1e6a >
+MAPUPPER  < 0x1e6d 0x1e6c >
+MAPUPPER  < 0x1e6f 0x1e6e >
+MAPUPPER  < 0x1e71 0x1e70 >
+MAPUPPER  < 0x1e73 0x1e72 >
+MAPUPPER  < 0x1e75 0x1e74 >
+MAPUPPER  < 0x1e77 0x1e76 >
+MAPUPPER  < 0x1e79 0x1e78 >
+MAPUPPER  < 0x1e7b 0x1e7a >
+MAPUPPER  < 0x1e7d 0x1e7c >
+MAPUPPER  < 0x1e7f 0x1e7e >
+MAPUPPER  < 0x1e81 0x1e80 >
+MAPUPPER  < 0x1e83 0x1e82 >
+MAPUPPER  < 0x1e85 0x1e84 >
+MAPUPPER  < 0x1e87 0x1e86 >
+MAPUPPER  < 0x1e89 0x1e88 >
+MAPUPPER  < 0x1e8b 0x1e8a >
+MAPUPPER  < 0x1e8d 0x1e8c >
+MAPUPPER  < 0x1e8f 0x1e8e >
+MAPUPPER  < 0x1e91 0x1e90 >
+MAPUPPER  < 0x1e93 0x1e92 >
+MAPUPPER  < 0x1e95 0x1e94 >
+MAPUPPER  < 0x1e9b 0x1e60 >
+MAPUPPER  < 0x1ea1 0x1ea0 >
+MAPUPPER  < 0x1ea3 0x1ea2 >
+MAPUPPER  < 0x1ea5 0x1ea4 >
+MAPUPPER  < 0x1ea7 0x1ea6 >
+MAPUPPER  < 0x1ea9 0x1ea8 >
+MAPUPPER  < 0x1eab 0x1eaa >
+MAPUPPER  < 0x1ead 0x1eac >
+MAPUPPER  < 0x1eaf 0x1eae >
+MAPUPPER  < 0x1eb1 0x1eb0 >
+MAPUPPER  < 0x1eb3 0x1eb2 >
+MAPUPPER  < 0x1eb5 0x1eb4 >
+MAPUPPER  < 0x1eb7 0x1eb6 >
+MAPUPPER  < 0x1eb9 0x1eb8 >
+MAPUPPER  < 0x1ebb 0x1eba >
+MAPUPPER  < 0x1ebd 0x1ebc >
+MAPUPPER  < 0x1ebf 0x1ebe >
+MAPUPPER  < 0x1ec1 0x1ec0 >
+MAPUPPER  < 0x1ec3 0x1ec2 >
+MAPUPPER  < 0x1ec5 0x1ec4 >
+MAPUPPER  < 0x1ec7 0x1ec6 >
+MAPUPPER  < 0x1ec9 0x1ec8 >
+MAPUPPER  < 0x1ecb 0x1eca >
+MAPUPPER  < 0x1ecd 0x1ecc >
+MAPUPPER  < 0x1ecf 0x1ece >
+MAPUPPER  < 0x1ed1 0x1ed0 >
+MAPUPPER  < 0x1ed3 0x1ed2 >
+MAPUPPER  < 0x1ed5 0x1ed4 >
+MAPUPPER  < 0x1ed7 0x1ed6 >
+MAPUPPER  < 0x1ed9 0x1ed8 >
+MAPUPPER  < 0x1edb 0x1eda >
+MAPUPPER  < 0x1edd 0x1edc >
+MAPUPPER  < 0x1edf 0x1ede >
+MAPUPPER  < 0x1ee1 0x1ee0 >
+MAPUPPER  < 0x1ee3 0x1ee2 >
+MAPUPPER  < 0x1ee5 0x1ee4 >
+MAPUPPER  < 0x1ee7 0x1ee6 >
+MAPUPPER  < 0x1ee9 0x1ee8 >
+MAPUPPER  < 0x1eeb 0x1eea >
+MAPUPPER  < 0x1eed 0x1eec >
+MAPUPPER  < 0x1eef 0x1eee >
+MAPUPPER  < 0x1ef1 0x1ef0 >
+MAPUPPER  < 0x1ef3 0x1ef2 >
+MAPUPPER  < 0x1ef5 0x1ef4 >
+MAPUPPER  < 0x1ef7 0x1ef6 >
+MAPUPPER  < 0x1ef9 0x1ef8 >
+MAPLOWER  < 0x1e00 0x1e01 >
+MAPLOWER  < 0x1e02 0x1e03 >
+MAPLOWER  < 0x1e04 0x1e05 >
+MAPLOWER  < 0x1e06 0x1e07 >
+MAPLOWER  < 0x1e08 0x1e09 >
+MAPLOWER  < 0x1e0a 0x1e0b >
+MAPLOWER  < 0x1e0c 0x1e0d >
+MAPLOWER  < 0x1e0e 0x1e0f >
+MAPLOWER  < 0x1e10 0x1e11 >
+MAPLOWER  < 0x1e12 0x1e13 >
+MAPLOWER  < 0x1e14 0x1e15 >
+MAPLOWER  < 0x1e16 0x1e17 >
+MAPLOWER  < 0x1e18 0x1e19 >
+MAPLOWER  < 0x1e1a 0x1e1b >
+MAPLOWER  < 0x1e1c 0x1e1d >
+MAPLOWER  < 0x1e1e 0x1e1f >
+MAPLOWER  < 0x1e20 0x1e21 >
+MAPLOWER  < 0x1e22 0x1e23 >
+MAPLOWER  < 0x1e24 0x1e25 >
+MAPLOWER  < 0x1e26 0x1e27 >
+MAPLOWER  < 0x1e28 0x1e29 >
+MAPLOWER  < 0x1e2a 0x1e2b >
+MAPLOWER  < 0x1e2c 0x1e2d >
+MAPLOWER  < 0x1e2e 0x1e2f >
+MAPLOWER  < 0x1e30 0x1e31 >
+MAPLOWER  < 0x1e32 0x1e33 >
+MAPLOWER  < 0x1e34 0x1e35 >
+MAPLOWER  < 0x1e36 0x1e37 >
+MAPLOWER  < 0x1e38 0x1e39 >
+MAPLOWER  < 0x1e3a 0x1e3b >
+MAPLOWER  < 0x1e3c 0x1e3d >
+MAPLOWER  < 0x1e3e 0x1e3f >
+MAPLOWER  < 0x1e40 0x1e41 >
+MAPLOWER  < 0x1e42 0x1e43 >
+MAPLOWER  < 0x1e44 0x1e45 >
+MAPLOWER  < 0x1e46 0x1e47 >
+MAPLOWER  < 0x1e48 0x1e49 >
+MAPLOWER  < 0x1e4a 0x1e4b >
+MAPLOWER  < 0x1e4c 0x1e4d >
+MAPLOWER  < 0x1e4e 0x1e4f >
+MAPLOWER  < 0x1e50 0x1e51 >
+MAPLOWER  < 0x1e52 0x1e53 >
+MAPLOWER  < 0x1e54 0x1e55 >
+MAPLOWER  < 0x1e56 0x1e57 >
+MAPLOWER  < 0x1e58 0x1e59 >
+MAPLOWER  < 0x1e5a 0x1e5b >
+MAPLOWER  < 0x1e5c 0x1e5d >
+MAPLOWER  < 0x1e5e 0x1e5f >
+MAPLOWER  < 0x1e60 0x1e61 >
+MAPLOWER  < 0x1e62 0x1e63 >
+MAPLOWER  < 0x1e64 0x1e65 >
+MAPLOWER  < 0x1e66 0x1e67 >
+MAPLOWER  < 0x1e68 0x1e69 >
+MAPLOWER  < 0x1e6a 0x1e6b >
+MAPLOWER  < 0x1e6c 0x1e6d >
+MAPLOWER  < 0x1e6e 0x1e6f >
+MAPLOWER  < 0x1e70 0x1e71 >
+MAPLOWER  < 0x1e72 0x1e73 >
+MAPLOWER  < 0x1e74 0x1e75 >
+MAPLOWER  < 0x1e76 0x1e77 >
+MAPLOWER  < 0x1e78 0x1e79 >
+MAPLOWER  < 0x1e7a 0x1e7b >
+MAPLOWER  < 0x1e7c 0x1e7d >
+MAPLOWER  < 0x1e7e 0x1e7f >
+MAPLOWER  < 0x1e80 0x1e81 >
+MAPLOWER  < 0x1e82 0x1e83 >
+MAPLOWER  < 0x1e84 0x1e85 >
+MAPLOWER  < 0x1e86 0x1e87 >
+MAPLOWER  < 0x1e88 0x1e89 >
+MAPLOWER  < 0x1e8a 0x1e8b >
+MAPLOWER  < 0x1e8c 0x1e8d >
+MAPLOWER  < 0x1e8e 0x1e8f >
+MAPLOWER  < 0x1e90 0x1e91 >
+MAPLOWER  < 0x1e92 0x1e93 >
+MAPLOWER  < 0x1e94 0x1e95 >
+MAPLOWER  < 0x1ea0 0x1ea1 >
+MAPLOWER  < 0x1ea2 0x1ea3 >
+MAPLOWER  < 0x1ea4 0x1ea5 >
+MAPLOWER  < 0x1ea6 0x1ea7 >
+MAPLOWER  < 0x1ea8 0x1ea9 >
+MAPLOWER  < 0x1eaa 0x1eab >
+MAPLOWER  < 0x1eac 0x1ead >
+MAPLOWER  < 0x1eae 0x1eaf >
+MAPLOWER  < 0x1eb0 0x1eb1 >
+MAPLOWER  < 0x1eb2 0x1eb3 >
+MAPLOWER  < 0x1eb4 0x1eb5 >
+MAPLOWER  < 0x1eb6 0x1eb7 >
+MAPLOWER  < 0x1eb8 0x1eb9 >
+MAPLOWER  < 0x1eba 0x1ebb >
+MAPLOWER  < 0x1ebc 0x1ebd >
+MAPLOWER  < 0x1ebe 0x1ebf >
+MAPLOWER  < 0x1ec0 0x1ec1 >
+MAPLOWER  < 0x1ec2 0x1ec3 >
+MAPLOWER  < 0x1ec4 0x1ec5 >
+MAPLOWER  < 0x1ec6 0x1ec7 >
+MAPLOWER  < 0x1ec8 0x1ec9 >
+MAPLOWER  < 0x1eca 0x1ecb >
+MAPLOWER  < 0x1ecc 0x1ecd >
+MAPLOWER  < 0x1ece 0x1ecf >
+MAPLOWER  < 0x1ed0 0x1ed1 >
+MAPLOWER  < 0x1ed2 0x1ed3 >
+MAPLOWER  < 0x1ed4 0x1ed5 >
+MAPLOWER  < 0x1ed6 0x1ed7 >
+MAPLOWER  < 0x1ed8 0x1ed9 >
+MAPLOWER  < 0x1eda 0x1edb >
+MAPLOWER  < 0x1edc 0x1edd >
+MAPLOWER  < 0x1ede 0x1edf >
+MAPLOWER  < 0x1ee0 0x1ee1 >
+MAPLOWER  < 0x1ee2 0x1ee3 >
+MAPLOWER  < 0x1ee4 0x1ee5 >
+MAPLOWER  < 0x1ee6 0x1ee7 >
+MAPLOWER  < 0x1ee8 0x1ee9 >
+MAPLOWER  < 0x1eea 0x1eeb >
+MAPLOWER  < 0x1eec 0x1eed >
+MAPLOWER  < 0x1eee 0x1eef >
+MAPLOWER  < 0x1ef0 0x1ef1 >
+MAPLOWER  < 0x1ef2 0x1ef3 >
+MAPLOWER  < 0x1ef4 0x1ef5 >
+MAPLOWER  < 0x1ef6 0x1ef7 >
+MAPLOWER  < 0x1ef8 0x1ef9 >
+
+
+/*
+ * U+1F00 - U+1FFF : Greek Extended
+ */
+
+ALPHA     0x1f00 - 0x1f15  0x1f18 - 0x1f1d  0x1f20 - 0x1f45  0x1f48 - 0x1f4d
+ALPHA     0x1f50 - 0x1f57  0x1f59  0x1f5b  0x1f5d  0x1f5f - 0x1f7d  0x1f80 - 0x1fb4
+ALPHA     0x1fb6 - 0x1fbc  0x1fbe  0x1fc2 - 0x1fc4  0x1fc6 - 0x1fcc  0x1fd0 - 0x1fd3
+ALPHA     0x1fd6 - 0x1fdb  0x1fe0 - 0x1fec  0x1ff2 - 0x1ff4  0x1ff6 - 0x1ffc
+GRAPH     0x1f00 - 0x1f15  0x1f18 - 0x1f1d  0x1f20 - 0x1f45  0x1f48 - 0x1f4d
+GRAPH     0x1f50 - 0x1f57  0x1f59  0x1f5b  0x1f5d  0x1f5f - 0x1f7d  0x1f80 - 0x1fb4
+GRAPH     0x1fb6 - 0x1fc4  0x1fc6 - 0x1fd3  0x1fd6 - 0x1fdb  0x1fdd - 0x1fef
+GRAPH     0x1ff2 - 0x1ff4  0x1ff6 - 0x1ffe
+LOWER     0x1f00 - 0x1f07  0x1f10 - 0x1f15  0x1f20 - 0x1f27  0x1f30 - 0x1f37
+LOWER     0x1f40 - 0x1f45  0x1f50 - 0x1f57  0x1f60 - 0x1f67  0x1f70 - 0x1f7d
+LOWER     0x1f80 - 0x1f87  0x1f90 - 0x1f97  0x1fa0 - 0x1fa7  0x1fb0 - 0x1fb4
+LOWER     0x1fb6  0x1fb7  0x1fbe  0x1fc2 - 0x1fc4  0x1fc6  0x1fc7  0x1fd0 - 0x1fd3
+LOWER     0x1fd6  0x1fd7  0x1fe0 - 0x1fe7  0x1ff2 - 0x1ff4  0x1ff6  0x1ff7
+PUNCT     0x1fbd  0x1fbf - 0x1fc1  0x1fcd - 0x1fcf  0x1fdd - 0x1fdf  0x1fed - 0x1fef
+PUNCT     0x1ffd  0x1ffe
+UPPER     0x1f08 - 0x1f0f  0x1f18 - 0x1f1d  0x1f28 - 0x1f2f  0x1f38 - 0x1f3f
+UPPER     0x1f48 - 0x1f4d  0x1f59  0x1f5b  0x1f5d  0x1f5f  0x1f68 - 0x1f6f
+UPPER     0x1fb8 - 0x1fbb  0x1fc8 - 0x1fcb  0x1fd8 - 0x1fdb  0x1fe8 - 0x1fec
+UPPER     0x1ff8 - 0x1ffb
+PRINT     0x1f00 - 0x1f15  0x1f18 - 0x1f1d  0x1f20 - 0x1f45  0x1f48 - 0x1f4d
+PRINT     0x1f50 - 0x1f57  0x1f59  0x1f5b  0x1f5d  0x1f5f - 0x1f7d  0x1f80 - 0x1fb4
+PRINT     0x1fb6 - 0x1fc4  0x1fc6 - 0x1fd3  0x1fd6 - 0x1fdb  0x1fdd - 0x1fef
+PRINT     0x1ff2 - 0x1ff4  0x1ff6 - 0x1ffe
+
+MAPUPPER  < 0x1f00 - 0x1f07 : 0x1f08 >
+MAPUPPER  < 0x1f10 - 0x1f15 : 0x1f18 >
+MAPUPPER  < 0x1f20 - 0x1f27 : 0x1f28 >
+MAPUPPER  < 0x1f30 - 0x1f37 : 0x1f38 >
+MAPUPPER  < 0x1f40 - 0x1f45 : 0x1f48 >
+MAPUPPER  < 0x1f51 0x1f59 >
+MAPUPPER  < 0x1f53 0x1f5b >
+MAPUPPER  < 0x1f55 0x1f5d >
+MAPUPPER  < 0x1f57 0x1f5f >
+MAPUPPER  < 0x1f60 - 0x1f67 : 0x1f68 >
+MAPUPPER  < 0x1f70 - 0x1f71 : 0x1fba >
+MAPUPPER  < 0x1f72 - 0x1f75 : 0x1fc8 >
+MAPUPPER  < 0x1f76 - 0x1f77 : 0x1fda >
+MAPUPPER  < 0x1f78 - 0x1f79 : 0x1ff8 >
+MAPUPPER  < 0x1f7a - 0x1f7b : 0x1fea >
+MAPUPPER  < 0x1f7c - 0x1f7d : 0x1ffa >
+MAPUPPER  < 0x1f80 - 0x1f87 : 0x1f88 >
+MAPUPPER  < 0x1f90 - 0x1f97 : 0x1f98 >
+MAPUPPER  < 0x1fa0 - 0x1fa7 : 0x1fa8 >
+MAPUPPER  < 0x1fb0 - 0x1fb1 : 0x1fb8 >
+MAPUPPER  < 0x1fb3 0x1fbc >
+MAPUPPER  < 0x1fbe 0x0399 >
+MAPUPPER  < 0x1fc3 0x1fcc >
+MAPUPPER  < 0x1fd0 - 0x1fd1 : 0x1fd8 >
+MAPUPPER  < 0x1fe0 - 0x1fe1 : 0x1fe8 >
+MAPUPPER  < 0x1fe5 0x1fec >
+MAPUPPER  < 0x1ff3 0x1ffc >
+MAPLOWER  < 0x1f08 - 0x1f0f : 0x1f00 >
+MAPLOWER  < 0x1f18 - 0x1f1d : 0x1f10 >
+MAPLOWER  < 0x1f28 - 0x1f2f : 0x1f20 >
+MAPLOWER  < 0x1f38 - 0x1f3f : 0x1f30 >
+MAPLOWER  < 0x1f48 - 0x1f4d : 0x1f40 >
+MAPLOWER  < 0x1f59 0x1f51 >
+MAPLOWER  < 0x1f5b 0x1f53 >
+MAPLOWER  < 0x1f5d 0x1f55 >
+MAPLOWER  < 0x1f5f 0x1f57 >
+MAPLOWER  < 0x1f68 - 0x1f6f : 0x1f60 >
+MAPLOWER  < 0x1f88 - 0x1f8f : 0x1f80 >
+MAPLOWER  < 0x1f98 - 0x1f9f : 0x1f90 >
+MAPLOWER  < 0x1fa8 - 0x1faf : 0x1fa0 >
+MAPLOWER  < 0x1fb8 - 0x1fb9 : 0x1fb0 >
+MAPLOWER  < 0x1fba - 0x1fbb : 0x1f70 >
+MAPLOWER  < 0x1fbc 0x1fb3 >
+MAPLOWER  < 0x1fc8 - 0x1fcb : 0x1f72 >
+MAPLOWER  < 0x1fcc 0x1fc3 >
+MAPLOWER  < 0x1fd8 - 0x1fd9 : 0x1fd0 >
+MAPLOWER  < 0x1fda - 0x1fdb : 0x1f76 >
+MAPLOWER  < 0x1fe8 - 0x1fe9 : 0x1fe0 >
+MAPLOWER  < 0x1fea - 0x1feb : 0x1f7a >
+MAPLOWER  < 0x1fec 0x1fe5 >
+MAPLOWER  < 0x1ff8 - 0x1ff9 : 0x1f78 >
+MAPLOWER  < 0x1ffa - 0x1ffb : 0x1f7c >
+MAPLOWER  < 0x1ffc 0x1ff3 >
+
+
+/*
+ * U+2000 - U+206F : General Punctuation
+ */
+
+CONTROL   0x200c - 0x200f  0x202a - 0x202e  0x2060 - 0x2063  0x206a - 0x206f
+GRAPH     0x2010 - 0x2027  0x2030 - 0x2052  0x2057
+PUNCT     0x2010 - 0x2027  0x2030 - 0x2052  0x2057
+SPACE     0x2000 - 0x200b  0x2028  0x2029  0x202f  0x205f
+BLANK     0x2000 - 0x200b  0x202f  0x205f
+PRINT     0x2000 - 0x200b  0x2010 - 0x2029  0x202f - 0x2052  0x2057  0x205f
+
+
+/*
+ * U+2070 - U+209F : Superscripts and Subscripts
+ */
+
+ALPHA     0x2071  0x207f
+GRAPH     0x2070  0x2071  0x2074 - 0x208e
+LOWER     0x2071  0x207f
+PUNCT     0x207a - 0x207e  0x208a - 0x208e
+PRINT     0x2070  0x2071  0x2074 - 0x208e
+SPECIAL   0x2070  0x2074 - 0x2079  0x2080 - 0x2089
+
+TODIGIT   < 0x2070 0x0000 >
+TODIGIT   < 0x2074 - 0x2079 : 0x0004 >
+TODIGIT   < 0x2080 - 0x2089 : 0x0000 >
+
+
+/*
+ * U+20A0 - U+20CF : Currency Symbols
+ */
+
+GRAPH     0x20a0 - 0x20b1
+PUNCT     0x20a0 - 0x20b1
+PRINT     0x20a0 - 0x20b1
+
+
+/*
+ * U+20D0 - U+20FF : Combining Diacritical Marks for Symbols
+ */
+
+GRAPH     0x20d0 - 0x20ea
+PRINT     0x20d0 - 0x20ea
+
+
+/*
+ * U+2100 - U+214F : Letterlike Symbols
+ */
+
+ALPHA     0x2102  0x2107  0x210a - 0x2113  0x2115  0x2119 - 0x211d  0x2124
+ALPHA     0x2126  0x2128  0x212a - 0x212d  0x212f - 0x2131  0x2133  0x2134
+ALPHA     0x2139  0x213d - 0x213f  0x2145 - 0x2149
+GRAPH     0x2100 - 0x213a  0x213d - 0x214b
+LOWER     0x210a  0x210e  0x210f  0x2113  0x212f  0x2134  0x2139  0x213d
+LOWER     0x2146 - 0x2149
+PUNCT     0x2100  0x2101  0x2103 - 0x2106  0x2108  0x2109  0x2114  0x2116 - 0x2118
+PUNCT     0x211e - 0x2123  0x2125  0x2127  0x2129  0x212e  0x2132  0x213a
+PUNCT     0x2140 - 0x2144  0x214a  0x214b
+UPPER     0x2102  0x2107  0x210b - 0x210d  0x2110 - 0x2112  0x2115  0x2119 - 0x211d
+UPPER     0x2124  0x2126  0x2128  0x212a - 0x212d  0x2130  0x2131  0x2133
+UPPER     0x213e  0x213f  0x2145
+PRINT     0x2100 - 0x213a  0x213d - 0x214b
+
+MAPLOWER  < 0x2126 0x03c9 >
+MAPLOWER  < 0x212a 'k' >
+MAPLOWER  < 0x212b 0x00e5 >
+
+
+/*
+ * U+2150 - U+218F : Number Forms
+ */
+
+GRAPH     0x2153 - 0x2183
+PRINT     0x2153 - 0x2183
+SPECIAL   0x2153 - 0x2183
+
+MAPUPPER  < 0x2170 - 0x217f : 0x2160 >
+MAPLOWER  < 0x2160 - 0x216f : 0x2170 >
+
+
+/*
+ * U+2190 - U+21FF : Arrows
+ */
+
+GRAPH     0x2190 - 0x21ff
+PUNCT     0x2190 - 0x21ff
+PRINT     0x2190 - 0x21ff
+
+
+/*
+ * U+2200 - U+22FF : Mathematical Operators
+ */
+
+GRAPH     0x2200 - 0x22ff
+PUNCT     0x2200 - 0x22ff
+PRINT     0x2200 - 0x22ff
+
+
+/*
+ * U+2300 - U+23FF : Miscellaneous Technical
+ */
+
+GRAPH     0x2300 - 0x23ce
+PUNCT     0x2300 - 0x23ce
+PRINT     0x2300 - 0x23ce
+
+
+/*
+ * U+2400 - U+243F : Control Pictures
+ */
+
+GRAPH     0x2400 - 0x2426
+PUNCT     0x2400 - 0x2426
+PRINT     0x2400 - 0x2426
+
+
+/*
+ * U+2440 - U+245F : Optical Character Recognition
+ */
+
+GRAPH     0x2440 - 0x244a
+PUNCT     0x2440 - 0x244a
+PRINT     0x2440 - 0x244a
+
+
+/*
+ * U+2460 - U+24FF : Enclosed Alphanumerics
+ */
+
+GRAPH     0x2460 - 0x24fe
+PUNCT     0x249c - 0x24e9
+PRINT     0x2460 - 0x24fe
+SPECIAL   0x2460 - 0x249b  0x24ea - 0x24fe
+
+MAPUPPER  < 0x24d0 - 0x24e9 : 0x24b6 >
+MAPLOWER  < 0x24b6 - 0x24cf : 0x24d0 >
+
+
+/*
+ * U+2500 - U+257F : Box Drawing
+ */
+
+GRAPH     0x2500 - 0x257f
+PUNCT     0x2500 - 0x257f
+PRINT     0x2500 - 0x257f
+
+
+/*
+ * U+2580 - U+259F : Block Elements
+ */
+
+GRAPH     0x2580 - 0x259f
+PUNCT     0x2580 - 0x259f
+PRINT     0x2580 - 0x259f
+
+
+/*
+ * U+25A0 - U+25FF : Geometric Shapes
+ */
+
+GRAPH     0x25a0 - 0x25ff
+PUNCT     0x25a0 - 0x25ff
+PRINT     0x25a0 - 0x25ff
+
+
+/*
+ * U+2600 - U+26FF : Miscellaneous Symbols
+ */
+
+GRAPH     0x2600 - 0x2613  0x2616  0x2617  0x2619 - 0x267d  0x2680 - 0x2689
+PUNCT     0x2600 - 0x2613  0x2616  0x2617  0x2619 - 0x267d  0x2680 - 0x2689
+PRINT     0x2600 - 0x2613  0x2616  0x2617  0x2619 - 0x267d  0x2680 - 0x2689
+
+
+/*
+ * U+2700 - U+27BF : Dingbats
+ */
+
+GRAPH     0x2701 - 0x2704  0x2706 - 0x2709  0x270c - 0x2727  0x2729 - 0x274b
+GRAPH     0x274d  0x274f - 0x2752  0x2756  0x2758 - 0x275e  0x2761 - 0x2794
+GRAPH     0x2798 - 0x27af  0x27b1 - 0x27be
+PUNCT     0x2701 - 0x2704  0x2706 - 0x2709  0x270c - 0x2727  0x2729 - 0x274b
+PUNCT     0x274d  0x274f - 0x2752  0x2756  0x2758 - 0x275e  0x2761 - 0x2775
+PUNCT     0x2794  0x2798 - 0x27af  0x27b1 - 0x27be
+PRINT     0x2701 - 0x2704  0x2706 - 0x2709  0x270c - 0x2727  0x2729 - 0x274b
+PRINT     0x274d  0x274f - 0x2752  0x2756  0x2758 - 0x275e  0x2761 - 0x2794
+PRINT     0x2798 - 0x27af  0x27b1 - 0x27be
+SPECIAL   0x2776 - 0x2793
+
+
+/*
+ * U+27C0 - U+27EF : Miscellaneous Mathematical Symbols-A
+ */
+
+GRAPH     0x27d0 - 0x27eb
+PUNCT     0x27d0 - 0x27eb
+PRINT     0x27d0 - 0x27eb
+
+
+/*
+ * U+27F0 - U+27FF : Supplemental Arrows-A
+ */
+
+GRAPH     0x27f0 - 0x27ff
+PUNCT     0x27f0 - 0x27ff
+PRINT     0x27f0 - 0x27ff
+
+
+/*
+ * U+2800 - U+28FF : Braille Patterns
+ */
+
+GRAPH     0x2800 - 0x28ff
+PUNCT     0x2800 - 0x28ff
+PRINT     0x2800 - 0x28ff
+
+
+/*
+ * U+2900 - U+297F : Supplemental Arrows-B
+ */
+
+GRAPH     0x2900 - 0x297f
+PUNCT     0x2900 - 0x297f
+PRINT     0x2900 - 0x297f
+
+
+/*
+ * U+2980 - U+29FF : Miscellaneous Mathematical Symbols-B
+ */
+
+GRAPH     0x2980 - 0x29ff
+PUNCT     0x2980 - 0x29ff
+PRINT     0x2980 - 0x29ff
+
+
+/*
+ * U+2A00 - U+2AFF : Supplemental Mathematical Operators
+ */
+
+GRAPH     0x2a00 - 0x2aff
+PUNCT     0x2a00 - 0x2aff
+PRINT     0x2a00 - 0x2aff
+
+
+/*
+ * U+2E80 - U+2EFF : CJK Radicals Supplement
+ */
+
+GRAPH     0x2e80 - 0x2e99  0x2e9b - 0x2ef3
+PUNCT     0x2e80 - 0x2e99  0x2e9b - 0x2ef3
+PRINT     0x2e80 - 0x2e99  0x2e9b - 0x2ef3
+
+
+/*
+ * U+2F00 - U+2FDF : Kangxi Radicals
+ */
+
+GRAPH     0x2f00 - 0x2fd5
+PUNCT     0x2f00 - 0x2fd5
+PRINT     0x2f00 - 0x2fd5
+
+
+/*
+ * U+2FF0 - U+2FFF : Ideographic Description Characters
+ */
+
+GRAPH     0x2ff0 - 0x2ffb
+PUNCT     0x2ff0 - 0x2ffb
+PRINT     0x2ff0 - 0x2ffb
+
+
+/*
+ * U+3000 - U+303F : CJK Symbols and Punctuation
+ */
+
+GRAPH     0x3001 - 0x303f
+PUNCT     0x3001 - 0x3004  0x3008 - 0x3020  0x3030  0x3036  0x3037  0x303d - 0x303f
+SPACE     0x3000
+BLANK     0x3000
+PRINT     0x3000 - 0x303f
+IDEOGRAM  0x3006
+SPECIAL   0x3007  0x3021 - 0x3029  0x3038 - 0x303a
+
+
+/*
+ * U+3040 - U+309F : Hiragana
+ */
+
+GRAPH     0x3041 - 0x3096  0x3099 - 0x309f
+PUNCT     0x309b  0x309c
+PRINT     0x3041 - 0x3096  0x3099 - 0x309f
+PHONOGRAM 0x3041 - 0x3096  0x309f
+
+
+/*
+ * U+30A0 - U+30FF : Katakana
+ */
+
+GRAPH     0x30a0 - 0x30ff
+PUNCT     0x30a0  0x30fb
+PRINT     0x30a0 - 0x30ff
+PHONOGRAM 0x30a1 - 0x30fa  0x30ff
+
+
+/*
+ * U+3100 - U+312F : Bopomofo
+ */
+
+GRAPH     0x3105 - 0x312c
+PRINT     0x3105 - 0x312c
+
+
+/*
+ * U+3130 - U+318F : Hangul Compatibility Jamo
+ */
+
+GRAPH     0x3131 - 0x318e
+PRINT     0x3131 - 0x318e
+PHONOGRAM 0x3131 - 0x3163  0x3165 - 0x318e
+
+
+/*
+ * U+3190 - U+319F : Kanbun
+ */
+
+GRAPH     0x3190 - 0x319f
+PUNCT     0x3190  0x3191  0x3196 - 0x319f
+PRINT     0x3190 - 0x319f
+SPECIAL   0x3192 - 0x3195
+
+
+/*
+ * U+31A0 - U+31BF : Bopomofo Extended
+ */
+
+GRAPH     0x31a0 - 0x31b7
+PRINT     0x31a0 - 0x31b7
+
+
+/*
+ * U+31F0 - U+31FF : Katakana Phonetic Extensions
+ */
+
+GRAPH     0x31f0 - 0x31ff
+PRINT     0x31f0 - 0x31ff
+PHONOGRAM 0x31f0 - 0x31ff
+
+
+/*
+ * U+3200 - U+32FF : Enclosed CJK Letters and Months
+ */
+
+GRAPH     0x3200 - 0x321c  0x3220 - 0x3243  0x3251 - 0x327b  0x327f - 0x32cb
+GRAPH     0x32d0 - 0x32fe
+PUNCT     0x3200 - 0x321c  0x322a - 0x3243  0x3260 - 0x327b  0x327f  0x328a - 0x32b0
+PUNCT     0x32c0 - 0x32cb  0x32d0 - 0x32fe
+PRINT     0x3200 - 0x321c  0x3220 - 0x3243  0x3251 - 0x327b  0x327f - 0x32cb
+PRINT     0x32d0 - 0x32fe
+SPECIAL   0x3220 - 0x3229  0x3251 - 0x325f  0x3280 - 0x3289  0x32b1 - 0x32bf
+
+
+/*
+ * U+3300 - U+33FF : CJK Compatibility
+ */
+
+GRAPH     0x3300 - 0x3376  0x337b - 0x33dd  0x33e0 - 0x33fe
+PUNCT     0x3300 - 0x3376  0x337b - 0x33dd  0x33e0 - 0x33fe
+PRINT     0x3300 - 0x3376  0x337b - 0x33dd  0x33e0 - 0x33fe
+
+
+/*
+ * U+3400 - U+4DBF : CJK Unified Ideographs Extension A
+ */
+
+GRAPH     0x3400 - 0x4db5
+PRINT     0x3400 - 0x4db5
+IDEOGRAM  0x3400 - 0x4db5
+
+
+/*
+ * U+4E00 - U+9FFF : CJK Unified Ideographs
+ */
+
+GRAPH     0x4e00 - 0x9fa5
+PRINT     0x4e00 - 0x9fa5
+IDEOGRAM  0x4e00 - 0x9fa5
+
+
+/*
+ * U+A000 - U+A48F : Yi Syllables
+ */
+
+GRAPH     0xa000 - 0xa48c
+PRINT     0xa000 - 0xa48c
+PHONOGRAM 0xa000 - 0xa48c
+
+
+/*
+ * U+A490 - U+A4CF : Yi Radicals
+ */
+
+GRAPH     0xa490 - 0xa4c6
+PUNCT     0xa490 - 0xa4c6
+PRINT     0xa490 - 0xa4c6
+
+
+/*
+ * U+AC00 - U+D7AF : Hangul Syllables
+ */
+
+GRAPH     0xac00 - 0xd7a3
+PRINT     0xac00 - 0xd7a3
+PHONOGRAM 0xac00 - 0xd7a3
+
+
+/*
+ * U+D800 - U+DB7F : High Surrogates
+ */
+
+PRINT     0xd800 - 0xdb7f
+
+
+/*
+ * U+DB80 - U+DBFF : High Private Use Surrogates
+ */
+
+PRINT     0xdb80 - 0xdbff
+
+
+/*
+ * U+DC00 - U+DFFF : Low Surrogates
+ */
+
+PRINT     0xdc00 - 0xdfff
+
+
+/*
+ * U+E000 - U+F8FF : Private Use Area
+ */
+
+GRAPH     0xe000 - 0xf8ff
+PRINT     0xe000 - 0xf8ff
+
+
+/*
+ * U+F900 - U+FAFF : CJK Compatibility Ideographs
+ */
+
+GRAPH     0xf900 - 0xfa2d  0xfa30 - 0xfa6a
+PRINT     0xf900 - 0xfa2d  0xfa30 - 0xfa6a
+IDEOGRAM  0xf900 - 0xfa2d  0xfa30 - 0xfa6a
+
+
+/*
+ * U+FB00 - U+FB4F : Alphabetic Presentation Forms
+ */
+
+ALPHA     0xfb00 - 0xfb06  0xfb13 - 0xfb17
+GRAPH     0xfb00 - 0xfb06  0xfb13 - 0xfb17  0xfb1d - 0xfb36  0xfb38 - 0xfb3c
+GRAPH     0xfb3e  0xfb40  0xfb41  0xfb43  0xfb44  0xfb46 - 0xfb4f
+LOWER     0xfb00 - 0xfb06  0xfb13 - 0xfb17
+PUNCT     0xfb29
+PRINT     0xfb00 - 0xfb06  0xfb13 - 0xfb17  0xfb1d - 0xfb36  0xfb38 - 0xfb3c
+PRINT     0xfb3e  0xfb40  0xfb41  0xfb43  0xfb44  0xfb46 - 0xfb4f
+
+
+/*
+ * U+FB50 - U+FDFF : Arabic Presentation Forms-A
+ */
+
+GRAPH     0xfb50 - 0xfbb1  0xfbd3 - 0xfd3f  0xfd50 - 0xfd8f  0xfd92 - 0xfdc7
+GRAPH     0xfdf0 - 0xfdfc
+PUNCT     0xfd3e  0xfd3f  0xfdfc
+PRINT     0xfb50 - 0xfbb1  0xfbd3 - 0xfd3f  0xfd50 - 0xfd8f  0xfd92 - 0xfdc7
+PRINT     0xfdf0 - 0xfdfc
+
+
+/*
+ * U+FE00 - U+FE0F : Variation Selectors
+ */
+
+GRAPH     0xfe00 - 0xfe0f
+PRINT     0xfe00 - 0xfe0f
+
+
+/*
+ * U+FE20 - U+FE2F : Combining Half Marks
+ */
+
+GRAPH     0xfe20 - 0xfe23
+PRINT     0xfe20 - 0xfe23
+
+
+/*
+ * U+FE30 - U+FE4F : CJK Compatibility Forms
+ */
+
+GRAPH     0xfe30 - 0xfe46  0xfe49 - 0xfe4f
+PUNCT     0xfe30 - 0xfe46  0xfe49 - 0xfe4f
+PRINT     0xfe30 - 0xfe46  0xfe49 - 0xfe4f
+
+
+/*
+ * U+FE50 - U+FE6F : Small Form Variants
+ */
+
+GRAPH     0xfe50 - 0xfe52  0xfe54 - 0xfe66  0xfe68 - 0xfe6b
+PUNCT     0xfe50 - 0xfe52  0xfe54 - 0xfe66  0xfe68 - 0xfe6b
+PRINT     0xfe50 - 0xfe52  0xfe54 - 0xfe66  0xfe68 - 0xfe6b
+
+
+/*
+ * U+FE70 - U+FEFF : Arabic Presentation Forms-B
+ */
+
+CONTROL   0xfeff
+GRAPH     0xfe70 - 0xfe74  0xfe76 - 0xfefc
+PRINT     0xfe70 - 0xfe74  0xfe76 - 0xfefc
+
+
+/*
+ * U+FF00 - U+FFEF : Halfwidth and Fullwidth Forms
+ */
+
+ALPHA     0xff21 - 0xff3a  0xff41 - 0xff5a
+DIGIT     0xff10 - 0xff19
+GRAPH     0xff01 - 0xffbe  0xffc2 - 0xffc7  0xffca - 0xffcf  0xffd2 - 0xffd7
+GRAPH     0xffda - 0xffdc  0xffe0 - 0xffe6  0xffe8 - 0xffee
+LOWER     0xff41 - 0xff5a
+PUNCT     0xff01 - 0xff0f  0xff1a - 0xff20  0xff3b - 0xff40  0xff5b - 0xff65
+PUNCT     0xffe0 - 0xffe6  0xffe8 - 0xffee
+UPPER     0xff21 - 0xff3a
+PRINT     0xff01 - 0xffbe  0xffc2 - 0xffc7  0xffca - 0xffcf  0xffd2 - 0xffd7
+PRINT     0xffda - 0xffdc  0xffe0 - 0xffe6  0xffe8 - 0xffee
+PHONOGRAM 0xff66 - 0xff6f  0xff71 - 0xff9d  0xffa1 - 0xffbe  0xffc2 - 0xffc7
+PHONOGRAM 0xffca - 0xffcf  0xffd2 - 0xffd7  0xffda - 0xffdc
+
+MAPUPPER  < 0xff41 - 0xff5a : 0xff21 >
+MAPLOWER  < 0xff21 - 0xff3a : 0xff41 >
+TODIGIT   < 0xff10 - 0xff19 : 0x0000 >
+
+
+/*
+ * U+FFF0 - U+FFFF : Specials
+ */
+
+CONTROL   0xfff9 - 0xfffb
+GRAPH     0xfffc  0xfffd
+PUNCT     0xfffc  0xfffd
+PRINT     0xfffc  0xfffd
diff -ruN share.orig/monetdef/Makefile share/monetdef/Makefile
--- share.orig/monetdef/Makefile	Sun Apr  7 15:22:05 2002
+++ share/monetdef/Makefile	Fri Jun 21 03:17:02 2002
@@ -16,6 +16,7 @@
 		en_GB.ISO8859-1 \
 		en_NZ.ISO8859-1 \
 		en_US.ISO8859-1 \
+		en_US.UTF-8 \
 		es_ES.ISO8859-1 \
 		et_EE.ISO8859-15 \
 		fi_FI.ISO8859-1 \
@@ -84,5 +85,9 @@
 .endfor
 	ln -sf ../ja_JP.eucJP/LC_MONETARY \
 		${LOCALEDIR}/ja_JP.SJIS/LC_MONETARY
+	ln -sf ../ja_JP.eucJP/LC_MONETARY \
+		${LOCALEDIR}/ja_JP.UTF-8/LC_MONETARY
+	ln -sf ../ko_KR.eucKR/LC_MONETARY \
+		${LOCALEDIR}/ko_KR.UTF-8/LC_MONETARY
 
 .include <bsd.prog.mk>
diff -ruN share.orig/monetdef/en_US.UTF-8.src share/monetdef/en_US.UTF-8.src
--- share.orig/monetdef/en_US.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/monetdef/en_US.UTF-8.src	Fri Jun 21 03:15:57 2002
@@ -0,0 +1,36 @@
+# $FreeBSD: src/share/monetdef/en_US.ISO8859-1.src,v 1.7 2001/02/19 18:55:34 phantom Exp $
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# int_curr_symbol (last character always SPACE)
+USD 
+# currency_symbol
+$
+# mon_decimal_point
+.
+# mon_thousands_sep
+,
+# mon_grouping, separated by ;
+3;3
+# positive_sign
+
+# negative_sign
+-
+# int_frac_digits
+2
+# frac_digits
+2
+# p_cs_precedes
+1
+# p_sep_by_space
+0
+# n_cs_precedes
+1
+# n_sep_by_space
+0
+# p_sign_posn
+1
+# n_sign_posn
+1
+# EOF
diff -ruN share.orig/msgdef/Makefile share/msgdef/Makefile
--- share.orig/msgdef/Makefile	Sun Apr  7 15:22:05 2002
+++ share/msgdef/Makefile	Fri Jun 21 03:19:55 2002
@@ -12,6 +12,7 @@
 		en_CA.ISO8859-1 \
 		en_GB.ISO8859-1 \
 		en_US.ISO8859-1 \
+		en_US.UTF-8 \
 		es_ES.ISO8859-1 \
 		et_EE.ISO8859-15 \
 		fi_FI.ISO8859-1 \
@@ -37,8 +38,10 @@
 		uk_UA.ISO8859-5 \
 		uk_UA.KOI8-U \
 		ko_KR.eucKR \
+		ko_KR.UTF-8 \
 		ja_JP.eucJP \
 		ja_JP.SJIS \
+		ja_JP.UTF-8 \
 		zh_TW.Big5 \
 		zh_CN.eucCN
 
diff -ruN share.orig/msgdef/en_US.UTF-8.src share/msgdef/en_US.UTF-8.src
--- share.orig/msgdef/en_US.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/msgdef/en_US.UTF-8.src	Fri Jun 21 03:19:23 2002
@@ -0,0 +1,10 @@
+# $FreeBSD: src/share/msgdef/en_US.ISO8859-1.src,v 1.2 2001/02/08 22:45:44 asmodai Exp $
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# yesexpr
+^[yYsS].*
+# noexpr
+^[nN].*
+# EOF
diff -ruN share.orig/msgdef/ja_JP.UTF-8.src share/msgdef/ja_JP.UTF-8.src
--- share.orig/msgdef/ja_JP.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/msgdef/ja_JP.UTF-8.src	Fri Jun 21 03:18:48 2002
@@ -0,0 +1,10 @@
+# $FreeBSD: src/share/msgdef/ja_JP.eucJP.src,v 1.1 2001/02/11 16:19:42 knu Exp $
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# yesexpr
+^[yYyYはハ].*
+# noexpr
+^[nNnNいイ].*
+# EOF
diff -ruN share.orig/msgdef/ko_KR.UTF-8.src share/msgdef/ko_KR.UTF-8.src
--- share.orig/msgdef/ko_KR.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/msgdef/ko_KR.UTF-8.src	Fri Jun 21 03:19:02 2002
@@ -0,0 +1,10 @@
+# $FreeBSD: src/share/msgdef/ko_KR.eucKR.src,v 1.1 2001/02/11 15:39:59 asmodai Exp $
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# yesexpr
+^[sSyY].*
+# noexpr
+^[nN].*
+# EOF
diff -ruN share.orig/numericdef/Makefile share/numericdef/Makefile
--- share.orig/numericdef/Makefile	Sun Apr  7 15:22:05 2002
+++ share/numericdef/Makefile	Fri Jun 21 03:22:11 2002
@@ -21,6 +21,7 @@
 		is_IS.ISO8859-1 \
 		it_IT.ISO8859-1 \
 		ja_JP.eucJP \
+		ko_KR.UTF-8 \
 		ko_KR.eucKR \
 		nl_NL.ISO8859-1 \
 		no_NO.ISO8859-1 \
@@ -116,5 +117,9 @@
 .endfor
 	ln -sf ../ja_JP.eucJP/LC_NUMERIC \
 		${LOCALEDIR}/ja_JP.SJIS/LC_NUMERIC
+	ln -sf ../ja_JP.eucJP/LC_NUMERIC \
+		${LOCALEDIR}/ja_JP.UTF-8/LC_NUMERIC
+	ln -sf ../ko_KR.eucKR/LC_NUMERIC \
+		${LOCALEDIR}/ko_KR.UTF-8/LC_NUMERIC
 
 .include <bsd.prog.mk>
diff -ruN share.orig/numericdef/en_US.UTF-8.src share/numericdef/en_US.UTF-8.src
--- share.orig/numericdef/en_US.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/numericdef/en_US.UTF-8.src	Fri Jun 21 03:22:35 2002
@@ -0,0 +1,12 @@
+# $FreeBSD: src/share/numericdef/en_US.ISO8859-1.src,v 1.4 2001/02/10 19:06:32 ache Exp $
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# decimal_point
+.
+# thousands_sep
+,
+# grouping, separated by ;
+3;3
+# EOF
diff -ruN share.orig/timedef/Makefile share/timedef/Makefile
--- share.orig/timedef/Makefile	Sun Apr  7 15:22:05 2002
+++ share/timedef/Makefile	Fri Jun 21 03:25:37 2002
@@ -11,6 +11,7 @@
 		el_GR.ISO8859-7 \
 		en_GB.ISO8859-1 \
 		en_US.ISO8859-1 \
+		en_US.UTF-8 \
 		es_ES.ISO8859-1 \
 		et_EE.ISO8859-15 \
 		fi_FI.ISO8859-1 \
@@ -21,7 +22,9 @@
 		is_IS.ISO8859-1 \
 		ja_JP.eucJP \
 		ja_JP.SJIS \
+		ja_JP.UTF-8 \
 		it_IT.ISO8859-1 \
+		ko_KR.UTF-8 \
 		ko_KR.eucKR \
 		la_LN.ISO8859-1 \
 		lt_LT.ISO8859-4 \
diff -ruN share.orig/timedef/en_US.UTF-8.src share/timedef/en_US.UTF-8.src
--- share.orig/timedef/en_US.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/timedef/en_US.UTF-8.src	Fri Jun 21 03:25:01 2002
@@ -0,0 +1,102 @@
+# $FreeBSD: src/share/timedef/en_US.ISO8859-1.src,v 1.9 2001/03/21 13:52:11 ache Exp $
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# Short month names
+#
+Jan
+Feb
+Mar
+Apr
+May
+Jun
+Jul
+Aug
+Sep
+Oct
+Nov
+Dec
+#
+# Long month names
+#
+January
+February
+March
+April
+May
+June
+July
+August
+September
+October
+November
+December
+#
+# Short weekday names
+#
+Sun
+Mon
+Tue
+Wed
+Thu
+Fri
+Sat
+#
+# Long weekday names
+#
+Sunday
+Monday
+Tuesday
+Wednesday
+Thursday
+Friday
+Saturday
+#
+# X_fmt
+#
+%H:%M:%S
+#
+# x_fmt
+#
+%m/%d/%Y
+#
+# c_fmt
+#
+%a %b %e %X %Y
+#
+# am
+#
+AM
+#
+# pm
+#
+PM
+#
+# date_fmt
+#
+%a %b %e %X %Z %Y
+#
+# Long months names (alternative)
+#
+January
+February
+March
+April
+May
+June
+July
+August
+September
+October
+November
+December
+#
+# md_order
+#
+md
+#
+# ampm_fmt
+#
+%I:%M:%S %p
+# EOF
diff -ruN share.orig/timedef/ja_JP.UTF-8.src share/timedef/ja_JP.UTF-8.src
--- share.orig/timedef/ja_JP.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/timedef/ja_JP.UTF-8.src	Fri Jun 21 03:24:40 2002
@@ -0,0 +1,105 @@
+# $FreeBSD: src/share/timedef/ja_JP.eucJP.src,v 1.10 2001/03/21 23:24:41 ache Exp $
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# Short month names
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+#
+# Long month names
+#
+1月
+2月
+3月
+4月
+5月
+6月
+7月
+8月
+9月
+10月
+11月
+12月
+#
+# Short weekday names
+#
+日
+月
+火
+水
+木
+金
+土
+#
+# Long weekday names
+#
+日曜日
+月曜日
+火曜日
+水曜日
+木曜日
+金曜日
+土曜日
+#
+# X_fmt
+#
+%H時%M分%S秒
+#
+# x_fmt
+#
+%Y/%m/%d
+#
+# c_fmt
+#
+# just following tradition...
+# %a %b %e %H:%M:%S %Y
+%a %b/%e %T %Y
+#
+# am
+#
+#午前
+AM
+#
+# pm
+#
+#午後
+PM
+#
+# date_fmt
+#
+%Y年 %B%e日 %A %X %Z
+#
+# Long months names (alternative)
+#
+1月
+2月
+3月
+4月
+5月
+6月
+7月
+8月
+9月
+10月
+11月
+12月
+#
+# md_order
+#
+md
+#
+# ampm_fmt
+#
+%I:%M:%S %p
+# EOF
diff -ruN share.orig/timedef/ko_KR.UTF-8.src share/timedef/ko_KR.UTF-8.src
--- share.orig/timedef/ko_KR.UTF-8.src	Thu Jan  1 09:00:00 1970
+++ share/timedef/ko_KR.UTF-8.src	Thu Jun 20 05:28:46 2002
@@ -0,0 +1,108 @@
+# $FreeBSD: src/share/timedef/ko_KR.eucKR.src,v 1.12 2001/03/21 23:24:41 ache Exp $
+#
+# Originally by CHOI Junho <cjh@FreeBSD.org>
+# 27 Mar 1997
+#
+# WARNING: spaces may be essential at the end of lines
+# WARNING: empty lines are essential too
+#
+# Short month names
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+#
+# Long month names
+#
+1월
+2월
+3월
+4월
+5월
+6월
+7월
+8월
+9월
+10월
+11월
+12월
+#
+# Short weekday names
+#
+일
+월
+화
+수
+목
+금
+토
+#
+# Long weekday names
+#
+일요일
+월요일
+화요일
+수요일
+목요일
+금요일
+토요일
+#
+# X_fmt
+#
+%H시 %M분 %S초
+#
+# x_fmt
+#
+%Y/%m/%d
+#
+# c_fmt
+#
+# just following tradition...
+# %Y년 %b월 %e일 %a요일 %X
+%a %b/%e %H:%M:%S %Y
+#
+# am
+#
+#오전
+AM
+#
+# pm
+#
+#오후
+PM
+#
+# date_fmt
+#
+%Y년 %B %e일 %A %X %Z
+#
+# Long months names (alternative)
+#
+1월
+2월
+3월
+4월
+5월
+6월
+7월
+8월
+9월
+10월
+11월
+12월
+#
+# md_order
+#
+md
+#
+# ampm_fmt
+#
+%I:%M:%S %p
+# EOF

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-i18n" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206201849.g5KIn8Th085686>