[Libreoffice-commits] core.git: Branch 'private/tml/iculess' - i18npool/inc i18npool/Library_i18npool.mk i18npool/Module_i18npool.mk i18npool/source iculess/Library_iculess.mk iculess/source include/iculess

Tor Lillqvist tml at collabora.com
Mon Jan 13 11:50:50 PST 2014


 i18npool/Library_i18npool.mk                             |   16 
 i18npool/Module_i18npool.mk                              |   16 
 i18npool/inc/cclass_apple.hxx                            |   77 
 i18npool/source/characterclassification/cclass_apple.cxx |  304 
 iculess/Library_iculess.mk                               |    4 
 iculess/source/apple.mm                                  |  175 
 iculess/source/common.cxx                                |   15 
 iculess/source/gunichartables.h                          |15153 +++++++++++++++
 include/iculess/iculess.h                                |   29 
 include/iculess/unicode/calendar.h                       |    4 
 include/iculess/unicode/locid.h                          |    2 
 include/iculess/unicode/normlzr.h                        |    2 
 include/iculess/unicode/rbnf.h                           |    5 
 include/iculess/unicode/regex.h                          |   17 
 include/iculess/unicode/tblcoll.h                        |    2 
 include/iculess/unicode/ubidi.h                          |   55 
 include/iculess/unicode/uchar.h                          |  586 
 include/iculess/unicode/ucnv.h                           |   49 
 include/iculess/unicode/ucsdet.h                         |   56 
 include/iculess/unicode/utf8.h                           |   51 
 20 files changed, 16511 insertions(+), 107 deletions(-)

New commits:
commit 8e70fbc056b6cb5bb7d95c5758cddd083112f7eb
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Jan 13 21:45:21 2014 +0200

    Further hacking on "iculess" but I doubt this will succeed
    
    Change-Id: I11b00c14e1c8dbfaf1414a1b8ef7f70ca415c17f

