Use G_N_ELEMENTS rather than a custom macro.
authorOwen Taylor <otaylor@redhat.com>
Mon, 2 Jul 2001 00:49:21 +0000 (00:49 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Mon, 2 Jul 2001 00:49:21 +0000 (00:49 +0000)
Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>

* glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
rather than a custom macro.

* glib/gen-unicode-tables.pl: Adapt to changes in table
formats for Unicode 3.1

* glib/gunicode.h glib/guniprop.c glib/gunichartables.h
  glib/gen-unicode-tables.pl: Add case conversion functions
        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.

* tests/unicode-caseconv.c tests/gen-casefold-txt.pl
  tests/gen-casemap-txt.pl tests/casefold.txt
  tests/casemap.txt: Test cases for case conversion.

* glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
  glib/gen-unicode-tables.pl: Add function to do Unicode
        normalization g_utf8_normalize().

* tests/unicode-normalize.c: Test program for case conversion.

* glib/gunicode.h glib/gunicollate.c: Add collation functions
g_utf8_collate, g_utf8_collate_key.

* test/unicode-collate.c: Test program for collation.

* glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
variable.

* glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
Make work with UTF-8 even if the locale isn't UTF-8 based.
Still somewhat of broken, if the format string contains
characters not representable in the current locale, will warn
and not work.

* glib/gdate.c: Use UTF-8 normalization and casefolding.

32 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
docs/Changes-2.0.txt
docs/reference/glib/tmpl/glib-unused.sgml
docs/reference/glib/tmpl/main.sgml
glib/Makefile.am
glib/gdate.c
glib/gen-unicode-tables.pl
glib/giochannel.c
glib/gunibreak.h
glib/gunichartables.h
glib/gunicode.h
glib/gunicollate.c [new file with mode: 0644]
glib/gunicomp.h [new file with mode: 0644]
glib/gunidecomp.c
glib/gunidecomp.h
glib/guniprop.c
tests/.cvsignore
tests/Makefile.am
tests/casefold.txt [new file with mode: 0644]
tests/casemap.txt [new file with mode: 0644]
tests/gen-casefold-txt.pl [new file with mode: 0755]
tests/gen-casemap-txt.pl [new file with mode: 0755]
tests/unicode-caseconv.c [new file with mode: 0644]
tests/unicode-collate.c [new file with mode: 0644]
tests/unicode-normalize.c [new file with mode: 0644]

index 8aa4ca6..5223eb4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,41 @@
+Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
+       rather than a custom macro.
+
+       * glib/gen-unicode-tables.pl: Adapt to changes in table
+       formats for Unicode 3.1
+
+       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
+         glib/gen-unicode-tables.pl: Add case conversion functions
+        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
+
+       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
+         tests/gen-casemap-txt.pl tests/casefold.txt 
+         tests/casemap.txt: Test cases for case conversion.
+
+       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
+         glib/gen-unicode-tables.pl: Add function to do Unicode
+        normalization g_utf8_normalize().
+
+       * tests/unicode-normalize.c: Test program for case conversion.
+
+       * glib/gunicode.h glib/gunicollate.c: Add collation functions
+       g_utf8_collate, g_utf8_collate_key.
+
+       * test/unicode-collate.c: Test program for collation.
+
+       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
+       variable.
+
+       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
+       Make work with UTF-8 even if the locale isn't UTF-8 based.
+       Still somewhat of broken, if the format string contains 
+       characters not representable in the current locale, will warn
+       and not work.
+       
+       * glib/gdate.c: Use UTF-8 normalization and casefolding.
+
 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
 
        * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
index 8aa4ca6..5223eb4 100644 (file)
@@ -1,3 +1,41 @@
+Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
+       rather than a custom macro.
+
+       * glib/gen-unicode-tables.pl: Adapt to changes in table
+       formats for Unicode 3.1
+
+       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
+         glib/gen-unicode-tables.pl: Add case conversion functions
+        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
+
+       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
+         tests/gen-casemap-txt.pl tests/casefold.txt 
+         tests/casemap.txt: Test cases for case conversion.
+
+       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
+         glib/gen-unicode-tables.pl: Add function to do Unicode
+        normalization g_utf8_normalize().
+
+       * tests/unicode-normalize.c: Test program for case conversion.
+
+       * glib/gunicode.h glib/gunicollate.c: Add collation functions
+       g_utf8_collate, g_utf8_collate_key.
+
+       * test/unicode-collate.c: Test program for collation.
+
+       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
+       variable.
+
+       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
+       Make work with UTF-8 even if the locale isn't UTF-8 based.
+       Still somewhat of broken, if the format string contains 
+       characters not representable in the current locale, will warn
+       and not work.
+       
+       * glib/gdate.c: Use UTF-8 normalization and casefolding.
+
 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
 
        * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
index 8aa4ca6..5223eb4 100644 (file)
@@ -1,3 +1,41 @@
+Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
+       rather than a custom macro.
+
+       * glib/gen-unicode-tables.pl: Adapt to changes in table
+       formats for Unicode 3.1
+
+       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
+         glib/gen-unicode-tables.pl: Add case conversion functions
+        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
+
+       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
+         tests/gen-casemap-txt.pl tests/casefold.txt 
+         tests/casemap.txt: Test cases for case conversion.
+
+       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
+         glib/gen-unicode-tables.pl: Add function to do Unicode
+        normalization g_utf8_normalize().
+
+       * tests/unicode-normalize.c: Test program for case conversion.
+
+       * glib/gunicode.h glib/gunicollate.c: Add collation functions
+       g_utf8_collate, g_utf8_collate_key.
+
+       * test/unicode-collate.c: Test program for collation.
+
+       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
+       variable.
+
+       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
+       Make work with UTF-8 even if the locale isn't UTF-8 based.
+       Still somewhat of broken, if the format string contains 
+       characters not representable in the current locale, will warn
+       and not work.
+       
+       * glib/gdate.c: Use UTF-8 normalization and casefolding.
+
 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
 
        * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
index 8aa4ca6..5223eb4 100644 (file)
@@ -1,3 +1,41 @@
+Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
+       rather than a custom macro.
+
+       * glib/gen-unicode-tables.pl: Adapt to changes in table
+       formats for Unicode 3.1
+
+       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
+         glib/gen-unicode-tables.pl: Add case conversion functions
+        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
+
+       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
+         tests/gen-casemap-txt.pl tests/casefold.txt 
+         tests/casemap.txt: Test cases for case conversion.
+
+       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
+         glib/gen-unicode-tables.pl: Add function to do Unicode
+        normalization g_utf8_normalize().
+
+       * tests/unicode-normalize.c: Test program for case conversion.
+
+       * glib/gunicode.h glib/gunicollate.c: Add collation functions
+       g_utf8_collate, g_utf8_collate_key.
+
+       * test/unicode-collate.c: Test program for collation.
+
+       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
+       variable.
+
+       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
+       Make work with UTF-8 even if the locale isn't UTF-8 based.
+       Still somewhat of broken, if the format string contains 
+       characters not representable in the current locale, will warn
+       and not work.
+       
+       * glib/gdate.c: Use UTF-8 normalization and casefolding.
+
 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
 
        * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
index 8aa4ca6..5223eb4 100644 (file)
@@ -1,3 +1,41 @@
+Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
+       rather than a custom macro.
+
+       * glib/gen-unicode-tables.pl: Adapt to changes in table
+       formats for Unicode 3.1
+
+       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
+         glib/gen-unicode-tables.pl: Add case conversion functions
+        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
+
+       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
+         tests/gen-casemap-txt.pl tests/casefold.txt 
+         tests/casemap.txt: Test cases for case conversion.
+
+       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
+         glib/gen-unicode-tables.pl: Add function to do Unicode
+        normalization g_utf8_normalize().
+
+       * tests/unicode-normalize.c: Test program for case conversion.
+
+       * glib/gunicode.h glib/gunicollate.c: Add collation functions
+       g_utf8_collate, g_utf8_collate_key.
+
+       * test/unicode-collate.c: Test program for collation.
+
+       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
+       variable.
+
+       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
+       Make work with UTF-8 even if the locale isn't UTF-8 based.
+       Still somewhat of broken, if the format string contains 
+       characters not representable in the current locale, will warn
+       and not work.
+       
+       * glib/gdate.c: Use UTF-8 normalization and casefolding.
+
 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
 
        * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
index 8aa4ca6..5223eb4 100644 (file)
@@ -1,3 +1,41 @@
+Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
+       rather than a custom macro.
+
+       * glib/gen-unicode-tables.pl: Adapt to changes in table
+       formats for Unicode 3.1
+
+       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
+         glib/gen-unicode-tables.pl: Add case conversion functions
+        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
+
+       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
+         tests/gen-casemap-txt.pl tests/casefold.txt 
+         tests/casemap.txt: Test cases for case conversion.
+
+       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
+         glib/gen-unicode-tables.pl: Add function to do Unicode
+        normalization g_utf8_normalize().
+
+       * tests/unicode-normalize.c: Test program for case conversion.
+
+       * glib/gunicode.h glib/gunicollate.c: Add collation functions
+       g_utf8_collate, g_utf8_collate_key.
+
+       * test/unicode-collate.c: Test program for collation.
+
+       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
+       variable.
+
+       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
+       Make work with UTF-8 even if the locale isn't UTF-8 based.
+       Still somewhat of broken, if the format string contains 
+       characters not representable in the current locale, will warn
+       and not work.
+       
+       * glib/gdate.c: Use UTF-8 normalization and casefolding.
+
 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
 
        * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
index 8aa4ca6..5223eb4 100644 (file)
@@ -1,3 +1,41 @@
+Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
+       rather than a custom macro.
+
+       * glib/gen-unicode-tables.pl: Adapt to changes in table
+       formats for Unicode 3.1
+
+       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
+         glib/gen-unicode-tables.pl: Add case conversion functions
+        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
+
+       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
+         tests/gen-casemap-txt.pl tests/casefold.txt 
+         tests/casemap.txt: Test cases for case conversion.
+
+       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
+         glib/gen-unicode-tables.pl: Add function to do Unicode
+        normalization g_utf8_normalize().
+
+       * tests/unicode-normalize.c: Test program for case conversion.
+
+       * glib/gunicode.h glib/gunicollate.c: Add collation functions
+       g_utf8_collate, g_utf8_collate_key.
+
+       * test/unicode-collate.c: Test program for collation.
+
+       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
+       variable.
+
+       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
+       Make work with UTF-8 even if the locale isn't UTF-8 based.
+       Still somewhat of broken, if the format string contains 
+       characters not representable in the current locale, will warn
+       and not work.
+       
+       * glib/gdate.c: Use UTF-8 normalization and casefolding.
+
 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
 
        * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
index 8aa4ca6..5223eb4 100644 (file)
@@ -1,3 +1,41 @@
+Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
+       rather than a custom macro.
+
+       * glib/gen-unicode-tables.pl: Adapt to changes in table
+       formats for Unicode 3.1
+
+       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
+         glib/gen-unicode-tables.pl: Add case conversion functions
+        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
+
+       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
+         tests/gen-casemap-txt.pl tests/casefold.txt 
+         tests/casemap.txt: Test cases for case conversion.
+
+       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
+         glib/gen-unicode-tables.pl: Add function to do Unicode
+        normalization g_utf8_normalize().
+
+       * tests/unicode-normalize.c: Test program for case conversion.
+
+       * glib/gunicode.h glib/gunicollate.c: Add collation functions
+       g_utf8_collate, g_utf8_collate_key.
+
+       * test/unicode-collate.c: Test program for collation.
+
+       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
+       variable.
+
+       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
+       Make work with UTF-8 even if the locale isn't UTF-8 based.
+       Still somewhat of broken, if the format string contains 
+       characters not representable in the current locale, will warn
+       and not work.
+       
+       * glib/gdate.c: Use UTF-8 normalization and casefolding.
+
 Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
 
        * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
index 13f79b3..d9fc041 100644 (file)
@@ -27,4 +27,8 @@
   are now safe against removal of the current item, not the next item.
 
   It's not recommended to mutate the list in the callback to these
-  functions in any case.
\ No newline at end of file
+  functions in any case.
+
+* GDate now works in UTF-8, not in the current locale. If you
+  want to use it with the encoding of the locale, you need
+  to convert strings using g_locale_to_utf8 first.
index 37c0779..b477625 100644 (file)
@@ -120,6 +120,14 @@ the results may be needed.
 See #G_PRIORITY_DEFAULT, #G_PRIORITY_DEFAULT_IDLE, #G_PRIORITY_HIGH,
 #G_PRIORITY_HIGH_IDLE, and #G_PRIORITY_LOW.
 
+<!-- ##### FUNCTION g_main_context_get ##### -->
+<para>
+
+</para>
+
+@thread: 
+@Returns: 
+
 <!-- ##### FUNCTION g_main_loop_destroy ##### -->
 <para>
 
index c5e5518..9544707 100644 (file)
@@ -259,15 +259,6 @@ It is not used within GLib or GTK+.
 </para>
 
 
-<!-- ##### FUNCTION g_main_context_get ##### -->
-<para>
-
-</para>
-
-@thread: 
-@Returns: 
-
-
 <!-- ##### FUNCTION g_main_context_default ##### -->
 <para>
 
@@ -644,7 +635,7 @@ the required condition has been met, and returns TRUE if so.
 @prepare: 
 @check: 
 @dispatch: 
-@destroy
+@finalize
 
 <!-- ##### STRUCT GSourceCallbackFuncs ##### -->
 <para>
index be5ff11..dc8b639 100644 (file)
@@ -49,6 +49,7 @@ libglib_1_3_la_SOURCES =      \
        gunibreak.h             \
        gunibreak.c             \
        gunichartables.h        \
+       gunicollate.c           \
        gunidecomp.h            \
        gunidecomp.c            \
        gutils.c
index 607e42a..caab6fa 100644 (file)
@@ -512,16 +512,19 @@ g_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt)
   
   if (pt->num_ints < 3)
     {
-      gchar lcstr[128];
-      
-      strncpy (lcstr, str, 127);
-      g_strdown (lcstr);
+      gchar *casefold;
+      gchar *normalized;
       
+      casefold = g_utf8_casefold (str);
+      normalized = g_utf8_normalize (casefold, G_NORMALIZE_ALL);
+      g_free (casefold);
+
+      i = 1;
       while (i < 13)
         {
           if (long_month_names[i] != NULL) 
             {
-              const gchar *found = strstr (lcstr, long_month_names[i]);
+              const gchar *found = strstr (normalized, long_month_names[i]);
              
               if (found != NULL)
                 {
@@ -532,7 +535,7 @@ g_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt)
          
           if (short_month_names[i] != NULL) 
             {
-              const gchar *found = strstr (lcstr, short_month_names[i]);
+              const gchar *found = strstr (normalized, short_month_names[i]);
              
               if (found != NULL)
                 {
@@ -575,21 +578,24 @@ g_date_prepare_to_parse (const gchar *str, GDateParseTokens *pt)
       
       while (i < 13) 
         {
+         gchar *casefold;
+         
           g_date_set_dmy (&d, 1, i, 1);
          
           g_return_if_fail (g_date_valid (&d));
          
           g_date_strftime (buf, 127, "%b", &d);
+
+         casefold = g_utf8_casefold (buf);
           g_free (short_month_names[i]);
-          g_strdown (buf);
-          short_month_names[i] = g_strdup (buf);
-         
-          
+          short_month_names[i] = g_utf8_normalize (casefold, G_NORMALIZE_ALL);
+         g_free (casefold);
          
           g_date_strftime (buf, 127, "%B", &d);
+         casefold = g_utf8_casefold (buf);
           g_free (long_month_names[i]);
-          g_strdown (buf);
-          long_month_names[i] = g_strdup (buf);
+          long_month_names[i] = g_utf8_normalize (casefold, G_NORMALIZE_ALL);
+         g_free (casefold);
           
           ++i;
         }
@@ -1331,7 +1337,7 @@ g_date_strftime (gchar       *s,
                  const GDate *d)
 {
   struct tm tm;
-  gsize retval;
+  const gchar *charset;
   
   g_return_val_if_fail (d != NULL, 0);
   g_return_val_if_fail (g_date_valid (d), 0);
@@ -1340,14 +1346,100 @@ g_date_strftime (gchar       *s,
   g_return_val_if_fail (s != 0, 0);
   
   g_date_to_struct_tm (d, &tm);
-  
-  retval = strftime (s, slen, format, &tm);
-  if (retval == 0)
+
+  if (g_get_charset (&charset))
     {
-      /* If retval == 0, the contents of s are undefined.  We define
-       *  them. 
-       */
-      s[0] = '\0';
+      gint retval = strftime (s, slen, format, &tm);
+      if (retval == 0)
+       {
+         /* If retval == 0, the contents of s are undefined.  We define
+          *  them. 
+          */
+         s[0] = '\0';
+       }
+
+      return retval;
+    }
+  else
+    {
+      gchar *locale_format;
+      gsize tmplen;
+      gchar *tmpbuf;
+      gsize tmpbufsize;
+      gsize convlen = 0;
+      gchar *convbuf;
+      GError *error = NULL;
+      
+      locale_format = g_convert (format, -1 , "UTF-8", charset,
+                                NULL, NULL, &error);
+      if (error)
+       {
+         g_warning (G_STRLOC "Error converting format to %s: %s\n",
+                    charset, error->message);
+         g_error_free (error);
+
+         return 0;
+       }
+      
+      tmpbufsize = MAX (128, strlen (locale_format) * 2);
+      while (TRUE)
+       {
+         tmpbuf = g_malloc (tmpbufsize + 1);
+         tmplen = strftime (tmpbuf, tmpbufsize + 1, locale_format, &tm);
+         if (tmplen == tmpbufsize + 1)
+           {
+             g_free (tmpbuf);
+             tmpbufsize *= 2;
+           }
+         else
+           break;
+       }
+      g_free (locale_format);
+
+      if (tmplen == 0)
+       {
+         /* If retval == 0, the contents of s are undefined.  We define
+          *  them. 
+          */
+         g_free (locale_format);
+         s[0] = '\0';
+         return 0;
+       }
+
+      convbuf = g_convert (tmpbuf, tmplen, "UTF-8", charset, NULL, &convlen, &error);
+      g_free (tmpbuf);
+      
+      if (error)
+       {
+         g_warning (G_STRLOC "Error converting results of strftime to UTF-8: %s\n", error->message);
+         g_error_free (error);
+       }
+      else
+       {
+         /* Only copy whole characters into the buffer
+          */
+         gchar *in = convbuf;
+         gchar *out = s;
+         gchar *end = s + slen - 1;
+
+         while (*in)
+           {
+             int len = g_utf8_skip[*(guchar *)in];
+             if (out + len < end)
+               {
+                 out += len;
+                 in += len;
+               }
+             else
+               break;
+           }
+
+         memcpy (s, convbuf, out - s);
+         *out = '\0';
+       }
+
+      g_free (convbuf);
+
+      return convlen;
     }
-  return retval;
 }
index 1a3b911..5e140af 100755 (executable)
@@ -1,6 +1,7 @@
 #! /usr/bin/perl -w
 
 #    Copyright (C) 1998, 1999 Tom Tromey
+#    Copyright (C) 2001 Red Hat Software
 
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -19,7 +20,7 @@
 
 # gen-unicode-tables.pl - Generate tables for libunicode from Unicode data.
 # See http://www.unicode.org/Public/UNIDATA/UnicodeCharacterDatabase.html
-# Usage: gen-unicode-tables.pl [-decomp | -both] UNICODE-VERSION UnicodeData.txt LineBreak.txt
+# Usage: gen-unicode-tables.pl [-decomp | -both] UNICODE-VERSION UnicodeData.txt LineBreak.txt SpecialCasing.txt CaseFolding.txt
 # I consider the output of this program to be unrestricted.  Use it as
 # you will.
 
@@ -29,7 +30,7 @@
 # * For decomp table it might make sense to use a shift count other
 #   than 8.  We could easily compute the perfect shift count.
 
-use vars qw($CODE $NAME $CATEGORY $COMBINING_CLASSES $BIDI_CATEGORY $DECOMPOSITION $DECIMAL_VALUE $DIGIT_VALUE $NUMERIC_VALUE $MIRRORED $OLD_NAME $COMMENT $UPPER $LOWER $TITLE $BREAK_CODE $BREAK_CATEGORY $BREAK_NAME);
+use vars qw($CODE $NAME $CATEGORY $COMBINING_CLASSES $BIDI_CATEGORY $DECOMPOSITION $DECIMAL_VALUE $DIGIT_VALUE $NUMERIC_VALUE $MIRRORED $OLD_NAME $COMMENT $UPPER $LOWER $TITLE $BREAK_CODE $BREAK_CATEGORY $BREAK_NAME $CASE_CODE $CASE_LOWER $CASE_TITLE $CASE_UPPER $CASE_CONDITION);
 
 # Names of fields in Unicode data table.
 $CODE = 0;
@@ -51,7 +52,18 @@ $TITLE = 14;
 # Names of fields in the line break table
 $BREAK_CODE = 0;
 $BREAK_PROPERTY = 1;
-$BREAK_NAME = 2;
+
+# Names of fields in the SpecialCasing table
+$CASE_CODE = 0;
+$CASE_LOWER = 1;
+$CASE_TITLE = 2;
+$CASE_UPPER = 3;
+$CASE_CONDITION = 4;
+
+# Names of fields in the CaseFolding table
+$FOLDING_CODE = 0;
+$FOLDING_STATUS = 1;
+$FOLDING_MAPPING = 2;
 
 # Map general category code onto symbolic name.
 %mappings =
@@ -128,23 +140,54 @@ $BREAK_NAME = 2;
 %title_to_lower = ();
 %title_to_upper = ();
 
+# Maximum length of special-case strings
+
+my $special_case_len = 0;
+my @special_cases;
+
 $do_decomp = 0;
 $do_props = 1;
-if ($ARGV[0] eq '-decomp')
+if (@ARGV && $ARGV[0] eq '-decomp')
 {
     $do_decomp = 1;
     $do_props = 0;
     shift @ARGV;
 }
-elsif ($ARGV[0] eq '-both')
+elsif (@ARGV && $ARGV[0] eq '-both')
 {
     $do_decomp = 1;
     shift @ARGV;
 }
 
+if (@ARGV != 6) {
+    $0 =~ s@.*/@@;
+    die "Usage: $0 [-decomp | -both] UNICODE-VERSION UnicodeData.txt LineBreak.txt SpecialCasing.txt CaseFolding.txt CompositionExclusions.txt\n";
+}
 print "Creating decomp table\n" if ($do_decomp);
 print "Creating property table\n" if ($do_props);
 
+print "Composition exlusions from $ARGV[5]\n";
+
+open (INPUT, "< $ARGV[5]") || exit 1;
+
+while (<INPUT>) {
+
+    chop;
+
+    next if /^#/;
+    next if /^\s*$/;
+
+    s/\s*#.*//;
+
+    s/^\s*//;
+    s/\s*$//;
+
+    $composition_exclusions{hex($_)} = 1;
+}
+
+close INPUT;
+
 print "Unicode data from $ARGV[1]\n";
 
 open (INPUT, "< $ARGV[1]") || exit 1;
@@ -189,6 +232,8 @@ while (<INPUT>)
     $last_code = $code;
 }
 
+close INPUT;
+
 @gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '',
            '', '', '', '');
 for (++$last_code; $last_code < 0x10000; ++$last_code)
@@ -207,54 +252,59 @@ open (INPUT, "< $ARGV[2]") || exit 1;
 $last_code = -1;
 while (<INPUT>)
 {
+    my ($start_code, $end_code);
+    
     chop;
 
     next if /^#/;
 
+    s/\s*#.*//;
+    
     @fields = split (';', $_, 30);
-    if ($#fields != 2)
+    if ($#fields != 1)
     {
        printf STDERR ("Entry for $fields[$CODE] has wrong number of fields (%d)\n", $#fields);
+       next;
     }
 
-    $code = hex ($fields[$CODE]);
+    if ($fields[$CODE] =~ /([A-F0-9]{4})..([A-F0-9]{4})/) 
+    {
+       $start_code = hex ($1);
+       $end_code = hex ($2);
+    } else {
+       $start_code = $end_code = hex ($fields[$CODE]);
+       
+    }
 
-    last if ($code > 0xFFFF); # ignore characters out of the basic plane
+    last if ($start_code > 0xFFFF); # FIXME ignore characters out of the basic plane 
 
-    if ($code > $last_code + 1)
+    if ($start_code > $last_code + 1)
     {
-       # Found a gap.
-       if ($fields[$NAME] =~ /Last>/)
+       # The gap represents undefined characters. If assigned,
+       # they are AL, if not assigned, XX
+       for (++$last_code; $last_code < $start_code; ++$last_code)
        {
-           # Fill the gap with the last character read,
-            # since this was a range specified in the char database
-          $gap_break_prop = $fields[$BREAK_PROPERTY];
-          for (++$last_code; $last_code < $code; ++$last_code)
-            {
-              $break_props[$last_code] = $gap_break_prop;
-            }
-       }
-       else
-       {
-          # The gap represents undefined characters. If assigned,
-          # they are AL, if not assigned, XX
-          for (++$last_code; $last_code < $code; ++$last_code)
-            {
-              if ($type[$last_code] eq 'Cn')
-                {
-                  $break_props[$last_code] = 'XX';
-                }
-              else
-                {
-                  $break_props[$last_code] = 'AL';
-                }
-            }
+           if ($type[$last_code] eq 'Cn')
+           {
+               $break_props[$last_code] = 'XX';
+           }
+           else
+           {
+               $break_props[$last_code] = 'AL';
+           }
        }
     }
-    $break_props[$code] = $fields[$BREAK_PROPERTY];
-    $last_code = $code;
+
+    for ($last_code = $start_code; $last_code <= $end_code; $last_code++)
+    {
+       $break_props[$last_code] = $fields[$BREAK_PROPERTY];
+    }
+    
+    $last_code = $end_code;
 }
 
+close INPUT;
+
 for (++$last_code; $last_code < 0x10000; ++$last_code)
 {
   if ($type[$last_code] eq 'Cn')
@@ -270,10 +320,142 @@ for (++$last_code; $last_code < 0x10000; ++$last_code)
 
 print STDERR "Last code is not 0xFFFF" if ($last_code != 0xFFFF);
 
-&print_tables ($last_code)
-    if $do_props;
-&print_decomp ($last_code)
-    if $do_decomp;
+print "Reading special-casing table for case conversion\n";
+
+open (INPUT, "< $ARGV[3]") || exit 1;
+
+while (<INPUT>)
+{
+    my $code;
+    
+    chop;
+
+    next if /^#/;
+    next if /^\s*$/;
+
+    s/\s*#.*//;
+
+    @fields = split ('\s*;\s*', $_, 30);
+
+    $raw_code = $fields[$CASE_CODE];
+    $code = hex ($raw_code);
+
+    if ($#fields != 4 && $#fields != 5)
+    {
+       printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields);
+       next;
+    }
+
+    if (!defined $type[$code])
+    {
+       printf STDERR "Special case for code point: $code, which has no defined type\n";
+       next;
+    }
+
+    if (defined $fields[5]) {
+       # Ignore conditional special cases - we'll handle them in code
+       next;
+    }
+    
+    if ($type[$code] eq 'Lu') 
+    {
+       (hex $fields[$CASE_UPPER] == $code) || die "$raw_code is Lu and UCD_Upper($raw_code) != $raw_code";
+
+       &add_special_case ($code, $value[$code],$fields[$CASE_LOWER], $fields[$CASE_TITLE]);
+       
+    } elsif ($type[$code] eq 'Lt') 
+    {
+       (hex $fields[$CASE_TITLE] == $code) || die "$raw_code is Lt and UCD_Title($raw_code) != $raw_code";
+       
+       &add_special_case ($code, undef,$fields[$CASE_LOWER], $fields[$CASE_UPPER]);
+    } elsif ($type[$code] eq 'Ll') 
+    {
+       (hex $fields[$CASE_LOWER] == $code) || die "$raw_code is Ll and UCD_Lower($raw_code) != $raw_code";
+       
+       &add_special_case ($code, $value[$code],$fields[$CASE_UPPER], $fields[$CASE_TITLE]);
+    } else {
+       printf STDERR "Special case for non-alphabetic code point: $raw_code\n";
+       next;
+    }
+}
+
+close INPUT;
+
+open (INPUT, "< $ARGV[4]") || exit 1;
+
+my $casefoldlen = 0;
+my @casefold;
+while (<INPUT>)
+{
+    my $code;
+    
+    chop;
+
+    next if /^#/;
+    next if /^\s*$/;
+
+    s/\s*#.*//;
+
+    @fields = split ('\s*;\s*', $_, 30);
+
+    $raw_code = $fields[$FOLDING_CODE];
+    $code = hex ($raw_code);
+
+    next if $code > 0xffff;    # FIXME!
+    
+    if ($#fields != 3)
+    {
+       printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields);
+       next;
+    }
+
+    next if ($fields[$FOLDING_STATUS] eq 'S');
+
+    @values = map { hex ($_) } split /\s+/, $fields[$FOLDING_MAPPING];
+
+    # Check simple case
+
+    if (@values == 1 && 
+       !(defined $value[$code] && $value[$code] >= 0xd800 && $value[$code] < 0xdc00) &&
+       defined $type[$code]) {
+
+       my $lower;
+       if ($type[$code] eq 'Ll') 
+       {
+           $lower = $code;
+       } elsif ($type[$code] eq 'Lt') 
+       {
+           $lower = $title_to_lower{$code};
+       } elsif ($type[$code] eq 'Lu') 
+       {
+           $lower = $value[$code];
+       } else {
+           $lower = $code;
+       }
+       
+       if ($lower == $values[0]) {
+           next;
+       }
+    }
+
+    my $string = pack ("U*", @values);
+    if (1 + length $string > $casefoldlen) {
+       $casefoldlen = 1 + length $string;
+    }
+
+    push @casefold, [ $code, $string ];
+}
+
+close INPUT;
+
+if ($do_props) {
+    &print_tables ($last_code)
+}
+if ($do_decomp) {
+    &print_decomp ($last_code);
+    &output_composition_table;
+}
 
 &print_line_break ($last_code);
 
@@ -307,9 +489,17 @@ sub process_one
     $cclass[$code] = $fields[$COMBINING_CLASSES];
 
     # Handle decompositions.
-    if ($fields[$DECOMPOSITION] ne ''
-       && $fields[$DECOMPOSITION] !~ /\<.*\>/)
+    if ($fields[$DECOMPOSITION] ne '')
     {
+       if ($fields[$DECOMPOSITION] =~ s/\<.*\>\s*//) {
+           $decompose_compat[$code] = 1;
+       } else {
+           $decompose_compat[$code] = 0;
+
+          if (!exists $composition_exclusions{$code}) {
+              $compositions{$code} = $fields[$DECOMPOSITION];
+          }
+        }
        $decompositions[$code] = $fields[$DECOMPOSITION];
     }
 }
@@ -369,6 +559,10 @@ sub print_tables
     }
     print OUT "\n};\n\n";
 
+    #
+    # print title case table
+    #
+
     # FIXME: type.
     print OUT "static unsigned short title_table[][3] = {\n";
     my ($item);
@@ -383,6 +577,12 @@ sub print_tables
     }
     print OUT "\n};\n\n";
 
+    #
+    # And special case conversion table -- conversions that change length
+    #
+    &output_special_case_table (\*OUT);
+    &output_casefold_table (\*OUT);
+
     print OUT "#endif /* CHARTABLES_H */\n";
 
     close (OUT);
@@ -494,6 +694,8 @@ sub print_decomp
     print OUT "typedef struct\n{\n";
     # FIXME: type.
     print OUT "  unsigned short ch;\n";
+    print OUT "  unsigned char canon_offset;\n";
+    print OUT "  unsigned char compat_offset;\n";
     print OUT "  unsigned char *expansion;\n";
     print OUT "} decomposition;\n\n";
 
@@ -507,16 +709,43 @@ sub print_decomp
            print OUT ",\n"
                if ! $first;
            $first = 0;
-           printf OUT "  { 0x%04x, \"", $count;
-           $bytes_out += 2;
-           foreach $iter (&expand_decomp ($count))
-           {
-               printf OUT "\\x%02x\\x%02x", $iter / 256, $iter & 0xff;
-               $bytes_out += 2;
+
+           my $canon_decomp;
+           my $compat_decomp;
+
+           if (!$decompose_compat[$count]) {
+               $canon_decomp = make_decomp ($count, 0);
+           }
+           $compat_decomp = make_decomp ($count, 1);
+
+           if (defined $canon_decomp && $compat_decomp eq $canon_decomp) {
+               undef $compat_decomp; 
            }
+
+           my $string = "";
+           my $canon_offset = 0xff;
+           my $compat_offset = 0xff;
+           
+           if (defined $canon_decomp) {
+               $canon_offset = 0;
+               $string .= $canon_decomp;
+           }
+           if (defined $compat_decomp) {
+               if (defined $canon_decomp) {
+                   $string .= "\\x00\\x00";
+               }
+               $compat_offset = (length $string) / 4;
+               $string .= $compat_decomp;
+           }
+
+           $bytes_out += (length $string) / 4; # "\x20"
+           
            # Only a single terminator because one is implied in the string.
-           print OUT "\\0\" }";
-           $bytes_out += 2;
+           printf OUT qq(  { 0x%04x, %u, %u, "%s\\0" }), 
+                $count, $canon_offset, $compat_offset, $string;
+               
+           
+           $bytes_out += 6;
        }
     }
     print OUT "\n};\n\n";
@@ -588,16 +817,17 @@ sub fetch_cclass
 # Expand a character decomposition recursively.
 sub expand_decomp
 {
-    my ($code) = @_;
+    my ($code, $compat) = @_;
 
     my ($iter, $val);
     my (@result) = ();
     foreach $iter (split (' ', $decompositions[$code]))
     {
        $val = hex ($iter);
-       if (defined $decompositions[$val])
+       if (defined $decompositions[$val] && 
+           ($compat || !$decompose_compat[$val]))
        {
-           push (@result, &expand_decomp ($val));
+           push (@result, &expand_decomp ($val, $compat));
        }
        else
        {
@@ -607,3 +837,309 @@ sub expand_decomp
 
     return @result;
 }
+
+sub make_decomp
+{
+    my ($code, $compat) = @_;
+
+    my $result = "";
+    foreach $iter (&expand_decomp ($code, $compat))
+    {
+       $result .= sprintf "\\x%02x\\x%02x", $iter / 256, $iter & 0xff;
+    }
+
+    $result;
+}
+# Generate special case data string from two fields
+sub add_special_case
+{
+    my ($code, $single, $field1, $field2) = @_;
+
+    @values = (defined $single ? $single : (),
+              (map { hex ($_) } split /\s+/, $field1),
+               0,
+               (map { hex ($_) } split /\s+/, $field2));
+    $result = "";
+
+
+    for $value (@values) {
+       $result .= sprintf ("\\x%02x\\x%02x", $value / 256, $value & 0xff);
+    }
+
+    $result .= "\\0";
+    
+    if (2 * @values + 2 > $special_case_len) {
+       $special_case_len = 2 * @values + 2;
+    }
+
+    push @special_cases, $result;
+
+    #
+    # We encode special cases in the surrogate pair space
+    #
+    $value[$code] = 0xD800 + scalar(@special_cases) - 1;
+}
+
+sub output_special_case_table
+{
+    my $out = shift;
+
+    print $out <<EOT;
+
+/* Table of special cases for case conversion; each record contains
+ * First, the best single character mapping to lowercase if Lu, 
+ * and to uppercase if Ll, followed by the output mapping for the two cases 
+ * other than the case of the codepoint, in the order [Ll],[Lu],[Lt],
+ * separated and terminated by a double NUL.
+ */
+guchar special_case_table[][$special_case_len] = {
+EOT
+
+    for $case (@special_cases) {
+       print $out qq( "$case",\n);
+    }
+
+    print $out <<EOT;
+};
+
+EOT
+
+    print STDERR "Generated ", ($special_case_len * scalar @special_cases), " bytes in special case table\n";
+}
+
+sub enumerate_ordered
+{
+    my ($array) = @_;
+
+    my $n = 0;
+    for my $code (sort { $a <=> $b } keys %$array) {
+       if ($array->{$code} == 1) {
+           delete $array->{$code};
+           next;
+       }
+       $array->{$code} = $n++;
+    }
+
+    return $n;
+}
+
+sub output_composition_table
+{
+    print STDERR "Generating composition table\n";
+    
+    local ($bytes_out) = 0;
+
+    my %first;
+    my %second;
+
+    # First we need to go through and remove decompositions
+    # starting with a non-starter, and single-character 
+    # decompositions. At the same time, record
+    # the first and second character of each decomposition
+    
+    for $code (keys %compositions) {
+       @values = map { hex ($_) } split /\s+/, $compositions{$code};
+       if ($cclass[$values[0]]) {
+           delete $compositions{$code};
+           next;
+       }
+       if (@values == 1) {
+           delete $compositions{$code};
+           next;
+       }
+       if (@values != 2) {
+           die "$code has more than two elements in its decomposition!\n";
+       }
+
+       if (exists $first{$values[0]}) {
+           $first{$values[0]}++;
+       } else {
+           $first{$values[0]} = 1;
+       }
+    }
+
+    # Assign integer indicices, removing singletons
+    my $n_first = enumerate_ordered (\%first);
+
+    # Now record the second character if each (non-singleton) decomposition
+    for $code (keys %compositions) {
+       @values = map { hex ($_) } split /\s+/, $compositions{$code};
+
+       if (exists $first{$values[0]}) {
+           if (exists $second{$values[1]}) {
+               $second{$values[1]}++;
+           } else {
+               $second{$values[1]} = 1;
+           }
+       }
+    }
+
+    # Assign integer indices, removing duplicate
+    my $n_second = enumerate_ordered (\%second);
+
+    # Build reverse table
+
+    my @first_singletons;
+    my @second_singletons;
+    my %reverse;
+    for $code (keys %compositions) {
+       @values = map { hex ($_) } split /\s+/, $compositions{$code};
+
+       my $first = $first{$values[0]};
+       my $second = $second{$values[1]};
+
+       if (defined $first && defined $second) {
+           $reverse{"$first|$second"} = $code;
+       } elsif (!defined $first) {
+           push @first_singletons, [ $values[0], $values[1], $code ];
+       } else {
+           push @second_singletons, [ $values[1], $values[0], $code ];
+       }
+    }
+
+    @first_singletons = sort { $a->[0] <=> $b->[0] } @first_singletons;
+    @second_singletons = sort { $a->[0] <=> $b->[0] } @second_singletons;
+
+    my %vals;
+    
+    open OUT, ">gunicomp.h" or die "Cannot open gunicomp.h: $!\n";
+    
+    # Assign values in lookup table for all code points involved
+    
+    my $total = 1;
+    my $last = 0;
+    printf OUT "#define COMPOSE_FIRST_START %d\n", $total;
+    for $code (keys %first) {
+       $vals{$code} = $first{$code} + $total;
+       $last = $code if $code > $last;
+    }
+    $total += $n_first;
+    $i = 0;
+    printf OUT "#define COMPOSE_FIRST_SINGLE_START %d\n", $total;
+    for $record (@first_singletons) {
+       my $code = $record->[0];
+       $vals{$code} = $i++ + $total;
+       $last = $code if $code > $last;
+    }
+    $total += @first_singletons;
+    printf OUT "#define COMPOSE_SECOND_START %d\n", $total;
+    for $code (keys %second) {
+       $vals{$code} = $second{$code} + $total;
+       $last = $code if $code > $last;
+    }
+    $total += $n_second;
+    $i = 0;
+    printf OUT "#define COMPOSE_SECOND_SINGLE_START %d\n\n", $total;
+    for $record (@second_singletons) {
+       my $code = $record->[0];
+       $vals{$code} = $i++ + $total;
+       $last = $code if $code > $last;
+    }
+
+    # Output lookup table
+
+    my @row;                                             
+    for (my $count = 0; $count <= $last; $count += 256)
+    {
+       $row[$count / 256] = &print_row ($count, '(gushort *) ', 'gushort', 2,
+                                        'compose_page', 
+                                        sub { exists $vals{$_[0]} ? $vals{$_[0]} : 0; });
+    }
+
+    print OUT "static unsigned short *compose_table[256] = {\n";
+    for (my $count = 0; $count <= $last; $count += 256)
+    {
+       print OUT ",\n" if $count > 0;
+       print OUT "  ", $row[$count / 256];
+       $bytes_out += 4;
+    }
+    print OUT "\n};\n\n";
+
+    # Output first singletons
+
+    print OUT "gushort compose_first_single[][2] = {\n";
+    $i = 0;                                 
+    for $record (@first_singletons) {
+       print OUT ",\n" if $i++ > 0;
+       printf OUT " { %#06x, %#06x }", $record->[1], $record->[2];
+    }
+    print OUT "\n};\n";
+                                    
+    $bytes_out += @first_singletons * 4;                                    
+                 
+    # Output second singletons
+
+    print OUT "gushort compose_second_single[][2] = {\n";
+    $i = 0;                                 
+    for $record (@second_singletons) {
+       print OUT ",\n" if $i++ > 0;
+       printf OUT " { %#06x, %#06x }", $record->[1], $record->[2];
+    }
+    print OUT "\n};\n";
+                                    
+    $bytes_out += @second_singletons * 4;                                   
+                 
+    # Output array of composition pairs
+
+    print OUT <<EOT;
+gushort compose_array[$n_first][$n_second] = {
+EOT
+                       
+    for (my $i = 0; $i < $n_first; $i++) {
+       print OUT ",\n" if $i;
+       print OUT " { ";
+       for (my $j = 0; $j < $n_second; $j++) {
+           print OUT ", " if $j;
+           if (exists $reverse{"$i|$j"}) {
+               printf OUT "%#06x", $reverse{"$i|$j"};
+           } else {
+               print OUT "     0";
+            }
+       }
+       print OUT " }";
+    }
+    print OUT "\n";
+
+    print OUT <<EOT;
+};
+EOT
+
+    $bytes_out += $n_first * $n_second * 2;
+    
+    printf STDERR "Generated %d bytes in compose tables\n", $bytes_out;
+}
+
+sub output_casefold_table
+{
+    my $out = shift;
+
+    print $out <<EOT;
+
+/* Table of casefolding cases that can't be derived by lowercasing
+ */
+struct {
+  guint16 ch;
+  gchar data[$casefoldlen];
+} casefold_table[] = {
+EOT
+
+   @casefold = sort { $a->[0] <=> $b->[0] } @casefold; 
+    
+   for $case (@casefold) {
+       $code = $case->[0];
+       $string = $case->[1];
+       print $out sprintf(qq({ %#04x, "$string" },\n), $code);
+    
+   }
+
+    print $out <<EOT;
+};
+
+EOT
+
+   my $recordlen = (2+$casefoldlen+1) & ~1;
+   printf "Generated %d bytes for casefold table\n", $recordlen * @casefold;
+}
+
+                            
+
index d6b7bd3..64a25e0 100644 (file)
@@ -706,7 +706,6 @@ g_io_channel_seek_position  (GIOChannel* channel,
         }
     }
 
-
   status = channel->funcs->io_seek (channel, offset, type, error);
 
   if ((status == G_IO_STATUS_NORMAL) && (channel->use_buffer))
index 34912b3..c8294a0 100644 (file)
@@ -4,7 +4,7 @@
 #ifndef BREAKTABLES_H
 #define BREAKTABLES_H
 
-#define G_UNICODE_DATA_VERSION "3.0.1"
+#define G_UNICODE_DATA_VERSION "3.1"
 
 #define G_UNICODE_LAST_CHAR 0xffff
 
@@ -96,7 +96,7 @@ static char page0[256] = {
   G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, 
   G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_AMBIGUOUS, 
-  G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AFTER
+  G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, 
   G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, 
   G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, 
@@ -508,11 +508,11 @@ static char page3[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
 };
 
 static char page4[256] = {
@@ -3064,7 +3064,7 @@ static char page32[256] = {
   G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, 
   G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AFTER, 
   G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_BEFORE_AND_AFTER, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, 
+  G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, 
   G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
   G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, 
@@ -3751,7 +3751,7 @@ static char page37[256] = {
   G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, 
-  G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC
+  G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, 
@@ -4746,229 +4746,209 @@ static char page51[256] = {
   G_UNICODE_BREAK_UNKNOWN
 };
 
-static char page52[256] = {
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+static char page77[256] = {
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
 };
 
-static char page77[256] = {
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+static char page159[256] = {
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
@@ -4993,254 +4973,12 @@ static char page77[256] = {
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-};
-
-static char page78[256] = {
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
-};
-
-static char page159[256] = {
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
 };
 
 static char page164[256] = {
@@ -5365,97 +5103,234 @@ static char page164[256] = {
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
 };
 
-static char page172[256] = {
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+static char page215[256] = {
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+};
+
+static char page250[256] = {
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
+};
+
+static char page251[256] = {
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5466,7 +5341,14 @@ static char page172[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5493,10 +5375,6 @@ static char page172[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
-};
-
-static char page215[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5525,6 +5403,17 @@ static char page215[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5547,6 +5436,10 @@ static char page215[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC
+};
+
+static char page253[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5578,105 +5471,13 @@ static char page215[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-};
-
-static char page216[256] = {
-  G_UNICODE_BREAK_SURROGATE, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5708,6 +5509,8 @@ static char page216[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5734,24 +5537,82 @@ static char page216[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN
 };
 
-static char page219[256] = {
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+static char page254[256] = {
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, 
+  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_EXCLAMATION, 
+  G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5807,8 +5668,6 @@ static char page219[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_SURROGATE, 
-  G_UNICODE_BREAK_SURROGATE, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5821,6 +5680,68 @@ static char page219[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_BREAKING_GLUE
+};
+
+static char page255[256] = {
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EXCLAMATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
+  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, 
+  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
+  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
+  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
+  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
+  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5843,6 +5764,7 @@ static char page219[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
@@ -5858,1138 +5780,37 @@ static char page219[256] = {
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_POSTFIX, 
+  G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
+  G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
   G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_SURROGATE
-};
-
-static char page220[256] = {
-  G_UNICODE_BREAK_SURROGATE, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
-};
-
-static char page223[256] = {
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_SURROGATE
-};
-
-static char page224[256] = {
-  G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC
-};
-
-static char page248[256] = {
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS
-};
-
-static char page250[256] = {
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN
-};
-
-static char page251[256] = {
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC
-};
-
-static char page253[256] = {
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN
-};
-
-static char page254[256] = {
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
-  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_EXCLAMATION, 
-  G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_BREAKING_GLUE
-};
-
-static char page255[256] = {
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EXCLAMATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, 
-  G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_POSTFIX, 
-  G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, 
-  G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, 
-  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
-  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_CONTINGENT, 
-  G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, 
-  G_UNICODE_BREAK_UNKNOWN
+  G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, 
+  G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_CONTINGENT, 
+  G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, 
+  G_UNICODE_BREAK_UNKNOWN
 };
 
 static char *break_property_table[256] = {
@@ -7023,141 +5844,218 @@ static char *break_property_table[256] = {
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
-  page30,
-  page31,
-  page32,
-  page33,
-  page34,
-  page35,
-  page36,
-  page37,
-  page38,
-  page39,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
+  page30,
+  page31,
+  page32,
+  page33,
+  page34,
+  page35,
+  page36,
+  page37,
+  page38,
+  page39,
+  (char *) G_UNICODE_BREAK_ALPHABETIC,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  page46,
+  page47,
+  page48,
+  page49,
+  page50,
+  page51,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  page77,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  page159,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  page164,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
-  page46,
-  page47,
-  page48,
-  page49,
-  page50,
-  page51,
-  page52,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  page77,
-  page78,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  page159,
   (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
   (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
   (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
   (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
-  page164,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
+  page215,
+  (char *) G_UNICODE_BREAK_SURROGATE,
+  (char *) G_UNICODE_BREAK_SURROGATE,
+  (char *) G_UNICODE_BREAK_SURROGATE,
+  (char *) G_UNICODE_BREAK_SURROGATE,
+  (char *) G_UNICODE_BREAK_SURROGATE,
+  (char *) G_UNICODE_BREAK_SURROGATE,
+  (char *) G_UNICODE_BREAK_SURROGATE,
+  (char *) G_UNICODE_BREAK_SURROGATE,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
+  (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
@@ -7165,83 +6063,6 @@ static char *break_property_table[256] = {
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
   (char *) G_UNICODE_BREAK_UNKNOWN,
-  page172,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  page215,
-  page216,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  page219,
-  page220,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  page223,
-  page224,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  (char *) G_UNICODE_BREAK_ALPHABETIC,
-  page248,
   (char *) G_UNICODE_BREAK_IDEOGRAPHIC,
   page250,
   page251,
index bcbbb18..1408f23 100644 (file)
@@ -4,7 +4,7 @@
 #ifndef CHARTABLES_H
 #define CHARTABLES_H
 
-#define G_UNICODE_DATA_VERSION "3.0.1"
+#define G_UNICODE_DATA_VERSION "3.1"
 
 #define G_UNICODE_LAST_CHAR 0xffff
 
@@ -487,11 +487,11 @@ static char page3[256] = {
   G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
   G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
   G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, 
+  G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, 
   G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
   G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
   G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-  G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
-  G_UNICODE_UNASSIGNED
+  G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
 };
 
 static char page4[256] = {
@@ -2142,7 +2142,7 @@ static char page22[256] = {
   G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, 
   G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION, 
   G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, 
-  G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, 
+  G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, 
   G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
   G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
   G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, 
@@ -4982,7 +4982,7 @@ static unsigned short attrpage0[256] = {
   0x0000, 0x0000, 0x0000, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 
   0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 
   0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0000, 
-  0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0000, 0x00c0, 
+  0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0xd800, 0x00c0, 
   0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 
   0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 
   0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0000, 0x00d8, 0x00d9, 0x00da, 0x00db, 
@@ -4998,7 +4998,7 @@ static unsigned short attrpage1[256] = {
   0x012c, 0x012f, 0x012e, 0x0069, 0x0049, 0x0133, 0x0132, 0x0135, 0x0134, 
   0x0137, 0x0136, 0x0000, 0x013a, 0x0139, 0x013c, 0x013b, 0x013e, 0x013d, 
   0x0140, 0x013f, 0x0142, 0x0141, 0x0144, 0x0143, 0x0146, 0x0145, 0x0148, 
-  0x0147, 0x0000, 0x014b, 0x014a, 0x014d, 0x014c, 0x014f, 0x014e, 0x0151, 
+  0x0147, 0xd80e, 0x014b, 0x014a, 0x014d, 0x014c, 0x014f, 0x014e, 0x0151, 
   0x0150, 0x0153, 0x0152, 0x0155, 0x0154, 0x0157, 0x0156, 0x0159, 0x0158, 
   0x015b, 0x015a, 0x015d, 0x015c, 0x015f, 0x015e, 0x0161, 0x0160, 0x0163, 
   0x0162, 0x0165, 0x0164, 0x0167, 0x0166, 0x0169, 0x0168, 0x016b, 0x016a, 
@@ -5016,7 +5016,7 @@ static unsigned short attrpage1[256] = {
   0x01d0, 0x01cf, 0x01d2, 0x01d1, 0x01d4, 0x01d3, 0x01d6, 0x01d5, 0x01d8, 
   0x01d7, 0x01da, 0x01d9, 0x01dc, 0x01db, 0x018e, 0x01df, 0x01de, 0x01e1, 
   0x01e0, 0x01e3, 0x01e2, 0x01e5, 0x01e4, 0x01e7, 0x01e6, 0x01e9, 0x01e8, 
-  0x01eb, 0x01ea, 0x01ed, 0x01ec, 0x01ef, 0x01ee, 0x0000, 0x01f3, 0x0000, 
+  0x01eb, 0x01ea, 0x01ed, 0x01ec, 0x01ef, 0x01ee, 0xd811, 0x01f3, 0x0000, 
   0x01f1, 0x01f5, 0x01f4, 0x0195, 0x01bf, 0x01f9, 0x01f8, 0x01fb, 0x01fa, 
   0x01fd, 0x01fc, 0x01ff, 0x01fe
 };
@@ -5070,10 +5070,10 @@ static unsigned short attrpage3[256] = {
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03ac, 
   0x0000, 0x03ad, 0x03ae, 0x03af, 0x0000, 0x03cc, 0x0000, 0x03cd, 0x03ce, 
-  0x0000, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 
+  0xd80f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 
   0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 
   0x0000, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca, 
-  0x03cb, 0x0386, 0x0388, 0x0389, 0x038a, 0x0000, 0x0391, 0x0392, 0x0393, 
+  0x03cb, 0x0386, 0x0388, 0x0389, 0x038a, 0xd810, 0x0391, 0x0392, 0x0393, 
   0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 
   0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a3, 0x03a4, 0x03a5, 
   0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x038c, 0x038e, 0x038f, 
@@ -5081,7 +5081,7 @@ static unsigned short attrpage3[256] = {
   0x0000, 0x0000, 0x03db, 0x03da, 0x03dd, 0x03dc, 0x03df, 0x03de, 0x03e1, 
   0x03e0, 0x03e3, 0x03e2, 0x03e5, 0x03e4, 0x03e7, 0x03e6, 0x03e9, 0x03e8, 
   0x03eb, 0x03ea, 0x03ed, 0x03ec, 0x03ef, 0x03ee, 0x039a, 0x03a1, 0x03a3, 
-  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x03b8, 0x0395, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
   0x0000, 0x0000, 0x0000, 0x0000
 };
 
@@ -5133,7 +5133,7 @@ static unsigned short attrpage5[256] = {
   0x053c, 0x053d, 0x053e, 0x053f, 0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 
   0x0545, 0x0546, 0x0547, 0x0548, 0x0549, 0x054a, 0x054b, 0x054c, 0x054d, 
   0x054e, 0x054f, 0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 
-  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0xd808, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
@@ -5550,8 +5550,8 @@ static unsigned short attrpage30[256] = {
   0x1e74, 0x1e77, 0x1e76, 0x1e79, 0x1e78, 0x1e7b, 0x1e7a, 0x1e7d, 0x1e7c, 
   0x1e7f, 0x1e7e, 0x1e81, 0x1e80, 0x1e83, 0x1e82, 0x1e85, 0x1e84, 0x1e87, 
   0x1e86, 0x1e89, 0x1e88, 0x1e8b, 0x1e8a, 0x1e8d, 0x1e8c, 0x1e8f, 0x1e8e, 
-  0x1e91, 0x1e90, 0x1e93, 0x1e92, 0x1e95, 0x1e94, 0x0000, 0x0000, 0x0000
-  0x0000, 0x0000, 0x1e60, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ea1, 0x1ea0, 
+  0x1e91, 0x1e90, 0x1e93, 0x1e92, 0x1e95, 0x1e94, 0xd812, 0xd813, 0xd814
+  0xd815, 0xd816, 0x1e60, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ea1, 0x1ea0, 
   0x1ea3, 0x1ea2, 0x1ea5, 0x1ea4, 0x1ea7, 0x1ea6, 0x1ea9, 0x1ea8, 0x1eab, 
   0x1eaa, 0x1ead, 0x1eac, 0x1eaf, 0x1eae, 0x1eb1, 0x1eb0, 0x1eb3, 0x1eb2, 
   0x1eb5, 0x1eb4, 0x1eb7, 0x1eb6, 0x1eb9, 0x1eb8, 0x1ebb, 0x1eba, 0x1ebd, 
@@ -5574,27 +5574,27 @@ static unsigned short attrpage31[256] = {
   0x1f25, 0x1f26, 0x1f27, 0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 
   0x1f3e, 0x1f3f, 0x1f30, 0x1f31, 0x1f32, 0x1f33, 0x1f34, 0x1f35, 0x1f36, 
   0x1f37, 0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0x0000, 0x0000, 
-  0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0x0000, 0x0000, 0x0000
-  0x1f59, 0x0000, 0x1f5b, 0x0000, 0x1f5d, 0x0000, 0x1f5f, 0x0000, 0x1f51, 
+  0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0x0000, 0x0000, 0xd817
+  0x1f59, 0xd818, 0x1f5b, 0xd819, 0x1f5d, 0xd81a, 0x1f5f, 0x0000, 0x1f51, 
   0x0000, 0x1f53, 0x0000, 0x1f55, 0x0000, 0x1f57, 0x1f68, 0x1f69, 0x1f6a, 
   0x1f6b, 0x1f6c, 0x1f6d, 0x1f6e, 0x1f6f, 0x1f60, 0x1f61, 0x1f62, 0x1f63, 
   0x1f64, 0x1f65, 0x1f66, 0x1f67, 0x1fba, 0x1fbb, 0x1fc8, 0x1fc9, 0x1fca, 
   0x1fcb, 0x1fda, 0x1fdb, 0x1ff8, 0x1ff9, 0x1fea, 0x1feb, 0x1ffa, 0x1ffb, 
-  0x0000, 0x0000, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e
-  0x1f8f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-  0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f, 0x0000
-  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1fa8, 0x1fa9
-  0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf, 0x0000, 0x0000, 0x0000
-  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1fb8, 0x1fb9, 0x0000, 0x1fbc
-  0x0000, 0x0000, 0x0000, 0x0000, 0x1fb0, 0x1fb1, 0x1f70, 0x1f71, 0x0000
-  0x0000, 0x0399, 0x0000, 0x0000, 0x0000, 0x0000, 0x1fcc, 0x0000, 0x0000, 
-  0x0000, 0x0000, 0x1f72, 0x1f73, 0x1f74, 0x1f75, 0x0000, 0x0000, 0x0000, 
-  0x0000, 0x1fd8, 0x1fd9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0xd827, 0xd828, 0xd829, 0xd82a, 0xd82b, 0xd82c, 0xd82d
+  0xd82e, 0xd82f, 0xd830, 0xd831, 0xd832, 0xd833, 0xd834, 0xd835, 0xd836
+  0xd837, 0xd838, 0xd839, 0xd83a, 0xd83b, 0xd83c, 0xd83d, 0xd83e, 0xd83f
+  0xd840, 0xd841, 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, 0xd848
+  0xd849, 0xd84a, 0xd84b, 0xd84c, 0xd84d, 0xd84e, 0xd84f, 0xd850, 0xd851
+  0xd852, 0xd853, 0xd854, 0xd855, 0xd856, 0x1fb8, 0x1fb9, 0xd85d, 0xd857
+  0xd85e, 0x0000, 0xd81b, 0xd863, 0x1fb0, 0x1fb1, 0x1f70, 0x1f71, 0xd858
+  0x0000, 0x0399, 0x0000, 0x0000, 0x0000, 0xd85f, 0xd859, 0xd860, 0x0000, 
+  0xd81c, 0xd864, 0x1f72, 0x1f73, 0x1f74, 0x1f75, 0xd85a, 0x0000, 0x0000, 
+  0x0000, 0x1fd8, 0x1fd9, 0xd81d, 0xd81e, 0x0000, 0x0000, 0xd81f, 0xd820, 
   0x1fd0, 0x1fd1, 0x1f76, 0x1f77, 0x0000, 0x0000, 0x0000, 0x0000, 0x1fe8, 
-  0x1fe9, 0x0000, 0x0000, 0x0000, 0x1fec, 0x0000, 0x0000, 0x1fe0, 0x1fe1, 
-  0x1f7a, 0x1f7b, 0x1fe5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-  0x1ffc, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f78, 0x1f79, 0x1f7c, 0x1f7d, 
-  0x0000, 0x0000, 0x0000, 0x0000
+  0x1fe9, 0xd821, 0xd822, 0xd823, 0x1fec, 0xd824, 0xd825, 0x1fe0, 0x1fe1, 
+  0x1f7a, 0x1f7b, 0x1fe5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd861
+  0xd85b, 0xd862, 0x0000, 0xd826, 0xd865, 0x1f78, 0x1f79, 0x1f7c, 0x1f7d, 
+  0xd85c, 0x0000, 0x0000, 0x0000
 };
 
 static unsigned short attrpage33[256] = {
@@ -5629,6 +5629,38 @@ static unsigned short attrpage33[256] = {
   0x0000, 0x0000, 0x0000, 0x0000
 };
 
+static unsigned short attrpage251[256] = {
+  0xd801, 0xd802, 0xd803, 0xd804, 0xd805, 0xd806, 0xd807, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0xd809, 0xd80a, 0xd80b, 0xd80c, 0xd80d, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+  0x0000, 0x0000, 0x0000, 0x0000
+};
+
 static unsigned short attrpage255[256] = {
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 
@@ -5913,7 +5945,7 @@ static unsigned short *attr_table[256] = {
   0x0000,
   0x0000,
   0x0000,
-  0x0000,
+  attrpage251,
   0x0000,
   0x0000,
   0x0000,
@@ -5954,4 +5986,284 @@ static unsigned short title_table[][3] = {
   { 0x1ffc, 0x0000, 0x1ff3 }
 };
 
+
+/* Table of special cases for case conversion; each record contains
+ * First, the best single character mapping to lowercase if Lu, 
+ * and to uppercase if Ll, followed by the output mapping for the two cases 
+ * other than the case of the codepoint, in the order [Ll],[Lu],[Lt],
+ * separated and terminated by a double NUL.
+ */
+guchar special_case_table[][18] = {
+ "\x00\x00\x00\x53\x00\x53\x00\x00\x00\x53\x00\x73\0",
+ "\x00\x00\x00\x46\x00\x46\x00\x00\x00\x46\x00\x66\0",
+ "\x00\x00\x00\x46\x00\x49\x00\x00\x00\x46\x00\x69\0",
+ "\x00\x00\x00\x46\x00\x4c\x00\x00\x00\x46\x00\x6c\0",
+ "\x00\x00\x00\x46\x00\x46\x00\x49\x00\x00\x00\x46\x00\x66\x00\x69\0",
+ "\x00\x00\x00\x46\x00\x46\x00\x4c\x00\x00\x00\x46\x00\x66\x00\x6c\0",
+ "\x00\x00\x00\x53\x00\x54\x00\x00\x00\x53\x00\x74\0",
+ "\x00\x00\x00\x53\x00\x54\x00\x00\x00\x53\x00\x74\0",
+ "\x00\x00\x05\x35\x05\x52\x00\x00\x05\x35\x05\x82\0",
+ "\x00\x00\x05\x44\x05\x46\x00\x00\x05\x44\x05\x76\0",
+ "\x00\x00\x05\x44\x05\x35\x00\x00\x05\x44\x05\x65\0",
+ "\x00\x00\x05\x44\x05\x3b\x00\x00\x05\x44\x05\x6b\0",
+ "\x00\x00\x05\x4e\x05\x46\x00\x00\x05\x4e\x05\x76\0",
+ "\x00\x00\x05\x44\x05\x3d\x00\x00\x05\x44\x05\x6d\0",
+ "\x00\x00\x02\xbc\x00\x4e\x00\x00\x02\xbc\x00\x4e\0",
+ "\x00\x00\x03\x99\x03\x08\x03\x01\x00\x00\x03\x99\x03\x08\x03\x01\0",
+ "\x00\x00\x03\xa5\x03\x08\x03\x01\x00\x00\x03\xa5\x03\x08\x03\x01\0",
+ "\x00\x00\x00\x4a\x03\x0c\x00\x00\x00\x4a\x03\x0c\0",
+ "\x00\x00\x00\x48\x03\x31\x00\x00\x00\x48\x03\x31\0",
+ "\x00\x00\x00\x54\x03\x08\x00\x00\x00\x54\x03\x08\0",
+ "\x00\x00\x00\x57\x03\x0a\x00\x00\x00\x57\x03\x0a\0",
+ "\x00\x00\x00\x59\x03\x0a\x00\x00\x00\x59\x03\x0a\0",
+ "\x00\x00\x00\x41\x02\xbe\x00\x00\x00\x41\x02\xbe\0",
+ "\x00\x00\x03\xa5\x03\x13\x00\x00\x03\xa5\x03\x13\0",
+ "\x00\x00\x03\xa5\x03\x13\x03\x00\x00\x00\x03\xa5\x03\x13\x03\x00\0",
+ "\x00\x00\x03\xa5\x03\x13\x03\x01\x00\x00\x03\xa5\x03\x13\x03\x01\0",
+ "\x00\x00\x03\xa5\x03\x13\x03\x42\x00\x00\x03\xa5\x03\x13\x03\x42\0",
+ "\x00\x00\x03\x91\x03\x42\x00\x00\x03\x91\x03\x42\0",
+ "\x00\x00\x03\x97\x03\x42\x00\x00\x03\x97\x03\x42\0",
+ "\x00\x00\x03\x99\x03\x08\x03\x00\x00\x00\x03\x99\x03\x08\x03\x00\0",
+ "\x00\x00\x03\x99\x03\x08\x03\x01\x00\x00\x03\x99\x03\x08\x03\x01\0",
+ "\x00\x00\x03\x99\x03\x42\x00\x00\x03\x99\x03\x42\0",
+ "\x00\x00\x03\x99\x03\x08\x03\x42\x00\x00\x03\x99\x03\x08\x03\x42\0",
+ "\x00\x00\x03\xa5\x03\x08\x03\x00\x00\x00\x03\xa5\x03\x08\x03\x00\0",
+ "\x00\x00\x03\xa5\x03\x08\x03\x01\x00\x00\x03\xa5\x03\x08\x03\x01\0",
+ "\x00\x00\x03\xa1\x03\x13\x00\x00\x03\xa1\x03\x13\0",
+ "\x00\x00\x03\xa5\x03\x42\x00\x00\x03\xa5\x03\x42\0",
+ "\x00\x00\x03\xa5\x03\x08\x03\x42\x00\x00\x03\xa5\x03\x08\x03\x42\0",
+ "\x00\x00\x03\xa9\x03\x42\x00\x00\x03\xa9\x03\x42\0",
+ "\x1f\x88\x1f\x08\x03\x99\x00\x00\x1f\x88\0",
+ "\x1f\x89\x1f\x09\x03\x99\x00\x00\x1f\x89\0",
+ "\x1f\x8a\x1f\x0a\x03\x99\x00\x00\x1f\x8a\0",
+ "\x1f\x8b\x1f\x0b\x03\x99\x00\x00\x1f\x8b\0",
+ "\x1f\x8c\x1f\x0c\x03\x99\x00\x00\x1f\x8c\0",
+ "\x1f\x8d\x1f\x0d\x03\x99\x00\x00\x1f\x8d\0",
+ "\x1f\x8e\x1f\x0e\x03\x99\x00\x00\x1f\x8e\0",
+ "\x1f\x8f\x1f\x0f\x03\x99\x00\x00\x1f\x8f\0",
+ "\x1f\x80\x00\x00\x1f\x08\x03\x99\0",
+ "\x1f\x81\x00\x00\x1f\x09\x03\x99\0",
+ "\x1f\x82\x00\x00\x1f\x0a\x03\x99\0",
+ "\x1f\x83\x00\x00\x1f\x0b\x03\x99\0",
+ "\x1f\x84\x00\x00\x1f\x0c\x03\x99\0",
+ "\x1f\x85\x00\x00\x1f\x0d\x03\x99\0",
+ "\x1f\x86\x00\x00\x1f\x0e\x03\x99\0",
+ "\x1f\x87\x00\x00\x1f\x0f\x03\x99\0",
+ "\x1f\x98\x1f\x28\x03\x99\x00\x00\x1f\x98\0",
+ "\x1f\x99\x1f\x29\x03\x99\x00\x00\x1f\x99\0",
+ "\x1f\x9a\x1f\x2a\x03\x99\x00\x00\x1f\x9a\0",
+ "\x1f\x9b\x1f\x2b\x03\x99\x00\x00\x1f\x9b\0",
+ "\x1f\x9c\x1f\x2c\x03\x99\x00\x00\x1f\x9c\0",
+ "\x1f\x9d\x1f\x2d\x03\x99\x00\x00\x1f\x9d\0",
+ "\x1f\x9e\x1f\x2e\x03\x99\x00\x00\x1f\x9e\0",
+ "\x1f\x9f\x1f\x2f\x03\x99\x00\x00\x1f\x9f\0",
+ "\x1f\x90\x00\x00\x1f\x28\x03\x99\0",
+ "\x1f\x91\x00\x00\x1f\x29\x03\x99\0",
+ "\x1f\x92\x00\x00\x1f\x2a\x03\x99\0",
+ "\x1f\x93\x00\x00\x1f\x2b\x03\x99\0",
+ "\x1f\x94\x00\x00\x1f\x2c\x03\x99\0",
+ "\x1f\x95\x00\x00\x1f\x2d\x03\x99\0",
+ "\x1f\x96\x00\x00\x1f\x2e\x03\x99\0",
+ "\x1f\x97\x00\x00\x1f\x2f\x03\x99\0",
+ "\x1f\xa8\x1f\x68\x03\x99\x00\x00\x1f\xa8\0",
+ "\x1f\xa9\x1f\x69\x03\x99\x00\x00\x1f\xa9\0",
+ "\x1f\xaa\x1f\x6a\x03\x99\x00\x00\x1f\xaa\0",
+ "\x1f\xab\x1f\x6b\x03\x99\x00\x00\x1f\xab\0",
+ "\x1f\xac\x1f\x6c\x03\x99\x00\x00\x1f\xac\0",
+ "\x1f\xad\x1f\x6d\x03\x99\x00\x00\x1f\xad\0",
+ "\x1f\xae\x1f\x6e\x03\x99\x00\x00\x1f\xae\0",
+ "\x1f\xaf\x1f\x6f\x03\x99\x00\x00\x1f\xaf\0",
+ "\x1f\xa0\x00\x00\x1f\x68\x03\x99\0",
+ "\x1f\xa1\x00\x00\x1f\x69\x03\x99\0",
+ "\x1f\xa2\x00\x00\x1f\x6a\x03\x99\0",
+ "\x1f\xa3\x00\x00\x1f\x6b\x03\x99\0",
+ "\x1f\xa4\x00\x00\x1f\x6c\x03\x99\0",
+ "\x1f\xa5\x00\x00\x1f\x6d\x03\x99\0",
+ "\x1f\xa6\x00\x00\x1f\x6e\x03\x99\0",
+ "\x1f\xa7\x00\x00\x1f\x6f\x03\x99\0",
+ "\x1f\xbc\x03\x91\x03\x99\x00\x00\x1f\xbc\0",
+ "\x1f\xb3\x00\x00\x03\x91\x03\x99\0",
+ "\x1f\xcc\x03\x97\x03\x99\x00\x00\x1f\xcc\0",
+ "\x1f\xc3\x00\x00\x03\x97\x03\x99\0",
+ "\x1f\xfc\x03\xa9\x03\x99\x00\x00\x1f\xfc\0",
+ "\x1f\xf3\x00\x00\x03\xa9\x03\x99\0",
+ "\x00\x00\x1f\xba\x03\x99\x00\x00\x1f\xba\x03\x45\0",
+ "\x00\x00\x03\x86\x03\x99\x00\x00\x03\x86\x03\x45\0",
+ "\x00\x00\x1f\xca\x03\x99\x00\x00\x1f\xca\x03\x45\0",
+ "\x00\x00\x03\x89\x03\x99\x00\x00\x03\x89\x03\x45\0",
+ "\x00\x00\x1f\xfa\x03\x99\x00\x00\x1f\xfa\x03\x45\0",
+ "\x00\x00\x03\x8f\x03\x99\x00\x00\x03\x8f\x03\x45\0",
+ "\x00\x00\x03\x91\x03\x42\x03\x99\x00\x00\x03\x91\x03\x42\x03\x45\0",
+ "\x00\x00\x03\x97\x03\x42\x03\x99\x00\x00\x03\x97\x03\x42\x03\x45\0",
+ "\x00\x00\x03\xa9\x03\x42\x03\x99\x00\x00\x03\xa9\x03\x42\x03\x45\0",
+};
+
+
+/* Table of casefolding cases that can't be derived by lowercasing
+ */
+struct {
+  guint16 ch;
+  gchar data[7];
+} casefold_table[] = {
+{ 0xb5, "μ" },
+{ 0xdf, "ss" },
+{ 0x131, "i" },
+{ 0x149, "ʼn" },
+{ 0x17f, "s" },
+{ 0x1f0, "ǰ" },
+{ 0x345, "ι" },
+{ 0x390, "ΐ" },
+{ 0x3b0, "ΰ" },
+{ 0x3c2, "σ" },
+{ 0x3d0, "β" },
+{ 0x3d1, "θ" },
+{ 0x3d5, "φ" },
+{ 0x3d6, "π" },
+{ 0x3f0, "κ" },
+{ 0x3f1, "ρ" },
+{ 0x3f2, "σ" },
+{ 0x3f5, "ε" },
+{ 0x587, "եւ" },
+{ 0x1e96, "ẖ" },
+{ 0x1e97, "ẗ" },
+{ 0x1e98, "ẘ" },
+{ 0x1e99, "ẙ" },
+{ 0x1e9a, "aʾ" },
+{ 0x1e9b, "ṡ" },
+{ 0x1f50, "ὐ" },
+{ 0x1f52, "ὒ" },
+{ 0x1f54, "ὔ" },
+{ 0x1f56, "ὖ" },
+{ 0x1f80, "ἀι" },
+{ 0x1f81, "ἁι" },
+{ 0x1f82, "ἂι" },
+{ 0x1f83, "ἃι" },
+{ 0x1f84, "ἄι" },
+{ 0x1f85, "ἅι" },
+{ 0x1f86, "ἆι" },
+{ 0x1f87, "ἇι" },
+{ 0x1f88, "ἀι" },
+{ 0x1f89, "ἁι" },
+{ 0x1f8a, "ἂι" },
+{ 0x1f8b, "ἃι" },
+{ 0x1f8c, "ἄι" },
+{ 0x1f8d, "ἅι" },
+{ 0x1f8e, "ἆι" },
+{ 0x1f8f, "ἇι" },
+{ 0x1f90, "ἠι" },
+{ 0x1f91, "ἡι" },
+{ 0x1f92, "ἢι" },
+{ 0x1f93, "ἣι" },
+{ 0x1f94, "ἤι" },
+{ 0x1f95, "ἥι" },
+{ 0x1f96, "ἦι" },
+{ 0x1f97, "ἧι" },
+{ 0x1f98, "ἠι" },
+{ 0x1f99, "ἡι" },
+{ 0x1f9a, "ἢι" },
+{ 0x1f9b, "ἣι" },
+{ 0x1f9c, "ἤι" },
+{ 0x1f9d, "ἥι" },
+{ 0x1f9e, "ἦι" },
+{ 0x1f9f, "ἧι" },
+{ 0x1fa0, "ὠι" },
+{ 0x1fa1, "ὡι" },
+{ 0x1fa2, "ὢι" },
+{ 0x1fa3, "ὣι" },
+{ 0x1fa4, "ὤι" },
+{ 0x1fa5, "ὥι" },
+{ 0x1fa6, "ὦι" },
+{ 0x1fa7, "ὧι" },
+{ 0x1fa8, "ὠι" },
+{ 0x1fa9, "ὡι" },
+{ 0x1faa, "ὢι" },
+{ 0x1fab, "ὣι" },
+{ 0x1fac, "ὤι" },
+{ 0x1fad, "ὥι" },
+{ 0x1fae, "ὦι" },
+{ 0x1faf, "ὧι" },
+{ 0x1fb2, "ὰι" },
+{ 0x1fb3, "αι" },
+{ 0x1fb4, "άι" },
+{ 0x1fb6, "ᾶ" },
+{ 0x1fb7, "ᾶι" },
+{ 0x1fbc, "αι" },
+{ 0x1fbe, "ι" },
+{ 0x1fc2, "ὴι" },
+{ 0x1fc3, "ηι" },
+{ 0x1fc4, "ήι" },
+{ 0x1fc6, "ῆ" },
+{ 0x1fc7, "ῆι" },
+{ 0x1fcc, "ηι" },
+{ 0x1fd2, "ῒ" },
+{ 0x1fd3, "ΐ" },
+{ 0x1fd6, "ῖ" },
+{ 0x1fd7, "ῗ" },
+{ 0x1fe2, "ῢ" },
+{ 0x1fe3, "ΰ" },
+{ 0x1fe4, "ῤ" },
+{ 0x1fe6, "ῦ" },
+{ 0x1fe7, "ῧ" },
+{ 0x1ff2, "ὼι" },
+{ 0x1ff3, "ωι" },
+{ 0x1ff4, "ώι" },
+{ 0x1ff6, "ῶ" },
+{ 0x1ff7, "ῶι" },
+{ 0x1ffc, "ωι" },
+{ 0x2160, "ⅰ" },
+{ 0x2161, "ⅱ" },
+{ 0x2162, "ⅲ" },
+{ 0x2163, "ⅳ" },
+{ 0x2164, "ⅴ" },
+{ 0x2165, "ⅵ" },
+{ 0x2166, "ⅶ" },
+{ 0x2167, "ⅷ" },
+{ 0x2168, "ⅸ" },
+{ 0x2169, "ⅹ" },
+{ 0x216a, "ⅺ" },
+{ 0x216b, "ⅻ" },
+{ 0x216c, "ⅼ" },
+{ 0x216d, "ⅽ" },
+{ 0x216e, "ⅾ" },
+{ 0x216f, "ⅿ" },
+{ 0x24b6, "ⓐ" },
+{ 0x24b7, "ⓑ" },
+{ 0x24b8, "ⓒ" },
+{ 0x24b9, "ⓓ" },
+{ 0x24ba, "ⓔ" },
+{ 0x24bb, "ⓕ" },
+{ 0x24bc, "ⓖ" },
+{ 0x24bd, "ⓗ" },
+{ 0x24be, "ⓘ" },
+{ 0x24bf, "ⓙ" },
+{ 0x24c0, "ⓚ" },
+{ 0x24c1, "ⓛ" },
+{ 0x24c2, "ⓜ" },
+{ 0x24c3, "ⓝ" },
+{ 0x24c4, "ⓞ" },
+{ 0x24c5, "ⓟ" },
+{ 0x24c6, "ⓠ" },
+{ 0x24c7, "ⓡ" },
+{ 0x24c8, "ⓢ" },
+{ 0x24c9, "ⓣ" },
+{ 0x24ca, "ⓤ" },
+{ 0x24cb, "ⓥ" },
+{ 0x24cc, "ⓦ" },
+{ 0x24cd, "ⓧ" },
+{ 0x24ce, "ⓨ" },
+{ 0x24cf, "ⓩ" },
+{ 0xfb00, "ff" },
+{ 0xfb01, "fi" },
+{ 0xfb02, "fl" },
+{ 0xfb03, "ffi" },
+{ 0xfb04, "ffl" },
+{ 0xfb05, "st" },
+{ 0xfb06, "st" },
+{ 0xfb13, "մն" },
+{ 0xfb14, "մե" },
+{ 0xfb15, "մի" },
+{ 0xfb16, "վն" },
+{ 0xfb17, "մխ" },
+};
+
 #endif /* CHARTABLES_H */
index c139781..a4af1f7 100644 (file)
@@ -247,6 +247,28 @@ gboolean g_utf8_validate (const gchar  *str,
 /* Validate a Unicode character */
 gboolean g_unichar_validate (gunichar ch);
 
+gchar *g_utf8_strup   (const gchar *str);
+gchar *g_utf8_strdown (const gchar *str);
+gchar *g_utf8_casefold (const gchar *str);
+
+typedef enum {
+  G_NORMALIZE_DEFAULT,
+  G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT,
+  G_NORMALIZE_DEFAULT_COMPOSE,
+  G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE,
+  G_NORMALIZE_ALL,
+  G_NORMALIZE_NFKD = G_NORMALIZE_ALL,
+  G_NORMALIZE_ALL_COMPOSE,
+  G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE
+} GNormalizeMode;
+
+gchar *g_utf8_normalize (const gchar   *str,
+                        GNormalizeMode mode);
+
+gint   g_utf8_collate     (const gchar *str1,
+                          const gchar *str2);
+gchar *g_utf8_collate_key (const gchar *str);
+
 G_END_DECLS
 
 #endif /* __G_UNICODE_H__ */
diff --git a/glib/gunicollate.c b/glib/gunicollate.c
new file mode 100644 (file)
index 0000000..bcda032
--- /dev/null
@@ -0,0 +1,233 @@
+/* gunicollate.c - Collation
+ *
+ *  Copyright 2001 Red Hat, Inc.
+ *
+ * The Gnome Library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * The Gnome Library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the Gnome Library; see the file COPYING.LIB.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ *   Boston, MA 02111-1307, USA.
+ */
+
+#include <locale.h>
+#include <string.h>
+#ifdef __STDC_ISO_10646__
+#include <wchar.h>
+#endif
+
+#include "glib.h"
+
+extern gunichar *_g_utf8_normalize_wc (const gchar    *str,
+                                      GNormalizeMode  mode);
+
+/**
+ * g_utf8_collate:
+ * @str1: a UTF-8 encoded string
+ * @str2: a UTF-8 encoded string
+ * 
+ * Compares two strings for ordering using the linguistically
+ * correct rules for the current locale. When sorting a large
+ * number of strings, it will be significantly faster to
+ * obtain collation keys with g_utf8_collate_key() and 
+ * compare the keys with strcmp() when sorting instead of
+ * sorting the original strings.
+ * 
+ * Return value: -1 if str1 compares before str2, 0 if they
+ *   compare equal, 1 if str1 compares after str2.
+ **/
+gint
+g_utf8_collate (const gchar *str1,
+               const gchar *str2)
+{
+  gint result;
+  
+#ifdef __STDC_ISO_10646__
+
+  gunichar *str1_norm = _g_utf8_normalize_wc (str1, G_NORMALIZE_ALL_COMPOSE);
+  gunichar *str2_norm = _g_utf8_normalize_wc (str2, G_NORMALIZE_ALL_COMPOSE);
+
+  result = wcscoll ((wchar_t *)str1_norm, (wchar_t *)str2_norm);
+
+  g_free (str1_norm);
+  g_free (str2_norm);
+
+#else /* !__STDC_ISO_10646__ */
+
+  const gchar *charset;
+  gchar *str1_norm = g_utf8_normalize (str1, G_NORMALIZE_ALL_COMPOSE);
+  gchar *str2_norm = g_utf8_normalize (str2, G_NORMALIZE_ALL_COMPOSE);
+
+  if (g_get_charset (&charset))
+    {
+      result = strcoll (str1_norm, str2_norm);
+    }
+  else
+    {
+      gchar *str1_locale = g_convert (str1_norm, -1, "UTF-8", charset, NULL, NULL, NULL);
+      gchar *str2_locale = g_convert (str2_norm, -1, "UTF-8", charset, NULL, NULL, NULL);
+
+      if (str1_locale && str2_locale)
+       result =  strcoll (str1_locale, str2_locale);
+      else if (str1_locale)
+       result = -1;
+      else if (str2_locale)
+       result = 1;
+      else
+       result = strcmp (str1_norm, str2_norm);
+
+      g_free (str1_locale);
+      g_free (str2_locale);
+    }
+
+  g_free (str1_norm);
+  g_free (str2_norm);
+
+#endif /* __STDC_ISO_10646__ */
+
+  return result;
+}
+
+#ifdef __STDC_ISO_10646__
+/* We need UTF-8 encoding of numbers to encode the weights if
+ * we are using wcsxfrm. However, we aren't encoding Unicode
+ * characters, so we can't simply use g_unichar_to_utf8.
+ *
+ * The following routine is taken (with modification) from GNU
+ * libc's strxfrm routine:
+ *
+ * Copyright (C) 1995-1999,2000,2001 Free Software Foundation, Inc.
+ * Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
+ */
+static inline int
+utf8_encode (char *buf, wchar_t val)
+{
+  int retval;
+
+  if (val < 0x80)
+    {
+      if (buf)
+       *buf++ = (char) val;
+      retval = 1;
+    }
+  else
+    {
+      int step;
+
+      for (step = 2; step < 6; ++step)
+        if ((val & (~(guint32)0 << (5 * step + 1))) == 0)
+          break;
+      retval = step;
+
+      if (buf)
+       {
+         *buf = (unsigned char) (~0xff >> step);
+         --step;
+         do
+           {
+             buf[step] = 0x80 | (val & 0x3f);
+             val >>= 6;
+           }
+         while (--step > 0);
+         *buf |= val;
+       }
+    }
+
+  return retval;
+}
+#endif /* __STDC_ISO_10646__ */
+
+/**
+ * g_utf8_collate_key:
+ * @str: a UTF-8 encoded string.
+ * 
+ * Converts a string into a collation key that can be compared
+ * with other collation keys using strcmp(). The results of
+ * comparing the collation keys of two strings with strcmp()
+ * will always be the same as comparing the two original
+ * keys with g_utf8_collate().
+ * 
+ * Return value: a newly allocated string. This string should
+ *   be freed with g_free when you are done with it.
+ **/
+gchar *
+g_utf8_collate_key (const gchar *str)
+{
+  gchar *result;
+  size_t len;
+  
+#ifdef __STDC_ISO_10646__
+
+  gunichar *str_norm = _g_utf8_normalize_wc (str, G_NORMALIZE_ALL_COMPOSE);
+  wchar_t *result_wc;
+  size_t i;
+  size_t result_len = 0;
+
+  setlocale (LC_COLLATE, "");
+
+  len = wcsxfrm (NULL, (wchar_t *)str_norm, 0);
+  result_wc = g_new (wchar_t, len + 1);
+  wcsxfrm (result_wc, (wchar_t *)str_norm, len + 1);
+
+  for (i=0; i < len; i++)
+    result_len += utf8_encode (NULL, result_wc[i]);
+
+  result = g_malloc (result_len + 1);
+  result_len = 0;
+  for (i=0; i < len; i++)
+    result_len += utf8_encode (result + result_len, result_wc[i]);
+
+  result[result_len] = '\0';
+
+  g_free (result_wc);
+  g_free (str_norm);
+
+  return result;
+#else /* !__STDC_ISO_10646__ */
+
+  const gchar *charset;
+  gchar *str_norm = g_utf8_normalize (str, G_NORMALIZE_ALL_COMPOSE);
+
+  if (g_get_charset (&charset))
+    {
+      len = strxfrm (NULL, str_norm, 0);
+      result = g_malloc (len + 1);
+      strxfrm (result, str_norm, len + 1);
+    }
+  else
+    {
+      gchar *str_locale = g_convert (str_norm, -1, "UTF-8", charset, NULL, NULL, NULL);
+
+      if (str_locale)
+       {
+         len = strxfrm (NULL, str_locale, 0);
+         result = g_malloc (len + 2);
+         result[0] = 'A';
+         strxfrm (result + 1, str_locale, len + 1);
+         
+         g_free (str_locale);
+       }
+      else
+       {
+         len = strlen (str_norm);
+         result = g_malloc (len + 2);
+         result[0] = 'B';
+         memcpy (result + 1, str_norm, len);
+         result[len+1] = '\0';
+       }
+
+    }
+
+  g_free (str_norm);
+#endif /* __STDC_ISO_10646__ */
+
+  return result;
+}
diff --git a/glib/gunicomp.h b/glib/gunicomp.h
new file mode 100644 (file)
index 0000000..b07a635
--- /dev/null
@@ -0,0 +1,667 @@
+#define COMPOSE_FIRST_START 1
+#define COMPOSE_FIRST_SINGLE_START 147
+#define COMPOSE_SECOND_START 357
+#define COMPOSE_SECOND_SINGLE_START 388
+
+static gushort compose_page0[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 1, 2, 3, 4, 5, 150, 6, 
+  7, 8, 151, 9, 10, 11, 12, 13, 14, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 
+  0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 152, 29, 30, 31, 32, 33, 34, 35, 36, 37, 
+  38, 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 153, 154, 50, 155, 0, 0, 51, 0, 0, 0, 
+  0, 156, 0, 0, 0, 0, 52, 53, 157, 0, 158, 0, 0, 0, 54, 0, 0, 0, 0, 0, 55, 0, 
+  159, 160, 56, 161, 0, 0, 57, 0, 0, 0, 0, 162, 0, 0, 0, 0, 58, 59, 163, 0, 
+  164, 0, 0, 0, 60, 0, 0, 0
+};
+
+static gushort compose_page1[256] = {
+  0, 0, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 0, 
+  167, 168, 0, 0, 0, 0, 0, 0, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 176, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page2[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, 0, 0, 0, 0, 181, 
+  182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page3[256] = {
+  357, 358, 359, 360, 361, 0, 362, 363, 364, 365, 366, 367, 368, 0, 0, 369, 
+  0, 370, 0, 371, 372, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 374, 375, 
+  376, 377, 378, 379, 0, 0, 0, 0, 380, 381, 0, 382, 383, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 72, 0, 73, 0, 74, 0, 
+  0, 0, 0, 0, 75, 0, 184, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 185, 0, 186, 0, 0, 
+  78, 0, 0, 0, 79, 0, 80, 0, 81, 0, 0, 0, 0, 0, 82, 0, 83, 0, 0, 0, 84, 0, 0, 
+  0, 85, 86, 87, 0, 0, 187, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page4[256] = {
+  0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 189, 0, 90, 91, 
+  190, 92, 0, 191, 0, 0, 0, 192, 0, 0, 0, 0, 93, 0, 0, 0, 193, 0, 0, 0, 194, 
+  0, 195, 0, 0, 94, 0, 0, 196, 0, 95, 96, 197, 97, 0, 198, 0, 0, 0, 199, 0, 
+  0, 0, 0, 98, 0, 0, 0, 200, 0, 0, 0, 201, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 
+  203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page6[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 
+  211, 0, 0, 0, 0, 0, 0, 0, 0, 388, 389, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 214, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page9[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 216, 
+  0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 
+  0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page11[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 
+  0, 0, 102, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page12[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 398, 0, 0, 0, 
+  103, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page13[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 0, 104, 223, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 
+  224, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page16[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page30[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 0, 0, 0, 0, 0, 0, 
+  230, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page31[256] = {
+  108, 109, 236, 237, 238, 239, 240, 241, 110, 111, 242, 243, 244, 245, 246, 
+  247, 112, 113, 0, 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 116, 117, 248, 
+  249, 250, 251, 252, 253, 118, 119, 254, 255, 256, 257, 258, 259, 120, 121, 
+  0, 0, 0, 0, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 124, 125, 0, 0, 0, 0, 0, 0, 
+  126, 127, 0, 0, 0, 0, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 
+  0, 0, 131, 132, 260, 261, 262, 263, 264, 265, 133, 134, 266, 267, 268, 269, 
+  270, 271, 272, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  275, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, 
+  136, 0
+};
+
+static gushort compose_page33[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 279, 0, 
+  280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+static gushort compose_page34[256] = {
+  0, 0, 0, 284, 0, 0, 0, 0, 285, 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 290, 0, 291, 
+  0, 0, 292, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 294, 0, 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 
+  0, 0, 299, 300, 0, 0, 301, 302, 303, 304, 0, 0, 0, 0, 305, 306, 0, 0, 307, 
+  308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 0, 314, 0, 0, 0, 0, 0, 0, 315, 
+  316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0
+};
+
+static gushort compose_page48[256] = {
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 
+  0, 320, 0, 321, 0, 322, 0, 323, 0, 324, 0, 325, 0, 326, 0, 327, 0, 328, 0, 
+  329, 0, 330, 0, 331, 0, 0, 332, 0, 333, 0, 334, 0, 0, 0, 0, 0, 0, 137, 0, 
+  0, 138, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 387, 0, 0, 335, 
+  0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, 0, 337, 0, 338, 0, 339, 0, 340, 0, 
+  341, 0, 342, 0, 343, 0, 344, 0, 345, 0, 346, 0, 347, 0, 348, 0, 0, 349, 0, 
+  350, 0, 351, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144, 0, 0, 145, 0, 0, 
+  146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352, 353, 
+  354, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 0
+};
+
+static unsigned short *compose_table[256] = {
+  compose_page0,
+  compose_page1,
+  compose_page2,
+  compose_page3,
+  compose_page4,
+  (gushort *) 0,
+  compose_page6,
+  (gushort *) 0,
+  (gushort *) 0,
+  compose_page9,
+  (gushort *) 0,
+  compose_page11,
+  compose_page12,
+  compose_page13,
+  (gushort *) 0,
+  (gushort *) 0,
+  compose_page16,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  compose_page30,
+  compose_page31,
+  (gushort *) 0,
+  compose_page33,
+  compose_page34,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  (gushort *) 0,
+  compose_page48
+};
+
+gushort compose_first_single[][2] = {
+ { 0x0338, 0x226e },
+ { 0x0338, 0x2260 },
+ { 0x0338, 0x226f },
+ { 0x0307, 0x1e1e },
+ { 0x0302, 0x0134 },
+ { 0x0307, 0x1e1f },
+ { 0x0304, 0x01de },
+ { 0x0301, 0x01fa },
+ { 0x0301, 0x1e08 },
+ { 0x0301, 0x1e2e },
+ { 0x0304, 0x022a },
+ { 0x0301, 0x01fe },
+ { 0x0304, 0x01df },
+ { 0x0301, 0x01fb },
+ { 0x0301, 0x1e09 },
+ { 0x0301, 0x1e2f },
+ { 0x0304, 0x022b },
+ { 0x0301, 0x01ff },
+ { 0x0307, 0x1e64 },
+ { 0x0307, 0x1e65 },
+ { 0x0307, 0x1e66 },
+ { 0x0307, 0x1e67 },
+ { 0x0301, 0x1e78 },
+ { 0x0301, 0x1e79 },
+ { 0x0308, 0x1e7a },
+ { 0x0308, 0x1e7b },
+ { 0x0307, 0x1e9b },
+ { 0x030c, 0x01ee },
+ { 0x0304, 0x01ec },
+ { 0x0304, 0x01ed },
+ { 0x0304, 0x01e0 },
+ { 0x0304, 0x01e1 },
+ { 0x0306, 0x1e1c },
+ { 0x0306, 0x1e1d },
+ { 0x0304, 0x0230 },
+ { 0x0304, 0x0231 },
+ { 0x030c, 0x01ef },
+ { 0x0314, 0x1fec },
+ { 0x0345, 0x1fb4 },
+ { 0x0345, 0x1fc4 },
+ { 0x0345, 0x1ff4 },
+ { 0x0308, 0x0407 },
+ { 0x0301, 0x0403 },
+ { 0x0308, 0x04de },
+ { 0x0301, 0x040c },
+ { 0x0308, 0x04e6 },
+ { 0x0308, 0x04f4 },
+ { 0x0308, 0x04f8 },
+ { 0x0308, 0x04ec },
+ { 0x0301, 0x0453 },
+ { 0x0308, 0x04df },
+ { 0x0301, 0x045c },
+ { 0x0308, 0x04e7 },
+ { 0x0308, 0x04f5 },
+ { 0x0308, 0x04f9 },
+ { 0x0308, 0x04ed },
+ { 0x0308, 0x0457 },
+ { 0x030f, 0x0476 },
+ { 0x030f, 0x0477 },
+ { 0x0308, 0x04da },
+ { 0x0308, 0x04db },
+ { 0x0308, 0x04ea },
+ { 0x0308, 0x04eb },
+ { 0x0654, 0x0624 },
+ { 0x0654, 0x0626 },
+ { 0x0654, 0x06c2 },
+ { 0x0654, 0x06d3 },
+ { 0x0654, 0x06c0 },
+ { 0x093c, 0x0929 },
+ { 0x093c, 0x0931 },
+ { 0x093c, 0x0934 },
+ { 0x0bd7, 0x0b94 },
+ { 0x0bbe, 0x0bcb },
+ { 0x0c56, 0x0c48 },
+ { 0x0cd5, 0x0cc0 },
+ { 0x0cd5, 0x0ccb },
+ { 0x0d3e, 0x0d4b },
+ { 0x0dca, 0x0ddd },
+ { 0x102e, 0x1026 },
+ { 0x0304, 0x1e38 },
+ { 0x0304, 0x1e39 },
+ { 0x0304, 0x1e5c },
+ { 0x0304, 0x1e5d },
+ { 0x0307, 0x1e68 },
+ { 0x0307, 0x1e69 },
+ { 0x0302, 0x1ec6 },
+ { 0x0302, 0x1ec7 },
+ { 0x0302, 0x1ed8 },
+ { 0x0302, 0x1ed9 },
+ { 0x0345, 0x1f82 },
+ { 0x0345, 0x1f83 },
+ { 0x0345, 0x1f84 },
+ { 0x0345, 0x1f85 },
+ { 0x0345, 0x1f86 },
+ { 0x0345, 0x1f87 },
+ { 0x0345, 0x1f8a },
+ { 0x0345, 0x1f8b },
+ { 0x0345, 0x1f8c },
+ { 0x0345, 0x1f8d },
+ { 0x0345, 0x1f8e },
+ { 0x0345, 0x1f8f },
+ { 0x0345, 0x1f92 },
+ { 0x0345, 0x1f93 },
+ { 0x0345, 0x1f94 },
+ { 0x0345, 0x1f95 },
+ { 0x0345, 0x1f96 },
+ { 0x0345, 0x1f97 },
+ { 0x0345, 0x1f9a },
+ { 0x0345, 0x1f9b },
+ { 0x0345, 0x1f9c },
+ { 0x0345, 0x1f9d },
+ { 0x0345, 0x1f9e },
+ { 0x0345, 0x1f9f },
+ { 0x0345, 0x1fa2 },
+ { 0x0345, 0x1fa3 },
+ { 0x0345, 0x1fa4 },
+ { 0x0345, 0x1fa5 },
+ { 0x0345, 0x1fa6 },
+ { 0x0345, 0x1fa7 },
+ { 0x0345, 0x1faa },
+ { 0x0345, 0x1fab },
+ { 0x0345, 0x1fac },
+ { 0x0345, 0x1fad },
+ { 0x0345, 0x1fae },
+ { 0x0345, 0x1faf },
+ { 0x0345, 0x1fb2 },
+ { 0x0345, 0x1fc2 },
+ { 0x0345, 0x1ff2 },
+ { 0x0345, 0x1fb7 },
+ { 0x0345, 0x1fc7 },
+ { 0x0345, 0x1ff7 },
+ { 0x0338, 0x219a },
+ { 0x0338, 0x219b },
+ { 0x0338, 0x21ae },
+ { 0x0338, 0x21cd },
+ { 0x0338, 0x21cf },
+ { 0x0338, 0x21ce },
+ { 0x0338, 0x2204 },
+ { 0x0338, 0x2209 },
+ { 0x0338, 0x220c },
+ { 0x0338, 0x2224 },
+ { 0x0338, 0x2226 },
+ { 0x0338, 0x2241 },
+ { 0x0338, 0x2244 },
+ { 0x0338, 0x2247 },
+ { 0x0338, 0x2249 },
+ { 0x0338, 0x226d },
+ { 0x0338, 0x2262 },
+ { 0x0338, 0x2270 },
+ { 0x0338, 0x2271 },
+ { 0x0338, 0x2274 },
+ { 0x0338, 0x2275 },
+ { 0x0338, 0x2278 },
+ { 0x0338, 0x2279 },
+ { 0x0338, 0x2280 },
+ { 0x0338, 0x2281 },
+ { 0x0338, 0x22e0 },
+ { 0x0338, 0x22e1 },
+ { 0x0338, 0x2284 },
+ { 0x0338, 0x2285 },
+ { 0x0338, 0x2288 },
+ { 0x0338, 0x2289 },
+ { 0x0338, 0x22e2 },
+ { 0x0338, 0x22e3 },
+ { 0x0338, 0x22ac },
+ { 0x0338, 0x22ad },
+ { 0x0338, 0x22ae },
+ { 0x0338, 0x22af },
+ { 0x0338, 0x22ea },
+ { 0x0338, 0x22eb },
+ { 0x0338, 0x22ec },
+ { 0x0338, 0x22ed },
+ { 0x3099, 0x3094 },
+ { 0x3099, 0x304c },
+ { 0x3099, 0x304e },
+ { 0x3099, 0x3050 },
+ { 0x3099, 0x3052 },
+ { 0x3099, 0x3054 },
+ { 0x3099, 0x3056 },
+ { 0x3099, 0x3058 },
+ { 0x3099, 0x305a },
+ { 0x3099, 0x305c },
+ { 0x3099, 0x305e },
+ { 0x3099, 0x3060 },
+ { 0x3099, 0x3062 },
+ { 0x3099, 0x3065 },
+ { 0x3099, 0x3067 },
+ { 0x3099, 0x3069 },
+ { 0x3099, 0x309e },
+ { 0x3099, 0x30f4 },
+ { 0x3099, 0x30ac },
+ { 0x3099, 0x30ae },
+ { 0x3099, 0x30b0 },
+ { 0x3099, 0x30b2 },
+ { 0x3099, 0x30b4 },
+ { 0x3099, 0x30b6 },
+ { 0x3099, 0x30b8 },
+ { 0x3099, 0x30ba },
+ { 0x3099, 0x30bc },
+ { 0x3099, 0x30be },
+ { 0x3099, 0x30c0 },
+ { 0x3099, 0x30c2 },
+ { 0x3099, 0x30c5 },
+ { 0x3099, 0x30c7 },
+ { 0x3099, 0x30c9 },
+ { 0x3099, 0x30f7 },
+ { 0x3099, 0x30f8 },
+ { 0x3099, 0x30f9 },
+ { 0x3099, 0x30fa },
+ { 0x3099, 0x30fe }
+};
+gushort compose_second_single[][2] = {
+ { 0x0627, 0x0622 },
+ { 0x0627, 0x0623 },
+ { 0x0627, 0x0625 },
+ { 0x09c7, 0x09cb },
+ { 0x09c7, 0x09cc },
+ { 0x0b47, 0x0b4b },
+ { 0x0b47, 0x0b48 },
+ { 0x0b47, 0x0b4c },
+ { 0x0bc6, 0x0bca },
+ { 0x0bc6, 0x0bcc },
+ { 0x0cc6, 0x0cca },
+ { 0x0cc6, 0x0cc7 },
+ { 0x0cc6, 0x0cc8 },
+ { 0x0d46, 0x0d4a },
+ { 0x0d46, 0x0d4c },
+ { 0x0dd9, 0x0dda },
+ { 0x0dd9, 0x0ddc },
+ { 0x0dd9, 0x0dde }
+};
+gushort compose_array[146][31] = {
+ { 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x0100, 0x0102, 0x0226, 0x00c4, 0x1ea2, 0x00c5,      0, 0x01cd, 0x0200, 0x0202,      0,      0,      0, 0x1ea0,      0, 0x1e00,      0,      0, 0x0104,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0, 0x1e02,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e04,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e06,      0,      0,      0,      0 },
+ {      0, 0x0106, 0x0108,      0,      0,      0, 0x010a,      0,      0,      0,      0, 0x010c,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x00c7,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0, 0x1e0a,      0,      0,      0,      0, 0x010e,      0,      0,      0,      0,      0, 0x1e0c,      0,      0,      0, 0x1e10,      0, 0x1e12,      0,      0, 0x1e0e,      0,      0,      0,      0 },
+ { 0x00c8, 0x00c9, 0x00ca, 0x1ebc, 0x0112, 0x0114, 0x0116, 0x00cb, 0x1eba,      0,      0, 0x011a, 0x0204, 0x0206,      0,      0,      0, 0x1eb8,      0,      0,      0, 0x0228, 0x0118, 0x1e18,      0, 0x1e1a,      0,      0,      0,      0,      0 },
+ {      0, 0x01f4, 0x011c,      0, 0x1e20, 0x011e, 0x0120,      0,      0,      0,      0, 0x01e6,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x0122,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0, 0x0124,      0,      0,      0, 0x1e22, 0x1e26,      0,      0,      0, 0x021e,      0,      0,      0,      0,      0, 0x1e24,      0,      0,      0, 0x1e28,      0,      0, 0x1e2a,      0,      0,      0,      0,      0,      0 },
+ { 0x00cc, 0x00cd, 0x00ce, 0x0128, 0x012a, 0x012c, 0x0130, 0x00cf, 0x1ec8,      0,      0, 0x01cf, 0x0208, 0x020a,      0,      0,      0, 0x1eca,      0,      0,      0,      0, 0x012e,      0,      0, 0x1e2c,      0,      0,      0,      0,      0 },
+ {      0, 0x1e30,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x01e8,      0,      0,      0,      0,      0, 0x1e32,      0,      0,      0, 0x0136,      0,      0,      0,      0, 0x1e34,      0,      0,      0,      0 },
+ {      0, 0x0139,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x013d,      0,      0,      0,      0,      0, 0x1e36,      0,      0,      0, 0x013b,      0, 0x1e3c,      0,      0, 0x1e3a,      0,      0,      0,      0 },
+ {      0, 0x1e3e,      0,      0,      0,      0, 0x1e40,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e42,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x01f8, 0x0143,      0, 0x00d1,      0,      0, 0x1e44,      0,      0,      0,      0, 0x0147,      0,      0,      0,      0,      0, 0x1e46,      0,      0,      0, 0x0145,      0, 0x1e4a,      0,      0, 0x1e48,      0,      0,      0,      0 },
+ { 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x014c, 0x014e, 0x022e, 0x00d6, 0x1ece,      0, 0x0150, 0x01d1, 0x020c, 0x020e,      0,      0, 0x01a0, 0x1ecc,      0,      0,      0,      0, 0x01ea,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x1e54,      0,      0,      0,      0, 0x1e56,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x0154,      0,      0,      0,      0, 0x1e58,      0,      0,      0,      0, 0x0158, 0x0210, 0x0212,      0,      0,      0, 0x1e5a,      0,      0,      0, 0x0156,      0,      0,      0,      0, 0x1e5e,      0,      0,      0,      0 },
+ {      0, 0x015a, 0x015c,      0,      0,      0, 0x1e60,      0,      0,      0,      0, 0x0160,      0,      0,      0,      0,      0, 0x1e62,      0,      0, 0x0218, 0x015e,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0, 0x1e6a,      0,      0,      0,      0, 0x0164,      0,      0,      0,      0,      0, 0x1e6c,      0,      0, 0x021a, 0x0162,      0, 0x1e70,      0,      0, 0x1e6e,      0,      0,      0,      0 },
+ { 0x00d9, 0x00da, 0x00db, 0x0168, 0x016a, 0x016c,      0, 0x00dc, 0x1ee6, 0x016e, 0x0170, 0x01d3, 0x0214, 0x0216,      0,      0, 0x01af, 0x1ee4, 0x1e72,      0,      0,      0, 0x0172, 0x1e76,      0, 0x1e74,      0,      0,      0,      0,      0 },
+ {      0,      0,      0, 0x1e7c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e7e,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1e80, 0x1e82, 0x0174,      0,      0,      0, 0x1e86, 0x1e84,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e88,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0, 0x1e8a, 0x1e8c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ef2, 0x00dd, 0x0176, 0x1ef8, 0x0232,      0, 0x1e8e, 0x0178, 0x1ef6,      0,      0,      0,      0,      0,      0,      0,      0, 0x1ef4,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x0179, 0x1e90,      0,      0,      0, 0x017b,      0,      0,      0,      0, 0x017d,      0,      0,      0,      0,      0, 0x1e92,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e94,      0,      0,      0,      0 },
+ { 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x0101, 0x0103, 0x0227, 0x00e4, 0x1ea3, 0x00e5,      0, 0x01ce, 0x0201, 0x0203,      0,      0,      0, 0x1ea1,      0, 0x1e01,      0,      0, 0x0105,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0, 0x1e03,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e05,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e07,      0,      0,      0,      0 },
+ {      0, 0x0107, 0x0109,      0,      0,      0, 0x010b,      0,      0,      0,      0, 0x010d,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x00e7,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0, 0x1e0b,      0,      0,      0,      0, 0x010f,      0,      0,      0,      0,      0, 0x1e0d,      0,      0,      0, 0x1e11,      0, 0x1e13,      0,      0, 0x1e0f,      0,      0,      0,      0 },
+ { 0x00e8, 0x00e9, 0x00ea, 0x1ebd, 0x0113, 0x0115, 0x0117, 0x00eb, 0x1ebb,      0,      0, 0x011b, 0x0205, 0x0207,      0,      0,      0, 0x1eb9,      0,      0,      0, 0x0229, 0x0119, 0x1e19,      0, 0x1e1b,      0,      0,      0,      0,      0 },
+ {      0, 0x01f5, 0x011d,      0, 0x1e21, 0x011f, 0x0121,      0,      0,      0,      0, 0x01e7,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x0123,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0, 0x0125,      0,      0,      0, 0x1e23, 0x1e27,      0,      0,      0, 0x021f,      0,      0,      0,      0,      0, 0x1e25,      0,      0,      0, 0x1e29,      0,      0, 0x1e2b,      0, 0x1e96,      0,      0,      0,      0 },
+ { 0x00ec, 0x00ed, 0x00ee, 0x0129, 0x012b, 0x012d,      0, 0x00ef, 0x1ec9,      0,      0, 0x01d0, 0x0209, 0x020b,      0,      0,      0, 0x1ecb,      0,      0,      0,      0, 0x012f,      0,      0, 0x1e2d,      0,      0,      0,      0,      0 },
+ {      0,      0, 0x0135,      0,      0,      0,      0,      0,      0,      0,      0, 0x01f0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x1e31,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x01e9,      0,      0,      0,      0,      0, 0x1e33,      0,      0,      0, 0x0137,      0,      0,      0,      0, 0x1e35,      0,      0,      0,      0 },
+ {      0, 0x013a,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x013e,      0,      0,      0,      0,      0, 0x1e37,      0,      0,      0, 0x013c,      0, 0x1e3d,      0,      0, 0x1e3b,      0,      0,      0,      0 },
+ {      0, 0x1e3f,      0,      0,      0,      0, 0x1e41,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e43,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x01f9, 0x0144,      0, 0x00f1,      0,      0, 0x1e45,      0,      0,      0,      0, 0x0148,      0,      0,      0,      0,      0, 0x1e47,      0,      0,      0, 0x0146,      0, 0x1e4b,      0,      0, 0x1e49,      0,      0,      0,      0 },
+ { 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x014d, 0x014f, 0x022f, 0x00f6, 0x1ecf,      0, 0x0151, 0x01d2, 0x020d, 0x020f,      0,      0, 0x01a1, 0x1ecd,      0,      0,      0,      0, 0x01eb,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x1e55,      0,      0,      0,      0, 0x1e57,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x0155,      0,      0,      0,      0, 0x1e59,      0,      0,      0,      0, 0x0159, 0x0211, 0x0213,      0,      0,      0, 0x1e5b,      0,      0,      0, 0x0157,      0,      0,      0,      0, 0x1e5f,      0,      0,      0,      0 },
+ {      0, 0x015b, 0x015d,      0,      0,      0, 0x1e61,      0,      0,      0,      0, 0x0161,      0,      0,      0,      0,      0, 0x1e63,      0,      0, 0x0219, 0x015f,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0, 0x1e6b, 0x1e97,      0,      0,      0, 0x0165,      0,      0,      0,      0,      0, 0x1e6d,      0,      0, 0x021b, 0x0163,      0, 0x1e71,      0,      0, 0x1e6f,      0,      0,      0,      0 },
+ { 0x00f9, 0x00fa, 0x00fb, 0x0169, 0x016b, 0x016d,      0, 0x00fc, 0x1ee7, 0x016f, 0x0171, 0x01d4, 0x0215, 0x0217,      0,      0, 0x01b0, 0x1ee5, 0x1e73,      0,      0,      0, 0x0173, 0x1e77,      0, 0x1e75,      0,      0,      0,      0,      0 },
+ {      0,      0,      0, 0x1e7d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e7f,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1e81, 0x1e83, 0x0175,      0,      0,      0, 0x1e87, 0x1e85,      0, 0x1e98,      0,      0,      0,      0,      0,      0,      0, 0x1e89,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0, 0x1e8b, 0x1e8d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ef3, 0x00fd, 0x0177, 0x1ef9, 0x0233,      0, 0x1e8f, 0x00ff, 0x1ef7, 0x1e99,      0,      0,      0,      0,      0,      0,      0, 0x1ef5,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x017a, 0x1e91,      0,      0,      0, 0x017c,      0,      0,      0,      0, 0x017e,      0,      0,      0,      0,      0, 0x1e93,      0,      0,      0,      0,      0,      0,      0,      0, 0x1e95,      0,      0,      0,      0 },
+ { 0x1fed, 0x0385,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fc1,      0,      0,      0 },
+ { 0x1ea6, 0x1ea4,      0, 0x1eaa,      0,      0,      0,      0, 0x1ea8,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x01fc,      0,      0, 0x01e2,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ec0, 0x1ebe,      0, 0x1ec4,      0,      0,      0,      0, 0x1ec2,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ed2, 0x1ed0,      0, 0x1ed6,      0,      0,      0,      0, 0x1ed4,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x1e4c,      0,      0, 0x022c,      0,      0, 0x1e4e,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x01db, 0x01d7,      0,      0, 0x01d5,      0,      0,      0,      0,      0,      0, 0x01d9,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ea7, 0x1ea5,      0, 0x1eab,      0,      0,      0,      0, 0x1ea9,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x01fd,      0,      0, 0x01e3,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ec1, 0x1ebf,      0, 0x1ec5,      0,      0,      0,      0, 0x1ec3,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ed3, 0x1ed1,      0, 0x1ed7,      0,      0,      0,      0, 0x1ed5,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0, 0x1e4d,      0,      0, 0x022d,      0,      0, 0x1e4f,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x01dc, 0x01d8,      0,      0, 0x01d6,      0,      0,      0,      0,      0,      0, 0x01da,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1eb0, 0x1eae,      0, 0x1eb4,      0,      0,      0,      0, 0x1eb2,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1eb1, 0x1eaf,      0, 0x1eb5,      0,      0,      0,      0, 0x1eb3,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1e14, 0x1e16,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1e15, 0x1e17,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1e50, 0x1e52,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1e51, 0x1e53,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1edc, 0x1eda,      0, 0x1ee0,      0,      0,      0,      0, 0x1ede,      0,      0,      0,      0,      0,      0,      0,      0, 0x1ee2,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1edd, 0x1edb,      0, 0x1ee1,      0,      0,      0,      0, 0x1edf,      0,      0,      0,      0,      0,      0,      0,      0, 0x1ee3,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1eea, 0x1ee8,      0, 0x1eee,      0,      0,      0,      0, 0x1eec,      0,      0,      0,      0,      0,      0,      0,      0, 0x1ef0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1eeb, 0x1ee9,      0, 0x1eef,      0,      0,      0,      0, 0x1eed,      0,      0,      0,      0,      0,      0,      0,      0, 0x1ef1,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1fba, 0x0386,      0,      0, 0x1fb9, 0x1fb8,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f08, 0x1f09,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fbc,      0,      0 },
+ { 0x1fc8, 0x0388,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f18, 0x1f19,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1fca, 0x0389,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f28, 0x1f29,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fcc,      0,      0 },
+ { 0x1fda, 0x038a,      0,      0, 0x1fd9, 0x1fd8,      0, 0x03aa,      0,      0,      0,      0,      0,      0, 0x1f38, 0x1f39,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ff8, 0x038c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f48, 0x1f49,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1fea, 0x038e,      0,      0, 0x1fe9, 0x1fe8,      0, 0x03ab,      0,      0,      0,      0,      0,      0,      0, 0x1f59,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1ffa, 0x038f,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f68, 0x1f69,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1ffc,      0,      0 },
+ { 0x1f70, 0x03ac,      0,      0, 0x1fb1, 0x1fb0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f00, 0x1f01,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fb6, 0x1fb3,      0,      0 },
+ { 0x1f72, 0x03ad,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f10, 0x1f11,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f74, 0x03ae,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f20, 0x1f21,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fc6, 0x1fc3,      0,      0 },
+ { 0x1f76, 0x03af,      0,      0, 0x1fd1, 0x1fd0,      0, 0x03ca,      0,      0,      0,      0,      0,      0, 0x1f30, 0x1f31,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fd6,      0,      0,      0 },
+ { 0x1f78, 0x03cc,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f40, 0x1f41,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fe4, 0x1fe5,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f7a, 0x03cd,      0,      0, 0x1fe1, 0x1fe0,      0, 0x03cb,      0,      0,      0,      0,      0,      0, 0x1f50, 0x1f51,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fe6,      0,      0,      0 },
+ { 0x1f7c, 0x03ce,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f60, 0x1f61,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1ff6, 0x1ff3,      0,      0 },
+ { 0x1fd2, 0x0390,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fd7,      0,      0,      0 },
+ { 0x1fe2, 0x03b0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fe7,      0,      0,      0 },
+ {      0, 0x03d3,      0,      0,      0,      0,      0, 0x03d4,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0, 0x04d0,      0, 0x04d2,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x0400,      0,      0,      0,      0, 0x04d6,      0, 0x0401,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0, 0x04c1,      0, 0x04dc,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x040d,      0,      0,      0, 0x04e2, 0x0419,      0, 0x04e4,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0, 0x04ee, 0x040e,      0, 0x04f0,      0,      0, 0x04f2,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0, 0x04d1,      0, 0x04d3,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x0450,      0,      0,      0,      0, 0x04d7,      0, 0x0451,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0, 0x04c2,      0, 0x04dd,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x045d,      0,      0,      0, 0x04e3, 0x0439,      0, 0x04e5,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0, 0x04ef, 0x045e,      0, 0x04f1,      0,      0, 0x04f3,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0, 0x1eac,      0,      0, 0x1eb6,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ {      0,      0, 0x1ead,      0,      0, 0x1eb7,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f02, 0x1f04,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f06, 0x1f80,      0,      0 },
+ { 0x1f03, 0x1f05,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f07, 0x1f81,      0,      0 },
+ { 0x1f0a, 0x1f0c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f0e, 0x1f88,      0,      0 },
+ { 0x1f0b, 0x1f0d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f0f, 0x1f89,      0,      0 },
+ { 0x1f12, 0x1f14,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f13, 0x1f15,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f1a, 0x1f1c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f1b, 0x1f1d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f22, 0x1f24,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f26, 0x1f90,      0,      0 },
+ { 0x1f23, 0x1f25,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f27, 0x1f91,      0,      0 },
+ { 0x1f2a, 0x1f2c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f2e, 0x1f98,      0,      0 },
+ { 0x1f2b, 0x1f2d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f2f, 0x1f99,      0,      0 },
+ { 0x1f32, 0x1f34,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f36,      0,      0,      0 },
+ { 0x1f33, 0x1f35,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f37,      0,      0,      0 },
+ { 0x1f3a, 0x1f3c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f3e,      0,      0,      0 },
+ { 0x1f3b, 0x1f3d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f3f,      0,      0,      0 },
+ { 0x1f42, 0x1f44,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f43, 0x1f45,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f4a, 0x1f4c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f4b, 0x1f4d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0 },
+ { 0x1f52, 0x1f54,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f56,      0,      0,      0 },
+ { 0x1f53, 0x1f55,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f57,      0,      0,      0 },
+ { 0x1f5b, 0x1f5d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f5f,      0,      0,      0 },
+ { 0x1f62, 0x1f64,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f66, 0x1fa0,      0,      0 },
+ { 0x1f63, 0x1f65,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f67, 0x1fa1,      0,      0 },
+ { 0x1f6a, 0x1f6c,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f6e, 0x1fa8,      0,      0 },
+ { 0x1f6b, 0x1f6d,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1f6f, 0x1fa9,      0,      0 },
+ { 0x1fcd, 0x1fce,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fcf,      0,      0,      0 },
+ { 0x1fdd, 0x1fde,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x1fdf,      0,      0,      0 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x3070, 0x3071 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x3073, 0x3074 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x3076, 0x3077 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x3079, 0x307a },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x307c, 0x307d },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x30d0, 0x30d1 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x30d3, 0x30d4 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x30d6, 0x30d7 },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x30d9, 0x30da },
+ {      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0, 0x30dc, 0x30dd }
+};
index 194c283..618b75d 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "glib.h"
 #include "gunidecomp.h"
+#include "gunicomp.h"
 
 #include <config.h>
 
@@ -76,41 +77,40 @@ g_unicode_canonical_ordering (gunichar *string,
     }
 }
 
-gunichar *
-g_unicode_canonical_decomposition (gunichar ch,
-                                  size_t *result_len)
+guchar *
+find_decomposition (gunichar ch,
+                   gboolean compat)
 {
-  gunichar *r = NULL;
-
-  if (ch <= 0xffff)
+  int start = 0;
+  int end = G_N_ELEMENTS (decomp_table);
+  
+  if (ch >= decomp_table[start].ch &&
+      ch <= decomp_table[end - 1].ch)
     {
-      int start = 0;
-      int end = G_N_ELEMENTS (decomp_table);
-      while (start != end)
+      while (TRUE)
        {
          int half = (start + end) / 2;
          if (ch == decomp_table[half].ch)
            {
-             /* Found it.  */
-             int i, len;
-             /* We store as a double-nul terminated string.  */
-             for (len = 0; (decomp_table[half].expansion[len]
-                            || decomp_table[half].expansion[len + 1]);
-                  len += 2)
-               ;
-
-             /* We've counted twice as many bytes as there are
-                characters.  */
-             *result_len = len / 2;
-             r = malloc (len / 2 * sizeof (gunichar));
-
-             for (i = 0; i < len; i += 2)
+             int offset;
+
+             if (compat)
+               {
+                 offset = decomp_table[half].compat_offset;
+                 if (offset == 0xff)
+                   offset = decomp_table[half].canon_offset;
+               }
+             else
                {
-                 r[i / 2] = (decomp_table[half].expansion[i] << 8
-                             | decomp_table[half].expansion[i + 1]);
+                 offset = decomp_table[half].canon_offset;
+                 if (offset == 0xff)
+                   return NULL;
                }
-             break;
+             
+             return decomp_table[half].expansion + offset;
            }
+         else if (half == start)
+           break;
          else if (ch > decomp_table[half].ch)
            start = half;
          else
@@ -118,7 +118,36 @@ g_unicode_canonical_decomposition (gunichar ch,
        }
     }
 
-  if (r == NULL)
+  return NULL;
+}
+
+gunichar *
+g_unicode_canonical_decomposition (gunichar ch,
+                                  size_t  *result_len)
+{
+  guchar *decomp = find_decomposition (ch, FALSE);
+  gunichar *r;
+
+  if (decomp)
+    {
+      /* Found it.  */
+      int i, len;
+      /* We store as a double-nul terminated string.  */
+      for (len = 0; (decomp[len] || decomp[len + 1]);
+          len += 2)
+       ;
+      
+      /* We've counted twice as many bytes as there are
+        characters.  */
+      *result_len = len / 2;
+      r = malloc (len / 2 * sizeof (gunichar));
+      
+      for (i = 0; i < len; i += 2)
+       {
+         r[i / 2] = (decomp[i] << 8 | decomp[i + 1]);
+       }
+    }
+  else
     {
       /* Not in our table.  */
       r = malloc (sizeof (gunichar));
@@ -131,3 +160,231 @@ g_unicode_canonical_decomposition (gunichar ch,
      this, but we rely on it here.  */
   return r;
 }
+
+#define CI(Page, Char) \
+  ((((GPOINTER_TO_INT(compose_table[Page])) & 0xff) \
+    == GPOINTER_TO_INT(compose_table[Page])) \
+   ? GPOINTER_TO_INT(compose_table[Page]) \
+   : (compose_table[Page][Char]))
+
+#define COMPOSE_INDEX(Char) \
+     (((Char) > (G_UNICODE_LAST_CHAR)) ? 0 : CI((Char) >> 8, (Char) & 0xff))
+
+gboolean
+combine (gunichar  a,
+        gunichar  b,
+        gunichar *result)
+{
+  gushort index_a, index_b;
+
+  index_a = COMPOSE_INDEX(a);
+  if (index_a >= COMPOSE_FIRST_SINGLE_START && index_a < COMPOSE_SECOND_START)
+    {
+      if (b == compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][0])
+       {
+         *result = compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][1];
+         return TRUE;
+       }
+      else
+       return FALSE;
+    }
+  
+  index_b = COMPOSE_INDEX(b);
+  if (index_b >= COMPOSE_SECOND_SINGLE_START)
+    {
+      if (a == compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][0])
+       {
+         *result = compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][1];
+         return TRUE;
+       }
+      else
+       return FALSE;
+    }
+
+  if (index_a >= COMPOSE_FIRST_START && index_a < COMPOSE_FIRST_SINGLE_START &&
+      index_b >= COMPOSE_SECOND_START && index_a < COMPOSE_SECOND_SINGLE_START)
+    {
+      gunichar res = compose_array[index_a - COMPOSE_FIRST_START][index_b - COMPOSE_SECOND_START];
+
+      if (res)
+       {
+         *result = res;
+         return TRUE;
+       }
+    }
+
+  return FALSE;
+}
+
+gunichar *
+_g_utf8_normalize_wc (const gchar    *str,
+                     GNormalizeMode  mode)
+{
+  gsize n_wc;
+  gunichar *wc_buffer;
+  const char *p;
+  gsize last_start;
+  gboolean do_compat = (mode == G_NORMALIZE_NFKC ||
+                       mode == G_NORMALIZE_NFKD);
+  gboolean do_compose = (mode == G_NORMALIZE_NFC ||
+                        mode == G_NORMALIZE_NFKC);
+
+  n_wc = 0;
+  p = str;
+  while (*p)
+    {
+      gunichar wc = g_utf8_get_char (p);
+
+      guchar *decomp = find_decomposition (wc, do_compat);
+
+      if (decomp)
+       {
+         int len;
+         /* We store as a double-nul terminated string.  */
+         for (len = 0; (decomp[len] || decomp[len + 1]);
+              len += 2)
+           ;
+         n_wc += len / 2;
+       }
+      else
+       n_wc++;
+
+      p = g_utf8_next_char (p);
+    }
+
+  wc_buffer = g_new (gunichar, n_wc + 1);
+
+  last_start = 0;
+  n_wc = 0;
+  p = str;
+  while (*p)
+    {
+      gunichar wc = g_utf8_get_char (p);
+      guchar *decomp;
+      int cc;
+      size_t old_n_wc = n_wc;
+         
+      decomp = find_decomposition (wc, do_compat);
+         
+      if (decomp)
+       {
+         int len;
+         /* We store as a double-nul terminated string.  */
+         for (len = 0; (decomp[len] || decomp[len + 1]);
+              len += 2)
+           wc_buffer[n_wc++] = (decomp[len] << 8 | decomp[len + 1]);
+       }
+      else
+       wc_buffer[n_wc++] = wc;
+
+      if (n_wc > 0)
+       {
+         cc = COMBINING_CLASS (wc_buffer[old_n_wc]);
+
+         if (cc == 0)
+           {
+             g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start);
+             last_start = old_n_wc;
+           }
+       }
+      
+      p = g_utf8_next_char (p);
+    }
+
+  if (n_wc > 0)
+    {
+      g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start);
+      last_start = n_wc;
+    }
+         
+  wc_buffer[n_wc] = 0;
+
+  /* All decomposed and reordered */ 
+
+
+  if (do_compose && n_wc > 0)
+    {
+      gsize i, j;
+      int last_cc = 0;
+      last_start = 0;
+      
+      for (i = 0; i < n_wc; i++)
+       {
+         int cc = COMBINING_CLASS (wc_buffer[i]);
+
+         if (i > 0 &&
+             (last_cc == 0 || last_cc != cc) &&
+             combine (wc_buffer[last_start], wc_buffer[i],
+                      &wc_buffer[last_start]))
+           {
+             for (j = i + 1; j < n_wc; j++)
+               wc_buffer[j-1] = wc_buffer[j];
+             n_wc--;
+             i--;
+             
+             if (i == last_start)
+               last_cc = 0;
+             else
+               last_cc = COMBINING_CLASS (wc_buffer[i-1]);
+             
+             continue;
+           }
+
+         if (cc == 0)
+           last_start = i;
+
+         last_cc = cc;
+       }
+    }
+
+  wc_buffer[n_wc] = 0;
+
+  return wc_buffer;
+}
+
+/**
+ * g_utf8_normalize:
+ * @str: a UTF-8 encoded string.
+ * @mode: the type of normalization to perform.
+ * 
+ * Convert a string into canonical form, standardizing
+ * such issues as whether a character with an accent
+ * is represented as a base character and combining
+ * accent or as a single precomposed characters. You
+ * should generally call g_utf8_normalize before
+ * comparing two Unicode strings.
+ *
+ * The normalization mode %G_NORMALIZE_DEFAULT only
+ * standardizes differences that do not affect the
+ * text content, such as the above-mentioned accent
+ * representation. %G_NORMALIZE_ALL also standardizes
+ * the "compatibility" characters in Unicode, such
+ * as SUPERSCRIPT THREE to the standard forms
+ * (in this case DIGIT THREE). Formatting information
+ * may be lost but for most text operations such
+ * characters should be considered the same.
+ * For example, g_utf8_collate() normalizes
+ * with %G_NORMALIZE_ALL as its first step.
+ *
+ * %G_NORMALIZE_DEFAULT_COMPOSE and %G_NORMALIZE_ALL_COMPOSE
+ * are like %G_NORMALIZE_DEFAULT and %G_NORMALIZE_ALL,
+ * but returned a result with composed forms rather
+ * than a maximally decomposed form. This is often
+ * useful if you intend to convert the string to
+ * a legacy encoding or pass it to a system with
+ * less capable Unicode handling.
+ * 
+ * Return value: the string in normalized form
+ **/
+gchar *
+g_utf8_normalize (const gchar    *str,
+                 GNormalizeMode  mode)
+{
+  gunichar *result_wc = _g_utf8_normalize_wc (str, mode);
+  gchar *result;
+  
+  result = g_ucs4_to_utf8 (result_wc, -1, NULL, NULL, NULL);
+  g_free (result_wc);
+
+  return result;
+}
index b497759..983ee55 100644 (file)
@@ -536,1322 +536,3498 @@ static unsigned char *combining_class_table[256] = {
 typedef struct
 {
   unsigned short ch;
+  unsigned char canon_offset;
+  unsigned char compat_offset;
   unsigned char *expansion;
 } decomposition;
 
 static decomposition decomp_table[] =
 {
-  { 0x00c0, "\x00\x41\x03\x00\0" },
-  { 0x00c1, "\x00\x41\x03\x01\0" },
-  { 0x00c2, "\x00\x41\x03\x02\0" },
-  { 0x00c3, "\x00\x41\x03\x03\0" },
-  { 0x00c4, "\x00\x41\x03\x08\0" },
-  { 0x00c5, "\x00\x41\x03\x0a\0" },
-  { 0x00c7, "\x00\x43\x03\x27\0" },
-  { 0x00c8, "\x00\x45\x03\x00\0" },
-  { 0x00c9, "\x00\x45\x03\x01\0" },
-  { 0x00ca, "\x00\x45\x03\x02\0" },
-  { 0x00cb, "\x00\x45\x03\x08\0" },
-  { 0x00cc, "\x00\x49\x03\x00\0" },
-  { 0x00cd, "\x00\x49\x03\x01\0" },
-  { 0x00ce, "\x00\x49\x03\x02\0" },
-  { 0x00cf, "\x00\x49\x03\x08\0" },
-  { 0x00d1, "\x00\x4e\x03\x03\0" },
-  { 0x00d2, "\x00\x4f\x03\x00\0" },
-  { 0x00d3, "\x00\x4f\x03\x01\0" },
-  { 0x00d4, "\x00\x4f\x03\x02\0" },
-  { 0x00d5, "\x00\x4f\x03\x03\0" },
-  { 0x00d6, "\x00\x4f\x03\x08\0" },
-  { 0x00d9, "\x00\x55\x03\x00\0" },
-  { 0x00da, "\x00\x55\x03\x01\0" },
-  { 0x00db, "\x00\x55\x03\x02\0" },
-  { 0x00dc, "\x00\x55\x03\x08\0" },
-  { 0x00dd, "\x00\x59\x03\x01\0" },
-  { 0x00e0, "\x00\x61\x03\x00\0" },
-  { 0x00e1, "\x00\x61\x03\x01\0" },
-  { 0x00e2, "\x00\x61\x03\x02\0" },
-  { 0x00e3, "\x00\x61\x03\x03\0" },
-  { 0x00e4, "\x00\x61\x03\x08\0" },
-  { 0x00e5, "\x00\x61\x03\x0a\0" },
-  { 0x00e7, "\x00\x63\x03\x27\0" },
-  { 0x00e8, "\x00\x65\x03\x00\0" },
-  { 0x00e9, "\x00\x65\x03\x01\0" },
-  { 0x00ea, "\x00\x65\x03\x02\0" },
-  { 0x00eb, "\x00\x65\x03\x08\0" },
-  { 0x00ec, "\x00\x69\x03\x00\0" },
-  { 0x00ed, "\x00\x69\x03\x01\0" },
-  { 0x00ee, "\x00\x69\x03\x02\0" },
-  { 0x00ef, "\x00\x69\x03\x08\0" },
-  { 0x00f1, "\x00\x6e\x03\x03\0" },
-  { 0x00f2, "\x00\x6f\x03\x00\0" },
-  { 0x00f3, "\x00\x6f\x03\x01\0" },
-  { 0x00f4, "\x00\x6f\x03\x02\0" },
-  { 0x00f5, "\x00\x6f\x03\x03\0" },
-  { 0x00f6, "\x00\x6f\x03\x08\0" },
-  { 0x00f9, "\x00\x75\x03\x00\0" },
-  { 0x00fa, "\x00\x75\x03\x01\0" },
-  { 0x00fb, "\x00\x75\x03\x02\0" },
-  { 0x00fc, "\x00\x75\x03\x08\0" },
-  { 0x00fd, "\x00\x79\x03\x01\0" },
-  { 0x00ff, "\x00\x79\x03\x08\0" },
-  { 0x0100, "\x00\x41\x03\x04\0" },
-  { 0x0101, "\x00\x61\x03\x04\0" },
-  { 0x0102, "\x00\x41\x03\x06\0" },
-  { 0x0103, "\x00\x61\x03\x06\0" },
-  { 0x0104, "\x00\x41\x03\x28\0" },
-  { 0x0105, "\x00\x61\x03\x28\0" },
-  { 0x0106, "\x00\x43\x03\x01\0" },
-  { 0x0107, "\x00\x63\x03\x01\0" },
-  { 0x0108, "\x00\x43\x03\x02\0" },
-  { 0x0109, "\x00\x63\x03\x02\0" },
-  { 0x010a, "\x00\x43\x03\x07\0" },
-  { 0x010b, "\x00\x63\x03\x07\0" },
-  { 0x010c, "\x00\x43\x03\x0c\0" },
-  { 0x010d, "\x00\x63\x03\x0c\0" },
-  { 0x010e, "\x00\x44\x03\x0c\0" },
-  { 0x010f, "\x00\x64\x03\x0c\0" },
-  { 0x0112, "\x00\x45\x03\x04\0" },
-  { 0x0113, "\x00\x65\x03\x04\0" },
-  { 0x0114, "\x00\x45\x03\x06\0" },
-  { 0x0115, "\x00\x65\x03\x06\0" },
-  { 0x0116, "\x00\x45\x03\x07\0" },
-  { 0x0117, "\x00\x65\x03\x07\0" },
-  { 0x0118, "\x00\x45\x03\x28\0" },
-  { 0x0119, "\x00\x65\x03\x28\0" },
-  { 0x011a, "\x00\x45\x03\x0c\0" },
-  { 0x011b, "\x00\x65\x03\x0c\0" },
-  { 0x011c, "\x00\x47\x03\x02\0" },
-  { 0x011d, "\x00\x67\x03\x02\0" },
-  { 0x011e, "\x00\x47\x03\x06\0" },
-  { 0x011f, "\x00\x67\x03\x06\0" },
-  { 0x0120, "\x00\x47\x03\x07\0" },
-  { 0x0121, "\x00\x67\x03\x07\0" },
-  { 0x0122, "\x00\x47\x03\x27\0" },
-  { 0x0123, "\x00\x67\x03\x27\0" },
-  { 0x0124, "\x00\x48\x03\x02\0" },
-  { 0x0125, "\x00\x68\x03\x02\0" },
-  { 0x0128, "\x00\x49\x03\x03\0" },
-  { 0x0129, "\x00\x69\x03\x03\0" },
-  { 0x012a, "\x00\x49\x03\x04\0" },
-  { 0x012b, "\x00\x69\x03\x04\0" },
-  { 0x012c, "\x00\x49\x03\x06\0" },
-  { 0x012d, "\x00\x69\x03\x06\0" },
-  { 0x012e, "\x00\x49\x03\x28\0" },
-  { 0x012f, "\x00\x69\x03\x28\0" },
-  { 0x0130, "\x00\x49\x03\x07\0" },
-  { 0x0134, "\x00\x4a\x03\x02\0" },
-  { 0x0135, "\x00\x6a\x03\x02\0" },
-  { 0x0136, "\x00\x4b\x03\x27\0" },
-  { 0x0137, "\x00\x6b\x03\x27\0" },
-  { 0x0139, "\x00\x4c\x03\x01\0" },
-  { 0x013a, "\x00\x6c\x03\x01\0" },
-  { 0x013b, "\x00\x4c\x03\x27\0" },
-  { 0x013c, "\x00\x6c\x03\x27\0" },
-  { 0x013d, "\x00\x4c\x03\x0c\0" },
-  { 0x013e, "\x00\x6c\x03\x0c\0" },
-  { 0x0143, "\x00\x4e\x03\x01\0" },
-  { 0x0144, "\x00\x6e\x03\x01\0" },
-  { 0x0145, "\x00\x4e\x03\x27\0" },
-  { 0x0146, "\x00\x6e\x03\x27\0" },
-  { 0x0147, "\x00\x4e\x03\x0c\0" },
-  { 0x0148, "\x00\x6e\x03\x0c\0" },
-  { 0x014c, "\x00\x4f\x03\x04\0" },
-  { 0x014d, "\x00\x6f\x03\x04\0" },
-  { 0x014e, "\x00\x4f\x03\x06\0" },
-  { 0x014f, "\x00\x6f\x03\x06\0" },
-  { 0x0150, "\x00\x4f\x03\x0b\0" },
-  { 0x0151, "\x00\x6f\x03\x0b\0" },
-  { 0x0154, "\x00\x52\x03\x01\0" },
-  { 0x0155, "\x00\x72\x03\x01\0" },
-  { 0x0156, "\x00\x52\x03\x27\0" },
-  { 0x0157, "\x00\x72\x03\x27\0" },
-  { 0x0158, "\x00\x52\x03\x0c\0" },
-  { 0x0159, "\x00\x72\x03\x0c\0" },
-  { 0x015a, "\x00\x53\x03\x01\0" },
-  { 0x015b, "\x00\x73\x03\x01\0" },
-  { 0x015c, "\x00\x53\x03\x02\0" },
-  { 0x015d, "\x00\x73\x03\x02\0" },
-  { 0x015e, "\x00\x53\x03\x27\0" },
-  { 0x015f, "\x00\x73\x03\x27\0" },
-  { 0x0160, "\x00\x53\x03\x0c\0" },
-  { 0x0161, "\x00\x73\x03\x0c\0" },
-  { 0x0162, "\x00\x54\x03\x27\0" },
-  { 0x0163, "\x00\x74\x03\x27\0" },
-  { 0x0164, "\x00\x54\x03\x0c\0" },
-  { 0x0165, "\x00\x74\x03\x0c\0" },
-  { 0x0168, "\x00\x55\x03\x03\0" },
-  { 0x0169, "\x00\x75\x03\x03\0" },
-  { 0x016a, "\x00\x55\x03\x04\0" },
-  { 0x016b, "\x00\x75\x03\x04\0" },
-  { 0x016c, "\x00\x55\x03\x06\0" },
-  { 0x016d, "\x00\x75\x03\x06\0" },
-  { 0x016e, "\x00\x55\x03\x0a\0" },
-  { 0x016f, "\x00\x75\x03\x0a\0" },
-  { 0x0170, "\x00\x55\x03\x0b\0" },
-  { 0x0171, "\x00\x75\x03\x0b\0" },
-  { 0x0172, "\x00\x55\x03\x28\0" },
-  { 0x0173, "\x00\x75\x03\x28\0" },
-  { 0x0174, "\x00\x57\x03\x02\0" },
-  { 0x0175, "\x00\x77\x03\x02\0" },
-  { 0x0176, "\x00\x59\x03\x02\0" },
-  { 0x0177, "\x00\x79\x03\x02\0" },
-  { 0x0178, "\x00\x59\x03\x08\0" },
-  { 0x0179, "\x00\x5a\x03\x01\0" },
-  { 0x017a, "\x00\x7a\x03\x01\0" },
-  { 0x017b, "\x00\x5a\x03\x07\0" },
-  { 0x017c, "\x00\x7a\x03\x07\0" },
-  { 0x017d, "\x00\x5a\x03\x0c\0" },
-  { 0x017e, "\x00\x7a\x03\x0c\0" },
-  { 0x01a0, "\x00\x4f\x03\x1b\0" },
-  { 0x01a1, "\x00\x6f\x03\x1b\0" },
-  { 0x01af, "\x00\x55\x03\x1b\0" },
-  { 0x01b0, "\x00\x75\x03\x1b\0" },
-  { 0x01cd, "\x00\x41\x03\x0c\0" },
-  { 0x01ce, "\x00\x61\x03\x0c\0" },
-  { 0x01cf, "\x00\x49\x03\x0c\0" },
-  { 0x01d0, "\x00\x69\x03\x0c\0" },
-  { 0x01d1, "\x00\x4f\x03\x0c\0" },
-  { 0x01d2, "\x00\x6f\x03\x0c\0" },
-  { 0x01d3, "\x00\x55\x03\x0c\0" },
-  { 0x01d4, "\x00\x75\x03\x0c\0" },
-  { 0x01d5, "\x00\x55\x03\x08\x03\x04\0" },
-  { 0x01d6, "\x00\x75\x03\x08\x03\x04\0" },
-  { 0x01d7, "\x00\x55\x03\x08\x03\x01\0" },
-  { 0x01d8, "\x00\x75\x03\x08\x03\x01\0" },
-  { 0x01d9, "\x00\x55\x03\x08\x03\x0c\0" },
-  { 0x01da, "\x00\x75\x03\x08\x03\x0c\0" },
-  { 0x01db, "\x00\x55\x03\x08\x03\x00\0" },
-  { 0x01dc, "\x00\x75\x03\x08\x03\x00\0" },
-  { 0x01de, "\x00\x41\x03\x08\x03\x04\0" },
-  { 0x01df, "\x00\x61\x03\x08\x03\x04\0" },
-  { 0x01e0, "\x00\x41\x03\x07\x03\x04\0" },
-  { 0x01e1, "\x00\x61\x03\x07\x03\x04\0" },
-  { 0x01e2, "\x00\xc6\x03\x04\0" },
-  { 0x01e3, "\x00\xe6\x03\x04\0" },
-  { 0x01e6, "\x00\x47\x03\x0c\0" },
-  { 0x01e7, "\x00\x67\x03\x0c\0" },
-  { 0x01e8, "\x00\x4b\x03\x0c\0" },
-  { 0x01e9, "\x00\x6b\x03\x0c\0" },
-  { 0x01ea, "\x00\x4f\x03\x28\0" },
-  { 0x01eb, "\x00\x6f\x03\x28\0" },
-  { 0x01ec, "\x00\x4f\x03\x28\x03\x04\0" },
-  { 0x01ed, "\x00\x6f\x03\x28\x03\x04\0" },
-  { 0x01ee, "\x01\xb7\x03\x0c\0" },
-  { 0x01ef, "\x02\x92\x03\x0c\0" },
-  { 0x01f0, "\x00\x6a\x03\x0c\0" },
-  { 0x01f4, "\x00\x47\x03\x01\0" },
-  { 0x01f5, "\x00\x67\x03\x01\0" },
-  { 0x01f8, "\x00\x4e\x03\x00\0" },
-  { 0x01f9, "\x00\x6e\x03\x00\0" },
-  { 0x01fa, "\x00\x41\x03\x0a\x03\x01\0" },
-  { 0x01fb, "\x00\x61\x03\x0a\x03\x01\0" },
-  { 0x01fc, "\x00\xc6\x03\x01\0" },
-  { 0x01fd, "\x00\xe6\x03\x01\0" },
-  { 0x01fe, "\x00\xd8\x03\x01\0" },
-  { 0x01ff, "\x00\xf8\x03\x01\0" },
-  { 0x0200, "\x00\x41\x03\x0f\0" },
-  { 0x0201, "\x00\x61\x03\x0f\0" },
-  { 0x0202, "\x00\x41\x03\x11\0" },
-  { 0x0203, "\x00\x61\x03\x11\0" },
-  { 0x0204, "\x00\x45\x03\x0f\0" },
-  { 0x0205, "\x00\x65\x03\x0f\0" },
-  { 0x0206, "\x00\x45\x03\x11\0" },
-  { 0x0207, "\x00\x65\x03\x11\0" },
-  { 0x0208, "\x00\x49\x03\x0f\0" },
-  { 0x0209, "\x00\x69\x03\x0f\0" },
-  { 0x020a, "\x00\x49\x03\x11\0" },
-  { 0x020b, "\x00\x69\x03\x11\0" },
-  { 0x020c, "\x00\x4f\x03\x0f\0" },
-  { 0x020d, "\x00\x6f\x03\x0f\0" },
-  { 0x020e, "\x00\x4f\x03\x11\0" },
-  { 0x020f, "\x00\x6f\x03\x11\0" },
-  { 0x0210, "\x00\x52\x03\x0f\0" },
-  { 0x0211, "\x00\x72\x03\x0f\0" },
-  { 0x0212, "\x00\x52\x03\x11\0" },
-  { 0x0213, "\x00\x72\x03\x11\0" },
-  { 0x0214, "\x00\x55\x03\x0f\0" },
-  { 0x0215, "\x00\x75\x03\x0f\0" },
-  { 0x0216, "\x00\x55\x03\x11\0" },
-  { 0x0217, "\x00\x75\x03\x11\0" },
-  { 0x0218, "\x00\x53\x03\x26\0" },
-  { 0x0219, "\x00\x73\x03\x26\0" },
-  { 0x021a, "\x00\x54\x03\x26\0" },
-  { 0x021b, "\x00\x74\x03\x26\0" },
-  { 0x021e, "\x00\x48\x03\x0c\0" },
-  { 0x021f, "\x00\x68\x03\x0c\0" },
-  { 0x0226, "\x00\x41\x03\x07\0" },
-  { 0x0227, "\x00\x61\x03\x07\0" },
-  { 0x0228, "\x00\x45\x03\x27\0" },
-  { 0x0229, "\x00\x65\x03\x27\0" },
-  { 0x022a, "\x00\x4f\x03\x08\x03\x04\0" },
-  { 0x022b, "\x00\x6f\x03\x08\x03\x04\0" },
-  { 0x022c, "\x00\x4f\x03\x03\x03\x04\0" },
-  { 0x022d, "\x00\x6f\x03\x03\x03\x04\0" },
-  { 0x022e, "\x00\x4f\x03\x07\0" },
-  { 0x022f, "\x00\x6f\x03\x07\0" },
-  { 0x0230, "\x00\x4f\x03\x07\x03\x04\0" },
-  { 0x0231, "\x00\x6f\x03\x07\x03\x04\0" },
-  { 0x0232, "\x00\x59\x03\x04\0" },
-  { 0x0233, "\x00\x79\x03\x04\0" },
-  { 0x0340, "\x03\x00\0" },
-  { 0x0341, "\x03\x01\0" },
-  { 0x0343, "\x03\x13\0" },
-  { 0x0344, "\x03\x08\x03\x01\0" },
-  { 0x0374, "\x02\xb9\0" },
-  { 0x037e, "\x00\x3b\0" },
-  { 0x0385, "\x00\xa8\x03\x01\0" },
-  { 0x0386, "\x03\x91\x03\x01\0" },
-  { 0x0387, "\x00\xb7\0" },
-  { 0x0388, "\x03\x95\x03\x01\0" },
-  { 0x0389, "\x03\x97\x03\x01\0" },
-  { 0x038a, "\x03\x99\x03\x01\0" },
-  { 0x038c, "\x03\x9f\x03\x01\0" },
-  { 0x038e, "\x03\xa5\x03\x01\0" },
-  { 0x038f, "\x03\xa9\x03\x01\0" },
-  { 0x0390, "\x03\xb9\x03\x08\x03\x01\0" },
-  { 0x03aa, "\x03\x99\x03\x08\0" },
-  { 0x03ab, "\x03\xa5\x03\x08\0" },
-  { 0x03ac, "\x03\xb1\x03\x01\0" },
-  { 0x03ad, "\x03\xb5\x03\x01\0" },
-  { 0x03ae, "\x03\xb7\x03\x01\0" },
-  { 0x03af, "\x03\xb9\x03\x01\0" },
-  { 0x03b0, "\x03\xc5\x03\x08\x03\x01\0" },
-  { 0x03ca, "\x03\xb9\x03\x08\0" },
-  { 0x03cb, "\x03\xc5\x03\x08\0" },
-  { 0x03cc, "\x03\xbf\x03\x01\0" },
-  { 0x03cd, "\x03\xc5\x03\x01\0" },
-  { 0x03ce, "\x03\xc9\x03\x01\0" },
-  { 0x03d3, "\x03\xd2\x03\x01\0" },
-  { 0x03d4, "\x03\xd2\x03\x08\0" },
-  { 0x0400, "\x04\x15\x03\x00\0" },
-  { 0x0401, "\x04\x15\x03\x08\0" },
-  { 0x0403, "\x04\x13\x03\x01\0" },
-  { 0x0407, "\x04\x06\x03\x08\0" },
-  { 0x040c, "\x04\x1a\x03\x01\0" },
-  { 0x040d, "\x04\x18\x03\x00\0" },
-  { 0x040e, "\x04\x23\x03\x06\0" },
-  { 0x0419, "\x04\x18\x03\x06\0" },
-  { 0x0439, "\x04\x38\x03\x06\0" },
-  { 0x0450, "\x04\x35\x03\x00\0" },
-  { 0x0451, "\x04\x35\x03\x08\0" },
-  { 0x0453, "\x04\x33\x03\x01\0" },
-  { 0x0457, "\x04\x56\x03\x08\0" },
-  { 0x045c, "\x04\x3a\x03\x01\0" },
-  { 0x045d, "\x04\x38\x03\x00\0" },
-  { 0x045e, "\x04\x43\x03\x06\0" },
-  { 0x0476, "\x04\x74\x03\x0f\0" },
-  { 0x0477, "\x04\x75\x03\x0f\0" },
-  { 0x04c1, "\x04\x16\x03\x06\0" },
-  { 0x04c2, "\x04\x36\x03\x06\0" },
-  { 0x04d0, "\x04\x10\x03\x06\0" },
-  { 0x04d1, "\x04\x30\x03\x06\0" },
-  { 0x04d2, "\x04\x10\x03\x08\0" },
-  { 0x04d3, "\x04\x30\x03\x08\0" },
-  { 0x04d6, "\x04\x15\x03\x06\0" },
-  { 0x04d7, "\x04\x35\x03\x06\0" },
-  { 0x04da, "\x04\xd8\x03\x08\0" },
-  { 0x04db, "\x04\xd9\x03\x08\0" },
-  { 0x04dc, "\x04\x16\x03\x08\0" },
-  { 0x04dd, "\x04\x36\x03\x08\0" },
-  { 0x04de, "\x04\x17\x03\x08\0" },
-  { 0x04df, "\x04\x37\x03\x08\0" },
-  { 0x04e2, "\x04\x18\x03\x04\0" },
-  { 0x04e3, "\x04\x38\x03\x04\0" },
-  { 0x04e4, "\x04\x18\x03\x08\0" },
-  { 0x04e5, "\x04\x38\x03\x08\0" },
-  { 0x04e6, "\x04\x1e\x03\x08\0" },
-  { 0x04e7, "\x04\x3e\x03\x08\0" },
-  { 0x04ea, "\x04\xe8\x03\x08\0" },
-  { 0x04eb, "\x04\xe9\x03\x08\0" },
-  { 0x04ec, "\x04\x2d\x03\x08\0" },
-  { 0x04ed, "\x04\x4d\x03\x08\0" },
-  { 0x04ee, "\x04\x23\x03\x04\0" },
-  { 0x04ef, "\x04\x43\x03\x04\0" },
-  { 0x04f0, "\x04\x23\x03\x08\0" },
-  { 0x04f1, "\x04\x43\x03\x08\0" },
-  { 0x04f2, "\x04\x23\x03\x0b\0" },
-  { 0x04f3, "\x04\x43\x03\x0b\0" },
-  { 0x04f4, "\x04\x27\x03\x08\0" },
-  { 0x04f5, "\x04\x47\x03\x08\0" },
-  { 0x04f8, "\x04\x2b\x03\x08\0" },
-  { 0x04f9, "\x04\x4b\x03\x08\0" },
-  { 0x0622, "\x06\x27\x06\x53\0" },
-  { 0x0623, "\x06\x27\x06\x54\0" },
-  { 0x0624, "\x06\x48\x06\x54\0" },
-  { 0x0625, "\x06\x27\x06\x55\0" },
-  { 0x0626, "\x06\x4a\x06\x54\0" },
-  { 0x06c0, "\x06\xd5\x06\x54\0" },
-  { 0x06c2, "\x06\xc1\x06\x54\0" },
-  { 0x06d3, "\x06\xd2\x06\x54\0" },
-  { 0x0929, "\x09\x28\x09\x3c\0" },
-  { 0x0931, "\x09\x30\x09\x3c\0" },
-  { 0x0934, "\x09\x33\x09\x3c\0" },
-  { 0x0958, "\x09\x15\x09\x3c\0" },
-  { 0x0959, "\x09\x16\x09\x3c\0" },
-  { 0x095a, "\x09\x17\x09\x3c\0" },
-  { 0x095b, "\x09\x1c\x09\x3c\0" },
-  { 0x095c, "\x09\x21\x09\x3c\0" },
-  { 0x095d, "\x09\x22\x09\x3c\0" },
-  { 0x095e, "\x09\x2b\x09\x3c\0" },
-  { 0x095f, "\x09\x2f\x09\x3c\0" },
-  { 0x09cb, "\x09\xc7\x09\xbe\0" },
-  { 0x09cc, "\x09\xc7\x09\xd7\0" },
-  { 0x09dc, "\x09\xa1\x09\xbc\0" },
-  { 0x09dd, "\x09\xa2\x09\xbc\0" },
-  { 0x09df, "\x09\xaf\x09\xbc\0" },
-  { 0x0a33, "\x0a\x32\x0a\x3c\0" },
-  { 0x0a36, "\x0a\x38\x0a\x3c\0" },
-  { 0x0a59, "\x0a\x16\x0a\x3c\0" },
-  { 0x0a5a, "\x0a\x17\x0a\x3c\0" },
-  { 0x0a5b, "\x0a\x1c\x0a\x3c\0" },
-  { 0x0a5e, "\x0a\x2b\x0a\x3c\0" },
-  { 0x0b48, "\x0b\x47\x0b\x56\0" },
-  { 0x0b4b, "\x0b\x47\x0b\x3e\0" },
-  { 0x0b4c, "\x0b\x47\x0b\x57\0" },
-  { 0x0b5c, "\x0b\x21\x0b\x3c\0" },
-  { 0x0b5d, "\x0b\x22\x0b\x3c\0" },
-  { 0x0b94, "\x0b\x92\x0b\xd7\0" },
-  { 0x0bca, "\x0b\xc6\x0b\xbe\0" },
-  { 0x0bcb, "\x0b\xc7\x0b\xbe\0" },
-  { 0x0bcc, "\x0b\xc6\x0b\xd7\0" },
-  { 0x0c48, "\x0c\x46\x0c\x56\0" },
-  { 0x0cc0, "\x0c\xbf\x0c\xd5\0" },
-  { 0x0cc7, "\x0c\xc6\x0c\xd5\0" },
-  { 0x0cc8, "\x0c\xc6\x0c\xd6\0" },
-  { 0x0cca, "\x0c\xc6\x0c\xc2\0" },
-  { 0x0ccb, "\x0c\xc6\x0c\xc2\x0c\xd5\0" },
-  { 0x0d4a, "\x0d\x46\x0d\x3e\0" },
-  { 0x0d4b, "\x0d\x47\x0d\x3e\0" },
-  { 0x0d4c, "\x0d\x46\x0d\x57\0" },
-  { 0x0dda, "\x0d\xd9\x0d\xca\0" },
-  { 0x0ddc, "\x0d\xd9\x0d\xcf\0" },
-  { 0x0ddd, "\x0d\xd9\x0d\xcf\x0d\xca\0" },
-  { 0x0dde, "\x0d\xd9\x0d\xdf\0" },
-  { 0x0f43, "\x0f\x42\x0f\xb7\0" },
-  { 0x0f4d, "\x0f\x4c\x0f\xb7\0" },
-  { 0x0f52, "\x0f\x51\x0f\xb7\0" },
-  { 0x0f57, "\x0f\x56\x0f\xb7\0" },
-  { 0x0f5c, "\x0f\x5b\x0f\xb7\0" },
-  { 0x0f69, "\x0f\x40\x0f\xb5\0" },
-  { 0x0f73, "\x0f\x71\x0f\x72\0" },
-  { 0x0f75, "\x0f\x71\x0f\x74\0" },
-  { 0x0f76, "\x0f\xb2\x0f\x80\0" },
-  { 0x0f78, "\x0f\xb3\x0f\x80\0" },
-  { 0x0f81, "\x0f\x71\x0f\x80\0" },
-  { 0x0f93, "\x0f\x92\x0f\xb7\0" },
-  { 0x0f9d, "\x0f\x9c\x0f\xb7\0" },
-  { 0x0fa2, "\x0f\xa1\x0f\xb7\0" },
-  { 0x0fa7, "\x0f\xa6\x0f\xb7\0" },
-  { 0x0fac, "\x0f\xab\x0f\xb7\0" },
-  { 0x0fb9, "\x0f\x90\x0f\xb5\0" },
-  { 0x1026, "\x10\x25\x10\x2e\0" },
-  { 0x1e00, "\x00\x41\x03\x25\0" },
-  { 0x1e01, "\x00\x61\x03\x25\0" },
-  { 0x1e02, "\x00\x42\x03\x07\0" },
-  { 0x1e03, "\x00\x62\x03\x07\0" },
-  { 0x1e04, "\x00\x42\x03\x23\0" },
-  { 0x1e05, "\x00\x62\x03\x23\0" },
-  { 0x1e06, "\x00\x42\x03\x31\0" },
-  { 0x1e07, "\x00\x62\x03\x31\0" },
-  { 0x1e08, "\x00\x43\x03\x27\x03\x01\0" },
-  { 0x1e09, "\x00\x63\x03\x27\x03\x01\0" },
-  { 0x1e0a, "\x00\x44\x03\x07\0" },
-  { 0x1e0b, "\x00\x64\x03\x07\0" },
-  { 0x1e0c, "\x00\x44\x03\x23\0" },
-  { 0x1e0d, "\x00\x64\x03\x23\0" },
-  { 0x1e0e, "\x00\x44\x03\x31\0" },
-  { 0x1e0f, "\x00\x64\x03\x31\0" },
-  { 0x1e10, "\x00\x44\x03\x27\0" },
-  { 0x1e11, "\x00\x64\x03\x27\0" },
-  { 0x1e12, "\x00\x44\x03\x2d\0" },
-  { 0x1e13, "\x00\x64\x03\x2d\0" },
-  { 0x1e14, "\x00\x45\x03\x04\x03\x00\0" },
-  { 0x1e15, "\x00\x65\x03\x04\x03\x00\0" },
-  { 0x1e16, "\x00\x45\x03\x04\x03\x01\0" },
-  { 0x1e17, "\x00\x65\x03\x04\x03\x01\0" },
-  { 0x1e18, "\x00\x45\x03\x2d\0" },
-  { 0x1e19, "\x00\x65\x03\x2d\0" },
-  { 0x1e1a, "\x00\x45\x03\x30\0" },
-  { 0x1e1b, "\x00\x65\x03\x30\0" },
-  { 0x1e1c, "\x00\x45\x03\x27\x03\x06\0" },
-  { 0x1e1d, "\x00\x65\x03\x27\x03\x06\0" },
-  { 0x1e1e, "\x00\x46\x03\x07\0" },
-  { 0x1e1f, "\x00\x66\x03\x07\0" },
-  { 0x1e20, "\x00\x47\x03\x04\0" },
-  { 0x1e21, "\x00\x67\x03\x04\0" },
-  { 0x1e22, "\x00\x48\x03\x07\0" },
-  { 0x1e23, "\x00\x68\x03\x07\0" },
-  { 0x1e24, "\x00\x48\x03\x23\0" },
-  { 0x1e25, "\x00\x68\x03\x23\0" },
-  { 0x1e26, "\x00\x48\x03\x08\0" },
-  { 0x1e27, "\x00\x68\x03\x08\0" },
-  { 0x1e28, "\x00\x48\x03\x27\0" },
-  { 0x1e29, "\x00\x68\x03\x27\0" },
-  { 0x1e2a, "\x00\x48\x03\x2e\0" },
-  { 0x1e2b, "\x00\x68\x03\x2e\0" },
-  { 0x1e2c, "\x00\x49\x03\x30\0" },
-  { 0x1e2d, "\x00\x69\x03\x30\0" },
-  { 0x1e2e, "\x00\x49\x03\x08\x03\x01\0" },
-  { 0x1e2f, "\x00\x69\x03\x08\x03\x01\0" },
-  { 0x1e30, "\x00\x4b\x03\x01\0" },
-  { 0x1e31, "\x00\x6b\x03\x01\0" },
-  { 0x1e32, "\x00\x4b\x03\x23\0" },
-  { 0x1e33, "\x00\x6b\x03\x23\0" },
-  { 0x1e34, "\x00\x4b\x03\x31\0" },
-  { 0x1e35, "\x00\x6b\x03\x31\0" },
-  { 0x1e36, "\x00\x4c\x03\x23\0" },
-  { 0x1e37, "\x00\x6c\x03\x23\0" },
-  { 0x1e38, "\x00\x4c\x03\x23\x03\x04\0" },
-  { 0x1e39, "\x00\x6c\x03\x23\x03\x04\0" },
-  { 0x1e3a, "\x00\x4c\x03\x31\0" },
-  { 0x1e3b, "\x00\x6c\x03\x31\0" },
-  { 0x1e3c, "\x00\x4c\x03\x2d\0" },
-  { 0x1e3d, "\x00\x6c\x03\x2d\0" },
-  { 0x1e3e, "\x00\x4d\x03\x01\0" },
-  { 0x1e3f, "\x00\x6d\x03\x01\0" },
-  { 0x1e40, "\x00\x4d\x03\x07\0" },
-  { 0x1e41, "\x00\x6d\x03\x07\0" },
-  { 0x1e42, "\x00\x4d\x03\x23\0" },
-  { 0x1e43, "\x00\x6d\x03\x23\0" },
-  { 0x1e44, "\x00\x4e\x03\x07\0" },
-  { 0x1e45, "\x00\x6e\x03\x07\0" },
-  { 0x1e46, "\x00\x4e\x03\x23\0" },
-  { 0x1e47, "\x00\x6e\x03\x23\0" },
-  { 0x1e48, "\x00\x4e\x03\x31\0" },
-  { 0x1e49, "\x00\x6e\x03\x31\0" },
-  { 0x1e4a, "\x00\x4e\x03\x2d\0" },
-  { 0x1e4b, "\x00\x6e\x03\x2d\0" },
-  { 0x1e4c, "\x00\x4f\x03\x03\x03\x01\0" },
-  { 0x1e4d, "\x00\x6f\x03\x03\x03\x01\0" },
-  { 0x1e4e, "\x00\x4f\x03\x03\x03\x08\0" },
-  { 0x1e4f, "\x00\x6f\x03\x03\x03\x08\0" },
-  { 0x1e50, "\x00\x4f\x03\x04\x03\x00\0" },
-  { 0x1e51, "\x00\x6f\x03\x04\x03\x00\0" },
-  { 0x1e52, "\x00\x4f\x03\x04\x03\x01\0" },
-  { 0x1e53, "\x00\x6f\x03\x04\x03\x01\0" },
-  { 0x1e54, "\x00\x50\x03\x01\0" },
-  { 0x1e55, "\x00\x70\x03\x01\0" },
-  { 0x1e56, "\x00\x50\x03\x07\0" },
-  { 0x1e57, "\x00\x70\x03\x07\0" },
-  { 0x1e58, "\x00\x52\x03\x07\0" },
-  { 0x1e59, "\x00\x72\x03\x07\0" },
-  { 0x1e5a, "\x00\x52\x03\x23\0" },
-  { 0x1e5b, "\x00\x72\x03\x23\0" },
-  { 0x1e5c, "\x00\x52\x03\x23\x03\x04\0" },
-  { 0x1e5d, "\x00\x72\x03\x23\x03\x04\0" },
-  { 0x1e5e, "\x00\x52\x03\x31\0" },
-  { 0x1e5f, "\x00\x72\x03\x31\0" },
-  { 0x1e60, "\x00\x53\x03\x07\0" },
-  { 0x1e61, "\x00\x73\x03\x07\0" },
-  { 0x1e62, "\x00\x53\x03\x23\0" },
-  { 0x1e63, "\x00\x73\x03\x23\0" },
-  { 0x1e64, "\x00\x53\x03\x01\x03\x07\0" },
-  { 0x1e65, "\x00\x73\x03\x01\x03\x07\0" },
-  { 0x1e66, "\x00\x53\x03\x0c\x03\x07\0" },
-  { 0x1e67, "\x00\x73\x03\x0c\x03\x07\0" },
-  { 0x1e68, "\x00\x53\x03\x23\x03\x07\0" },
-  { 0x1e69, "\x00\x73\x03\x23\x03\x07\0" },
-  { 0x1e6a, "\x00\x54\x03\x07\0" },
-  { 0x1e6b, "\x00\x74\x03\x07\0" },
-  { 0x1e6c, "\x00\x54\x03\x23\0" },
-  { 0x1e6d, "\x00\x74\x03\x23\0" },
-  { 0x1e6e, "\x00\x54\x03\x31\0" },
-  { 0x1e6f, "\x00\x74\x03\x31\0" },
-  { 0x1e70, "\x00\x54\x03\x2d\0" },
-  { 0x1e71, "\x00\x74\x03\x2d\0" },
-  { 0x1e72, "\x00\x55\x03\x24\0" },
-  { 0x1e73, "\x00\x75\x03\x24\0" },
-  { 0x1e74, "\x00\x55\x03\x30\0" },
-  { 0x1e75, "\x00\x75\x03\x30\0" },
-  { 0x1e76, "\x00\x55\x03\x2d\0" },
-  { 0x1e77, "\x00\x75\x03\x2d\0" },
-  { 0x1e78, "\x00\x55\x03\x03\x03\x01\0" },
-  { 0x1e79, "\x00\x75\x03\x03\x03\x01\0" },
-  { 0x1e7a, "\x00\x55\x03\x04\x03\x08\0" },
-  { 0x1e7b, "\x00\x75\x03\x04\x03\x08\0" },
-  { 0x1e7c, "\x00\x56\x03\x03\0" },
-  { 0x1e7d, "\x00\x76\x03\x03\0" },
-  { 0x1e7e, "\x00\x56\x03\x23\0" },
-  { 0x1e7f, "\x00\x76\x03\x23\0" },
-  { 0x1e80, "\x00\x57\x03\x00\0" },
-  { 0x1e81, "\x00\x77\x03\x00\0" },
-  { 0x1e82, "\x00\x57\x03\x01\0" },
-  { 0x1e83, "\x00\x77\x03\x01\0" },
-  { 0x1e84, "\x00\x57\x03\x08\0" },
-  { 0x1e85, "\x00\x77\x03\x08\0" },
-  { 0x1e86, "\x00\x57\x03\x07\0" },
-  { 0x1e87, "\x00\x77\x03\x07\0" },
-  { 0x1e88, "\x00\x57\x03\x23\0" },
-  { 0x1e89, "\x00\x77\x03\x23\0" },
-  { 0x1e8a, "\x00\x58\x03\x07\0" },
-  { 0x1e8b, "\x00\x78\x03\x07\0" },
-  { 0x1e8c, "\x00\x58\x03\x08\0" },
-  { 0x1e8d, "\x00\x78\x03\x08\0" },
-  { 0x1e8e, "\x00\x59\x03\x07\0" },
-  { 0x1e8f, "\x00\x79\x03\x07\0" },
-  { 0x1e90, "\x00\x5a\x03\x02\0" },
-  { 0x1e91, "\x00\x7a\x03\x02\0" },
-  { 0x1e92, "\x00\x5a\x03\x23\0" },
-  { 0x1e93, "\x00\x7a\x03\x23\0" },
-  { 0x1e94, "\x00\x5a\x03\x31\0" },
-  { 0x1e95, "\x00\x7a\x03\x31\0" },
-  { 0x1e96, "\x00\x68\x03\x31\0" },
-  { 0x1e97, "\x00\x74\x03\x08\0" },
-  { 0x1e98, "\x00\x77\x03\x0a\0" },
-  { 0x1e99, "\x00\x79\x03\x0a\0" },
-  { 0x1e9b, "\x01\x7f\x03\x07\0" },
-  { 0x1ea0, "\x00\x41\x03\x23\0" },
-  { 0x1ea1, "\x00\x61\x03\x23\0" },
-  { 0x1ea2, "\x00\x41\x03\x09\0" },
-  { 0x1ea3, "\x00\x61\x03\x09\0" },
-  { 0x1ea4, "\x00\x41\x03\x02\x03\x01\0" },
-  { 0x1ea5, "\x00\x61\x03\x02\x03\x01\0" },
-  { 0x1ea6, "\x00\x41\x03\x02\x03\x00\0" },
-  { 0x1ea7, "\x00\x61\x03\x02\x03\x00\0" },
-  { 0x1ea8, "\x00\x41\x03\x02\x03\x09\0" },
-  { 0x1ea9, "\x00\x61\x03\x02\x03\x09\0" },
-  { 0x1eaa, "\x00\x41\x03\x02\x03\x03\0" },
-  { 0x1eab, "\x00\x61\x03\x02\x03\x03\0" },
-  { 0x1eac, "\x00\x41\x03\x23\x03\x02\0" },
-  { 0x1ead, "\x00\x61\x03\x23\x03\x02\0" },
-  { 0x1eae, "\x00\x41\x03\x06\x03\x01\0" },
-  { 0x1eaf, "\x00\x61\x03\x06\x03\x01\0" },
-  { 0x1eb0, "\x00\x41\x03\x06\x03\x00\0" },
-  { 0x1eb1, "\x00\x61\x03\x06\x03\x00\0" },
-  { 0x1eb2, "\x00\x41\x03\x06\x03\x09\0" },
-  { 0x1eb3, "\x00\x61\x03\x06\x03\x09\0" },
-  { 0x1eb4, "\x00\x41\x03\x06\x03\x03\0" },
-  { 0x1eb5, "\x00\x61\x03\x06\x03\x03\0" },
-  { 0x1eb6, "\x00\x41\x03\x23\x03\x06\0" },
-  { 0x1eb7, "\x00\x61\x03\x23\x03\x06\0" },
-  { 0x1eb8, "\x00\x45\x03\x23\0" },
-  { 0x1eb9, "\x00\x65\x03\x23\0" },
-  { 0x1eba, "\x00\x45\x03\x09\0" },
-  { 0x1ebb, "\x00\x65\x03\x09\0" },
-  { 0x1ebc, "\x00\x45\x03\x03\0" },
-  { 0x1ebd, "\x00\x65\x03\x03\0" },
-  { 0x1ebe, "\x00\x45\x03\x02\x03\x01\0" },
-  { 0x1ebf, "\x00\x65\x03\x02\x03\x01\0" },
-  { 0x1ec0, "\x00\x45\x03\x02\x03\x00\0" },
-  { 0x1ec1, "\x00\x65\x03\x02\x03\x00\0" },
-  { 0x1ec2, "\x00\x45\x03\x02\x03\x09\0" },
-  { 0x1ec3, "\x00\x65\x03\x02\x03\x09\0" },
-  { 0x1ec4, "\x00\x45\x03\x02\x03\x03\0" },
-  { 0x1ec5, "\x00\x65\x03\x02\x03\x03\0" },
-  { 0x1ec6, "\x00\x45\x03\x23\x03\x02\0" },
-  { 0x1ec7, "\x00\x65\x03\x23\x03\x02\0" },
-  { 0x1ec8, "\x00\x49\x03\x09\0" },
-  { 0x1ec9, "\x00\x69\x03\x09\0" },
-  { 0x1eca, "\x00\x49\x03\x23\0" },
-  { 0x1ecb, "\x00\x69\x03\x23\0" },
-  { 0x1ecc, "\x00\x4f\x03\x23\0" },
-  { 0x1ecd, "\x00\x6f\x03\x23\0" },
-  { 0x1ece, "\x00\x4f\x03\x09\0" },
-  { 0x1ecf, "\x00\x6f\x03\x09\0" },
-  { 0x1ed0, "\x00\x4f\x03\x02\x03\x01\0" },
-  { 0x1ed1, "\x00\x6f\x03\x02\x03\x01\0" },
-  { 0x1ed2, "\x00\x4f\x03\x02\x03\x00\0" },
-  { 0x1ed3, "\x00\x6f\x03\x02\x03\x00\0" },
-  { 0x1ed4, "\x00\x4f\x03\x02\x03\x09\0" },
-  { 0x1ed5, "\x00\x6f\x03\x02\x03\x09\0" },
-  { 0x1ed6, "\x00\x4f\x03\x02\x03\x03\0" },
-  { 0x1ed7, "\x00\x6f\x03\x02\x03\x03\0" },
-  { 0x1ed8, "\x00\x4f\x03\x23\x03\x02\0" },
-  { 0x1ed9, "\x00\x6f\x03\x23\x03\x02\0" },
-  { 0x1eda, "\x00\x4f\x03\x1b\x03\x01\0" },
-  { 0x1edb, "\x00\x6f\x03\x1b\x03\x01\0" },
-  { 0x1edc, "\x00\x4f\x03\x1b\x03\x00\0" },
-  { 0x1edd, "\x00\x6f\x03\x1b\x03\x00\0" },
-  { 0x1ede, "\x00\x4f\x03\x1b\x03\x09\0" },
-  { 0x1edf, "\x00\x6f\x03\x1b\x03\x09\0" },
-  { 0x1ee0, "\x00\x4f\x03\x1b\x03\x03\0" },
-  { 0x1ee1, "\x00\x6f\x03\x1b\x03\x03\0" },
-  { 0x1ee2, "\x00\x4f\x03\x1b\x03\x23\0" },
-  { 0x1ee3, "\x00\x6f\x03\x1b\x03\x23\0" },
-  { 0x1ee4, "\x00\x55\x03\x23\0" },
-  { 0x1ee5, "\x00\x75\x03\x23\0" },
-  { 0x1ee6, "\x00\x55\x03\x09\0" },
-  { 0x1ee7, "\x00\x75\x03\x09\0" },
-  { 0x1ee8, "\x00\x55\x03\x1b\x03\x01\0" },
-  { 0x1ee9, "\x00\x75\x03\x1b\x03\x01\0" },
-  { 0x1eea, "\x00\x55\x03\x1b\x03\x00\0" },
-  { 0x1eeb, "\x00\x75\x03\x1b\x03\x00\0" },
-  { 0x1eec, "\x00\x55\x03\x1b\x03\x09\0" },
-  { 0x1eed, "\x00\x75\x03\x1b\x03\x09\0" },
-  { 0x1eee, "\x00\x55\x03\x1b\x03\x03\0" },
-  { 0x1eef, "\x00\x75\x03\x1b\x03\x03\0" },
-  { 0x1ef0, "\x00\x55\x03\x1b\x03\x23\0" },
-  { 0x1ef1, "\x00\x75\x03\x1b\x03\x23\0" },
-  { 0x1ef2, "\x00\x59\x03\x00\0" },
-  { 0x1ef3, "\x00\x79\x03\x00\0" },
-  { 0x1ef4, "\x00\x59\x03\x23\0" },
-  { 0x1ef5, "\x00\x79\x03\x23\0" },
-  { 0x1ef6, "\x00\x59\x03\x09\0" },
-  { 0x1ef7, "\x00\x79\x03\x09\0" },
-  { 0x1ef8, "\x00\x59\x03\x03\0" },
-  { 0x1ef9, "\x00\x79\x03\x03\0" },
-  { 0x1f00, "\x03\xb1\x03\x13\0" },
-  { 0x1f01, "\x03\xb1\x03\x14\0" },
-  { 0x1f02, "\x03\xb1\x03\x13\x03\x00\0" },
-  { 0x1f03, "\x03\xb1\x03\x14\x03\x00\0" },
-  { 0x1f04, "\x03\xb1\x03\x13\x03\x01\0" },
-  { 0x1f05, "\x03\xb1\x03\x14\x03\x01\0" },
-  { 0x1f06, "\x03\xb1\x03\x13\x03\x42\0" },
-  { 0x1f07, "\x03\xb1\x03\x14\x03\x42\0" },
-  { 0x1f08, "\x03\x91\x03\x13\0" },
-  { 0x1f09, "\x03\x91\x03\x14\0" },
-  { 0x1f0a, "\x03\x91\x03\x13\x03\x00\0" },
-  { 0x1f0b, "\x03\x91\x03\x14\x03\x00\0" },
-  { 0x1f0c, "\x03\x91\x03\x13\x03\x01\0" },
-  { 0x1f0d, "\x03\x91\x03\x14\x03\x01\0" },
-  { 0x1f0e, "\x03\x91\x03\x13\x03\x42\0" },
-  { 0x1f0f, "\x03\x91\x03\x14\x03\x42\0" },
-  { 0x1f10, "\x03\xb5\x03\x13\0" },
-  { 0x1f11, "\x03\xb5\x03\x14\0" },
-  { 0x1f12, "\x03\xb5\x03\x13\x03\x00\0" },
-  { 0x1f13, "\x03\xb5\x03\x14\x03\x00\0" },
-  { 0x1f14, "\x03\xb5\x03\x13\x03\x01\0" },
-  { 0x1f15, "\x03\xb5\x03\x14\x03\x01\0" },
-  { 0x1f18, "\x03\x95\x03\x13\0" },
-  { 0x1f19, "\x03\x95\x03\x14\0" },
-  { 0x1f1a, "\x03\x95\x03\x13\x03\x00\0" },
-  { 0x1f1b, "\x03\x95\x03\x14\x03\x00\0" },
-  { 0x1f1c, "\x03\x95\x03\x13\x03\x01\0" },
-  { 0x1f1d, "\x03\x95\x03\x14\x03\x01\0" },
-  { 0x1f20, "\x03\xb7\x03\x13\0" },
-  { 0x1f21, "\x03\xb7\x03\x14\0" },
-  { 0x1f22, "\x03\xb7\x03\x13\x03\x00\0" },
-  { 0x1f23, "\x03\xb7\x03\x14\x03\x00\0" },
-  { 0x1f24, "\x03\xb7\x03\x13\x03\x01\0" },
-  { 0x1f25, "\x03\xb7\x03\x14\x03\x01\0" },
-  { 0x1f26, "\x03\xb7\x03\x13\x03\x42\0" },
-  { 0x1f27, "\x03\xb7\x03\x14\x03\x42\0" },
-  { 0x1f28, "\x03\x97\x03\x13\0" },
-  { 0x1f29, "\x03\x97\x03\x14\0" },
-  { 0x1f2a, "\x03\x97\x03\x13\x03\x00\0" },
-  { 0x1f2b, "\x03\x97\x03\x14\x03\x00\0" },
-  { 0x1f2c, "\x03\x97\x03\x13\x03\x01\0" },
-  { 0x1f2d, "\x03\x97\x03\x14\x03\x01\0" },
-  { 0x1f2e, "\x03\x97\x03\x13\x03\x42\0" },
-  { 0x1f2f, "\x03\x97\x03\x14\x03\x42\0" },
-  { 0x1f30, "\x03\xb9\x03\x13\0" },
-  { 0x1f31, "\x03\xb9\x03\x14\0" },
-  { 0x1f32, "\x03\xb9\x03\x13\x03\x00\0" },
-  { 0x1f33, "\x03\xb9\x03\x14\x03\x00\0" },
-  { 0x1f34, "\x03\xb9\x03\x13\x03\x01\0" },
-  { 0x1f35, "\x03\xb9\x03\x14\x03\x01\0" },
-  { 0x1f36, "\x03\xb9\x03\x13\x03\x42\0" },
-  { 0x1f37, "\x03\xb9\x03\x14\x03\x42\0" },
-  { 0x1f38, "\x03\x99\x03\x13\0" },
-  { 0x1f39, "\x03\x99\x03\x14\0" },
-  { 0x1f3a, "\x03\x99\x03\x13\x03\x00\0" },
-  { 0x1f3b, "\x03\x99\x03\x14\x03\x00\0" },
-  { 0x1f3c, "\x03\x99\x03\x13\x03\x01\0" },
-  { 0x1f3d, "\x03\x99\x03\x14\x03\x01\0" },
-  { 0x1f3e, "\x03\x99\x03\x13\x03\x42\0" },
-  { 0x1f3f, "\x03\x99\x03\x14\x03\x42\0" },
-  { 0x1f40, "\x03\xbf\x03\x13\0" },
-  { 0x1f41, "\x03\xbf\x03\x14\0" },
-  { 0x1f42, "\x03\xbf\x03\x13\x03\x00\0" },
-  { 0x1f43, "\x03\xbf\x03\x14\x03\x00\0" },
-  { 0x1f44, "\x03\xbf\x03\x13\x03\x01\0" },
-  { 0x1f45, "\x03\xbf\x03\x14\x03\x01\0" },
-  { 0x1f48, "\x03\x9f\x03\x13\0" },
-  { 0x1f49, "\x03\x9f\x03\x14\0" },
-  { 0x1f4a, "\x03\x9f\x03\x13\x03\x00\0" },
-  { 0x1f4b, "\x03\x9f\x03\x14\x03\x00\0" },
-  { 0x1f4c, "\x03\x9f\x03\x13\x03\x01\0" },
-  { 0x1f4d, "\x03\x9f\x03\x14\x03\x01\0" },
-  { 0x1f50, "\x03\xc5\x03\x13\0" },
-  { 0x1f51, "\x03\xc5\x03\x14\0" },
-  { 0x1f52, "\x03\xc5\x03\x13\x03\x00\0" },
-  { 0x1f53, "\x03\xc5\x03\x14\x03\x00\0" },
-  { 0x1f54, "\x03\xc5\x03\x13\x03\x01\0" },
-  { 0x1f55, "\x03\xc5\x03\x14\x03\x01\0" },
-  { 0x1f56, "\x03\xc5\x03\x13\x03\x42\0" },
-  { 0x1f57, "\x03\xc5\x03\x14\x03\x42\0" },
-  { 0x1f59, "\x03\xa5\x03\x14\0" },
-  { 0x1f5b, "\x03\xa5\x03\x14\x03\x00\0" },
-  { 0x1f5d, "\x03\xa5\x03\x14\x03\x01\0" },
-  { 0x1f5f, "\x03\xa5\x03\x14\x03\x42\0" },
-  { 0x1f60, "\x03\xc9\x03\x13\0" },
-  { 0x1f61, "\x03\xc9\x03\x14\0" },
-  { 0x1f62, "\x03\xc9\x03\x13\x03\x00\0" },
-  { 0x1f63, "\x03\xc9\x03\x14\x03\x00\0" },
-  { 0x1f64, "\x03\xc9\x03\x13\x03\x01\0" },
-  { 0x1f65, "\x03\xc9\x03\x14\x03\x01\0" },
-  { 0x1f66, "\x03\xc9\x03\x13\x03\x42\0" },
-  { 0x1f67, "\x03\xc9\x03\x14\x03\x42\0" },
-  { 0x1f68, "\x03\xa9\x03\x13\0" },
-  { 0x1f69, "\x03\xa9\x03\x14\0" },
-  { 0x1f6a, "\x03\xa9\x03\x13\x03\x00\0" },
-  { 0x1f6b, "\x03\xa9\x03\x14\x03\x00\0" },
-  { 0x1f6c, "\x03\xa9\x03\x13\x03\x01\0" },
-  { 0x1f6d, "\x03\xa9\x03\x14\x03\x01\0" },
-  { 0x1f6e, "\x03\xa9\x03\x13\x03\x42\0" },
-  { 0x1f6f, "\x03\xa9\x03\x14\x03\x42\0" },
-  { 0x1f70, "\x03\xb1\x03\x00\0" },
-  { 0x1f71, "\x03\xb1\x03\x01\0" },
-  { 0x1f72, "\x03\xb5\x03\x00\0" },
-  { 0x1f73, "\x03\xb5\x03\x01\0" },
-  { 0x1f74, "\x03\xb7\x03\x00\0" },
-  { 0x1f75, "\x03\xb7\x03\x01\0" },
-  { 0x1f76, "\x03\xb9\x03\x00\0" },
-  { 0x1f77, "\x03\xb9\x03\x01\0" },
-  { 0x1f78, "\x03\xbf\x03\x00\0" },
-  { 0x1f79, "\x03\xbf\x03\x01\0" },
-  { 0x1f7a, "\x03\xc5\x03\x00\0" },
-  { 0x1f7b, "\x03\xc5\x03\x01\0" },
-  { 0x1f7c, "\x03\xc9\x03\x00\0" },
-  { 0x1f7d, "\x03\xc9\x03\x01\0" },
-  { 0x1f80, "\x03\xb1\x03\x13\x03\x45\0" },
-  { 0x1f81, "\x03\xb1\x03\x14\x03\x45\0" },
-  { 0x1f82, "\x03\xb1\x03\x13\x03\x00\x03\x45\0" },
-  { 0x1f83, "\x03\xb1\x03\x14\x03\x00\x03\x45\0" },
-  { 0x1f84, "\x03\xb1\x03\x13\x03\x01\x03\x45\0" },
-  { 0x1f85, "\x03\xb1\x03\x14\x03\x01\x03\x45\0" },
-  { 0x1f86, "\x03\xb1\x03\x13\x03\x42\x03\x45\0" },
-  { 0x1f87, "\x03\xb1\x03\x14\x03\x42\x03\x45\0" },
-  { 0x1f88, "\x03\x91\x03\x13\x03\x45\0" },
-  { 0x1f89, "\x03\x91\x03\x14\x03\x45\0" },
-  { 0x1f8a, "\x03\x91\x03\x13\x03\x00\x03\x45\0" },
-  { 0x1f8b, "\x03\x91\x03\x14\x03\x00\x03\x45\0" },
-  { 0x1f8c, "\x03\x91\x03\x13\x03\x01\x03\x45\0" },
-  { 0x1f8d, "\x03\x91\x03\x14\x03\x01\x03\x45\0" },
-  { 0x1f8e, "\x03\x91\x03\x13\x03\x42\x03\x45\0" },
-  { 0x1f8f, "\x03\x91\x03\x14\x03\x42\x03\x45\0" },
-  { 0x1f90, "\x03\xb7\x03\x13\x03\x45\0" },
-  { 0x1f91, "\x03\xb7\x03\x14\x03\x45\0" },
-  { 0x1f92, "\x03\xb7\x03\x13\x03\x00\x03\x45\0" },
-  { 0x1f93, "\x03\xb7\x03\x14\x03\x00\x03\x45\0" },
-  { 0x1f94, "\x03\xb7\x03\x13\x03\x01\x03\x45\0" },
-  { 0x1f95, "\x03\xb7\x03\x14\x03\x01\x03\x45\0" },
-  { 0x1f96, "\x03\xb7\x03\x13\x03\x42\x03\x45\0" },
-  { 0x1f97, "\x03\xb7\x03\x14\x03\x42\x03\x45\0" },
-  { 0x1f98, "\x03\x97\x03\x13\x03\x45\0" },
-  { 0x1f99, "\x03\x97\x03\x14\x03\x45\0" },
-  { 0x1f9a, "\x03\x97\x03\x13\x03\x00\x03\x45\0" },
-  { 0x1f9b, "\x03\x97\x03\x14\x03\x00\x03\x45\0" },
-  { 0x1f9c, "\x03\x97\x03\x13\x03\x01\x03\x45\0" },
-  { 0x1f9d, "\x03\x97\x03\x14\x03\x01\x03\x45\0" },
-  { 0x1f9e, "\x03\x97\x03\x13\x03\x42\x03\x45\0" },
-  { 0x1f9f, "\x03\x97\x03\x14\x03\x42\x03\x45\0" },
-  { 0x1fa0, "\x03\xc9\x03\x13\x03\x45\0" },
-  { 0x1fa1, "\x03\xc9\x03\x14\x03\x45\0" },
-  { 0x1fa2, "\x03\xc9\x03\x13\x03\x00\x03\x45\0" },
-  { 0x1fa3, "\x03\xc9\x03\x14\x03\x00\x03\x45\0" },
-  { 0x1fa4, "\x03\xc9\x03\x13\x03\x01\x03\x45\0" },
-  { 0x1fa5, "\x03\xc9\x03\x14\x03\x01\x03\x45\0" },
-  { 0x1fa6, "\x03\xc9\x03\x13\x03\x42\x03\x45\0" },
-  { 0x1fa7, "\x03\xc9\x03\x14\x03\x42\x03\x45\0" },
-  { 0x1fa8, "\x03\xa9\x03\x13\x03\x45\0" },
-  { 0x1fa9, "\x03\xa9\x03\x14\x03\x45\0" },
-  { 0x1faa, "\x03\xa9\x03\x13\x03\x00\x03\x45\0" },
-  { 0x1fab, "\x03\xa9\x03\x14\x03\x00\x03\x45\0" },
-  { 0x1fac, "\x03\xa9\x03\x13\x03\x01\x03\x45\0" },
-  { 0x1fad, "\x03\xa9\x03\x14\x03\x01\x03\x45\0" },
-  { 0x1fae, "\x03\xa9\x03\x13\x03\x42\x03\x45\0" },
-  { 0x1faf, "\x03\xa9\x03\x14\x03\x42\x03\x45\0" },
-  { 0x1fb0, "\x03\xb1\x03\x06\0" },
-  { 0x1fb1, "\x03\xb1\x03\x04\0" },
-  { 0x1fb2, "\x03\xb1\x03\x00\x03\x45\0" },
-  { 0x1fb3, "\x03\xb1\x03\x45\0" },
-  { 0x1fb4, "\x03\xb1\x03\x01\x03\x45\0" },
-  { 0x1fb6, "\x03\xb1\x03\x42\0" },
-  { 0x1fb7, "\x03\xb1\x03\x42\x03\x45\0" },
-  { 0x1fb8, "\x03\x91\x03\x06\0" },
-  { 0x1fb9, "\x03\x91\x03\x04\0" },
-  { 0x1fba, "\x03\x91\x03\x00\0" },
-  { 0x1fbb, "\x03\x91\x03\x01\0" },
-  { 0x1fbc, "\x03\x91\x03\x45\0" },
-  { 0x1fbe, "\x03\xb9\0" },
-  { 0x1fc1, "\x00\xa8\x03\x42\0" },
-  { 0x1fc2, "\x03\xb7\x03\x00\x03\x45\0" },
-  { 0x1fc3, "\x03\xb7\x03\x45\0" },
-  { 0x1fc4, "\x03\xb7\x03\x01\x03\x45\0" },
-  { 0x1fc6, "\x03\xb7\x03\x42\0" },
-  { 0x1fc7, "\x03\xb7\x03\x42\x03\x45\0" },
-  { 0x1fc8, "\x03\x95\x03\x00\0" },
-  { 0x1fc9, "\x03\x95\x03\x01\0" },
-  { 0x1fca, "\x03\x97\x03\x00\0" },
-  { 0x1fcb, "\x03\x97\x03\x01\0" },
-  { 0x1fcc, "\x03\x97\x03\x45\0" },
-  { 0x1fcd, "\x1f\xbf\x03\x00\0" },
-  { 0x1fce, "\x1f\xbf\x03\x01\0" },
-  { 0x1fcf, "\x1f\xbf\x03\x42\0" },
-  { 0x1fd0, "\x03\xb9\x03\x06\0" },
-  { 0x1fd1, "\x03\xb9\x03\x04\0" },
-  { 0x1fd2, "\x03\xb9\x03\x08\x03\x00\0" },
-  { 0x1fd3, "\x03\xb9\x03\x08\x03\x01\0" },
-  { 0x1fd6, "\x03\xb9\x03\x42\0" },
-  { 0x1fd7, "\x03\xb9\x03\x08\x03\x42\0" },
-  { 0x1fd8, "\x03\x99\x03\x06\0" },
-  { 0x1fd9, "\x03\x99\x03\x04\0" },
-  { 0x1fda, "\x03\x99\x03\x00\0" },
-  { 0x1fdb, "\x03\x99\x03\x01\0" },
-  { 0x1fdd, "\x1f\xfe\x03\x00\0" },
-  { 0x1fde, "\x1f\xfe\x03\x01\0" },
-  { 0x1fdf, "\x1f\xfe\x03\x42\0" },
-  { 0x1fe0, "\x03\xc5\x03\x06\0" },
-  { 0x1fe1, "\x03\xc5\x03\x04\0" },
-  { 0x1fe2, "\x03\xc5\x03\x08\x03\x00\0" },
-  { 0x1fe3, "\x03\xc5\x03\x08\x03\x01\0" },
-  { 0x1fe4, "\x03\xc1\x03\x13\0" },
-  { 0x1fe5, "\x03\xc1\x03\x14\0" },
-  { 0x1fe6, "\x03\xc5\x03\x42\0" },
-  { 0x1fe7, "\x03\xc5\x03\x08\x03\x42\0" },
-  { 0x1fe8, "\x03\xa5\x03\x06\0" },
-  { 0x1fe9, "\x03\xa5\x03\x04\0" },
-  { 0x1fea, "\x03\xa5\x03\x00\0" },
-  { 0x1feb, "\x03\xa5\x03\x01\0" },
-  { 0x1fec, "\x03\xa1\x03\x14\0" },
-  { 0x1fed, "\x00\xa8\x03\x00\0" },
-  { 0x1fee, "\x00\xa8\x03\x01\0" },
-  { 0x1fef, "\x00\x60\0" },
-  { 0x1ff2, "\x03\xc9\x03\x00\x03\x45\0" },
-  { 0x1ff3, "\x03\xc9\x03\x45\0" },
-  { 0x1ff4, "\x03\xc9\x03\x01\x03\x45\0" },
-  { 0x1ff6, "\x03\xc9\x03\x42\0" },
-  { 0x1ff7, "\x03\xc9\x03\x42\x03\x45\0" },
-  { 0x1ff8, "\x03\x9f\x03\x00\0" },
-  { 0x1ff9, "\x03\x9f\x03\x01\0" },
-  { 0x1ffa, "\x03\xa9\x03\x00\0" },
-  { 0x1ffb, "\x03\xa9\x03\x01\0" },
-  { 0x1ffc, "\x03\xa9\x03\x45\0" },
-  { 0x1ffd, "\x00\xb4\0" },
-  { 0x2000, "\x20\x02\0" },
-  { 0x2001, "\x20\x03\0" },
-  { 0x2126, "\x03\xa9\0" },
-  { 0x212a, "\x00\x4b\0" },
-  { 0x212b, "\x00\x41\x03\x0a\0" },
-  { 0x219a, "\x21\x90\x03\x38\0" },
-  { 0x219b, "\x21\x92\x03\x38\0" },
-  { 0x21ae, "\x21\x94\x03\x38\0" },
-  { 0x21cd, "\x21\xd0\x03\x38\0" },
-  { 0x21ce, "\x21\xd4\x03\x38\0" },
-  { 0x21cf, "\x21\xd2\x03\x38\0" },
-  { 0x2204, "\x22\x03\x03\x38\0" },
-  { 0x2209, "\x22\x08\x03\x38\0" },
-  { 0x220c, "\x22\x0b\x03\x38\0" },
-  { 0x2224, "\x22\x23\x03\x38\0" },
-  { 0x2226, "\x22\x25\x03\x38\0" },
-  { 0x2241, "\x22\x3c\x03\x38\0" },
-  { 0x2244, "\x22\x43\x03\x38\0" },
-  { 0x2247, "\x22\x45\x03\x38\0" },
-  { 0x2249, "\x22\x48\x03\x38\0" },
-  { 0x2260, "\x00\x3d\x03\x38\0" },
-  { 0x2262, "\x22\x61\x03\x38\0" },
-  { 0x226d, "\x22\x4d\x03\x38\0" },
-  { 0x226e, "\x00\x3c\x03\x38\0" },
-  { 0x226f, "\x00\x3e\x03\x38\0" },
-  { 0x2270, "\x22\x64\x03\x38\0" },
-  { 0x2271, "\x22\x65\x03\x38\0" },
-  { 0x2274, "\x22\x72\x03\x38\0" },
-  { 0x2275, "\x22\x73\x03\x38\0" },
-  { 0x2278, "\x22\x76\x03\x38\0" },
-  { 0x2279, "\x22\x77\x03\x38\0" },
-  { 0x2280, "\x22\x7a\x03\x38\0" },
-  { 0x2281, "\x22\x7b\x03\x38\0" },
-  { 0x2284, "\x22\x82\x03\x38\0" },
-  { 0x2285, "\x22\x83\x03\x38\0" },
-  { 0x2288, "\x22\x86\x03\x38\0" },
-  { 0x2289, "\x22\x87\x03\x38\0" },
-  { 0x22ac, "\x22\xa2\x03\x38\0" },
-  { 0x22ad, "\x22\xa8\x03\x38\0" },
-  { 0x22ae, "\x22\xa9\x03\x38\0" },
-  { 0x22af, "\x22\xab\x03\x38\0" },
-  { 0x22e0, "\x22\x7c\x03\x38\0" },
-  { 0x22e1, "\x22\x7d\x03\x38\0" },
-  { 0x22e2, "\x22\x91\x03\x38\0" },
-  { 0x22e3, "\x22\x92\x03\x38\0" },
-  { 0x22ea, "\x22\xb2\x03\x38\0" },
-  { 0x22eb, "\x22\xb3\x03\x38\0" },
-  { 0x22ec, "\x22\xb4\x03\x38\0" },
-  { 0x22ed, "\x22\xb5\x03\x38\0" },
-  { 0x2329, "\x30\x08\0" },
-  { 0x232a, "\x30\x09\0" },
-  { 0x304c, "\x30\x4b\x30\x99\0" },
-  { 0x304e, "\x30\x4d\x30\x99\0" },
-  { 0x3050, "\x30\x4f\x30\x99\0" },
-  { 0x3052, "\x30\x51\x30\x99\0" },
-  { 0x3054, "\x30\x53\x30\x99\0" },
-  { 0x3056, "\x30\x55\x30\x99\0" },
-  { 0x3058, "\x30\x57\x30\x99\0" },
-  { 0x305a, "\x30\x59\x30\x99\0" },
-  { 0x305c, "\x30\x5b\x30\x99\0" },
-  { 0x305e, "\x30\x5d\x30\x99\0" },
-  { 0x3060, "\x30\x5f\x30\x99\0" },
-  { 0x3062, "\x30\x61\x30\x99\0" },
-  { 0x3065, "\x30\x64\x30\x99\0" },
-  { 0x3067, "\x30\x66\x30\x99\0" },
-  { 0x3069, "\x30\x68\x30\x99\0" },
-  { 0x3070, "\x30\x6f\x30\x99\0" },
-  { 0x3071, "\x30\x6f\x30\x9a\0" },
-  { 0x3073, "\x30\x72\x30\x99\0" },
-  { 0x3074, "\x30\x72\x30\x9a\0" },
-  { 0x3076, "\x30\x75\x30\x99\0" },
-  { 0x3077, "\x30\x75\x30\x9a\0" },
-  { 0x3079, "\x30\x78\x30\x99\0" },
-  { 0x307a, "\x30\x78\x30\x9a\0" },
-  { 0x307c, "\x30\x7b\x30\x99\0" },
-  { 0x307d, "\x30\x7b\x30\x9a\0" },
-  { 0x3094, "\x30\x46\x30\x99\0" },
-  { 0x309e, "\x30\x9d\x30\x99\0" },
-  { 0x30ac, "\x30\xab\x30\x99\0" },
-  { 0x30ae, "\x30\xad\x30\x99\0" },
-  { 0x30b0, "\x30\xaf\x30\x99\0" },
-  { 0x30b2, "\x30\xb1\x30\x99\0" },
-  { 0x30b4, "\x30\xb3\x30\x99\0" },
-  { 0x30b6, "\x30\xb5\x30\x99\0" },
-  { 0x30b8, "\x30\xb7\x30\x99\0" },
-  { 0x30ba, "\x30\xb9\x30\x99\0" },
-  { 0x30bc, "\x30\xbb\x30\x99\0" },
-  { 0x30be, "\x30\xbd\x30\x99\0" },
-  { 0x30c0, "\x30\xbf\x30\x99\0" },
-  { 0x30c2, "\x30\xc1\x30\x99\0" },
-  { 0x30c5, "\x30\xc4\x30\x99\0" },
-  { 0x30c7, "\x30\xc6\x30\x99\0" },
-  { 0x30c9, "\x30\xc8\x30\x99\0" },
-  { 0x30d0, "\x30\xcf\x30\x99\0" },
-  { 0x30d1, "\x30\xcf\x30\x9a\0" },
-  { 0x30d3, "\x30\xd2\x30\x99\0" },
-  { 0x30d4, "\x30\xd2\x30\x9a\0" },
-  { 0x30d6, "\x30\xd5\x30\x99\0" },
-  { 0x30d7, "\x30\xd5\x30\x9a\0" },
-  { 0x30d9, "\x30\xd8\x30\x99\0" },
-  { 0x30da, "\x30\xd8\x30\x9a\0" },
-  { 0x30dc, "\x30\xdb\x30\x99\0" },
-  { 0x30dd, "\x30\xdb\x30\x9a\0" },
-  { 0x30f4, "\x30\xa6\x30\x99\0" },
-  { 0x30f7, "\x30\xef\x30\x99\0" },
-  { 0x30f8, "\x30\xf0\x30\x99\0" },
-  { 0x30f9, "\x30\xf1\x30\x99\0" },
-  { 0x30fa, "\x30\xf2\x30\x99\0" },
-  { 0x30fe, "\x30\xfd\x30\x99\0" },
-  { 0xf900, "\x8c\x48\0" },
-  { 0xf901, "\x66\xf4\0" },
-  { 0xf902, "\x8e\xca\0" },
-  { 0xf903, "\x8c\xc8\0" },
-  { 0xf904, "\x6e\xd1\0" },
-  { 0xf905, "\x4e\x32\0" },
-  { 0xf906, "\x53\xe5\0" },
-  { 0xf907, "\x9f\x9c\0" },
-  { 0xf908, "\x9f\x9c\0" },
-  { 0xf909, "\x59\x51\0" },
-  { 0xf90a, "\x91\xd1\0" },
-  { 0xf90b, "\x55\x87\0" },
-  { 0xf90c, "\x59\x48\0" },
-  { 0xf90d, "\x61\xf6\0" },
-  { 0xf90e, "\x76\x69\0" },
-  { 0xf90f, "\x7f\x85\0" },
-  { 0xf910, "\x86\x3f\0" },
-  { 0xf911, "\x87\xba\0" },
-  { 0xf912, "\x88\xf8\0" },
-  { 0xf913, "\x90\x8f\0" },
-  { 0xf914, "\x6a\x02\0" },
-  { 0xf915, "\x6d\x1b\0" },
-  { 0xf916, "\x70\xd9\0" },
-  { 0xf917, "\x73\xde\0" },
-  { 0xf918, "\x84\x3d\0" },
-  { 0xf919, "\x91\x6a\0" },
-  { 0xf91a, "\x99\xf1\0" },
-  { 0xf91b, "\x4e\x82\0" },
-  { 0xf91c, "\x53\x75\0" },
-  { 0xf91d, "\x6b\x04\0" },
-  { 0xf91e, "\x72\x1b\0" },
-  { 0xf91f, "\x86\x2d\0" },
-  { 0xf920, "\x9e\x1e\0" },
-  { 0xf921, "\x5d\x50\0" },
-  { 0xf922, "\x6f\xeb\0" },
-  { 0xf923, "\x85\xcd\0" },
-  { 0xf924, "\x89\x64\0" },
-  { 0xf925, "\x62\xc9\0" },
-  { 0xf926, "\x81\xd8\0" },
-  { 0xf927, "\x88\x1f\0" },
-  { 0xf928, "\x5e\xca\0" },
-  { 0xf929, "\x67\x17\0" },
-  { 0xf92a, "\x6d\x6a\0" },
-  { 0xf92b, "\x72\xfc\0" },
-  { 0xf92c, "\x90\xce\0" },
-  { 0xf92d, "\x4f\x86\0" },
-  { 0xf92e, "\x51\xb7\0" },
-  { 0xf92f, "\x52\xde\0" },
-  { 0xf930, "\x64\xc4\0" },
-  { 0xf931, "\x6a\xd3\0" },
-  { 0xf932, "\x72\x10\0" },
-  { 0xf933, "\x76\xe7\0" },
-  { 0xf934, "\x80\x01\0" },
-  { 0xf935, "\x86\x06\0" },
-  { 0xf936, "\x86\x5c\0" },
-  { 0xf937, "\x8d\xef\0" },
-  { 0xf938, "\x97\x32\0" },
-  { 0xf939, "\x9b\x6f\0" },
-  { 0xf93a, "\x9d\xfa\0" },
-  { 0xf93b, "\x78\x8c\0" },
-  { 0xf93c, "\x79\x7f\0" },
-  { 0xf93d, "\x7d\xa0\0" },
-  { 0xf93e, "\x83\xc9\0" },
-  { 0xf93f, "\x93\x04\0" },
-  { 0xf940, "\x9e\x7f\0" },
-  { 0xf941, "\x8a\xd6\0" },
-  { 0xf942, "\x58\xdf\0" },
-  { 0xf943, "\x5f\x04\0" },
-  { 0xf944, "\x7c\x60\0" },
-  { 0xf945, "\x80\x7e\0" },
-  { 0xf946, "\x72\x62\0" },
-  { 0xf947, "\x78\xca\0" },
-  { 0xf948, "\x8c\xc2\0" },
-  { 0xf949, "\x96\xf7\0" },
-  { 0xf94a, "\x58\xd8\0" },
-  { 0xf94b, "\x5c\x62\0" },
-  { 0xf94c, "\x6a\x13\0" },
-  { 0xf94d, "\x6d\xda\0" },
-  { 0xf94e, "\x6f\x0f\0" },
-  { 0xf94f, "\x7d\x2f\0" },
-  { 0xf950, "\x7e\x37\0" },
-  { 0xf951, "\x96\xfb\0" },
-  { 0xf952, "\x52\xd2\0" },
-  { 0xf953, "\x80\x8b\0" },
-  { 0xf954, "\x51\xdc\0" },
-  { 0xf955, "\x51\xcc\0" },
-  { 0xf956, "\x7a\x1c\0" },
-  { 0xf957, "\x7d\xbe\0" },
-  { 0xf958, "\x83\xf1\0" },
-  { 0xf959, "\x96\x75\0" },
-  { 0xf95a, "\x8b\x80\0" },
-  { 0xf95b, "\x62\xcf\0" },
-  { 0xf95c, "\x6a\x02\0" },
-  { 0xf95d, "\x8a\xfe\0" },
-  { 0xf95e, "\x4e\x39\0" },
-  { 0xf95f, "\x5b\xe7\0" },
-  { 0xf960, "\x60\x12\0" },
-  { 0xf961, "\x73\x87\0" },
-  { 0xf962, "\x75\x70\0" },
-  { 0xf963, "\x53\x17\0" },
-  { 0xf964, "\x78\xfb\0" },
-  { 0xf965, "\x4f\xbf\0" },
-  { 0xf966, "\x5f\xa9\0" },
-  { 0xf967, "\x4e\x0d\0" },
-  { 0xf968, "\x6c\xcc\0" },
-  { 0xf969, "\x65\x78\0" },
-  { 0xf96a, "\x7d\x22\0" },
-  { 0xf96b, "\x53\xc3\0" },
-  { 0xf96c, "\x58\x5e\0" },
-  { 0xf96d, "\x77\x01\0" },
-  { 0xf96e, "\x84\x49\0" },
-  { 0xf96f, "\x8a\xaa\0" },
-  { 0xf970, "\x6b\xba\0" },
-  { 0xf971, "\x8f\xb0\0" },
-  { 0xf972, "\x6c\x88\0" },
-  { 0xf973, "\x62\xfe\0" },
-  { 0xf974, "\x82\xe5\0" },
-  { 0xf975, "\x63\xa0\0" },
-  { 0xf976, "\x75\x65\0" },
-  { 0xf977, "\x4e\xae\0" },
-  { 0xf978, "\x51\x69\0" },
-  { 0xf979, "\x51\xc9\0" },
-  { 0xf97a, "\x68\x81\0" },
-  { 0xf97b, "\x7c\xe7\0" },
-  { 0xf97c, "\x82\x6f\0" },
-  { 0xf97d, "\x8a\xd2\0" },
-  { 0xf97e, "\x91\xcf\0" },
-  { 0xf97f, "\x52\xf5\0" },
-  { 0xf980, "\x54\x42\0" },
-  { 0xf981, "\x59\x73\0" },
-  { 0xf982, "\x5e\xec\0" },
-  { 0xf983, "\x65\xc5\0" },
-  { 0xf984, "\x6f\xfe\0" },
-  { 0xf985, "\x79\x2a\0" },
-  { 0xf986, "\x95\xad\0" },
-  { 0xf987, "\x9a\x6a\0" },
-  { 0xf988, "\x9e\x97\0" },
-  { 0xf989, "\x9e\xce\0" },
-  { 0xf98a, "\x52\x9b\0" },
-  { 0xf98b, "\x66\xc6\0" },
-  { 0xf98c, "\x6b\x77\0" },
-  { 0xf98d, "\x8f\x62\0" },
-  { 0xf98e, "\x5e\x74\0" },
-  { 0xf98f, "\x61\x90\0" },
-  { 0xf990, "\x62\x00\0" },
-  { 0xf991, "\x64\x9a\0" },
-  { 0xf992, "\x6f\x23\0" },
-  { 0xf993, "\x71\x49\0" },
-  { 0xf994, "\x74\x89\0" },
-  { 0xf995, "\x79\xca\0" },
-  { 0xf996, "\x7d\xf4\0" },
-  { 0xf997, "\x80\x6f\0" },
-  { 0xf998, "\x8f\x26\0" },
-  { 0xf999, "\x84\xee\0" },
-  { 0xf99a, "\x90\x23\0" },
-  { 0xf99b, "\x93\x4a\0" },
-  { 0xf99c, "\x52\x17\0" },
-  { 0xf99d, "\x52\xa3\0" },
-  { 0xf99e, "\x54\xbd\0" },
-  { 0xf99f, "\x70\xc8\0" },
-  { 0xf9a0, "\x88\xc2\0" },
-  { 0xf9a1, "\x8a\xaa\0" },
-  { 0xf9a2, "\x5e\xc9\0" },
-  { 0xf9a3, "\x5f\xf5\0" },
-  { 0xf9a4, "\x63\x7b\0" },
-  { 0xf9a5, "\x6b\xae\0" },
-  { 0xf9a6, "\x7c\x3e\0" },
-  { 0xf9a7, "\x73\x75\0" },
-  { 0xf9a8, "\x4e\xe4\0" },
-  { 0xf9a9, "\x56\xf9\0" },
-  { 0xf9aa, "\x5b\xe7\0" },
-  { 0xf9ab, "\x5d\xba\0" },
-  { 0xf9ac, "\x60\x1c\0" },
-  { 0xf9ad, "\x73\xb2\0" },
-  { 0xf9ae, "\x74\x69\0" },
-  { 0xf9af, "\x7f\x9a\0" },
-  { 0xf9b0, "\x80\x46\0" },
-  { 0xf9b1, "\x92\x34\0" },
-  { 0xf9b2, "\x96\xf6\0" },
-  { 0xf9b3, "\x97\x48\0" },
-  { 0xf9b4, "\x98\x18\0" },
-  { 0xf9b5, "\x4f\x8b\0" },
-  { 0xf9b6, "\x79\xae\0" },
-  { 0xf9b7, "\x91\xb4\0" },
-  { 0xf9b8, "\x96\xb8\0" },
-  { 0xf9b9, "\x60\xe1\0" },
-  { 0xf9ba, "\x4e\x86\0" },
-  { 0xf9bb, "\x50\xda\0" },
-  { 0xf9bc, "\x5b\xee\0" },
-  { 0xf9bd, "\x5c\x3f\0" },
-  { 0xf9be, "\x65\x99\0" },
-  { 0xf9bf, "\x6a\x02\0" },
-  { 0xf9c0, "\x71\xce\0" },
-  { 0xf9c1, "\x76\x42\0" },
-  { 0xf9c2, "\x84\xfc\0" },
-  { 0xf9c3, "\x90\x7c\0" },
-  { 0xf9c4, "\x9f\x8d\0" },
-  { 0xf9c5, "\x66\x88\0" },
-  { 0xf9c6, "\x96\x2e\0" },
-  { 0xf9c7, "\x52\x89\0" },
-  { 0xf9c8, "\x67\x7b\0" },
-  { 0xf9c9, "\x67\xf3\0" },
-  { 0xf9ca, "\x6d\x41\0" },
-  { 0xf9cb, "\x6e\x9c\0" },
-  { 0xf9cc, "\x74\x09\0" },
-  { 0xf9cd, "\x75\x59\0" },
-  { 0xf9ce, "\x78\x6b\0" },
-  { 0xf9cf, "\x7d\x10\0" },
-  { 0xf9d0, "\x98\x5e\0" },
-  { 0xf9d1, "\x51\x6d\0" },
-  { 0xf9d2, "\x62\x2e\0" },
-  { 0xf9d3, "\x96\x78\0" },
-  { 0xf9d4, "\x50\x2b\0" },
-  { 0xf9d5, "\x5d\x19\0" },
-  { 0xf9d6, "\x6d\xea\0" },
-  { 0xf9d7, "\x8f\x2a\0" },
-  { 0xf9d8, "\x5f\x8b\0" },
-  { 0xf9d9, "\x61\x44\0" },
-  { 0xf9da, "\x68\x17\0" },
-  { 0xf9db, "\x73\x87\0" },
-  { 0xf9dc, "\x96\x86\0" },
-  { 0xf9dd, "\x52\x29\0" },
-  { 0xf9de, "\x54\x0f\0" },
-  { 0xf9df, "\x5c\x65\0" },
-  { 0xf9e0, "\x66\x13\0" },
-  { 0xf9e1, "\x67\x4e\0" },
-  { 0xf9e2, "\x68\xa8\0" },
-  { 0xf9e3, "\x6c\xe5\0" },
-  { 0xf9e4, "\x74\x06\0" },
-  { 0xf9e5, "\x75\xe2\0" },
-  { 0xf9e6, "\x7f\x79\0" },
-  { 0xf9e7, "\x88\xcf\0" },
-  { 0xf9e8, "\x88\xe1\0" },
-  { 0xf9e9, "\x91\xcc\0" },
-  { 0xf9ea, "\x96\xe2\0" },
-  { 0xf9eb, "\x53\x3f\0" },
-  { 0xf9ec, "\x6e\xba\0" },
-  { 0xf9ed, "\x54\x1d\0" },
-  { 0xf9ee, "\x71\xd0\0" },
-  { 0xf9ef, "\x74\x98\0" },
-  { 0xf9f0, "\x85\xfa\0" },
-  { 0xf9f1, "\x96\xa3\0" },
-  { 0xf9f2, "\x9c\x57\0" },
-  { 0xf9f3, "\x9e\x9f\0" },
-  { 0xf9f4, "\x67\x97\0" },
-  { 0xf9f5, "\x6d\xcb\0" },
-  { 0xf9f6, "\x81\xe8\0" },
-  { 0xf9f7, "\x7a\xcb\0" },
-  { 0xf9f8, "\x7b\x20\0" },
-  { 0xf9f9, "\x7c\x92\0" },
-  { 0xf9fa, "\x72\xc0\0" },
-  { 0xf9fb, "\x70\x99\0" },
-  { 0xf9fc, "\x8b\x58\0" },
-  { 0xf9fd, "\x4e\xc0\0" },
-  { 0xf9fe, "\x83\x36\0" },
-  { 0xf9ff, "\x52\x3a\0" },
-  { 0xfa00, "\x52\x07\0" },
-  { 0xfa01, "\x5e\xa6\0" },
-  { 0xfa02, "\x62\xd3\0" },
-  { 0xfa03, "\x7c\xd6\0" },
-  { 0xfa04, "\x5b\x85\0" },
-  { 0xfa05, "\x6d\x1e\0" },
-  { 0xfa06, "\x66\xb4\0" },
-  { 0xfa07, "\x8f\x3b\0" },
-  { 0xfa08, "\x88\x4c\0" },
-  { 0xfa09, "\x96\x4d\0" },
-  { 0xfa0a, "\x89\x8b\0" },
-  { 0xfa0b, "\x5e\xd3\0" },
-  { 0xfa0c, "\x51\x40\0" },
-  { 0xfa0d, "\x55\xc0\0" },
-  { 0xfa10, "\x58\x5a\0" },
-  { 0xfa12, "\x66\x74\0" },
-  { 0xfa15, "\x51\xde\0" },
-  { 0xfa16, "\x73\x2a\0" },
-  { 0xfa17, "\x76\xca\0" },
-  { 0xfa18, "\x79\x3c\0" },
-  { 0xfa19, "\x79\x5e\0" },
-  { 0xfa1a, "\x79\x65\0" },
-  { 0xfa1b, "\x79\x8f\0" },
-  { 0xfa1c, "\x97\x56\0" },
-  { 0xfa1d, "\x7c\xbe\0" },
-  { 0xfa1e, "\x7f\xbd\0" },
-  { 0xfa20, "\x86\x12\0" },
-  { 0xfa22, "\x8a\xf8\0" },
-  { 0xfa25, "\x90\x38\0" },
-  { 0xfa26, "\x90\xfd\0" },
-  { 0xfa2a, "\x98\xef\0" },
-  { 0xfa2b, "\x98\xfc\0" },
-  { 0xfa2c, "\x99\x28\0" },
-  { 0xfa2d, "\x9d\xb4\0" },
-  { 0xfb1d, "\x05\xd9\x05\xb4\0" },
-  { 0xfb1f, "\x05\xf2\x05\xb7\0" },
-  { 0xfb2a, "\x05\xe9\x05\xc1\0" },
-  { 0xfb2b, "\x05\xe9\x05\xc2\0" },
-  { 0xfb2c, "\x05\xe9\x05\xbc\x05\xc1\0" },
-  { 0xfb2d, "\x05\xe9\x05\xbc\x05\xc2\0" },
-  { 0xfb2e, "\x05\xd0\x05\xb7\0" },
-  { 0xfb2f, "\x05\xd0\x05\xb8\0" },
-  { 0xfb30, "\x05\xd0\x05\xbc\0" },
-  { 0xfb31, "\x05\xd1\x05\xbc\0" },
-  { 0xfb32, "\x05\xd2\x05\xbc\0" },
-  { 0xfb33, "\x05\xd3\x05\xbc\0" },
-  { 0xfb34, "\x05\xd4\x05\xbc\0" },
-  { 0xfb35, "\x05\xd5\x05\xbc\0" },
-  { 0xfb36, "\x05\xd6\x05\xbc\0" },
-  { 0xfb38, "\x05\xd8\x05\xbc\0" },
-  { 0xfb39, "\x05\xd9\x05\xbc\0" },
-  { 0xfb3a, "\x05\xda\x05\xbc\0" },
-  { 0xfb3b, "\x05\xdb\x05\xbc\0" },
-  { 0xfb3c, "\x05\xdc\x05\xbc\0" },
-  { 0xfb3e, "\x05\xde\x05\xbc\0" },
-  { 0xfb40, "\x05\xe0\x05\xbc\0" },
-  { 0xfb41, "\x05\xe1\x05\xbc\0" },
-  { 0xfb43, "\x05\xe3\x05\xbc\0" },
-  { 0xfb44, "\x05\xe4\x05\xbc\0" },
-  { 0xfb46, "\x05\xe6\x05\xbc\0" },
-  { 0xfb47, "\x05\xe7\x05\xbc\0" },
-  { 0xfb48, "\x05\xe8\x05\xbc\0" },
-  { 0xfb49, "\x05\xe9\x05\xbc\0" },
-  { 0xfb4a, "\x05\xea\x05\xbc\0" },
-  { 0xfb4b, "\x05\xd5\x05\xb9\0" },
-  { 0xfb4c, "\x05\xd1\x05\xbf\0" },
-  { 0xfb4d, "\x05\xdb\x05\xbf\0" },
-  { 0xfb4e, "\x05\xe4\x05\xbf\0" }
+  { 0x00a0, 255, 0, "\x00\x20\0" },
+  { 0x00a8, 255, 0, "\x00\x20\x03\x08\0" },
+  { 0x00aa, 255, 0, "\x00\x61\0" },
+  { 0x00af, 255, 0, "\x00\x20\x03\x04\0" },
+  { 0x00b2, 255, 0, "\x00\x32\0" },
+  { 0x00b3, 255, 0, "\x00\x33\0" },
+  { 0x00b4, 255, 0, "\x00\x20\x03\x01\0" },
+  { 0x00b5, 255, 0, "\x03\xbc\0" },
+  { 0x00b8, 255, 0, "\x00\x20\x03\x27\0" },
+  { 0x00b9, 255, 0, "\x00\x31\0" },
+  { 0x00ba, 255, 0, "\x00\x6f\0" },
+  { 0x00bc, 255, 0, "\x00\x31\x20\x44\x00\x34\0" },
+  { 0x00bd, 255, 0, "\x00\x31\x20\x44\x00\x32\0" },
+  { 0x00be, 255, 0, "\x00\x33\x20\x44\x00\x34\0" },
+  { 0x00c0, 0, 255, "\x00\x41\x03\x00\0" },
+  { 0x00c1, 0, 255, "\x00\x41\x03\x01\0" },
+  { 0x00c2, 0, 255, "\x00\x41\x03\x02\0" },
+  { 0x00c3, 0, 255, "\x00\x41\x03\x03\0" },
+  { 0x00c4, 0, 255, "\x00\x41\x03\x08\0" },
+  { 0x00c5, 0, 255, "\x00\x41\x03\x0a\0" },
+  { 0x00c7, 0, 255, "\x00\x43\x03\x27\0" },
+  { 0x00c8, 0, 255, "\x00\x45\x03\x00\0" },
+  { 0x00c9, 0, 255, "\x00\x45\x03\x01\0" },
+  { 0x00ca, 0, 255, "\x00\x45\x03\x02\0" },
+  { 0x00cb, 0, 255, "\x00\x45\x03\x08\0" },
+  { 0x00cc, 0, 255, "\x00\x49\x03\x00\0" },
+  { 0x00cd, 0, 255, "\x00\x49\x03\x01\0" },
+  { 0x00ce, 0, 255, "\x00\x49\x03\x02\0" },
+  { 0x00cf, 0, 255, "\x00\x49\x03\x08\0" },
+  { 0x00d1, 0, 255, "\x00\x4e\x03\x03\0" },
+  { 0x00d2, 0, 255, "\x00\x4f\x03\x00\0" },
+  { 0x00d3, 0, 255, "\x00\x4f\x03\x01\0" },
+  { 0x00d4, 0, 255, "\x00\x4f\x03\x02\0" },
+  { 0x00d5, 0, 255, "\x00\x4f\x03\x03\0" },
+  { 0x00d6, 0, 255, "\x00\x4f\x03\x08\0" },
+  { 0x00d9, 0, 255, "\x00\x55\x03\x00\0" },
+  { 0x00da, 0, 255, "\x00\x55\x03\x01\0" },
+  { 0x00db, 0, 255, "\x00\x55\x03\x02\0" },
+  { 0x00dc, 0, 255, "\x00\x55\x03\x08\0" },
+  { 0x00dd, 0, 255, "\x00\x59\x03\x01\0" },
+  { 0x00e0, 0, 255, "\x00\x61\x03\x00\0" },
+  { 0x00e1, 0, 255, "\x00\x61\x03\x01\0" },
+  { 0x00e2, 0, 255, "\x00\x61\x03\x02\0" },
+  { 0x00e3, 0, 255, "\x00\x61\x03\x03\0" },
+  { 0x00e4, 0, 255, "\x00\x61\x03\x08\0" },
+  { 0x00e5, 0, 255, "\x00\x61\x03\x0a\0" },
+  { 0x00e7, 0, 255, "\x00\x63\x03\x27\0" },
+  { 0x00e8, 0, 255, "\x00\x65\x03\x00\0" },
+  { 0x00e9, 0, 255, "\x00\x65\x03\x01\0" },
+  { 0x00ea, 0, 255, "\x00\x65\x03\x02\0" },
+  { 0x00eb, 0, 255, "\x00\x65\x03\x08\0" },
+  { 0x00ec, 0, 255, "\x00\x69\x03\x00\0" },
+  { 0x00ed, 0, 255, "\x00\x69\x03\x01\0" },
+  { 0x00ee, 0, 255, "\x00\x69\x03\x02\0" },
+  { 0x00ef, 0, 255, "\x00\x69\x03\x08\0" },
+  { 0x00f1, 0, 255, "\x00\x6e\x03\x03\0" },
+  { 0x00f2, 0, 255, "\x00\x6f\x03\x00\0" },
+  { 0x00f3, 0, 255, "\x00\x6f\x03\x01\0" },
+  { 0x00f4, 0, 255, "\x00\x6f\x03\x02\0" },
+  { 0x00f5, 0, 255, "\x00\x6f\x03\x03\0" },
+  { 0x00f6, 0, 255, "\x00\x6f\x03\x08\0" },
+  { 0x00f9, 0, 255, "\x00\x75\x03\x00\0" },
+  { 0x00fa, 0, 255, "\x00\x75\x03\x01\0" },
+  { 0x00fb, 0, 255, "\x00\x75\x03\x02\0" },
+  { 0x00fc, 0, 255, "\x00\x75\x03\x08\0" },
+  { 0x00fd, 0, 255, "\x00\x79\x03\x01\0" },
+  { 0x00ff, 0, 255, "\x00\x79\x03\x08\0" },
+  { 0x0100, 0, 255, "\x00\x41\x03\x04\0" },
+  { 0x0101, 0, 255, "\x00\x61\x03\x04\0" },
+  { 0x0102, 0, 255, "\x00\x41\x03\x06\0" },
+  { 0x0103, 0, 255, "\x00\x61\x03\x06\0" },
+  { 0x0104, 0, 255, "\x00\x41\x03\x28\0" },
+  { 0x0105, 0, 255, "\x00\x61\x03\x28\0" },
+  { 0x0106, 0, 255, "\x00\x43\x03\x01\0" },
+  { 0x0107, 0, 255, "\x00\x63\x03\x01\0" },
+  { 0x0108, 0, 255, "\x00\x43\x03\x02\0" },
+  { 0x0109, 0, 255, "\x00\x63\x03\x02\0" },
+  { 0x010a, 0, 255, "\x00\x43\x03\x07\0" },
+  { 0x010b, 0, 255, "\x00\x63\x03\x07\0" },
+  { 0x010c, 0, 255, "\x00\x43\x03\x0c\0" },
+  { 0x010d, 0, 255, "\x00\x63\x03\x0c\0" },
+  { 0x010e, 0, 255, "\x00\x44\x03\x0c\0" },
+  { 0x010f, 0, 255, "\x00\x64\x03\x0c\0" },
+  { 0x0112, 0, 255, "\x00\x45\x03\x04\0" },
+  { 0x0113, 0, 255, "\x00\x65\x03\x04\0" },
+  { 0x0114, 0, 255, "\x00\x45\x03\x06\0" },
+  { 0x0115, 0, 255, "\x00\x65\x03\x06\0" },
+  { 0x0116, 0, 255, "\x00\x45\x03\x07\0" },
+  { 0x0117, 0, 255, "\x00\x65\x03\x07\0" },
+  { 0x0118, 0, 255, "\x00\x45\x03\x28\0" },
+  { 0x0119, 0, 255, "\x00\x65\x03\x28\0" },
+  { 0x011a, 0, 255, "\x00\x45\x03\x0c\0" },
+  { 0x011b, 0, 255, "\x00\x65\x03\x0c\0" },
+  { 0x011c, 0, 255, "\x00\x47\x03\x02\0" },
+  { 0x011d, 0, 255, "\x00\x67\x03\x02\0" },
+  { 0x011e, 0, 255, "\x00\x47\x03\x06\0" },
+  { 0x011f, 0, 255, "\x00\x67\x03\x06\0" },
+  { 0x0120, 0, 255, "\x00\x47\x03\x07\0" },
+  { 0x0121, 0, 255, "\x00\x67\x03\x07\0" },
+  { 0x0122, 0, 255, "\x00\x47\x03\x27\0" },
+  { 0x0123, 0, 255, "\x00\x67\x03\x27\0" },
+  { 0x0124, 0, 255, "\x00\x48\x03\x02\0" },
+  { 0x0125, 0, 255, "\x00\x68\x03\x02\0" },
+  { 0x0128, 0, 255, "\x00\x49\x03\x03\0" },
+  { 0x0129, 0, 255, "\x00\x69\x03\x03\0" },
+  { 0x012a, 0, 255, "\x00\x49\x03\x04\0" },
+  { 0x012b, 0, 255, "\x00\x69\x03\x04\0" },
+  { 0x012c, 0, 255, "\x00\x49\x03\x06\0" },
+  { 0x012d, 0, 255, "\x00\x69\x03\x06\0" },
+  { 0x012e, 0, 255, "\x00\x49\x03\x28\0" },
+  { 0x012f, 0, 255, "\x00\x69\x03\x28\0" },
+  { 0x0130, 0, 255, "\x00\x49\x03\x07\0" },
+  { 0x0132, 255, 0, "\x00\x49\x00\x4a\0" },
+  { 0x0133, 255, 0, "\x00\x69\x00\x6a\0" },
+  { 0x0134, 0, 255, "\x00\x4a\x03\x02\0" },
+  { 0x0135, 0, 255, "\x00\x6a\x03\x02\0" },
+  { 0x0136, 0, 255, "\x00\x4b\x03\x27\0" },
+  { 0x0137, 0, 255, "\x00\x6b\x03\x27\0" },
+  { 0x0139, 0, 255, "\x00\x4c\x03\x01\0" },
+  { 0x013a, 0, 255, "\x00\x6c\x03\x01\0" },
+  { 0x013b, 0, 255, "\x00\x4c\x03\x27\0" },
+  { 0x013c, 0, 255, "\x00\x6c\x03\x27\0" },
+  { 0x013d, 0, 255, "\x00\x4c\x03\x0c\0" },
+  { 0x013e, 0, 255, "\x00\x6c\x03\x0c\0" },
+  { 0x013f, 255, 0, "\x00\x4c\x00\xb7\0" },
+  { 0x0140, 255, 0, "\x00\x6c\x00\xb7\0" },
+  { 0x0143, 0, 255, "\x00\x4e\x03\x01\0" },
+  { 0x0144, 0, 255, "\x00\x6e\x03\x01\0" },
+  { 0x0145, 0, 255, "\x00\x4e\x03\x27\0" },
+  { 0x0146, 0, 255, "\x00\x6e\x03\x27\0" },
+  { 0x0147, 0, 255, "\x00\x4e\x03\x0c\0" },
+  { 0x0148, 0, 255, "\x00\x6e\x03\x0c\0" },
+  { 0x0149, 255, 0, "\x02\xbc\x00\x6e\0" },
+  { 0x014c, 0, 255, "\x00\x4f\x03\x04\0" },
+  { 0x014d, 0, 255, "\x00\x6f\x03\x04\0" },
+  { 0x014e, 0, 255, "\x00\x4f\x03\x06\0" },
+  { 0x014f, 0, 255, "\x00\x6f\x03\x06\0" },
+  { 0x0150, 0, 255, "\x00\x4f\x03\x0b\0" },
+  { 0x0151, 0, 255, "\x00\x6f\x03\x0b\0" },
+  { 0x0154, 0, 255, "\x00\x52\x03\x01\0" },
+  { 0x0155, 0, 255, "\x00\x72\x03\x01\0" },
+  { 0x0156, 0, 255, "\x00\x52\x03\x27\0" },
+  { 0x0157, 0, 255, "\x00\x72\x03\x27\0" },
+  { 0x0158, 0, 255, "\x00\x52\x03\x0c\0" },
+  { 0x0159, 0, 255, "\x00\x72\x03\x0c\0" },
+  { 0x015a, 0, 255, "\x00\x53\x03\x01\0" },
+  { 0x015b, 0, 255, "\x00\x73\x03\x01\0" },
+  { 0x015c, 0, 255, "\x00\x53\x03\x02\0" },
+  { 0x015d, 0, 255, "\x00\x73\x03\x02\0" },
+  { 0x015e, 0, 255, "\x00\x53\x03\x27\0" },
+  { 0x015f, 0, 255, "\x00\x73\x03\x27\0" },
+  { 0x0160, 0, 255, "\x00\x53\x03\x0c\0" },
+  { 0x0161, 0, 255, "\x00\x73\x03\x0c\0" },
+  { 0x0162, 0, 255, "\x00\x54\x03\x27\0" },
+  { 0x0163, 0, 255, "\x00\x74\x03\x27\0" },
+  { 0x0164, 0, 255, "\x00\x54\x03\x0c\0" },
+  { 0x0165, 0, 255, "\x00\x74\x03\x0c\0" },
+  { 0x0168, 0, 255, "\x00\x55\x03\x03\0" },
+  { 0x0169, 0, 255, "\x00\x75\x03\x03\0" },
+  { 0x016a, 0, 255, "\x00\x55\x03\x04\0" },
+  { 0x016b, 0, 255, "\x00\x75\x03\x04\0" },
+  { 0x016c, 0, 255, "\x00\x55\x03\x06\0" },
+  { 0x016d, 0, 255, "\x00\x75\x03\x06\0" },
+  { 0x016e, 0, 255, "\x00\x55\x03\x0a\0" },
+  { 0x016f, 0, 255, "\x00\x75\x03\x0a\0" },
+  { 0x0170, 0, 255, "\x00\x55\x03\x0b\0" },
+  { 0x0171, 0, 255, "\x00\x75\x03\x0b\0" },
+  { 0x0172, 0, 255, "\x00\x55\x03\x28\0" },
+  { 0x0173, 0, 255, "\x00\x75\x03\x28\0" },
+  { 0x0174, 0, 255, "\x00\x57\x03\x02\0" },
+  { 0x0175, 0, 255, "\x00\x77\x03\x02\0" },
+  { 0x0176, 0, 255, "\x00\x59\x03\x02\0" },
+  { 0x0177, 0, 255, "\x00\x79\x03\x02\0" },
+  { 0x0178, 0, 255, "\x00\x59\x03\x08\0" },
+  { 0x0179, 0, 255, "\x00\x5a\x03\x01\0" },
+  { 0x017a, 0, 255, "\x00\x7a\x03\x01\0" },
+  { 0x017b, 0, 255, "\x00\x5a\x03\x07\0" },
+  { 0x017c, 0, 255, "\x00\x7a\x03\x07\0" },
+  { 0x017d, 0, 255, "\x00\x5a\x03\x0c\0" },
+  { 0x017e, 0, 255, "\x00\x7a\x03\x0c\0" },
+  { 0x017f, 255, 0, "\x00\x73\0" },
+  { 0x01a0, 0, 255, "\x00\x4f\x03\x1b\0" },
+  { 0x01a1, 0, 255, "\x00\x6f\x03\x1b\0" },
+  { 0x01af, 0, 255, "\x00\x55\x03\x1b\0" },
+  { 0x01b0, 0, 255, "\x00\x75\x03\x1b\0" },
+  { 0x01c4, 255, 0, "\x00\x44\x00\x5a\x03\x0c\0" },
+  { 0x01c5, 255, 0, "\x00\x44\x00\x7a\x03\x0c\0" },
+  { 0x01c6, 255, 0, "\x00\x64\x00\x7a\x03\x0c\0" },
+  { 0x01c7, 255, 0, "\x00\x4c\x00\x4a\0" },
+  { 0x01c8, 255, 0, "\x00\x4c\x00\x6a\0" },
+  { 0x01c9, 255, 0, "\x00\x6c\x00\x6a\0" },
+  { 0x01ca, 255, 0, "\x00\x4e\x00\x4a\0" },
+  { 0x01cb, 255, 0, "\x00\x4e\x00\x6a\0" },
+  { 0x01cc, 255, 0, "\x00\x6e\x00\x6a\0" },
+  { 0x01cd, 0, 255, "\x00\x41\x03\x0c\0" },
+  { 0x01ce, 0, 255, "\x00\x61\x03\x0c\0" },
+  { 0x01cf, 0, 255, "\x00\x49\x03\x0c\0" },
+  { 0x01d0, 0, 255, "\x00\x69\x03\x0c\0" },
+  { 0x01d1, 0, 255, "\x00\x4f\x03\x0c\0" },
+  { 0x01d2, 0, 255, "\x00\x6f\x03\x0c\0" },
+  { 0x01d3, 0, 255, "\x00\x55\x03\x0c\0" },
+  { 0x01d4, 0, 255, "\x00\x75\x03\x0c\0" },
+  { 0x01d5, 0, 255, "\x00\x55\x03\x08\x03\x04\0" },
+  { 0x01d6, 0, 255, "\x00\x75\x03\x08\x03\x04\0" },
+  { 0x01d7, 0, 255, "\x00\x55\x03\x08\x03\x01\0" },
+  { 0x01d8, 0, 255, "\x00\x75\x03\x08\x03\x01\0" },
+  { 0x01d9, 0, 255, "\x00\x55\x03\x08\x03\x0c\0" },
+  { 0x01da, 0, 255, "\x00\x75\x03\x08\x03\x0c\0" },
+  { 0x01db, 0, 255, "\x00\x55\x03\x08\x03\x00\0" },
+  { 0x01dc, 0, 255, "\x00\x75\x03\x08\x03\x00\0" },
+  { 0x01de, 0, 255, "\x00\x41\x03\x08\x03\x04\0" },
+  { 0x01df, 0, 255, "\x00\x61\x03\x08\x03\x04\0" },
+  { 0x01e0, 0, 255, "\x00\x41\x03\x07\x03\x04\0" },
+  { 0x01e1, 0, 255, "\x00\x61\x03\x07\x03\x04\0" },
+  { 0x01e2, 0, 255, "\x00\xc6\x03\x04\0" },
+  { 0x01e3, 0, 255, "\x00\xe6\x03\x04\0" },
+  { 0x01e6, 0, 255, "\x00\x47\x03\x0c\0" },
+  { 0x01e7, 0, 255, "\x00\x67\x03\x0c\0" },
+  { 0x01e8, 0, 255, "\x00\x4b\x03\x0c\0" },
+  { 0x01e9, 0, 255, "\x00\x6b\x03\x0c\0" },
+  { 0x01ea, 0, 255, "\x00\x4f\x03\x28\0" },
+  { 0x01eb, 0, 255, "\x00\x6f\x03\x28\0" },
+  { 0x01ec, 0, 255, "\x00\x4f\x03\x28\x03\x04\0" },
+  { 0x01ed, 0, 255, "\x00\x6f\x03\x28\x03\x04\0" },
+  { 0x01ee, 0, 255, "\x01\xb7\x03\x0c\0" },
+  { 0x01ef, 0, 255, "\x02\x92\x03\x0c\0" },
+  { 0x01f0, 0, 255, "\x00\x6a\x03\x0c\0" },
+  { 0x01f1, 255, 0, "\x00\x44\x00\x5a\0" },
+  { 0x01f2, 255, 0, "\x00\x44\x00\x7a\0" },
+  { 0x01f3, 255, 0, "\x00\x64\x00\x7a\0" },
+  { 0x01f4, 0, 255, "\x00\x47\x03\x01\0" },
+  { 0x01f5, 0, 255, "\x00\x67\x03\x01\0" },
+  { 0x01f8, 0, 255, "\x00\x4e\x03\x00\0" },
+  { 0x01f9, 0, 255, "\x00\x6e\x03\x00\0" },
+  { 0x01fa, 0, 255, "\x00\x41\x03\x0a\x03\x01\0" },
+  { 0x01fb, 0, 255, "\x00\x61\x03\x0a\x03\x01\0" },
+  { 0x01fc, 0, 255, "\x00\xc6\x03\x01\0" },
+  { 0x01fd, 0, 255, "\x00\xe6\x03\x01\0" },
+  { 0x01fe, 0, 255, "\x00\xd8\x03\x01\0" },
+  { 0x01ff, 0, 255, "\x00\xf8\x03\x01\0" },
+  { 0x0200, 0, 255, "\x00\x41\x03\x0f\0" },
+  { 0x0201, 0, 255, "\x00\x61\x03\x0f\0" },
+  { 0x0202, 0, 255, "\x00\x41\x03\x11\0" },
+  { 0x0203, 0, 255, "\x00\x61\x03\x11\0" },
+  { 0x0204, 0, 255, "\x00\x45\x03\x0f\0" },
+  { 0x0205, 0, 255, "\x00\x65\x03\x0f\0" },
+  { 0x0206, 0, 255, "\x00\x45\x03\x11\0" },
+  { 0x0207, 0, 255, "\x00\x65\x03\x11\0" },
+  { 0x0208, 0, 255, "\x00\x49\x03\x0f\0" },
+  { 0x0209, 0, 255, "\x00\x69\x03\x0f\0" },
+  { 0x020a, 0, 255, "\x00\x49\x03\x11\0" },
+  { 0x020b, 0, 255, "\x00\x69\x03\x11\0" },
+  { 0x020c, 0, 255, "\x00\x4f\x03\x0f\0" },
+  { 0x020d, 0, 255, "\x00\x6f\x03\x0f\0" },
+  { 0x020e, 0, 255, "\x00\x4f\x03\x11\0" },
+  { 0x020f, 0, 255, "\x00\x6f\x03\x11\0" },
+  { 0x0210, 0, 255, "\x00\x52\x03\x0f\0" },
+  { 0x0211, 0, 255, "\x00\x72\x03\x0f\0" },
+  { 0x0212, 0, 255, "\x00\x52\x03\x11\0" },
+  { 0x0213, 0, 255, "\x00\x72\x03\x11\0" },
+  { 0x0214, 0, 255, "\x00\x55\x03\x0f\0" },
+  { 0x0215, 0, 255, "\x00\x75\x03\x0f\0" },
+  { 0x0216, 0, 255, "\x00\x55\x03\x11\0" },
+  { 0x0217, 0, 255, "\x00\x75\x03\x11\0" },
+  { 0x0218, 0, 255, "\x00\x53\x03\x26\0" },
+  { 0x0219, 0, 255, "\x00\x73\x03\x26\0" },
+  { 0x021a, 0, 255, "\x00\x54\x03\x26\0" },
+  { 0x021b, 0, 255, "\x00\x74\x03\x26\0" },
+  { 0x021e, 0, 255, "\x00\x48\x03\x0c\0" },
+  { 0x021f, 0, 255, "\x00\x68\x03\x0c\0" },
+  { 0x0226, 0, 255, "\x00\x41\x03\x07\0" },
+  { 0x0227, 0, 255, "\x00\x61\x03\x07\0" },
+  { 0x0228, 0, 255, "\x00\x45\x03\x27\0" },
+  { 0x0229, 0, 255, "\x00\x65\x03\x27\0" },
+  { 0x022a, 0, 255, "\x00\x4f\x03\x08\x03\x04\0" },
+  { 0x022b, 0, 255, "\x00\x6f\x03\x08\x03\x04\0" },
+  { 0x022c, 0, 255, "\x00\x4f\x03\x03\x03\x04\0" },
+  { 0x022d, 0, 255, "\x00\x6f\x03\x03\x03\x04\0" },
+  { 0x022e, 0, 255, "\x00\x4f\x03\x07\0" },
+  { 0x022f, 0, 255, "\x00\x6f\x03\x07\0" },
+  { 0x0230, 0, 255, "\x00\x4f\x03\x07\x03\x04\0" },
+  { 0x0231, 0, 255, "\x00\x6f\x03\x07\x03\x04\0" },
+  { 0x0232, 0, 255, "\x00\x59\x03\x04\0" },
+  { 0x0233, 0, 255, "\x00\x79\x03\x04\0" },
+  { 0x02b0, 255, 0, "\x00\x68\0" },
+  { 0x02b1, 255, 0, "\x02\x66\0" },
+  { 0x02b2, 255, 0, "\x00\x6a\0" },
+  { 0x02b3, 255, 0, "\x00\x72\0" },
+  { 0x02b4, 255, 0, "\x02\x79\0" },
+  { 0x02b5, 255, 0, "\x02\x7b\0" },
+  { 0x02b6, 255, 0, "\x02\x81\0" },
+  { 0x02b7, 255, 0, "\x00\x77\0" },
+  { 0x02b8, 255, 0, "\x00\x79\0" },
+  { 0x02d8, 255, 0, "\x00\x20\x03\x06\0" },
+  { 0x02d9, 255, 0, "\x00\x20\x03\x07\0" },
+  { 0x02da, 255, 0, "\x00\x20\x03\x0a\0" },
+  { 0x02db, 255, 0, "\x00\x20\x03\x28\0" },
+  { 0x02dc, 255, 0, "\x00\x20\x03\x03\0" },
+  { 0x02dd, 255, 0, "\x00\x20\x03\x0b\0" },
+  { 0x02e0, 255, 0, "\x02\x63\0" },
+  { 0x02e1, 255, 0, "\x00\x6c\0" },
+  { 0x02e2, 255, 0, "\x00\x73\0" },
+  { 0x02e3, 255, 0, "\x00\x78\0" },
+  { 0x02e4, 255, 0, "\x02\x95\0" },
+  { 0x0340, 0, 255, "\x03\x00\0" },
+  { 0x0341, 0, 255, "\x03\x01\0" },
+  { 0x0343, 0, 255, "\x03\x13\0" },
+  { 0x0344, 0, 255, "\x03\x08\x03\x01\0" },
+  { 0x0374, 0, 255, "\x02\xb9\0" },
+  { 0x037a, 255, 0, "\x00\x20\x03\x45\0" },
+  { 0x037e, 0, 255, "\x00\x3b\0" },
+  { 0x0384, 255, 0, "\x00\x20\x03\x01\0" },
+  { 0x0385, 0, 6, "\x00\xa8\x03\x01\x00\x00\x00\x20\x03\x08\x03\x01\0" },
+  { 0x0386, 0, 255, "\x03\x91\x03\x01\0" },
+  { 0x0387, 0, 255, "\x00\xb7\0" },
+  { 0x0388, 0, 255, "\x03\x95\x03\x01\0" },
+  { 0x0389, 0, 255, "\x03\x97\x03\x01\0" },
+  { 0x038a, 0, 255, "\x03\x99\x03\x01\0" },
+  { 0x038c, 0, 255, "\x03\x9f\x03\x01\0" },
+  { 0x038e, 0, 255, "\x03\xa5\x03\x01\0" },
+  { 0x038f, 0, 255, "\x03\xa9\x03\x01\0" },
+  { 0x0390, 0, 255, "\x03\xb9\x03\x08\x03\x01\0" },
+  { 0x03aa, 0, 255, "\x03\x99\x03\x08\0" },
+  { 0x03ab, 0, 255, "\x03\xa5\x03\x08\0" },
+  { 0x03ac, 0, 255, "\x03\xb1\x03\x01\0" },
+  { 0x03ad, 0, 255, "\x03\xb5\x03\x01\0" },
+  { 0x03ae, 0, 255, "\x03\xb7\x03\x01\0" },
+  { 0x03af, 0, 255, "\x03\xb9\x03\x01\0" },
+  { 0x03b0, 0, 255, "\x03\xc5\x03\x08\x03\x01\0" },
+  { 0x03ca, 0, 255, "\x03\xb9\x03\x08\0" },
+  { 0x03cb, 0, 255, "\x03\xc5\x03\x08\0" },
+  { 0x03cc, 0, 255, "\x03\xbf\x03\x01\0" },
+  { 0x03cd, 0, 255, "\x03\xc5\x03\x01\0" },
+  { 0x03ce, 0, 255, "\x03\xc9\x03\x01\0" },
+  { 0x03d0, 255, 0, "\x03\xb2\0" },
+  { 0x03d1, 255, 0, "\x03\xb8\0" },
+  { 0x03d2, 255, 0, "\x03\xa5\0" },
+  { 0x03d3, 0, 6, "\x03\xd2\x03\x01\x00\x00\x03\xa5\x03\x01\0" },
+  { 0x03d4, 0, 6, "\x03\xd2\x03\x08\x00\x00\x03\xa5\x03\x08\0" },
+  { 0x03d5, 255, 0, "\x03\xc6\0" },
+  { 0x03d6, 255, 0, "\x03\xc0\0" },
+  { 0x03f0, 255, 0, "\x03\xba\0" },
+  { 0x03f1, 255, 0, "\x03\xc1\0" },
+  { 0x03f2, 255, 0, "\x03\xc2\0" },
+  { 0x03f4, 255, 0, "\x03\x98\0" },
+  { 0x03f5, 255, 0, "\x03\xb5\0" },
+  { 0x0400, 0, 255, "\x04\x15\x03\x00\0" },
+  { 0x0401, 0, 255, "\x04\x15\x03\x08\0" },
+  { 0x0403, 0, 255, "\x04\x13\x03\x01\0" },
+  { 0x0407, 0, 255, "\x04\x06\x03\x08\0" },
+  { 0x040c, 0, 255, "\x04\x1a\x03\x01\0" },
+  { 0x040d, 0, 255, "\x04\x18\x03\x00\0" },
+  { 0x040e, 0, 255, "\x04\x23\x03\x06\0" },
+  { 0x0419, 0, 255, "\x04\x18\x03\x06\0" },
+  { 0x0439, 0, 255, "\x04\x38\x03\x06\0" },
+  { 0x0450, 0, 255, "\x04\x35\x03\x00\0" },
+  { 0x0451, 0, 255, "\x04\x35\x03\x08\0" },
+  { 0x0453, 0, 255, "\x04\x33\x03\x01\0" },
+  { 0x0457, 0, 255, "\x04\x56\x03\x08\0" },
+  { 0x045c, 0, 255, "\x04\x3a\x03\x01\0" },
+  { 0x045d, 0, 255, "\x04\x38\x03\x00\0" },
+  { 0x045e, 0, 255, "\x04\x43\x03\x06\0" },
+  { 0x0476, 0, 255, "\x04\x74\x03\x0f\0" },
+  { 0x0477, 0, 255, "\x04\x75\x03\x0f\0" },
+  { 0x04c1, 0, 255, "\x04\x16\x03\x06\0" },
+  { 0x04c2, 0, 255, "\x04\x36\x03\x06\0" },
+  { 0x04d0, 0, 255, "\x04\x10\x03\x06\0" },
+  { 0x04d1, 0, 255, "\x04\x30\x03\x06\0" },
+  { 0x04d2, 0, 255, "\x04\x10\x03\x08\0" },
+  { 0x04d3, 0, 255, "\x04\x30\x03\x08\0" },
+  { 0x04d6, 0, 255, "\x04\x15\x03\x06\0" },
+  { 0x04d7, 0, 255, "\x04\x35\x03\x06\0" },
+  { 0x04da, 0, 255, "\x04\xd8\x03\x08\0" },
+  { 0x04db, 0, 255, "\x04\xd9\x03\x08\0" },
+  { 0x04dc, 0, 255, "\x04\x16\x03\x08\0" },
+  { 0x04dd, 0, 255, "\x04\x36\x03\x08\0" },
+  { 0x04de, 0, 255, "\x04\x17\x03\x08\0" },
+  { 0x04df, 0, 255, "\x04\x37\x03\x08\0" },
+  { 0x04e2, 0, 255, "\x04\x18\x03\x04\0" },
+  { 0x04e3, 0, 255, "\x04\x38\x03\x04\0" },
+  { 0x04e4, 0, 255, "\x04\x18\x03\x08\0" },
+  { 0x04e5, 0, 255, "\x04\x38\x03\x08\0" },
+  { 0x04e6, 0, 255, "\x04\x1e\x03\x08\0" },
+  { 0x04e7, 0, 255, "\x04\x3e\x03\x08\0" },
+  { 0x04ea, 0, 255, "\x04\xe8\x03\x08\0" },
+  { 0x04eb, 0, 255, "\x04\xe9\x03\x08\0" },
+  { 0x04ec, 0, 255, "\x04\x2d\x03\x08\0" },
+  { 0x04ed, 0, 255, "\x04\x4d\x03\x08\0" },
+  { 0x04ee, 0, 255, "\x04\x23\x03\x04\0" },
+  { 0x04ef, 0, 255, "\x04\x43\x03\x04\0" },
+  { 0x04f0, 0, 255, "\x04\x23\x03\x08\0" },
+  { 0x04f1, 0, 255, "\x04\x43\x03\x08\0" },
+  { 0x04f2, 0, 255, "\x04\x23\x03\x0b\0" },
+  { 0x04f3, 0, 255, "\x04\x43\x03\x0b\0" },
+  { 0x04f4, 0, 255, "\x04\x27\x03\x08\0" },
+  { 0x04f5, 0, 255, "\x04\x47\x03\x08\0" },
+  { 0x04f8, 0, 255, "\x04\x2b\x03\x08\0" },
+  { 0x04f9, 0, 255, "\x04\x4b\x03\x08\0" },
+  { 0x0587, 255, 0, "\x05\x65\x05\x82\0" },
+  { 0x0622, 0, 255, "\x06\x27\x06\x53\0" },
+  { 0x0623, 0, 255, "\x06\x27\x06\x54\0" },
+  { 0x0624, 0, 255, "\x06\x48\x06\x54\0" },
+  { 0x0625, 0, 255, "\x06\x27\x06\x55\0" },
+  { 0x0626, 0, 255, "\x06\x4a\x06\x54\0" },
+  { 0x0675, 255, 0, "\x06\x27\x06\x74\0" },
+  { 0x0676, 255, 0, "\x06\x48\x06\x74\0" },
+  { 0x0677, 255, 0, "\x06\xc7\x06\x74\0" },
+  { 0x0678, 255, 0, "\x06\x4a\x06\x74\0" },
+  { 0x06c0, 0, 255, "\x06\xd5\x06\x54\0" },
+  { 0x06c2, 0, 255, "\x06\xc1\x06\x54\0" },
+  { 0x06d3, 0, 255, "\x06\xd2\x06\x54\0" },
+  { 0x0929, 0, 255, "\x09\x28\x09\x3c\0" },
+  { 0x0931, 0, 255, "\x09\x30\x09\x3c\0" },
+  { 0x0934, 0, 255, "\x09\x33\x09\x3c\0" },
+  { 0x0958, 0, 255, "\x09\x15\x09\x3c\0" },
+  { 0x0959, 0, 255, "\x09\x16\x09\x3c\0" },
+  { 0x095a, 0, 255, "\x09\x17\x09\x3c\0" },
+  { 0x095b, 0, 255, "\x09\x1c\x09\x3c\0" },
+  { 0x095c, 0, 255, "\x09\x21\x09\x3c\0" },
+  { 0x095d, 0, 255, "\x09\x22\x09\x3c\0" },
+  { 0x095e, 0, 255, "\x09\x2b\x09\x3c\0" },
+  { 0x095f, 0, 255, "\x09\x2f\x09\x3c\0" },
+  { 0x09cb, 0, 255, "\x09\xc7\x09\xbe\0" },
+  { 0x09cc, 0, 255, "\x09\xc7\x09\xd7\0" },
+  { 0x09dc, 0, 255, "\x09\xa1\x09\xbc\0" },
+  { 0x09dd, 0, 255, "\x09\xa2\x09\xbc\0" },
+  { 0x09df, 0, 255, "\x09\xaf\x09\xbc\0" },
+  { 0x0a33, 0, 255, "\x0a\x32\x0a\x3c\0" },
+  { 0x0a36, 0, 255, "\x0a\x38\x0a\x3c\0" },
+  { 0x0a59, 0, 255, "\x0a\x16\x0a\x3c\0" },
+  { 0x0a5a, 0, 255, "\x0a\x17\x0a\x3c\0" },
+  { 0x0a5b, 0, 255, "\x0a\x1c\x0a\x3c\0" },
+  { 0x0a5e, 0, 255, "\x0a\x2b\x0a\x3c\0" },
+  { 0x0b48, 0, 255, "\x0b\x47\x0b\x56\0" },
+  { 0x0b4b, 0, 255, "\x0b\x47\x0b\x3e\0" },
+  { 0x0b4c, 0, 255, "\x0b\x47\x0b\x57\0" },
+  { 0x0b5c, 0, 255, "\x0b\x21\x0b\x3c\0" },
+  { 0x0b5d, 0, 255, "\x0b\x22\x0b\x3c\0" },
+  { 0x0b94, 0, 255, "\x0b\x92\x0b\xd7\0" },
+  { 0x0bca, 0, 255, "\x0b\xc6\x0b\xbe\0" },
+  { 0x0bcb, 0, 255, "\x0b\xc7\x0b\xbe\0" },
+  { 0x0bcc, 0, 255, "\x0b\xc6\x0b\xd7\0" },
+  { 0x0c48, 0, 255, "\x0c\x46\x0c\x56\0" },
+  { 0x0cc0, 0, 255, "\x0c\xbf\x0c\xd5\0" },
+  { 0x0cc7, 0, 255, "\x0c\xc6\x0c\xd5\0" },
+  { 0x0cc8, 0, 255, "\x0c\xc6\x0c\xd6\0" },
+  { 0x0cca, 0, 255, "\x0c\xc6\x0c\xc2\0" },
+  { 0x0ccb, 0, 255, "\x0c\xc6\x0c\xc2\x0c\xd5\0" },
+  { 0x0d4a, 0, 255, "\x0d\x46\x0d\x3e\0" },
+  { 0x0d4b, 0, 255, "\x0d\x47\x0d\x3e\0" },
+  { 0x0d4c, 0, 255, "\x0d\x46\x0d\x57\0" },
+  { 0x0dda, 0, 255, "\x0d\xd9\x0d\xca\0" },
+  { 0x0ddc, 0, 255, "\x0d\xd9\x0d\xcf\0" },
+  { 0x0ddd, 0, 255, "\x0d\xd9\x0d\xcf\x0d\xca\0" },
+  { 0x0dde, 0, 255, "\x0d\xd9\x0d\xdf\0" },
+  { 0x0e33, 255, 0, "\x0e\x4d\x0e\x32\0" },
+  { 0x0eb3, 255, 0, "\x0e\xcd\x0e\xb2\0" },
+  { 0x0edc, 255, 0, "\x0e\xab\x0e\x99\0" },
+  { 0x0edd, 255, 0, "\x0e\xab\x0e\xa1\0" },
+  { 0x0f0c, 255, 0, "\x0f\x0b\0" },
+  { 0x0f43, 0, 255, "\x0f\x42\x0f\xb7\0" },
+  { 0x0f4d, 0, 255, "\x0f\x4c\x0f\xb7\0" },
+  { 0x0f52, 0, 255, "\x0f\x51\x0f\xb7\0" },
+  { 0x0f57, 0, 255, "\x0f\x56\x0f\xb7\0" },
+  { 0x0f5c, 0, 255, "\x0f\x5b\x0f\xb7\0" },
+  { 0x0f69, 0, 255, "\x0f\x40\x0f\xb5\0" },
+  { 0x0f73, 0, 255, "\x0f\x71\x0f\x72\0" },
+  { 0x0f75, 0, 255, "\x0f\x71\x0f\x74\0" },
+  { 0x0f76, 0, 255, "\x0f\xb2\x0f\x80\0" },
+  { 0x0f77, 255, 0, "\x0f\xb2\x0f\x71\x0f\x80\0" },
+  { 0x0f78, 0, 255, "\x0f\xb3\x0f\x80\0" },
+  { 0x0f79, 255, 0, "\x0f\xb3\x0f\x71\x0f\x80\0" },
+  { 0x0f81, 0, 255, "\x0f\x71\x0f\x80\0" },
+  { 0x0f93, 0, 255, "\x0f\x92\x0f\xb7\0" },
+  { 0x0f9d, 0, 255, "\x0f\x9c\x0f\xb7\0" },
+  { 0x0fa2, 0, 255, "\x0f\xa1\x0f\xb7\0" },
+  { 0x0fa7, 0, 255, "\x0f\xa6\x0f\xb7\0" },
+  { 0x0fac, 0, 255, "\x0f\xab\x0f\xb7\0" },
+  { 0x0fb9, 0, 255, "\x0f\x90\x0f\xb5\0" },
+  { 0x1026, 0, 255, "\x10\x25\x10\x2e\0" },
+  { 0x1e00, 0, 255, "\x00\x41\x03\x25\0" },
+  { 0x1e01, 0, 255, "\x00\x61\x03\x25\0" },
+  { 0x1e02, 0, 255, "\x00\x42\x03\x07\0" },
+  { 0x1e03, 0, 255, "\x00\x62\x03\x07\0" },
+  { 0x1e04, 0, 255, "\x00\x42\x03\x23\0" },
+  { 0x1e05, 0, 255, "\x00\x62\x03\x23\0" },
+  { 0x1e06, 0, 255, "\x00\x42\x03\x31\0" },
+  { 0x1e07, 0, 255, "\x00\x62\x03\x31\0" },
+  { 0x1e08, 0, 255, "\x00\x43\x03\x27\x03\x01\0" },
+  { 0x1e09, 0, 255, "\x00\x63\x03\x27\x03\x01\0" },
+  { 0x1e0a, 0, 255, "\x00\x44\x03\x07\0" },
+  { 0x1e0b, 0, 255, "\x00\x64\x03\x07\0" },
+  { 0x1e0c, 0, 255, "\x00\x44\x03\x23\0" },
+  { 0x1e0d, 0, 255, "\x00\x64\x03\x23\0" },
+  { 0x1e0e, 0, 255, "\x00\x44\x03\x31\0" },
+  { 0x1e0f, 0, 255, "\x00\x64\x03\x31\0" },
+  { 0x1e10, 0, 255, "\x00\x44\x03\x27\0" },
+  { 0x1e11, 0, 255, "\x00\x64\x03\x27\0" },
+  { 0x1e12, 0, 255, "\x00\x44\x03\x2d\0" },
+  { 0x1e13, 0, 255, "\x00\x64\x03\x2d\0" },
+  { 0x1e14, 0, 255, "\x00\x45\x03\x04\x03\x00\0" },
+  { 0x1e15, 0, 255, "\x00\x65\x03\x04\x03\x00\0" },
+  { 0x1e16, 0, 255, "\x00\x45\x03\x04\x03\x01\0" },
+  { 0x1e17, 0, 255, "\x00\x65\x03\x04\x03\x01\0" },
+  { 0x1e18, 0, 255, "\x00\x45\x03\x2d\0" },
+  { 0x1e19, 0, 255, "\x00\x65\x03\x2d\0" },
+  { 0x1e1a, 0, 255, "\x00\x45\x03\x30\0" },
+  { 0x1e1b, 0, 255, "\x00\x65\x03\x30\0" },
+  { 0x1e1c, 0, 255, "\x00\x45\x03\x27\x03\x06\0" },
+  { 0x1e1d, 0, 255, "\x00\x65\x03\x27\x03\x06\0" },
+  { 0x1e1e, 0, 255, "\x00\x46\x03\x07\0" },
+  { 0x1e1f, 0, 255, "\x00\x66\x03\x07\0" },
+  { 0x1e20, 0, 255, "\x00\x47\x03\x04\0" },
+  { 0x1e21, 0, 255, "\x00\x67\x03\x04\0" },
+  { 0x1e22, 0, 255, "\x00\x48\x03\x07\0" },
+  { 0x1e23, 0, 255, "\x00\x68\x03\x07\0" },
+  { 0x1e24, 0, 255, "\x00\x48\x03\x23\0" },
+  { 0x1e25, 0, 255, "\x00\x68\x03\x23\0" },
+  { 0x1e26, 0, 255, "\x00\x48\x03\x08\0" },
+  { 0x1e27, 0, 255, "\x00\x68\x03\x08\0" },
+  { 0x1e28, 0, 255, "\x00\x48\x03\x27\0" },
+  { 0x1e29, 0, 255, "\x00\x68\x03\x27\0" },
+  { 0x1e2a, 0, 255, "\x00\x48\x03\x2e\0" },
+  { 0x1e2b, 0, 255, "\x00\x68\x03\x2e\0" },
+  { 0x1e2c, 0, 255, "\x00\x49\x03\x30\0" },
+  { 0x1e2d, 0, 255, "\x00\x69\x03\x30\0" },
+  { 0x1e2e, 0, 255, "\x00\x49\x03\x08\x03\x01\0" },
+  { 0x1e2f, 0, 255, "\x00\x69\x03\x08\x03\x01\0" },
+  { 0x1e30, 0, 255, "\x00\x4b\x03\x01\0" },
+  { 0x1e31, 0, 255, "\x00\x6b\x03\x01\0" },
+  { 0x1e32, 0, 255, "\x00\x4b\x03\x23\0" },
+  { 0x1e33, 0, 255, "\x00\x6b\x03\x23\0" },
+  { 0x1e34, 0, 255, "\x00\x4b\x03\x31\0" },
+  { 0x1e35, 0, 255, "\x00\x6b\x03\x31\0" },
+  { 0x1e36, 0, 255, "\x00\x4c\x03\x23\0" },
+  { 0x1e37, 0, 255, "\x00\x6c\x03\x23\0" },
+  { 0x1e38, 0, 255, "\x00\x4c\x03\x23\x03\x04\0" },
+  { 0x1e39, 0, 255, "\x00\x6c\x03\x23\x03\x04\0" },
+  { 0x1e3a, 0, 255, "\x00\x4c\x03\x31\0" },
+  { 0x1e3b, 0, 255, "\x00\x6c\x03\x31\0" },
+  { 0x1e3c, 0, 255, "\x00\x4c\x03\x2d\0" },
+  { 0x1e3d, 0, 255, "\x00\x6c\x03\x2d\0" },
+  { 0x1e3e, 0, 255, "\x00\x4d\x03\x01\0" },
+  { 0x1e3f, 0, 255, "\x00\x6d\x03\x01\0" },
+  { 0x1e40, 0, 255, "\x00\x4d\x03\x07\0" },
+  { 0x1e41, 0, 255, "\x00\x6d\x03\x07\0" },
+  { 0x1e42, 0, 255, "\x00\x4d\x03\x23\0" },
+  { 0x1e43, 0, 255, "\x00\x6d\x03\x23\0" },
+  { 0x1e44, 0, 255, "\x00\x4e\x03\x07\0" },
+  { 0x1e45, 0, 255, "\x00\x6e\x03\x07\0" },
+  { 0x1e46, 0, 255, "\x00\x4e\x03\x23\0" },
+  { 0x1e47, 0, 255, "\x00\x6e\x03\x23\0" },
+  { 0x1e48, 0, 255, "\x00\x4e\x03\x31\0" },
+  { 0x1e49, 0, 255, "\x00\x6e\x03\x31\0" },
+  { 0x1e4a, 0, 255, "\x00\x4e\x03\x2d\0" },
+  { 0x1e4b, 0, 255, "\x00\x6e\x03\x2d\0" },
+  { 0x1e4c, 0, 255, "\x00\x4f\x03\x03\x03\x01\0" },
+  { 0x1e4d, 0, 255, "\x00\x6f\x03\x03\x03\x01\0" },
+  { 0x1e4e, 0, 255, "\x00\x4f\x03\x03\x03\x08\0" },
+  { 0x1e4f, 0, 255, "\x00\x6f\x03\x03\x03\x08\0" },
+  { 0x1e50, 0, 255, "\x00\x4f\x03\x04\x03\x00\0" },
+  { 0x1e51, 0, 255, "\x00\x6f\x03\x04\x03\x00\0" },
+  { 0x1e52, 0, 255, "\x00\x4f\x03\x04\x03\x01\0" },
+  { 0x1e53, 0, 255, "\x00\x6f\x03\x04\x03\x01\0" },
+  { 0x1e54, 0, 255, "\x00\x50\x03\x01\0" },
+  { 0x1e55, 0, 255, "\x00\x70\x03\x01\0" },
+  { 0x1e56, 0, 255, "\x00\x50\x03\x07\0" },
+  { 0x1e57, 0, 255, "\x00\x70\x03\x07\0" },
+  { 0x1e58, 0, 255, "\x00\x52\x03\x07\0" },
+  { 0x1e59, 0, 255, "\x00\x72\x03\x07\0" },
+  { 0x1e5a, 0, 255, "\x00\x52\x03\x23\0" },
+  { 0x1e5b, 0, 255, "\x00\x72\x03\x23\0" },
+  { 0x1e5c, 0, 255, "\x00\x52\x03\x23\x03\x04\0" },
+  { 0x1e5d, 0, 255, "\x00\x72\x03\x23\x03\x04\0" },
+  { 0x1e5e, 0, 255, "\x00\x52\x03\x31\0" },
+  { 0x1e5f, 0, 255, "\x00\x72\x03\x31\0" },
+  { 0x1e60, 0, 255, "\x00\x53\x03\x07\0" },
+  { 0x1e61, 0, 255, "\x00\x73\x03\x07\0" },
+  { 0x1e62, 0, 255, "\x00\x53\x03\x23\0" },
+  { 0x1e63, 0, 255, "\x00\x73\x03\x23\0" },
+  { 0x1e64, 0, 255, "\x00\x53\x03\x01\x03\x07\0" },
+  { 0x1e65, 0, 255, "\x00\x73\x03\x01\x03\x07\0" },
+  { 0x1e66, 0, 255, "\x00\x53\x03\x0c\x03\x07\0" },
+  { 0x1e67, 0, 255, "\x00\x73\x03\x0c\x03\x07\0" },
+  { 0x1e68, 0, 255, "\x00\x53\x03\x23\x03\x07\0" },
+  { 0x1e69, 0, 255, "\x00\x73\x03\x23\x03\x07\0" },
+  { 0x1e6a, 0, 255, "\x00\x54\x03\x07\0" },
+  { 0x1e6b, 0, 255, "\x00\x74\x03\x07\0" },
+  { 0x1e6c, 0, 255, "\x00\x54\x03\x23\0" },
+  { 0x1e6d, 0, 255, "\x00\x74\x03\x23\0" },
+  { 0x1e6e, 0, 255, "\x00\x54\x03\x31\0" },
+  { 0x1e6f, 0, 255, "\x00\x74\x03\x31\0" },
+  { 0x1e70, 0, 255, "\x00\x54\x03\x2d\0" },
+  { 0x1e71, 0, 255, "\x00\x74\x03\x2d\0" },
+  { 0x1e72, 0, 255, "\x00\x55\x03\x24\0" },
+  { 0x1e73, 0, 255, "\x00\x75\x03\x24\0" },
+  { 0x1e74, 0, 255, "\x00\x55\x03\x30\0" },
+  { 0x1e75, 0, 255, "\x00\x75\x03\x30\0" },
+  { 0x1e76, 0, 255, "\x00\x55\x03\x2d\0" },
+  { 0x1e77, 0, 255, "\x00\x75\x03\x2d\0" },
+  { 0x1e78, 0, 255, "\x00\x55\x03\x03\x03\x01\0" },
+  { 0x1e79, 0, 255, "\x00\x75\x03\x03\x03\x01\0" },
+  { 0x1e7a, 0, 255, "\x00\x55\x03\x04\x03\x08\0" },
+  { 0x1e7b, 0, 255, "\x00\x75\x03\x04\x03\x08\0" },
+  { 0x1e7c, 0, 255, "\x00\x56\x03\x03\0" },
+  { 0x1e7d, 0, 255, "\x00\x76\x03\x03\0" },
+  { 0x1e7e, 0, 255, "\x00\x56\x03\x23\0" },
+  { 0x1e7f, 0, 255, "\x00\x76\x03\x23\0" },
+  { 0x1e80, 0, 255, "\x00\x57\x03\x00\0" },
+  { 0x1e81, 0, 255, "\x00\x77\x03\x00\0" },
+  { 0x1e82, 0, 255, "\x00\x57\x03\x01\0" },
+  { 0x1e83, 0, 255, "\x00\x77\x03\x01\0" },
+  { 0x1e84, 0, 255, "\x00\x57\x03\x08\0" },
+  { 0x1e85, 0, 255, "\x00\x77\x03\x08\0" },
+  { 0x1e86, 0, 255, "\x00\x57\x03\x07\0" },
+  { 0x1e87, 0, 255, "\x00\x77\x03\x07\0" },
+  { 0x1e88, 0, 255, "\x00\x57\x03\x23\0" },
+  { 0x1e89, 0, 255, "\x00\x77\x03\x23\0" },
+  { 0x1e8a, 0, 255, "\x00\x58\x03\x07\0" },
+  { 0x1e8b, 0, 255, "\x00\x78\x03\x07\0" },
+  { 0x1e8c, 0, 255, "\x00\x58\x03\x08\0" },
+  { 0x1e8d, 0, 255, "\x00\x78\x03\x08\0" },
+  { 0x1e8e, 0, 255, "\x00\x59\x03\x07\0" },
+  { 0x1e8f, 0, 255, "\x00\x79\x03\x07\0" },
+  { 0x1e90, 0, 255, "\x00\x5a\x03\x02\0" },
+  { 0x1e91, 0, 255, "\x00\x7a\x03\x02\0" },
+  { 0x1e92, 0, 255, "\x00\x5a\x03\x23\0" },
+  { 0x1e93, 0, 255, "\x00\x7a\x03\x23\0" },
+  { 0x1e94, 0, 255, "\x00\x5a\x03\x31\0" },
+  { 0x1e95, 0, 255, "\x00\x7a\x03\x31\0" },
+  { 0x1e96, 0, 255, "\x00\x68\x03\x31\0" },
+  { 0x1e97, 0, 255, "\x00\x74\x03\x08\0" },
+  { 0x1e98, 0, 255, "\x00\x77\x03\x0a\0" },
+  { 0x1e99, 0, 255, "\x00\x79\x03\x0a\0" },
+  { 0x1e9a, 255, 0, "\x00\x61\x02\xbe\0" },
+  { 0x1e9b, 0, 6, "\x01\x7f\x03\x07\x00\x00\x00\x73\x03\x07\0" },
+  { 0x1ea0, 0, 255, "\x00\x41\x03\x23\0" },
+  { 0x1ea1, 0, 255, "\x00\x61\x03\x23\0" },
+  { 0x1ea2, 0, 255, "\x00\x41\x03\x09\0" },
+  { 0x1ea3, 0, 255, "\x00\x61\x03\x09\0" },
+  { 0x1ea4, 0, 255, "\x00\x41\x03\x02\x03\x01\0" },
+  { 0x1ea5, 0, 255, "\x00\x61\x03\x02\x03\x01\0" },
+  { 0x1ea6, 0, 255, "\x00\x41\x03\x02\x03\x00\0" },
+  { 0x1ea7, 0, 255, "\x00\x61\x03\x02\x03\x00\0" },
+  { 0x1ea8, 0, 255, "\x00\x41\x03\x02\x03\x09\0" },
+  { 0x1ea9, 0, 255, "\x00\x61\x03\x02\x03\x09\0" },
+  { 0x1eaa, 0, 255, "\x00\x41\x03\x02\x03\x03\0" },
+  { 0x1eab, 0, 255, "\x00\x61\x03\x02\x03\x03\0" },
+  { 0x1eac, 0, 255, "\x00\x41\x03\x23\x03\x02\0" },
+  { 0x1ead, 0, 255, "\x00\x61\x03\x23\x03\x02\0" },
+  { 0x1eae, 0, 255, "\x00\x41\x03\x06\x03\x01\0" },
+  { 0x1eaf, 0, 255, "\x00\x61\x03\x06\x03\x01\0" },
+  { 0x1eb0, 0, 255, "\x00\x41\x03\x06\x03\x00\0" },
+  { 0x1eb1, 0, 255, "\x00\x61\x03\x06\x03\x00\0" },
+  { 0x1eb2, 0, 255, "\x00\x41\x03\x06\x03\x09\0" },
+  { 0x1eb3, 0, 255, "\x00\x61\x03\x06\x03\x09\0" },
+  { 0x1eb4, 0, 255, "\x00\x41\x03\x06\x03\x03\0" },
+  { 0x1eb5, 0, 255, "\x00\x61\x03\x06\x03\x03\0" },
+  { 0x1eb6, 0, 255, "\x00\x41\x03\x23\x03\x06\0" },
+  { 0x1eb7, 0, 255, "\x00\x61\x03\x23\x03\x06\0" },
+  { 0x1eb8, 0, 255, "\x00\x45\x03\x23\0" },
+  { 0x1eb9, 0, 255, "\x00\x65\x03\x23\0" },
+  { 0x1eba, 0, 255, "\x00\x45\x03\x09\0" },
+  { 0x1ebb, 0, 255, "\x00\x65\x03\x09\0" },
+  { 0x1ebc, 0, 255, "\x00\x45\x03\x03\0" },
+  { 0x1ebd, 0, 255, "\x00\x65\x03\x03\0" },
+  { 0x1ebe, 0, 255, "\x00\x45\x03\x02\x03\x01\0" },
+  { 0x1ebf, 0, 255, "\x00\x65\x03\x02\x03\x01\0" },
+  { 0x1ec0, 0, 255, "\x00\x45\x03\x02\x03\x00\0" },
+  { 0x1ec1, 0, 255, "\x00\x65\x03\x02\x03\x00\0" },
+  { 0x1ec2, 0, 255, "\x00\x45\x03\x02\x03\x09\0" },
+  { 0x1ec3, 0, 255, "\x00\x65\x03\x02\x03\x09\0" },
+  { 0x1ec4, 0, 255, "\x00\x45\x03\x02\x03\x03\0" },
+  { 0x1ec5, 0, 255, "\x00\x65\x03\x02\x03\x03\0" },
+  { 0x1ec6, 0, 255, "\x00\x45\x03\x23\x03\x02\0" },
+  { 0x1ec7, 0, 255, "\x00\x65\x03\x23\x03\x02\0" },
+  { 0x1ec8, 0, 255, "\x00\x49\x03\x09\0" },
+  { 0x1ec9, 0, 255, "\x00\x69\x03\x09\0" },
+  { 0x1eca, 0, 255, "\x00\x49\x03\x23\0" },
+  { 0x1ecb, 0, 255, "\x00\x69\x03\x23\0" },
+  { 0x1ecc, 0, 255, "\x00\x4f\x03\x23\0" },
+  { 0x1ecd, 0, 255, "\x00\x6f\x03\x23\0" },
+  { 0x1ece, 0, 255, "\x00\x4f\x03\x09\0" },
+  { 0x1ecf, 0, 255, "\x00\x6f\x03\x09\0" },
+  { 0x1ed0, 0, 255, "\x00\x4f\x03\x02\x03\x01\0" },
+  { 0x1ed1, 0, 255, "\x00\x6f\x03\x02\x03\x01\0" },
+  { 0x1ed2, 0, 255, "\x00\x4f\x03\x02\x03\x00\0" },
+  { 0x1ed3, 0, 255, "\x00\x6f\x03\x02\x03\x00\0" },
+  { 0x1ed4, 0, 255, "\x00\x4f\x03\x02\x03\x09\0" },
+  { 0x1ed5, 0, 255, "\x00\x6f\x03\x02\x03\x09\0" },
+  { 0x1ed6, 0, 255, "\x00\x4f\x03\x02\x03\x03\0" },
+  { 0x1ed7, 0, 255, "\x00\x6f\x03\x02\x03\x03\0" },
+  { 0x1ed8, 0, 255, "\x00\x4f\x03\x23\x03\x02\0" },
+  { 0x1ed9, 0, 255, "\x00\x6f\x03\x23\x03\x02\0" },
+  { 0x1eda, 0, 255, "\x00\x4f\x03\x1b\x03\x01\0" },
+  { 0x1edb, 0, 255, "\x00\x6f\x03\x1b\x03\x01\0" },
+  { 0x1edc, 0, 255, "\x00\x4f\x03\x1b\x03\x00\0" },
+  { 0x1edd, 0, 255, "\x00\x6f\x03\x1b\x03\x00\0" },
+  { 0x1ede, 0, 255, "\x00\x4f\x03\x1b\x03\x09\0" },
+  { 0x1edf, 0, 255, "\x00\x6f\x03\x1b\x03\x09\0" },
+  { 0x1ee0, 0, 255, "\x00\x4f\x03\x1b\x03\x03\0" },
+  { 0x1ee1, 0, 255, "\x00\x6f\x03\x1b\x03\x03\0" },
+  { 0x1ee2, 0, 255, "\x00\x4f\x03\x1b\x03\x23\0" },
+  { 0x1ee3, 0, 255, "\x00\x6f\x03\x1b\x03\x23\0" },
+  { 0x1ee4, 0, 255, "\x00\x55\x03\x23\0" },
+  { 0x1ee5, 0, 255, "\x00\x75\x03\x23\0" },
+  { 0x1ee6, 0, 255, "\x00\x55\x03\x09\0" },
+  { 0x1ee7, 0, 255, "\x00\x75\x03\x09\0" },
+  { 0x1ee8, 0, 255, "\x00\x55\x03\x1b\x03\x01\0" },
+  { 0x1ee9, 0, 255, "\x00\x75\x03\x1b\x03\x01\0" },
+  { 0x1eea, 0, 255, "\x00\x55\x03\x1b\x03\x00\0" },
+  { 0x1eeb, 0, 255, "\x00\x75\x03\x1b\x03\x00\0" },
+  { 0x1eec, 0, 255, "\x00\x55\x03\x1b\x03\x09\0" },
+  { 0x1eed, 0, 255, "\x00\x75\x03\x1b\x03\x09\0" },
+  { 0x1eee, 0, 255, "\x00\x55\x03\x1b\x03\x03\0" },
+  { 0x1eef, 0, 255, "\x00\x75\x03\x1b\x03\x03\0" },
+  { 0x1ef0, 0, 255, "\x00\x55\x03\x1b\x03\x23\0" },
+  { 0x1ef1, 0, 255, "\x00\x75\x03\x1b\x03\x23\0" },
+  { 0x1ef2, 0, 255, "\x00\x59\x03\x00\0" },
+  { 0x1ef3, 0, 255, "\x00\x79\x03\x00\0" },
+  { 0x1ef4, 0, 255, "\x00\x59\x03\x23\0" },
+  { 0x1ef5, 0, 255, "\x00\x79\x03\x23\0" },
+  { 0x1ef6, 0, 255, "\x00\x59\x03\x09\0" },
+  { 0x1ef7, 0, 255, "\x00\x79\x03\x09\0" },
+  { 0x1ef8, 0, 255, "\x00\x59\x03\x03\0" },
+  { 0x1ef9, 0, 255, "\x00\x79\x03\x03\0" },
+  { 0x1f00, 0, 255, "\x03\xb1\x03\x13\0" },
+  { 0x1f01, 0, 255, "\x03\xb1\x03\x14\0" },
+  { 0x1f02, 0, 255, "\x03\xb1\x03\x13\x03\x00\0" },
+  { 0x1f03, 0, 255, "\x03\xb1\x03\x14\x03\x00\0" },
+  { 0x1f04, 0, 255, "\x03\xb1\x03\x13\x03\x01\0" },
+  { 0x1f05, 0, 255, "\x03\xb1\x03\x14\x03\x01\0" },
+  { 0x1f06, 0, 255, "\x03\xb1\x03\x13\x03\x42\0" },
+  { 0x1f07, 0, 255, "\x03\xb1\x03\x14\x03\x42\0" },
+  { 0x1f08, 0, 255, "\x03\x91\x03\x13\0" },
+  { 0x1f09, 0, 255, "\x03\x91\x03\x14\0" },
+  { 0x1f0a, 0, 255, "\x03\x91\x03\x13\x03\x00\0" },
+  { 0x1f0b, 0, 255, "\x03\x91\x03\x14\x03\x00\0" },
+  { 0x1f0c, 0, 255, "\x03\x91\x03\x13\x03\x01\0" },
+  { 0x1f0d, 0, 255, "\x03\x91\x03\x14\x03\x01\0" },
+  { 0x1f0e, 0, 255, "\x03\x91\x03\x13\x03\x42\0" },
+  { 0x1f0f, 0, 255, "\x03\x91\x03\x14\x03\x42\0" },
+  { 0x1f10, 0, 255, "\x03\xb5\x03\x13\0" },
+  { 0x1f11, 0, 255, "\x03\xb5\x03\x14\0" },
+  { 0x1f12, 0, 255, "\x03\xb5\x03\x13\x03\x00\0" },
+  { 0x1f13, 0, 255, "\x03\xb5\x03\x14\x03\x00\0" },
+  { 0x1f14, 0, 255, "\x03\xb5\x03\x13\x03\x01\0" },
+  { 0x1f15, 0, 255, "\x03\xb5\x03\x14\x03\x01\0" },
+  { 0x1f18, 0, 255, "\x03\x95\x03\x13\0" },
+  { 0x1f19, 0, 255, "\x03\x95\x03\x14\0" },
+  { 0x1f1a, 0, 255, "\x03\x95\x03\x13\x03\x00\0" },
+  { 0x1f1b, 0, 255, "\x03\x95\x03\x14\x03\x00\0" },
+  { 0x1f1c, 0, 255, "\x03\x95\x03\x13\x03\x01\0" },
+  { 0x1f1d, 0, 255, "\x03\x95\x03\x14\x03\x01\0" },
+  { 0x1f20, 0, 255, "\x03\xb7\x03\x13\0" },
+  { 0x1f21, 0, 255, "\x03\xb7\x03\x14\0" },
+  { 0x1f22, 0, 255, "\x03\xb7\x03\x13\x03\x00\0" },
+  { 0x1f23, 0, 255, "\x03\xb7\x03\x14\x03\x00\0" },
+  { 0x1f24, 0, 255, "\x03\xb7\x03\x13\x03\x01\0" },
+  { 0x1f25, 0, 255, "\x03\xb7\x03\x14\x03\x01\0" },
+  { 0x1f26, 0, 255, "\x03\xb7\x03\x13\x03\x42\0" },
+  { 0x1f27, 0, 255, "\x03\xb7\x03\x14\x03\x42\0" },
+  { 0x1f28, 0, 255, "\x03\x97\x03\x13\0" },
+  { 0x1f29, 0, 255, "\x03\x97\x03\x14\0" },
+  { 0x1f2a, 0, 255, "\x03\x97\x03\x13\x03\x00\0" },
+  { 0x1f2b, 0, 255, "\x03\x97\x03\x14\x03\x00\0" },
+  { 0x1f2c, 0, 255, "\x03\x97\x03\x13\x03\x01\0" },
+  { 0x1f2d, 0, 255, "\x03\x97\x03\x14\x03\x01\0" },
+  { 0x1f2e, 0, 255, "\x03\x97\x03\x13\x03\x42\0" },
+  { 0x1f2f, 0, 255, "\x03\x97\x03\x14\x03\x42\0" },
+  { 0x1f30, 0, 255, "\x03\xb9\x03\x13\0" },
+  { 0x1f31, 0, 255, "\x03\xb9\x03\x14\0" },
+  { 0x1f32, 0, 255, "\x03\xb9\x03\x13\x03\x00\0" },
+  { 0x1f33, 0, 255, "\x03\xb9\x03\x14\x03\x00\0" },
+  { 0x1f34, 0, 255, "\x03\xb9\x03\x13\x03\x01\0" },
+  { 0x1f35, 0, 255, "\x03\xb9\x03\x14\x03\x01\0" },
+  { 0x1f36, 0, 255, "\x03\xb9\x03\x13\x03\x42\0" },
+  { 0x1f37, 0, 255, "\x03\xb9\x03\x14\x03\x42\0" },
+  { 0x1f38, 0, 255, "\x03\x99\x03\x13\0" },
+  { 0x1f39, 0, 255, "\x03\x99\x03\x14\0" },
+  { 0x1f3a, 0, 255, "\x03\x99\x03\x13\x03\x00\0" },
+  { 0x1f3b, 0, 255, "\x03\x99\x03\x14\x03\x00\0" },
+  { 0x1f3c, 0, 255, "\x03\x99\x03\x13\x03\x01\0" },
+  { 0x1f3d, 0, 255, "\x03\x99\x03\x14\x03\x01\0" },
+  { 0x1f3e, 0, 255, "\x03\x99\x03\x13\x03\x42\0" },
+  { 0x1f3f, 0, 255, "\x03\x99\x03\x14\x03\x42\0" },
+  { 0x1f40, 0, 255, "\x03\xbf\x03\x13\0" },
+  { 0x1f41, 0, 255, "\x03\xbf\x03\x14\0" },
+  { 0x1f42, 0, 255, "\x03\xbf\x03\x13\x03\x00\0" },
+  { 0x1f43, 0, 255, "\x03\xbf\x03\x14\x03\x00\0" },
+  { 0x1f44, 0, 255, "\x03\xbf\x03\x13\x03\x01\0" },
+  { 0x1f45, 0, 255, "\x03\xbf\x03\x14\x03\x01\0" },
+  { 0x1f48, 0, 255, "\x03\x9f\x03\x13\0" },
+  { 0x1f49, 0, 255, "\x03\x9f\x03\x14\0" },
+  { 0x1f4a, 0, 255, "\x03\x9f\x03\x13\x03\x00\0" },
+  { 0x1f4b, 0, 255, "\x03\x9f\x03\x14\x03\x00\0" },
+  { 0x1f4c, 0, 255, "\x03\x9f\x03\x13\x03\x01\0" },
+  { 0x1f4d, 0, 255, "\x03\x9f\x03\x14\x03\x01\0" },
+  { 0x1f50, 0, 255, "\x03\xc5\x03\x13\0" },
+  { 0x1f51, 0, 255, "\x03\xc5\x03\x14\0" },
+  { 0x1f52, 0, 255, "\x03\xc5\x03\x13\x03\x00\0" },
+  { 0x1f53, 0, 255, "\x03\xc5\x03\x14\x03\x00\0" },
+  { 0x1f54, 0, 255, "\x03\xc5\x03\x13\x03\x01\0" },
+  { 0x1f55, 0, 255, "\x03\xc5\x03\x14\x03\x01\0" },
+  { 0x1f56, 0, 255, "\x03\xc5\x03\x13\x03\x42\0" },
+  { 0x1f57, 0, 255, "\x03\xc5\x03\x14\x03\x42\0" },
+  { 0x1f59, 0, 255, "\x03\xa5\x03\x14\0" },
+  { 0x1f5b, 0, 255, "\x03\xa5\x03\x14\x03\x00\0" },
+  { 0x1f5d, 0, 255, "\x03\xa5\x03\x14\x03\x01\0" },
+  { 0x1f5f, 0, 255, "\x03\xa5\x03\x14\x03\x42\0" },
+  { 0x1f60, 0, 255, "\x03\xc9\x03\x13\0" },
+  { 0x1f61, 0, 255, "\x03\xc9\x03\x14\0" },
+  { 0x1f62, 0, 255, "\x03\xc9\x03\x13\x03\x00\0" },
+  { 0x1f63, 0, 255, "\x03\xc9\x03\x14\x03\x00\0" },
+  { 0x1f64, 0, 255, "\x03\xc9\x03\x13\x03\x01\0" },
+  { 0x1f65, 0, 255, "\x03\xc9\x03\x14\x03\x01\0" },
+  { 0x1f66, 0, 255, "\x03\xc9\x03\x13\x03\x42\0" },
+  { 0x1f67, 0, 255, "\x03\xc9\x03\x14\x03\x42\0" },
+  { 0x1f68, 0, 255, "\x03\xa9\x03\x13\0" },
+  { 0x1f69, 0, 255, "\x03\xa9\x03\x14\0" },
+  { 0x1f6a, 0, 255, "\x03\xa9\x03\x13\x03\x00\0" },
+  { 0x1f6b, 0, 255, "\x03\xa9\x03\x14\x03\x00\0" },
+  { 0x1f6c, 0, 255, "\x03\xa9\x03\x13\x03\x01\0" },
+  { 0x1f6d, 0, 255, "\x03\xa9\x03\x14\x03\x01\0" },
+  { 0x1f6e, 0, 255, "\x03\xa9\x03\x13\x03\x42\0" },
+  { 0x1f6f, 0, 255, "\x03\xa9\x03\x14\x03\x42\0" },
+  { 0x1f70, 0, 255, "\x03\xb1\x03\x00\0" },
+  { 0x1f71, 0, 255, "\x03\xb1\x03\x01\0" },
+  { 0x1f72, 0, 255, "\x03\xb5\x03\x00\0" },
+  { 0x1f73, 0, 255, "\x03\xb5\x03\x01\0" },
+  { 0x1f74, 0, 255, "\x03\xb7\x03\x00\0" },
+  { 0x1f75, 0, 255, "\x03\xb7\x03\x01\0" },
+  { 0x1f76, 0, 255, "\x03\xb9\x03\x00\0" },
+  { 0x1f77, 0, 255, "\x03\xb9\x03\x01\0" },
+  { 0x1f78, 0, 255, "\x03\xbf\x03\x00\0" },
+  { 0x1f79, 0, 255, "\x03\xbf\x03\x01\0" },
+  { 0x1f7a, 0, 255, "\x03\xc5\x03\x00\0" },
+  { 0x1f7b, 0, 255, "\x03\xc5\x03\x01\0" },
+  { 0x1f7c, 0, 255, "\x03\xc9\x03\x00\0" },
+  { 0x1f7d, 0, 255, "\x03\xc9\x03\x01\0" },
+  { 0x1f80, 0, 255, "\x03\xb1\x03\x13\x03\x45\0" },
+  { 0x1f81, 0, 255, "\x03\xb1\x03\x14\x03\x45\0" },
+  { 0x1f82, 0, 255, "\x03\xb1\x03\x13\x03\x00\x03\x45\0" },
+  { 0x1f83, 0, 255, "\x03\xb1\x03\x14\x03\x00\x03\x45\0" },
+  { 0x1f84, 0, 255, "\x03\xb1\x03\x13\x03\x01\x03\x45\0" },
+  { 0x1f85, 0, 255, "\x03\xb1\x03\x14\x03\x01\x03\x45\0" },
+  { 0x1f86, 0, 255, "\x03\xb1\x03\x13\x03\x42\x03\x45\0" },
+  { 0x1f87, 0, 255, "\x03\xb1\x03\x14\x03\x42\x03\x45\0" },
+  { 0x1f88, 0, 255, "\x03\x91\x03\x13\x03\x45\0" },
+  { 0x1f89, 0, 255, "\x03\x91\x03\x14\x03\x45\0" },
+  { 0x1f8a, 0, 255, "\x03\x91\x03\x13\x03\x00\x03\x45\0" },
+  { 0x1f8b, 0, 255, "\x03\x91\x03\x14\x03\x00\x03\x45\0" },
+  { 0x1f8c, 0, 255, "\x03\x91\x03\x13\x03\x01\x03\x45\0" },
+  { 0x1f8d, 0, 255, "\x03\x91\x03\x14\x03\x01\x03\x45\0" },
+  { 0x1f8e, 0, 255, "\x03\x91\x03\x13\x03\x42\x03\x45\0" },
+  { 0x1f8f, 0, 255, "\x03\x91\x03\x14\x03\x42\x03\x45\0" },
+  { 0x1f90, 0, 255, "\x03\xb7\x03\x13\x03\x45\0" },
+  { 0x1f91, 0, 255, "\x03\xb7\x03\x14\x03\x45\0" },
+  { 0x1f92, 0, 255, "\x03\xb7\x03\x13\x03\x00\x03\x45\0" },
+  { 0x1f93, 0, 255, "\x03\xb7\x03\x14\x03\x00\x03\x45\0" },
+  { 0x1f94, 0, 255, "\x03\xb7\x03\x13\x03\x01\x03\x45\0" },
+  { 0x1f95, 0, 255, "\x03\xb7\x03\x14\x03\x01\x03\x45\0" },
+  { 0x1f96, 0, 255, "\x03\xb7\x03\x13\x03\x42\x03\x45\0" },
+  { 0x1f97, 0, 255, "\x03\xb7\x03\x14\x03\x42\x03\x45\0" },
+  { 0x1f98, 0, 255, "\x03\x97\x03\x13\x03\x45\0" },
+  { 0x1f99, 0, 255, "\x03\x97\x03\x14\x03\x45\0" },
+  { 0x1f9a, 0, 255, "\x03\x97\x03\x13\x03\x00\x03\x45\0" },
+  { 0x1f9b, 0, 255, "\x03\x97\x03\x14\x03\x00\x03\x45\0" },
+  { 0x1f9c, 0, 255, "\x03\x97\x03\x13\x03\x01\x03\x45\0" },
+  { 0x1f9d, 0, 255, "\x03\x97\x03\x14\x03\x01\x03\x45\0" },
+  { 0x1f9e, 0, 255, "\x03\x97\x03\x13\x03\x42\x03\x45\0" },
+  { 0x1f9f, 0, 255, "\x03\x97\x03\x14\x03\x42\x03\x45\0" },
+  { 0x1fa0, 0, 255, "\x03\xc9\x03\x13\x03\x45\0" },
+  { 0x1fa1, 0, 255, "\x03\xc9\x03\x14\x03\x45\0" },
+  { 0x1fa2, 0, 255, "\x03\xc9\x03\x13\x03\x00\x03\x45\0" },
+  { 0x1fa3, 0, 255, "\x03\xc9\x03\x14\x03\x00\x03\x45\0" },
+  { 0x1fa4, 0, 255, "\x03\xc9\x03\x13\x03\x01\x03\x45\0" },
+  { 0x1fa5, 0, 255, "\x03\xc9\x03\x14\x03\x01\x03\x45\0" },
+  { 0x1fa6, 0, 255, "\x03\xc9\x03\x13\x03\x42\x03\x45\0" },
+  { 0x1fa7, 0, 255, "\x03\xc9\x03\x14\x03\x42\x03\x45\0" },
+  { 0x1fa8, 0, 255, "\x03\xa9\x03\x13\x03\x45\0" },
+  { 0x1fa9, 0, 255, "\x03\xa9\x03\x14\x03\x45\0" },
+  { 0x1faa, 0, 255, "\x03\xa9\x03\x13\x03\x00\x03\x45\0" },
+  { 0x1fab, 0, 255, "\x03\xa9\x03\x14\x03\x00\x03\x45\0" },
+  { 0x1fac, 0, 255, "\x03\xa9\x03\x13\x03\x01\x03\x45\0" },
+  { 0x1fad, 0, 255, "\x03\xa9\x03\x14\x03\x01\x03\x45\0" },
+  { 0x1fae, 0, 255, "\x03\xa9\x03\x13\x03\x42\x03\x45\0" },
+  { 0x1faf, 0, 255, "\x03\xa9\x03\x14\x03\x42\x03\x45\0" },
+  { 0x1fb0, 0, 255, "\x03\xb1\x03\x06\0" },
+  { 0x1fb1, 0, 255, "\x03\xb1\x03\x04\0" },
+  { 0x1fb2, 0, 255, "\x03\xb1\x03\x00\x03\x45\0" },
+  { 0x1fb3, 0, 255, "\x03\xb1\x03\x45\0" },
+  { 0x1fb4, 0, 255, "\x03\xb1\x03\x01\x03\x45\0" },
+  { 0x1fb6, 0, 255, "\x03\xb1\x03\x42\0" },
+  { 0x1fb7, 0, 255, "\x03\xb1\x03\x42\x03\x45\0" },
+  { 0x1fb8, 0, 255, "\x03\x91\x03\x06\0" },
+  { 0x1fb9, 0, 255, "\x03\x91\x03\x04\0" },
+  { 0x1fba, 0, 255, "\x03\x91\x03\x00\0" },
+  { 0x1fbb, 0, 255, "\x03\x91\x03\x01\0" },
+  { 0x1fbc, 0, 255, "\x03\x91\x03\x45\0" },
+  { 0x1fbd, 255, 0, "\x00\x20\x03\x13\0" },
+  { 0x1fbe, 0, 255, "\x03\xb9\0" },
+  { 0x1fbf, 255, 0, "\x00\x20\x03\x13\0" },
+  { 0x1fc0, 255, 0, "\x00\x20\x03\x42\0" },
+  { 0x1fc1, 0, 6, "\x00\xa8\x03\x42\x00\x00\x00\x20\x03\x08\x03\x42\0" },
+  { 0x1fc2, 0, 255, "\x03\xb7\x03\x00\x03\x45\0" },
+  { 0x1fc3, 0, 255, "\x03\xb7\x03\x45\0" },
+  { 0x1fc4, 0, 255, "\x03\xb7\x03\x01\x03\x45\0" },
+  { 0x1fc6, 0, 255, "\x03\xb7\x03\x42\0" },
+  { 0x1fc7, 0, 255, "\x03\xb7\x03\x42\x03\x45\0" },
+  { 0x1fc8, 0, 255, "\x03\x95\x03\x00\0" },
+  { 0x1fc9, 0, 255, "\x03\x95\x03\x01\0" },
+  { 0x1fca, 0, 255, "\x03\x97\x03\x00\0" },
+  { 0x1fcb, 0, 255, "\x03\x97\x03\x01\0" },
+  { 0x1fcc, 0, 255, "\x03\x97\x03\x45\0" },
+  { 0x1fcd, 0, 6, "\x1f\xbf\x03\x00\x00\x00\x00\x20\x03\x13\x03\x00\0" },
+  { 0x1fce, 0, 6, "\x1f\xbf\x03\x01\x00\x00\x00\x20\x03\x13\x03\x01\0" },
+  { 0x1fcf, 0, 6, "\x1f\xbf\x03\x42\x00\x00\x00\x20\x03\x13\x03\x42\0" },
+  { 0x1fd0, 0, 255, "\x03\xb9\x03\x06\0" },
+  { 0x1fd1, 0, 255, "\x03\xb9\x03\x04\0" },
+  { 0x1fd2, 0, 255, "\x03\xb9\x03\x08\x03\x00\0" },
+  { 0x1fd3, 0, 255, "\x03\xb9\x03\x08\x03\x01\0" },
+  { 0x1fd6, 0, 255, "\x03\xb9\x03\x42\0" },
+  { 0x1fd7, 0, 255, "\x03\xb9\x03\x08\x03\x42\0" },
+  { 0x1fd8, 0, 255, "\x03\x99\x03\x06\0" },
+  { 0x1fd9, 0, 255, "\x03\x99\x03\x04\0" },
+  { 0x1fda, 0, 255, "\x03\x99\x03\x00\0" },
+  { 0x1fdb, 0, 255, "\x03\x99\x03\x01\0" },
+  { 0x1fdd, 0, 6, "\x1f\xfe\x03\x00\x00\x00\x00\x20\x03\x14\x03\x00\0" },
+  { 0x1fde, 0, 6, "\x1f\xfe\x03\x01\x00\x00\x00\x20\x03\x14\x03\x01\0" },
+  { 0x1fdf, 0, 6, "\x1f\xfe\x03\x42\x00\x00\x00\x20\x03\x14\x03\x42\0" },
+  { 0x1fe0, 0, 255, "\x03\xc5\x03\x06\0" },
+  { 0x1fe1, 0, 255, "\x03\xc5\x03\x04\0" },
+  { 0x1fe2, 0, 255, "\x03\xc5\x03\x08\x03\x00\0" },
+  { 0x1fe3, 0, 255, "\x03\xc5\x03\x08\x03\x01\0" },
+  { 0x1fe4, 0, 255, "\x03\xc1\x03\x13\0" },
+  { 0x1fe5, 0, 255, "\x03\xc1\x03\x14\0" },
+  { 0x1fe6, 0, 255, "\x03\xc5\x03\x42\0" },
+  { 0x1fe7, 0, 255, "\x03\xc5\x03\x08\x03\x42\0" },
+  { 0x1fe8, 0, 255, "\x03\xa5\x03\x06\0" },
+  { 0x1fe9, 0, 255, "\x03\xa5\x03\x04\0" },
+  { 0x1fea, 0, 255, "\x03\xa5\x03\x00\0" },
+  { 0x1feb, 0, 255, "\x03\xa5\x03\x01\0" },
+  { 0x1fec, 0, 255, "\x03\xa1\x03\x14\0" },
+  { 0x1fed, 0, 6, "\x00\xa8\x03\x00\x00\x00\x00\x20\x03\x08\x03\x00\0" },
+  { 0x1fee, 0, 6, "\x00\xa8\x03\x01\x00\x00\x00\x20\x03\x08\x03\x01\0" },
+  { 0x1fef, 0, 255, "\x00\x60\0" },
+  { 0x1ff2, 0, 255, "\x03\xc9\x03\x00\x03\x45\0" },
+  { 0x1ff3, 0, 255, "\x03\xc9\x03\x45\0" },
+  { 0x1ff4, 0, 255, "\x03\xc9\x03\x01\x03\x45\0" },
+  { 0x1ff6, 0, 255, "\x03\xc9\x03\x42\0" },
+  { 0x1ff7, 0, 255, "\x03\xc9\x03\x42\x03\x45\0" },
+  { 0x1ff8, 0, 255, "\x03\x9f\x03\x00\0" },
+  { 0x1ff9, 0, 255, "\x03\x9f\x03\x01\0" },
+  { 0x1ffa, 0, 255, "\x03\xa9\x03\x00\0" },
+  { 0x1ffb, 0, 255, "\x03\xa9\x03\x01\0" },
+  { 0x1ffc, 0, 255, "\x03\xa9\x03\x45\0" },
+  { 0x1ffd, 0, 4, "\x00\xb4\x00\x00\x00\x20\x03\x01\0" },
+  { 0x1ffe, 255, 0, "\x00\x20\x03\x14\0" },
+  { 0x2000, 0, 4, "\x20\x02\x00\x00\x00\x20\0" },
+  { 0x2001, 0, 4, "\x20\x03\x00\x00\x00\x20\0" },
+  { 0x2002, 255, 0, "\x00\x20\0" },
+  { 0x2003, 255, 0, "\x00\x20\0" },
+  { 0x2004, 255, 0, "\x00\x20\0" },
+  { 0x2005, 255, 0, "\x00\x20\0" },
+  { 0x2006, 255, 0, "\x00\x20\0" },
+  { 0x2007, 255, 0, "\x00\x20\0" },
+  { 0x2008, 255, 0, "\x00\x20\0" },
+  { 0x2009, 255, 0, "\x00\x20\0" },
+  { 0x200a, 255, 0, "\x00\x20\0" },
+  { 0x2011, 255, 0, "\x20\x10\0" },
+  { 0x2017, 255, 0, "\x00\x20\x03\x33\0" },
+  { 0x2024, 255, 0, "\x00\x2e\0" },
+  { 0x2025, 255, 0, "\x00\x2e\x00\x2e\0" },
+  { 0x2026, 255, 0, "\x00\x2e\x00\x2e\x00\x2e\0" },
+  { 0x202f, 255, 0, "\x00\x20\0" },
+  { 0x2033, 255, 0, "\x20\x32\x20\x32\0" },
+  { 0x2034, 255, 0, "\x20\x32\x20\x32\x20\x32\0" },
+  { 0x2036, 255, 0, "\x20\x35\x20\x35\0" },
+  { 0x2037, 255, 0, "\x20\x35\x20\x35\x20\x35\0" },
+  { 0x203c, 255, 0, "\x00\x21\x00\x21\0" },
+  { 0x203e, 255, 0, "\x00\x20\x03\x05\0" },
+  { 0x2048, 255, 0, "\x00\x3f\x00\x21\0" },
+  { 0x2049, 255, 0, "\x00\x21\x00\x3f\0" },
+  { 0x2070, 255, 0, "\x00\x30\0" },
+  { 0x2074, 255, 0, "\x00\x34\0" },
+  { 0x2075, 255, 0, "\x00\x35\0" },
+  { 0x2076, 255, 0, "\x00\x36\0" },
+  { 0x2077, 255, 0, "\x00\x37\0" },
+  { 0x2078, 255, 0, "\x00\x38\0" },
+  { 0x2079, 255, 0, "\x00\x39\0" },
+  { 0x207a, 255, 0, "\x00\x2b\0" },
+  { 0x207b, 255, 0, "\x22\x12\0" },
+  { 0x207c, 255, 0, "\x00\x3d\0" },
+  { 0x207d, 255, 0, "\x00\x28\0" },
+  { 0x207e, 255, 0, "\x00\x29\0" },
+  { 0x207f, 255, 0, "\x00\x6e\0" },
+  { 0x2080, 255, 0, "\x00\x30\0" },
+  { 0x2081, 255, 0, "\x00\x31\0" },
+  { 0x2082, 255, 0, "\x00\x32\0" },
+  { 0x2083, 255, 0, "\x00\x33\0" },
+  { 0x2084, 255, 0, "\x00\x34\0" },
+  { 0x2085, 255, 0, "\x00\x35\0" },
+  { 0x2086, 255, 0, "\x00\x36\0" },
+  { 0x2087, 255, 0, "\x00\x37\0" },
+  { 0x2088, 255, 0, "\x00\x38\0" },
+  { 0x2089, 255, 0, "\x00\x39\0" },
+  { 0x208a, 255, 0, "\x00\x2b\0" },
+  { 0x208b, 255, 0, "\x22\x12\0" },
+  { 0x208c, 255, 0, "\x00\x3d\0" },
+  { 0x208d, 255, 0, "\x00\x28\0" },
+  { 0x208e, 255, 0, "\x00\x29\0" },
+  { 0x20a8, 255, 0, "\x00\x52\x00\x73\0" },
+  { 0x2100, 255, 0, "\x00\x61\x00\x2f\x00\x63\0" },
+  { 0x2101, 255, 0, "\x00\x61\x00\x2f\x00\x73\0" },
+  { 0x2102, 255, 0, "\x00\x43\0" },
+  { 0x2103, 255, 0, "\x00\xb0\x00\x43\0" },
+  { 0x2105, 255, 0, "\x00\x63\x00\x2f\x00\x6f\0" },
+  { 0x2106, 255, 0, "\x00\x63\x00\x2f\x00\x75\0" },
+  { 0x2107, 255, 0, "\x01\x90\0" },
+  { 0x2109, 255, 0, "\x00\xb0\x00\x46\0" },
+  { 0x210a, 255, 0, "\x00\x67\0" },
+  { 0x210b, 255, 0, "\x00\x48\0" },
+  { 0x210c, 255, 0, "\x00\x48\0" },
+  { 0x210d, 255, 0, "\x00\x48\0" },
+  { 0x210e, 255, 0, "\x00\x68\0" },
+  { 0x210f, 255, 0, "\x01\x27\0" },
+  { 0x2110, 255, 0, "\x00\x49\0" },
+  { 0x2111, 255, 0, "\x00\x49\0" },
+  { 0x2112, 255, 0, "\x00\x4c\0" },
+  { 0x2113, 255, 0, "\x00\x6c\0" },
+  { 0x2115, 255, 0, "\x00\x4e\0" },
+  { 0x2116, 255, 0, "\x00\x4e\x00\x6f\0" },
+  { 0x2119, 255, 0, "\x00\x50\0" },
+  { 0x211a, 255, 0, "\x00\x51\0" },
+  { 0x211b, 255, 0, "\x00\x52\0" },
+  { 0x211c, 255, 0, "\x00\x52\0" },
+  { 0x211d, 255, 0, "\x00\x52\0" },
+  { 0x2120, 255, 0, "\x00\x53\x00\x4d\0" },
+  { 0x2121, 255, 0, "\x00\x54\x00\x45\x00\x4c\0" },
+  { 0x2122, 255, 0, "\x00\x54\x00\x4d\0" },
+  { 0x2124, 255, 0, "\x00\x5a\0" },
+  { 0x2126, 0, 255, "\x03\xa9\0" },
+  { 0x2128, 255, 0, "\x00\x5a\0" },
+  { 0x212a, 0, 255, "\x00\x4b\0" },
+  { 0x212b, 0, 255, "\x00\x41\x03\x0a\0" },
+  { 0x212c, 255, 0, "\x00\x42\0" },
+  { 0x212d, 255, 0, "\x00\x43\0" },
+  { 0x212f, 255, 0, "\x00\x65\0" },
+  { 0x2130, 255, 0, "\x00\x45\0" },
+  { 0x2131, 255, 0, "\x00\x46\0" },
+  { 0x2133, 255, 0, "\x00\x4d\0" },
+  { 0x2134, 255, 0, "\x00\x6f\0" },
+  { 0x2135, 255, 0, "\x05\xd0\0" },
+  { 0x2136, 255, 0, "\x05\xd1\0" },
+  { 0x2137, 255, 0, "\x05\xd2\0" },
+  { 0x2138, 255, 0, "\x05\xd3\0" },
+  { 0x2139, 255, 0, "\x00\x69\0" },
+  { 0x2153, 255, 0, "\x00\x31\x20\x44\x00\x33\0" },
+  { 0x2154, 255, 0, "\x00\x32\x20\x44\x00\x33\0" },
+  { 0x2155, 255, 0, "\x00\x31\x20\x44\x00\x35\0" },
+  { 0x2156, 255, 0, "\x00\x32\x20\x44\x00\x35\0" },
+  { 0x2157, 255, 0, "\x00\x33\x20\x44\x00\x35\0" },
+  { 0x2158, 255, 0, "\x00\x34\x20\x44\x00\x35\0" },
+  { 0x2159, 255, 0, "\x00\x31\x20\x44\x00\x36\0" },
+  { 0x215a, 255, 0, "\x00\x35\x20\x44\x00\x36\0" },
+  { 0x215b, 255, 0, "\x00\x31\x20\x44\x00\x38\0" },
+  { 0x215c, 255, 0, "\x00\x33\x20\x44\x00\x38\0" },
+  { 0x215d, 255, 0, "\x00\x35\x20\x44\x00\x38\0" },
+  { 0x215e, 255, 0, "\x00\x37\x20\x44\x00\x38\0" },
+  { 0x215f, 255, 0, "\x00\x31\x20\x44\0" },
+  { 0x2160, 255, 0, "\x00\x49\0" },
+  { 0x2161, 255, 0, "\x00\x49\x00\x49\0" },
+  { 0x2162, 255, 0, "\x00\x49\x00\x49\x00\x49\0" },
+  { 0x2163, 255, 0, "\x00\x49\x00\x56\0" },
+  { 0x2164, 255, 0, "\x00\x56\0" },
+  { 0x2165, 255, 0, "\x00\x56\x00\x49\0" },
+  { 0x2166, 255, 0, "\x00\x56\x00\x49\x00\x49\0" },
+  { 0x2167, 255, 0, "\x00\x56\x00\x49\x00\x49\x00\x49\0" },
+  { 0x2168, 255, 0, "\x00\x49\x00\x58\0" },
+  { 0x2169, 255, 0, "\x00\x58\0" },
+  { 0x216a, 255, 0, "\x00\x58\x00\x49\0" },
+  { 0x216b, 255, 0, "\x00\x58\x00\x49\x00\x49\0" },
+  { 0x216c, 255, 0, "\x00\x4c\0" },
+  { 0x216d, 255, 0, "\x00\x43\0" },
+  { 0x216e, 255, 0, "\x00\x44\0" },
+  { 0x216f, 255, 0, "\x00\x4d\0" },
+  { 0x2170, 255, 0, "\x00\x69\0" },
+  { 0x2171, 255, 0, "\x00\x69\x00\x69\0" },
+  { 0x2172, 255, 0, "\x00\x69\x00\x69\x00\x69\0" },
+  { 0x2173, 255, 0, "\x00\x69\x00\x76\0" },
+  { 0x2174, 255, 0, "\x00\x76\0" },
+  { 0x2175, 255, 0, "\x00\x76\x00\x69\0" },
+  { 0x2176, 255, 0, "\x00\x76\x00\x69\x00\x69\0" },
+  { 0x2177, 255, 0, "\x00\x76\x00\x69\x00\x69\x00\x69\0" },
+  { 0x2178, 255, 0, "\x00\x69\x00\x78\0" },
+  { 0x2179, 255, 0, "\x00\x78\0" },
+  { 0x217a, 255, 0, "\x00\x78\x00\x69\0" },
+  { 0x217b, 255, 0, "\x00\x78\x00\x69\x00\x69\0" },
+  { 0x217c, 255, 0, "\x00\x6c\0" },
+  { 0x217d, 255, 0, "\x00\x63\0" },
+  { 0x217e, 255, 0, "\x00\x64\0" },
+  { 0x217f, 255, 0, "\x00\x6d\0" },
+  { 0x219a, 0, 255, "\x21\x90\x03\x38\0" },
+  { 0x219b, 0, 255, "\x21\x92\x03\x38\0" },
+  { 0x21ae, 0, 255, "\x21\x94\x03\x38\0" },
+  { 0x21cd, 0, 255, "\x21\xd0\x03\x38\0" },
+  { 0x21ce, 0, 255, "\x21\xd4\x03\x38\0" },
+  { 0x21cf, 0, 255, "\x21\xd2\x03\x38\0" },
+  { 0x2204, 0, 255, "\x22\x03\x03\x38\0" },
+  { 0x2209, 0, 255, "\x22\x08\x03\x38\0" },
+  { 0x220c, 0, 255, "\x22\x0b\x03\x38\0" },
+  { 0x2224, 0, 255, "\x22\x23\x03\x38\0" },
+  { 0x2226, 0, 255, "\x22\x25\x03\x38\0" },
+  { 0x222c, 255, 0, "\x22\x2b\x22\x2b\0" },
+  { 0x222d, 255, 0, "\x22\x2b\x22\x2b\x22\x2b\0" },
+  { 0x222f, 255, 0, "\x22\x2e\x22\x2e\0" },
+  { 0x2230, 255, 0, "\x22\x2e\x22\x2e\x22\x2e\0" },
+  { 0x2241, 0, 255, "\x22\x3c\x03\x38\0" },
+  { 0x2244, 0, 255, "\x22\x43\x03\x38\0" },
+  { 0x2247, 0, 255, "\x22\x45\x03\x38\0" },
+  { 0x2249, 0, 255, "\x22\x48\x03\x38\0" },
+  { 0x2260, 0, 255, "\x00\x3d\x03\x38\0" },
+  { 0x2262, 0, 255, "\x22\x61\x03\x38\0" },
+  { 0x226d, 0, 255, "\x22\x4d\x03\x38\0" },
+  { 0x226e, 0, 255, "\x00\x3c\x03\x38\0" },
+  { 0x226f, 0, 255, "\x00\x3e\x03\x38\0" },
+  { 0x2270, 0, 255, "\x22\x64\x03\x38\0" },
+  { 0x2271, 0, 255, "\x22\x65\x03\x38\0" },
+  { 0x2274, 0, 255, "\x22\x72\x03\x38\0" },
+  { 0x2275, 0, 255, "\x22\x73\x03\x38\0" },
+  { 0x2278, 0, 255, "\x22\x76\x03\x38\0" },
+  { 0x2279, 0, 255, "\x22\x77\x03\x38\0" },
+  { 0x2280, 0, 255, "\x22\x7a\x03\x38\0" },
+  { 0x2281, 0, 255, "\x22\x7b\x03\x38\0" },
+  { 0x2284, 0, 255, "\x22\x82\x03\x38\0" },
+  { 0x2285, 0, 255, "\x22\x83\x03\x38\0" },
+  { 0x2288, 0, 255, "\x22\x86\x03\x38\0" },
+  { 0x2289, 0, 255, "\x22\x87\x03\x38\0" },
+  { 0x22ac, 0, 255, "\x22\xa2\x03\x38\0" },
+  { 0x22ad, 0, 255, "\x22\xa8\x03\x38\0" },
+  { 0x22ae, 0, 255, "\x22\xa9\x03\x38\0" },
+  { 0x22af, 0, 255, "\x22\xab\x03\x38\0" },
+  { 0x22e0, 0, 255, "\x22\x7c\x03\x38\0" },
+  { 0x22e1, 0, 255, "\x22\x7d\x03\x38\0" },
+  { 0x22e2, 0, 255, "\x22\x91\x03\x38\0" },
+  { 0x22e3, 0, 255, "\x22\x92\x03\x38\0" },
+  { 0x22ea, 0, 255, "\x22\xb2\x03\x38\0" },
+  { 0x22eb, 0, 255, "\x22\xb3\x03\x38\0" },
+  { 0x22ec, 0, 255, "\x22\xb4\x03\x38\0" },
+  { 0x22ed, 0, 255, "\x22\xb5\x03\x38\0" },
+  { 0x2329, 0, 255, "\x30\x08\0" },
+  { 0x232a, 0, 255, "\x30\x09\0" },
+  { 0x2460, 255, 0, "\x00\x31\0" },
+  { 0x2461, 255, 0, "\x00\x32\0" },
+  { 0x2462, 255, 0, "\x00\x33\0" },
+  { 0x2463, 255, 0, "\x00\x34\0" },
+  { 0x2464, 255, 0, "\x00\x35\0" },
+  { 0x2465, 255, 0, "\x00\x36\0" },
+  { 0x2466, 255, 0, "\x00\x37\0" },
+  { 0x2467, 255, 0, "\x00\x38\0" },
+  { 0x2468, 255, 0, "\x00\x39\0" },
+  { 0x2469, 255, 0, "\x00\x31\x00\x30\0" },
+  { 0x246a, 255, 0, "\x00\x31\x00\x31\0" },
+  { 0x246b, 255, 0, "\x00\x31\x00\x32\0" },
+  { 0x246c, 255, 0, "\x00\x31\x00\x33\0" },
+  { 0x246d, 255, 0, "\x00\x31\x00\x34\0" },
+  { 0x246e, 255, 0, "\x00\x31\x00\x35\0" },
+  { 0x246f, 255, 0, "\x00\x31\x00\x36\0" },
+  { 0x2470, 255, 0, "\x00\x31\x00\x37\0" },
+  { 0x2471, 255, 0, "\x00\x31\x00\x38\0" },
+  { 0x2472, 255, 0, "\x00\x31\x00\x39\0" },
+  { 0x2473, 255, 0, "\x00\x32\x00\x30\0" },
+  { 0x2474, 255, 0, "\x00\x28\x00\x31\x00\x29\0" },
+  { 0x2475, 255, 0, "\x00\x28\x00\x32\x00\x29\0" },
+  { 0x2476, 255, 0, "\x00\x28\x00\x33\x00\x29\0" },
+  { 0x2477, 255, 0, "\x00\x28\x00\x34\x00\x29\0" },
+  { 0x2478, 255, 0, "\x00\x28\x00\x35\x00\x29\0" },
+  { 0x2479, 255, 0, "\x00\x28\x00\x36\x00\x29\0" },
+  { 0x247a, 255, 0, "\x00\x28\x00\x37\x00\x29\0" },
+  { 0x247b, 255, 0, "\x00\x28\x00\x38\x00\x29\0" },
+  { 0x247c, 255, 0, "\x00\x28\x00\x39\x00\x29\0" },
+  { 0x247d, 255, 0, "\x00\x28\x00\x31\x00\x30\x00\x29\0" },
+  { 0x247e, 255, 0, "\x00\x28\x00\x31\x00\x31\x00\x29\0" },
+  { 0x247f, 255, 0, "\x00\x28\x00\x31\x00\x32\x00\x29\0" },
+  { 0x2480, 255, 0, "\x00\x28\x00\x31\x00\x33\x00\x29\0" },
+  { 0x2481, 255, 0, "\x00\x28\x00\x31\x00\x34\x00\x29\0" },
+  { 0x2482, 255, 0, "\x00\x28\x00\x31\x00\x35\x00\x29\0" },
+  { 0x2483, 255, 0, "\x00\x28\x00\x31\x00\x36\x00\x29\0" },
+  { 0x2484, 255, 0, "\x00\x28\x00\x31\x00\x37\x00\x29\0" },
+  { 0x2485, 255, 0, "\x00\x28\x00\x31\x00\x38\x00\x29\0" },
+  { 0x2486, 255, 0, "\x00\x28\x00\x31\x00\x39\x00\x29\0" },
+  { 0x2487, 255, 0, "\x00\x28\x00\x32\x00\x30\x00\x29\0" },
+  { 0x2488, 255, 0, "\x00\x31\x00\x2e\0" },
+  { 0x2489, 255, 0, "\x00\x32\x00\x2e\0" },
+  { 0x248a, 255, 0, "\x00\x33\x00\x2e\0" },
+  { 0x248b, 255, 0, "\x00\x34\x00\x2e\0" },
+  { 0x248c, 255, 0, "\x00\x35\x00\x2e\0" },
+  { 0x248d, 255, 0, "\x00\x36\x00\x2e\0" },
+  { 0x248e, 255, 0, "\x00\x37\x00\x2e\0" },
+  { 0x248f, 255, 0, "\x00\x38\x00\x2e\0" },
+  { 0x2490, 255, 0, "\x00\x39\x00\x2e\0" },
+  { 0x2491, 255, 0, "\x00\x31\x00\x30\x00\x2e\0" },
+  { 0x2492, 255, 0, "\x00\x31\x00\x31\x00\x2e\0" },
+  { 0x2493, 255, 0, "\x00\x31\x00\x32\x00\x2e\0" },
+  { 0x2494, 255, 0, "\x00\x31\x00\x33\x00\x2e\0" },
+  { 0x2495, 255, 0, "\x00\x31\x00\x34\x00\x2e\0" },
+  { 0x2496, 255, 0, "\x00\x31\x00\x35\x00\x2e\0" },
+  { 0x2497, 255, 0, "\x00\x31\x00\x36\x00\x2e\0" },
+  { 0x2498, 255, 0, "\x00\x31\x00\x37\x00\x2e\0" },
+  { 0x2499, 255, 0, "\x00\x31\x00\x38\x00\x2e\0" },
+  { 0x249a, 255, 0, "\x00\x31\x00\x39\x00\x2e\0" },
+  { 0x249b, 255, 0, "\x00\x32\x00\x30\x00\x2e\0" },
+  { 0x249c, 255, 0, "\x00\x28\x00\x61\x00\x29\0" },
+  { 0x249d, 255, 0, "\x00\x28\x00\x62\x00\x29\0" },
+  { 0x249e, 255, 0, "\x00\x28\x00\x63\x00\x29\0" },
+  { 0x249f, 255, 0, "\x00\x28\x00\x64\x00\x29\0" },
+  { 0x24a0, 255, 0, "\x00\x28\x00\x65\x00\x29\0" },
+  { 0x24a1, 255, 0, "\x00\x28\x00\x66\x00\x29\0" },
+  { 0x24a2, 255, 0, "\x00\x28\x00\x67\x00\x29\0" },
+  { 0x24a3, 255, 0, "\x00\x28\x00\x68\x00\x29\0" },
+  { 0x24a4, 255, 0, "\x00\x28\x00\x69\x00\x29\0" },
+  { 0x24a5, 255, 0, "\x00\x28\x00\x6a\x00\x29\0" },
+  { 0x24a6, 255, 0, "\x00\x28\x00\x6b\x00\x29\0" },
+  { 0x24a7, 255, 0, "\x00\x28\x00\x6c\x00\x29\0" },
+  { 0x24a8, 255, 0, "\x00\x28\x00\x6d\x00\x29\0" },
+  { 0x24a9, 255, 0, "\x00\x28\x00\x6e\x00\x29\0" },
+  { 0x24aa, 255, 0, "\x00\x28\x00\x6f\x00\x29\0" },
+  { 0x24ab, 255, 0, "\x00\x28\x00\x70\x00\x29\0" },
+  { 0x24ac, 255, 0, "\x00\x28\x00\x71\x00\x29\0" },
+  { 0x24ad, 255, 0, "\x00\x28\x00\x72\x00\x29\0" },
+  { 0x24ae, 255, 0, "\x00\x28\x00\x73\x00\x29\0" },
+  { 0x24af, 255, 0, "\x00\x28\x00\x74\x00\x29\0" },
+  { 0x24b0, 255, 0, "\x00\x28\x00\x75\x00\x29\0" },
+  { 0x24b1, 255, 0, "\x00\x28\x00\x76\x00\x29\0" },
+  { 0x24b2, 255, 0, "\x00\x28\x00\x77\x00\x29\0" },
+  { 0x24b3, 255, 0, "\x00\x28\x00\x78\x00\x29\0" },
+  { 0x24b4, 255, 0, "\x00\x28\x00\x79\x00\x29\0" },
+  { 0x24b5, 255, 0, "\x00\x28\x00\x7a\x00\x29\0" },
+  { 0x24b6, 255, 0, "\x00\x41\0" },
+  { 0x24b7, 255, 0, "\x00\x42\0" },
+  { 0x24b8, 255, 0, "\x00\x43\0" },
+  { 0x24b9, 255, 0, "\x00\x44\0" },
+  { 0x24ba, 255, 0, "\x00\x45\0" },
+  { 0x24bb, 255, 0, "\x00\x46\0" },
+  { 0x24bc, 255, 0, "\x00\x47\0" },
+  { 0x24bd, 255, 0, "\x00\x48\0" },
+  { 0x24be, 255, 0, "\x00\x49\0" },
+  { 0x24bf, 255, 0, "\x00\x4a\0" },
+  { 0x24c0, 255, 0, "\x00\x4b\0" },
+  { 0x24c1, 255, 0, "\x00\x4c\0" },
+  { 0x24c2, 255, 0, "\x00\x4d\0" },
+  { 0x24c3, 255, 0, "\x00\x4e\0" },
+  { 0x24c4, 255, 0, "\x00\x4f\0" },
+  { 0x24c5, 255, 0, "\x00\x50\0" },
+  { 0x24c6, 255, 0, "\x00\x51\0" },
+  { 0x24c7, 255, 0, "\x00\x52\0" },
+  { 0x24c8, 255, 0, "\x00\x53\0" },
+  { 0x24c9, 255, 0, "\x00\x54\0" },
+  { 0x24ca, 255, 0, "\x00\x55\0" },
+  { 0x24cb, 255, 0, "\x00\x56\0" },
+  { 0x24cc, 255, 0, "\x00\x57\0" },
+  { 0x24cd, 255, 0, "\x00\x58\0" },
+  { 0x24ce, 255, 0, "\x00\x59\0" },
+  { 0x24cf, 255, 0, "\x00\x5a\0" },
+  { 0x24d0, 255, 0, "\x00\x61\0" },
+  { 0x24d1, 255, 0, "\x00\x62\0" },
+  { 0x24d2, 255, 0, "\x00\x63\0" },
+  { 0x24d3, 255, 0, "\x00\x64\0" },
+  { 0x24d4, 255, 0, "\x00\x65\0" },
+  { 0x24d5, 255, 0, "\x00\x66\0" },
+  { 0x24d6, 255, 0, "\x00\x67\0" },
+  { 0x24d7, 255, 0, "\x00\x68\0" },
+  { 0x24d8, 255, 0, "\x00\x69\0" },
+  { 0x24d9, 255, 0, "\x00\x6a\0" },
+  { 0x24da, 255, 0, "\x00\x6b\0" },
+  { 0x24db, 255, 0, "\x00\x6c\0" },
+  { 0x24dc, 255, 0, "\x00\x6d\0" },
+  { 0x24dd, 255, 0, "\x00\x6e\0" },
+  { 0x24de, 255, 0, "\x00\x6f\0" },
+  { 0x24df, 255, 0, "\x00\x70\0" },
+  { 0x24e0, 255, 0, "\x00\x71\0" },
+  { 0x24e1, 255, 0, "\x00\x72\0" },
+  { 0x24e2, 255, 0, "\x00\x73\0" },
+  { 0x24e3, 255, 0, "\x00\x74\0" },
+  { 0x24e4, 255, 0, "\x00\x75\0" },
+  { 0x24e5, 255, 0, "\x00\x76\0" },
+  { 0x24e6, 255, 0, "\x00\x77\0" },
+  { 0x24e7, 255, 0, "\x00\x78\0" },
+  { 0x24e8, 255, 0, "\x00\x79\0" },
+  { 0x24e9, 255, 0, "\x00\x7a\0" },
+  { 0x24ea, 255, 0, "\x00\x30\0" },
+  { 0x2e9f, 255, 0, "\x6b\xcd\0" },
+  { 0x2ef3, 255, 0, "\x9f\x9f\0" },
+  { 0x2f00, 255, 0, "\x4e\x00\0" },
+  { 0x2f01, 255, 0, "\x4e\x28\0" },
+  { 0x2f02, 255, 0, "\x4e\x36\0" },
+  { 0x2f03, 255, 0, "\x4e\x3f\0" },
+  { 0x2f04, 255, 0, "\x4e\x59\0" },
+  { 0x2f05, 255, 0, "\x4e\x85\0" },
+  { 0x2f06, 255, 0, "\x4e\x8c\0" },
+  { 0x2f07, 255, 0, "\x4e\xa0\0" },
+  { 0x2f08, 255, 0, "\x4e\xba\0" },
+  { 0x2f09, 255, 0, "\x51\x3f\0" },
+  { 0x2f0a, 255, 0, "\x51\x65\0" },
+  { 0x2f0b, 255, 0, "\x51\x6b\0" },
+  { 0x2f0c, 255, 0, "\x51\x82\0" },
+  { 0x2f0d, 255, 0, "\x51\x96\0" },
+  { 0x2f0e, 255, 0, "\x51\xab\0" },
+  { 0x2f0f, 255, 0, "\x51\xe0\0" },
+  { 0x2f10, 255, 0, "\x51\xf5\0" },
+  { 0x2f11, 255, 0, "\x52\x00\0" },
+  { 0x2f12, 255, 0, "\x52\x9b\0" },
+  { 0x2f13, 255, 0, "\x52\xf9\0" },
+  { 0x2f14, 255, 0, "\x53\x15\0" },
+  { 0x2f15, 255, 0, "\x53\x1a\0" },
+  { 0x2f16, 255, 0, "\x53\x38\0" },
+  { 0x2f17, 255, 0, "\x53\x41\0" },
+  { 0x2f18, 255, 0, "\x53\x5c\0" },
+  { 0x2f19, 255, 0, "\x53\x69\0" },
+  { 0x2f1a, 255, 0, "\x53\x82\0" },
+  { 0x2f1b, 255, 0, "\x53\xb6\0" },
+  { 0x2f1c, 255, 0, "\x53\xc8\0" },
+  { 0x2f1d, 255, 0, "\x53\xe3\0" },
+  { 0x2f1e, 255, 0, "\x56\xd7\0" },
+  { 0x2f1f, 255, 0, "\x57\x1f\0" },
+  { 0x2f20, 255, 0, "\x58\xeb\0" },
+  { 0x2f21, 255, 0, "\x59\x02\0" },
+  { 0x2f22, 255, 0, "\x59\x0a\0" },
+  { 0x2f23, 255, 0, "\x59\x15\0" },
+  { 0x2f24, 255, 0, "\x59\x27\0" },
+  { 0x2f25, 255, 0, "\x59\x73\0" },
+  { 0x2f26, 255, 0, "\x5b\x50\0" },
+  { 0x2f27, 255, 0, "\x5b\x80\0" },
+  { 0x2f28, 255, 0, "\x5b\xf8\0" },
+  { 0x2f29, 255, 0, "\x5c\x0f\0" },
+  { 0x2f2a, 255, 0, "\x5c\x22\0" },
+  { 0x2f2b, 255, 0, "\x5c\x38\0" },
+  { 0x2f2c, 255, 0, "\x5c\x6e\0" },
+  { 0x2f2d, 255, 0, "\x5c\x71\0" },
+  { 0x2f2e, 255, 0, "\x5d\xdb\0" },
+  { 0x2f2f, 255, 0, "\x5d\xe5\0" },
+  { 0x2f30, 255, 0, "\x5d\xf1\0" },
+  { 0x2f31, 255, 0, "\x5d\xfe\0" },
+  { 0x2f32, 255, 0, "\x5e\x72\0" },
+  { 0x2f33, 255, 0, "\x5e\x7a\0" },
+  { 0x2f34, 255, 0, "\x5e\x7f\0" },
+  { 0x2f35, 255, 0, "\x5e\xf4\0" },
+  { 0x2f36, 255, 0, "\x5e\xfe\0" },
+  { 0x2f37, 255, 0, "\x5f\x0b\0" },
+  { 0x2f38, 255, 0, "\x5f\x13\0" },
+  { 0x2f39, 255, 0, "\x5f\x50\0" },
+  { 0x2f3a, 255, 0, "\x5f\x61\0" },
+  { 0x2f3b, 255, 0, "\x5f\x73\0" },
+  { 0x2f3c, 255, 0, "\x5f\xc3\0" },
+  { 0x2f3d, 255, 0, "\x62\x08\0" },
+  { 0x2f3e, 255, 0, "\x62\x36\0" },
+  { 0x2f3f, 255, 0, "\x62\x4b\0" },
+  { 0x2f40, 255, 0, "\x65\x2f\0" },
+  { 0x2f41, 255, 0, "\x65\x34\0" },
+  { 0x2f42, 255, 0, "\x65\x87\0" },
+  { 0x2f43, 255, 0, "\x65\x97\0" },
+  { 0x2f44, 255, 0, "\x65\xa4\0" },
+  { 0x2f45, 255, 0, "\x65\xb9\0" },
+  { 0x2f46, 255, 0, "\x65\xe0\0" },
+  { 0x2f47, 255, 0, "\x65\xe5\0" },
+  { 0x2f48, 255, 0, "\x66\xf0\0" },
+  { 0x2f49, 255, 0, "\x67\x08\0" },
+  { 0x2f4a, 255, 0, "\x67\x28\0" },
+  { 0x2f4b, 255, 0, "\x6b\x20\0" },
+  { 0x2f4c, 255, 0, "\x6b\x62\0" },
+  { 0x2f4d, 255, 0, "\x6b\x79\0" },
+  { 0x2f4e, 255, 0, "\x6b\xb3\0" },
+  { 0x2f4f, 255, 0, "\x6b\xcb\0" },
+  { 0x2f50, 255, 0, "\x6b\xd4\0" },
+  { 0x2f51, 255, 0, "\x6b\xdb\0" },
+  { 0x2f52, 255, 0, "\x6c\x0f\0" },
+  { 0x2f53, 255, 0, "\x6c\x14\0" },
+  { 0x2f54, 255, 0, "\x6c\x34\0" },
+  { 0x2f55, 255, 0, "\x70\x6b\0" },
+  { 0x2f56, 255, 0, "\x72\x2a\0" },
+  { 0x2f57, 255, 0, "\x72\x36\0" },
+  { 0x2f58, 255, 0, "\x72\x3b\0" },
+  { 0x2f59, 255, 0, "\x72\x3f\0" },
+  { 0x2f5a, 255, 0, "\x72\x47\0" },
+  { 0x2f5b, 255, 0, "\x72\x59\0" },
+  { 0x2f5c, 255, 0, "\x72\x5b\0" },
+  { 0x2f5d, 255, 0, "\x72\xac\0" },
+  { 0x2f5e, 255, 0, "\x73\x84\0" },
+  { 0x2f5f, 255, 0, "\x73\x89\0" },
+  { 0x2f60, 255, 0, "\x74\xdc\0" },
+  { 0x2f61, 255, 0, "\x74\xe6\0" },
+  { 0x2f62, 255, 0, "\x75\x18\0" },
+  { 0x2f63, 255, 0, "\x75\x1f\0" },
+  { 0x2f64, 255, 0, "\x75\x28\0" },
+  { 0x2f65, 255, 0, "\x75\x30\0" },
+  { 0x2f66, 255, 0, "\x75\x8b\0" },
+  { 0x2f67, 255, 0, "\x75\x92\0" },
+  { 0x2f68, 255, 0, "\x76\x76\0" },
+  { 0x2f69, 255, 0, "\x76\x7d\0" },
+  { 0x2f6a, 255, 0, "\x76\xae\0" },
+  { 0x2f6b, 255, 0, "\x76\xbf\0" },
+  { 0x2f6c, 255, 0, "\x76\xee\0" },
+  { 0x2f6d, 255, 0, "\x77\xdb\0" },
+  { 0x2f6e, 255, 0, "\x77\xe2\0" },
+  { 0x2f6f, 255, 0, "\x77\xf3\0" },
+  { 0x2f70, 255, 0, "\x79\x3a\0" },
+  { 0x2f71, 255, 0, "\x79\xb8\0" },
+  { 0x2f72, 255, 0, "\x79\xbe\0" },
+  { 0x2f73, 255, 0, "\x7a\x74\0" },
+  { 0x2f74, 255, 0, "\x7a\xcb\0" },
+  { 0x2f75, 255, 0, "\x7a\xf9\0" },
+  { 0x2f76, 255, 0, "\x7c\x73\0" },
+  { 0x2f77, 255, 0, "\x7c\xf8\0" },
+  { 0x2f78, 255, 0, "\x7f\x36\0" },
+  { 0x2f79, 255, 0, "\x7f\x51\0" },
+  { 0x2f7a, 255, 0, "\x7f\x8a\0" },
+  { 0x2f7b, 255, 0, "\x7f\xbd\0" },
+  { 0x2f7c, 255, 0, "\x80\x01\0" },
+  { 0x2f7d, 255, 0, "\x80\x0c\0" },
+  { 0x2f7e, 255, 0, "\x80\x12\0" },
+  { 0x2f7f, 255, 0, "\x80\x33\0" },
+  { 0x2f80, 255, 0, "\x80\x7f\0" },
+  { 0x2f81, 255, 0, "\x80\x89\0" },
+  { 0x2f82, 255, 0, "\x81\xe3\0" },
+  { 0x2f83, 255, 0, "\x81\xea\0" },
+  { 0x2f84, 255, 0, "\x81\xf3\0" },
+  { 0x2f85, 255, 0, "\x81\xfc\0" },
+  { 0x2f86, 255, 0, "\x82\x0c\0" },
+  { 0x2f87, 255, 0, "\x82\x1b\0" },
+  { 0x2f88, 255, 0, "\x82\x1f\0" },
+  { 0x2f89, 255, 0, "\x82\x6e\0" },
+  { 0x2f8a, 255, 0, "\x82\x72\0" },
+  { 0x2f8b, 255, 0, "\x82\x78\0" },
+  { 0x2f8c, 255, 0, "\x86\x4d\0" },
+  { 0x2f8d, 255, 0, "\x86\x6b\0" },
+  { 0x2f8e, 255, 0, "\x88\x40\0" },
+  { 0x2f8f, 255, 0, "\x88\x4c\0" },
+  { 0x2f90, 255, 0, "\x88\x63\0" },
+  { 0x2f91, 255, 0, "\x89\x7e\0" },
+  { 0x2f92, 255, 0, "\x89\x8b\0" },
+  { 0x2f93, 255, 0, "\x89\xd2\0" },
+  { 0x2f94, 255, 0, "\x8a\x00\0" },
+  { 0x2f95, 255, 0, "\x8c\x37\0" },
+  { 0x2f96, 255, 0, "\x8c\x46\0" },
+  { 0x2f97, 255, 0, "\x8c\x55\0" },
+  { 0x2f98, 255, 0, "\x8c\x78\0" },
+  { 0x2f99, 255, 0, "\x8c\x9d\0" },
+  { 0x2f9a, 255, 0, "\x8d\x64\0" },
+  { 0x2f9b, 255, 0, "\x8d\x70\0" },
+  { 0x2f9c, 255, 0, "\x8d\xb3\0" },
+  { 0x2f9d, 255, 0, "\x8e\xab\0" },
+  { 0x2f9e, 255, 0, "\x8e\xca\0" },
+  { 0x2f9f, 255, 0, "\x8f\x9b\0" },
+  { 0x2fa0, 255, 0, "\x8f\xb0\0" },
+  { 0x2fa1, 255, 0, "\x8f\xb5\0" },
+  { 0x2fa2, 255, 0, "\x90\x91\0" },
+  { 0x2fa3, 255, 0, "\x91\x49\0" },
+  { 0x2fa4, 255, 0, "\x91\xc6\0" },
+  { 0x2fa5, 255, 0, "\x91\xcc\0" },
+  { 0x2fa6, 255, 0, "\x91\xd1\0" },
+  { 0x2fa7, 255, 0, "\x95\x77\0" },
+  { 0x2fa8, 255, 0, "\x95\x80\0" },
+  { 0x2fa9, 255, 0, "\x96\x1c\0" },
+  { 0x2faa, 255, 0, "\x96\xb6\0" },
+  { 0x2fab, 255, 0, "\x96\xb9\0" },
+  { 0x2fac, 255, 0, "\x96\xe8\0" },
+  { 0x2fad, 255, 0, "\x97\x51\0" },
+  { 0x2fae, 255, 0, "\x97\x5e\0" },
+  { 0x2faf, 255, 0, "\x97\x62\0" },
+  { 0x2fb0, 255, 0, "\x97\x69\0" },
+  { 0x2fb1, 255, 0, "\x97\xcb\0" },
+  { 0x2fb2, 255, 0, "\x97\xed\0" },
+  { 0x2fb3, 255, 0, "\x97\xf3\0" },
+  { 0x2fb4, 255, 0, "\x98\x01\0" },
+  { 0x2fb5, 255, 0, "\x98\xa8\0" },
+  { 0x2fb6, 255, 0, "\x98\xdb\0" },
+  { 0x2fb7, 255, 0, "\x98\xdf\0" },
+  { 0x2fb8, 255, 0, "\x99\x96\0" },
+  { 0x2fb9, 255, 0, "\x99\x99\0" },
+  { 0x2fba, 255, 0, "\x99\xac\0" },
+  { 0x2fbb, 255, 0, "\x9a\xa8\0" },
+  { 0x2fbc, 255, 0, "\x9a\xd8\0" },
+  { 0x2fbd, 255, 0, "\x9a\xdf\0" },
+  { 0x2fbe, 255, 0, "\x9b\x25\0" },
+  { 0x2fbf, 255, 0, "\x9b\x2f\0" },
+  { 0x2fc0, 255, 0, "\x9b\x32\0" },
+  { 0x2fc1, 255, 0, "\x9b\x3c\0" },
+  { 0x2fc2, 255, 0, "\x9b\x5a\0" },
+  { 0x2fc3, 255, 0, "\x9c\xe5\0" },
+  { 0x2fc4, 255, 0, "\x9e\x75\0" },
+  { 0x2fc5, 255, 0, "\x9e\x7f\0" },
+  { 0x2fc6, 255, 0, "\x9e\xa5\0" },
+  { 0x2fc7, 255, 0, "\x9e\xbb\0" },
+  { 0x2fc8, 255, 0, "\x9e\xc3\0" },
+  { 0x2fc9, 255, 0, "\x9e\xcd\0" },
+  { 0x2fca, 255, 0, "\x9e\xd1\0" },
+  { 0x2fcb, 255, 0, "\x9e\xf9\0" },
+  { 0x2fcc, 255, 0, "\x9e\xfd\0" },
+  { 0x2fcd, 255, 0, "\x9f\x0e\0" },
+  { 0x2fce, 255, 0, "\x9f\x13\0" },
+  { 0x2fcf, 255, 0, "\x9f\x20\0" },
+  { 0x2fd0, 255, 0, "\x9f\x3b\0" },
+  { 0x2fd1, 255, 0, "\x9f\x4a\0" },
+  { 0x2fd2, 255, 0, "\x9f\x52\0" },
+  { 0x2fd3, 255, 0, "\x9f\x8d\0" },
+  { 0x2fd4, 255, 0, "\x9f\x9c\0" },
+  { 0x2fd5, 255, 0, "\x9f\xa0\0" },
+  { 0x3000, 255, 0, "\x00\x20\0" },
+  { 0x3036, 255, 0, "\x30\x12\0" },
+  { 0x3038, 255, 0, "\x53\x41\0" },
+  { 0x3039, 255, 0, "\x53\x44\0" },
+  { 0x303a, 255, 0, "\x53\x45\0" },
+  { 0x304c, 0, 255, "\x30\x4b\x30\x99\0" },
+  { 0x304e, 0, 255, "\x30\x4d\x30\x99\0" },
+  { 0x3050, 0, 255, "\x30\x4f\x30\x99\0" },
+  { 0x3052, 0, 255, "\x30\x51\x30\x99\0" },
+  { 0x3054, 0, 255, "\x30\x53\x30\x99\0" },
+  { 0x3056, 0, 255, "\x30\x55\x30\x99\0" },
+  { 0x3058, 0, 255, "\x30\x57\x30\x99\0" },
+  { 0x305a, 0, 255, "\x30\x59\x30\x99\0" },
+  { 0x305c, 0, 255, "\x30\x5b\x30\x99\0" },
+  { 0x305e, 0, 255, "\x30\x5d\x30\x99\0" },
+  { 0x3060, 0, 255, "\x30\x5f\x30\x99\0" },
+  { 0x3062, 0, 255, "\x30\x61\x30\x99\0" },
+  { 0x3065, 0, 255, "\x30\x64\x30\x99\0" },
+  { 0x3067, 0, 255, "\x30\x66\x30\x99\0" },
+  { 0x3069, 0, 255, "\x30\x68\x30\x99\0" },
+  { 0x3070, 0, 255, "\x30\x6f\x30\x99\0" },
+  { 0x3071, 0, 255, "\x30\x6f\x30\x9a\0" },
+  { 0x3073, 0, 255, "\x30\x72\x30\x99\0" },
+  { 0x3074, 0, 255, "\x30\x72\x30\x9a\0" },
+  { 0x3076, 0, 255, "\x30\x75\x30\x99\0" },
+  { 0x3077, 0, 255, "\x30\x75\x30\x9a\0" },
+  { 0x3079, 0, 255, "\x30\x78\x30\x99\0" },
+  { 0x307a, 0, 255, "\x30\x78\x30\x9a\0" },
+  { 0x307c, 0, 255, "\x30\x7b\x30\x99\0" },
+  { 0x307d, 0, 255, "\x30\x7b\x30\x9a\0" },
+  { 0x3094, 0, 255, "\x30\x46\x30\x99\0" },
+  { 0x309b, 255, 0, "\x00\x20\x30\x99\0" },
+  { 0x309c, 255, 0, "\x00\x20\x30\x9a\0" },
+  { 0x309e, 0, 255, "\x30\x9d\x30\x99\0" },
+  { 0x30ac, 0, 255, "\x30\xab\x30\x99\0" },
+  { 0x30ae, 0, 255, "\x30\xad\x30\x99\0" },
+  { 0x30b0, 0, 255, "\x30\xaf\x30\x99\0" },
+  { 0x30b2, 0, 255, "\x30\xb1\x30\x99\0" },
+  { 0x30b4, 0, 255, "\x30\xb3\x30\x99\0" },
+  { 0x30b6, 0, 255, "\x30\xb5\x30\x99\0" },
+  { 0x30b8, 0, 255, "\x30\xb7\x30\x99\0" },
+  { 0x30ba, 0, 255, "\x30\xb9\x30\x99\0" },
+  { 0x30bc, 0, 255, "\x30\xbb\x30\x99\0" },
+  { 0x30be, 0, 255, "\x30\xbd\x30\x99\0" },
+  { 0x30c0, 0, 255, "\x30\xbf\x30\x99\0" },
+  { 0x30c2, 0, 255, "\x30\xc1\x30\x99\0" },
+  { 0x30c5, 0, 255, "\x30\xc4\x30\x99\0" },
+  { 0x30c7, 0, 255, "\x30\xc6\x30\x99\0" },
+  { 0x30c9, 0, 255, "\x30\xc8\x30\x99\0" },
+  { 0x30d0, 0, 255, "\x30\xcf\x30\x99\0" },
+  { 0x30d1, 0, 255, "\x30\xcf\x30\x9a\0" },
+  { 0x30d3, 0, 255, "\x30\xd2\x30\x99\0" },
+  { 0x30d4, 0, 255, "\x30\xd2\x30\x9a\0" },
+  { 0x30d6, 0, 255, "\x30\xd5\x30\x99\0" },
+  { 0x30d7, 0, 255, "\x30\xd5\x30\x9a\0" },
+  { 0x30d9, 0, 255, "\x30\xd8\x30\x99\0" },
+  { 0x30da, 0, 255, "\x30\xd8\x30\x9a\0" },
+  { 0x30dc, 0, 255, "\x30\xdb\x30\x99\0" },
+  { 0x30dd, 0, 255, "\x30\xdb\x30\x9a\0" },
+  { 0x30f4, 0, 255, "\x30\xa6\x30\x99\0" },
+  { 0x30f7, 0, 255, "\x30\xef\x30\x99\0" },
+  { 0x30f8, 0, 255, "\x30\xf0\x30\x99\0" },
+  { 0x30f9, 0, 255, "\x30\xf1\x30\x99\0" },
+  { 0x30fa, 0, 255, "\x30\xf2\x30\x99\0" },
+  { 0x30fe, 0, 255, "\x30\xfd\x30\x99\0" },
+  { 0x3131, 255, 0, "\x11\x00\0" },
+  { 0x3132, 255, 0, "\x11\x01\0" },
+  { 0x3133, 255, 0, "\x11\xaa\0" },
+  { 0x3134, 255, 0, "\x11\x02\0" },
+  { 0x3135, 255, 0, "\x11\xac\0" },
+  { 0x3136, 255, 0, "\x11\xad\0" },
+  { 0x3137, 255, 0, "\x11\x03\0" },
+  { 0x3138, 255, 0, "\x11\x04\0" },
+  { 0x3139, 255, 0, "\x11\x05\0" },
+  { 0x313a, 255, 0, "\x11\xb0\0" },
+  { 0x313b, 255, 0, "\x11\xb1\0" },
+  { 0x313c, 255, 0, "\x11\xb2\0" },
+  { 0x313d, 255, 0, "\x11\xb3\0" },
+  { 0x313e, 255, 0, "\x11\xb4\0" },
+  { 0x313f, 255, 0, "\x11\xb5\0" },
+  { 0x3140, 255, 0, "\x11\x1a\0" },
+  { 0x3141, 255, 0, "\x11\x06\0" },
+  { 0x3142, 255, 0, "\x11\x07\0" },
+  { 0x3143, 255, 0, "\x11\x08\0" },
+  { 0x3144, 255, 0, "\x11\x21\0" },
+  { 0x3145, 255, 0, "\x11\x09\0" },
+  { 0x3146, 255, 0, "\x11\x0a\0" },
+  { 0x3147, 255, 0, "\x11\x0b\0" },
+  { 0x3148, 255, 0, "\x11\x0c\0" },
+  { 0x3149, 255, 0, "\x11\x0d\0" },
+  { 0x314a, 255, 0, "\x11\x0e\0" },
+  { 0x314b, 255, 0, "\x11\x0f\0" },
+  { 0x314c, 255, 0, "\x11\x10\0" },
+  { 0x314d, 255, 0, "\x11\x11\0" },
+  { 0x314e, 255, 0, "\x11\x12\0" },
+  { 0x314f, 255, 0, "\x11\x61\0" },
+  { 0x3150, 255, 0, "\x11\x62\0" },
+  { 0x3151, 255, 0, "\x11\x63\0" },
+  { 0x3152, 255, 0, "\x11\x64\0" },
+  { 0x3153, 255, 0, "\x11\x65\0" },
+  { 0x3154, 255, 0, "\x11\x66\0" },
+  { 0x3155, 255, 0, "\x11\x67\0" },
+  { 0x3156, 255, 0, "\x11\x68\0" },
+  { 0x3157, 255, 0, "\x11\x69\0" },
+  { 0x3158, 255, 0, "\x11\x6a\0" },
+  { 0x3159, 255, 0, "\x11\x6b\0" },
+  { 0x315a, 255, 0, "\x11\x6c\0" },
+  { 0x315b, 255, 0, "\x11\x6d\0" },
+  { 0x315c, 255, 0, "\x11\x6e\0" },
+  { 0x315d, 255, 0, "\x11\x6f\0" },
+  { 0x315e, 255, 0, "\x11\x70\0" },
+  { 0x315f, 255, 0, "\x11\x71\0" },
+  { 0x3160, 255, 0, "\x11\x72\0" },
+  { 0x3161, 255, 0, "\x11\x73\0" },
+  { 0x3162, 255, 0, "\x11\x74\0" },
+  { 0x3163, 255, 0, "\x11\x75\0" },
+  { 0x3164, 255, 0, "\x11\x60\0" },
+  { 0x3165, 255, 0, "\x11\x14\0" },
+  { 0x3166, 255, 0, "\x11\x15\0" },
+  { 0x3167, 255, 0, "\x11\xc7\0" },
+  { 0x3168, 255, 0, "\x11\xc8\0" },
+  { 0x3169, 255, 0, "\x11\xcc\0" },
+  { 0x316a, 255, 0, "\x11\xce\0" },
+  { 0x316b, 255, 0, "\x11\xd3\0" },
+  { 0x316c, 255, 0, "\x11\xd7\0" },
+  { 0x316d, 255, 0, "\x11\xd9\0" },
+  { 0x316e, 255, 0, "\x11\x1c\0" },
+  { 0x316f, 255, 0, "\x11\xdd\0" },
+  { 0x3170, 255, 0, "\x11\xdf\0" },
+  { 0x3171, 255, 0, "\x11\x1d\0" },
+  { 0x3172, 255, 0, "\x11\x1e\0" },
+  { 0x3173, 255, 0, "\x11\x20\0" },
+  { 0x3174, 255, 0, "\x11\x22\0" },
+  { 0x3175, 255, 0, "\x11\x23\0" },
+  { 0x3176, 255, 0, "\x11\x27\0" },
+  { 0x3177, 255, 0, "\x11\x29\0" },
+  { 0x3178, 255, 0, "\x11\x2b\0" },
+  { 0x3179, 255, 0, "\x11\x2c\0" },
+  { 0x317a, 255, 0, "\x11\x2d\0" },
+  { 0x317b, 255, 0, "\x11\x2e\0" },
+  { 0x317c, 255, 0, "\x11\x2f\0" },
+  { 0x317d, 255, 0, "\x11\x32\0" },
+  { 0x317e, 255, 0, "\x11\x36\0" },
+  { 0x317f, 255, 0, "\x11\x40\0" },
+  { 0x3180, 255, 0, "\x11\x47\0" },
+  { 0x3181, 255, 0, "\x11\x4c\0" },
+  { 0x3182, 255, 0, "\x11\xf1\0" },
+  { 0x3183, 255, 0, "\x11\xf2\0" },
+  { 0x3184, 255, 0, "\x11\x57\0" },
+  { 0x3185, 255, 0, "\x11\x58\0" },
+  { 0x3186, 255, 0, "\x11\x59\0" },
+  { 0x3187, 255, 0, "\x11\x84\0" },
+  { 0x3188, 255, 0, "\x11\x85\0" },
+  { 0x3189, 255, 0, "\x11\x88\0" },
+  { 0x318a, 255, 0, "\x11\x91\0" },
+  { 0x318b, 255, 0, "\x11\x92\0" },
+  { 0x318c, 255, 0, "\x11\x94\0" },
+  { 0x318d, 255, 0, "\x11\x9e\0" },
+  { 0x318e, 255, 0, "\x11\xa1\0" },
+  { 0x3192, 255, 0, "\x4e\x00\0" },
+  { 0x3193, 255, 0, "\x4e\x8c\0" },
+  { 0x3194, 255, 0, "\x4e\x09\0" },
+  { 0x3195, 255, 0, "\x56\xdb\0" },
+  { 0x3196, 255, 0, "\x4e\x0a\0" },
+  { 0x3197, 255, 0, "\x4e\x2d\0" },
+  { 0x3198, 255, 0, "\x4e\x0b\0" },
+  { 0x3199, 255, 0, "\x75\x32\0" },
+  { 0x319a, 255, 0, "\x4e\x59\0" },
+  { 0x319b, 255, 0, "\x4e\x19\0" },
+  { 0x319c, 255, 0, "\x4e\x01\0" },
+  { 0x319d, 255, 0, "\x59\x29\0" },
+  { 0x319e, 255, 0, "\x57\x30\0" },
+  { 0x319f, 255, 0, "\x4e\xba\0" },
+  { 0x3200, 255, 0, "\x00\x28\x11\x00\x00\x29\0" },
+  { 0x3201, 255, 0, "\x00\x28\x11\x02\x00\x29\0" },
+  { 0x3202, 255, 0, "\x00\x28\x11\x03\x00\x29\0" },
+  { 0x3203, 255, 0, "\x00\x28\x11\x05\x00\x29\0" },
+  { 0x3204, 255, 0, "\x00\x28\x11\x06\x00\x29\0" },
+  { 0x3205, 255, 0, "\x00\x28\x11\x07\x00\x29\0" },
+  { 0x3206, 255, 0, "\x00\x28\x11\x09\x00\x29\0" },
+  { 0x3207, 255, 0, "\x00\x28\x11\x0b\x00\x29\0" },
+  { 0x3208, 255, 0, "\x00\x28\x11\x0c\x00\x29\0" },
+  { 0x3209, 255, 0, "\x00\x28\x11\x0e\x00\x29\0" },
+  { 0x320a, 255, 0, "\x00\x28\x11\x0f\x00\x29\0" },
+  { 0x320b, 255, 0, "\x00\x28\x11\x10\x00\x29\0" },
+  { 0x320c, 255, 0, "\x00\x28\x11\x11\x00\x29\0" },
+  { 0x320d, 255, 0, "\x00\x28\x11\x12\x00\x29\0" },
+  { 0x320e, 255, 0, "\x00\x28\x11\x00\x11\x61\x00\x29\0" },
+  { 0x320f, 255, 0, "\x00\x28\x11\x02\x11\x61\x00\x29\0" },
+  { 0x3210, 255, 0, "\x00\x28\x11\x03\x11\x61\x00\x29\0" },
+  { 0x3211, 255, 0, "\x00\x28\x11\x05\x11\x61\x00\x29\0" },
+  { 0x3212, 255, 0, "\x00\x28\x11\x06\x11\x61\x00\x29\0" },
+  { 0x3213, 255, 0, "\x00\x28\x11\x07\x11\x61\x00\x29\0" },
+  { 0x3214, 255, 0, "\x00\x28\x11\x09\x11\x61\x00\x29\0" },
+  { 0x3215, 255, 0, "\x00\x28\x11\x0b\x11\x61\x00\x29\0" },
+  { 0x3216, 255, 0, "\x00\x28\x11\x0c\x11\x61\x00\x29\0" },
+  { 0x3217, 255, 0, "\x00\x28\x11\x0e\x11\x61\x00\x29\0" },
+  { 0x3218, 255, 0, "\x00\x28\x11\x0f\x11\x61\x00\x29\0" },
+  { 0x3219, 255, 0, "\x00\x28\x11\x10\x11\x61\x00\x29\0" },
+  { 0x321a, 255, 0, "\x00\x28\x11\x11\x11\x61\x00\x29\0" },
+  { 0x321b, 255, 0, "\x00\x28\x11\x12\x11\x61\x00\x29\0" },
+  { 0x321c, 255, 0, "\x00\x28\x11\x0c\x11\x6e\x00\x29\0" },
+  { 0x3220, 255, 0, "\x00\x28\x4e\x00\x00\x29\0" },
+  { 0x3221, 255, 0, "\x00\x28\x4e\x8c\x00\x29\0" },
+  { 0x3222, 255, 0, "\x00\x28\x4e\x09\x00\x29\0" },
+  { 0x3223, 255, 0, "\x00\x28\x56\xdb\x00\x29\0" },
+  { 0x3224, 255, 0, "\x00\x28\x4e\x94\x00\x29\0" },
+  { 0x3225, 255, 0, "\x00\x28\x51\x6d\x00\x29\0" },
+  { 0x3226, 255, 0, "\x00\x28\x4e\x03\x00\x29\0" },
+  { 0x3227, 255, 0, "\x00\x28\x51\x6b\x00\x29\0" },
+  { 0x3228, 255, 0, "\x00\x28\x4e\x5d\x00\x29\0" },
+  { 0x3229, 255, 0, "\x00\x28\x53\x41\x00\x29\0" },
+  { 0x322a, 255, 0, "\x00\x28\x67\x08\x00\x29\0" },
+  { 0x322b, 255, 0, "\x00\x28\x70\x6b\x00\x29\0" },
+  { 0x322c, 255, 0, "\x00\x28\x6c\x34\x00\x29\0" },
+  { 0x322d, 255, 0, "\x00\x28\x67\x28\x00\x29\0" },
+  { 0x322e, 255, 0, "\x00\x28\x91\xd1\x00\x29\0" },
+  { 0x322f, 255, 0, "\x00\x28\x57\x1f\x00\x29\0" },
+  { 0x3230, 255, 0, "\x00\x28\x65\xe5\x00\x29\0" },
+  { 0x3231, 255, 0, "\x00\x28\x68\x2a\x00\x29\0" },
+  { 0x3232, 255, 0, "\x00\x28\x67\x09\x00\x29\0" },
+  { 0x3233, 255, 0, "\x00\x28\x79\x3e\x00\x29\0" },
+  { 0x3234, 255, 0, "\x00\x28\x54\x0d\x00\x29\0" },
+  { 0x3235, 255, 0, "\x00\x28\x72\x79\x00\x29\0" },
+  { 0x3236, 255, 0, "\x00\x28\x8c\xa1\x00\x29\0" },
+  { 0x3237, 255, 0, "\x00\x28\x79\x5d\x00\x29\0" },
+  { 0x3238, 255, 0, "\x00\x28\x52\xb4\x00\x29\0" },
+  { 0x3239, 255, 0, "\x00\x28\x4e\xe3\x00\x29\0" },
+  { 0x323a, 255, 0, "\x00\x28\x54\x7c\x00\x29\0" },
+  { 0x323b, 255, 0, "\x00\x28\x5b\x66\x00\x29\0" },
+  { 0x323c, 255, 0, "\x00\x28\x76\xe3\x00\x29\0" },
+  { 0x323d, 255, 0, "\x00\x28\x4f\x01\x00\x29\0" },
+  { 0x323e, 255, 0, "\x00\x28\x8c\xc7\x00\x29\0" },
+  { 0x323f, 255, 0, "\x00\x28\x53\x54\x00\x29\0" },
+  { 0x3240, 255, 0, "\x00\x28\x79\x6d\x00\x29\0" },
+  { 0x3241, 255, 0, "\x00\x28\x4f\x11\x00\x29\0" },
+  { 0x3242, 255, 0, "\x00\x28\x81\xea\x00\x29\0" },
+  { 0x3243, 255, 0, "\x00\x28\x81\xf3\x00\x29\0" },
+  { 0x3260, 255, 0, "\x11\x00\0" },
+  { 0x3261, 255, 0, "\x11\x02\0" },
+  { 0x3262, 255, 0, "\x11\x03\0" },
+  { 0x3263, 255, 0, "\x11\x05\0" },
+  { 0x3264, 255, 0, "\x11\x06\0" },
+  { 0x3265, 255, 0, "\x11\x07\0" },
+  { 0x3266, 255, 0, "\x11\x09\0" },
+  { 0x3267, 255, 0, "\x11\x0b\0" },
+  { 0x3268, 255, 0, "\x11\x0c\0" },
+  { 0x3269, 255, 0, "\x11\x0e\0" },
+  { 0x326a, 255, 0, "\x11\x0f\0" },
+  { 0x326b, 255, 0, "\x11\x10\0" },
+  { 0x326c, 255, 0, "\x11\x11\0" },
+  { 0x326d, 255, 0, "\x11\x12\0" },
+  { 0x326e, 255, 0, "\x11\x00\x11\x61\0" },
+  { 0x326f, 255, 0, "\x11\x02\x11\x61\0" },
+  { 0x3270, 255, 0, "\x11\x03\x11\x61\0" },
+  { 0x3271, 255, 0, "\x11\x05\x11\x61\0" },
+  { 0x3272, 255, 0, "\x11\x06\x11\x61\0" },
+  { 0x3273, 255, 0, "\x11\x07\x11\x61\0" },
+  { 0x3274, 255, 0, "\x11\x09\x11\x61\0" },
+  { 0x3275, 255, 0, "\x11\x0b\x11\x61\0" },
+  { 0x3276, 255, 0, "\x11\x0c\x11\x61\0" },
+  { 0x3277, 255, 0, "\x11\x0e\x11\x61\0" },
+  { 0x3278, 255, 0, "\x11\x0f\x11\x61\0" },
+  { 0x3279, 255, 0, "\x11\x10\x11\x61\0" },
+  { 0x327a, 255, 0, "\x11\x11\x11\x61\0" },
+  { 0x327b, 255, 0, "\x11\x12\x11\x61\0" },
+  { 0x3280, 255, 0, "\x4e\x00\0" },
+  { 0x3281, 255, 0, "\x4e\x8c\0" },
+  { 0x3282, 255, 0, "\x4e\x09\0" },
+  { 0x3283, 255, 0, "\x56\xdb\0" },
+  { 0x3284, 255, 0, "\x4e\x94\0" },
+  { 0x3285, 255, 0, "\x51\x6d\0" },
+  { 0x3286, 255, 0, "\x4e\x03\0" },
+  { 0x3287, 255, 0, "\x51\x6b\0" },
+  { 0x3288, 255, 0, "\x4e\x5d\0" },
+  { 0x3289, 255, 0, "\x53\x41\0" },
+  { 0x328a, 255, 0, "\x67\x08\0" },
+  { 0x328b, 255, 0, "\x70\x6b\0" },
+  { 0x328c, 255, 0, "\x6c\x34\0" },
+  { 0x328d, 255, 0, "\x67\x28\0" },
+  { 0x328e, 255, 0, "\x91\xd1\0" },
+  { 0x328f, 255, 0, "\x57\x1f\0" },
+  { 0x3290, 255, 0, "\x65\xe5\0" },
+  { 0x3291, 255, 0, "\x68\x2a\0" },
+  { 0x3292, 255, 0, "\x67\x09\0" },
+  { 0x3293, 255, 0, "\x79\x3e\0" },
+  { 0x3294, 255, 0, "\x54\x0d\0" },
+  { 0x3295, 255, 0, "\x72\x79\0" },
+  { 0x3296, 255, 0, "\x8c\xa1\0" },
+  { 0x3297, 255, 0, "\x79\x5d\0" },
+  { 0x3298, 255, 0, "\x52\xb4\0" },
+  { 0x3299, 255, 0, "\x79\xd8\0" },
+  { 0x329a, 255, 0, "\x75\x37\0" },
+  { 0x329b, 255, 0, "\x59\x73\0" },
+  { 0x329c, 255, 0, "\x90\x69\0" },
+  { 0x329d, 255, 0, "\x51\x2a\0" },
+  { 0x329e, 255, 0, "\x53\x70\0" },
+  { 0x329f, 255, 0, "\x6c\xe8\0" },
+  { 0x32a0, 255, 0, "\x98\x05\0" },
+  { 0x32a1, 255, 0, "\x4f\x11\0" },
+  { 0x32a2, 255, 0, "\x51\x99\0" },
+  { 0x32a3, 255, 0, "\x6b\x63\0" },
+  { 0x32a4, 255, 0, "\x4e\x0a\0" },
+  { 0x32a5, 255, 0, "\x4e\x2d\0" },
+  { 0x32a6, 255, 0, "\x4e\x0b\0" },
+  { 0x32a7, 255, 0, "\x5d\xe6\0" },
+  { 0x32a8, 255, 0, "\x53\xf3\0" },
+  { 0x32a9, 255, 0, "\x53\x3b\0" },
+  { 0x32aa, 255, 0, "\x5b\x97\0" },
+  { 0x32ab, 255, 0, "\x5b\x66\0" },
+  { 0x32ac, 255, 0, "\x76\xe3\0" },
+  { 0x32ad, 255, 0, "\x4f\x01\0" },
+  { 0x32ae, 255, 0, "\x8c\xc7\0" },
+  { 0x32af, 255, 0, "\x53\x54\0" },
+  { 0x32b0, 255, 0, "\x59\x1c\0" },
+  { 0x32c0, 255, 0, "\x00\x31\x67\x08\0" },
+  { 0x32c1, 255, 0, "\x00\x32\x67\x08\0" },
+  { 0x32c2, 255, 0, "\x00\x33\x67\x08\0" },
+  { 0x32c3, 255, 0, "\x00\x34\x67\x08\0" },
+  { 0x32c4, 255, 0, "\x00\x35\x67\x08\0" },
+  { 0x32c5, 255, 0, "\x00\x36\x67\x08\0" },
+  { 0x32c6, 255, 0, "\x00\x37\x67\x08\0" },
+  { 0x32c7, 255, 0, "\x00\x38\x67\x08\0" },
+  { 0x32c8, 255, 0, "\x00\x39\x67\x08\0" },
+  { 0x32c9, 255, 0, "\x00\x31\x00\x30\x67\x08\0" },
+  { 0x32ca, 255, 0, "\x00\x31\x00\x31\x67\x08\0" },
+  { 0x32cb, 255, 0, "\x00\x31\x00\x32\x67\x08\0" },
+  { 0x32d0, 255, 0, "\x30\xa2\0" },
+  { 0x32d1, 255, 0, "\x30\xa4\0" },
+  { 0x32d2, 255, 0, "\x30\xa6\0" },
+  { 0x32d3, 255, 0, "\x30\xa8\0" },
+  { 0x32d4, 255, 0, "\x30\xaa\0" },
+  { 0x32d5, 255, 0, "\x30\xab\0" },
+  { 0x32d6, 255, 0, "\x30\xad\0" },
+  { 0x32d7, 255, 0, "\x30\xaf\0" },
+  { 0x32d8, 255, 0, "\x30\xb1\0" },
+  { 0x32d9, 255, 0, "\x30\xb3\0" },
+  { 0x32da, 255, 0, "\x30\xb5\0" },
+  { 0x32db, 255, 0, "\x30\xb7\0" },
+  { 0x32dc, 255, 0, "\x30\xb9\0" },
+  { 0x32dd, 255, 0, "\x30\xbb\0" },
+  { 0x32de, 255, 0, "\x30\xbd\0" },
+  { 0x32df, 255, 0, "\x30\xbf\0" },
+  { 0x32e0, 255, 0, "\x30\xc1\0" },
+  { 0x32e1, 255, 0, "\x30\xc4\0" },
+  { 0x32e2, 255, 0, "\x30\xc6\0" },
+  { 0x32e3, 255, 0, "\x30\xc8\0" },
+  { 0x32e4, 255, 0, "\x30\xca\0" },
+  { 0x32e5, 255, 0, "\x30\xcb\0" },
+  { 0x32e6, 255, 0, "\x30\xcc\0" },
+  { 0x32e7, 255, 0, "\x30\xcd\0" },
+  { 0x32e8, 255, 0, "\x30\xce\0" },
+  { 0x32e9, 255, 0, "\x30\xcf\0" },
+  { 0x32ea, 255, 0, "\x30\xd2\0" },
+  { 0x32eb, 255, 0, "\x30\xd5\0" },
+  { 0x32ec, 255, 0, "\x30\xd8\0" },
+  { 0x32ed, 255, 0, "\x30\xdb\0" },
+  { 0x32ee, 255, 0, "\x30\xde\0" },
+  { 0x32ef, 255, 0, "\x30\xdf\0" },
+  { 0x32f0, 255, 0, "\x30\xe0\0" },
+  { 0x32f1, 255, 0, "\x30\xe1\0" },
+  { 0x32f2, 255, 0, "\x30\xe2\0" },
+  { 0x32f3, 255, 0, "\x30\xe4\0" },
+  { 0x32f4, 255, 0, "\x30\xe6\0" },
+  { 0x32f5, 255, 0, "\x30\xe8\0" },
+  { 0x32f6, 255, 0, "\x30\xe9\0" },
+  { 0x32f7, 255, 0, "\x30\xea\0" },
+  { 0x32f8, 255, 0, "\x30\xeb\0" },
+  { 0x32f9, 255, 0, "\x30\xec\0" },
+  { 0x32fa, 255, 0, "\x30\xed\0" },
+  { 0x32fb, 255, 0, "\x30\xef\0" },
+  { 0x32fc, 255, 0, "\x30\xf0\0" },
+  { 0x32fd, 255, 0, "\x30\xf1\0" },
+  { 0x32fe, 255, 0, "\x30\xf2\0" },
+  { 0x3300, 255, 0, "\x30\xa2\x30\xcf\x30\x9a\x30\xfc\x30\xc8\0" },
+  { 0x3301, 255, 0, "\x30\xa2\x30\xeb\x30\xd5\x30\xa1\0" },
+  { 0x3302, 255, 0, "\x30\xa2\x30\xf3\x30\xd8\x30\x9a\x30\xa2\0" },
+  { 0x3303, 255, 0, "\x30\xa2\x30\xfc\x30\xeb\0" },
+  { 0x3304, 255, 0, "\x30\xa4\x30\xcb\x30\xf3\x30\xaf\x30\x99\0" },
+  { 0x3305, 255, 0, "\x30\xa4\x30\xf3\x30\xc1\0" },
+  { 0x3306, 255, 0, "\x30\xa6\x30\xa9\x30\xf3\0" },
+  { 0x3307, 255, 0, "\x30\xa8\x30\xb9\x30\xaf\x30\xfc\x30\xc8\x30\x99\0" },
+  { 0x3308, 255, 0, "\x30\xa8\x30\xfc\x30\xab\x30\xfc\0" },
+  { 0x3309, 255, 0, "\x30\xaa\x30\xf3\x30\xb9\0" },
+  { 0x330a, 255, 0, "\x30\xaa\x30\xfc\x30\xe0\0" },
+  { 0x330b, 255, 0, "\x30\xab\x30\xa4\x30\xea\0" },
+  { 0x330c, 255, 0, "\x30\xab\x30\xe9\x30\xc3\x30\xc8\0" },
+  { 0x330d, 255, 0, "\x30\xab\x30\xed\x30\xea\x30\xfc\0" },
+  { 0x330e, 255, 0, "\x30\xab\x30\x99\x30\xed\x30\xf3\0" },
+  { 0x330f, 255, 0, "\x30\xab\x30\x99\x30\xf3\x30\xde\0" },
+  { 0x3310, 255, 0, "\x30\xad\x30\x99\x30\xab\x30\x99\0" },
+  { 0x3311, 255, 0, "\x30\xad\x30\x99\x30\xcb\x30\xfc\0" },
+  { 0x3312, 255, 0, "\x30\xad\x30\xe5\x30\xea\x30\xfc\0" },
+  { 0x3313, 255, 0, "\x30\xad\x30\x99\x30\xeb\x30\xbf\x30\x99\x30\xfc\0" },
+  { 0x3314, 255, 0, "\x30\xad\x30\xed\0" },
+  { 0x3315, 255, 0, "\x30\xad\x30\xed\x30\xaf\x30\x99\x30\xe9\x30\xe0\0" },
+  { 0x3316, 255, 0, "\x30\xad\x30\xed\x30\xe1\x30\xfc\x30\xc8\x30\xeb\0" },
+  { 0x3317, 255, 0, "\x30\xad\x30\xed\x30\xef\x30\xc3\x30\xc8\0" },
+  { 0x3318, 255, 0, "\x30\xaf\x30\x99\x30\xe9\x30\xe0\0" },
+  { 0x3319, 255, 0, "\x30\xaf\x30\x99\x30\xe9\x30\xe0\x30\xc8\x30\xf3\0" },
+  { 0x331a, 255, 0, "\x30\xaf\x30\xeb\x30\xbb\x30\x99\x30\xa4\x30\xed\0" },
+  { 0x331b, 255, 0, "\x30\xaf\x30\xed\x30\xfc\x30\xcd\0" },
+  { 0x331c, 255, 0, "\x30\xb1\x30\xfc\x30\xb9\0" },
+  { 0x331d, 255, 0, "\x30\xb3\x30\xeb\x30\xca\0" },
+  { 0x331e, 255, 0, "\x30\xb3\x30\xfc\x30\xdb\x30\x9a\0" },
+  { 0x331f, 255, 0, "\x30\xb5\x30\xa4\x30\xaf\x30\xeb\0" },
+  { 0x3320, 255, 0, "\x30\xb5\x30\xf3\x30\xc1\x30\xfc\x30\xe0\0" },
+  { 0x3321, 255, 0, "\x30\xb7\x30\xea\x30\xf3\x30\xaf\x30\x99\0" },
+  { 0x3322, 255, 0, "\x30\xbb\x30\xf3\x30\xc1\0" },
+  { 0x3323, 255, 0, "\x30\xbb\x30\xf3\x30\xc8\0" },
+  { 0x3324, 255, 0, "\x30\xbf\x30\x99\x30\xfc\x30\xb9\0" },
+  { 0x3325, 255, 0, "\x30\xc6\x30\x99\x30\xb7\0" },
+  { 0x3326, 255, 0, "\x30\xc8\x30\x99\x30\xeb\0" },
+  { 0x3327, 255, 0, "\x30\xc8\x30\xf3\0" },
+  { 0x3328, 255, 0, "\x30\xca\x30\xce\0" },
+  { 0x3329, 255, 0, "\x30\xce\x30\xc3\x30\xc8\0" },
+  { 0x332a, 255, 0, "\x30\xcf\x30\xa4\x30\xc4\0" },
+  { 0x332b, 255, 0, "\x30\xcf\x30\x9a\x30\xfc\x30\xbb\x30\xf3\x30\xc8\0" },
+  { 0x332c, 255, 0, "\x30\xcf\x30\x9a\x30\xfc\x30\xc4\0" },
+  { 0x332d, 255, 0, "\x30\xcf\x30\x99\x30\xfc\x30\xec\x30\xeb\0" },
+  { 0x332e, 255, 0, "\x30\xd2\x30\x9a\x30\xa2\x30\xb9\x30\xc8\x30\xeb\0" },
+  { 0x332f, 255, 0, "\x30\xd2\x30\x9a\x30\xaf\x30\xeb\0" },
+  { 0x3330, 255, 0, "\x30\xd2\x30\x9a\x30\xb3\0" },
+  { 0x3331, 255, 0, "\x30\xd2\x30\x99\x30\xeb\0" },
+  { 0x3332, 255, 0, "\x30\xd5\x30\xa1\x30\xe9\x30\xc3\x30\xc8\x30\x99\0" },
+  { 0x3333, 255, 0, "\x30\xd5\x30\xa3\x30\xfc\x30\xc8\0" },
+  { 0x3334, 255, 0, "\x30\xd5\x30\x99\x30\xc3\x30\xb7\x30\xa7\x30\xeb\0" },
+  { 0x3335, 255, 0, "\x30\xd5\x30\xe9\x30\xf3\0" },
+  { 0x3336, 255, 0, "\x30\xd8\x30\xaf\x30\xbf\x30\xfc\x30\xeb\0" },
+  { 0x3337, 255, 0, "\x30\xd8\x30\x9a\x30\xbd\0" },
+  { 0x3338, 255, 0, "\x30\xd8\x30\x9a\x30\xcb\x30\xd2\0" },
+  { 0x3339, 255, 0, "\x30\xd8\x30\xeb\x30\xc4\0" },
+  { 0x333a, 255, 0, "\x30\xd8\x30\x9a\x30\xf3\x30\xb9\0" },
+  { 0x333b, 255, 0, "\x30\xd8\x30\x9a\x30\xfc\x30\xb7\x30\x99\0" },
+  { 0x333c, 255, 0, "\x30\xd8\x30\x99\x30\xfc\x30\xbf\0" },
+  { 0x333d, 255, 0, "\x30\xdb\x30\x9a\x30\xa4\x30\xf3\x30\xc8\0" },
+  { 0x333e, 255, 0, "\x30\xdb\x30\x99\x30\xeb\x30\xc8\0" },
+  { 0x333f, 255, 0, "\x30\xdb\x30\xf3\0" },
+  { 0x3340, 255, 0, "\x30\xdb\x30\x9a\x30\xf3\x30\xc8\x30\x99\0" },
+  { 0x3341, 255, 0, "\x30\xdb\x30\xfc\x30\xeb\0" },
+  { 0x3342, 255, 0, "\x30\xdb\x30\xfc\x30\xf3\0" },
+  { 0x3343, 255, 0, "\x30\xde\x30\xa4\x30\xaf\x30\xed\0" },
+  { 0x3344, 255, 0, "\x30\xde\x30\xa4\x30\xeb\0" },
+  { 0x3345, 255, 0, "\x30\xde\x30\xc3\x30\xcf\0" },
+  { 0x3346, 255, 0, "\x30\xde\x30\xeb\x30\xaf\0" },
+  { 0x3347, 255, 0, "\x30\xde\x30\xf3\x30\xb7\x30\xe7\x30\xf3\0" },
+  { 0x3348, 255, 0, "\x30\xdf\x30\xaf\x30\xed\x30\xf3\0" },
+  { 0x3349, 255, 0, "\x30\xdf\x30\xea\0" },
+  { 0x334a, 255, 0, "\x30\xdf\x30\xea\x30\xcf\x30\x99\x30\xfc\x30\xeb\0" },
+  { 0x334b, 255, 0, "\x30\xe1\x30\xab\x30\x99\0" },
+  { 0x334c, 255, 0, "\x30\xe1\x30\xab\x30\x99\x30\xc8\x30\xf3\0" },
+  { 0x334d, 255, 0, "\x30\xe1\x30\xfc\x30\xc8\x30\xeb\0" },
+  { 0x334e, 255, 0, "\x30\xe4\x30\xfc\x30\xc8\x30\x99\0" },
+  { 0x334f, 255, 0, "\x30\xe4\x30\xfc\x30\xeb\0" },
+  { 0x3350, 255, 0, "\x30\xe6\x30\xa2\x30\xf3\0" },
+  { 0x3351, 255, 0, "\x30\xea\x30\xc3\x30\xc8\x30\xeb\0" },
+  { 0x3352, 255, 0, "\x30\xea\x30\xe9\0" },
+  { 0x3353, 255, 0, "\x30\xeb\x30\xd2\x30\x9a\x30\xfc\0" },
+  { 0x3354, 255, 0, "\x30\xeb\x30\xfc\x30\xd5\x30\x99\x30\xeb\0" },
+  { 0x3355, 255, 0, "\x30\xec\x30\xe0\0" },
+  { 0x3356, 255, 0, "\x30\xec\x30\xf3\x30\xc8\x30\xb1\x30\x99\x30\xf3\0" },
+  { 0x3357, 255, 0, "\x30\xef\x30\xc3\x30\xc8\0" },
+  { 0x3358, 255, 0, "\x00\x30\x70\xb9\0" },
+  { 0x3359, 255, 0, "\x00\x31\x70\xb9\0" },
+  { 0x335a, 255, 0, "\x00\x32\x70\xb9\0" },
+  { 0x335b, 255, 0, "\x00\x33\x70\xb9\0" },
+  { 0x335c, 255, 0, "\x00\x34\x70\xb9\0" },
+  { 0x335d, 255, 0, "\x00\x35\x70\xb9\0" },
+  { 0x335e, 255, 0, "\x00\x36\x70\xb9\0" },
+  { 0x335f, 255, 0, "\x00\x37\x70\xb9\0" },
+  { 0x3360, 255, 0, "\x00\x38\x70\xb9\0" },
+  { 0x3361, 255, 0, "\x00\x39\x70\xb9\0" },
+  { 0x3362, 255, 0, "\x00\x31\x00\x30\x70\xb9\0" },
+  { 0x3363, 255, 0, "\x00\x31\x00\x31\x70\xb9\0" },
+  { 0x3364, 255, 0, "\x00\x31\x00\x32\x70\xb9\0" },
+  { 0x3365, 255, 0, "\x00\x31\x00\x33\x70\xb9\0" },
+  { 0x3366, 255, 0, "\x00\x31\x00\x34\x70\xb9\0" },
+  { 0x3367, 255, 0, "\x00\x31\x00\x35\x70\xb9\0" },
+  { 0x3368, 255, 0, "\x00\x31\x00\x36\x70\xb9\0" },
+  { 0x3369, 255, 0, "\x00\x31\x00\x37\x70\xb9\0" },
+  { 0x336a, 255, 0, "\x00\x31\x00\x38\x70\xb9\0" },
+  { 0x336b, 255, 0, "\x00\x31\x00\x39\x70\xb9\0" },
+  { 0x336c, 255, 0, "\x00\x32\x00\x30\x70\xb9\0" },
+  { 0x336d, 255, 0, "\x00\x32\x00\x31\x70\xb9\0" },
+  { 0x336e, 255, 0, "\x00\x32\x00\x32\x70\xb9\0" },
+  { 0x336f, 255, 0, "\x00\x32\x00\x33\x70\xb9\0" },
+  { 0x3370, 255, 0, "\x00\x32\x00\x34\x70\xb9\0" },
+  { 0x3371, 255, 0, "\x00\x68\x00\x50\x00\x61\0" },
+  { 0x3372, 255, 0, "\x00\x64\x00\x61\0" },
+  { 0x3373, 255, 0, "\x00\x41\x00\x55\0" },
+  { 0x3374, 255, 0, "\x00\x62\x00\x61\x00\x72\0" },
+  { 0x3375, 255, 0, "\x00\x6f\x00\x56\0" },
+  { 0x3376, 255, 0, "\x00\x70\x00\x63\0" },
+  { 0x337b, 255, 0, "\x5e\x73\x62\x10\0" },
+  { 0x337c, 255, 0, "\x66\x2d\x54\x8c\0" },
+  { 0x337d, 255, 0, "\x59\x27\x6b\x63\0" },
+  { 0x337e, 255, 0, "\x66\x0e\x6c\xbb\0" },
+  { 0x337f, 255, 0, "\x68\x2a\x5f\x0f\x4f\x1a\x79\x3e\0" },
+  { 0x3380, 255, 0, "\x00\x70\x00\x41\0" },
+  { 0x3381, 255, 0, "\x00\x6e\x00\x41\0" },
+  { 0x3382, 255, 0, "\x03\xbc\x00\x41\0" },
+  { 0x3383, 255, 0, "\x00\x6d\x00\x41\0" },
+  { 0x3384, 255, 0, "\x00\x6b\x00\x41\0" },
+  { 0x3385, 255, 0, "\x00\x4b\x00\x42\0" },
+  { 0x3386, 255, 0, "\x00\x4d\x00\x42\0" },
+  { 0x3387, 255, 0, "\x00\x47\x00\x42\0" },
+  { 0x3388, 255, 0, "\x00\x63\x00\x61\x00\x6c\0" },
+  { 0x3389, 255, 0, "\x00\x6b\x00\x63\x00\x61\x00\x6c\0" },
+  { 0x338a, 255, 0, "\x00\x70\x00\x46\0" },
+  { 0x338b, 255, 0, "\x00\x6e\x00\x46\0" },
+  { 0x338c, 255, 0, "\x03\xbc\x00\x46\0" },
+  { 0x338d, 255, 0, "\x03\xbc\x00\x67\0" },
+  { 0x338e, 255, 0, "\x00\x6d\x00\x67\0" },
+  { 0x338f, 255, 0, "\x00\x6b\x00\x67\0" },
+  { 0x3390, 255, 0, "\x00\x48\x00\x7a\0" },
+  { 0x3391, 255, 0, "\x00\x6b\x00\x48\x00\x7a\0" },
+  { 0x3392, 255, 0, "\x00\x4d\x00\x48\x00\x7a\0" },
+  { 0x3393, 255, 0, "\x00\x47\x00\x48\x00\x7a\0" },
+  { 0x3394, 255, 0, "\x00\x54\x00\x48\x00\x7a\0" },
+  { 0x3395, 255, 0, "\x03\xbc\x00\x6c\0" },
+  { 0x3396, 255, 0, "\x00\x6d\x00\x6c\0" },
+  { 0x3397, 255, 0, "\x00\x64\x00\x6c\0" },
+  { 0x3398, 255, 0, "\x00\x6b\x00\x6c\0" },
+  { 0x3399, 255, 0, "\x00\x66\x00\x6d\0" },
+  { 0x339a, 255, 0, "\x00\x6e\x00\x6d\0" },
+  { 0x339b, 255, 0, "\x03\xbc\x00\x6d\0" },
+  { 0x339c, 255, 0, "\x00\x6d\x00\x6d\0" },
+  { 0x339d, 255, 0, "\x00\x63\x00\x6d\0" },
+  { 0x339e, 255, 0, "\x00\x6b\x00\x6d\0" },
+  { 0x339f, 255, 0, "\x00\x6d\x00\x6d\x00\x32\0" },
+  { 0x33a0, 255, 0, "\x00\x63\x00\x6d\x00\x32\0" },
+  { 0x33a1, 255, 0, "\x00\x6d\x00\x32\0" },
+  { 0x33a2, 255, 0, "\x00\x6b\x00\x6d\x00\x32\0" },
+  { 0x33a3, 255, 0, "\x00\x6d\x00\x6d\x00\x33\0" },
+  { 0x33a4, 255, 0, "\x00\x63\x00\x6d\x00\x33\0" },
+  { 0x33a5, 255, 0, "\x00\x6d\x00\x33\0" },
+  { 0x33a6, 255, 0, "\x00\x6b\x00\x6d\x00\x33\0" },
+  { 0x33a7, 255, 0, "\x00\x6d\x22\x15\x00\x73\0" },
+  { 0x33a8, 255, 0, "\x00\x6d\x22\x15\x00\x73\x00\x32\0" },
+  { 0x33a9, 255, 0, "\x00\x50\x00\x61\0" },
+  { 0x33aa, 255, 0, "\x00\x6b\x00\x50\x00\x61\0" },
+  { 0x33ab, 255, 0, "\x00\x4d\x00\x50\x00\x61\0" },
+  { 0x33ac, 255, 0, "\x00\x47\x00\x50\x00\x61\0" },
+  { 0x33ad, 255, 0, "\x00\x72\x00\x61\x00\x64\0" },
+  { 0x33ae, 255, 0, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73\0" },
+  { 0x33af, 255, 0, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73\x00\x32\0" },
+  { 0x33b0, 255, 0, "\x00\x70\x00\x73\0" },
+  { 0x33b1, 255, 0, "\x00\x6e\x00\x73\0" },
+  { 0x33b2, 255, 0, "\x03\xbc\x00\x73\0" },
+  { 0x33b3, 255, 0, "\x00\x6d\x00\x73\0" },
+  { 0x33b4, 255, 0, "\x00\x70\x00\x56\0" },
+  { 0x33b5, 255, 0, "\x00\x6e\x00\x56\0" },
+  { 0x33b6, 255, 0, "\x03\xbc\x00\x56\0" },
+  { 0x33b7, 255, 0, "\x00\x6d\x00\x56\0" },
+  { 0x33b8, 255, 0, "\x00\x6b\x00\x56\0" },
+  { 0x33b9, 255, 0, "\x00\x4d\x00\x56\0" },
+  { 0x33ba, 255, 0, "\x00\x70\x00\x57\0" },
+  { 0x33bb, 255, 0, "\x00\x6e\x00\x57\0" },
+  { 0x33bc, 255, 0, "\x03\xbc\x00\x57\0" },
+  { 0x33bd, 255, 0, "\x00\x6d\x00\x57\0" },
+  { 0x33be, 255, 0, "\x00\x6b\x00\x57\0" },
+  { 0x33bf, 255, 0, "\x00\x4d\x00\x57\0" },
+  { 0x33c0, 255, 0, "\x00\x6b\x03\xa9\0" },
+  { 0x33c1, 255, 0, "\x00\x4d\x03\xa9\0" },
+  { 0x33c2, 255, 0, "\x00\x61\x00\x2e\x00\x6d\x00\x2e\0" },
+  { 0x33c3, 255, 0, "\x00\x42\x00\x71\0" },
+  { 0x33c4, 255, 0, "\x00\x63\x00\x63\0" },
+  { 0x33c5, 255, 0, "\x00\x63\x00\x64\0" },
+  { 0x33c6, 255, 0, "\x00\x43\x22\x15\x00\x6b\x00\x67\0" },
+  { 0x33c7, 255, 0, "\x00\x43\x00\x6f\x00\x2e\0" },
+  { 0x33c8, 255, 0, "\x00\x64\x00\x42\0" },
+  { 0x33c9, 255, 0, "\x00\x47\x00\x79\0" },
+  { 0x33ca, 255, 0, "\x00\x68\x00\x61\0" },
+  { 0x33cb, 255, 0, "\x00\x48\x00\x50\0" },
+  { 0x33cc, 255, 0, "\x00\x69\x00\x6e\0" },
+  { 0x33cd, 255, 0, "\x00\x4b\x00\x4b\0" },
+  { 0x33ce, 255, 0, "\x00\x4b\x00\x4d\0" },
+  { 0x33cf, 255, 0, "\x00\x6b\x00\x74\0" },
+  { 0x33d0, 255, 0, "\x00\x6c\x00\x6d\0" },
+  { 0x33d1, 255, 0, "\x00\x6c\x00\x6e\0" },
+  { 0x33d2, 255, 0, "\x00\x6c\x00\x6f\x00\x67\0" },
+  { 0x33d3, 255, 0, "\x00\x6c\x00\x78\0" },
+  { 0x33d4, 255, 0, "\x00\x6d\x00\x62\0" },
+  { 0x33d5, 255, 0, "\x00\x6d\x00\x69\x00\x6c\0" },
+  { 0x33d6, 255, 0, "\x00\x6d\x00\x6f\x00\x6c\0" },
+  { 0x33d7, 255, 0, "\x00\x50\x00\x48\0" },
+  { 0x33d8, 255, 0, "\x00\x70\x00\x2e\x00\x6d\x00\x2e\0" },
+  { 0x33d9, 255, 0, "\x00\x50\x00\x50\x00\x4d\0" },
+  { 0x33da, 255, 0, "\x00\x50\x00\x52\0" },
+  { 0x33db, 255, 0, "\x00\x73\x00\x72\0" },
+  { 0x33dc, 255, 0, "\x00\x53\x00\x76\0" },
+  { 0x33dd, 255, 0, "\x00\x57\x00\x62\0" },
+  { 0x33e0, 255, 0, "\x00\x31\x65\xe5\0" },
+  { 0x33e1, 255, 0, "\x00\x32\x65\xe5\0" },
+  { 0x33e2, 255, 0, "\x00\x33\x65\xe5\0" },
+  { 0x33e3, 255, 0, "\x00\x34\x65\xe5\0" },
+  { 0x33e4, 255, 0, "\x00\x35\x65\xe5\0" },
+  { 0x33e5, 255, 0, "\x00\x36\x65\xe5\0" },
+  { 0x33e6, 255, 0, "\x00\x37\x65\xe5\0" },
+  { 0x33e7, 255, 0, "\x00\x38\x65\xe5\0" },
+  { 0x33e8, 255, 0, "\x00\x39\x65\xe5\0" },
+  { 0x33e9, 255, 0, "\x00\x31\x00\x30\x65\xe5\0" },
+  { 0x33ea, 255, 0, "\x00\x31\x00\x31\x65\xe5\0" },
+  { 0x33eb, 255, 0, "\x00\x31\x00\x32\x65\xe5\0" },
+  { 0x33ec, 255, 0, "\x00\x31\x00\x33\x65\xe5\0" },
+  { 0x33ed, 255, 0, "\x00\x31\x00\x34\x65\xe5\0" },
+  { 0x33ee, 255, 0, "\x00\x31\x00\x35\x65\xe5\0" },
+  { 0x33ef, 255, 0, "\x00\x31\x00\x36\x65\xe5\0" },
+  { 0x33f0, 255, 0, "\x00\x31\x00\x37\x65\xe5\0" },
+  { 0x33f1, 255, 0, "\x00\x31\x00\x38\x65\xe5\0" },
+  { 0x33f2, 255, 0, "\x00\x31\x00\x39\x65\xe5\0" },
+  { 0x33f3, 255, 0, "\x00\x32\x00\x30\x65\xe5\0" },
+  { 0x33f4, 255, 0, "\x00\x32\x00\x31\x65\xe5\0" },
+  { 0x33f5, 255, 0, "\x00\x32\x00\x32\x65\xe5\0" },
+  { 0x33f6, 255, 0, "\x00\x32\x00\x33\x65\xe5\0" },
+  { 0x33f7, 255, 0, "\x00\x32\x00\x34\x65\xe5\0" },
+  { 0x33f8, 255, 0, "\x00\x32\x00\x35\x65\xe5\0" },
+  { 0x33f9, 255, 0, "\x00\x32\x00\x36\x65\xe5\0" },
+  { 0x33fa, 255, 0, "\x00\x32\x00\x37\x65\xe5\0" },
+  { 0x33fb, 255, 0, "\x00\x32\x00\x38\x65\xe5\0" },
+  { 0x33fc, 255, 0, "\x00\x32\x00\x39\x65\xe5\0" },
+  { 0x33fd, 255, 0, "\x00\x33\x00\x30\x65\xe5\0" },
+  { 0x33fe, 255, 0, "\x00\x33\x00\x31\x65\xe5\0" },
+  { 0xf900, 0, 255, "\x8c\x48\0" },
+  { 0xf901, 0, 255, "\x66\xf4\0" },
+  { 0xf902, 0, 255, "\x8e\xca\0" },
+  { 0xf903, 0, 255, "\x8c\xc8\0" },
+  { 0xf904, 0, 255, "\x6e\xd1\0" },
+  { 0xf905, 0, 255, "\x4e\x32\0" },
+  { 0xf906, 0, 255, "\x53\xe5\0" },
+  { 0xf907, 0, 255, "\x9f\x9c\0" },
+  { 0xf908, 0, 255, "\x9f\x9c\0" },
+  { 0xf909, 0, 255, "\x59\x51\0" },
+  { 0xf90a, 0, 255, "\x91\xd1\0" },
+  { 0xf90b, 0, 255, "\x55\x87\0" },
+  { 0xf90c, 0, 255, "\x59\x48\0" },
+  { 0xf90d, 0, 255, "\x61\xf6\0" },
+  { 0xf90e, 0, 255, "\x76\x69\0" },
+  { 0xf90f, 0, 255, "\x7f\x85\0" },
+  { 0xf910, 0, 255, "\x86\x3f\0" },
+  { 0xf911, 0, 255, "\x87\xba\0" },
+  { 0xf912, 0, 255, "\x88\xf8\0" },
+  { 0xf913, 0, 255, "\x90\x8f\0" },
+  { 0xf914, 0, 255, "\x6a\x02\0" },
+  { 0xf915, 0, 255, "\x6d\x1b\0" },
+  { 0xf916, 0, 255, "\x70\xd9\0" },
+  { 0xf917, 0, 255, "\x73\xde\0" },
+  { 0xf918, 0, 255, "\x84\x3d\0" },
+  { 0xf919, 0, 255, "\x91\x6a\0" },
+  { 0xf91a, 0, 255, "\x99\xf1\0" },
+  { 0xf91b, 0, 255, "\x4e\x82\0" },
+  { 0xf91c, 0, 255, "\x53\x75\0" },
+  { 0xf91d, 0, 255, "\x6b\x04\0" },
+  { 0xf91e, 0, 255, "\x72\x1b\0" },
+  { 0xf91f, 0, 255, "\x86\x2d\0" },
+  { 0xf920, 0, 255, "\x9e\x1e\0" },
+  { 0xf921, 0, 255, "\x5d\x50\0" },
+  { 0xf922, 0, 255, "\x6f\xeb\0" },
+  { 0xf923, 0, 255, "\x85\xcd\0" },
+  { 0xf924, 0, 255, "\x89\x64\0" },
+  { 0xf925, 0, 255, "\x62\xc9\0" },
+  { 0xf926, 0, 255, "\x81\xd8\0" },
+  { 0xf927, 0, 255, "\x88\x1f\0" },
+  { 0xf928, 0, 255, "\x5e\xca\0" },
+  { 0xf929, 0, 255, "\x67\x17\0" },
+  { 0xf92a, 0, 255, "\x6d\x6a\0" },
+  { 0xf92b, 0, 255, "\x72\xfc\0" },
+  { 0xf92c, 0, 255, "\x90\xce\0" },
+  { 0xf92d, 0, 255, "\x4f\x86\0" },
+  { 0xf92e, 0, 255, "\x51\xb7\0" },
+  { 0xf92f, 0, 255, "\x52\xde\0" },
+  { 0xf930, 0, 255, "\x64\xc4\0" },
+  { 0xf931, 0, 255, "\x6a\xd3\0" },
+  { 0xf932, 0, 255, "\x72\x10\0" },
+  { 0xf933, 0, 255, "\x76\xe7\0" },
+  { 0xf934, 0, 255, "\x80\x01\0" },
+  { 0xf935, 0, 255, "\x86\x06\0" },
+  { 0xf936, 0, 255, "\x86\x5c\0" },
+  { 0xf937, 0, 255, "\x8d\xef\0" },
+  { 0xf938, 0, 255, "\x97\x32\0" },
+  { 0xf939, 0, 255, "\x9b\x6f\0" },
+  { 0xf93a, 0, 255, "\x9d\xfa\0" },
+  { 0xf93b, 0, 255, "\x78\x8c\0" },
+  { 0xf93c, 0, 255, "\x79\x7f\0" },
+  { 0xf93d, 0, 255, "\x7d\xa0\0" },
+  { 0xf93e, 0, 255, "\x83\xc9\0" },
+  { 0xf93f, 0, 255, "\x93\x04\0" },
+  { 0xf940, 0, 255, "\x9e\x7f\0" },
+  { 0xf941, 0, 255, "\x8a\xd6\0" },
+  { 0xf942, 0, 255, "\x58\xdf\0" },
+  { 0xf943, 0, 255, "\x5f\x04\0" },
+  { 0xf944, 0, 255, "\x7c\x60\0" },
+  { 0xf945, 0, 255, "\x80\x7e\0" },
+  { 0xf946, 0, 255, "\x72\x62\0" },
+  { 0xf947, 0, 255, "\x78\xca\0" },
+  { 0xf948, 0, 255, "\x8c\xc2\0" },
+  { 0xf949, 0, 255, "\x96\xf7\0" },
+  { 0xf94a, 0, 255, "\x58\xd8\0" },
+  { 0xf94b, 0, 255, "\x5c\x62\0" },
+  { 0xf94c, 0, 255, "\x6a\x13\0" },
+  { 0xf94d, 0, 255, "\x6d\xda\0" },
+  { 0xf94e, 0, 255, "\x6f\x0f\0" },
+  { 0xf94f, 0, 255, "\x7d\x2f\0" },
+  { 0xf950, 0, 255, "\x7e\x37\0" },
+  { 0xf951, 0, 255, "\x96\xfb\0" },
+  { 0xf952, 0, 255, "\x52\xd2\0" },
+  { 0xf953, 0, 255, "\x80\x8b\0" },
+  { 0xf954, 0, 255, "\x51\xdc\0" },
+  { 0xf955, 0, 255, "\x51\xcc\0" },
+  { 0xf956, 0, 255, "\x7a\x1c\0" },
+  { 0xf957, 0, 255, "\x7d\xbe\0" },
+  { 0xf958, 0, 255, "\x83\xf1\0" },
+  { 0xf959, 0, 255, "\x96\x75\0" },
+  { 0xf95a, 0, 255, "\x8b\x80\0" },
+  { 0xf95b, 0, 255, "\x62\xcf\0" },
+  { 0xf95c, 0, 255, "\x6a\x02\0" },
+  { 0xf95d, 0, 255, "\x8a\xfe\0" },
+  { 0xf95e, 0, 255, "\x4e\x39\0" },
+  { 0xf95f, 0, 255, "\x5b\xe7\0" },
+  { 0xf960, 0, 255, "\x60\x12\0" },
+  { 0xf961, 0, 255, "\x73\x87\0" },
+  { 0xf962, 0, 255, "\x75\x70\0" },
+  { 0xf963, 0, 255, "\x53\x17\0" },
+  { 0xf964, 0, 255, "\x78\xfb\0" },
+  { 0xf965, 0, 255, "\x4f\xbf\0" },
+  { 0xf966, 0, 255, "\x5f\xa9\0" },
+  { 0xf967, 0, 255, "\x4e\x0d\0" },
+  { 0xf968, 0, 255, "\x6c\xcc\0" },
+  { 0xf969, 0, 255, "\x65\x78\0" },
+  { 0xf96a, 0, 255, "\x7d\x22\0" },
+  { 0xf96b, 0, 255, "\x53\xc3\0" },
+  { 0xf96c, 0, 255, "\x58\x5e\0" },
+  { 0xf96d, 0, 255, "\x77\x01\0" },
+  { 0xf96e, 0, 255, "\x84\x49\0" },
+  { 0xf96f, 0, 255, "\x8a\xaa\0" },
+  { 0xf970, 0, 255, "\x6b\xba\0" },
+  { 0xf971, 0, 255, "\x8f\xb0\0" },
+  { 0xf972, 0, 255, "\x6c\x88\0" },
+  { 0xf973, 0, 255, "\x62\xfe\0" },
+  { 0xf974, 0, 255, "\x82\xe5\0" },
+  { 0xf975, 0, 255, "\x63\xa0\0" },
+  { 0xf976, 0, 255, "\x75\x65\0" },
+  { 0xf977, 0, 255, "\x4e\xae\0" },
+  { 0xf978, 0, 255, "\x51\x69\0" },
+  { 0xf979, 0, 255, "\x51\xc9\0" },
+  { 0xf97a, 0, 255, "\x68\x81\0" },
+  { 0xf97b, 0, 255, "\x7c\xe7\0" },
+  { 0xf97c, 0, 255, "\x82\x6f\0" },
+  { 0xf97d, 0, 255, "\x8a\xd2\0" },
+  { 0xf97e, 0, 255, "\x91\xcf\0" },
+  { 0xf97f, 0, 255, "\x52\xf5\0" },
+  { 0xf980, 0, 255, "\x54\x42\0" },
+  { 0xf981, 0, 255, "\x59\x73\0" },
+  { 0xf982, 0, 255, "\x5e\xec\0" },
+  { 0xf983, 0, 255, "\x65\xc5\0" },
+  { 0xf984, 0, 255, "\x6f\xfe\0" },
+  { 0xf985, 0, 255, "\x79\x2a\0" },
+  { 0xf986, 0, 255, "\x95\xad\0" },
+  { 0xf987, 0, 255, "\x9a\x6a\0" },
+  { 0xf988, 0, 255, "\x9e\x97\0" },
+  { 0xf989, 0, 255, "\x9e\xce\0" },
+  { 0xf98a, 0, 255, "\x52\x9b\0" },
+  { 0xf98b, 0, 255, "\x66\xc6\0" },
+  { 0xf98c, 0, 255, "\x6b\x77\0" },
+  { 0xf98d, 0, 255, "\x8f\x62\0" },
+  { 0xf98e, 0, 255, "\x5e\x74\0" },
+  { 0xf98f, 0, 255, "\x61\x90\0" },
+  { 0xf990, 0, 255, "\x62\x00\0" },
+  { 0xf991, 0, 255, "\x64\x9a\0" },
+  { 0xf992, 0, 255, "\x6f\x23\0" },
+  { 0xf993, 0, 255, "\x71\x49\0" },
+  { 0xf994, 0, 255, "\x74\x89\0" },
+  { 0xf995, 0, 255, "\x79\xca\0" },
+  { 0xf996, 0, 255, "\x7d\xf4\0" },
+  { 0xf997, 0, 255, "\x80\x6f\0" },
+  { 0xf998, 0, 255, "\x8f\x26\0" },
+  { 0xf999, 0, 255, "\x84\xee\0" },
+  { 0xf99a, 0, 255, "\x90\x23\0" },
+  { 0xf99b, 0, 255, "\x93\x4a\0" },
+  { 0xf99c, 0, 255, "\x52\x17\0" },
+  { 0xf99d, 0, 255, "\x52\xa3\0" },
+  { 0xf99e, 0, 255, "\x54\xbd\0" },
+  { 0xf99f, 0, 255, "\x70\xc8\0" },
+  { 0xf9a0, 0, 255, "\x88\xc2\0" },
+  { 0xf9a1, 0, 255, "\x8a\xaa\0" },
+  { 0xf9a2, 0, 255, "\x5e\xc9\0" },
+  { 0xf9a3, 0, 255, "\x5f\xf5\0" },
+  { 0xf9a4, 0, 255, "\x63\x7b\0" },
+  { 0xf9a5, 0, 255, "\x6b\xae\0" },
+  { 0xf9a6, 0, 255, "\x7c\x3e\0" },
+  { 0xf9a7, 0, 255, "\x73\x75\0" },
+  { 0xf9a8, 0, 255, "\x4e\xe4\0" },
+  { 0xf9a9, 0, 255, "\x56\xf9\0" },
+  { 0xf9aa, 0, 255, "\x5b\xe7\0" },
+  { 0xf9ab, 0, 255, "\x5d\xba\0" },
+  { 0xf9ac, 0, 255, "\x60\x1c\0" },
+  { 0xf9ad, 0, 255, "\x73\xb2\0" },
+  { 0xf9ae, 0, 255, "\x74\x69\0" },
+  { 0xf9af, 0, 255, "\x7f\x9a\0" },
+  { 0xf9b0, 0, 255, "\x80\x46\0" },
+  { 0xf9b1, 0, 255, "\x92\x34\0" },
+  { 0xf9b2, 0, 255, "\x96\xf6\0" },
+  { 0xf9b3, 0, 255, "\x97\x48\0" },
+  { 0xf9b4, 0, 255, "\x98\x18\0" },
+  { 0xf9b5, 0, 255, "\x4f\x8b\0" },
+  { 0xf9b6, 0, 255, "\x79\xae\0" },
+  { 0xf9b7, 0, 255, "\x91\xb4\0" },
+  { 0xf9b8, 0, 255, "\x96\xb8\0" },
+  { 0xf9b9, 0, 255, "\x60\xe1\0" },
+  { 0xf9ba, 0, 255, "\x4e\x86\0" },
+  { 0xf9bb, 0, 255, "\x50\xda\0" },
+  { 0xf9bc, 0, 255, "\x5b\xee\0" },
+  { 0xf9bd, 0, 255, "\x5c\x3f\0" },
+  { 0xf9be, 0, 255, "\x65\x99\0" },
+  { 0xf9bf, 0, 255, "\x6a\x02\0" },
+  { 0xf9c0, 0, 255, "\x71\xce\0" },
+  { 0xf9c1, 0, 255, "\x76\x42\0" },
+  { 0xf9c2, 0, 255, "\x84\xfc\0" },
+  { 0xf9c3, 0, 255, "\x90\x7c\0" },
+  { 0xf9c4, 0, 255, "\x9f\x8d\0" },
+  { 0xf9c5, 0, 255, "\x66\x88\0" },
+  { 0xf9c6, 0, 255, "\x96\x2e\0" },
+  { 0xf9c7, 0, 255, "\x52\x89\0" },
+  { 0xf9c8, 0, 255, "\x67\x7b\0" },
+  { 0xf9c9, 0, 255, "\x67\xf3\0" },
+  { 0xf9ca, 0, 255, "\x6d\x41\0" },
+  { 0xf9cb, 0, 255, "\x6e\x9c\0" },
+  { 0xf9cc, 0, 255, "\x74\x09\0" },
+  { 0xf9cd, 0, 255, "\x75\x59\0" },
+  { 0xf9ce, 0, 255, "\x78\x6b\0" },
+  { 0xf9cf, 0, 255, "\x7d\x10\0" },
+  { 0xf9d0, 0, 255, "\x98\x5e\0" },
+  { 0xf9d1, 0, 255, "\x51\x6d\0" },
+  { 0xf9d2, 0, 255, "\x62\x2e\0" },
+  { 0xf9d3, 0, 255, "\x96\x78\0" },
+  { 0xf9d4, 0, 255, "\x50\x2b\0" },
+  { 0xf9d5, 0, 255, "\x5d\x19\0" },
+  { 0xf9d6, 0, 255, "\x6d\xea\0" },
+  { 0xf9d7, 0, 255, "\x8f\x2a\0" },
+  { 0xf9d8, 0, 255, "\x5f\x8b\0" },
+  { 0xf9d9, 0, 255, "\x61\x44\0" },
+  { 0xf9da, 0, 255, "\x68\x17\0" },
+  { 0xf9db, 0, 255, "\x73\x87\0" },
+  { 0xf9dc, 0, 255, "\x96\x86\0" },
+  { 0xf9dd, 0, 255, "\x52\x29\0" },
+  { 0xf9de, 0, 255, "\x54\x0f\0" },
+  { 0xf9df, 0, 255, "\x5c\x65\0" },
+  { 0xf9e0, 0, 255, "\x66\x13\0" },
+  { 0xf9e1, 0, 255, "\x67\x4e\0" },
+  { 0xf9e2, 0, 255, "\x68\xa8\0" },
+  { 0xf9e3, 0, 255, "\x6c\xe5\0" },
+  { 0xf9e4, 0, 255, "\x74\x06\0" },
+  { 0xf9e5, 0, 255, "\x75\xe2\0" },
+  { 0xf9e6, 0, 255, "\x7f\x79\0" },
+  { 0xf9e7, 0, 255, "\x88\xcf\0" },
+  { 0xf9e8, 0, 255, "\x88\xe1\0" },
+  { 0xf9e9, 0, 255, "\x91\xcc\0" },
+  { 0xf9ea, 0, 255, "\x96\xe2\0" },
+  { 0xf9eb, 0, 255, "\x53\x3f\0" },
+  { 0xf9ec, 0, 255, "\x6e\xba\0" },
+  { 0xf9ed, 0, 255, "\x54\x1d\0" },
+  { 0xf9ee, 0, 255, "\x71\xd0\0" },
+  { 0xf9ef, 0, 255, "\x74\x98\0" },
+  { 0xf9f0, 0, 255, "\x85\xfa\0" },
+  { 0xf9f1, 0, 255, "\x96\xa3\0" },
+  { 0xf9f2, 0, 255, "\x9c\x57\0" },
+  { 0xf9f3, 0, 255, "\x9e\x9f\0" },
+  { 0xf9f4, 0, 255, "\x67\x97\0" },
+  { 0xf9f5, 0, 255, "\x6d\xcb\0" },
+  { 0xf9f6, 0, 255, "\x81\xe8\0" },
+  { 0xf9f7, 0, 255, "\x7a\xcb\0" },
+  { 0xf9f8, 0, 255, "\x7b\x20\0" },
+  { 0xf9f9, 0, 255, "\x7c\x92\0" },
+  { 0xf9fa, 0, 255, "\x72\xc0\0" },
+  { 0xf9fb, 0, 255, "\x70\x99\0" },
+  { 0xf9fc, 0, 255, "\x8b\x58\0" },
+  { 0xf9fd, 0, 255, "\x4e\xc0\0" },
+  { 0xf9fe, 0, 255, "\x83\x36\0" },
+  { 0xf9ff, 0, 255, "\x52\x3a\0" },
+  { 0xfa00, 0, 255, "\x52\x07\0" },
+  { 0xfa01, 0, 255, "\x5e\xa6\0" },
+  { 0xfa02, 0, 255, "\x62\xd3\0" },
+  { 0xfa03, 0, 255, "\x7c\xd6\0" },
+  { 0xfa04, 0, 255, "\x5b\x85\0" },
+  { 0xfa05, 0, 255, "\x6d\x1e\0" },
+  { 0xfa06, 0, 255, "\x66\xb4\0" },
+  { 0xfa07, 0, 255, "\x8f\x3b\0" },
+  { 0xfa08, 0, 255, "\x88\x4c\0" },
+  { 0xfa09, 0, 255, "\x96\x4d\0" },
+  { 0xfa0a, 0, 255, "\x89\x8b\0" },
+  { 0xfa0b, 0, 255, "\x5e\xd3\0" },
+  { 0xfa0c, 0, 255, "\x51\x40\0" },
+  { 0xfa0d, 0, 255, "\x55\xc0\0" },
+  { 0xfa10, 0, 255, "\x58\x5a\0" },
+  { 0xfa12, 0, 255, "\x66\x74\0" },
+  { 0xfa15, 0, 255, "\x51\xde\0" },
+  { 0xfa16, 0, 255, "\x73\x2a\0" },
+  { 0xfa17, 0, 255, "\x76\xca\0" },
+  { 0xfa18, 0, 255, "\x79\x3c\0" },
+  { 0xfa19, 0, 255, "\x79\x5e\0" },
+  { 0xfa1a, 0, 255, "\x79\x65\0" },
+  { 0xfa1b, 0, 255, "\x79\x8f\0" },
+  { 0xfa1c, 0, 255, "\x97\x56\0" },
+  { 0xfa1d, 0, 255, "\x7c\xbe\0" },
+  { 0xfa1e, 0, 255, "\x7f\xbd\0" },
+  { 0xfa20, 0, 255, "\x86\x12\0" },
+  { 0xfa22, 0, 255, "\x8a\xf8\0" },
+  { 0xfa25, 0, 255, "\x90\x38\0" },
+  { 0xfa26, 0, 255, "\x90\xfd\0" },
+  { 0xfa2a, 0, 255, "\x98\xef\0" },
+  { 0xfa2b, 0, 255, "\x98\xfc\0" },
+  { 0xfa2c, 0, 255, "\x99\x28\0" },
+  { 0xfa2d, 0, 255, "\x9d\xb4\0" },
+  { 0xfb00, 255, 0, "\x00\x66\x00\x66\0" },
+  { 0xfb01, 255, 0, "\x00\x66\x00\x69\0" },
+  { 0xfb02, 255, 0, "\x00\x66\x00\x6c\0" },
+  { 0xfb03, 255, 0, "\x00\x66\x00\x66\x00\x69\0" },
+  { 0xfb04, 255, 0, "\x00\x66\x00\x66\x00\x6c\0" },
+  { 0xfb05, 255, 0, "\x00\x73\x00\x74\0" },
+  { 0xfb06, 255, 0, "\x00\x73\x00\x74\0" },
+  { 0xfb13, 255, 0, "\x05\x74\x05\x76\0" },
+  { 0xfb14, 255, 0, "\x05\x74\x05\x65\0" },
+  { 0xfb15, 255, 0, "\x05\x74\x05\x6b\0" },
+  { 0xfb16, 255, 0, "\x05\x7e\x05\x76\0" },
+  { 0xfb17, 255, 0, "\x05\x74\x05\x6d\0" },
+  { 0xfb1d, 0, 255, "\x05\xd9\x05\xb4\0" },
+  { 0xfb1f, 0, 255, "\x05\xf2\x05\xb7\0" },
+  { 0xfb20, 255, 0, "\x05\xe2\0" },
+  { 0xfb21, 255, 0, "\x05\xd0\0" },
+  { 0xfb22, 255, 0, "\x05\xd3\0" },
+  { 0xfb23, 255, 0, "\x05\xd4\0" },
+  { 0xfb24, 255, 0, "\x05\xdb\0" },
+  { 0xfb25, 255, 0, "\x05\xdc\0" },
+  { 0xfb26, 255, 0, "\x05\xdd\0" },
+  { 0xfb27, 255, 0, "\x05\xe8\0" },
+  { 0xfb28, 255, 0, "\x05\xea\0" },
+  { 0xfb29, 255, 0, "\x00\x2b\0" },
+  { 0xfb2a, 0, 255, "\x05\xe9\x05\xc1\0" },
+  { 0xfb2b, 0, 255, "\x05\xe9\x05\xc2\0" },
+  { 0xfb2c, 0, 255, "\x05\xe9\x05\xbc\x05\xc1\0" },
+  { 0xfb2d, 0, 255, "\x05\xe9\x05\xbc\x05\xc2\0" },
+  { 0xfb2e, 0, 255, "\x05\xd0\x05\xb7\0" },
+  { 0xfb2f, 0, 255, "\x05\xd0\x05\xb8\0" },
+  { 0xfb30, 0, 255, "\x05\xd0\x05\xbc\0" },
+  { 0xfb31, 0, 255, "\x05\xd1\x05\xbc\0" },
+  { 0xfb32, 0, 255, "\x05\xd2\x05\xbc\0" },
+  { 0xfb33, 0, 255, "\x05\xd3\x05\xbc\0" },
+  { 0xfb34, 0, 255, "\x05\xd4\x05\xbc\0" },
+  { 0xfb35, 0, 255, "\x05\xd5\x05\xbc\0" },
+  { 0xfb36, 0, 255, "\x05\xd6\x05\xbc\0" },
+  { 0xfb38, 0, 255, "\x05\xd8\x05\xbc\0" },
+  { 0xfb39, 0, 255, "\x05\xd9\x05\xbc\0" },
+  { 0xfb3a, 0, 255, "\x05\xda\x05\xbc\0" },
+  { 0xfb3b, 0, 255, "\x05\xdb\x05\xbc\0" },
+  { 0xfb3c, 0, 255, "\x05\xdc\x05\xbc\0" },
+  { 0xfb3e, 0, 255, "\x05\xde\x05\xbc\0" },
+  { 0xfb40, 0, 255, "\x05\xe0\x05\xbc\0" },
+  { 0xfb41, 0, 255, "\x05\xe1\x05\xbc\0" },
+  { 0xfb43, 0, 255, "\x05\xe3\x05\xbc\0" },
+  { 0xfb44, 0, 255, "\x05\xe4\x05\xbc\0" },
+  { 0xfb46, 0, 255, "\x05\xe6\x05\xbc\0" },
+  { 0xfb47, 0, 255, "\x05\xe7\x05\xbc\0" },
+  { 0xfb48, 0, 255, "\x05\xe8\x05\xbc\0" },
+  { 0xfb49, 0, 255, "\x05\xe9\x05\xbc\0" },
+  { 0xfb4a, 0, 255, "\x05\xea\x05\xbc\0" },
+  { 0xfb4b, 0, 255, "\x05\xd5\x05\xb9\0" },
+  { 0xfb4c, 0, 255, "\x05\xd1\x05\xbf\0" },
+  { 0xfb4d, 0, 255, "\x05\xdb\x05\xbf\0" },
+  { 0xfb4e, 0, 255, "\x05\xe4\x05\xbf\0" },
+  { 0xfb4f, 255, 0, "\x05\xd0\x05\xdc\0" },
+  { 0xfb50, 255, 0, "\x06\x71\0" },
+  { 0xfb51, 255, 0, "\x06\x71\0" },
+  { 0xfb52, 255, 0, "\x06\x7b\0" },
+  { 0xfb53, 255, 0, "\x06\x7b\0" },
+  { 0xfb54, 255, 0, "\x06\x7b\0" },
+  { 0xfb55, 255, 0, "\x06\x7b\0" },
+  { 0xfb56, 255, 0, "\x06\x7e\0" },
+  { 0xfb57, 255, 0, "\x06\x7e\0" },
+  { 0xfb58, 255, 0, "\x06\x7e\0" },
+  { 0xfb59, 255, 0, "\x06\x7e\0" },
+  { 0xfb5a, 255, 0, "\x06\x80\0" },
+  { 0xfb5b, 255, 0, "\x06\x80\0" },
+  { 0xfb5c, 255, 0, "\x06\x80\0" },
+  { 0xfb5d, 255, 0, "\x06\x80\0" },
+  { 0xfb5e, 255, 0, "\x06\x7a\0" },
+  { 0xfb5f, 255, 0, "\x06\x7a\0" },
+  { 0xfb60, 255, 0, "\x06\x7a\0" },
+  { 0xfb61, 255, 0, "\x06\x7a\0" },
+  { 0xfb62, 255, 0, "\x06\x7f\0" },
+  { 0xfb63, 255, 0, "\x06\x7f\0" },
+  { 0xfb64, 255, 0, "\x06\x7f\0" },
+  { 0xfb65, 255, 0, "\x06\x7f\0" },
+  { 0xfb66, 255, 0, "\x06\x79\0" },
+  { 0xfb67, 255, 0, "\x06\x79\0" },
+  { 0xfb68, 255, 0, "\x06\x79\0" },
+  { 0xfb69, 255, 0, "\x06\x79\0" },
+  { 0xfb6a, 255, 0, "\x06\xa4\0" },
+  { 0xfb6b, 255, 0, "\x06\xa4\0" },
+  { 0xfb6c, 255, 0, "\x06\xa4\0" },
+  { 0xfb6d, 255, 0, "\x06\xa4\0" },
+  { 0xfb6e, 255, 0, "\x06\xa6\0" },
+  { 0xfb6f, 255, 0, "\x06\xa6\0" },
+  { 0xfb70, 255, 0, "\x06\xa6\0" },
+  { 0xfb71, 255, 0, "\x06\xa6\0" },
+  { 0xfb72, 255, 0, "\x06\x84\0" },
+  { 0xfb73, 255, 0, "\x06\x84\0" },
+  { 0xfb74, 255, 0, "\x06\x84\0" },
+  { 0xfb75, 255, 0, "\x06\x84\0" },
+  { 0xfb76, 255, 0, "\x06\x83\0" },
+  { 0xfb77, 255, 0, "\x06\x83\0" },
+  { 0xfb78, 255, 0, "\x06\x83\0" },
+  { 0xfb79, 255, 0, "\x06\x83\0" },
+  { 0xfb7a, 255, 0, "\x06\x86\0" },
+  { 0xfb7b, 255, 0, "\x06\x86\0" },
+  { 0xfb7c, 255, 0, "\x06\x86\0" },
+  { 0xfb7d, 255, 0, "\x06\x86\0" },
+  { 0xfb7e, 255, 0, "\x06\x87\0" },
+  { 0xfb7f, 255, 0, "\x06\x87\0" },
+  { 0xfb80, 255, 0, "\x06\x87\0" },
+  { 0xfb81, 255, 0, "\x06\x87\0" },
+  { 0xfb82, 255, 0, "\x06\x8d\0" },
+  { 0xfb83, 255, 0, "\x06\x8d\0" },
+  { 0xfb84, 255, 0, "\x06\x8c\0" },
+  { 0xfb85, 255, 0, "\x06\x8c\0" },
+  { 0xfb86, 255, 0, "\x06\x8e\0" },
+  { 0xfb87, 255, 0, "\x06\x8e\0" },
+  { 0xfb88, 255, 0, "\x06\x88\0" },
+  { 0xfb89, 255, 0, "\x06\x88\0" },
+  { 0xfb8a, 255, 0, "\x06\x98\0" },
+  { 0xfb8b, 255, 0, "\x06\x98\0" },
+  { 0xfb8c, 255, 0, "\x06\x91\0" },
+  { 0xfb8d, 255, 0, "\x06\x91\0" },
+  { 0xfb8e, 255, 0, "\x06\xa9\0" },
+  { 0xfb8f, 255, 0, "\x06\xa9\0" },
+  { 0xfb90, 255, 0, "\x06\xa9\0" },
+  { 0xfb91, 255, 0, "\x06\xa9\0" },
+  { 0xfb92, 255, 0, "\x06\xaf\0" },
+  { 0xfb93, 255, 0, "\x06\xaf\0" },
+  { 0xfb94, 255, 0, "\x06\xaf\0" },
+  { 0xfb95, 255, 0, "\x06\xaf\0" },
+  { 0xfb96, 255, 0, "\x06\xb3\0" },
+  { 0xfb97, 255, 0, "\x06\xb3\0" },
+  { 0xfb98, 255, 0, "\x06\xb3\0" },
+  { 0xfb99, 255, 0, "\x06\xb3\0" },
+  { 0xfb9a, 255, 0, "\x06\xb1\0" },
+  { 0xfb9b, 255, 0, "\x06\xb1\0" },
+  { 0xfb9c, 255, 0, "\x06\xb1\0" },
+  { 0xfb9d, 255, 0, "\x06\xb1\0" },
+  { 0xfb9e, 255, 0, "\x06\xba\0" },
+  { 0xfb9f, 255, 0, "\x06\xba\0" },
+  { 0xfba0, 255, 0, "\x06\xbb\0" },
+  { 0xfba1, 255, 0, "\x06\xbb\0" },
+  { 0xfba2, 255, 0, "\x06\xbb\0" },
+  { 0xfba3, 255, 0, "\x06\xbb\0" },
+  { 0xfba4, 255, 0, "\x06\xd5\x06\x54\0" },
+  { 0xfba5, 255, 0, "\x06\xd5\x06\x54\0" },
+  { 0xfba6, 255, 0, "\x06\xc1\0" },
+  { 0xfba7, 255, 0, "\x06\xc1\0" },
+  { 0xfba8, 255, 0, "\x06\xc1\0" },
+  { 0xfba9, 255, 0, "\x06\xc1\0" },
+  { 0xfbaa, 255, 0, "\x06\xbe\0" },
+  { 0xfbab, 255, 0, "\x06\xbe\0" },
+  { 0xfbac, 255, 0, "\x06\xbe\0" },
+  { 0xfbad, 255, 0, "\x06\xbe\0" },
+  { 0xfbae, 255, 0, "\x06\xd2\0" },
+  { 0xfbaf, 255, 0, "\x06\xd2\0" },
+  { 0xfbb0, 255, 0, "\x06\xd2\x06\x54\0" },
+  { 0xfbb1, 255, 0, "\x06\xd2\x06\x54\0" },
+  { 0xfbd3, 255, 0, "\x06\xad\0" },
+  { 0xfbd4, 255, 0, "\x06\xad\0" },
+  { 0xfbd5, 255, 0, "\x06\xad\0" },
+  { 0xfbd6, 255, 0, "\x06\xad\0" },
+  { 0xfbd7, 255, 0, "\x06\xc7\0" },
+  { 0xfbd8, 255, 0, "\x06\xc7\0" },
+  { 0xfbd9, 255, 0, "\x06\xc6\0" },
+  { 0xfbda, 255, 0, "\x06\xc6\0" },
+  { 0xfbdb, 255, 0, "\x06\xc8\0" },
+  { 0xfbdc, 255, 0, "\x06\xc8\0" },
+  { 0xfbdd, 255, 0, "\x06\xc7\x06\x74\0" },
+  { 0xfbde, 255, 0, "\x06\xcb\0" },
+  { 0xfbdf, 255, 0, "\x06\xcb\0" },
+  { 0xfbe0, 255, 0, "\x06\xc5\0" },
+  { 0xfbe1, 255, 0, "\x06\xc5\0" },
+  { 0xfbe2, 255, 0, "\x06\xc9\0" },
+  { 0xfbe3, 255, 0, "\x06\xc9\0" },
+  { 0xfbe4, 255, 0, "\x06\xd0\0" },
+  { 0xfbe5, 255, 0, "\x06\xd0\0" },
+  { 0xfbe6, 255, 0, "\x06\xd0\0" },
+  { 0xfbe7, 255, 0, "\x06\xd0\0" },
+  { 0xfbe8, 255, 0, "\x06\x49\0" },
+  { 0xfbe9, 255, 0, "\x06\x49\0" },
+  { 0xfbea, 255, 0, "\x06\x4a\x06\x54\x06\x27\0" },
+  { 0xfbeb, 255, 0, "\x06\x4a\x06\x54\x06\x27\0" },
+  { 0xfbec, 255, 0, "\x06\x4a\x06\x54\x06\xd5\0" },
+  { 0xfbed, 255, 0, "\x06\x4a\x06\x54\x06\xd5\0" },
+  { 0xfbee, 255, 0, "\x06\x4a\x06\x54\x06\x48\0" },
+  { 0xfbef, 255, 0, "\x06\x4a\x06\x54\x06\x48\0" },
+  { 0xfbf0, 255, 0, "\x06\x4a\x06\x54\x06\xc7\0" },
+  { 0xfbf1, 255, 0, "\x06\x4a\x06\x54\x06\xc7\0" },
+  { 0xfbf2, 255, 0, "\x06\x4a\x06\x54\x06\xc6\0" },
+  { 0xfbf3, 255, 0, "\x06\x4a\x06\x54\x06\xc6\0" },
+  { 0xfbf4, 255, 0, "\x06\x4a\x06\x54\x06\xc8\0" },
+  { 0xfbf5, 255, 0, "\x06\x4a\x06\x54\x06\xc8\0" },
+  { 0xfbf6, 255, 0, "\x06\x4a\x06\x54\x06\xd0\0" },
+  { 0xfbf7, 255, 0, "\x06\x4a\x06\x54\x06\xd0\0" },
+  { 0xfbf8, 255, 0, "\x06\x4a\x06\x54\x06\xd0\0" },
+  { 0xfbf9, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" },
+  { 0xfbfa, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" },
+  { 0xfbfb, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" },
+  { 0xfbfc, 255, 0, "\x06\xcc\0" },
+  { 0xfbfd, 255, 0, "\x06\xcc\0" },
+  { 0xfbfe, 255, 0, "\x06\xcc\0" },
+  { 0xfbff, 255, 0, "\x06\xcc\0" },
+  { 0xfc00, 255, 0, "\x06\x4a\x06\x54\x06\x2c\0" },
+  { 0xfc01, 255, 0, "\x06\x4a\x06\x54\x06\x2d\0" },
+  { 0xfc02, 255, 0, "\x06\x4a\x06\x54\x06\x45\0" },
+  { 0xfc03, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" },
+  { 0xfc04, 255, 0, "\x06\x4a\x06\x54\x06\x4a\0" },
+  { 0xfc05, 255, 0, "\x06\x28\x06\x2c\0" },
+  { 0xfc06, 255, 0, "\x06\x28\x06\x2d\0" },
+  { 0xfc07, 255, 0, "\x06\x28\x06\x2e\0" },
+  { 0xfc08, 255, 0, "\x06\x28\x06\x45\0" },
+  { 0xfc09, 255, 0, "\x06\x28\x06\x49\0" },
+  { 0xfc0a, 255, 0, "\x06\x28\x06\x4a\0" },
+  { 0xfc0b, 255, 0, "\x06\x2a\x06\x2c\0" },
+  { 0xfc0c, 255, 0, "\x06\x2a\x06\x2d\0" },
+  { 0xfc0d, 255, 0, "\x06\x2a\x06\x2e\0" },
+  { 0xfc0e, 255, 0, "\x06\x2a\x06\x45\0" },
+  { 0xfc0f, 255, 0, "\x06\x2a\x06\x49\0" },
+  { 0xfc10, 255, 0, "\x06\x2a\x06\x4a\0" },
+  { 0xfc11, 255, 0, "\x06\x2b\x06\x2c\0" },
+  { 0xfc12, 255, 0, "\x06\x2b\x06\x45\0" },
+  { 0xfc13, 255, 0, "\x06\x2b\x06\x49\0" },
+  { 0xfc14, 255, 0, "\x06\x2b\x06\x4a\0" },
+  { 0xfc15, 255, 0, "\x06\x2c\x06\x2d\0" },
+  { 0xfc16, 255, 0, "\x06\x2c\x06\x45\0" },
+  { 0xfc17, 255, 0, "\x06\x2d\x06\x2c\0" },
+  { 0xfc18, 255, 0, "\x06\x2d\x06\x45\0" },
+  { 0xfc19, 255, 0, "\x06\x2e\x06\x2c\0" },
+  { 0xfc1a, 255, 0, "\x06\x2e\x06\x2d\0" },
+  { 0xfc1b, 255, 0, "\x06\x2e\x06\x45\0" },
+  { 0xfc1c, 255, 0, "\x06\x33\x06\x2c\0" },
+  { 0xfc1d, 255, 0, "\x06\x33\x06\x2d\0" },
+  { 0xfc1e, 255, 0, "\x06\x33\x06\x2e\0" },
+  { 0xfc1f, 255, 0, "\x06\x33\x06\x45\0" },
+  { 0xfc20, 255, 0, "\x06\x35\x06\x2d\0" },
+  { 0xfc21, 255, 0, "\x06\x35\x06\x45\0" },
+  { 0xfc22, 255, 0, "\x06\x36\x06\x2c\0" },
+  { 0xfc23, 255, 0, "\x06\x36\x06\x2d\0" },
+  { 0xfc24, 255, 0, "\x06\x36\x06\x2e\0" },
+  { 0xfc25, 255, 0, "\x06\x36\x06\x45\0" },
+  { 0xfc26, 255, 0, "\x06\x37\x06\x2d\0" },
+  { 0xfc27, 255, 0, "\x06\x37\x06\x45\0" },
+  { 0xfc28, 255, 0, "\x06\x38\x06\x45\0" },
+  { 0xfc29, 255, 0, "\x06\x39\x06\x2c\0" },
+  { 0xfc2a, 255, 0, "\x06\x39\x06\x45\0" },
+  { 0xfc2b, 255, 0, "\x06\x3a\x06\x2c\0" },
+  { 0xfc2c, 255, 0, "\x06\x3a\x06\x45\0" },
+  { 0xfc2d, 255, 0, "\x06\x41\x06\x2c\0" },
+  { 0xfc2e, 255, 0, "\x06\x41\x06\x2d\0" },
+  { 0xfc2f, 255, 0, "\x06\x41\x06\x2e\0" },
+  { 0xfc30, 255, 0, "\x06\x41\x06\x45\0" },
+  { 0xfc31, 255, 0, "\x06\x41\x06\x49\0" },
+  { 0xfc32, 255, 0, "\x06\x41\x06\x4a\0" },
+  { 0xfc33, 255, 0, "\x06\x42\x06\x2d\0" },
+  { 0xfc34, 255, 0, "\x06\x42\x06\x45\0" },
+  { 0xfc35, 255, 0, "\x06\x42\x06\x49\0" },
+  { 0xfc36, 255, 0, "\x06\x42\x06\x4a\0" },
+  { 0xfc37, 255, 0, "\x06\x43\x06\x27\0" },
+  { 0xfc38, 255, 0, "\x06\x43\x06\x2c\0" },
+  { 0xfc39, 255, 0, "\x06\x43\x06\x2d\0" },
+  { 0xfc3a, 255, 0, "\x06\x43\x06\x2e\0" },
+  { 0xfc3b, 255, 0, "\x06\x43\x06\x44\0" },
+  { 0xfc3c, 255, 0, "\x06\x43\x06\x45\0" },
+  { 0xfc3d, 255, 0, "\x06\x43\x06\x49\0" },
+  { 0xfc3e, 255, 0, "\x06\x43\x06\x4a\0" },
+  { 0xfc3f, 255, 0, "\x06\x44\x06\x2c\0" },
+  { 0xfc40, 255, 0, "\x06\x44\x06\x2d\0" },
+  { 0xfc41, 255, 0, "\x06\x44\x06\x2e\0" },
+  { 0xfc42, 255, 0, "\x06\x44\x06\x45\0" },
+  { 0xfc43, 255, 0, "\x06\x44\x06\x49\0" },
+  { 0xfc44, 255, 0, "\x06\x44\x06\x4a\0" },
+  { 0xfc45, 255, 0, "\x06\x45\x06\x2c\0" },
+  { 0xfc46, 255, 0, "\x06\x45\x06\x2d\0" },
+  { 0xfc47, 255, 0, "\x06\x45\x06\x2e\0" },
+  { 0xfc48, 255, 0, "\x06\x45\x06\x45\0" },
+  { 0xfc49, 255, 0, "\x06\x45\x06\x49\0" },
+  { 0xfc4a, 255, 0, "\x06\x45\x06\x4a\0" },
+  { 0xfc4b, 255, 0, "\x06\x46\x06\x2c\0" },
+  { 0xfc4c, 255, 0, "\x06\x46\x06\x2d\0" },
+  { 0xfc4d, 255, 0, "\x06\x46\x06\x2e\0" },
+  { 0xfc4e, 255, 0, "\x06\x46\x06\x45\0" },
+  { 0xfc4f, 255, 0, "\x06\x46\x06\x49\0" },
+  { 0xfc50, 255, 0, "\x06\x46\x06\x4a\0" },
+  { 0xfc51, 255, 0, "\x06\x47\x06\x2c\0" },
+  { 0xfc52, 255, 0, "\x06\x47\x06\x45\0" },
+  { 0xfc53, 255, 0, "\x06\x47\x06\x49\0" },
+  { 0xfc54, 255, 0, "\x06\x47\x06\x4a\0" },
+  { 0xfc55, 255, 0, "\x06\x4a\x06\x2c\0" },
+  { 0xfc56, 255, 0, "\x06\x4a\x06\x2d\0" },
+  { 0xfc57, 255, 0, "\x06\x4a\x06\x2e\0" },
+  { 0xfc58, 255, 0, "\x06\x4a\x06\x45\0" },
+  { 0xfc59, 255, 0, "\x06\x4a\x06\x49\0" },
+  { 0xfc5a, 255, 0, "\x06\x4a\x06\x4a\0" },
+  { 0xfc5b, 255, 0, "\x06\x30\x06\x70\0" },
+  { 0xfc5c, 255, 0, "\x06\x31\x06\x70\0" },
+  { 0xfc5d, 255, 0, "\x06\x49\x06\x70\0" },
+  { 0xfc5e, 255, 0, "\x00\x20\x06\x4c\x06\x51\0" },
+  { 0xfc5f, 255, 0, "\x00\x20\x06\x4d\x06\x51\0" },
+  { 0xfc60, 255, 0, "\x00\x20\x06\x4e\x06\x51\0" },
+  { 0xfc61, 255, 0, "\x00\x20\x06\x4f\x06\x51\0" },
+  { 0xfc62, 255, 0, "\x00\x20\x06\x50\x06\x51\0" },
+  { 0xfc63, 255, 0, "\x00\x20\x06\x51\x06\x70\0" },
+  { 0xfc64, 255, 0, "\x06\x4a\x06\x54\x06\x31\0" },
+  { 0xfc65, 255, 0, "\x06\x4a\x06\x54\x06\x32\0" },
+  { 0xfc66, 255, 0, "\x06\x4a\x06\x54\x06\x45\0" },
+  { 0xfc67, 255, 0, "\x06\x4a\x06\x54\x06\x46\0" },
+  { 0xfc68, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" },
+  { 0xfc69, 255, 0, "\x06\x4a\x06\x54\x06\x4a\0" },
+  { 0xfc6a, 255, 0, "\x06\x28\x06\x31\0" },
+  { 0xfc6b, 255, 0, "\x06\x28\x06\x32\0" },
+  { 0xfc6c, 255, 0, "\x06\x28\x06\x45\0" },
+  { 0xfc6d, 255, 0, "\x06\x28\x06\x46\0" },
+  { 0xfc6e, 255, 0, "\x06\x28\x06\x49\0" },
+  { 0xfc6f, 255, 0, "\x06\x28\x06\x4a\0" },
+  { 0xfc70, 255, 0, "\x06\x2a\x06\x31\0" },
+  { 0xfc71, 255, 0, "\x06\x2a\x06\x32\0" },
+  { 0xfc72, 255, 0, "\x06\x2a\x06\x45\0" },
+  { 0xfc73, 255, 0, "\x06\x2a\x06\x46\0" },
+  { 0xfc74, 255, 0, "\x06\x2a\x06\x49\0" },
+  { 0xfc75, 255, 0, "\x06\x2a\x06\x4a\0" },
+  { 0xfc76, 255, 0, "\x06\x2b\x06\x31\0" },
+  { 0xfc77, 255, 0, "\x06\x2b\x06\x32\0" },
+  { 0xfc78, 255, 0, "\x06\x2b\x06\x45\0" },
+  { 0xfc79, 255, 0, "\x06\x2b\x06\x46\0" },
+  { 0xfc7a, 255, 0, "\x06\x2b\x06\x49\0" },
+  { 0xfc7b, 255, 0, "\x06\x2b\x06\x4a\0" },
+  { 0xfc7c, 255, 0, "\x06\x41\x06\x49\0" },
+  { 0xfc7d, 255, 0, "\x06\x41\x06\x4a\0" },
+  { 0xfc7e, 255, 0, "\x06\x42\x06\x49\0" },
+  { 0xfc7f, 255, 0, "\x06\x42\x06\x4a\0" },
+  { 0xfc80, 255, 0, "\x06\x43\x06\x27\0" },
+  { 0xfc81, 255, 0, "\x06\x43\x06\x44\0" },
+  { 0xfc82, 255, 0, "\x06\x43\x06\x45\0" },
+  { 0xfc83, 255, 0, "\x06\x43\x06\x49\0" },
+  { 0xfc84, 255, 0, "\x06\x43\x06\x4a\0" },
+  { 0xfc85, 255, 0, "\x06\x44\x06\x45\0" },
+  { 0xfc86, 255, 0, "\x06\x44\x06\x49\0" },
+  { 0xfc87, 255, 0, "\x06\x44\x06\x4a\0" },
+  { 0xfc88, 255, 0, "\x06\x45\x06\x27\0" },
+  { 0xfc89, 255, 0, "\x06\x45\x06\x45\0" },
+  { 0xfc8a, 255, 0, "\x06\x46\x06\x31\0" },
+  { 0xfc8b, 255, 0, "\x06\x46\x06\x32\0" },
+  { 0xfc8c, 255, 0, "\x06\x46\x06\x45\0" },
+  { 0xfc8d, 255, 0, "\x06\x46\x06\x46\0" },
+  { 0xfc8e, 255, 0, "\x06\x46\x06\x49\0" },
+  { 0xfc8f, 255, 0, "\x06\x46\x06\x4a\0" },
+  { 0xfc90, 255, 0, "\x06\x49\x06\x70\0" },
+  { 0xfc91, 255, 0, "\x06\x4a\x06\x31\0" },
+  { 0xfc92, 255, 0, "\x06\x4a\x06\x32\0" },
+  { 0xfc93, 255, 0, "\x06\x4a\x06\x45\0" },
+  { 0xfc94, 255, 0, "\x06\x4a\x06\x46\0" },
+  { 0xfc95, 255, 0, "\x06\x4a\x06\x49\0" },
+  { 0xfc96, 255, 0, "\x06\x4a\x06\x4a\0" },
+  { 0xfc97, 255, 0, "\x06\x4a\x06\x54\x06\x2c\0" },
+  { 0xfc98, 255, 0, "\x06\x4a\x06\x54\x06\x2d\0" },
+  { 0xfc99, 255, 0, "\x06\x4a\x06\x54\x06\x2e\0" },
+  { 0xfc9a, 255, 0, "\x06\x4a\x06\x54\x06\x45\0" },
+  { 0xfc9b, 255, 0, "\x06\x4a\x06\x54\x06\x47\0" },
+  { 0xfc9c, 255, 0, "\x06\x28\x06\x2c\0" },
+  { 0xfc9d, 255, 0, "\x06\x28\x06\x2d\0" },
+  { 0xfc9e, 255, 0, "\x06\x28\x06\x2e\0" },
+  { 0xfc9f, 255, 0, "\x06\x28\x06\x45\0" },
+  { 0xfca0, 255, 0, "\x06\x28\x06\x47\0" },
+  { 0xfca1, 255, 0, "\x06\x2a\x06\x2c\0" },
+  { 0xfca2, 255, 0, "\x06\x2a\x06\x2d\0" },
+  { 0xfca3, 255, 0, "\x06\x2a\x06\x2e\0" },
+  { 0xfca4, 255, 0, "\x06\x2a\x06\x45\0" },
+  { 0xfca5, 255, 0, "\x06\x2a\x06\x47\0" },
+  { 0xfca6, 255, 0, "\x06\x2b\x06\x45\0" },
+  { 0xfca7, 255, 0, "\x06\x2c\x06\x2d\0" },
+  { 0xfca8, 255, 0, "\x06\x2c\x06\x45\0" },
+  { 0xfca9, 255, 0, "\x06\x2d\x06\x2c\0" },
+  { 0xfcaa, 255, 0, "\x06\x2d\x06\x45\0" },
+  { 0xfcab, 255, 0, "\x06\x2e\x06\x2c\0" },
+  { 0xfcac, 255, 0, "\x06\x2e\x06\x45\0" },
+  { 0xfcad, 255, 0, "\x06\x33\x06\x2c\0" },
+  { 0xfcae, 255, 0, "\x06\x33\x06\x2d\0" },
+  { 0xfcaf, 255, 0, "\x06\x33\x06\x2e\0" },
+  { 0xfcb0, 255, 0, "\x06\x33\x06\x45\0" },
+  { 0xfcb1, 255, 0, "\x06\x35\x06\x2d\0" },
+  { 0xfcb2, 255, 0, "\x06\x35\x06\x2e\0" },
+  { 0xfcb3, 255, 0, "\x06\x35\x06\x45\0" },
+  { 0xfcb4, 255, 0, "\x06\x36\x06\x2c\0" },
+  { 0xfcb5, 255, 0, "\x06\x36\x06\x2d\0" },
+  { 0xfcb6, 255, 0, "\x06\x36\x06\x2e\0" },
+  { 0xfcb7, 255, 0, "\x06\x36\x06\x45\0" },
+  { 0xfcb8, 255, 0, "\x06\x37\x06\x2d\0" },
+  { 0xfcb9, 255, 0, "\x06\x38\x06\x45\0" },
+  { 0xfcba, 255, 0, "\x06\x39\x06\x2c\0" },
+  { 0xfcbb, 255, 0, "\x06\x39\x06\x45\0" },
+  { 0xfcbc, 255, 0, "\x06\x3a\x06\x2c\0" },
+  { 0xfcbd, 255, 0, "\x06\x3a\x06\x45\0" },
+  { 0xfcbe, 255, 0, "\x06\x41\x06\x2c\0" },
+  { 0xfcbf, 255, 0, "\x06\x41\x06\x2d\0" },
+  { 0xfcc0, 255, 0, "\x06\x41\x06\x2e\0" },
+  { 0xfcc1, 255, 0, "\x06\x41\x06\x45\0" },
+  { 0xfcc2, 255, 0, "\x06\x42\x06\x2d\0" },
+  { 0xfcc3, 255, 0, "\x06\x42\x06\x45\0" },
+  { 0xfcc4, 255, 0, "\x06\x43\x06\x2c\0" },
+  { 0xfcc5, 255, 0, "\x06\x43\x06\x2d\0" },
+  { 0xfcc6, 255, 0, "\x06\x43\x06\x2e\0" },
+  { 0xfcc7, 255, 0, "\x06\x43\x06\x44\0" },
+  { 0xfcc8, 255, 0, "\x06\x43\x06\x45\0" },
+  { 0xfcc9, 255, 0, "\x06\x44\x06\x2c\0" },
+  { 0xfcca, 255, 0, "\x06\x44\x06\x2d\0" },
+  { 0xfccb, 255, 0, "\x06\x44\x06\x2e\0" },
+  { 0xfccc, 255, 0, "\x06\x44\x06\x45\0" },
+  { 0xfccd, 255, 0, "\x06\x44\x06\x47\0" },
+  { 0xfcce, 255, 0, "\x06\x45\x06\x2c\0" },
+  { 0xfccf, 255, 0, "\x06\x45\x06\x2d\0" },
+  { 0xfcd0, 255, 0, "\x06\x45\x06\x2e\0" },
+  { 0xfcd1, 255, 0, "\x06\x45\x06\x45\0" },
+  { 0xfcd2, 255, 0, "\x06\x46\x06\x2c\0" },
+  { 0xfcd3, 255, 0, "\x06\x46\x06\x2d\0" },
+  { 0xfcd4, 255, 0, "\x06\x46\x06\x2e\0" },
+  { 0xfcd5, 255, 0, "\x06\x46\x06\x45\0" },
+  { 0xfcd6, 255, 0, "\x06\x46\x06\x47\0" },
+  { 0xfcd7, 255, 0, "\x06\x47\x06\x2c\0" },
+  { 0xfcd8, 255, 0, "\x06\x47\x06\x45\0" },
+  { 0xfcd9, 255, 0, "\x06\x47\x06\x70\0" },
+  { 0xfcda, 255, 0, "\x06\x4a\x06\x2c\0" },
+  { 0xfcdb, 255, 0, "\x06\x4a\x06\x2d\0" },
+  { 0xfcdc, 255, 0, "\x06\x4a\x06\x2e\0" },
+  { 0xfcdd, 255, 0, "\x06\x4a\x06\x45\0" },
+  { 0xfcde, 255, 0, "\x06\x4a\x06\x47\0" },
+  { 0xfcdf, 255, 0, "\x06\x4a\x06\x54\x06\x45\0" },
+  { 0xfce0, 255, 0, "\x06\x4a\x06\x54\x06\x47\0" },
+  { 0xfce1, 255, 0, "\x06\x28\x06\x45\0" },
+  { 0xfce2, 255, 0, "\x06\x28\x06\x47\0" },
+  { 0xfce3, 255, 0, "\x06\x2a\x06\x45\0" },
+  { 0xfce4, 255, 0, "\x06\x2a\x06\x47\0" },
+  { 0xfce5, 255, 0, "\x06\x2b\x06\x45\0" },
+  { 0xfce6, 255, 0, "\x06\x2b\x06\x47\0" },
+  { 0xfce7, 255, 0, "\x06\x33\x06\x45\0" },
+  { 0xfce8, 255, 0, "\x06\x33\x06\x47\0" },
+  { 0xfce9, 255, 0, "\x06\x34\x06\x45\0" },
+  { 0xfcea, 255, 0, "\x06\x34\x06\x47\0" },
+  { 0xfceb, 255, 0, "\x06\x43\x06\x44\0" },
+  { 0xfcec, 255, 0, "\x06\x43\x06\x45\0" },
+  { 0xfced, 255, 0, "\x06\x44\x06\x45\0" },
+  { 0xfcee, 255, 0, "\x06\x46\x06\x45\0" },
+  { 0xfcef, 255, 0, "\x06\x46\x06\x47\0" },
+  { 0xfcf0, 255, 0, "\x06\x4a\x06\x45\0" },
+  { 0xfcf1, 255, 0, "\x06\x4a\x06\x47\0" },
+  { 0xfcf2, 255, 0, "\x06\x40\x06\x4e\x06\x51\0" },
+  { 0xfcf3, 255, 0, "\x06\x40\x06\x4f\x06\x51\0" },
+  { 0xfcf4, 255, 0, "\x06\x40\x06\x50\x06\x51\0" },
+  { 0xfcf5, 255, 0, "\x06\x37\x06\x49\0" },
+  { 0xfcf6, 255, 0, "\x06\x37\x06\x4a\0" },
+  { 0xfcf7, 255, 0, "\x06\x39\x06\x49\0" },
+  { 0xfcf8, 255, 0, "\x06\x39\x06\x4a\0" },
+  { 0xfcf9, 255, 0, "\x06\x3a\x06\x49\0" },
+  { 0xfcfa, 255, 0, "\x06\x3a\x06\x4a\0" },
+  { 0xfcfb, 255, 0, "\x06\x33\x06\x49\0" },
+  { 0xfcfc, 255, 0, "\x06\x33\x06\x4a\0" },
+  { 0xfcfd, 255, 0, "\x06\x34\x06\x49\0" },
+  { 0xfcfe, 255, 0, "\x06\x34\x06\x4a\0" },
+  { 0xfcff, 255, 0, "\x06\x2d\x06\x49\0" },
+  { 0xfd00, 255, 0, "\x06\x2d\x06\x4a\0" },
+  { 0xfd01, 255, 0, "\x06\x2c\x06\x49\0" },
+  { 0xfd02, 255, 0, "\x06\x2c\x06\x4a\0" },
+  { 0xfd03, 255, 0, "\x06\x2e\x06\x49\0" },
+  { 0xfd04, 255, 0, "\x06\x2e\x06\x4a\0" },
+  { 0xfd05, 255, 0, "\x06\x35\x06\x49\0" },
+  { 0xfd06, 255, 0, "\x06\x35\x06\x4a\0" },
+  { 0xfd07, 255, 0, "\x06\x36\x06\x49\0" },
+  { 0xfd08, 255, 0, "\x06\x36\x06\x4a\0" },
+  { 0xfd09, 255, 0, "\x06\x34\x06\x2c\0" },
+  { 0xfd0a, 255, 0, "\x06\x34\x06\x2d\0" },
+  { 0xfd0b, 255, 0, "\x06\x34\x06\x2e\0" },
+  { 0xfd0c, 255, 0, "\x06\x34\x06\x45\0" },
+  { 0xfd0d, 255, 0, "\x06\x34\x06\x31\0" },
+  { 0xfd0e, 255, 0, "\x06\x33\x06\x31\0" },
+  { 0xfd0f, 255, 0, "\x06\x35\x06\x31\0" },
+  { 0xfd10, 255, 0, "\x06\x36\x06\x31\0" },
+  { 0xfd11, 255, 0, "\x06\x37\x06\x49\0" },
+  { 0xfd12, 255, 0, "\x06\x37\x06\x4a\0" },
+  { 0xfd13, 255, 0, "\x06\x39\x06\x49\0" },
+  { 0xfd14, 255, 0, "\x06\x39\x06\x4a\0" },
+  { 0xfd15, 255, 0, "\x06\x3a\x06\x49\0" },
+  { 0xfd16, 255, 0, "\x06\x3a\x06\x4a\0" },
+  { 0xfd17, 255, 0, "\x06\x33\x06\x49\0" },
+  { 0xfd18, 255, 0, "\x06\x33\x06\x4a\0" },
+  { 0xfd19, 255, 0, "\x06\x34\x06\x49\0" },
+  { 0xfd1a, 255, 0, "\x06\x34\x06\x4a\0" },
+  { 0xfd1b, 255, 0, "\x06\x2d\x06\x49\0" },
+  { 0xfd1c, 255, 0, "\x06\x2d\x06\x4a\0" },
+  { 0xfd1d, 255, 0, "\x06\x2c\x06\x49\0" },
+  { 0xfd1e, 255, 0, "\x06\x2c\x06\x4a\0" },
+  { 0xfd1f, 255, 0, "\x06\x2e\x06\x49\0" },
+  { 0xfd20, 255, 0, "\x06\x2e\x06\x4a\0" },
+  { 0xfd21, 255, 0, "\x06\x35\x06\x49\0" },
+  { 0xfd22, 255, 0, "\x06\x35\x06\x4a\0" },
+  { 0xfd23, 255, 0, "\x06\x36\x06\x49\0" },
+  { 0xfd24, 255, 0, "\x06\x36\x06\x4a\0" },
+  { 0xfd25, 255, 0, "\x06\x34\x06\x2c\0" },
+  { 0xfd26, 255, 0, "\x06\x34\x06\x2d\0" },
+  { 0xfd27, 255, 0, "\x06\x34\x06\x2e\0" },
+  { 0xfd28, 255, 0, "\x06\x34\x06\x45\0" },
+  { 0xfd29, 255, 0, "\x06\x34\x06\x31\0" },
+  { 0xfd2a, 255, 0, "\x06\x33\x06\x31\0" },
+  { 0xfd2b, 255, 0, "\x06\x35\x06\x31\0" },
+  { 0xfd2c, 255, 0, "\x06\x36\x06\x31\0" },
+  { 0xfd2d, 255, 0, "\x06\x34\x06\x2c\0" },
+  { 0xfd2e, 255, 0, "\x06\x34\x06\x2d\0" },
+  { 0xfd2f, 255, 0, "\x06\x34\x06\x2e\0" },
+  { 0xfd30, 255, 0, "\x06\x34\x06\x45\0" },
+  { 0xfd31, 255, 0, "\x06\x33\x06\x47\0" },
+  { 0xfd32, 255, 0, "\x06\x34\x06\x47\0" },
+  { 0xfd33, 255, 0, "\x06\x37\x06\x45\0" },
+  { 0xfd34, 255, 0, "\x06\x33\x06\x2c\0" },
+  { 0xfd35, 255, 0, "\x06\x33\x06\x2d\0" },
+  { 0xfd36, 255, 0, "\x06\x33\x06\x2e\0" },
+  { 0xfd37, 255, 0, "\x06\x34\x06\x2c\0" },
+  { 0xfd38, 255, 0, "\x06\x34\x06\x2d\0" },
+  { 0xfd39, 255, 0, "\x06\x34\x06\x2e\0" },
+  { 0xfd3a, 255, 0, "\x06\x37\x06\x45\0" },
+  { 0xfd3b, 255, 0, "\x06\x38\x06\x45\0" },
+  { 0xfd3c, 255, 0, "\x06\x27\x06\x4b\0" },
+  { 0xfd3d, 255, 0, "\x06\x27\x06\x4b\0" },
+  { 0xfd50, 255, 0, "\x06\x2a\x06\x2c\x06\x45\0" },
+  { 0xfd51, 255, 0, "\x06\x2a\x06\x2d\x06\x2c\0" },
+  { 0xfd52, 255, 0, "\x06\x2a\x06\x2d\x06\x2c\0" },
+  { 0xfd53, 255, 0, "\x06\x2a\x06\x2d\x06\x45\0" },
+  { 0xfd54, 255, 0, "\x06\x2a\x06\x2e\x06\x45\0" },
+  { 0xfd55, 255, 0, "\x06\x2a\x06\x45\x06\x2c\0" },
+  { 0xfd56, 255, 0, "\x06\x2a\x06\x45\x06\x2d\0" },
+  { 0xfd57, 255, 0, "\x06\x2a\x06\x45\x06\x2e\0" },
+  { 0xfd58, 255, 0, "\x06\x2c\x06\x45\x06\x2d\0" },
+  { 0xfd59, 255, 0, "\x06\x2c\x06\x45\x06\x2d\0" },
+  { 0xfd5a, 255, 0, "\x06\x2d\x06\x45\x06\x4a\0" },
+  { 0xfd5b, 255, 0, "\x06\x2d\x06\x45\x06\x49\0" },
+  { 0xfd5c, 255, 0, "\x06\x33\x06\x2d\x06\x2c\0" },
+  { 0xfd5d, 255, 0, "\x06\x33\x06\x2c\x06\x2d\0" },
+  { 0xfd5e, 255, 0, "\x06\x33\x06\x2c\x06\x49\0" },
+  { 0xfd5f, 255, 0, "\x06\x33\x06\x45\x06\x2d\0" },
+  { 0xfd60, 255, 0, "\x06\x33\x06\x45\x06\x2d\0" },
+  { 0xfd61, 255, 0, "\x06\x33\x06\x45\x06\x2c\0" },
+  { 0xfd62, 255, 0, "\x06\x33\x06\x45\x06\x45\0" },
+  { 0xfd63, 255, 0, "\x06\x33\x06\x45\x06\x45\0" },
+  { 0xfd64, 255, 0, "\x06\x35\x06\x2d\x06\x2d\0" },
+  { 0xfd65, 255, 0, "\x06\x35\x06\x2d\x06\x2d\0" },
+  { 0xfd66, 255, 0, "\x06\x35\x06\x45\x06\x45\0" },
+  { 0xfd67, 255, 0, "\x06\x34\x06\x2d\x06\x45\0" },
+  { 0xfd68, 255, 0, "\x06\x34\x06\x2d\x06\x45\0" },
+  { 0xfd69, 255, 0, "\x06\x34\x06\x2c\x06\x4a\0" },
+  { 0xfd6a, 255, 0, "\x06\x34\x06\x45\x06\x2e\0" },
+  { 0xfd6b, 255, 0, "\x06\x34\x06\x45\x06\x2e\0" },
+  { 0xfd6c, 255, 0, "\x06\x34\x06\x45\x06\x45\0" },
+  { 0xfd6d, 255, 0, "\x06\x34\x06\x45\x06\x45\0" },
+  { 0xfd6e, 255, 0, "\x06\x36\x06\x2d\x06\x49\0" },
+  { 0xfd6f, 255, 0, "\x06\x36\x06\x2e\x06\x45\0" },
+  { 0xfd70, 255, 0, "\x06\x36\x06\x2e\x06\x45\0" },
+  { 0xfd71, 255, 0, "\x06\x37\x06\x45\x06\x2d\0" },
+  { 0xfd72, 255, 0, "\x06\x37\x06\x45\x06\x2d\0" },
+  { 0xfd73, 255, 0, "\x06\x37\x06\x45\x06\x45\0" },
+  { 0xfd74, 255, 0, "\x06\x37\x06\x45\x06\x4a\0" },
+  { 0xfd75, 255, 0, "\x06\x39\x06\x2c\x06\x45\0" },
+  { 0xfd76, 255, 0, "\x06\x39\x06\x45\x06\x45\0" },
+  { 0xfd77, 255, 0, "\x06\x39\x06\x45\x06\x45\0" },
+  { 0xfd78, 255, 0, "\x06\x39\x06\x45\x06\x49\0" },
+  { 0xfd79, 255, 0, "\x06\x3a\x06\x45\x06\x45\0" },
+  { 0xfd7a, 255, 0, "\x06\x3a\x06\x45\x06\x4a\0" },
+  { 0xfd7b, 255, 0, "\x06\x3a\x06\x45\x06\x49\0" },
+  { 0xfd7c, 255, 0, "\x06\x41\x06\x2e\x06\x45\0" },
+  { 0xfd7d, 255, 0, "\x06\x41\x06\x2e\x06\x45\0" },
+  { 0xfd7e, 255, 0, "\x06\x42\x06\x45\x06\x2d\0" },
+  { 0xfd7f, 255, 0, "\x06\x42\x06\x45\x06\x45\0" },
+  { 0xfd80, 255, 0, "\x06\x44\x06\x2d\x06\x45\0" },
+  { 0xfd81, 255, 0, "\x06\x44\x06\x2d\x06\x4a\0" },
+  { 0xfd82, 255, 0, "\x06\x44\x06\x2d\x06\x49\0" },
+  { 0xfd83, 255, 0, "\x06\x44\x06\x2c\x06\x2c\0" },
+  { 0xfd84, 255, 0, "\x06\x44\x06\x2c\x06\x2c\0" },
+  { 0xfd85, 255, 0, "\x06\x44\x06\x2e\x06\x45\0" },
+  { 0xfd86, 255, 0, "\x06\x44\x06\x2e\x06\x45\0" },
+  { 0xfd87, 255, 0, "\x06\x44\x06\x45\x06\x2d\0" },
+  { 0xfd88, 255, 0, "\x06\x44\x06\x45\x06\x2d\0" },
+  { 0xfd89, 255, 0, "\x06\x45\x06\x2d\x06\x2c\0" },
+  { 0xfd8a, 255, 0, "\x06\x45\x06\x2d\x06\x45\0" },
+  { 0xfd8b, 255, 0, "\x06\x45\x06\x2d\x06\x4a\0" },
+  { 0xfd8c, 255, 0, "\x06\x45\x06\x2c\x06\x2d\0" },
+  { 0xfd8d, 255, 0, "\x06\x45\x06\x2c\x06\x45\0" },
+  { 0xfd8e, 255, 0, "\x06\x45\x06\x2e\x06\x2c\0" },
+  { 0xfd8f, 255, 0, "\x06\x45\x06\x2e\x06\x45\0" },
+  { 0xfd92, 255, 0, "\x06\x45\x06\x2c\x06\x2e\0" },
+  { 0xfd93, 255, 0, "\x06\x47\x06\x45\x06\x2c\0" },
+  { 0xfd94, 255, 0, "\x06\x47\x06\x45\x06\x45\0" },
+  { 0xfd95, 255, 0, "\x06\x46\x06\x2d\x06\x45\0" },
+  { 0xfd96, 255, 0, "\x06\x46\x06\x2d\x06\x49\0" },
+  { 0xfd97, 255, 0, "\x06\x46\x06\x2c\x06\x45\0" },
+  { 0xfd98, 255, 0, "\x06\x46\x06\x2c\x06\x45\0" },
+  { 0xfd99, 255, 0, "\x06\x46\x06\x2c\x06\x49\0" },
+  { 0xfd9a, 255, 0, "\x06\x46\x06\x45\x06\x4a\0" },
+  { 0xfd9b, 255, 0, "\x06\x46\x06\x45\x06\x49\0" },
+  { 0xfd9c, 255, 0, "\x06\x4a\x06\x45\x06\x45\0" },
+  { 0xfd9d, 255, 0, "\x06\x4a\x06\x45\x06\x45\0" },
+  { 0xfd9e, 255, 0, "\x06\x28\x06\x2e\x06\x4a\0" },
+  { 0xfd9f, 255, 0, "\x06\x2a\x06\x2c\x06\x4a\0" },
+  { 0xfda0, 255, 0, "\x06\x2a\x06\x2c\x06\x49\0" },
+  { 0xfda1, 255, 0, "\x06\x2a\x06\x2e\x06\x4a\0" },
+  { 0xfda2, 255, 0, "\x06\x2a\x06\x2e\x06\x49\0" },
+  { 0xfda3, 255, 0, "\x06\x2a\x06\x45\x06\x4a\0" },
+  { 0xfda4, 255, 0, "\x06\x2a\x06\x45\x06\x49\0" },
+  { 0xfda5, 255, 0, "\x06\x2c\x06\x45\x06\x4a\0" },
+  { 0xfda6, 255, 0, "\x06\x2c\x06\x2d\x06\x49\0" },
+  { 0xfda7, 255, 0, "\x06\x2c\x06\x45\x06\x49\0" },
+  { 0xfda8, 255, 0, "\x06\x33\x06\x2e\x06\x49\0" },
+  { 0xfda9, 255, 0, "\x06\x35\x06\x2d\x06\x4a\0" },
+  { 0xfdaa, 255, 0, "\x06\x34\x06\x2d\x06\x4a\0" },
+  { 0xfdab, 255, 0, "\x06\x36\x06\x2d\x06\x4a\0" },
+  { 0xfdac, 255, 0, "\x06\x44\x06\x2c\x06\x4a\0" },
+  { 0xfdad, 255, 0, "\x06\x44\x06\x45\x06\x4a\0" },
+  { 0xfdae, 255, 0, "\x06\x4a\x06\x2d\x06\x4a\0" },
+  { 0xfdaf, 255, 0, "\x06\x4a\x06\x2c\x06\x4a\0" },
+  { 0xfdb0, 255, 0, "\x06\x4a\x06\x45\x06\x4a\0" },
+  { 0xfdb1, 255, 0, "\x06\x45\x06\x45\x06\x4a\0" },
+  { 0xfdb2, 255, 0, "\x06\x42\x06\x45\x06\x4a\0" },
+  { 0xfdb3, 255, 0, "\x06\x46\x06\x2d\x06\x4a\0" },
+  { 0xfdb4, 255, 0, "\x06\x42\x06\x45\x06\x2d\0" },
+  { 0xfdb5, 255, 0, "\x06\x44\x06\x2d\x06\x45\0" },
+  { 0xfdb6, 255, 0, "\x06\x39\x06\x45\x06\x4a\0" },
+  { 0xfdb7, 255, 0, "\x06\x43\x06\x45\x06\x4a\0" },
+  { 0xfdb8, 255, 0, "\x06\x46\x06\x2c\x06\x2d\0" },
+  { 0xfdb9, 255, 0, "\x06\x45\x06\x2e\x06\x4a\0" },
+  { 0xfdba, 255, 0, "\x06\x44\x06\x2c\x06\x45\0" },
+  { 0xfdbb, 255, 0, "\x06\x43\x06\x45\x06\x45\0" },
+  { 0xfdbc, 255, 0, "\x06\x44\x06\x2c\x06\x45\0" },
+  { 0xfdbd, 255, 0, "\x06\x46\x06\x2c\x06\x2d\0" },
+  { 0xfdbe, 255, 0, "\x06\x2c\x06\x2d\x06\x4a\0" },
+  { 0xfdbf, 255, 0, "\x06\x2d\x06\x2c\x06\x4a\0" },
+  { 0xfdc0, 255, 0, "\x06\x45\x06\x2c\x06\x4a\0" },
+  { 0xfdc1, 255, 0, "\x06\x41\x06\x45\x06\x4a\0" },
+  { 0xfdc2, 255, 0, "\x06\x28\x06\x2d\x06\x4a\0" },
+  { 0xfdc3, 255, 0, "\x06\x43\x06\x45\x06\x45\0" },
+  { 0xfdc4, 255, 0, "\x06\x39\x06\x2c\x06\x45\0" },
+  { 0xfdc5, 255, 0, "\x06\x35\x06\x45\x06\x45\0" },
+  { 0xfdc6, 255, 0, "\x06\x33\x06\x2e\x06\x4a\0" },
+  { 0xfdc7, 255, 0, "\x06\x46\x06\x2c\x06\x4a\0" },
+  { 0xfdf0, 255, 0, "\x06\x35\x06\x44\x06\xd2\0" },
+  { 0xfdf1, 255, 0, "\x06\x42\x06\x44\x06\xd2\0" },
+  { 0xfdf2, 255, 0, "\x06\x27\x06\x44\x06\x44\x06\x47\0" },
+  { 0xfdf3, 255, 0, "\x06\x27\x06\x43\x06\x28\x06\x31\0" },
+  { 0xfdf4, 255, 0, "\x06\x45\x06\x2d\x06\x45\x06\x2f\0" },
+  { 0xfdf5, 255, 0, "\x06\x35\x06\x44\x06\x39\x06\x45\0" },
+  { 0xfdf6, 255, 0, "\x06\x31\x06\x33\x06\x48\x06\x44\0" },
+  { 0xfdf7, 255, 0, "\x06\x39\x06\x44\x06\x4a\x06\x47\0" },
+  { 0xfdf8, 255, 0, "\x06\x48\x06\x33\x06\x44\x06\x45\0" },
+  { 0xfdf9, 255, 0, "\x06\x35\x06\x44\x06\x49\0" },
+  { 0xfdfa, 255, 0, "\x06\x35\x06\x44\x06\x49\x00\x20\x06\x27\x06\x44\x06\x44\x06\x47\x00\x20\x06\x39\x06\x44\x06\x4a\x06\x47\x00\x20\x06\x48\x06\x33\x06\x44\x06\x45\0" },
+  { 0xfdfb, 255, 0, "\x06\x2c\x06\x44\x00\x20\x06\x2c\x06\x44\x06\x27\x06\x44\x06\x47\0" },
+  { 0xfe30, 255, 0, "\x00\x2e\x00\x2e\0" },
+  { 0xfe31, 255, 0, "\x20\x14\0" },
+  { 0xfe32, 255, 0, "\x20\x13\0" },
+  { 0xfe33, 255, 0, "\x00\x5f\0" },
+  { 0xfe34, 255, 0, "\x00\x5f\0" },
+  { 0xfe35, 255, 0, "\x00\x28\0" },
+  { 0xfe36, 255, 0, "\x00\x29\0" },
+  { 0xfe37, 255, 0, "\x00\x7b\0" },
+  { 0xfe38, 255, 0, "\x00\x7d\0" },
+  { 0xfe39, 255, 0, "\x30\x14\0" },
+  { 0xfe3a, 255, 0, "\x30\x15\0" },
+  { 0xfe3b, 255, 0, "\x30\x10\0" },
+  { 0xfe3c, 255, 0, "\x30\x11\0" },
+  { 0xfe3d, 255, 0, "\x30\x0a\0" },
+  { 0xfe3e, 255, 0, "\x30\x0b\0" },
+  { 0xfe3f, 255, 0, "\x30\x08\0" },
+  { 0xfe40, 255, 0, "\x30\x09\0" },
+  { 0xfe41, 255, 0, "\x30\x0c\0" },
+  { 0xfe42, 255, 0, "\x30\x0d\0" },
+  { 0xfe43, 255, 0, "\x30\x0e\0" },
+  { 0xfe44, 255, 0, "\x30\x0f\0" },
+  { 0xfe49, 255, 0, "\x00\x20\x03\x05\0" },
+  { 0xfe4a, 255, 0, "\x00\x20\x03\x05\0" },
+  { 0xfe4b, 255, 0, "\x00\x20\x03\x05\0" },
+  { 0xfe4c, 255, 0, "\x00\x20\x03\x05\0" },
+  { 0xfe4d, 255, 0, "\x00\x5f\0" },
+  { 0xfe4e, 255, 0, "\x00\x5f\0" },
+  { 0xfe4f, 255, 0, "\x00\x5f\0" },
+  { 0xfe50, 255, 0, "\x00\x2c\0" },
+  { 0xfe51, 255, 0, "\x30\x01\0" },
+  { 0xfe52, 255, 0, "\x00\x2e\0" },
+  { 0xfe54, 255, 0, "\x00\x3b\0" },
+  { 0xfe55, 255, 0, "\x00\x3a\0" },
+  { 0xfe56, 255, 0, "\x00\x3f\0" },
+  { 0xfe57, 255, 0, "\x00\x21\0" },
+  { 0xfe58, 255, 0, "\x20\x14\0" },
+  { 0xfe59, 255, 0, "\x00\x28\0" },
+  { 0xfe5a, 255, 0, "\x00\x29\0" },
+  { 0xfe5b, 255, 0, "\x00\x7b\0" },
+  { 0xfe5c, 255, 0, "\x00\x7d\0" },
+  { 0xfe5d, 255, 0, "\x30\x14\0" },
+  { 0xfe5e, 255, 0, "\x30\x15\0" },
+  { 0xfe5f, 255, 0, "\x00\x23\0" },
+  { 0xfe60, 255, 0, "\x00\x26\0" },
+  { 0xfe61, 255, 0, "\x00\x2a\0" },
+  { 0xfe62, 255, 0, "\x00\x2b\0" },
+  { 0xfe63, 255, 0, "\x00\x2d\0" },
+  { 0xfe64, 255, 0, "\x00\x3c\0" },
+  { 0xfe65, 255, 0, "\x00\x3e\0" },
+  { 0xfe66, 255, 0, "\x00\x3d\0" },
+  { 0xfe68, 255, 0, "\x00\x5c\0" },
+  { 0xfe69, 255, 0, "\x00\x24\0" },
+  { 0xfe6a, 255, 0, "\x00\x25\0" },
+  { 0xfe6b, 255, 0, "\x00\x40\0" },
+  { 0xfe70, 255, 0, "\x00\x20\x06\x4b\0" },
+  { 0xfe71, 255, 0, "\x06\x40\x06\x4b\0" },
+  { 0xfe72, 255, 0, "\x00\x20\x06\x4c\0" },
+  { 0xfe74, 255, 0, "\x00\x20\x06\x4d\0" },
+  { 0xfe76, 255, 0, "\x00\x20\x06\x4e\0" },
+  { 0xfe77, 255, 0, "\x06\x40\x06\x4e\0" },
+  { 0xfe78, 255, 0, "\x00\x20\x06\x4f\0" },
+  { 0xfe79, 255, 0, "\x06\x40\x06\x4f\0" },
+  { 0xfe7a, 255, 0, "\x00\x20\x06\x50\0" },
+  { 0xfe7b, 255, 0, "\x06\x40\x06\x50\0" },
+  { 0xfe7c, 255, 0, "\x00\x20\x06\x51\0" },
+  { 0xfe7d, 255, 0, "\x06\x40\x06\x51\0" },
+  { 0xfe7e, 255, 0, "\x00\x20\x06\x52\0" },
+  { 0xfe7f, 255, 0, "\x06\x40\x06\x52\0" },
+  { 0xfe80, 255, 0, "\x06\x21\0" },
+  { 0xfe81, 255, 0, "\x06\x27\x06\x53\0" },
+  { 0xfe82, 255, 0, "\x06\x27\x06\x53\0" },
+  { 0xfe83, 255, 0, "\x06\x27\x06\x54\0" },
+  { 0xfe84, 255, 0, "\x06\x27\x06\x54\0" },
+  { 0xfe85, 255, 0, "\x06\x48\x06\x54\0" },
+  { 0xfe86, 255, 0, "\x06\x48\x06\x54\0" },
+  { 0xfe87, 255, 0, "\x06\x27\x06\x55\0" },
+  { 0xfe88, 255, 0, "\x06\x27\x06\x55\0" },
+  { 0xfe89, 255, 0, "\x06\x4a\x06\x54\0" },
+  { 0xfe8a, 255, 0, "\x06\x4a\x06\x54\0" },
+  { 0xfe8b, 255, 0, "\x06\x4a\x06\x54\0" },
+  { 0xfe8c, 255, 0, "\x06\x4a\x06\x54\0" },
+  { 0xfe8d, 255, 0, "\x06\x27\0" },
+  { 0xfe8e, 255, 0, "\x06\x27\0" },
+  { 0xfe8f, 255, 0, "\x06\x28\0" },
+  { 0xfe90, 255, 0, "\x06\x28\0" },
+  { 0xfe91, 255, 0, "\x06\x28\0" },
+  { 0xfe92, 255, 0, "\x06\x28\0" },
+  { 0xfe93, 255, 0, "\x06\x29\0" },
+  { 0xfe94, 255, 0, "\x06\x29\0" },
+  { 0xfe95, 255, 0, "\x06\x2a\0" },
+  { 0xfe96, 255, 0, "\x06\x2a\0" },
+  { 0xfe97, 255, 0, "\x06\x2a\0" },
+  { 0xfe98, 255, 0, "\x06\x2a\0" },
+  { 0xfe99, 255, 0, "\x06\x2b\0" },
+  { 0xfe9a, 255, 0, "\x06\x2b\0" },
+  { 0xfe9b, 255, 0, "\x06\x2b\0" },
+  { 0xfe9c, 255, 0, "\x06\x2b\0" },
+  { 0xfe9d, 255, 0, "\x06\x2c\0" },
+  { 0xfe9e, 255, 0, "\x06\x2c\0" },
+  { 0xfe9f, 255, 0, "\x06\x2c\0" },
+  { 0xfea0, 255, 0, "\x06\x2c\0" },
+  { 0xfea1, 255, 0, "\x06\x2d\0" },
+  { 0xfea2, 255, 0, "\x06\x2d\0" },
+  { 0xfea3, 255, 0, "\x06\x2d\0" },
+  { 0xfea4, 255, 0, "\x06\x2d\0" },
+  { 0xfea5, 255, 0, "\x06\x2e\0" },
+  { 0xfea6, 255, 0, "\x06\x2e\0" },
+  { 0xfea7, 255, 0, "\x06\x2e\0" },
+  { 0xfea8, 255, 0, "\x06\x2e\0" },
+  { 0xfea9, 255, 0, "\x06\x2f\0" },
+  { 0xfeaa, 255, 0, "\x06\x2f\0" },
+  { 0xfeab, 255, 0, "\x06\x30\0" },
+  { 0xfeac, 255, 0, "\x06\x30\0" },
+  { 0xfead, 255, 0, "\x06\x31\0" },
+  { 0xfeae, 255, 0, "\x06\x31\0" },
+  { 0xfeaf, 255, 0, "\x06\x32\0" },
+  { 0xfeb0, 255, 0, "\x06\x32\0" },
+  { 0xfeb1, 255, 0, "\x06\x33\0" },
+  { 0xfeb2, 255, 0, "\x06\x33\0" },
+  { 0xfeb3, 255, 0, "\x06\x33\0" },
+  { 0xfeb4, 255, 0, "\x06\x33\0" },
+  { 0xfeb5, 255, 0, "\x06\x34\0" },
+  { 0xfeb6, 255, 0, "\x06\x34\0" },
+  { 0xfeb7, 255, 0, "\x06\x34\0" },
+  { 0xfeb8, 255, 0, "\x06\x34\0" },
+  { 0xfeb9, 255, 0, "\x06\x35\0" },
+  { 0xfeba, 255, 0, "\x06\x35\0" },
+  { 0xfebb, 255, 0, "\x06\x35\0" },
+  { 0xfebc, 255, 0, "\x06\x35\0" },
+  { 0xfebd, 255, 0, "\x06\x36\0" },
+  { 0xfebe, 255, 0, "\x06\x36\0" },
+  { 0xfebf, 255, 0, "\x06\x36\0" },
+  { 0xfec0, 255, 0, "\x06\x36\0" },
+  { 0xfec1, 255, 0, "\x06\x37\0" },
+  { 0xfec2, 255, 0, "\x06\x37\0" },
+  { 0xfec3, 255, 0, "\x06\x37\0" },
+  { 0xfec4, 255, 0, "\x06\x37\0" },
+  { 0xfec5, 255, 0, "\x06\x38\0" },
+  { 0xfec6, 255, 0, "\x06\x38\0" },
+  { 0xfec7, 255, 0, "\x06\x38\0" },
+  { 0xfec8, 255, 0, "\x06\x38\0" },
+  { 0xfec9, 255, 0, "\x06\x39\0" },
+  { 0xfeca, 255, 0, "\x06\x39\0" },
+  { 0xfecb, 255, 0, "\x06\x39\0" },
+  { 0xfecc, 255, 0, "\x06\x39\0" },
+  { 0xfecd, 255, 0, "\x06\x3a\0" },
+  { 0xfece, 255, 0, "\x06\x3a\0" },
+  { 0xfecf, 255, 0, "\x06\x3a\0" },
+  { 0xfed0, 255, 0, "\x06\x3a\0" },
+  { 0xfed1, 255, 0, "\x06\x41\0" },
+  { 0xfed2, 255, 0, "\x06\x41\0" },
+  { 0xfed3, 255, 0, "\x06\x41\0" },
+  { 0xfed4, 255, 0, "\x06\x41\0" },
+  { 0xfed5, 255, 0, "\x06\x42\0" },
+  { 0xfed6, 255, 0, "\x06\x42\0" },
+  { 0xfed7, 255, 0, "\x06\x42\0" },
+  { 0xfed8, 255, 0, "\x06\x42\0" },
+  { 0xfed9, 255, 0, "\x06\x43\0" },
+  { 0xfeda, 255, 0, "\x06\x43\0" },
+  { 0xfedb, 255, 0, "\x06\x43\0" },
+  { 0xfedc, 255, 0, "\x06\x43\0" },
+  { 0xfedd, 255, 0, "\x06\x44\0" },
+  { 0xfede, 255, 0, "\x06\x44\0" },
+  { 0xfedf, 255, 0, "\x06\x44\0" },
+  { 0xfee0, 255, 0, "\x06\x44\0" },
+  { 0xfee1, 255, 0, "\x06\x45\0" },
+  { 0xfee2, 255, 0, "\x06\x45\0" },
+  { 0xfee3, 255, 0, "\x06\x45\0" },
+  { 0xfee4, 255, 0, "\x06\x45\0" },
+  { 0xfee5, 255, 0, "\x06\x46\0" },
+  { 0xfee6, 255, 0, "\x06\x46\0" },
+  { 0xfee7, 255, 0, "\x06\x46\0" },
+  { 0xfee8, 255, 0, "\x06\x46\0" },
+  { 0xfee9, 255, 0, "\x06\x47\0" },
+  { 0xfeea, 255, 0, "\x06\x47\0" },
+  { 0xfeeb, 255, 0, "\x06\x47\0" },
+  { 0xfeec, 255, 0, "\x06\x47\0" },
+  { 0xfeed, 255, 0, "\x06\x48\0" },
+  { 0xfeee, 255, 0, "\x06\x48\0" },
+  { 0xfeef, 255, 0, "\x06\x49\0" },
+  { 0xfef0, 255, 0, "\x06\x49\0" },
+  { 0xfef1, 255, 0, "\x06\x4a\0" },
+  { 0xfef2, 255, 0, "\x06\x4a\0" },
+  { 0xfef3, 255, 0, "\x06\x4a\0" },
+  { 0xfef4, 255, 0, "\x06\x4a\0" },
+  { 0xfef5, 255, 0, "\x06\x44\x06\x27\x06\x53\0" },
+  { 0xfef6, 255, 0, "\x06\x44\x06\x27\x06\x53\0" },
+  { 0xfef7, 255, 0, "\x06\x44\x06\x27\x06\x54\0" },
+  { 0xfef8, 255, 0, "\x06\x44\x06\x27\x06\x54\0" },
+  { 0xfef9, 255, 0, "\x06\x44\x06\x27\x06\x55\0" },
+  { 0xfefa, 255, 0, "\x06\x44\x06\x27\x06\x55\0" },
+  { 0xfefb, 255, 0, "\x06\x44\x06\x27\0" },
+  { 0xfefc, 255, 0, "\x06\x44\x06\x27\0" },
+  { 0xff01, 255, 0, "\x00\x21\0" },
+  { 0xff02, 255, 0, "\x00\x22\0" },
+  { 0xff03, 255, 0, "\x00\x23\0" },
+  { 0xff04, 255, 0, "\x00\x24\0" },
+  { 0xff05, 255, 0, "\x00\x25\0" },
+  { 0xff06, 255, 0, "\x00\x26\0" },
+  { 0xff07, 255, 0, "\x00\x27\0" },
+  { 0xff08, 255, 0, "\x00\x28\0" },
+  { 0xff09, 255, 0, "\x00\x29\0" },
+  { 0xff0a, 255, 0, "\x00\x2a\0" },
+  { 0xff0b, 255, 0, "\x00\x2b\0" },
+  { 0xff0c, 255, 0, "\x00\x2c\0" },
+  { 0xff0d, 255, 0, "\x00\x2d\0" },
+  { 0xff0e, 255, 0, "\x00\x2e\0" },
+  { 0xff0f, 255, 0, "\x00\x2f\0" },
+  { 0xff10, 255, 0, "\x00\x30\0" },
+  { 0xff11, 255, 0, "\x00\x31\0" },
+  { 0xff12, 255, 0, "\x00\x32\0" },
+  { 0xff13, 255, 0, "\x00\x33\0" },
+  { 0xff14, 255, 0, "\x00\x34\0" },
+  { 0xff15, 255, 0, "\x00\x35\0" },
+  { 0xff16, 255, 0, "\x00\x36\0" },
+  { 0xff17, 255, 0, "\x00\x37\0" },
+  { 0xff18, 255, 0, "\x00\x38\0" },
+  { 0xff19, 255, 0, "\x00\x39\0" },
+  { 0xff1a, 255, 0, "\x00\x3a\0" },
+  { 0xff1b, 255, 0, "\x00\x3b\0" },
+  { 0xff1c, 255, 0, "\x00\x3c\0" },
+  { 0xff1d, 255, 0, "\x00\x3d\0" },
+  { 0xff1e, 255, 0, "\x00\x3e\0" },
+  { 0xff1f, 255, 0, "\x00\x3f\0" },
+  { 0xff20, 255, 0, "\x00\x40\0" },
+  { 0xff21, 255, 0, "\x00\x41\0" },
+  { 0xff22, 255, 0, "\x00\x42\0" },
+  { 0xff23, 255, 0, "\x00\x43\0" },
+  { 0xff24, 255, 0, "\x00\x44\0" },
+  { 0xff25, 255, 0, "\x00\x45\0" },
+  { 0xff26, 255, 0, "\x00\x46\0" },
+  { 0xff27, 255, 0, "\x00\x47\0" },
+  { 0xff28, 255, 0, "\x00\x48\0" },
+  { 0xff29, 255, 0, "\x00\x49\0" },
+  { 0xff2a, 255, 0, "\x00\x4a\0" },
+  { 0xff2b, 255, 0, "\x00\x4b\0" },
+  { 0xff2c, 255, 0, "\x00\x4c\0" },
+  { 0xff2d, 255, 0, "\x00\x4d\0" },
+  { 0xff2e, 255, 0, "\x00\x4e\0" },
+  { 0xff2f, 255, 0, "\x00\x4f\0" },
+  { 0xff30, 255, 0, "\x00\x50\0" },
+  { 0xff31, 255, 0, "\x00\x51\0" },
+  { 0xff32, 255, 0, "\x00\x52\0" },
+  { 0xff33, 255, 0, "\x00\x53\0" },
+  { 0xff34, 255, 0, "\x00\x54\0" },
+  { 0xff35, 255, 0, "\x00\x55\0" },
+  { 0xff36, 255, 0, "\x00\x56\0" },
+  { 0xff37, 255, 0, "\x00\x57\0" },
+  { 0xff38, 255, 0, "\x00\x58\0" },
+  { 0xff39, 255, 0, "\x00\x59\0" },
+  { 0xff3a, 255, 0, "\x00\x5a\0" },
+  { 0xff3b, 255, 0, "\x00\x5b\0" },
+  { 0xff3c, 255, 0, "\x00\x5c\0" },
+  { 0xff3d, 255, 0, "\x00\x5d\0" },
+  { 0xff3e, 255, 0, "\x00\x5e\0" },
+  { 0xff3f, 255, 0, "\x00\x5f\0" },
+  { 0xff40, 255, 0, "\x00\x60\0" },
+  { 0xff41, 255, 0, "\x00\x61\0" },
+  { 0xff42, 255, 0, "\x00\x62\0" },
+  { 0xff43, 255, 0, "\x00\x63\0" },
+  { 0xff44, 255, 0, "\x00\x64\0" },
+  { 0xff45, 255, 0, "\x00\x65\0" },
+  { 0xff46, 255, 0, "\x00\x66\0" },
+  { 0xff47, 255, 0, "\x00\x67\0" },
+  { 0xff48, 255, 0, "\x00\x68\0" },
+  { 0xff49, 255, 0, "\x00\x69\0" },
+  { 0xff4a, 255, 0, "\x00\x6a\0" },
+  { 0xff4b, 255, 0, "\x00\x6b\0" },
+  { 0xff4c, 255, 0, "\x00\x6c\0" },
+  { 0xff4d, 255, 0, "\x00\x6d\0" },
+  { 0xff4e, 255, 0, "\x00\x6e\0" },
+  { 0xff4f, 255, 0, "\x00\x6f\0" },
+  { 0xff50, 255, 0, "\x00\x70\0" },
+  { 0xff51, 255, 0, "\x00\x71\0" },
+  { 0xff52, 255, 0, "\x00\x72\0" },
+  { 0xff53, 255, 0, "\x00\x73\0" },
+  { 0xff54, 255, 0, "\x00\x74\0" },
+  { 0xff55, 255, 0, "\x00\x75\0" },
+  { 0xff56, 255, 0, "\x00\x76\0" },
+  { 0xff57, 255, 0, "\x00\x77\0" },
+  { 0xff58, 255, 0, "\x00\x78\0" },
+  { 0xff59, 255, 0, "\x00\x79\0" },
+  { 0xff5a, 255, 0, "\x00\x7a\0" },
+  { 0xff5b, 255, 0, "\x00\x7b\0" },
+  { 0xff5c, 255, 0, "\x00\x7c\0" },
+  { 0xff5d, 255, 0, "\x00\x7d\0" },
+  { 0xff5e, 255, 0, "\x00\x7e\0" },
+  { 0xff61, 255, 0, "\x30\x02\0" },
+  { 0xff62, 255, 0, "\x30\x0c\0" },
+  { 0xff63, 255, 0, "\x30\x0d\0" },
+  { 0xff64, 255, 0, "\x30\x01\0" },
+  { 0xff65, 255, 0, "\x30\xfb\0" },
+  { 0xff66, 255, 0, "\x30\xf2\0" },
+  { 0xff67, 255, 0, "\x30\xa1\0" },
+  { 0xff68, 255, 0, "\x30\xa3\0" },
+  { 0xff69, 255, 0, "\x30\xa5\0" },
+  { 0xff6a, 255, 0, "\x30\xa7\0" },
+  { 0xff6b, 255, 0, "\x30\xa9\0" },
+  { 0xff6c, 255, 0, "\x30\xe3\0" },
+  { 0xff6d, 255, 0, "\x30\xe5\0" },
+  { 0xff6e, 255, 0, "\x30\xe7\0" },
+  { 0xff6f, 255, 0, "\x30\xc3\0" },
+  { 0xff70, 255, 0, "\x30\xfc\0" },
+  { 0xff71, 255, 0, "\x30\xa2\0" },
+  { 0xff72, 255, 0, "\x30\xa4\0" },
+  { 0xff73, 255, 0, "\x30\xa6\0" },
+  { 0xff74, 255, 0, "\x30\xa8\0" },
+  { 0xff75, 255, 0, "\x30\xaa\0" },
+  { 0xff76, 255, 0, "\x30\xab\0" },
+  { 0xff77, 255, 0, "\x30\xad\0" },
+  { 0xff78, 255, 0, "\x30\xaf\0" },
+  { 0xff79, 255, 0, "\x30\xb1\0" },
+  { 0xff7a, 255, 0, "\x30\xb3\0" },
+  { 0xff7b, 255, 0, "\x30\xb5\0" },
+  { 0xff7c, 255, 0, "\x30\xb7\0" },
+  { 0xff7d, 255, 0, "\x30\xb9\0" },
+  { 0xff7e, 255, 0, "\x30\xbb\0" },
+  { 0xff7f, 255, 0, "\x30\xbd\0" },
+  { 0xff80, 255, 0, "\x30\xbf\0" },
+  { 0xff81, 255, 0, "\x30\xc1\0" },
+  { 0xff82, 255, 0, "\x30\xc4\0" },
+  { 0xff83, 255, 0, "\x30\xc6\0" },
+  { 0xff84, 255, 0, "\x30\xc8\0" },
+  { 0xff85, 255, 0, "\x30\xca\0" },
+  { 0xff86, 255, 0, "\x30\xcb\0" },
+  { 0xff87, 255, 0, "\x30\xcc\0" },
+  { 0xff88, 255, 0, "\x30\xcd\0" },
+  { 0xff89, 255, 0, "\x30\xce\0" },
+  { 0xff8a, 255, 0, "\x30\xcf\0" },
+  { 0xff8b, 255, 0, "\x30\xd2\0" },
+  { 0xff8c, 255, 0, "\x30\xd5\0" },
+  { 0xff8d, 255, 0, "\x30\xd8\0" },
+  { 0xff8e, 255, 0, "\x30\xdb\0" },
+  { 0xff8f, 255, 0, "\x30\xde\0" },
+  { 0xff90, 255, 0, "\x30\xdf\0" },
+  { 0xff91, 255, 0, "\x30\xe0\0" },
+  { 0xff92, 255, 0, "\x30\xe1\0" },
+  { 0xff93, 255, 0, "\x30\xe2\0" },
+  { 0xff94, 255, 0, "\x30\xe4\0" },
+  { 0xff95, 255, 0, "\x30\xe6\0" },
+  { 0xff96, 255, 0, "\x30\xe8\0" },
+  { 0xff97, 255, 0, "\x30\xe9\0" },
+  { 0xff98, 255, 0, "\x30\xea\0" },
+  { 0xff99, 255, 0, "\x30\xeb\0" },
+  { 0xff9a, 255, 0, "\x30\xec\0" },
+  { 0xff9b, 255, 0, "\x30\xed\0" },
+  { 0xff9c, 255, 0, "\x30\xef\0" },
+  { 0xff9d, 255, 0, "\x30\xf3\0" },
+  { 0xff9e, 255, 0, "\x30\x99\0" },
+  { 0xff9f, 255, 0, "\x30\x9a\0" },
+  { 0xffa0, 255, 0, "\x11\x60\0" },
+  { 0xffa1, 255, 0, "\x11\x00\0" },
+  { 0xffa2, 255, 0, "\x11\x01\0" },
+  { 0xffa3, 255, 0, "\x11\xaa\0" },
+  { 0xffa4, 255, 0, "\x11\x02\0" },
+  { 0xffa5, 255, 0, "\x11\xac\0" },
+  { 0xffa6, 255, 0, "\x11\xad\0" },
+  { 0xffa7, 255, 0, "\x11\x03\0" },
+  { 0xffa8, 255, 0, "\x11\x04\0" },
+  { 0xffa9, 255, 0, "\x11\x05\0" },
+  { 0xffaa, 255, 0, "\x11\xb0\0" },
+  { 0xffab, 255, 0, "\x11\xb1\0" },
+  { 0xffac, 255, 0, "\x11\xb2\0" },
+  { 0xffad, 255, 0, "\x11\xb3\0" },
+  { 0xffae, 255, 0, "\x11\xb4\0" },
+  { 0xffaf, 255, 0, "\x11\xb5\0" },
+  { 0xffb0, 255, 0, "\x11\x1a\0" },
+  { 0xffb1, 255, 0, "\x11\x06\0" },
+  { 0xffb2, 255, 0, "\x11\x07\0" },
+  { 0xffb3, 255, 0, "\x11\x08\0" },
+  { 0xffb4, 255, 0, "\x11\x21\0" },
+  { 0xffb5, 255, 0, "\x11\x09\0" },
+  { 0xffb6, 255, 0, "\x11\x0a\0" },
+  { 0xffb7, 255, 0, "\x11\x0b\0" },
+  { 0xffb8, 255, 0, "\x11\x0c\0" },
+  { 0xffb9, 255, 0, "\x11\x0d\0" },
+  { 0xffba, 255, 0, "\x11\x0e\0" },
+  { 0xffbb, 255, 0, "\x11\x0f\0" },
+  { 0xffbc, 255, 0, "\x11\x10\0" },
+  { 0xffbd, 255, 0, "\x11\x11\0" },
+  { 0xffbe, 255, 0, "\x11\x12\0" },
+  { 0xffc2, 255, 0, "\x11\x61\0" },
+  { 0xffc3, 255, 0, "\x11\x62\0" },
+  { 0xffc4, 255, 0, "\x11\x63\0" },
+  { 0xffc5, 255, 0, "\x11\x64\0" },
+  { 0xffc6, 255, 0, "\x11\x65\0" },
+  { 0xffc7, 255, 0, "\x11\x66\0" },
+  { 0xffca, 255, 0, "\x11\x67\0" },
+  { 0xffcb, 255, 0, "\x11\x68\0" },
+  { 0xffcc, 255, 0, "\x11\x69\0" },
+  { 0xffcd, 255, 0, "\x11\x6a\0" },
+  { 0xffce, 255, 0, "\x11\x6b\0" },
+  { 0xffcf, 255, 0, "\x11\x6c\0" },
+  { 0xffd2, 255, 0, "\x11\x6d\0" },
+  { 0xffd3, 255, 0, "\x11\x6e\0" },
+  { 0xffd4, 255, 0, "\x11\x6f\0" },
+  { 0xffd5, 255, 0, "\x11\x70\0" },
+  { 0xffd6, 255, 0, "\x11\x71\0" },
+  { 0xffd7, 255, 0, "\x11\x72\0" },
+  { 0xffda, 255, 0, "\x11\x73\0" },
+  { 0xffdb, 255, 0, "\x11\x74\0" },
+  { 0xffdc, 255, 0, "\x11\x75\0" },
+  { 0xffe0, 255, 0, "\x00\xa2\0" },
+  { 0xffe1, 255, 0, "\x00\xa3\0" },
+  { 0xffe2, 255, 0, "\x00\xac\0" },
+  { 0xffe3, 255, 0, "\x00\x20\x03\x04\0" },
+  { 0xffe4, 255, 0, "\x00\xa6\0" },
+  { 0xffe5, 255, 0, "\x00\xa5\0" },
+  { 0xffe6, 255, 0, "\x20\xa9\0" },
+  { 0xffe8, 255, 0, "\x25\x02\0" },
+  { 0xffe9, 255, 0, "\x21\x90\0" },
+  { 0xffea, 255, 0, "\x21\x91\0" },
+  { 0xffeb, 255, 0, "\x21\x92\0" },
+  { 0xffec, 255, 0, "\x21\x93\0" },
+  { 0xffed, 255, 0, "\x25\xa0\0" },
+  { 0xffee, 255, 0, "\x25\xcb\0" }
 };
 
 #endif /* DECOMP_H */
index 6b706b1..aa2c68a 100644 (file)
@@ -25,8 +25,8 @@
 #include <config.h>
 
 #include <stddef.h>
-
-#define asize(x)  ((sizeof (x)) / sizeof (x[0]))
+#include <string.h>
+#include <locale.h>
 
 #define ATTTABLE(Page, Char) \
   ((attr_table[Page] == 0) ? 0 : (attr_table[Page][Char]))
 
 #define TYPE(Char) (((Char) > (G_UNICODE_LAST_CHAR)) ? G_UNICODE_UNASSIGNED : TTYPE ((Char) >> 8, (Char) & 0xff))
 
-#define ISDIGIT(Type) ((Type) == G_UNICODE_DECIMAL_NUMBER \
-                      || (Type) == G_UNICODE_LETTER_NUMBER \
+#define ISDIGIT(Type) ((Type) == G_UNICODE_DECIMAL_NUMBER      \
+                      || (Type) == G_UNICODE_LETTER_NUMBER     \
                       || (Type) == G_UNICODE_OTHER_NUMBER)
 
-#define ISALPHA(Type) ((Type) == G_UNICODE_LOWERCASE_LETTER \
-                      || (Type) == G_UNICODE_UPPERCASE_LETTER \
-                      || (Type) == G_UNICODE_TITLECASE_LETTER \
-                      || (Type) == G_UNICODE_MODIFIER_LETTER \
+#define ISALPHA(Type) ((Type) == G_UNICODE_LOWERCASE_LETTER    \
+                      || (Type) == G_UNICODE_UPPERCASE_LETTER  \
+                      || (Type) == G_UNICODE_TITLECASE_LETTER  \
+                      || (Type) == G_UNICODE_MODIFIER_LETTER   \
                       || (Type) == G_UNICODE_OTHER_LETTER)
 
+#define ISMARK(Type) ((Type) == G_UNICODE_NON_SPACING_MARK ||  \
+                     (Type) == G_UNICODE_COMBINING_MARK ||     \
+                     (Type) == G_UNICODE_ENCLOSING_MARK)
+                     
+
 /**
  * g_unichar_isalnum:
  * @c: a Unicode character
@@ -270,7 +275,7 @@ gboolean
 g_unichar_istitle (gunichar c)
 {
   unsigned int i;
-  for (i = 0; i < asize (title_table); ++i)
+  for (i = 0; i < G_N_ELEMENTS (title_table); ++i)
     if (title_table[i][0] == c)
       return 1;
   return 0;
@@ -350,11 +355,20 @@ g_unichar_toupper (gunichar c)
 {
   int t = TYPE (c);
   if (t == G_UNICODE_LOWERCASE_LETTER)
-    return ATTTABLE (c >> 8, c & 0xff);
+    {
+      gunichar val = ATTTABLE (c >> 8, c & 0xff);
+      if (val >= 0xd800 && val < 0xdc00)
+       {
+         guchar *p = special_case_table[val - 0xd800];
+         return p[0] * 256 + p[1];
+       }
+      else
+       return val;
+    }
   else if (t == G_UNICODE_TITLECASE_LETTER)
     {
       unsigned int i;
-      for (i = 0; i < asize (title_table); ++i)
+      for (i = 0; i < G_N_ELEMENTS (title_table); ++i)
        {
          if (title_table[i][0] == c)
            return title_table[i][1];
@@ -378,11 +392,20 @@ g_unichar_tolower (gunichar c)
 {
   int t = TYPE (c);
   if (t == G_UNICODE_UPPERCASE_LETTER)
-    return ATTTABLE (c >> 8, c & 0xff);
+    {
+      gunichar val = ATTTABLE (c >> 8, c & 0xff);
+      if (val >= 0xd800 && val < 0xdc00)
+       {
+         guchar *p = special_case_table[val - 0xd800];
+         return p[0] * 256 + p[1];
+       }
+      else
+       return val;
+    }
   else if (t == G_UNICODE_TITLECASE_LETTER)
     {
       unsigned int i;
-      for (i = 0; i < asize (title_table); ++i)
+      for (i = 0; i < G_N_ELEMENTS (title_table); ++i)
        {
          if (title_table[i][0] == c)
            return title_table[i][2];
@@ -405,7 +428,7 @@ gunichar
 g_unichar_totitle (gunichar c)
 {
   unsigned int i;
-  for (i = 0; i < asize (title_table); ++i)
+  for (i = 0; i < G_N_ELEMENTS (title_table); ++i)
     {
       if (title_table[i][0] == c || title_table[i][1] == c
          || title_table[i][2] == c)
@@ -469,3 +492,416 @@ g_unichar_type (gunichar c)
 {
   return TYPE (c);
 }
+
+/*
+ * Case mapping functions
+ */
+
+typedef enum {
+  LOCALE_NORMAL,
+  LOCALE_TURKIC,
+  LOCALE_LITHUANIAN
+} LocaleType;
+
+static LocaleType
+get_locale_type (void)
+{
+  const char *locale = setlocale (LC_CTYPE, NULL);
+
+  switch (locale[0])
+    {
+   case 'a':
+      if (locale[1] == 'z')
+       return LOCALE_TURKIC;
+      break;
+    case 'l':
+      if (locale[1] == 't')
+       return LOCALE_LITHUANIAN;
+      break;
+    case 't':
+      if (locale[1] == 'r')
+       return LOCALE_TURKIC;
+      break;
+    }
+
+  return LOCALE_NORMAL;
+}
+
+static int
+output_marks (const char **p_inout,
+             char        *out_buffer,
+             int          len,
+             gboolean     remove_dot)
+{
+  const char *p = *p_inout;
+  
+  while (*p)
+    {
+      gunichar c = g_utf8_get_char (p);
+      int t = TYPE(c);
+      
+      if (ISMARK(t))
+       {
+         if (!remove_dot || c != 0x307 /* COMBINING DOT ABOVE */)
+           len += g_unichar_to_utf8 (c, out_buffer ? out_buffer + len : NULL);
+         p = g_utf8_next_char (p);
+       }
+      else
+       break;
+    }
+
+  *p_inout = p;
+  return len;
+}
+
+static gsize
+output_special_case (gchar *out_buffer,
+                    gsize  len,
+                    int    index,
+                    int    type,
+                    int    which)
+{
+  guchar *p = special_case_table[index];
+
+  if (type != G_UNICODE_TITLECASE_LETTER)
+    p += 2; /* +2 to skip over "best single match" */
+
+  if (which == 1)
+    {
+      while (p[0] && p[1])
+       p += 2;
+      p += 2;
+    }
+
+  while (TRUE)
+    {
+      gunichar ch = p[0] * 256 + p[1];
+      if (!ch)
+       break;
+
+      len += g_unichar_to_utf8 (ch, out_buffer ? out_buffer + len : NULL);
+      p += 2;
+    }
+
+  return len;
+}
+
+static gsize
+real_toupper (const gchar *str,
+             gchar       *out_buffer,
+             LocaleType   locale_type)
+{
+  const gchar *p = str;
+  const char *last = NULL;
+  gsize len = 0;
+  gboolean last_was_i = FALSE;
+
+  while (*p)
+    {
+      gunichar c = g_utf8_get_char (p);
+      int t = TYPE (c);
+      gunichar val;
+
+      last = p;
+      p = g_utf8_next_char (p);
+
+      if (locale_type == LOCALE_LITHUANIAN)
+       {
+         if (c == 'i')
+           last_was_i = TRUE;
+         else 
+           {
+             if (last_was_i)
+               {
+                 /* Nasty, need to remove any dot above. Though
+                  * I think only E WITH DOT ABOVE occurs in practice
+                  * which could simplify this considerably.
+                  */
+                 gsize decomp_len, i;
+                 gunichar *decomp;
+
+                 decomp = g_unicode_canonical_decomposition (c, &decomp_len);
+                 for (i=0; i < decomp_len; i++)
+                   {
+                     if (decomp[i] != 0x307 /* COMBINING DOT ABOVE */)
+                       len += g_unichar_to_utf8 (g_unichar_toupper (decomp[i]), out_buffer ? out_buffer + len : NULL);
+                   }
+                 g_free (decomp);
+                 
+                 len = output_marks (&p, out_buffer, len, TRUE);
+
+                 continue;
+               }
+
+             if (!ISMARK(t))
+               last_was_i = FALSE;
+           }
+       }
+      
+      if (locale_type == LOCALE_TURKIC && c == 'i')
+       {
+         /* i => LATIN CAPITAL LETTER I WITH DOT ABOVE */
+         len += g_unichar_to_utf8 (0x130, out_buffer ? out_buffer + len : NULL); 
+       }
+      else if (c == 0x0345)    /* COMBINING GREEK YPOGEGRAMMENI */
+       {
+         /* Nasty, need to move it after other combining marks .. this would go away if
+          * we normalized first.
+          */
+         len = output_marks (&p, out_buffer, len, FALSE);
+
+         /* And output as GREEK CAPITAL LETTER IOTA */
+         len += g_unichar_to_utf8 (0x399, out_buffer ? out_buffer + len : NULL);         
+       }
+      else if (t == G_UNICODE_LOWERCASE_LETTER || t == G_UNICODE_TITLECASE_LETTER)
+       {
+         val = ATTTABLE (c >> 8, c & 0xff);
+
+         if (val >= 0xd800 && val < 0xdc00)
+           {
+             len += output_special_case (out_buffer, len, val - 0xd800, t,
+                                         t == G_UNICODE_LOWERCASE_LETTER ? 0 : 1);
+           }
+         else
+           {
+             if (t == G_UNICODE_TITLECASE_LETTER)
+               {
+                 unsigned int i;
+                 for (i = 0; i < G_N_ELEMENTS (title_table); ++i)
+                   {
+                     if (title_table[i][0] == c)
+                       val = title_table[i][1];
+                   }
+               }
+
+             len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL);
+           }
+       }
+      else
+       {
+         gsize char_len = g_utf8_skip[*(guchar *)last];
+
+         if (out_buffer)
+           memcpy (out_buffer + len, last, char_len);
+
+         len += char_len;
+       }
+
+    }
+
+  return len;
+}
+
+/**
+ * g_ut8f_strup:
+ * @string: a UTF-8 encoded string
+ * 
+ * Converts all Unicode characters in the string that have a case
+ * to uppercase. The exact manner that this is done depends
+ * on the current locale, and may result in the number of
+ * characters in the string increasing. (For instance, the
+ * German ess-zet will be changed to SS.)
+ * 
+ * Return value: a newly allocated string, with all characters
+ *    converted to uppercase.  
+ **/
+gchar *
+g_utf8_strup (const gchar *str)
+{
+  gsize len;
+  LocaleType locale_type;
+  gchar *result;
+
+  g_return_val_if_fail (str != NULL, NULL);
+
+  locale_type = get_locale_type ();
+  
+  /*
+   * We use a two pass approach to keep memory management simple
+   */
+  len = real_toupper (str, NULL, locale_type);
+  result = g_malloc (len + 1);
+  real_toupper (str, result, locale_type);
+  result[len] = '\0';
+
+  return result;
+}
+
+static gsize
+real_tolower (const gchar *str,
+             gchar       *out_buffer,
+             LocaleType   locale_type)
+{
+  const gchar *p = str;
+  const char *last = NULL;
+  gsize len = 0;
+
+  while (*p)
+    {
+      gunichar c = g_utf8_get_char (p);
+      int t = TYPE (c);
+      gunichar val;
+
+      last = p;
+      p = g_utf8_next_char (p);
+
+      if (locale_type == LOCALE_TURKIC && c == 'I')
+       {
+         /* I => LATIN SMALL LETTER DOTLESS I */
+         len += g_unichar_to_utf8 (0x131, out_buffer ? out_buffer + len : NULL); 
+       }
+      else if (c == 0x03A3)    /* GREEK CAPITAL LETTER SIGMA */
+       {
+         gunichar next_c = g_utf8_get_char (p);
+         int next_t = TYPE(next_c);
+
+         /* SIGMA mapps differently depending on whether it is
+          * final or not. The following simplified test would
+          * fail in the case of combining marks following the
+          * sigma, but I don't think that occurs in real text.
+          * The test here matches that in ICU.
+          */
+         if (ISALPHA(next_t)) /* Lu,Ll,Lt,Lm,Lo */
+           val = 0x3c3;        /* GREEK SMALL SIGMA */
+         else
+           val = 0x3c2;        /* GREEK SMALL FINAL SIGMA */
+
+         len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL);
+       }
+      else if (t == G_UNICODE_UPPERCASE_LETTER || t == G_UNICODE_TITLECASE_LETTER)
+       {
+         val = ATTTABLE (c >> 8, c & 0xff);
+
+         if (val >= 0xd800 && val < 0xdc00)
+           {
+             len += output_special_case (out_buffer, len, val - 0xd800, t, 0);
+           }
+         else
+           {
+             if (t == G_UNICODE_TITLECASE_LETTER)
+               {
+                 unsigned int i;
+                 for (i = 0; i < G_N_ELEMENTS (title_table); ++i)
+                   {
+                     if (title_table[i][0] == c)
+                       val = title_table[i][2];
+                   }
+               }
+
+             len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL);
+           }
+       }
+      else
+       {
+         gsize char_len = g_utf8_skip[*(guchar *)last];
+
+         if (out_buffer)
+           memcpy (out_buffer + len, last, char_len);
+
+         len += char_len;
+       }
+
+    }
+
+  return len;
+}
+
+/**
+ * g_ut8f_strdown:
+ * @string: a UTF-8 encoded string
+ * 
+ * Converts all Unicode characters in the string that have a case
+ * to lowercase. The exact manner that this is done depends
+ * on the current locale, and may result in the number of
+ * characters in the string changing.
+ * 
+ * Return value: a newly allocated string, with all characters
+ *    converted to lowercase.  
+ **/
+gchar *
+g_utf8_strdown (const gchar *str)
+{
+  gsize len;
+  LocaleType locale_type;
+  gchar *result;
+
+  g_return_val_if_fail (str != NULL, NULL);
+
+  locale_type = get_locale_type ();
+  
+  /*
+   * We use a two pass approach to keep memory management simple
+   */
+  len = real_tolower (str, NULL, locale_type);
+  result = g_malloc (len + 1);
+  real_tolower (str, result, locale_type);
+  result[len] = '\0';
+
+  return result;
+}
+
+/**
+ * g_utf8_casefold:
+ * @str: a UTF-8 encoded string
+ * 
+ * Converts a string into a form that is independent of case. The
+ * result will not correspond to any particular case, but can be
+ * compared for equality or ordered with the results of calling
+ * g_utf8_casefold() on other strings.
+ * 
+ * Note that calling g_utf8_casefold() followed by g_utf8_collate() is
+ * only an approximation to the correct linguistic case insensitive
+ * ordering, though it is a fairly good one. Getting this exactly
+ * right would require a more sophisticated collation function that
+ * takes case sensitivity into account. GLib does not currently
+ * provide such a function.
+ * 
+ * Return value: a newly allocated string, that is a
+ *   case independent form of @str.
+ **/
+gchar *
+g_utf8_casefold (const gchar *str)
+{
+  GString *result = g_string_new (NULL);
+  const char *p;
+  gchar buf[6];
+  int len;
+
+  p = str;
+  while (*p)
+    {
+      gunichar ch = g_utf8_get_char (p);
+
+      int start = 0;
+      int end = G_N_ELEMENTS (casefold_table);
+
+      if (ch >= casefold_table[start].ch &&
+         ch <= casefold_table[end - 1].ch)
+       {
+         while (TRUE)
+           {
+             int half = (start + end) / 2;
+             if (ch == casefold_table[half].ch)
+               {
+                 g_string_append (result, casefold_table[half].data);
+                 goto next;
+               }
+             else if (half == start)
+               break;
+             else if (ch > casefold_table[half].ch)
+               start = half;
+             else
+               end = half;
+           }
+       }
+
+      ch = g_unichar_tolower (ch);
+      len = g_unichar_to_utf8 (ch, buf);
+      g_string_append_len (result, buf, len);
+      
+    next:
+      p = g_utf8_next_char (p);
+    }
+
+  return g_string_free (result, FALSE); 
+}
index 7b0e531..59d6537 100644 (file)
@@ -44,3 +44,6 @@ testgdateparser
 testglib
 timeloop
 timeloop-basic
+unicode-caseconv
+unicode-collate
+unicode-normalize
index d61329d..c8fca88 100644 (file)
@@ -34,39 +34,42 @@ endif
 if ENABLE_TIMELOOP
 timeloop = timeloop
 endif
-noinst_PROGRAMS = testglib testgdate testgdateparser $(timeloop)
+noinst_PROGRAMS = testglib testgdate testgdateparser unicode-normalize unicode-collate $(timeloop)
 testglib_LDADD = $(libglib)
 testgdate_LDADD = $(libglib)
 testgdateparser_LDADD = $(libglib)
+unicode_normalize_LDADD = $(libglib)
+unicode_collate_LDADD = $(libglib)
 if ENABLE_TIMELOOP
 timeloop_LDADD = $(libglib)
 endif
 
-test_programs = \
-       array-test      \
-       $(CXX_TEST)     \
-       date-test       \
-       dirname-test    \
-       gio-test        \
-       hash-test       \
-       iochannel-test  \
-       list-test       \
-       mainloop-test   \
-       module-test     \
-       node-test       \
-       queue-test      \
-       qsort-test      \
-       rand-test       \
-       relation-test   \
-       shell-test      \
-       slist-test      \
-       spawn-test      \
-       strfunc-test    \
-       string-test     \
-       thread-test     \
-       threadpool-test \
-       tree-test       \
-       type-test       \
+test_programs =                                        \
+       array-test                              \
+       $(CXX_TEST)                             \
+       date-test                               \
+       dirname-test                            \
+       gio-test                                \
+       hash-test                               \
+       iochannel-test                          \
+       list-test                               \
+       mainloop-test                           \
+       module-test                             \
+       node-test                               \
+       queue-test                              \
+       qsort-test                              \
+       rand-test                               \
+       relation-test                           \
+       shell-test                              \
+       slist-test                              \
+       spawn-test                              \
+       strfunc-test                            \
+       string-test                             \
+       thread-test                             \
+       threadpool-test                         \
+       tree-test                               \
+       type-test                               \
+       unicode-caseconv                        \
        unicode-encoding
 
 test_scripts = run-markup-tests.sh
@@ -108,6 +111,7 @@ threadpool_test_LDADD = $(thread_LDADD)
 tree_test_LDADD = $(progs_LDADD)
 type_test_LDADD = $(progs_LDADD)
 unicode_encoding_LDADD = $(progs_LDADD)
+unicode_caseconv_LDADD = $(progs_LDADD)
 
 lib_LTLIBRARIES = libmoduletestplugin_a.la libmoduletestplugin_b.la
 
diff --git a/tests/casefold.txt b/tests/casefold.txt
new file mode 100644 (file)
index 0000000..359455b
--- /dev/null
@@ -0,0 +1,796 @@
+# Test cases generated from Unicode 3.1 data
+# by gen-casefold-test.pl. Do not edit.
+#
+# Some special hand crafted tests
+#
+AaBbCc@@       aabbcc@@
+#
+# Now the automatic tests
+#
+A      a
+B      b
+C      c
+D      d
+E      e
+F      f
+G      g
+H      h
+I      i
+J      j
+K      k
+L      l
+M      m
+N      n
+O      o
+P      p
+Q      q
+R      r
+S      s
+T      t
+U      u
+V      v
+W      w
+X      x
+Y      y
+Z      z
+µ     μ
+À     à
+Á     á
+     â
+à    ã
+Ä     ä
+Å     å
+Æ     æ
+Ç     ç
+È     è
+É     é
+Ê     ê
+Ë     ë
+Ì     ì
+Í     í
+Π    î
+Ï     ï
+Р    ð
+Ñ     ñ
+Ò     ò
+Ó     ó
+Ô     ô
+Õ     õ
+Ö     ö
+Ø     ø
+Ù     ù
+Ú     ú
+Û     û
+Ü     ü
+Ý     ý
+Þ     þ
+ß     ss
+Ā     ā
+Ă     ă
+Ą     ą
+Ć     ć
+Ĉ     ĉ
+Ċ     ċ
+Č     č
+Ď     ď
+Đ     đ
+Ē     ē
+Ĕ     ĕ
+Ė     ė
+Ę     ę
+Ě     ě
+Ĝ     ĝ
+Ğ     ğ
+Ġ     ġ
+Ģ     ģ
+Ĥ     ĥ
+Ħ     ħ
+Ĩ     ĩ
+Ī     ī
+Ĭ     ĭ
+Į     į
+İ     i
+ı     i
+IJ     ij
+Ĵ     ĵ
+Ķ     ķ
+Ĺ     ĺ
+Ļ     ļ
+Ľ     ľ
+Ŀ     ŀ
+Ł     ł
+Ń     ń
+Ņ     ņ
+Ň     ň
+ʼn     ʼn
+Ŋ     ŋ
+Ō     ō
+Ŏ     ŏ
+Ő     ő
+Œ     œ
+Ŕ     ŕ
+Ŗ     ŗ
+Ř     ř
+Ś     ś
+Ŝ     ŝ
+Ş     ş
+Š     š
+Ţ     ţ
+Ť     ť
+Ŧ     ŧ
+Ũ     ũ
+Ū     ū
+Ŭ     ŭ
+Ů     ů
+Ű     ű
+Ų     ų
+Ŵ     ŵ
+Ŷ     ŷ
+Ÿ     ÿ
+Ź     ź
+Ż     ż
+Ž     ž
+ſ     s
+Ɓ     ɓ
+Ƃ     ƃ
+Ƅ     ƅ
+Ɔ     ɔ
+Ƈ     ƈ
+Ɖ     ɖ
+Ɗ     ɗ
+Ƌ     ƌ
+Ǝ     ǝ
+Ə     ə
+Ɛ     ɛ
+Ƒ     ƒ
+Ɠ     ɠ
+Ɣ     ɣ
+Ɩ     ɩ
+Ɨ     ɨ
+Ƙ     ƙ
+Ɯ     ɯ
+Ɲ     ɲ
+Ɵ     ɵ
+Ơ     ơ
+Ƣ     ƣ
+Ƥ     ƥ
+Ʀ     ʀ
+Ƨ     ƨ
+Ʃ     ʃ
+Ƭ     ƭ
+Ʈ     ʈ
+Ư     ư
+Ʊ     ʊ
+Ʋ     ʋ
+Ƴ     ƴ
+Ƶ     ƶ
+Ʒ     ʒ
+Ƹ     ƹ
+Ƽ     ƽ
+DŽ     dž
+Dž     dž
+LJ     lj
+Lj     lj
+NJ     nj
+Nj     nj
+Ǎ     ǎ
+Ǐ     ǐ
+Ǒ     ǒ
+Ǔ     ǔ
+Ǖ     ǖ
+Ǘ     ǘ
+Ǚ     ǚ
+Ǜ     ǜ
+Ǟ     ǟ
+Ǡ     ǡ
+Ǣ     ǣ
+Ǥ     ǥ
+Ǧ     ǧ
+Ǩ     ǩ
+Ǫ     ǫ
+Ǭ     ǭ
+Ǯ     ǯ
+ǰ     ǰ
+DZ     dz
+Dz     dz
+Ǵ     ǵ
+Ƕ     ƕ
+Ƿ     ƿ
+Ǹ     ǹ
+Ǻ     ǻ
+Ǽ     ǽ
+Ǿ     ǿ
+Ȁ     ȁ
+Ȃ     ȃ
+Ȅ     ȅ
+Ȇ     ȇ
+Ȉ     ȉ
+Ȋ     ȋ
+Ȍ     ȍ
+Ȏ     ȏ
+Ȑ     ȑ
+Ȓ     ȓ
+Ȕ     ȕ
+Ȗ     ȗ
+Ș     ș
+Ț     ț
+Ȝ     ȝ
+Ȟ     ȟ
+Ȣ     ȣ
+Ȥ     ȥ
+Ȧ     ȧ
+Ȩ     ȩ
+Ȫ     ȫ
+Ȭ     ȭ
+Ȯ     ȯ
+Ȱ     ȱ
+Ȳ     ȳ
+ͅ     ι
+Ά     ά
+Έ     έ
+Ή     ή
+Ί     ί
+Ό     ό
+Ύ     ύ
+Ώ     ώ
+ΐ     ΐ
+Α     α
+Β     β
+Γ     γ
+Δ     δ
+Ε     ε
+Ζ     ζ
+Η     η
+Θ     θ
+Ι     ι
+Κ     κ
+Λ     λ
+Μ     μ
+Ν     ν
+Ξ     ξ
+Ο     ο
+Π     π
+Ρ     ρ
+Σ     σ
+Τ     τ
+Υ     υ
+Φ     φ
+Χ     χ
+Ψ     ψ
+Ω     ω
+Ϊ     ϊ
+Ϋ     ϋ
+ΰ     ΰ
+ς     σ
+ϐ     β
+ϑ     θ
+ϕ     φ
+ϖ     π
+Ϛ     ϛ
+Ϝ     ϝ
+Ϟ     ϟ
+Ϡ     ϡ
+Ϣ     ϣ
+Ϥ     ϥ
+Ϧ     ϧ
+Ϩ     ϩ
+Ϫ     ϫ
+Ϭ     ϭ
+Ϯ     ϯ
+ϰ     κ
+ϱ     ρ
+ϲ     σ
+ϴ     θ
+ϵ     ε
+Ѐ     ѐ
+Ё     ё
+Ђ     ђ
+Ѓ     ѓ
+Є     є
+Ѕ     ѕ
+І     і
+Ї     ї
+Ј     ј
+Љ     љ
+Њ     њ
+Ћ     ћ
+Ќ     ќ
+Ѝ     ѝ
+Ў     ў
+Џ     џ
+А     а
+Б     б
+В     в
+Г     г
+Д     д
+Е     е
+Ж     ж
+З     з
+И     и
+Й     й
+К     к
+Л     л
+М     м
+Н     н
+О     о
+П     п
+Р     р
+С     с
+Т     т
+У     у
+Ф     ф
+Х     х
+Ц     ц
+Ч     ч
+Ш     ш
+Щ     щ
+Ъ     ъ
+Ы     ы
+Ь     ь
+Э     э
+Ю     ю
+Я     я
+Ѡ     ѡ
+Ѣ     ѣ
+Ѥ     ѥ
+Ѧ     ѧ
+Ѩ     ѩ
+Ѫ     ѫ
+Ѭ     ѭ
+Ѯ     ѯ
+Ѱ     ѱ
+Ѳ     ѳ
+Ѵ     ѵ
+Ѷ     ѷ
+Ѹ     ѹ
+Ѻ     ѻ
+Ѽ     ѽ
+Ѿ     ѿ
+Ҁ     ҁ
+Ҍ     ҍ
+Ҏ     ҏ
+Ґ     ґ
+Ғ     ғ
+Ҕ     ҕ
+Җ     җ
+Ҙ     ҙ
+Қ     қ
+Ҝ     ҝ
+Ҟ     ҟ
+Ҡ     ҡ
+Ң     ң
+Ҥ     ҥ
+Ҧ     ҧ
+Ҩ     ҩ
+Ҫ     ҫ
+Ҭ     ҭ
+Ү     ү
+Ұ     ұ
+Ҳ     ҳ
+Ҵ     ҵ
+Ҷ     ҷ
+Ҹ     ҹ
+Һ     һ
+Ҽ     ҽ
+Ҿ     ҿ
+Ӂ     ӂ
+Ӄ     ӄ
+Ӈ     ӈ
+Ӌ     ӌ
+Ӑ     ӑ
+Ӓ     ӓ
+Ӕ     ӕ
+Ӗ     ӗ
+Ә     ә
+Ӛ     ӛ
+Ӝ     ӝ
+Ӟ     ӟ
+Ӡ     ӡ
+Ӣ     ӣ
+Ӥ     ӥ
+Ӧ     ӧ
+Ө     ө
+Ӫ     ӫ
+Ӭ     ӭ
+Ӯ     ӯ
+Ӱ     ӱ
+Ӳ     ӳ
+Ӵ     ӵ
+Ӹ     ӹ
+Ա     ա
+Բ     բ
+Գ     գ
+Դ     դ
+Ե     ե
+Զ     զ
+Է     է
+Ը     ը
+Թ     թ
+Ժ     ժ
+Ի     ի
+Լ     լ
+Խ     խ
+Ծ     ծ
+Կ     կ
+Հ     հ
+Ձ     ձ
+Ղ     ղ
+Ճ     ճ
+Մ     մ
+Յ     յ
+Ն     ն
+Շ     շ
+Ո     ո
+Չ     չ
+Պ     պ
+Ջ     ջ
+Ռ     ռ
+Ս     ս
+Վ     վ
+Տ     տ
+Ր     ր
+Ց     ց
+Ւ     ւ
+Փ     փ
+Ք     ք
+Օ     օ
+Ֆ     ֆ
+և     եւ
+Ḁ    ḁ
+Ḃ    ḃ
+Ḅ    ḅ
+Ḇ    ḇ
+Ḉ    ḉ
+Ḋ    ḋ
+Ḍ    ḍ
+Ḏ    ḏ
+Ḑ    ḑ
+Ḓ    ḓ
+Ḕ    ḕ
+Ḗ    ḗ
+Ḙ    ḙ
+Ḛ    ḛ
+Ḝ    ḝ
+Ḟ    ḟ
+Ḡ    ḡ
+Ḣ    ḣ
+Ḥ    ḥ
+Ḧ    ḧ
+Ḩ    ḩ
+Ḫ    ḫ
+Ḭ    ḭ
+Ḯ    ḯ
+Ḱ    ḱ
+Ḳ    ḳ
+Ḵ    ḵ
+Ḷ    ḷ
+Ḹ    ḹ
+Ḻ    ḻ
+Ḽ    ḽ
+Ḿ    ḿ
+Ṁ    ṁ
+Ṃ    ṃ
+Ṅ    ṅ
+Ṇ    ṇ
+Ṉ    ṉ
+Ṋ    ṋ
+Ṍ    ṍ
+Ṏ    ṏ
+Ṑ    ṑ
+Ṓ    ṓ
+Ṕ    ṕ
+Ṗ    ṗ
+Ṙ    ṙ
+Ṛ    ṛ
+Ṝ    ṝ
+Ṟ    ṟ
+Ṡ    ṡ
+Ṣ    ṣ
+Ṥ    ṥ
+Ṧ    ṧ
+Ṩ    ṩ
+Ṫ    ṫ
+Ṭ    ṭ
+Ṯ    ṯ
+Ṱ    ṱ
+Ṳ    ṳ
+Ṵ    ṵ
+Ṷ    ṷ
+Ṹ    ṹ
+Ṻ    ṻ
+Ṽ    ṽ
+Ṿ    ṿ
+Ẁ    ẁ
+Ẃ    ẃ
+Ẅ    ẅ
+Ẇ    ẇ
+Ẉ    ẉ
+Ẋ    ẋ
+Ẍ    ẍ
+Ẏ    ẏ
+Ẑ    ẑ
+Ẓ    ẓ
+Ẕ    ẕ
+ẖ    ẖ
+ẗ    ẗ
+ẘ    ẘ
+ẙ    ẙ
+ẚ    aʾ
+ẛ    ṡ
+Ạ    ạ
+Ả    ả
+Ấ    ấ
+Ầ    ầ
+Ẩ    ẩ
+Ẫ    ẫ
+Ậ    ậ
+Ắ    ắ
+Ằ    ằ
+Ẳ    ẳ
+Ẵ    ẵ
+Ặ    ặ
+Ẹ    ẹ
+Ẻ    ẻ
+Ẽ    ẽ
+Ế    ế
+Ề    ề
+Ể    ể
+Ễ    ễ
+Ệ    ệ
+Ỉ    ỉ
+Ị    ị
+Ọ    ọ
+Ỏ    ỏ
+Ố    ố
+Ồ    ồ
+Ổ    ổ
+Ỗ    ỗ
+Ộ    ộ
+Ớ    ớ
+Ờ    ờ
+Ở    ở
+Ỡ    ỡ
+Ợ    ợ
+Ụ    ụ
+Ủ    ủ
+Ứ    ứ
+Ừ    ừ
+Ử    ử
+Ữ    ữ
+Ự    ự
+Ỳ    ỳ
+Ỵ    ỵ
+Ỷ    ỷ
+Ỹ    ỹ
+Ἀ    ἀ
+Ἁ    ἁ
+Ἂ    ἂ
+Ἃ    ἃ
+Ἄ    ἄ
+Ἅ    ἅ
+Ἆ    ἆ
+Ἇ    ἇ
+Ἐ    ἐ
+Ἑ    ἑ
+Ἒ    ἒ
+Ἓ    ἓ
+Ἔ    ἔ
+Ἕ    ἕ
+Ἠ    ἠ
+Ἡ    ἡ
+Ἢ    ἢ
+Ἣ    ἣ
+Ἤ    ἤ
+Ἥ    ἥ
+Ἦ    ἦ
+Ἧ    ἧ
+Ἰ    ἰ
+Ἱ    ἱ
+Ἲ    ἲ
+Ἳ    ἳ
+Ἴ    ἴ
+Ἵ    ἵ
+Ἶ    ἶ
+Ἷ    ἷ
+Ὀ    ὀ
+Ὁ    ὁ
+Ὂ    ὂ
+Ὃ    ὃ
+Ὄ    ὄ
+Ὅ    ὅ
+ὐ    ὐ
+ὒ    ὒ
+ὔ    ὔ
+ὖ    ὖ
+Ὑ    ὑ
+Ὓ    ὓ
+Ὕ    ὕ
+Ὗ    ὗ
+Ὠ    ὠ
+Ὡ    ὡ
+Ὢ    ὢ
+Ὣ    ὣ
+Ὤ    ὤ
+Ὥ    ὥ
+Ὦ    ὦ
+Ὧ    ὧ
+ᾀ    ἀι
+ᾁ    ἁι
+ᾂ    ἂι
+ᾃ    ἃι
+ᾄ    ἄι
+ᾅ    ἅι
+ᾆ    ἆι
+ᾇ    ἇι
+ᾈ    ἀι
+ᾉ    ἁι
+ᾊ    ἂι
+ᾋ    ἃι
+ᾌ    ἄι
+ᾍ    ἅι
+ᾎ    ἆι
+ᾏ    ἇι
+ᾐ    ἠι
+ᾑ    ἡι
+ᾒ    ἢι
+ᾓ    ἣι
+ᾔ    ἤι
+ᾕ    ἥι
+ᾖ    ἦι
+ᾗ    ἧι
+ᾘ    ἠι
+ᾙ    ἡι
+ᾚ    ἢι
+ᾛ    ἣι
+ᾜ    ἤι
+ᾝ    ἥι
+ᾞ    ἦι
+ᾟ    ἧι
+ᾠ    ὠι
+ᾡ    ὡι
+ᾢ    ὢι
+ᾣ    ὣι
+ᾤ    ὤι
+ᾥ    ὥι
+ᾦ    ὦι
+ᾧ    ὧι
+ᾨ    ὠι
+ᾩ    ὡι
+ᾪ    ὢι
+ᾫ    ὣι
+ᾬ    ὤι
+ᾭ    ὥι
+ᾮ    ὦι
+ᾯ    ὧι
+ᾲ    ὰι
+ᾳ    αι
+ᾴ    άι
+ᾶ    ᾶ
+ᾷ    ᾶι
+Ᾰ    ᾰ
+Ᾱ    ᾱ
+Ὰ    ὰ
+Ά    ά
+ᾼ    αι
+ι    ι
+ῂ    ὴι
+ῃ    ηι
+ῄ    ήι
+ῆ    ῆ
+ῇ    ῆι
+Ὲ    ὲ
+Έ    έ
+Ὴ    ὴ
+Ή    ή
+ῌ    ηι
+ῒ    ῒ
+ΐ    ΐ
+ῖ    ῖ
+ῗ    ῗ
+Ῐ    ῐ
+Ῑ    ῑ
+Ὶ    ὶ
+Ί    ί
+ῢ    ῢ
+ΰ    ΰ
+ῤ    ῤ
+ῦ    ῦ
+ῧ    ῧ
+Ῠ    ῠ
+Ῡ    ῡ
+Ὺ    ὺ
+Ύ    ύ
+Ῥ    ῥ
+ῲ    ὼι
+ῳ    ωι
+ῴ    ώι
+ῶ    ῶ
+ῷ    ῶι
+Ὸ    ὸ
+Ό    ό
+Ὼ    ὼ
+Ώ    ώ
+ῼ    ωι
+Ω    ω
+K    k
+Å    å
+Ⅰ    ⅰ
+Ⅱ    ⅱ
+Ⅲ    ⅲ
+Ⅳ    ⅳ
+Ⅴ    ⅴ
+Ⅵ    ⅵ
+Ⅶ    ⅶ
+Ⅷ    ⅷ
+Ⅸ    ⅸ
+Ⅹ    ⅹ
+Ⅺ    ⅺ
+Ⅻ    ⅻ
+Ⅼ    ⅼ
+Ⅽ    ⅽ
+Ⅾ    ⅾ
+Ⅿ    ⅿ
+Ⓐ    ⓐ
+Ⓑ    ⓑ
+Ⓒ    ⓒ
+Ⓓ    ⓓ
+Ⓔ    ⓔ
+Ⓕ    ⓕ
+Ⓖ    ⓖ
+Ⓗ    ⓗ
+Ⓘ    ⓘ
+Ⓙ    ⓙ
+Ⓚ    ⓚ
+Ⓛ    ⓛ
+Ⓜ    ⓜ
+Ⓝ    ⓝ
+Ⓞ    ⓞ
+Ⓟ    ⓟ
+Ⓠ    ⓠ
+Ⓡ    ⓡ
+Ⓢ    ⓢ
+Ⓣ    ⓣ
+Ⓤ    ⓤ
+Ⓥ    ⓥ
+Ⓦ    ⓦ
+Ⓧ    ⓧ
+Ⓨ    ⓨ
+Ⓩ    ⓩ
+ff    ff
+fi    fi
+fl    fl
+ffi    ffi
+ffl    ffl
+ſt    st
+st    st
+ﬓ    մն
+ﬔ    մե
+ﬕ    մի
+ﬖ    վն
+ﬗ    մխ
+A    a
+B    b
+C    c
+D    d
+E    e
+F    f
+G    g
+H    h
+I    i
+J    j
+K    k
+L    l
+M    m
+N    n
+O    o
+P    p
+Q    q
+R    r
+S    s
+T    t
+U    u
+V    v
+W    w
+X    x
+Y    y
+Z    z
diff --git a/tests/casemap.txt b/tests/casemap.txt
new file mode 100644 (file)
index 0000000..f579dd2
--- /dev/null
@@ -0,0 +1,1543 @@
+# Test cases generated from Unicode 3.1 data
+# by gen-case-tests.pl. Do not edit.
+#
+# Some special hand crafted tests
+#
+tr_TR  i       i       İ      İ      # i => LATIN CAPITAL LETTER I WITH DOT ABOVE
+tr_TR  I       ı      I       I       # I => LATIN SMALL LETTER DOTLESS I
+# Test reordering of YPOGEGRAMMENI across other accents
+       ᾁ  ᾁ  ᾉ  ἉΙ  
+       ᾁ  ᾁ  ᾉ  ἉΙ  
+# Handling of final and nonfinal sigma
+       ΜΆΙΟΣ      μάιος      Μάιος      ΜΆΙΟΣ      
+       ΜΆΙΟΣ      μάιος      Μάιος      ΜΆΙΟΣ      
+       ΣΙΓΜΑ      σιγμα      Σιγμα      ΣΙΓΜΑ      
+# Lithuanian rule of i followed by letter with dot. Not at all sure
+# about the titlecase part here
+lt_LT  iė     iė     Ie      IE      
+lt_LT  iė    iė    Ie      IE      
+#
+# Now the automatic tests
+#
+       A       a               A       #   41
+       B       b               B       #   42
+       C       c               C       #   43
+       D       d               D       #   44
+       E       e               E       #   45
+       F       f               F       #   46
+       G       g               G       #   47
+       H       h               H       #   48
+       I       i               I       #   49
+       J       j               J       #   4A
+       K       k               K       #   4B
+       L       l               L       #   4C
+       M       m               M       #   4D
+       N       n               N       #   4E
+       O       o               O       #   4F
+       P       p               P       #   50
+       Q       q               Q       #   51
+       R       r               R       #   52
+       S       s               S       #   53
+       T       t               T       #   54
+       U       u               U       #   55
+       V       v               V       #   56
+       W       w               W       #   57
+       X       x               X       #   58
+       Y       y               Y       #   59
+       Z       z               Z       #   5A
+       a       a       A       A       #   61
+       b       b       B       B       #   62
+       c       c       C       C       #   63
+       d       d       D       D       #   64
+       e       e       E       E       #   65
+       f       f       F       F       #   66
+       g       g       G       G       #   67
+       h       h       H       H       #   68
+       i       i       I       I       #   69
+       j       j       J       J       #   6A
+       k       k       K       K       #   6B
+       l       l       L       L       #   6C
+       m       m       M       M       #   6D
+       n       n       N       N       #   6E
+       o       o       O       O       #   6F
+       p       p       P       P       #   70
+       q       q       Q       Q       #   71
+       r       r       R       R       #   72
+       s       s       S       S       #   73
+       t       t       T       T       #   74
+       u       u       U       U       #   75
+       v       v       V       V       #   76
+       w       w       W       W       #   77
+       x       x       X       X       #   78
+       y       y       Y       Y       #   79
+       z       z       Z       Z       #   7A
+       ª      ª                      #   AA
+       µ      µ      Μ      Μ      #   B5
+       º      º                      #   BA
+       À      à              À      #   C0
+       Á      á              Á      #   C1
+       Â      â              Â      #   C2
+       Ã      ã              Ã      #   C3
+       Ä      ä              Ä      #   C4
+       Å      å              Å      #   C5
+       Æ      æ              Æ      #   C6
+       Ç      ç              Ç      #   C7
+       È      è              È      #   C8
+       É      é              É      #   C9
+       Ê      ê              Ê      #   CA
+       Ë      ë              Ë      #   CB
+       Ì      ì              Ì      #   CC
+       Í      í              Í      #   CD
+       Î      î              Î      #   CE
+       Ï      ï              Ï      #   CF
+       Ð      ð              Ð      #   D0
+       Ñ      ñ              Ñ      #   D1
+       Ò      ò              Ò      #   D2
+       Ó      ó              Ó      #   D3
+       Ô      ô              Ô      #   D4
+       Õ      õ              Õ      #   D5
+       Ö      ö              Ö      #   D6
+       Ø      ø              Ø      #   D8
+       Ù      ù              Ù      #   D9
+       Ú      ú              Ú      #   DA
+       Û      û              Û      #   DB
+       Ü      ü              Ü      #   DC
+       Ý      ý              Ý      #   DD
+       Þ      þ              Þ      #   DE
+       ß      ß      Ss      SS      #   DF
+       à      à      À      À      #   E0
+       á      á      Á      Á      #   E1
+       â      â      Â      Â      #   E2
+       ã      ã      Ã      Ã      #   E3
+       ä      ä      Ä      Ä      #   E4
+       å      å      Å      Å      #   E5
+       æ      æ      Æ      Æ      #   E6
+       ç      ç      Ç      Ç      #   E7
+       è      è      È      È      #   E8
+       é      é      É      É      #   E9
+       ê      ê      Ê      Ê      #   EA
+       ë      ë      Ë      Ë      #   EB
+       ì      ì      Ì      Ì      #   EC
+       í      í      Í      Í      #   ED
+       î      î      Î      Î      #   EE
+       ï      ï      Ï      Ï      #   EF
+       ð      ð      Ð      Ð      #   F0
+       ñ      ñ      Ñ      Ñ      #   F1
+       ò      ò      Ò      Ò      #   F2
+       ó      ó      Ó      Ó      #   F3
+       ô      ô      Ô      Ô      #   F4
+       õ      õ      Õ      Õ      #   F5
+       ö      ö      Ö      Ö      #   F6
+       ø      ø      Ø      Ø      #   F8
+       ù      ù      Ù      Ù      #   F9
+       ú      ú      Ú      Ú      #   FA
+       û      û      Û      Û      #   FB
+       ü      ü      Ü      Ü      #   FC
+       ý      ý      Ý      Ý      #   FD
+       þ      þ      Þ      Þ      #   FE
+       ÿ      ÿ      Ÿ      Ÿ      #   FF
+       Ā      ā              Ā      #  100
+       ā      ā      Ā      Ā      #  101
+       Ă      ă              Ă      #  102
+       ă      ă      Ă      Ă      #  103
+       Ą      ą              Ą      #  104
+       ą      ą      Ą      Ą      #  105
+       Ć      ć              Ć      #  106
+       ć      ć      Ć      Ć      #  107
+       Ĉ      ĉ              Ĉ      #  108
+       ĉ      ĉ      Ĉ      Ĉ      #  109
+       Ċ      ċ              Ċ      #  10A
+       ċ      ċ      Ċ      Ċ      #  10B
+       Č      č              Č      #  10C
+       č      č      Č      Č      #  10D
+       Ď      ď              Ď      #  10E
+       ď      ď      Ď      Ď      #  10F
+       Đ      đ              Đ      #  110
+       đ      đ      Đ      Đ      #  111
+       Ē      ē              Ē      #  112
+       ē      ē      Ē      Ē      #  113
+       Ĕ      ĕ              Ĕ      #  114
+       ĕ      ĕ      Ĕ      Ĕ      #  115
+       Ė      ė              Ė      #  116
+       ė      ė      Ė      Ė      #  117
+       Ę      ę              Ę      #  118
+       ę      ę      Ę      Ę      #  119
+       Ě      ě              Ě      #  11A
+       ě      ě      Ě      Ě      #  11B
+       Ĝ      ĝ              Ĝ      #  11C
+       ĝ      ĝ      Ĝ      Ĝ      #  11D
+       Ğ      ğ              Ğ      #  11E
+       ğ      ğ      Ğ      Ğ      #  11F
+       Ġ      ġ              Ġ      #  120
+       ġ      ġ      Ġ      Ġ      #  121
+       Ģ      ģ              Ģ      #  122
+       ģ      ģ      Ģ      Ģ      #  123
+       Ĥ      ĥ              Ĥ      #  124
+       ĥ      ĥ      Ĥ      Ĥ      #  125
+       Ħ      ħ              Ħ      #  126
+       ħ      ħ      Ħ      Ħ      #  127
+       Ĩ      ĩ              Ĩ      #  128
+       ĩ      ĩ      Ĩ      Ĩ      #  129
+       Ī      ī              Ī      #  12A
+       ī      ī      Ī      Ī      #  12B
+       Ĭ      ĭ              Ĭ      #  12C
+       ĭ      ĭ      Ĭ      Ĭ      #  12D
+       Į      į              Į      #  12E
+       į      į      Į      Į      #  12F
+       İ      i               İ      #  130
+       ı      ı      I       I       #  131
+       IJ      ij              IJ      #  132
+       ij      ij      IJ      IJ      #  133
+       Ĵ      ĵ              Ĵ      #  134
+       ĵ      ĵ      Ĵ      Ĵ      #  135
+       Ķ      ķ              Ķ      #  136
+       ķ      ķ      Ķ      Ķ      #  137
+       ĸ      ĸ                      #  138
+       Ĺ      ĺ              Ĺ      #  139
+       ĺ      ĺ      Ĺ      Ĺ      #  13A
+       Ļ      ļ              Ļ      #  13B
+       ļ      ļ      Ļ      Ļ      #  13C
+       Ľ      ľ              Ľ      #  13D
+       ľ      ľ      Ľ      Ľ      #  13E
+       Ŀ      ŀ              Ŀ      #  13F
+       ŀ      ŀ      Ŀ      Ŀ      #  140
+       Ł      ł              Ł      #  141
+       ł      ł      Ł      Ł      #  142
+       Ń      ń              Ń      #  143
+       ń      ń      Ń      Ń      #  144
+       Ņ      ņ              Ņ      #  145
+       ņ      ņ      Ņ      Ņ      #  146
+       Ň      ň              Ň      #  147
+       ň      ň      Ň      Ň      #  148
+       ʼn      ʼn      ʼN     ʼN     #  149
+       Ŋ      ŋ              Ŋ      #  14A
+       ŋ      ŋ      Ŋ      Ŋ      #  14B
+       Ō      ō              Ō      #  14C
+       ō      ō      Ō      Ō      #  14D
+       Ŏ      ŏ              Ŏ      #  14E
+       ŏ      ŏ      Ŏ      Ŏ      #  14F
+       Ő      ő              Ő      #  150
+       ő      ő      Ő      Ő      #  151
+       Œ      œ              Œ      #  152
+       œ      œ      Œ      Œ      #  153
+       Ŕ      ŕ              Ŕ      #  154
+       ŕ      ŕ      Ŕ      Ŕ      #  155
+       Ŗ      ŗ              Ŗ      #  156
+       ŗ      ŗ      Ŗ      Ŗ      #  157
+       Ř      ř              Ř      #  158
+       ř      ř      Ř      Ř      #  159
+       Ś      ś              Ś      #  15A
+       ś      ś      Ś      Ś      #  15B
+       Ŝ      ŝ              Ŝ      #  15C
+       ŝ      ŝ      Ŝ      Ŝ      #  15D
+       Ş      ş              Ş      #  15E
+       ş      ş      Ş      Ş      #  15F
+       Š      š              Š      #  160
+       š      š      Š      Š      #  161
+       Ţ      ţ              Ţ      #  162
+       ţ      ţ      Ţ      Ţ      #  163
+       Ť      ť              Ť      #  164
+       ť      ť      Ť      Ť      #  165
+       Ŧ      ŧ              Ŧ      #  166
+       ŧ      ŧ      Ŧ      Ŧ      #  167
+       Ũ      ũ              Ũ      #  168
+       ũ      ũ      Ũ      Ũ      #  169
+       Ū      ū              Ū      #  16A
+       ū      ū      Ū      Ū      #  16B
+       Ŭ      ŭ              Ŭ      #  16C
+       ŭ      ŭ      Ŭ      Ŭ      #  16D
+       Ů      ů              Ů      #  16E
+       ů      ů      Ů      Ů      #  16F
+       Ű      ű              Ű      #  170
+       ű      ű      Ű      Ű      #  171
+       Ų      ų              Ų      #  172
+       ų      ų      Ų      Ų      #  173
+       Ŵ      ŵ              Ŵ      #  174
+       ŵ      ŵ      Ŵ      Ŵ      #  175
+       Ŷ      ŷ              Ŷ      #  176
+       ŷ      ŷ      Ŷ      Ŷ      #  177
+       Ÿ      ÿ              Ÿ      #  178
+       Ź      ź              Ź      #  179
+       ź      ź      Ź      Ź      #  17A
+       Ż      ż              Ż      #  17B
+       ż      ż      Ż      Ż      #  17C
+       Ž      ž              Ž      #  17D
+       ž      ž      Ž      Ž      #  17E
+       ſ      ſ      S       S       #  17F
+       ƀ      ƀ                      #  180
+       Ɓ      ɓ              Ɓ      #  181
+       Ƃ      ƃ              Ƃ      #  182
+       ƃ      ƃ      Ƃ      Ƃ      #  183
+       Ƅ      ƅ              Ƅ      #  184
+       ƅ      ƅ      Ƅ      Ƅ      #  185
+       Ɔ      ɔ              Ɔ      #  186
+       Ƈ      ƈ              Ƈ      #  187
+       ƈ      ƈ      Ƈ      Ƈ      #  188
+       Ɖ      ɖ              Ɖ      #  189
+       Ɗ      ɗ              Ɗ      #  18A
+       Ƌ      ƌ              Ƌ      #  18B
+       ƌ      ƌ      Ƌ      Ƌ      #  18C
+       ƍ      ƍ                      #  18D
+       Ǝ      ǝ              Ǝ      #  18E
+       Ə      ə              Ə      #  18F
+       Ɛ      ɛ              Ɛ      #  190
+       Ƒ      ƒ              Ƒ      #  191
+       ƒ      ƒ      Ƒ      Ƒ      #  192
+       Ɠ      ɠ              Ɠ      #  193
+       Ɣ      ɣ              Ɣ      #  194
+       ƕ      ƕ      Ƕ      Ƕ      #  195
+       Ɩ      ɩ              Ɩ      #  196
+       Ɨ      ɨ              Ɨ      #  197
+       Ƙ      ƙ              Ƙ      #  198
+       ƙ      ƙ      Ƙ      Ƙ      #  199
+       ƚ      ƚ                      #  19A
+       ƛ      ƛ                      #  19B
+       Ɯ      ɯ              Ɯ      #  19C
+       Ɲ      ɲ              Ɲ      #  19D
+       ƞ      ƞ                      #  19E
+       Ɵ      ɵ              Ɵ      #  19F
+       Ơ      ơ              Ơ      #  1A0
+       ơ      ơ      Ơ      Ơ      #  1A1
+       Ƣ      ƣ              Ƣ      #  1A2
+       ƣ      ƣ      Ƣ      Ƣ      #  1A3
+       Ƥ      ƥ              Ƥ      #  1A4
+       ƥ      ƥ      Ƥ      Ƥ      #  1A5
+       Ʀ      ʀ              Ʀ      #  1A6
+       Ƨ      ƨ              Ƨ      #  1A7
+       ƨ      ƨ      Ƨ      Ƨ      #  1A8
+       Ʃ      ʃ              Ʃ      #  1A9
+       ƪ      ƪ                      #  1AA
+       ƫ      ƫ                      #  1AB
+       Ƭ      ƭ              Ƭ      #  1AC
+       ƭ      ƭ      Ƭ      Ƭ      #  1AD
+       Ʈ      ʈ              Ʈ      #  1AE
+       Ư      ư              Ư      #  1AF
+       ư      ư      Ư      Ư      #  1B0
+       Ʊ      ʊ              Ʊ      #  1B1
+       Ʋ      ʋ              Ʋ      #  1B2
+       Ƴ      ƴ              Ƴ      #  1B3
+       ƴ      ƴ      Ƴ      Ƴ      #  1B4
+       Ƶ      ƶ              Ƶ      #  1B5
+       ƶ      ƶ      Ƶ      Ƶ      #  1B6
+       Ʒ      ʒ              Ʒ      #  1B7
+       Ƹ      ƹ              Ƹ      #  1B8
+       ƹ      ƹ      Ƹ      Ƹ      #  1B9
+       ƺ      ƺ                      #  1BA
+       Ƽ      ƽ              Ƽ      #  1BC
+       ƽ      ƽ      Ƽ      Ƽ      #  1BD
+       ƾ      ƾ                      #  1BE
+       ƿ      ƿ      Ƿ      Ƿ      #  1BF
+       DŽ      dž      Dž      DŽ      #  1C4
+       Dž      dž      dž      DŽ      #  1C5
+       dž      dž      Dž      DŽ      #  1C6
+       LJ      lj      Lj      LJ      #  1C7
+       Lj      lj      lj      LJ      #  1C8
+       lj      lj      Lj      LJ      #  1C9
+       NJ      nj      Nj      NJ      #  1CA
+       Nj      nj      nj      NJ      #  1CB
+       nj      nj      Nj      NJ      #  1CC
+       Ǎ      ǎ              Ǎ      #  1CD
+       ǎ      ǎ      Ǎ      Ǎ      #  1CE
+       Ǐ      ǐ              Ǐ      #  1CF
+       ǐ      ǐ      Ǐ      Ǐ      #  1D0
+       Ǒ      ǒ              Ǒ      #  1D1
+       ǒ      ǒ      Ǒ      Ǒ      #  1D2
+       Ǔ      ǔ              Ǔ      #  1D3
+       ǔ      ǔ      Ǔ      Ǔ      #  1D4
+       Ǖ      ǖ              Ǖ      #  1D5
+       ǖ      ǖ      Ǖ      Ǖ      #  1D6
+       Ǘ      ǘ              Ǘ      #  1D7
+       ǘ      ǘ      Ǘ      Ǘ      #  1D8
+       Ǚ      ǚ              Ǚ      #  1D9
+       ǚ      ǚ      Ǚ      Ǚ      #  1DA
+       Ǜ      ǜ              Ǜ      #  1DB
+       ǜ      ǜ      Ǜ      Ǜ      #  1DC
+       ǝ      ǝ      Ǝ      Ǝ      #  1DD
+       Ǟ      ǟ              Ǟ      #  1DE
+       ǟ      ǟ      Ǟ      Ǟ      #  1DF
+       Ǡ      ǡ              Ǡ      #  1E0
+       ǡ      ǡ      Ǡ      Ǡ      #  1E1
+       Ǣ      ǣ              Ǣ      #  1E2
+       ǣ      ǣ      Ǣ      Ǣ      #  1E3
+       Ǥ      ǥ              Ǥ      #  1E4
+       ǥ      ǥ      Ǥ      Ǥ      #  1E5
+       Ǧ      ǧ              Ǧ      #  1E6
+       ǧ      ǧ      Ǧ      Ǧ      #  1E7
+       Ǩ      ǩ              Ǩ      #  1E8
+       ǩ      ǩ      Ǩ      Ǩ      #  1E9
+       Ǫ      ǫ              Ǫ      #  1EA
+       ǫ      ǫ      Ǫ      Ǫ      #  1EB
+       Ǭ      ǭ              Ǭ      #  1EC
+       ǭ      ǭ      Ǭ      Ǭ      #  1ED
+       Ǯ      ǯ              Ǯ      #  1EE
+       ǯ      ǯ      Ǯ      Ǯ      #  1EF
+       ǰ      ǰ      J̌     J̌     #  1F0
+       DZ      dz      Dz      DZ      #  1F1
+       Dz      dz      dz      DZ      #  1F2
+       dz      dz      Dz      DZ      #  1F3
+       Ǵ      ǵ              Ǵ      #  1F4
+       ǵ      ǵ      Ǵ      Ǵ      #  1F5
+       Ƕ      ƕ              Ƕ      #  1F6
+       Ƿ      ƿ              Ƿ      #  1F7
+       Ǹ      ǹ              Ǹ      #  1F8
+       ǹ      ǹ      Ǹ      Ǹ      #  1F9
+       Ǻ      ǻ              Ǻ      #  1FA
+       ǻ      ǻ      Ǻ      Ǻ      #  1FB
+       Ǽ      ǽ              Ǽ      #  1FC
+       ǽ      ǽ      Ǽ      Ǽ      #  1FD
+       Ǿ      ǿ              Ǿ      #  1FE
+       ǿ      ǿ      Ǿ      Ǿ      #  1FF
+       Ȁ      ȁ              Ȁ      #  200
+       ȁ      ȁ      Ȁ      Ȁ      #  201
+       Ȃ      ȃ              Ȃ      #  202
+       ȃ      ȃ      Ȃ      Ȃ      #  203
+       Ȅ      ȅ              Ȅ      #  204
+       ȅ      ȅ      Ȅ      Ȅ      #  205
+       Ȇ      ȇ              Ȇ      #  206
+       ȇ      ȇ      Ȇ      Ȇ      #  207
+       Ȉ      ȉ              Ȉ      #  208
+       ȉ      ȉ      Ȉ      Ȉ      #  209
+       Ȋ      ȋ              Ȋ      #  20A
+       ȋ      ȋ      Ȋ      Ȋ      #  20B
+       Ȍ      ȍ              Ȍ      #  20C
+       ȍ      ȍ      Ȍ      Ȍ      #  20D
+       Ȏ      ȏ              Ȏ      #  20E
+       ȏ      ȏ      Ȏ      Ȏ      #  20F
+       Ȑ      ȑ              Ȑ      #  210
+       ȑ      ȑ      Ȑ      Ȑ      #  211
+       Ȓ      ȓ              Ȓ      #  212
+       ȓ      ȓ      Ȓ      Ȓ      #  213
+       Ȕ      ȕ              Ȕ      #  214
+       ȕ      ȕ      Ȕ      Ȕ      #  215
+       Ȗ      ȗ              Ȗ      #  216
+       ȗ      ȗ      Ȗ      Ȗ      #  217
+       Ș      ș              Ș      #  218
+       ș      ș      Ș      Ș      #  219
+       Ț      ț              Ț      #  21A
+       ț      ț      Ț      Ț      #  21B
+       Ȝ      ȝ              Ȝ      #  21C
+       ȝ      ȝ      Ȝ      Ȝ      #  21D
+       Ȟ      ȟ              Ȟ      #  21E
+       ȟ      ȟ      Ȟ      Ȟ      #  21F
+       Ȣ      ȣ              Ȣ      #  222
+       ȣ      ȣ      Ȣ      Ȣ      #  223
+       Ȥ      ȥ              Ȥ      #  224
+       ȥ      ȥ      Ȥ      Ȥ      #  225
+       Ȧ      ȧ              Ȧ      #  226
+       ȧ      ȧ      Ȧ      Ȧ      #  227
+       Ȩ      ȩ              Ȩ      #  228
+       ȩ      ȩ      Ȩ      Ȩ      #  229
+       Ȫ      ȫ              Ȫ      #  22A
+       ȫ      ȫ      Ȫ      Ȫ      #  22B
+       Ȭ      ȭ              Ȭ      #  22C
+       ȭ      ȭ      Ȭ      Ȭ      #  22D
+       Ȯ      ȯ              Ȯ      #  22E
+       ȯ      ȯ      Ȯ      Ȯ      #  22F
+       Ȱ      ȱ              Ȱ      #  230
+       ȱ      ȱ      Ȱ      Ȱ      #  231
+       Ȳ      ȳ              Ȳ      #  232
+       ȳ      ȳ      Ȳ      Ȳ      #  233
+       ɐ      ɐ                      #  250
+       ɑ      ɑ                      #  251
+       ɒ      ɒ                      #  252
+       ɓ      ɓ      Ɓ      Ɓ      #  253
+       ɔ      ɔ      Ɔ      Ɔ      #  254
+       ɕ      ɕ                      #  255
+       ɖ      ɖ      Ɖ      Ɖ      #  256
+       ɗ      ɗ      Ɗ      Ɗ      #  257
+       ɘ      ɘ                      #  258
+       ə      ə      Ə      Ə      #  259
+       ɚ      ɚ                      #  25A
+       ɛ      ɛ      Ɛ      Ɛ      #  25B
+       ɜ      ɜ                      #  25C
+       ɝ      ɝ                      #  25D
+       ɞ      ɞ                      #  25E
+       ɟ      ɟ                      #  25F
+       ɠ      ɠ      Ɠ      Ɠ      #  260
+       ɡ      ɡ                      #  261
+       ɢ      ɢ                      #  262
+       ɣ      ɣ      Ɣ      Ɣ      #  263
+       ɤ      ɤ                      #  264
+       ɥ      ɥ                      #  265
+       ɦ      ɦ                      #  266
+       ɧ      ɧ                      #  267
+       ɨ      ɨ      Ɨ      Ɨ      #  268
+       ɩ      ɩ      Ɩ      Ɩ      #  269
+       ɪ      ɪ                      #  26A
+       ɫ      ɫ                      #  26B
+       ɬ      ɬ                      #  26C
+       ɭ      ɭ                      #  26D
+       ɮ      ɮ                      #  26E
+       ɯ      ɯ      Ɯ      Ɯ      #  26F
+       ɰ      ɰ                      #  270
+       ɱ      ɱ                      #  271
+       ɲ      ɲ      Ɲ      Ɲ      #  272
+       ɳ      ɳ                      #  273
+       ɴ      ɴ                      #  274
+       ɵ      ɵ      Ɵ      Ɵ      #  275
+       ɶ      ɶ                      #  276
+       ɷ      ɷ                      #  277
+       ɸ      ɸ                      #  278
+       ɹ      ɹ                      #  279
+       ɺ      ɺ                      #  27A
+       ɻ      ɻ                      #  27B
+       ɼ      ɼ                      #  27C
+       ɽ      ɽ                      #  27D
+       ɾ      ɾ                      #  27E
+       ɿ      ɿ                      #  27F
+       ʀ      ʀ      Ʀ      Ʀ      #  280
+       ʁ      ʁ                      #  281
+       ʂ      ʂ                      #  282
+       ʃ      ʃ      Ʃ      Ʃ      #  283
+       ʄ      ʄ                      #  284
+       ʅ      ʅ                      #  285
+       ʆ      ʆ                      #  286
+       ʇ      ʇ                      #  287
+       ʈ      ʈ      Ʈ      Ʈ      #  288
+       ʉ      ʉ                      #  289
+       ʊ      ʊ      Ʊ      Ʊ      #  28A
+       ʋ      ʋ      Ʋ      Ʋ      #  28B
+       ʌ      ʌ                      #  28C
+       ʍ      ʍ                      #  28D
+       ʎ      ʎ                      #  28E
+       ʏ      ʏ                      #  28F
+       ʐ      ʐ                      #  290
+       ʑ      ʑ                      #  291
+       ʒ      ʒ      Ʒ      Ʒ      #  292
+       ʓ      ʓ                      #  293
+       ʔ      ʔ                      #  294
+       ʕ      ʕ                      #  295
+       ʖ      ʖ                      #  296
+       ʗ      ʗ                      #  297
+       ʘ      ʘ                      #  298
+       ʙ      ʙ                      #  299
+       ʚ      ʚ                      #  29A
+       ʛ      ʛ                      #  29B
+       ʜ      ʜ                      #  29C
+       ʝ      ʝ                      #  29D
+       ʞ      ʞ                      #  29E
+       ʟ      ʟ                      #  29F
+       ʠ      ʠ                      #  2A0
+       ʡ      ʡ                      #  2A1
+       ʢ      ʢ                      #  2A2
+       ʣ      ʣ                      #  2A3
+       ʤ      ʤ                      #  2A4
+       ʥ      ʥ                      #  2A5
+       ʦ      ʦ                      #  2A6
+       ʧ      ʧ                      #  2A7
+       ʨ      ʨ                      #  2A8
+       ʩ      ʩ                      #  2A9
+       ʪ      ʪ                      #  2AA
+       ʫ      ʫ                      #  2AB
+       ʬ      ʬ                      #  2AC
+       ʭ      ʭ                      #  2AD
+       Ά      ά              Ά      #  386
+       Έ      έ              Έ      #  388
+       Ή      ή              Ή      #  389
+       Ί      ί              Ί      #  38A
+       Ό      ό              Ό      #  38C
+       Ύ      ύ              Ύ      #  38E
+       Ώ      ώ              Ώ      #  38F
+       ΐ      ΐ      Ϊ́  Ϊ́  #  390
+       Α      α              Α      #  391
+       Β      β              Β      #  392
+       Γ      γ              Γ      #  393
+       Δ      δ              Δ      #  394
+       Ε      ε              Ε      #  395
+       Ζ      ζ              Ζ      #  396
+       Η      η              Η      #  397
+       Θ      θ              Θ      #  398
+       Ι      ι              Ι      #  399
+       Κ      κ              Κ      #  39A
+       Λ      λ              Λ      #  39B
+       Μ      μ              Μ      #  39C
+       Ν      ν              Ν      #  39D
+       Ξ      ξ              Ξ      #  39E
+       Ο      ο              Ο      #  39F
+       Π      π              Π      #  3A0
+       Ρ      ρ              Ρ      #  3A1
+       Τ      τ              Τ      #  3A4
+       Υ      υ              Υ      #  3A5
+       Φ      φ              Φ      #  3A6
+       Χ      χ              Χ      #  3A7
+       Ψ      ψ              Ψ      #  3A8
+       Ω      ω              Ω      #  3A9
+       Ϊ      ϊ              Ϊ      #  3AA
+       Ϋ      ϋ              Ϋ      #  3AB
+       ά      ά      Ά      Ά      #  3AC
+       έ      έ      Έ      Έ      #  3AD
+       ή      ή      Ή      Ή      #  3AE
+       ί      ί      Ί      Ί      #  3AF
+       ΰ      ΰ      Ϋ́  Ϋ́  #  3B0
+       α      α      Α      Α      #  3B1
+       β      β      Β      Β      #  3B2
+       γ      γ      Γ      Γ      #  3B3
+       δ      δ      Δ      Δ      #  3B4
+       ε      ε      Ε      Ε      #  3B5
+       ζ      ζ      Ζ      Ζ      #  3B6
+       η      η      Η      Η      #  3B7
+       θ      θ      Θ      Θ      #  3B8
+       ι      ι      Ι      Ι      #  3B9
+       κ      κ      Κ      Κ      #  3BA
+       λ      λ      Λ      Λ      #  3BB
+       μ      μ      Μ      Μ      #  3BC
+       ν      ν      Ν      Ν      #  3BD
+       ξ      ξ      Ξ      Ξ      #  3BE
+       ο      ο      Ο      Ο      #  3BF
+       π      π      Π      Π      #  3C0
+       ρ      ρ      Ρ      Ρ      #  3C1
+       ς      ς      Σ      Σ      #  3C2
+       σ      σ      Σ      Σ      #  3C3
+       τ      τ      Τ      Τ      #  3C4
+       υ      υ      Υ      Υ      #  3C5
+       φ      φ      Φ      Φ      #  3C6
+       χ      χ      Χ      Χ      #  3C7
+       ψ      ψ      Ψ      Ψ      #  3C8
+       ω      ω      Ω      Ω      #  3C9
+       ϊ      ϊ      Ϊ      Ϊ      #  3CA
+       ϋ      ϋ      Ϋ      Ϋ      #  3CB
+       ό      ό      Ό      Ό      #  3CC
+       ύ      ύ      Ύ      Ύ      #  3CD
+       ώ      ώ      Ώ      Ώ      #  3CE
+       ϐ      ϐ      Β      Β      #  3D0
+       ϑ      ϑ      Θ      Θ      #  3D1
+       ϒ                      ϒ      #  3D2
+       ϓ                      ϓ      #  3D3
+       ϔ                      ϔ      #  3D4
+       ϕ      ϕ      Φ      Φ      #  3D5
+       ϖ      ϖ      Π      Π      #  3D6
+       ϗ      ϗ                      #  3D7
+       Ϛ      ϛ              Ϛ      #  3DA
+       ϛ      ϛ      Ϛ      Ϛ      #  3DB
+       Ϝ      ϝ              Ϝ      #  3DC
+       ϝ      ϝ      Ϝ      Ϝ      #  3DD
+       Ϟ      ϟ              Ϟ      #  3DE
+       ϟ      ϟ      Ϟ      Ϟ      #  3DF
+       Ϡ      ϡ              Ϡ      #  3E0
+       ϡ      ϡ      Ϡ      Ϡ      #  3E1
+       Ϣ      ϣ              Ϣ      #  3E2
+       ϣ      ϣ      Ϣ      Ϣ      #  3E3
+       Ϥ      ϥ              Ϥ      #  3E4
+       ϥ      ϥ      Ϥ      Ϥ      #  3E5
+       Ϧ      ϧ              Ϧ      #  3E6
+       ϧ      ϧ      Ϧ      Ϧ      #  3E7
+       Ϩ      ϩ              Ϩ      #  3E8
+       ϩ      ϩ      Ϩ      Ϩ      #  3E9
+       Ϫ      ϫ              Ϫ      #  3EA
+       ϫ      ϫ      Ϫ      Ϫ      #  3EB
+       Ϭ      ϭ              Ϭ      #  3EC
+       ϭ      ϭ      Ϭ      Ϭ      #  3ED
+       Ϯ      ϯ              Ϯ      #  3EE
+       ϯ      ϯ      Ϯ      Ϯ      #  3EF
+       ϰ      ϰ      Κ      Κ      #  3F0
+       ϱ      ϱ      Ρ      Ρ      #  3F1
+       ϲ      ϲ      Σ      Σ      #  3F2
+       ϳ      ϳ                      #  3F3
+       ϴ      θ              ϴ      #  3F4
+       ϵ      ϵ      Ε      Ε      #  3F5
+       Ѐ      ѐ              Ѐ      #  400
+       Ё      ё              Ё      #  401
+       Ђ      ђ              Ђ      #  402
+       Ѓ      ѓ              Ѓ      #  403
+       Є      є              Є      #  404
+       Ѕ      ѕ              Ѕ      #  405
+       І      і              І      #  406
+       Ї      ї              Ї      #  407
+       Ј      ј              Ј      #  408
+       Љ      љ              Љ      #  409
+       Њ      њ              Њ      #  40A
+       Ћ      ћ              Ћ      #  40B
+       Ќ      ќ              Ќ      #  40C
+       Ѝ      ѝ              Ѝ      #  40D
+       Ў      ў              Ў      #  40E
+       Џ      џ              Џ      #  40F
+       А      а              А      #  410
+       Б      б              Б      #  411
+       В      в              В      #  412
+       Г      г              Г      #  413
+       Д      д              Д      #  414
+       Е      е              Е      #  415
+       Ж      ж              Ж      #  416
+       З      з              З      #  417
+       И      и              И      #  418
+       Й      й              Й      #  419
+       К      к              К      #  41A
+       Л      л              Л      #  41B
+       М      м              М      #  41C
+       Н      н              Н      #  41D
+       О      о              О      #  41E
+       П      п              П      #  41F
+       Р      р              Р      #  420
+       С      с              С      #  421
+       Т      т              Т      #  422
+       У      у              У      #  423
+       Ф      ф              Ф      #  424
+       Х      х              Х      #  425
+       Ц      ц              Ц      #  426
+       Ч      ч              Ч      #  427
+       Ш      ш              Ш      #  428
+       Щ      щ              Щ      #  429
+       Ъ      ъ              Ъ      #  42A
+       Ы      ы              Ы      #  42B
+       Ь      ь              Ь      #  42C
+       Э      э              Э      #  42D
+       Ю      ю              Ю      #  42E
+       Я      я              Я      #  42F
+       а      а      А      А      #  430
+       б      б      Б      Б      #  431
+       в      в      В      В      #  432
+       г      г      Г      Г      #  433
+       д      д      Д      Д      #  434
+       е      е      Е      Е      #  435
+       ж      ж      Ж      Ж      #  436
+       з      з      З      З      #  437
+       и      и      И      И      #  438
+       й      й      Й      Й      #  439
+       к      к      К      К      #  43A
+       л      л      Л      Л      #  43B
+       м      м      М      М      #  43C
+       н      н      Н      Н      #  43D
+       о      о      О      О      #  43E
+       п      п      П      П      #  43F
+       р      р      Р      Р      #  440
+       с      с      С      С      #  441
+       т      т      Т      Т      #  442
+       у      у      У      У      #  443
+       ф      ф      Ф      Ф      #  444
+       х      х      Х      Х      #  445
+       ц      ц      Ц      Ц      #  446
+       ч      ч      Ч      Ч      #  447
+       ш      ш      Ш      Ш      #  448
+       щ      щ      Щ      Щ      #  449
+       ъ      ъ      Ъ      Ъ      #  44A
+       ы      ы      Ы      Ы      #  44B
+       ь      ь      Ь      Ь      #  44C
+       э      э      Э      Э      #  44D
+       ю      ю      Ю      Ю      #  44E
+       я      я      Я      Я      #  44F
+       ѐ      ѐ      Ѐ      Ѐ      #  450
+       ё      ё      Ё      Ё      #  451
+       ђ      ђ      Ђ      Ђ      #  452
+       ѓ      ѓ      Ѓ      Ѓ      #  453
+       є      є      Є      Є      #  454
+       ѕ      ѕ      Ѕ      Ѕ      #  455
+       і      і      І      І      #  456
+       ї      ї      Ї      Ї      #  457
+       ј      ј      Ј      Ј      #  458
+       љ      љ      Љ      Љ      #  459
+       њ      њ      Њ      Њ      #  45A
+       ћ      ћ      Ћ      Ћ      #  45B
+       ќ      ќ      Ќ      Ќ      #  45C
+       ѝ      ѝ      Ѝ      Ѝ      #  45D
+       ў      ў      Ў      Ў      #  45E
+       џ      џ      Џ      Џ      #  45F
+       Ѡ      ѡ              Ѡ      #  460
+       ѡ      ѡ      Ѡ      Ѡ      #  461
+       Ѣ      ѣ              Ѣ      #  462
+       ѣ      ѣ      Ѣ      Ѣ      #  463
+       Ѥ      ѥ              Ѥ      #  464
+       ѥ      ѥ      Ѥ      Ѥ      #  465
+       Ѧ      ѧ              Ѧ      #  466
+       ѧ      ѧ      Ѧ      Ѧ      #  467
+       Ѩ      ѩ              Ѩ      #  468
+       ѩ      ѩ      Ѩ      Ѩ      #  469
+       Ѫ      ѫ              Ѫ      #  46A
+       ѫ      ѫ      Ѫ      Ѫ      #  46B
+       Ѭ      ѭ              Ѭ      #  46C
+       ѭ      ѭ      Ѭ      Ѭ      #  46D
+       Ѯ      ѯ              Ѯ      #  46E
+       ѯ      ѯ      Ѯ      Ѯ      #  46F
+       Ѱ      ѱ              Ѱ      #  470
+       ѱ      ѱ      Ѱ      Ѱ      #  471
+       Ѳ      ѳ              Ѳ      #  472
+       ѳ      ѳ      Ѳ      Ѳ      #  473
+       Ѵ      ѵ              Ѵ      #  474
+       ѵ      ѵ      Ѵ      Ѵ      #  475
+       Ѷ      ѷ              Ѷ      #  476
+       ѷ      ѷ      Ѷ      Ѷ      #  477
+       Ѹ      ѹ              Ѹ      #  478
+       ѹ      ѹ      Ѹ      Ѹ      #  479
+       Ѻ      ѻ              Ѻ      #  47A
+       ѻ      ѻ      Ѻ      Ѻ      #  47B
+       Ѽ      ѽ              Ѽ      #  47C
+       ѽ      ѽ      Ѽ      Ѽ      #  47D
+       Ѿ      ѿ              Ѿ      #  47E
+       ѿ      ѿ      Ѿ      Ѿ      #  47F
+       Ҁ      ҁ              Ҁ      #  480
+       ҁ      ҁ      Ҁ      Ҁ      #  481
+       Ҍ      ҍ              Ҍ      #  48C
+       ҍ      ҍ      Ҍ      Ҍ      #  48D
+       Ҏ      ҏ              Ҏ      #  48E
+       ҏ      ҏ      Ҏ      Ҏ      #  48F
+       Ґ      ґ              Ґ      #  490
+       ґ      ґ      Ґ      Ґ      #  491
+       Ғ      ғ              Ғ      #  492
+       ғ      ғ      Ғ      Ғ      #  493
+       Ҕ      ҕ              Ҕ      #  494
+       ҕ      ҕ      Ҕ      Ҕ      #  495
+       Җ      җ              Җ      #  496
+       җ      җ      Җ      Җ      #  497
+       Ҙ      ҙ              Ҙ      #  498
+       ҙ      ҙ      Ҙ      Ҙ      #  499
+       Қ      қ              Қ      #  49A
+       қ      қ      Қ      Қ      #  49B
+       Ҝ      ҝ              Ҝ      #  49C
+       ҝ      ҝ      Ҝ      Ҝ      #  49D
+       Ҟ      ҟ              Ҟ      #  49E
+       ҟ      ҟ      Ҟ      Ҟ      #  49F
+       Ҡ      ҡ              Ҡ      #  4A0
+       ҡ      ҡ      Ҡ      Ҡ      #  4A1
+       Ң      ң              Ң      #  4A2
+       ң      ң      Ң      Ң      #  4A3
+       Ҥ      ҥ              Ҥ      #  4A4
+       ҥ      ҥ      Ҥ      Ҥ      #  4A5
+       Ҧ      ҧ              Ҧ      #  4A6
+       ҧ      ҧ      Ҧ      Ҧ      #  4A7
+       Ҩ      ҩ              Ҩ      #  4A8
+       ҩ      ҩ      Ҩ      Ҩ      #  4A9
+       Ҫ      ҫ              Ҫ      #  4AA
+       ҫ      ҫ      Ҫ      Ҫ      #  4AB
+       Ҭ      ҭ              Ҭ      #  4AC
+       ҭ      ҭ      Ҭ      Ҭ      #  4AD
+       Ү      ү              Ү      #  4AE
+       ү      ү      Ү      Ү      #  4AF
+       Ұ      ұ              Ұ      #  4B0
+       ұ      ұ      Ұ      Ұ      #  4B1
+       Ҳ      ҳ              Ҳ      #  4B2
+       ҳ      ҳ      Ҳ      Ҳ      #  4B3
+       Ҵ      ҵ              Ҵ      #  4B4
+       ҵ      ҵ      Ҵ      Ҵ      #  4B5
+       Ҷ      ҷ              Ҷ      #  4B6
+       ҷ      ҷ      Ҷ      Ҷ      #  4B7
+       Ҹ      ҹ              Ҹ      #  4B8
+       ҹ      ҹ      Ҹ      Ҹ      #  4B9
+       Һ      һ              Һ      #  4BA
+       һ      һ      Һ      Һ      #  4BB
+       Ҽ      ҽ              Ҽ      #  4BC
+       ҽ      ҽ      Ҽ      Ҽ      #  4BD
+       Ҿ      ҿ              Ҿ      #  4BE
+       ҿ      ҿ      Ҿ      Ҿ      #  4BF
+       Ӏ                      Ӏ      #  4C0
+       Ӂ      ӂ              Ӂ      #  4C1
+       ӂ      ӂ      Ӂ      Ӂ      #  4C2
+       Ӄ      ӄ              Ӄ      #  4C3
+       ӄ      ӄ      Ӄ      Ӄ      #  4C4
+       Ӈ      ӈ              Ӈ      #  4C7
+       ӈ      ӈ      Ӈ      Ӈ      #  4C8
+       Ӌ      ӌ              Ӌ      #  4CB
+       ӌ      ӌ      Ӌ      Ӌ      #  4CC
+       Ӑ      ӑ              Ӑ      #  4D0
+       ӑ      ӑ      Ӑ      Ӑ      #  4D1
+       Ӓ      ӓ              Ӓ      #  4D2
+       ӓ      ӓ      Ӓ      Ӓ      #  4D3
+       Ӕ      ӕ              Ӕ      #  4D4
+       ӕ      ӕ      Ӕ      Ӕ      #  4D5
+       Ӗ      ӗ              Ӗ      #  4D6
+       ӗ      ӗ      Ӗ      Ӗ      #  4D7
+       Ә      ә              Ә      #  4D8
+       ә      ә      Ә      Ә      #  4D9
+       Ӛ      ӛ              Ӛ      #  4DA
+       ӛ      ӛ      Ӛ      Ӛ      #  4DB
+       Ӝ      ӝ              Ӝ      #  4DC
+       ӝ      ӝ      Ӝ      Ӝ      #  4DD
+       Ӟ      ӟ              Ӟ      #  4DE
+       ӟ      ӟ      Ӟ      Ӟ      #  4DF
+       Ӡ      ӡ              Ӡ      #  4E0
+       ӡ      ӡ      Ӡ      Ӡ      #  4E1
+       Ӣ      ӣ              Ӣ      #  4E2
+       ӣ      ӣ      Ӣ      Ӣ      #  4E3
+       Ӥ      ӥ              Ӥ      #  4E4
+       ӥ      ӥ      Ӥ      Ӥ      #  4E5
+       Ӧ      ӧ              Ӧ      #  4E6
+       ӧ      ӧ      Ӧ      Ӧ      #  4E7
+       Ө      ө              Ө      #  4E8
+       ө      ө      Ө      Ө      #  4E9
+       Ӫ      ӫ              Ӫ      #  4EA
+       ӫ      ӫ      Ӫ      Ӫ      #  4EB
+       Ӭ      ӭ              Ӭ      #  4EC
+       ӭ      ӭ      Ӭ      Ӭ      #  4ED
+       Ӯ      ӯ              Ӯ      #  4EE
+       ӯ      ӯ      Ӯ      Ӯ      #  4EF
+       Ӱ      ӱ              Ӱ      #  4F0
+       ӱ      ӱ      Ӱ      Ӱ      #  4F1
+       Ӳ      ӳ              Ӳ      #  4F2
+       ӳ      ӳ      Ӳ      Ӳ      #  4F3
+       Ӵ      ӵ              Ӵ      #  4F4
+       ӵ      ӵ      Ӵ      Ӵ      #  4F5
+       Ӹ      ӹ              Ӹ      #  4F8
+       ӹ      ӹ      Ӹ      Ӹ      #  4F9
+       Ա      ա              Ա      #  531
+       Բ      բ              Բ      #  532
+       Գ      գ              Գ      #  533
+       Դ      դ              Դ      #  534
+       Ե      ե              Ե      #  535
+       Զ      զ              Զ      #  536
+       Է      է              Է      #  537
+       Ը      ը              Ը      #  538
+       Թ      թ              Թ      #  539
+       Ժ      ժ              Ժ      #  53A
+       Ի      ի              Ի      #  53B
+       Լ      լ              Լ      #  53C
+       Խ      խ              Խ      #  53D
+       Ծ      ծ              Ծ      #  53E
+       Կ      կ              Կ      #  53F
+       Հ      հ              Հ      #  540
+       Ձ      ձ              Ձ      #  541
+       Ղ      ղ              Ղ      #  542
+       Ճ      ճ              Ճ      #  543
+       Մ      մ              Մ      #  544
+       Յ      յ              Յ      #  545
+       Ն      ն              Ն      #  546
+       Շ      շ              Շ      #  547
+       Ո      ո              Ո      #  548
+       Չ      չ              Չ      #  549
+       Պ      պ              Պ      #  54A
+       Ջ      ջ              Ջ      #  54B
+       Ռ      ռ              Ռ      #  54C
+       Ս      ս              Ս      #  54D
+       Վ      վ              Վ      #  54E
+       Տ      տ              Տ      #  54F
+       Ր      ր              Ր      #  550
+       Ց      ց              Ց      #  551
+       Ւ      ւ              Ւ      #  552
+       Փ      փ              Փ      #  553
+       Ք      ք              Ք      #  554
+       Օ      օ              Օ      #  555
+       Ֆ      ֆ              Ֆ      #  556
+       ա      ա      Ա      Ա      #  561
+       բ      բ      Բ      Բ      #  562
+       գ      գ      Գ      Գ      #  563
+       դ      դ      Դ      Դ      #  564
+       ե      ե      Ե      Ե      #  565
+       զ      զ      Զ      Զ      #  566
+       է      է      Է      Է      #  567
+       ը      ը      Ը      Ը      #  568
+       թ      թ      Թ      Թ      #  569
+       ժ      ժ      Ժ      Ժ      #  56A
+       ի      ի      Ի      Ի      #  56B
+       լ      լ      Լ      Լ      #  56C
+       խ      խ      Խ      Խ      #  56D
+       ծ      ծ      Ծ      Ծ      #  56E
+       կ      կ      Կ      Կ      #  56F
+       հ      հ      Հ      Հ      #  570
+       ձ      ձ      Ձ      Ձ      #  571
+       ղ      ղ      Ղ      Ղ      #  572
+       ճ      ճ      Ճ      Ճ      #  573
+       մ      մ      Մ      Մ      #  574
+       յ      յ      Յ      Յ      #  575
+       ն      ն      Ն      Ն      #  576
+       շ      շ      Շ      Շ      #  577
+       ո      ո      Ո      Ո      #  578
+       չ      չ      Չ      Չ      #  579
+       պ      պ      Պ      Պ      #  57A
+       ջ      ջ      Ջ      Ջ      #  57B
+       ռ      ռ      Ռ      Ռ      #  57C
+       ս      ս      Ս      Ս      #  57D
+       վ      վ      Վ      Վ      #  57E
+       տ      տ      Տ      Տ      #  57F
+       ր      ր      Ր      Ր      #  580
+       ց      ց      Ց      Ց      #  581
+       ւ      ւ      Ւ      Ւ      #  582
+       փ      փ      Փ      Փ      #  583
+       ք      ք      Ք      Ք      #  584
+       օ      օ      Օ      Օ      #  585
+       ֆ      ֆ      Ֆ      Ֆ      #  586
+       և      և      Եւ    ԵՒ    #  587
+       Ⴀ                     Ⴀ     # 10A0
+       Ⴁ                     Ⴁ     # 10A1
+       Ⴂ                     Ⴂ     # 10A2
+       Ⴃ                     Ⴃ     # 10A3
+       Ⴄ                     Ⴄ     # 10A4
+       Ⴅ                     Ⴅ     # 10A5
+       Ⴆ                     Ⴆ     # 10A6
+       Ⴇ                     Ⴇ     # 10A7
+       Ⴈ                     Ⴈ     # 10A8
+       Ⴉ                     Ⴉ     # 10A9
+       Ⴊ                     Ⴊ     # 10AA
+       Ⴋ                     Ⴋ     # 10AB
+       Ⴌ                     Ⴌ     # 10AC
+       Ⴍ                     Ⴍ     # 10AD
+       Ⴎ                     Ⴎ     # 10AE
+       Ⴏ                     Ⴏ     # 10AF
+       Ⴐ                     Ⴐ     # 10B0
+       Ⴑ                     Ⴑ     # 10B1
+       Ⴒ                     Ⴒ     # 10B2
+       Ⴓ                     Ⴓ     # 10B3
+       Ⴔ                     Ⴔ     # 10B4
+       Ⴕ                     Ⴕ     # 10B5
+       Ⴖ                     Ⴖ     # 10B6
+       Ⴗ                     Ⴗ     # 10B7
+       Ⴘ                     Ⴘ     # 10B8
+       Ⴙ                     Ⴙ     # 10B9
+       Ⴚ                     Ⴚ     # 10BA
+       Ⴛ                     Ⴛ     # 10BB
+       Ⴜ                     Ⴜ     # 10BC
+       Ⴝ                     Ⴝ     # 10BD
+       Ⴞ                     Ⴞ     # 10BE
+       Ⴟ                     Ⴟ     # 10BF
+       Ⴠ                     Ⴠ     # 10C0
+       Ⴡ                     Ⴡ     # 10C1
+       Ⴢ                     Ⴢ     # 10C2
+       Ⴣ                     Ⴣ     # 10C3
+       Ⴤ                     Ⴤ     # 10C4
+       Ⴥ                     Ⴥ     # 10C5
+       Ḁ     ḁ             Ḁ     # 1E00
+       ḁ     ḁ     Ḁ     Ḁ     # 1E01
+       Ḃ     ḃ             Ḃ     # 1E02
+       ḃ     ḃ     Ḃ     Ḃ     # 1E03
+       Ḅ     ḅ             Ḅ     # 1E04
+       ḅ     ḅ     Ḅ     Ḅ     # 1E05
+       Ḇ     ḇ             Ḇ     # 1E06
+       ḇ     ḇ     Ḇ     Ḇ     # 1E07
+       Ḉ     ḉ             Ḉ     # 1E08
+       ḉ     ḉ     Ḉ     Ḉ     # 1E09
+       Ḋ     ḋ             Ḋ     # 1E0A
+       ḋ     ḋ     Ḋ     Ḋ     # 1E0B
+       Ḍ     ḍ             Ḍ     # 1E0C
+       ḍ     ḍ     Ḍ     Ḍ     # 1E0D
+       Ḏ     ḏ             Ḏ     # 1E0E
+       ḏ     ḏ     Ḏ     Ḏ     # 1E0F
+       Ḑ     ḑ             Ḑ     # 1E10
+       ḑ     ḑ     Ḑ     Ḑ     # 1E11
+       Ḓ     ḓ             Ḓ     # 1E12
+       ḓ     ḓ     Ḓ     Ḓ     # 1E13
+       Ḕ     ḕ             Ḕ     # 1E14
+       ḕ     ḕ     Ḕ     Ḕ     # 1E15
+       Ḗ     ḗ             Ḗ     # 1E16
+       ḗ     ḗ     Ḗ     Ḗ     # 1E17
+       Ḙ     ḙ             Ḙ     # 1E18
+       ḙ     ḙ     Ḙ     Ḙ     # 1E19
+       Ḛ     ḛ             Ḛ     # 1E1A
+       ḛ     ḛ     Ḛ     Ḛ     # 1E1B
+       Ḝ     ḝ             Ḝ     # 1E1C
+       ḝ     ḝ     Ḝ     Ḝ     # 1E1D
+       Ḟ     ḟ             Ḟ     # 1E1E
+       ḟ     ḟ     Ḟ     Ḟ     # 1E1F
+       Ḡ     ḡ             Ḡ     # 1E20
+       ḡ     ḡ     Ḡ     Ḡ     # 1E21
+       Ḣ     ḣ             Ḣ     # 1E22
+       ḣ     ḣ     Ḣ     Ḣ     # 1E23
+       Ḥ     ḥ             Ḥ     # 1E24
+       ḥ     ḥ     Ḥ     Ḥ     # 1E25
+       Ḧ     ḧ             Ḧ     # 1E26
+       ḧ     ḧ     Ḧ     Ḧ     # 1E27
+       Ḩ     ḩ             Ḩ     # 1E28
+       ḩ     ḩ     Ḩ     Ḩ     # 1E29
+       Ḫ     ḫ             Ḫ     # 1E2A
+       ḫ     ḫ     Ḫ     Ḫ     # 1E2B
+       Ḭ     ḭ             Ḭ     # 1E2C
+       ḭ     ḭ     Ḭ     Ḭ     # 1E2D
+       Ḯ     ḯ             Ḯ     # 1E2E
+       ḯ     ḯ     Ḯ     Ḯ     # 1E2F
+       Ḱ     ḱ             Ḱ     # 1E30
+       ḱ     ḱ     Ḱ     Ḱ     # 1E31
+       Ḳ     ḳ             Ḳ     # 1E32
+       ḳ     ḳ     Ḳ     Ḳ     # 1E33
+       Ḵ     ḵ             Ḵ     # 1E34
+       ḵ     ḵ     Ḵ     Ḵ     # 1E35
+       Ḷ     ḷ             Ḷ     # 1E36
+       ḷ     ḷ     Ḷ     Ḷ     # 1E37
+       Ḹ     ḹ             Ḹ     # 1E38
+       ḹ     ḹ     Ḹ     Ḹ     # 1E39
+       Ḻ     ḻ             Ḻ     # 1E3A
+       ḻ     ḻ     Ḻ     Ḻ     # 1E3B
+       Ḽ     ḽ             Ḽ     # 1E3C
+       ḽ     ḽ     Ḽ     Ḽ     # 1E3D
+       Ḿ     ḿ             Ḿ     # 1E3E
+       ḿ     ḿ     Ḿ     Ḿ     # 1E3F
+       Ṁ     ṁ             Ṁ     # 1E40
+       ṁ     ṁ     Ṁ     Ṁ     # 1E41
+       Ṃ     ṃ             Ṃ     # 1E42
+       ṃ     ṃ     Ṃ     Ṃ     # 1E43
+       Ṅ     ṅ             Ṅ     # 1E44
+       ṅ     ṅ     Ṅ     Ṅ     # 1E45
+       Ṇ     ṇ             Ṇ     # 1E46
+       ṇ     ṇ     Ṇ     Ṇ     # 1E47
+       Ṉ     ṉ             Ṉ     # 1E48
+       ṉ     ṉ     Ṉ     Ṉ     # 1E49
+       Ṋ     ṋ             Ṋ     # 1E4A
+       ṋ     ṋ     Ṋ     Ṋ     # 1E4B
+       Ṍ     ṍ             Ṍ     # 1E4C
+       ṍ     ṍ     Ṍ     Ṍ     # 1E4D
+       Ṏ     ṏ             Ṏ     # 1E4E
+       ṏ     ṏ     Ṏ     Ṏ     # 1E4F
+       Ṑ     ṑ             Ṑ     # 1E50
+       ṑ     ṑ     Ṑ     Ṑ     # 1E51
+       Ṓ     ṓ             Ṓ     # 1E52
+       ṓ     ṓ     Ṓ     Ṓ     # 1E53
+       Ṕ     ṕ             Ṕ     # 1E54
+       ṕ     ṕ     Ṕ     Ṕ     # 1E55
+       Ṗ     ṗ             Ṗ     # 1E56
+       ṗ     ṗ     Ṗ     Ṗ     # 1E57
+       Ṙ     ṙ             Ṙ     # 1E58
+       ṙ     ṙ     Ṙ     Ṙ     # 1E59
+       Ṛ     ṛ             Ṛ     # 1E5A
+       ṛ     ṛ     Ṛ     Ṛ     # 1E5B
+       Ṝ     ṝ             Ṝ     # 1E5C
+       ṝ     ṝ     Ṝ     Ṝ     # 1E5D
+       Ṟ     ṟ             Ṟ     # 1E5E
+       ṟ     ṟ     Ṟ     Ṟ     # 1E5F
+       Ṡ     ṡ             Ṡ     # 1E60
+       ṡ     ṡ     Ṡ     Ṡ     # 1E61
+       Ṣ     ṣ             Ṣ     # 1E62
+       ṣ     ṣ     Ṣ     Ṣ     # 1E63
+       Ṥ     ṥ             Ṥ     # 1E64
+       ṥ     ṥ     Ṥ     Ṥ     # 1E65
+       Ṧ     ṧ             Ṧ     # 1E66
+       ṧ     ṧ     Ṧ     Ṧ     # 1E67
+       Ṩ     ṩ             Ṩ     # 1E68
+       ṩ     ṩ     Ṩ     Ṩ     # 1E69
+       Ṫ     ṫ             Ṫ     # 1E6A
+       ṫ     ṫ     Ṫ     Ṫ     # 1E6B
+       Ṭ     ṭ             Ṭ     # 1E6C
+       ṭ     ṭ     Ṭ     Ṭ     # 1E6D
+       Ṯ     ṯ             Ṯ     # 1E6E
+       ṯ     ṯ     Ṯ     Ṯ     # 1E6F
+       Ṱ     ṱ             Ṱ     # 1E70
+       ṱ     ṱ     Ṱ     Ṱ     # 1E71
+       Ṳ     ṳ             Ṳ     # 1E72
+       ṳ     ṳ     Ṳ     Ṳ     # 1E73
+       Ṵ     ṵ             Ṵ     # 1E74
+       ṵ     ṵ     Ṵ     Ṵ     # 1E75
+       Ṷ     ṷ             Ṷ     # 1E76
+       ṷ     ṷ     Ṷ     Ṷ     # 1E77
+       Ṹ     ṹ             Ṹ     # 1E78
+       ṹ     ṹ     Ṹ     Ṹ     # 1E79
+       Ṻ     ṻ             Ṻ     # 1E7A
+       ṻ     ṻ     Ṻ     Ṻ     # 1E7B
+       Ṽ     ṽ             Ṽ     # 1E7C
+       ṽ     ṽ     Ṽ     Ṽ     # 1E7D
+       Ṿ     ṿ             Ṿ     # 1E7E
+       ṿ     ṿ     Ṿ     Ṿ     # 1E7F
+       Ẁ     ẁ             Ẁ     # 1E80
+       ẁ     ẁ     Ẁ     Ẁ     # 1E81
+       Ẃ     ẃ             Ẃ     # 1E82
+       ẃ     ẃ     Ẃ     Ẃ     # 1E83
+       Ẅ     ẅ             Ẅ     # 1E84
+       ẅ     ẅ     Ẅ     Ẅ     # 1E85
+       Ẇ     ẇ             Ẇ     # 1E86
+       ẇ     ẇ     Ẇ     Ẇ     # 1E87
+       Ẉ     ẉ             Ẉ     # 1E88
+       ẉ     ẉ     Ẉ     Ẉ     # 1E89
+       Ẋ     ẋ             Ẋ     # 1E8A
+       ẋ     ẋ     Ẋ     Ẋ     # 1E8B
+       Ẍ     ẍ             Ẍ     # 1E8C
+       ẍ     ẍ     Ẍ     Ẍ     # 1E8D
+       Ẏ     ẏ             Ẏ     # 1E8E
+       ẏ     ẏ     Ẏ     Ẏ     # 1E8F
+       Ẑ     ẑ             Ẑ     # 1E90
+       ẑ     ẑ     Ẑ     Ẑ     # 1E91
+       Ẓ     ẓ             Ẓ     # 1E92
+       ẓ     ẓ     Ẓ     Ẓ     # 1E93
+       Ẕ     ẕ             Ẕ     # 1E94
+       ẕ     ẕ     Ẕ     Ẕ     # 1E95
+       ẖ     ẖ     H̱     H̱     # 1E96
+       ẗ     ẗ     T̈     T̈     # 1E97
+       ẘ     ẘ     W̊     W̊     # 1E98
+       ẙ     ẙ     Y̊     Y̊     # 1E99
+       ẚ     ẚ     Aʾ     Aʾ     # 1E9A
+       ẛ     ẛ     Ṡ     Ṡ     # 1E9B
+       Ạ     ạ             Ạ     # 1EA0
+       ạ     ạ     Ạ     Ạ     # 1EA1
+       Ả     ả             Ả     # 1EA2
+       ả     ả     Ả     Ả     # 1EA3
+       Ấ     ấ             Ấ     # 1EA4
+       ấ     ấ     Ấ     Ấ     # 1EA5
+       Ầ     ầ             Ầ     # 1EA6
+       ầ     ầ     Ầ     Ầ     # 1EA7
+       Ẩ     ẩ             Ẩ     # 1EA8
+       ẩ     ẩ     Ẩ     Ẩ     # 1EA9
+       Ẫ     ẫ             Ẫ     # 1EAA
+       ẫ     ẫ     Ẫ     Ẫ     # 1EAB
+       Ậ     ậ             Ậ     # 1EAC
+       ậ     ậ     Ậ     Ậ     # 1EAD
+       Ắ     ắ             Ắ     # 1EAE
+       ắ     ắ     Ắ     Ắ     # 1EAF
+       Ằ     ằ             Ằ     # 1EB0
+       ằ     ằ     Ằ     Ằ     # 1EB1
+       Ẳ     ẳ             Ẳ     # 1EB2
+       ẳ     ẳ     Ẳ     Ẳ     # 1EB3
+       Ẵ     ẵ             Ẵ     # 1EB4
+       ẵ     ẵ     Ẵ     Ẵ     # 1EB5
+       Ặ     ặ             Ặ     # 1EB6
+       ặ     ặ     Ặ     Ặ     # 1EB7
+       Ẹ     ẹ             Ẹ     # 1EB8
+       ẹ     ẹ     Ẹ     Ẹ     # 1EB9
+       Ẻ     ẻ             Ẻ     # 1EBA
+       ẻ     ẻ     Ẻ     Ẻ     # 1EBB
+       Ẽ     ẽ             Ẽ     # 1EBC
+       ẽ     ẽ     Ẽ     Ẽ     # 1EBD
+       Ế     ế             Ế     # 1EBE
+       ế     ế     Ế     Ế     # 1EBF
+       Ề     ề             Ề     # 1EC0
+       ề     ề     Ề     Ề     # 1EC1
+       Ể     ể             Ể     # 1EC2
+       ể     ể     Ể     Ể     # 1EC3
+       Ễ     ễ             Ễ     # 1EC4
+       ễ     ễ     Ễ     Ễ     # 1EC5
+       Ệ     ệ             Ệ     # 1EC6
+       ệ     ệ     Ệ     Ệ     # 1EC7
+       Ỉ     ỉ             Ỉ     # 1EC8
+       ỉ     ỉ     Ỉ     Ỉ     # 1EC9
+       Ị     ị             Ị     # 1ECA
+       ị     ị     Ị     Ị     # 1ECB
+       Ọ     ọ             Ọ     # 1ECC
+       ọ     ọ     Ọ     Ọ     # 1ECD
+       Ỏ     ỏ             Ỏ     # 1ECE
+       ỏ     ỏ     Ỏ     Ỏ     # 1ECF
+       Ố     ố             Ố     # 1ED0
+       ố     ố     Ố     Ố     # 1ED1
+       Ồ     ồ             Ồ     # 1ED2
+       ồ     ồ     Ồ     Ồ     # 1ED3
+       Ổ     ổ             Ổ     # 1ED4
+       ổ     ổ     Ổ     Ổ     # 1ED5
+       Ỗ     ỗ             Ỗ     # 1ED6
+       ỗ     ỗ     Ỗ     Ỗ     # 1ED7
+       Ộ     ộ             Ộ     # 1ED8
+       ộ     ộ     Ộ     Ộ     # 1ED9
+       Ớ     ớ             Ớ     # 1EDA
+       ớ     ớ     Ớ     Ớ     # 1EDB
+       Ờ     ờ             Ờ     # 1EDC
+       ờ     ờ     Ờ     Ờ     # 1EDD
+       Ở     ở             Ở     # 1EDE
+       ở     ở     Ở     Ở     # 1EDF
+       Ỡ     ỡ             Ỡ     # 1EE0
+       ỡ     ỡ     Ỡ     Ỡ     # 1EE1
+       Ợ     ợ             Ợ     # 1EE2
+       ợ     ợ     Ợ     Ợ     # 1EE3
+       Ụ     ụ             Ụ     # 1EE4
+       ụ     ụ     Ụ     Ụ     # 1EE5
+       Ủ     ủ             Ủ     # 1EE6
+       ủ     ủ     Ủ     Ủ     # 1EE7
+       Ứ     ứ             Ứ     # 1EE8
+       ứ     ứ     Ứ     Ứ     # 1EE9
+       Ừ     ừ             Ừ     # 1EEA
+       ừ     ừ     Ừ     Ừ     # 1EEB
+       Ử     ử             Ử     # 1EEC
+       ử     ử     Ử     Ử     # 1EED
+       Ữ     ữ             Ữ     # 1EEE
+       ữ     ữ     Ữ     Ữ     # 1EEF
+       Ự     ự             Ự     # 1EF0
+       ự     ự     Ự     Ự     # 1EF1
+       Ỳ     ỳ             Ỳ     # 1EF2
+       ỳ     ỳ     Ỳ     Ỳ     # 1EF3
+       Ỵ     ỵ             Ỵ     # 1EF4
+       ỵ     ỵ     Ỵ     Ỵ     # 1EF5
+       Ỷ     ỷ             Ỷ     # 1EF6
+       ỷ     ỷ     Ỷ     Ỷ     # 1EF7
+       Ỹ     ỹ             Ỹ     # 1EF8
+       ỹ     ỹ     Ỹ     Ỹ     # 1EF9
+       ἀ     ἀ     Ἀ     Ἀ     # 1F00
+       ἁ     ἁ     Ἁ     Ἁ     # 1F01
+       ἂ     ἂ     Ἂ     Ἂ     # 1F02
+       ἃ     ἃ     Ἃ     Ἃ     # 1F03
+       ἄ     ἄ     Ἄ     Ἄ     # 1F04
+       ἅ     ἅ     Ἅ     Ἅ     # 1F05
+       ἆ     ἆ     Ἆ     Ἆ     # 1F06
+       ἇ     ἇ     Ἇ     Ἇ     # 1F07
+       Ἀ     ἀ             Ἀ     # 1F08
+       Ἁ     ἁ             Ἁ     # 1F09
+       Ἂ     ἂ             Ἂ     # 1F0A
+       Ἃ     ἃ             Ἃ     # 1F0B
+       Ἄ     ἄ             Ἄ     # 1F0C
+       Ἅ     ἅ             Ἅ     # 1F0D
+       Ἆ     ἆ             Ἆ     # 1F0E
+       Ἇ     ἇ             Ἇ     # 1F0F
+       ἐ     ἐ     Ἐ     Ἐ     # 1F10
+       ἑ     ἑ     Ἑ     Ἑ     # 1F11
+       ἒ     ἒ     Ἒ     Ἒ     # 1F12
+       ἓ     ἓ     Ἓ     Ἓ     # 1F13
+       ἔ     ἔ     Ἔ     Ἔ     # 1F14
+       ἕ     ἕ     Ἕ     Ἕ     # 1F15
+       Ἐ     ἐ             Ἐ     # 1F18
+       Ἑ     ἑ             Ἑ     # 1F19
+       Ἒ     ἒ             Ἒ     # 1F1A
+       Ἓ     ἓ             Ἓ     # 1F1B
+       Ἔ     ἔ             Ἔ     # 1F1C
+       Ἕ     ἕ             Ἕ     # 1F1D
+       ἠ     ἠ     Ἠ     Ἠ     # 1F20
+       ἡ     ἡ     Ἡ     Ἡ     # 1F21
+       ἢ     ἢ     Ἢ     Ἢ     # 1F22
+       ἣ     ἣ     Ἣ     Ἣ     # 1F23
+       ἤ     ἤ     Ἤ     Ἤ     # 1F24
+       ἥ     ἥ     Ἥ     Ἥ     # 1F25
+       ἦ     ἦ     Ἦ     Ἦ     # 1F26
+       ἧ     ἧ     Ἧ     Ἧ     # 1F27
+       Ἠ     ἠ             Ἠ     # 1F28
+       Ἡ     ἡ             Ἡ     # 1F29
+       Ἢ     ἢ             Ἢ     # 1F2A
+       Ἣ     ἣ             Ἣ     # 1F2B
+       Ἤ     ἤ             Ἤ     # 1F2C
+       Ἥ     ἥ             Ἥ     # 1F2D
+       Ἦ     ἦ             Ἦ     # 1F2E
+       Ἧ     ἧ             Ἧ     # 1F2F
+       ἰ     ἰ     Ἰ     Ἰ     # 1F30
+       ἱ     ἱ     Ἱ     Ἱ     # 1F31
+       ἲ     ἲ     Ἲ     Ἲ     # 1F32
+       ἳ     ἳ     Ἳ     Ἳ     # 1F33
+       ἴ     ἴ     Ἴ     Ἴ     # 1F34
+       ἵ     ἵ     Ἵ     Ἵ     # 1F35
+       ἶ     ἶ     Ἶ     Ἶ     # 1F36
+       ἷ     ἷ     Ἷ     Ἷ     # 1F37
+       Ἰ     ἰ             Ἰ     # 1F38
+       Ἱ     ἱ             Ἱ     # 1F39
+       Ἲ     ἲ             Ἲ     # 1F3A
+       Ἳ     ἳ             Ἳ     # 1F3B
+       Ἴ     ἴ             Ἴ     # 1F3C
+       Ἵ     ἵ             Ἵ     # 1F3D
+       Ἶ     ἶ             Ἶ     # 1F3E
+       Ἷ     ἷ             Ἷ     # 1F3F
+       ὀ     ὀ     Ὀ     Ὀ     # 1F40
+       ὁ     ὁ     Ὁ     Ὁ     # 1F41
+       ὂ     ὂ     Ὂ     Ὂ     # 1F42
+       ὃ     ὃ     Ὃ     Ὃ     # 1F43
+       ὄ     ὄ     Ὄ     Ὄ     # 1F44
+       ὅ     ὅ     Ὅ     Ὅ     # 1F45
+       Ὀ     ὀ             Ὀ     # 1F48
+       Ὁ     ὁ             Ὁ     # 1F49
+       Ὂ     ὂ             Ὂ     # 1F4A
+       Ὃ     ὃ             Ὃ     # 1F4B
+       Ὄ     ὄ             Ὄ     # 1F4C
+       Ὅ     ὅ             Ὅ     # 1F4D
+       ὐ     ὐ     Υ̓    Υ̓    # 1F50
+       ὑ     ὑ     Ὑ     Ὑ     # 1F51
+       ὒ     ὒ     Υ̓̀  Υ̓̀  # 1F52
+       ὓ     ὓ     Ὓ     Ὓ     # 1F53
+       ὔ     ὔ     Υ̓́  Υ̓́  # 1F54
+       ὕ     ὕ     Ὕ     Ὕ     # 1F55
+       ὖ     ὖ     Υ̓͂  Υ̓͂  # 1F56
+       ὗ     ὗ     Ὗ     Ὗ     # 1F57
+       Ὑ     ὑ             Ὑ     # 1F59
+       Ὓ     ὓ             Ὓ     # 1F5B
+       Ὕ     ὕ             Ὕ     # 1F5D
+       Ὗ     ὗ             Ὗ     # 1F5F
+       ὠ     ὠ     Ὠ     Ὠ     # 1F60
+       ὡ     ὡ     Ὡ     Ὡ     # 1F61
+       ὢ     ὢ     Ὢ     Ὢ     # 1F62
+       ὣ     ὣ     Ὣ     Ὣ     # 1F63
+       ὤ     ὤ     Ὤ     Ὤ     # 1F64
+       ὥ     ὥ     Ὥ     Ὥ     # 1F65
+       ὦ     ὦ     Ὦ     Ὦ     # 1F66
+       ὧ     ὧ     Ὧ     Ὧ     # 1F67
+       Ὠ     ὠ             Ὠ     # 1F68
+       Ὡ     ὡ             Ὡ     # 1F69
+       Ὢ     ὢ             Ὢ     # 1F6A
+       Ὣ     ὣ             Ὣ     # 1F6B
+       Ὤ     ὤ             Ὤ     # 1F6C
+       Ὥ     ὥ             Ὥ     # 1F6D
+       Ὦ     ὦ             Ὦ     # 1F6E
+       Ὧ     ὧ             Ὧ     # 1F6F
+       ὰ     ὰ     Ὰ     Ὰ     # 1F70
+       ά     ά     Ά     Ά     # 1F71
+       ὲ     ὲ     Ὲ     Ὲ     # 1F72
+       έ     έ     Έ     Έ     # 1F73
+       ὴ     ὴ     Ὴ     Ὴ     # 1F74
+       ή     ή     Ή     Ή     # 1F75
+       ὶ     ὶ     Ὶ     Ὶ     # 1F76
+       ί     ί     Ί     Ί     # 1F77
+       ὸ     ὸ     Ὸ     Ὸ     # 1F78
+       ό     ό     Ό     Ό     # 1F79
+       ὺ     ὺ     Ὺ     Ὺ     # 1F7A
+       ύ     ύ     Ύ     Ύ     # 1F7B
+       ὼ     ὼ     Ὼ     Ὼ     # 1F7C
+       ώ     ώ     Ώ     Ώ     # 1F7D
+       ᾀ     ᾀ     ᾈ     ἈΙ   # 1F80
+       ᾁ     ᾁ     ᾉ     ἉΙ   # 1F81
+       ᾂ     ᾂ     ᾊ     ἊΙ   # 1F82
+       ᾃ     ᾃ     ᾋ     ἋΙ   # 1F83
+       ᾄ     ᾄ     ᾌ     ἌΙ   # 1F84
+       ᾅ     ᾅ     ᾍ     ἍΙ   # 1F85
+       ᾆ     ᾆ     ᾎ     ἎΙ   # 1F86
+       ᾇ     ᾇ     ᾏ     ἏΙ   # 1F87
+       ᾈ     ᾀ     ᾈ     ἈΙ   # 1F88
+       ᾉ     ᾁ     ᾉ     ἉΙ   # 1F89
+       ᾊ     ᾂ     ᾊ     ἊΙ   # 1F8A
+       ᾋ     ᾃ     ᾋ     ἋΙ   # 1F8B
+       ᾌ     ᾄ     ᾌ     ἌΙ   # 1F8C
+       ᾍ     ᾅ     ᾍ     ἍΙ   # 1F8D
+       ᾎ     ᾆ     ᾎ     ἎΙ   # 1F8E
+       ᾏ     ᾇ     ᾏ     ἏΙ   # 1F8F
+       ᾐ     ᾐ     ᾘ     ἨΙ   # 1F90
+       ᾑ     ᾑ     ᾙ     ἩΙ   # 1F91
+       ᾒ     ᾒ     ᾚ     ἪΙ   # 1F92
+       ᾓ     ᾓ     ᾛ     ἫΙ   # 1F93
+       ᾔ     ᾔ     ᾜ     ἬΙ   # 1F94
+       ᾕ     ᾕ     ᾝ     ἭΙ   # 1F95
+       ᾖ     ᾖ     ᾞ     ἮΙ   # 1F96
+       ᾗ     ᾗ     ᾟ     ἯΙ   # 1F97
+       ᾘ     ᾐ     ᾘ     ἨΙ   # 1F98
+       ᾙ     ᾑ     ᾙ     ἩΙ   # 1F99
+       ᾚ     ᾒ     ᾚ     ἪΙ   # 1F9A
+       ᾛ     ᾓ     ᾛ     ἫΙ   # 1F9B
+       ᾜ     ᾔ     ᾜ     ἬΙ   # 1F9C
+       ᾝ     ᾕ     ᾝ     ἭΙ   # 1F9D
+       ᾞ     ᾖ     ᾞ     ἮΙ   # 1F9E
+       ᾟ     ᾗ     ᾟ     ἯΙ   # 1F9F
+       ᾠ     ᾠ     ᾨ     ὨΙ   # 1FA0
+       ᾡ     ᾡ     ᾩ     ὩΙ   # 1FA1
+       ᾢ     ᾢ     ᾪ     ὪΙ   # 1FA2
+       ᾣ     ᾣ     ᾫ     ὫΙ   # 1FA3
+       ᾤ     ᾤ     ᾬ     ὬΙ   # 1FA4
+       ᾥ     ᾥ     ᾭ     ὭΙ   # 1FA5
+       ᾦ     ᾦ     ᾮ     ὮΙ   # 1FA6
+       ᾧ     ᾧ     ᾯ     ὯΙ   # 1FA7
+       ᾨ     ᾠ     ᾨ     ὨΙ   # 1FA8
+       ᾩ     ᾡ     ᾩ     ὩΙ   # 1FA9
+       ᾪ     ᾢ     ᾪ     ὪΙ   # 1FAA
+       ᾫ     ᾣ     ᾫ     ὫΙ   # 1FAB
+       ᾬ     ᾤ     ᾬ     ὬΙ   # 1FAC
+       ᾭ     ᾥ     ᾭ     ὭΙ   # 1FAD
+       ᾮ     ᾦ     ᾮ     ὮΙ   # 1FAE
+       ᾯ     ᾧ     ᾯ     ὯΙ   # 1FAF
+       ᾰ     ᾰ     Ᾰ     Ᾰ     # 1FB0
+       ᾱ     ᾱ     Ᾱ     Ᾱ     # 1FB1
+       ᾲ     ᾲ     Ὰͅ   ᾺΙ   # 1FB2
+       ᾳ     ᾳ     ᾼ     ΑΙ    # 1FB3
+       ᾴ     ᾴ     Άͅ    ΆΙ    # 1FB4
+       ᾶ     ᾶ     Α͂    Α͂    # 1FB6
+       ᾷ     ᾷ     ᾼ͂  Α͂Ι  # 1FB7
+       Ᾰ     ᾰ             Ᾰ     # 1FB8
+       Ᾱ     ᾱ             Ᾱ     # 1FB9
+       Ὰ     ὰ             Ὰ     # 1FBA
+       Ά     ά             Ά     # 1FBB
+       ᾼ     ᾳ     ᾼ     ΑΙ    # 1FBC
+       ι     ι     Ι      Ι      # 1FBE
+       ῂ     ῂ     Ὴͅ   ῊΙ   # 1FC2
+       ῃ     ῃ     ῌ     ΗΙ    # 1FC3
+       ῄ     ῄ     Ήͅ    ΉΙ    # 1FC4
+       ῆ     ῆ     Η͂    Η͂    # 1FC6
+       ῇ     ῇ     ῌ͂  Η͂Ι  # 1FC7
+       Ὲ     ὲ             Ὲ     # 1FC8
+       Έ     έ             Έ     # 1FC9
+       Ὴ     ὴ             Ὴ     # 1FCA
+       Ή     ή             Ή     # 1FCB
+       ῌ     ῃ     ῌ     ΗΙ    # 1FCC
+       ῐ     ῐ     Ῐ     Ῐ     # 1FD0
+       ῑ     ῑ     Ῑ     Ῑ     # 1FD1
+       ῒ     ῒ     Ϊ̀  Ϊ̀  # 1FD2
+       ΐ     ΐ     Ϊ́  Ϊ́  # 1FD3
+       ῖ     ῖ     Ι͂    Ι͂    # 1FD6
+       ῗ     ῗ     Ϊ͂  Ϊ͂  # 1FD7
+       Ῐ     ῐ             Ῐ     # 1FD8
+       Ῑ     ῑ             Ῑ     # 1FD9
+       Ὶ     ὶ             Ὶ     # 1FDA
+       Ί     ί             Ί     # 1FDB
+       ῠ     ῠ     Ῠ     Ῠ     # 1FE0
+       ῡ     ῡ     Ῡ     Ῡ     # 1FE1
+       ῢ     ῢ     Ϋ̀  Ϋ̀  # 1FE2
+       ΰ     ΰ     Ϋ́  Ϋ́  # 1FE3
+       ῤ     ῤ     Ρ̓    Ρ̓    # 1FE4
+       ῥ     ῥ     Ῥ     Ῥ     # 1FE5
+       ῦ     ῦ     Υ͂    Υ͂    # 1FE6
+       ῧ     ῧ     Ϋ͂  Ϋ͂  # 1FE7
+       Ῠ     ῠ             Ῠ     # 1FE8
+       Ῡ     ῡ             Ῡ     # 1FE9
+       Ὺ     ὺ             Ὺ     # 1FEA
+       Ύ     ύ             Ύ     # 1FEB
+       Ῥ     ῥ             Ῥ     # 1FEC
+       ῲ     ῲ     Ὼͅ   ῺΙ   # 1FF2
+       ῳ     ῳ     ῼ     ΩΙ    # 1FF3
+       ῴ     ῴ     Ώͅ    ΏΙ    # 1FF4
+       ῶ     ῶ     Ω͂    Ω͂    # 1FF6
+       ῷ     ῷ     ῼ͂  Ω͂Ι  # 1FF7
+       Ὸ     ὸ             Ὸ     # 1FF8
+       Ό     ό             Ό     # 1FF9
+       Ὼ     ὼ             Ὼ     # 1FFA
+       Ώ     ώ             Ώ     # 1FFB
+       ῼ     ῳ     ῼ     ΩΙ    # 1FFC
+       ⁿ     ⁿ                     # 207F
+       ℂ                     ℂ     # 2102
+       ℇ                     ℇ     # 2107
+       ℊ     ℊ                     # 210A
+       ℋ                     ℋ     # 210B
+       ℌ                     ℌ     # 210C
+       ℍ                     ℍ     # 210D
+       ℎ     ℎ                     # 210E
+       ℏ     ℏ                     # 210F
+       ℐ                     ℐ     # 2110
+       ℑ                     ℑ     # 2111
+       ℒ                     ℒ     # 2112
+       ℓ     ℓ                     # 2113
+       ℕ                     ℕ     # 2115
+       ℙ                     ℙ     # 2119
+       ℚ                     ℚ     # 211A
+       ℛ                     ℛ     # 211B
+       ℜ                     ℜ     # 211C
+       ℝ                     ℝ     # 211D
+       ℤ                     ℤ     # 2124
+       Ω     ω              Ω     # 2126
+       ℨ                     ℨ     # 2128
+       K     k               K     # 212A
+       Å     å              Å     # 212B
+       ℬ                     ℬ     # 212C
+       ℭ                     ℭ     # 212D
+       ℯ     ℯ                     # 212F
+       ℰ                     ℰ     # 2130
+       ℱ                     ℱ     # 2131
+       ℳ                     ℳ     # 2133
+       ℴ     ℴ                     # 2134
+       ℹ     ℹ                     # 2139
+       ff     ff     Ff      FF      # FB00
+       fi     fi     Fi      FI      # FB01
+       fl     fl     Fl      FL      # FB02
+       ffi     ffi     Ffi     FFI     # FB03
+       ffl     ffl     Ffl     FFL     # FB04
+       ſt     ſt     St      ST      # FB05
+       st     st     St      ST      # FB06
+       ﬓ     ﬓ     Մն    ՄՆ    # FB13
+       ﬔ     ﬔ     Մե    ՄԵ    # FB14
+       ﬕ     ﬕ     Մի    ՄԻ    # FB15
+       ﬖ     ﬖ     Վն    ՎՆ    # FB16
+       ﬗ     ﬗ     Մխ    ՄԽ    # FB17
+       A     a             A     # FF21
+       B     b             B     # FF22
+       C     c             C     # FF23
+       D     d             D     # FF24
+       E     e             E     # FF25
+       F     f             F     # FF26
+       G     g             G     # FF27
+       H     h             H     # FF28
+       I     i             I     # FF29
+       J     j             J     # FF2A
+       K     k             K     # FF2B
+       L     l             L     # FF2C
+       M     m             M     # FF2D
+       N     n             N     # FF2E
+       O     o             O     # FF2F
+       P     p             P     # FF30
+       Q     q             Q     # FF31
+       R     r             R     # FF32
+       S     s             S     # FF33
+       T     t             T     # FF34
+       U     u             U     # FF35
+       V     v             V     # FF36
+       W     w             W     # FF37
+       X     x             X     # FF38
+       Y     y             Y     # FF39
+       Z     z             Z     # FF3A
+       a     a     A     A     # FF41
+       b     b     B     B     # FF42
+       c     c     C     C     # FF43
+       d     d     D     D     # FF44
+       e     e     E     E     # FF45
+       f     f     F     F     # FF46
+       g     g     G     G     # FF47
+       h     h     H     H     # FF48
+       i     i     I     I     # FF49
+       j     j     J     J     # FF4A
+       k     k     K     K     # FF4B
+       l     l     L     L     # FF4C
+       m     m     M     M     # FF4D
+       n     n     N     N     # FF4E
+       o     o     O     O     # FF4F
+       p     p     P     P     # FF50
+       q     q     Q     Q     # FF51
+       r     r     R     R     # FF52
+       s     s     S     S     # FF53
+       t     t     T     T     # FF54
+       u     u     U     U     # FF55
+       v     v     V     V     # FF56
+       w     w     W     W     # FF57
+       x     x     X     X     # FF58
+       y     y     Y     Y     # FF59
+       z     z     Z     Z     # FF5A
diff --git a/tests/gen-casefold-txt.pl b/tests/gen-casefold-txt.pl
new file mode 100755 (executable)
index 0000000..9301d73
--- /dev/null
@@ -0,0 +1,82 @@
+#! /usr/bin/perl -w
+
+#    Copyright (C) 1998, 1999 Tom Tromey
+#    Copyright (C) 2001 Red Hat Software
+
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2, or (at your option)
+#    any later version.
+
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+#    02111-1307, USA.
+
+# gen-casefold-test.pl - Generate test cases for casefolding from Unicode data.
+# See http://www.unicode.org/Public/UNIDATA/UnicodeCharacterDatabase.html
+# Usage: 
+# I consider the output of this program to be unrestricted.  Use it as
+# you will.
+
+# Names of fields in the CaseFolding table
+$FOLDING_CODE = 0;
+$FOLDING_STATUS = 1;
+$FOLDING_MAPPING = 2;
+
+my $casefoldlen = 0;
+my @casefold;
+
+if (@ARGV != 2) {
+    $0 =~ s@.*/@@;
+    die "Usage: $0 UNICODE-VERSION  CaseFolding.txt\n";
+}
+print <<EOT;
+# Test cases generated from Unicode $ARGV[0] data
+# by gen-casefold-test.pl. Do not edit.
+#
+# Some special hand crafted tests
+#
+AaBbCc@@\taabbcc@@
+#
+# Now the automatic tests
+#
+EOT
+
+open (INPUT, "< $ARGV[1]") || exit 1;
+
+while (<INPUT>)
+{
+    chop;
+
+    next if /^#/;
+    next if /^\s*$/;
+
+    s/\s*#.*//;
+
+    my @fields = split ('\s*;\s*', $_, 30);
+
+    my $raw_code = $fields[$FOLDING_CODE];
+    my $code = hex ($raw_code);
+
+    next if $code > 0xffff;    # FIXME!
+    
+    if ($#fields != 3)
+    {
+       printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields);
+       next;
+    }
+
+    next if ($fields[$FOLDING_STATUS] eq 'S');
+
+    @values = map { hex ($_) } split /\s+/, $fields[$FOLDING_MAPPING];
+    printf ("%s\t%s\n", pack ("U", $code), pack ("U*", @values));
+}
+
+close INPUT;
diff --git a/tests/gen-casemap-txt.pl b/tests/gen-casemap-txt.pl
new file mode 100755 (executable)
index 0000000..aafc176
--- /dev/null
@@ -0,0 +1,232 @@
+#! /usr/bin/perl -w
+
+#    Copyright (C) 1998, 1999 Tom Tromey
+#    Copyright (C) 2001 Red Hat Software
+
+#    This program is free software; you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation; either version 2, or (at your option)
+#    any later version.
+
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+
+#    You should have received a copy of the GNU General Public License
+#    along with this program; if not, write to the Free Software
+#    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+#    02111-1307, USA.
+
+# gen-casemap-test.pl - Generate test cases for case mapping from Unicode data.
+# See http://www.unicode.org/Public/UNIDATA/UnicodeCharacterDatabase.html
+# I consider the output of this program to be unrestricted.  Use it as
+# you will.
+
+use utf8;
+
+if (@ARGV != 3) {
+    $0 =~ s@.*/@@;
+    die "Usage: $0 UNICODE-VERSION UnicodeData.txt SpecialCasing.txt\n";
+}
+use vars qw($CODE $NAME $CATEGORY $COMBINING_CLASSES $BIDI_CATEGORY $DECOMPOSITION $DECIMAL_VALUE $DIGIT_VALUE $NUMERIC_VALUE $MIRRORED $OLD_NAME $COMMENT $UPPER $LOWER $TITLE $BREAK_CODE $BREAK_CATEGORY $BREAK_NAME $CASE_CODE $CASE_LOWER $CASE_TITLE $CASE_UPPER $CASE_CONDITION);
+
+# Names of fields in Unicode data table.
+$CODE = 0;
+$NAME = 1;
+$CATEGORY = 2;
+$COMBINING_CLASSES = 3;
+$BIDI_CATEGORY = 4;
+$DECOMPOSITION = 5;
+$DECIMAL_VALUE = 6;
+$DIGIT_VALUE = 7;
+$NUMERIC_VALUE = 8;
+$MIRRORED = 9;
+$OLD_NAME = 10;
+$COMMENT = 11;
+$UPPER = 12;
+$LOWER = 13;
+$TITLE = 14;
+
+# Names of fields in the SpecialCasing table
+$CASE_CODE = 0;
+$CASE_LOWER = 1;
+$CASE_TITLE = 2;
+$CASE_UPPER = 3;
+$CASE_CONDITION = 4;
+
+my @upper;
+my @title;
+my @lower;
+
+open (INPUT, "< $ARGV[1]") || exit 1;
+
+$last_code = -1;
+while (<INPUT>)
+{
+    chop;
+    @fields = split (';', $_, 30);
+    if ($#fields != 14)
+    {
+       printf STDERR ("Entry for $fields[$CODE] has wrong number of fields (%d)\n", $#fields);
+    }
+
+    $code = hex ($fields[$CODE]);
+
+    last if ($code > 0xFFFF); # ignore characters out of the basic plane
+
+    if ($code > $last_code + 1)
+    {
+       # Found a gap.
+       if ($fields[$NAME] =~ /Last>/)
+       {
+           # Fill the gap with the last character read,
+            # since this was a range specified in the char database
+           @gfields = @fields;
+       }
+       else
+       {
+           # The gap represents undefined characters.  Only the type
+           # matters.
+           @gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '',
+                       '', '', '', '');
+       }
+       for (++$last_code; $last_code < $code; ++$last_code)
+       {
+           $gfields{$CODE} = sprintf ("%04x", $last_code);
+           &process_one ($last_code, @gfields);
+       }
+    }
+    &process_one ($code, @fields);
+    $last_code = $code;
+}
+
+close INPUT;
+
+open (INPUT, "< $ARGV[2]") || exit 1;
+
+while (<INPUT>)
+{
+    my $code;
+    
+    chop;
+
+    next if /^#/;
+    next if /^\s*$/;
+
+    s/\s*#.*//;
+
+    @fields = split ('\s*;\s*', $_, 30);
+
+    $raw_code = $fields[$CASE_CODE];
+    $code = hex ($raw_code);
+
+    if ($#fields != 4 && $#fields != 5)
+    {
+       printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields);
+       next;
+    }
+
+    if (defined $fields[5]) {
+       # Ignore conditional special cases - we'll handle them manually
+       next;
+    }
+
+    $upper[$code] = &make_hex ($fields[$CASE_UPPER]);
+    $lower[$code] = &make_hex ($fields[$CASE_LOWER]);
+    $title[$code] = &make_hex ($fields[$CASE_TITLE]);
+}
+
+close INPUT;
+
+print <<EOT;
+# Test cases generated from Unicode $ARGV[0] data
+# by gen-case-tests.pl. Do not edit.
+#
+# Some special hand crafted tests
+#
+tr_TR\ti\ti\t\x{0130}\t\x{0130}\t# i => LATIN CAPITAL LETTER I WITH DOT ABOVE
+tr_TR\tI\t\x{0131}\tI\tI\t# I => LATIN SMALL LETTER DOTLESS I
+# Test reordering of YPOGEGRAMMENI across other accents
+\t\x{03b1}\x{0345}\x{0314}\t\x{03b1}\x{0345}\x{314}\t\x{0391}\x{0345}\x{0314}\t\x{0391}\x{0314}\x{0399}\t
+\t\x{03b1}\x{0314}\x{0345}\t\x{03b1}\x{314}\x{0345}\t\x{0391}\x{0314}\x{0345}\t\x{0391}\x{0314}\x{0399}\t
+# Handling of final and nonfinal sigma
+       ΜΆΙΟΣ      μάιος      Μάιος      ΜΆΙΟΣ      
+       ΜΆΙΟΣ      μάιος      Μάιος      ΜΆΙΟΣ      
+       ΣΙΓΜΑ      σιγμα      Σιγμα      ΣΙΓΜΑ      
+# Lithuanian rule of i followed by letter with dot. Not at all sure
+# about the titlecase part here
+lt_LT\ti\x{117}\ti\x{117}\tIe\tIE\t
+lt_LT\tie\x{307}\tie\x{307}\tIe\tIE\t
+#
+# Now the automatic tests
+#
+EOT
+&print_tests;
+
+exit 0;
+
+# Process a single character.
+sub process_one
+{
+    my ($code, @fields) = @_;
+
+    my $type =  $fields[$CATEGORY];
+    if ($type eq 'Ll')
+    {
+       $upper[$code] = make_hex ($fields[$UPPER]);
+       $lower[$code] = pack ("U", $code);
+       $title[$code] = make_hex ($fields[$TITLE]);
+    }
+    elsif ($type eq 'Lu')
+    {
+       $lower[$code] = make_hex ($fields[$LOWER]);
+       $upper[$code] = pack ("U", $code);
+       $title[$code] = make_hex ($fields[$TITLE]);
+    }
+
+    if ($type eq 'Lt')
+    {
+       $upper[$code] = make_hex ($fields[$UPPER]);
+       $lower[$code] = pack ("U", hex ($fields[$LOWER]));
+       $title[$code] = make_hex ($fields[$LOWER]);
+    }
+}
+
+sub print_tests
+{
+    for ($i = 0; $i < 0xffff; $i++) {
+       if ($i == 0x3A3) {
+           # Greek sigma needs special tests
+           next;
+       }
+       
+       my $lower = $lower[$i];
+       my $title = $title[$i];
+       my $upper = $upper[$i];
+
+       if (defined $upper || defined $lower || defined $title) {
+           printf "\t%s\t%s\t%s\t%s\t# %4X\n",
+                   pack ("U", $i),
+                   (defined $lower ? $lower : ""),
+                   (defined $title ? $title : ""),
+                   (defined $upper ? $upper : ""),
+                    $i;
+       }
+    }
+}
+
+sub make_hex
+{
+    my $codes = shift;
+
+    $codes =~ s/^\s+//;
+    $codes =~ s/\s+$//;
+
+    if ($codes eq "0" || $codes eq "") {
+       return "";
+    } else {
+       return pack ("U*", map { hex ($_) } split /\s+/, $codes);
+    }
+}
diff --git a/tests/unicode-caseconv.c b/tests/unicode-caseconv.c
new file mode 100644 (file)
index 0000000..6b65a70
--- /dev/null
@@ -0,0 +1,116 @@
+#include <locale.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <glib.h>
+#include <string.h>
+
+int main (int argc, char **argv)
+{
+  FILE *infile;
+  char buffer[1024];
+  char **strings;
+  char *srcdir = getenv ("srcdir");
+  char *filename;
+  const char *locale;
+  const char *test;
+  char *convert;
+  char *current_locale = setlocale (LC_CTYPE, NULL);
+  gint result = 0;
+
+  if (!srcdir)
+    srcdir = ".";
+  filename = g_strconcat (srcdir, G_DIR_SEPARATOR_S, "casemap.txt", NULL);
+  
+  infile = fopen (filename, "r");
+  if (!infile)
+    {
+      fprintf (stderr, "Failed to open %s\n", filename );
+      exit (1);
+    }
+  
+  while (fgets (buffer, sizeof(buffer), infile))
+    {
+      if (buffer[0] == '#')
+       continue;
+
+      strings = g_strsplit (buffer, "\t", -1);
+
+      locale = strings[0];
+
+      if (!locale[0])
+       locale = "C";
+       
+      if (strcmp (locale, current_locale) != 0)
+       {
+         setlocale (LC_CTYPE, locale);
+         current_locale = setlocale (LC_CTYPE, NULL);
+
+         if (strncmp (current_locale, locale, 2) != 0)
+           {
+             fprintf (stderr, "Cannot set locale to %s, skipping\n", locale);
+             goto next;
+           }
+       }
+      
+      test = strings[1];
+
+      convert = g_utf8_strup (test);
+      if (strcmp (convert, strings[4]) != 0)
+       {
+         fprintf (stderr, "Failure: toupper(%s) == %s, should have been %s\n",
+                  test, convert, strings[4]);
+         result = 1;
+       }
+      g_free (convert);
+
+      convert = g_utf8_strdown (test);
+      if (strcmp (convert, strings[2]) != 0)
+       {
+         fprintf (stderr, "Failure: tolower(%s) == %s, should have been %s\n",
+                  test, convert, strings[2]);
+         result = 1;
+       }
+      g_free (convert);
+
+    next:
+      g_strfreev (strings);
+    }
+
+  fclose (infile);
+
+  g_free (filename);
+  filename = g_strconcat (srcdir, G_DIR_SEPARATOR_S, "casefold.txt", NULL);
+  
+  infile = fopen (filename, "r");
+  if (!infile)
+    {
+      fprintf (stderr, "Failed to open %s\n", filename );
+      exit (1);
+    }
+  
+  while (fgets (buffer, sizeof(buffer), infile))
+    {
+      if (buffer[0] == '#')
+       continue;
+
+      buffer[strlen(buffer) - 1] = '\0';
+      strings = g_strsplit (buffer, "\t", -1);
+
+      test = strings[0];
+
+      convert = g_utf8_casefold (test);
+      if (strcmp (convert, strings[1]) != 0)
+       {
+         fprintf (stderr, "Failure: casefold(%s) == '%s', should have been '%s'\n",
+                  test, convert, strings[1]);
+         result = 1;
+       }
+      g_free (convert);
+
+      g_strfreev (strings);
+    }
+
+  fclose (infile);
+
+  return result;
+}
diff --git a/tests/unicode-collate.c b/tests/unicode-collate.c
new file mode 100644 (file)
index 0000000..44cedb5
--- /dev/null
@@ -0,0 +1,94 @@
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef struct {
+  const char *key;
+  const char *str;
+} Line;
+  
+
+int 
+compare_collate (const void *a, const void *b)
+{
+  const Line *line_a = a;
+  const Line *line_b = b;
+
+  return g_utf8_collate (line_a->str, line_b->str);
+}
+
+int 
+compare_key (const void *a, const void *b)
+{
+  const Line *line_a = a;
+  const Line *line_b = b;
+
+  return strcmp (line_a->key, line_b->key);
+}
+
+int main (int argc, char **argv)
+{
+  GIOChannel *in;
+  GError *error = NULL;
+  GArray *line_array = g_array_new (FALSE, FALSE, sizeof(Line));
+  guint i;
+
+  if (argc != 1 && argc != 2)
+    {
+      fprintf (stderr, "Usage: unicode-collate [FILE]\n");
+      return 1;
+    }
+
+  if (argc == 2)
+    {
+      in = g_io_channel_new_file (argv[1], G_IO_FILE_MODE_READ, &error);
+      if (!in)
+       {
+         fprintf (stderr, "Cannot open %s: %s\n", argv[1], error->message);
+         return 1;
+       }
+    }
+  else
+    {
+      in = g_io_channel_unix_new (fileno (stdin));
+    }
+
+  while (TRUE)
+    {
+      gsize term_pos;
+      gchar *str;
+      Line line;
+
+      if (g_io_channel_read_line (in, &str, NULL, &term_pos, &error) != G_IO_STATUS_NORMAL)
+       break;
+
+      str[term_pos] = '\0';
+
+      line.key = g_utf8_collate_key (str);
+      line.str = str;
+
+      g_array_append_val (line_array, line);
+    }
+
+  if (error)
+    {
+      fprintf (stderr, "Error reading test file, %s\n", error->message);
+      return 1;
+    }
+
+  printf ("== g_utf8_collate ==\n");
+
+  qsort (line_array->data, line_array->len, sizeof (Line), compare_collate);
+  for (i = 0; i < line_array->len; i++)
+    printf ("%s\n", g_array_index (line_array, Line, i).str);
+
+  printf ("== g_utf8_collate_key ==\n");
+
+  qsort (line_array->data, line_array->len, sizeof (Line), compare_key);
+  for (i = 0; i < line_array->len; i++)
+    printf ("%s\n", g_array_index (line_array, Line, i).str);
+
+  g_io_channel_close (in);
+
+  return 0;
+}
diff --git a/tests/unicode-normalize.c b/tests/unicode-normalize.c
new file mode 100644 (file)
index 0000000..1c8318d
--- /dev/null
@@ -0,0 +1,194 @@
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+gboolean success = TRUE;
+
+static char *
+decode (const gchar *input)
+{
+  unsigned ch;
+  int offset = 0;
+  GString *result = g_string_new (NULL);
+  int len;
+  char buf[6];
+  
+  do 
+    {
+      if (sscanf (input + offset, "%x", &ch) != 1)
+       {
+         fprintf (stderr, "Error parsing character string %s\n", input);
+         exit (1);
+       }
+
+      /* FIXME: We don't handle the > BMP or Hangul syllables */
+      if (ch > 0xffff ||                /* > BMP */
+         (ch >= 0xac00 && ch <= 0xd7ff))  /* Hangul syllables */
+       {
+         g_string_free (result, TRUE);
+         return NULL;
+       }
+
+      len = g_unichar_to_utf8 (ch, buf);
+      g_string_append_len (result, buf, len);
+      
+      while (input[offset] && input[offset] != ' ')
+       offset++;
+      while (input[offset] && input[offset] == ' ')
+       offset++;
+    }
+  while (input[offset]);
+
+  return g_string_free (result, FALSE);
+}
+
+const char *names[4] = {
+  "NFD",
+  "NFC",
+  "NFKD",
+  "NFKC"
+};
+
+static void
+test_form (int            line,
+          GNormalizeMode mode,
+          gboolean       do_compat,
+          int            expected,
+          char         **c,
+          char         **raw)
+{
+  int i;
+  
+  gboolean mode_is_compat = (mode == G_NORMALIZE_NFKC ||
+                            mode == G_NORMALIZE_NFKD);
+
+  if (mode_is_compat || !do_compat)
+    {
+      for (i = 0; i < 3; i++)
+       {
+         char *result = g_utf8_normalize (c[i], mode);
+         if (strcmp (result, c[expected]) != 0)
+           {
+             fprintf (stderr, "\nFailure: %d/%d: %s\n", line, i + 1, raw[5]);
+             fprintf (stderr, "  g_utf8_normalize (%s, %s) != %s\n",
+                  raw[i], names[mode], raw[expected]);
+             success = FALSE;
+           }
+         
+         g_free (result);
+       }
+    }
+  if (mode_is_compat || do_compat)
+    {
+      for (i = 3; i < 5; i++)
+       {
+         char *result = g_utf8_normalize (c[i], mode);
+         if (strcmp (result, c[expected]) != 0)
+           {
+             fprintf (stderr, "\nFailure: %d/%d: %s\n", line, i, raw[5]);
+             fprintf (stderr, "  g_utf8_normalize (%s, %s) != %s\n",
+                  raw[i], names[mode], raw[expected]);
+             success = FALSE;
+           }
+         
+         g_free (result);
+       }
+    }
+}
+
+static gboolean
+process_one (int line, gchar **columns)
+{
+  char *c[5];
+  int i;
+  gboolean skip = FALSE;
+
+  for (i=0; i < 5; i++)
+    {
+      c[i] = decode(columns[i]);
+      if (!c[i])
+       skip = TRUE;
+    }
+
+  if (!skip)
+    {
+      test_form (line, G_NORMALIZE_NFD, FALSE, 2, c, columns);
+      test_form (line, G_NORMALIZE_NFD, TRUE, 4, c, columns);
+      test_form (line, G_NORMALIZE_NFC, FALSE, 1, c, columns);
+      test_form (line, G_NORMALIZE_NFC, TRUE, 3, c, columns);
+      test_form (line, G_NORMALIZE_NFKD, TRUE, 4, c, columns);
+      test_form (line, G_NORMALIZE_NFKC, TRUE, 3, c, columns);
+    }
+
+  for (i=0; i < 5; i++)
+    g_free (c[i]);
+  
+  return TRUE;
+}
+
+int main (int argc, char **argv)
+{
+  GIOChannel *in;
+  GError *error = NULL;
+  GString *buffer = g_string_new (NULL);
+  int line_to_do = 0;
+  int line = 1;
+
+  if (argc != 2 && argc != 3)
+    {
+      fprintf (stderr, "Usage: unicode-normalize NormalizationTest.txt LINE\n");
+      return 1;
+    }
+
+  if (argc == 3)
+    line_to_do = atoi(argv[2]);
+
+  in = g_io_channel_new_file (argv[1], G_IO_FILE_MODE_READ, &error);
+  if (!in)
+    {
+      fprintf (stderr, "Cannot open %s: %s\n", argv[1], error->message);
+      return 1;
+    }
+
+  while (TRUE)
+    {
+      gsize term_pos;
+      gchar **columns;
+
+      if (g_io_channel_read_line_string (in, buffer, &term_pos, &error) != G_IO_STATUS_NORMAL)
+       break;
+       
+      if (line_to_do && line != line_to_do)
+       goto next;
+      
+      buffer->str[term_pos] = '\0';
+      
+      if (buffer->str[0] == '#') /* Comment */
+       goto next;
+      if (buffer->str[0] == '@') /* Part */
+       {
+         fprintf (stderr, "\nProcessing %s\n", buffer->str + 1);
+         goto next;
+       }
+      
+      columns = g_strsplit (buffer->str, ";", -1);
+      if (!process_one (line, columns))
+       return 1;
+      g_strfreev (columns);
+
+    next:
+      g_string_truncate (buffer, 0);
+      line++;
+    }
+
+  if (error)
+    {
+      fprintf (stderr, "Error reading test file, %s\n", error->message);
+      return 1;
+    }
+
+  g_io_channel_close (in);
+  g_string_free (buffer, TRUE);
+
+  return !success;
+}