diff --git a/i18npool/Library_i18npool.mk b/i18npool/Library_i18npool.mk
index 92a17a3..fc0fae1 100644
--- a/i18npool/Library_i18npool.mk
+++ b/i18npool/Library_i18npool.mk
@@ -39,6 +39,8 @@ $(eval $(call gb_Library_add_exception_objects,i18npool,\
 	$(if $(filter ICULESS,$(BUILD_TYPE)), \
 		$(if $(filter IOS MACOSX,$(OS)), \
 			i18npool/source/breakiterator/breakiterator_apple \
+			i18npool/source/characterclassification/cclass_apple \
+			i18npool/source/collator/collator_apple \
 		) \
 	, \
 		i18npool/source/breakiterator/breakiterator_cjk \
@@ -46,25 +48,20 @@ $(eval $(call gb_Library_add_exception_objects,i18npool,\
 		i18npool/source/breakiterator/breakiteratorImpl \
 		i18npool/source/breakiterator/breakiterator_th \
 		i18npool/source/breakiterator/breakiterator_unicode \
+		i18npool/source/characterclassification/cclass_unicode \
+		i18npool/source/characterclassification/cclass_unicode_parser \
+		i18npool/source/collator/collator_unicode \
+		i18npool/source/registerservices/registerservices \
 	) \
 	i18npool/source/breakiterator/xdictionary \
 	i18npool/source/calendar/calendarImpl \
 	i18npool/source/calendar/calendar_gregorian \
 	i18npool/source/calendar/calendar_hijri \
 	i18npool/source/calendar/calendar_jewish \
-	i18npool/source/characterclassification/cclass_unicode \
-	i18npool/source/characterclassification/cclass_unicode_parser \
 	i18npool/source/characterclassification/characterclassificationImpl \
 	i18npool/source/characterclassification/unoscripttypedetector \
 	i18npool/source/collator/chaptercollator \
 	i18npool/source/collator/collatorImpl \
-	$(if $(filter ICULESS,$(BUILD_TYPE)), \
-		$(if $(filter IOS MACOSX,$(OS)), \
-			i18npool/source/collator/collator_apple \
-		) \
-	, \
-		i18npool/source/collator/collator_unicode \
-	) \
 	i18npool/source/defaultnumberingprovider/defaultnumberingprovider \
 	i18npool/source/indexentry/indexentrysupplier \
 	i18npool/source/indexentry/indexentrysupplier_asian \
@@ -78,7 +75,6 @@ $(eval $(call gb_Library_add_exception_objects,i18npool,\
 	i18npool/source/nativenumber/nativenumbersupplier \
 	i18npool/source/numberformatcode/numberformatcode \
 	i18npool/source/ordinalsuffix/ordinalsuffix \
-	i18npool/source/registerservices/registerservices \
 	i18npool/source/textconversion/textconversion \
 	i18npool/source/textconversion/textconversionImpl \
 	i18npool/source/textconversion/textconversion_ko \
diff --git a/i18npool/Module_i18npool.mk b/i18npool/Module_i18npool.mk
index bba18ab..c03d23c 100644
--- a/i18npool/Module_i18npool.mk
+++ b/i18npool/Module_i18npool.mk
@@ -14,29 +14,29 @@ $(eval $(call gb_Module_add_targets,i18npool,\
 		CustomTarget_breakiterator \
 		Library_dict_ja \
 		Library_dict_zh \
+		Library_collator_data \
+		Library_index_data \
+		Library_textconv_dict \
 		CustomTarget_collator \
+		CustomTarget_indexentry \
+		CustomTarget_textconversion \
 	) \
-	CustomTarget_indexentry \
 	CustomTarget_localedata \
-	CustomTarget_textconversion \
-	Library_collator_data \
 	Library_i18npool \
 	Library_i18nsearch \
-	Library_index_data \
 	Library_localedata_en \
 	Library_localedata_es \
 	Library_localedata_euro \
 	Library_localedata_others \
-	Library_textconv_dict \
 ))
 
 $(eval $(call gb_Module_add_targets_for_build,i18npool,\
 	$(if $(filter ICULESS,$(BUILD_TYPE)),, \
 		Executable_gencoll_rule \
+		Executable_genconv_dict \
+		Executable_gendict \
+		Executable_genindex_data \
 	) \
-	Executable_genconv_dict \
-	Executable_gendict \
-	Executable_genindex_data \
 	Executable_saxparser \
 	Rdb_saxparser \
 ))
diff --git a/i18npool/inc/cclass_apple.hxx b/i18npool/inc/cclass_apple.hxx
new file mode 100644
index 0000000..585d827
--- /dev/null
+++ b/i18npool/inc/cclass_apple.hxx
@@ -0,0 +1,77 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_I18N_INC_CCLASS_APPLE_HXX
+#define INCLUDED_I18N_INC_CCLASS_APPLE_HXX
+
+#include <com/sun/star/i18n/XNativeNumberSupplier.hpp>
+#include <com/sun/star/i18n/XCharacterClassification.hpp>
+#include <com/sun/star/i18n/XLocaleData4.hpp>
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+
+namespace com { namespace sun { namespace star { namespace uno {
+    class XComponentContext;
+} } } }
+
+namespace com { namespace sun { namespace star { namespace i18n {
+
+class cclass_Apple : public cppu::WeakImplHelper2 < XCharacterClassification, css::lang::XServiceInfo >
+{
+public:
+    cclass_Apple(const com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext >& rxContext );
+    ~cclass_Apple();
+
+    virtual OUString SAL_CALL toUpper( const OUString& Text, sal_Int32 nPos, sal_Int32 nCount,
+        const com::sun::star::lang::Locale& rLocale ) throw(com::sun::star::uno::RuntimeException);
+    virtual OUString SAL_CALL toLower( const OUString& Text, sal_Int32 nPos, sal_Int32 nCount,
+        const com::sun::star::lang::Locale& rLocale ) throw(com::sun::star::uno::RuntimeException);
+    virtual OUString SAL_CALL toTitle( const OUString& Text, sal_Int32 nPos, sal_Int32 nCount,
+        const com::sun::star::lang::Locale& rLocale ) throw(com::sun::star::uno::RuntimeException);
+    virtual sal_Int16 SAL_CALL getType( const OUString& Text, sal_Int32 nPos )  throw(com::sun::star::uno::RuntimeException);
+    virtual sal_Int16 SAL_CALL getCharacterDirection( const OUString& Text, sal_Int32 nPos )
+        throw(com::sun::star::uno::RuntimeException);
+    virtual sal_Int16 SAL_CALL getScript( const OUString& Text, sal_Int32 nPos ) throw(com::sun::star::uno::RuntimeException);
+    virtual sal_Int32 SAL_CALL getCharacterType( const OUString& text, sal_Int32 nPos,
+        const com::sun::star::lang::Locale& rLocale ) throw(com::sun::star::uno::RuntimeException);
+    virtual sal_Int32 SAL_CALL getStringType( const OUString& text, sal_Int32 nPos, sal_Int32 nCount,
+        const com::sun::star::lang::Locale& rLocale ) throw(com::sun::star::uno::RuntimeException);
+    virtual ParseResult SAL_CALL parseAnyToken( const OUString& Text, sal_Int32 nPos,
+        const com::sun::star::lang::Locale& rLocale, sal_Int32 nStartCharFlags, const OUString& userDefinedCharactersStart,
+        sal_Int32 nContCharFlags, const OUString& userDefinedCharactersCont ) throw(com::sun::star::uno::RuntimeException);
+    virtual ParseResult SAL_CALL parsePredefinedToken( sal_Int32 nTokenType, const OUString& Text,
+        sal_Int32 nPos, const com::sun::star::lang::Locale& rLocale, sal_Int32 nStartCharFlags,
+        const OUString& userDefinedCharactersStart, sal_Int32 nContCharFlags,
+        const OUString& userDefinedCharactersCont ) throw(com::sun::star::uno::RuntimeException);
+
+    //XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() throw( com::sun::star::uno::RuntimeException );
+    virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( com::sun::star::uno::RuntimeException );
+    virtual com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( com::sun::star::uno::RuntimeException );
+
+private:
+    /// Implementation of getCharacterType() for one single character
+    sal_Int32 getCharType( const OUString& Text, sal_Int32 *nPos, sal_Int32 increment);
+};
+
+} } } }
+
+#endif // INCLUDED_I18N_INC_CCLASS_APPLE_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/i18npool/source/characterclassification/cclass_apple.cxx b/i18npool/source/characterclassification/cclass_apple.cxx
new file mode 100644
index 0000000..c31b2ca
--- /dev/null
+++ b/i18npool/source/characterclassification/cclass_apple.cxx
@@ -0,0 +1,304 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <com/sun/star/i18n/UnicodeScript.hpp>
+#include <com/sun/star/i18n/UnicodeType.hpp>
+#include <com/sun/star/i18n/KCharacterType.hpp>
+#include <comphelper/string.hxx>
+#include <cppuhelper/supportsservice.hxx>
+#include <unicode/uchar.h>
+
+#include <cclass_apple.hxx>
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+
+namespace com { namespace sun { namespace star { namespace i18n {
+
+cclass_Apple::cclass_Apple( const uno::Reference < XComponentContext >& rxContext )
+{
+    (void) rxContext;
+}
+
+cclass_Apple::~cclass_Apple()
+{
+}
+
+OUString
+cclass_Apple::toUpper( const OUString& Text,
+                       sal_Int32 nPos,
+                       sal_Int32 nCount,
+                       const Locale& rLocale )
+    throw(RuntimeException)
+{
+    (void) rLocale;
+
+    sal_Int32 len = Text.getLength();
+    if (nPos >= len)
+        return OUString();
+    if (nCount + nPos > len)
+        nCount = len - nPos;
+
+    return OUString();
+}
+
+OUString
+cclass_Apple::toLower( const OUString& Text,
+                       sal_Int32 nPos,
+                       sal_Int32 nCount,
+                       const Locale& rLocale )
+    throw(RuntimeException)
+{
+    (void) rLocale;
+
+    sal_Int32 len = Text.getLength();
+    if (nPos >= len)
+        return OUString();
+    if (nCount + nPos > len)
+        nCount = len - nPos;
+
+    return OUString();
+}
+
+OUString
+cclass_Apple::toTitle( const OUString& Text,
+                       sal_Int32 nPos,
+                       sal_Int32 nCount,
+                       const Locale& rLocale )
+    throw(RuntimeException)
+{
+    (void) rLocale;
+
+    sal_Int32 len = Text.getLength();
+    if (nPos >= len)
+        return OUString();
+    if (nCount + nPos > len)
+        nCount = len - nPos;
+
+    return OUString();
+}
+
+sal_Int16
+cclass_Apple::getType( const OUString& Text,
+                       sal_Int32 nPos )
+    throw(RuntimeException)
+{
+    if ( nPos < 0 || Text.getLength() <= nPos ) return 0;
+    return (sal_Int16) u_charType(Text.iterateCodePoints(&nPos, 0));
+}
+
+sal_Int16
+cclass_Apple::getCharacterDirection( const OUString& Text,
+                                     sal_Int32 nPos )
+    throw(RuntimeException)
+{
+    if ( nPos < 0 || Text.getLength() <= nPos ) return 0;
+
+    return 0;
+}
+
+sal_Int16
+cclass_Apple::getScript( const OUString& Text,
+                         sal_Int32 nPos )
+    throw(RuntimeException)
+{
+    if ( nPos < 0 || Text.getLength() <= nPos ) return 0;
+
+    return 0;
+}
+
+sal_Int32
+cclass_Apple::getCharacterType( const OUString& Text,
+                                sal_Int32 nPos,
+                                const Locale& /*rLocale*/ )
+    throw(RuntimeException)
+{
+    if ( nPos < 0 || Text.getLength() <= nPos ) return 0;
+
+    return getCharType(Text, &nPos, 0);
+}
+
+sal_Int32
+cclass_Apple::getStringType( const OUString& Text,
+                             sal_Int32 nPos,
+                             sal_Int32 nCount,
+                             const Locale& /*rLocale*/ )
+    throw(RuntimeException)
+{
+    if ( nPos < 0 || Text.getLength() <= nPos ) return 0;
+
+    sal_Int32 result = 0;
+
+    while (nCount > 0 && nPos < Text.getLength())
+    {
+        sal_Int32 nOrigPos = nPos;
+        result |= getCharType(Text, &nPos, 1);
+        sal_Int32 nUtf16Units = nPos - nOrigPos;
+        nCount -= nUtf16Units;
+    }
+
+    return result;
+}
+
+ParseResult
+cclass_Apple::parseAnyToken( const OUString& Text,
+                             sal_Int32 nPos,
+                             const Locale& rLocale,
+                             sal_Int32 startCharTokenType,
+                             const OUString& userDefinedCharactersStart,
+                             sal_Int32 contCharTokenType,
+                             const OUString& userDefinedCharactersCont )
+    throw(RuntimeException)
+{
+    (void) Text;
+    (void) nPos;
+    (void) rLocale;
+    (void) startCharTokenType;
+    (void) userDefinedCharactersStart;
+    (void) contCharTokenType;
+    (void) userDefinedCharactersCont;
+
+    ParseResult r;
+
+    return r;
+}
+
+
+ParseResult
+cclass_Apple::parsePredefinedToken( sal_Int32 nTokenType,
+                                    const OUString& Text,
+                                    sal_Int32 nPos,
+                                    const Locale& rLocale,
+                                    sal_Int32 startCharTokenType,
+                                    const OUString& userDefinedCharactersStart,
+                                    sal_Int32 contCharTokenType,
+                                    const OUString& userDefinedCharactersCont )
+    throw(RuntimeException)
+{
+    (void) nTokenType;
+    (void) Text;
+    (void) nPos;
+    (void) rLocale;
+    (void) startCharTokenType;
+    (void) userDefinedCharactersStart;
+    (void) contCharTokenType;
+    (void) userDefinedCharactersCont;
+
+    ParseResult r;
+    if ( Text.getLength() <= nPos )
+        return r;
+
+    return r;
+}
+
+OUString
+cclass_Apple::getImplementationName()
+    throw( RuntimeException )
+{
+  return OUString( "com.sun.star.i18n.CharacterClassification_Apple" );
+}
+
+sal_Bool
+cclass_Apple::supportsService( const OUString& rServiceName )
+    throw( RuntimeException )
+{
+    return cppu::supportsService(this, rServiceName);
+}
+
+Sequence< OUString >
+cclass_Apple::getSupportedServiceNames()
+    throw( RuntimeException )
+{
+    Sequence< OUString > aRet(1);
+    aRet[0] = OUString( "com.sun.star.i18n.CharacterClassification_Apple" );
+
+    return aRet;
+}
+
+sal_Int32
+cclass_Apple::getCharType( const OUString& Text,
+                           sal_Int32* nPos,
+                           sal_Int32 increment)
+{
+    using namespace ::com::sun::star::i18n::KCharacterType;
+
+    sal_uInt32 ch = Text.iterateCodePoints(nPos, increment);
+    switch ( u_charType(ch) ) {
+    // Upper
+    case U_UPPERCASE_LETTER :
+        return UPPER|LETTER|PRINTABLE|BASE_FORM;
+
+    // Lower
+    case U_LOWERCASE_LETTER :
+        return LOWER|LETTER|PRINTABLE|BASE_FORM;
+
+    // Title
+    case U_TITLECASE_LETTER :
+        return TITLE_CASE|LETTER|PRINTABLE|BASE_FORM;
+
+    // Letter
+    case U_MODIFIER_LETTER :
+    case U_OTHER_LETTER :
+        return LETTER|PRINTABLE|BASE_FORM;
+
+    // Digit
+    case U_DECIMAL_DIGIT_NUMBER:
+    case U_LETTER_NUMBER:
+    case U_OTHER_NUMBER:
+        return DIGIT|PRINTABLE|BASE_FORM;
+
+    // Base
+    case U_NON_SPACING_MARK:
+    case U_ENCLOSING_MARK:
+    case U_COMBINING_SPACING_MARK:
+        return BASE_FORM|PRINTABLE;
+
+    // Print
+    case U_SPACE_SEPARATOR:
+
+    case U_DASH_PUNCTUATION:
+    case U_INITIAL_PUNCTUATION:
+    case U_FINAL_PUNCTUATION:
+    case U_CONNECTOR_PUNCTUATION:
+    case U_OTHER_PUNCTUATION:
+
+    case U_MATH_SYMBOL:
+    case U_CURRENCY_SYMBOL:
+    case U_MODIFIER_SYMBOL:
+    case U_OTHER_SYMBOL:
+        return PRINTABLE;
+
+    // Control
+    case U_CONTROL_CHAR:
+    case U_FORMAT_CHAR:
+        return CONTROL;
+
+    case U_LINE_SEPARATOR:
+    case U_PARAGRAPH_SEPARATOR:
+        return CONTROL|PRINTABLE;
+
+    // for all others
+    default:
+        return U_GENERAL_OTHER_TYPES;
+    }
+}
+
+} } } }
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/iculess/Library_iculess.mk b/iculess/Library_iculess.mk
index 3abd0ac..3d660bb 100644
--- a/iculess/Library_iculess.mk
+++ b/iculess/Library_iculess.mk
@@ -17,6 +17,10 @@ $(eval $(call gb_Library_add_defs,vcl,\
     -DICULESS_DLLIMPLEMENTATION \
 ))
 
+$(eval $(call gb_Library_add_exception_objects,iculess,\
+	iculess/source/common \
+))
+
 ifneq (,$(filter IOS MACOSX,$(OS)))
 
 $(eval $(call gb_Library_use_system_darwin_frameworks,iculess,\
diff --git a/iculess/source/apple.mm b/iculess/source/apple.mm
index dda7a30..59c06d5 100644
--- a/iculess/source/apple.mm
+++ b/iculess/source/apple.mm
@@ -14,9 +14,55 @@
 #import <CoreFoundation/CFString.h>
 
 #include <unicode/locid.h>
+#include <unicode/uchar.h>
+#include <unicode/ubidi.h>
+
+#ifndef __IPHONE_OS_VERSION_MIN_REQUIRED
+
+#define G_UNICODE_CONTROL U_CONTROL_CHAR
+#define G_UNICODE_FORMAT U_FORMAT_CHAR
+#define G_UNICODE_UNASSIGNED U_UNASSIGNED
+#define G_UNICODE_PRIVATE_USE U_PRIVATE_USE_CHAR
+#define G_UNICODE_SURROGATE U_SURROGATE
+#define G_UNICODE_LOWERCASE_LETTER U_LOWERCASE_LETTER
+#define G_UNICODE_MODIFIER_LETTER U_MODIFIER_LETTER
+#define G_UNICODE_OTHER_LETTER U_OTHER_LETTER
+#define G_UNICODE_TITLECASE_LETTER U_TITLECASE_LETTER
+#define G_UNICODE_UPPERCASE_LETTER U_UPPERCASE_LETTER
+#define G_UNICODE_SPACING_MARK U_COMBINING_SPACING_MARK
+#define G_UNICODE_ENCLOSING_MARK U_ENCLOSING_MARK
+#define G_UNICODE_NON_SPACING_MARK U_NON_SPACING_MARK
+#define G_UNICODE_DECIMAL_NUMBER U_DECIMAL_DIGIT_NUMBER
+#define G_UNICODE_LETTER_NUMBER U_LETTER_NUMBER
+#define G_UNICODE_OTHER_NUMBER U_OTHER_NUMBER
+#define G_UNICODE_CONNECT_PUNCTUATION U_CONNECTOR_PUNCTUATION
+#define G_UNICODE_DASH_PUNCTUATION U_DASH_PUNCTUATION
+#define G_UNICODE_CLOSE_PUNCTUATION U_END_PUNCTUATION
+#define G_UNICODE_FINAL_PUNCTUATION U_FINAL_PUNCTUATION
+#define G_UNICODE_INITIAL_PUNCTUATION U_INITIAL_PUNCTUATION
+#define G_UNICODE_OTHER_PUNCTUATION U_OTHER_PUNCTUATION
+#define G_UNICODE_OPEN_PUNCTUATION U_START_PUNCTUATION
+#define G_UNICODE_CURRENCY_SYMBOL U_CURRENCY_SYMBOL
+#define G_UNICODE_MODIFIER_SYMBOL U_MODIFIER_SYMBOL
+#define G_UNICODE_MATH_SYMBOL U_MATH_SYMBOL
+#define G_UNICODE_OTHER_SYMBOL U_OTHER_SYMBOL
+#define G_UNICODE_LINE_SEPARATOR U_LINE_SEPARATOR
+#define G_UNICODE_PARAGRAPH_SEPARATOR U_PARAGRAPH_SEPARATOR
+#define G_UNICODE_SPACE_SEPARATOR U_SPACE_SEPARATOR
+
+typedef char gchar;
+typedef int16_t gint16;
+typedef uint16_t guint16;
+typedef uint32_t gunichar;
+
+#include "gunichartables.h"
+
+#endif
 
 using namespace icu;
 
+// locid.h
+
 Locale::Locale() :
     m_localeRef(NULL)
 {
@@ -57,6 +103,8 @@ Locale Locale::createFromName(const char *name)
     return Locale(name);
 }
 
+// uchar.h
+
 UBool u_isalpha(UChar32 c)
 {
     return CFCharacterSetIsLongCharacterMember(CFCharacterSetGetPredefined(kCFCharacterSetLetter), c);
@@ -76,4 +124,131 @@ UBool u_isWhitespace(UChar32 c)
             (c >= 0x001C && c <= 0x001F));
 }
 
+int8_t u_charType(UChar32 c)
+{
+#ifndef __IPHONE_OS_VERSION_MIN_REQUIRED
+    if (c <= G_UNICODE_LAST_CHAR_PART1) {
+        const int page = (c >> 8);
+        if (type_table_part1[page] >= G_UNICODE_MAX_TABLE_INDEX)
+            return type_table_part1[page] - G_UNICODE_MAX_TABLE_INDEX;
+        else
+            return type_data[type_table_part1[page]][c & 0xFF];
+    } else if (c >= 0xE0000 && c <= G_UNICODE_LAST_CHAR) {
+        const int page = ((c - 0xE0000) >> 8);
+        if (type_table_part2[page] >= G_UNICODE_MAX_TABLE_INDEX)
+            return type_table_part2[page] - G_UNICODE_MAX_TABLE_INDEX;
+        else
+            return type_data[type_table_part2[page]][c & 0xFF];
+    } else {
+        return G_UNICODE_UNASSIGNED;
+    }
+#else
+#undef u_charType
+    extern extern "C" int8_t u_charType(UChar32 c);
+    return u_charType(c);
+#endif
+}
+
+UCharDirection
+u_charDirection(UChar32 c)
+{
+    (void) c;
+
+    return U_OTHER_NEUTRAL;
+}
+
+UChar32
+u_charMirror(UChar32 c)
+{
+    (void) c;
+
+    return 0;
+}
+
+// ubidi.h
+
+UBiDi *
+ubidi_openSized(int32_t maxLength,
+                int32_t maxRunCount,
+                UErrorCode *pErrorCode)
+{
+    (void) maxLength;
+    (void) maxRunCount;
+    (void) pErrorCode;
+
+    return NULL;
+}
+
+void
+ubidi_setLine(const UBiDi *pParaBiDi,
+              int32_t start,
+              int32_t limit,
+              UBiDi *pLineBiDi,
+              UErrorCode *pErrorCode)
+{
+    (void) pParaBiDi;
+    (void) start;
+    (void) limit;
+    (void) pLineBiDi;
+    (void) pErrorCode;
+}
+
+void
+ubidi_setPara(UBiDi *pBiDi,
+              const UChar *text,
+              int32_t length,
+              UBiDiLevel paraLevel,
+              UBiDiLevel *embeddingLevels,
+              UErrorCode *pErrorCode)
+{
+    (void) pBiDi;
+    (void) text;
+    (void) length;
+    (void) paraLevel;
+    (void) embeddingLevels;
+    (void) pErrorCode;
+}
+
+int32_t
+ubidi_countRuns(UBiDi *pBiDi,
+                UErrorCode *pErrorCode)
+{
+    (void) pBiDi;
+    (void) pErrorCode;
+
+    return 0;
+}
+
+void
+ubidi_getLogicalRun(const UBiDi *pBiDi,
+                    int32_t logicalPosition,
+                    int32_t *pLogicalLimit,
+                    UBiDiLevel *pLevel)
+{
+    (void) pBiDi;
+    (void) logicalPosition;
+    (void) pLogicalLimit;
+    (void) pLevel;
+}
+
+UBiDiDirection
+ubidi_getVisualRun(UBiDi *pBiDi,
+                   int32_t runIndex,
+                   int32_t *pLogicalStart,
+                   int32_t *pLength)
+{
+    (void) pBiDi;
+    (void) runIndex;
+    (void) pLogicalStart;
+    (void) pLength;
+
+    return UBIDI_NEUTRAL;
+}
+
+void
+ubidi_close(UBiDi *pBiDi)
+{
+    (void) pBiDi;
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/iculess/source/common.cxx b/iculess/source/common.cxx
new file mode 100644
index 0000000..92d514f
--- /dev/null
+++ b/iculess/source/common.cxx
@@ -0,0 +1,15 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <stdlib.h>
+
+#include <unicode/locid.h>
+#include <unicode/uchar.h>
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/iculess/source/gunichartables.h b/iculess/source/gunichartables.h
new file mode 100644
index 0000000..e36b8f9
--- /dev/null
+++ b/iculess/source/gunichartables.h
@@ -0,0 +1,15153 @@
+/* This file is automatically generated.  DO NOT EDIT!
+   Instead, edit gen-unicode-tables.pl and re-run.  */
+
+/* Note that gen-unicode-tables.pl says: I consider the output of this
+   program to be unrestricted. Use it as you will. */
+
+
+#ifndef CHARTABLES_H
+#define CHARTABLES_H
+
+#define G_UNICODE_DATA_VERSION "6.3.0"
+
+#define G_UNICODE_LAST_CHAR 0x10ffff
+
+#define G_UNICODE_MAX_TABLE_INDEX 10000
+
+#define G_UNICODE_LAST_CHAR_PART1 0x2FAFF
+
+#define G_UNICODE_LAST_PAGE_PART1 762
+
+static const char type_data[][256] = {
+  { /* page 0, index 0 */
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_SPACE_SEPARATOR,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_CURRENCY_SYMBOL,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OPEN_PUNCTUATION,
+    G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_DASH_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MATH_SYMBOL,
+    G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_CONNECT_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_OPEN_PUNCTUATION, G_UNICODE_MATH_SYMBOL,
+    G_UNICODE_CLOSE_PUNCTUATION, G_UNICODE_MATH_SYMBOL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_CONTROL,
+    G_UNICODE_CONTROL, G_UNICODE_CONTROL, G_UNICODE_SPACE_SEPARATOR,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_CURRENCY_SYMBOL,
+    G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL,
+    G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_SYMBOL,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_INITIAL_PUNCTUATION, G_UNICODE_MATH_SYMBOL, G_UNICODE_FORMAT,
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_MATH_SYMBOL, G_UNICODE_OTHER_NUMBER,
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_FINAL_PUNCTUATION, G_UNICODE_OTHER_NUMBER,
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_MATH_SYMBOL, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_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_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_MATH_SYMBOL, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER
+  },
+  { /* page 1, index 1 */
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_TITLECASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_TITLECASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_TITLECASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_TITLECASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER
+  },
+  { /* page 2, index 2 */
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, 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_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, 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_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_MODIFIER_SYMBOL
+  },
+  { /* page 3, index 3 */
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_MODIFIER_SYMBOL,
+    G_UNICODE_MODIFIER_SYMBOL, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_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_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_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_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, 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_MATH_SYMBOL, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER
+  },
+  { /* page 4, index 4 */
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_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_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_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_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_ENCLOSING_MARK, G_UNICODE_ENCLOSING_MARK,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER
+  },
+  { /* page 5, index 5 */
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UPPERCASE_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_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UPPERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_UNASSIGNED, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_DASH_PUNCTUATION, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_CURRENCY_SYMBOL,
+    G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_DASH_PUNCTUATION, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_NON_SPACING_MARK,
+    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_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, 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
+  },
+  { /* page 6, index 6 */
+    G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT, G_UNICODE_FORMAT,
+    G_UNICODE_FORMAT, G_UNICODE_UNASSIGNED, G_UNICODE_MATH_SYMBOL,
+    G_UNICODE_MATH_SYMBOL, G_UNICODE_MATH_SYMBOL,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_SYMBOL,
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_FORMAT, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_FORMAT, G_UNICODE_OTHER_SYMBOL,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_SYMBOL, G_UNICODE_OTHER_SYMBOL,
+    G_UNICODE_OTHER_LETTER
+  },
+  { /* page 7, index 7 */
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_UNASSIGNED, G_UNICODE_FORMAT, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_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, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_MODIFIER_LETTER, G_UNICODE_OTHER_SYMBOL,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+  },
+  { /* page 8, index 8 */
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_PUNCTUATION,
+    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, 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, 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,
+    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, 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_OTHER_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_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, 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, 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,
+    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_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_UNASSIGNED
+  },
+  { /* page 9, index 9 */
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_SPACING_MARK,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK,
+    G_UNICODE_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_MODIFIER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_SPACING_MARK,
+    G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_SPACING_MARK,
+    G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_OTHER_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_SPACING_MARK, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_CURRENCY_SYMBOL,
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER,
+    G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER,
+    G_UNICODE_OTHER_SYMBOL, G_UNICODE_CURRENCY_SYMBOL, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED
+  },
+  { /* page 10, index 10 */
+    G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED,
+    G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK, G_UNICODE_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_NON_SPACING_MARK,
+    G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_NON_SPACING_MARK, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_OTHER_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_OTHER_LETTER,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED,
+    G_UNICODE_UNASSIGNED, G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,
+    G_UNICODE_DECIMAL_NUMBER, G_UNICODE_DECIMAL_NUMBER,

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list